打字猴:1.703868562e+09
1703868562 这样一来,把区块链变成一个随机数“信号塔”成了一件简单的事。在区块链上的每一个区块上,我们在区块头部设置一个“随机数抽取器”。随机数抽取器,其实就是一个哈希函数,这个哈希函数把所有的输入随机熵均匀地压缩成一个随机字符串。每次只要发表一个区块,我们就有了一个新的随机信号输出。
1703868563
1703868564 评估比特币“信号塔”的安全性
1703868565
1703868566 假设你参加一个乐透抽奖,这个抽奖的结果是由未来将要产生的、一个预先设定的、位于高度h的某个区块的输出所决定的。这个乐透抽奖有N个参与者,每个参与者都下注了B个比特币,如果你也是一名矿工,我们再假设,你幸运地找到了一个区块h的函数解谜的答案,你就可以选择发表或是不发表这一区块。如果你不喜欢从这个区块里产生的抽奖的结果,你可以轻易地丢弃这一区块,然后让其他找到这个区块的人来决定这个抽奖结果,但同时,你必须放弃因为找到这个区块所带来的收入。
1703868567
1703868568 让我们计算一下,下注的数额B值需要多大,才值得考虑放弃区块本身的奖励。如果你成功地找到了一个位于高度h的区块来决定抽奖的结果,然后意识到,如果你发表了这个结果,你肯定会输掉抽奖;如果你扔掉这块,你还是有1/N的概率来赢得B×N比特币,这就意味着,如果你期望的抽奖奖励(1/N)×B×N比特币比挖矿所获得的25个比特币奖励要大的话,那么放弃区块奖励是合理的(在2015年,如果不考虑交易费的话,区块奖励大概是25个比特币),所以如果B大于25,这种丢弃策略就是有利可图的。在2015年中旬,25个比特币价值大约在5 000美元左右。所以如果每个玩家下注不到5 000美元的话,并且假设每个玩家都是理智的,那么这个乐透抽奖是可以抵抗放弃有效区块这种攻击的。
1703868569
1703868570 另一大优点是这是一个完全去中心化的信号源,没有一个中心化的信托方。比起其他几个信号源的方案,它的处理速度相当快,大概每10分钟就产生一个输出。然后通过上述的简单模型,我们可以估计一个攻击者想要操纵信号源输出所需要付出的代价。
1703868571
1703868572 用比特币作为信号塔办法的一个缺点是,不能精确定时。比如,假设我们想要在明天正午读取这个信号源的值,但我们无法知道哪个区块在哪个时点会生成最新的一个区块。虽然平均来说,在正午之前或之后的10分钟内一定会有一个区块被公布,但这还是会有误差。如果我们想降低目标区块在一个短分叉事件中丢失的可能性,我们还要对有可能发生的延迟有所准备。在比特币世界里,通常情况下要等6个区块(60分钟)后,才能确信这个信号值是真正地被确认了。
1703868573
1703868574 另一个缺陷是,相对来说,操纵这个信号值所需的代价可能还是太低。如果我们用这个方法来实行NBA选秀,由于其中可能涉及几千万美元利益,球队顿时就有了贿赂矿工来操纵选秀过程的动力。所以,当涉及巨额资金时,这个方法是否有效仍值得探讨。
1703868575
1703868576 最后,我们的安全评估忽略了一些现实生活中的因素。比如,对于加入某一个矿池的矿工来说,丢弃一个有效区块并不会让他损失很多钱,因为他们是根据贡献算力的比例,而不是区块来领取奖励的。所以,比特币信号塔目前还是一个有趣但没有被证明的想法。
1703868577
1703868578 脚本语言对信号塔的支持
1703868579
1703868580 如果我们扩展比特币的脚本语言功能,加入一个特殊的操作码(opcode)来读取比特币信号呢?按照最初的设计,现在的比特币脚本语言没有任何办法去实现任何随机性,因为矿工必须验证脚本,而且一个脚本的有效性需要获得所有矿工的认可,但如果我们用了信号塔产生的随机数,由于这是一个可被证明的公共随机数,把这个随机数加入交易脚本中,矿工就容易随机性地达成共识。
1703868581
1703868582 假设我们有一个操作码可以做一个随机的决定,这个决定是基于上个区块的信号塔输出的。我们可以把整个复杂的抽奖数据协议用一个脚本来替代——读信号塔的随机数值,然后把该输出分派到n个密钥中的一个。这需要有多回合的数据协议安全保证或是有时效的函数约定。
1703868583
1703868584 这个想法的一个缺点是,为矿工操纵抽奖提供了可能性,如果他们发觉挖到的这一个区块里的交易会让他们输掉这个抽奖,他们就会简单地将抽奖交易延迟至后面的一块出现。但是我们可以对信号塔的操作码做一个小小的调整来防御这类攻击,也就是说,你不是用上一个区块,而是使用某一个特定高度的区块所产生的信号塔随机数。
1703868585
1703868586 [1]所以一个公平的不受操纵的公共随机源是一个公共福祉,而比特币可以做到这一点,因为它是去中心化的。——译者注
1703868587
1703868588 [2]Bingo是一种填写格子的游戏,在游戏中第一个成功者以喊“Bingo”表示取胜而得名。——译者注
1703868589
1703868590
1703868591
1703868592
1703868593 区块链技术驱动金融:数字货币与智能合约技术 [:1703863965]
1703868594 区块链技术驱动金融:数字货币与智能合约技术 9.5 预测市场和真实世界的数据源
1703868595
1703868596 作为本章的最后一个论题,我们现在来看一下如何利用加密数字货币,以去中心化的方式来实现一个预测市场,与此相关,如何把真实世界的数据导入比特币系统。
1703868597
1703868598 在预测市场中,人们可以在一起对未来的事件进行下注,比如体育比赛或是选举。对于事件发生的每一个结果,参与者可以买卖和交易相应的“份额”。
1703868599
1703868600 表9.1 2014年世界杯期间球队选择的预测表(数字代表在每个阶段下注某支球队捧杯所需花费的美元)
1703868601
1703868602
1703868603
1703868604
1703868605 注:押注美国队赢得世界杯的价格在美国队小组表现出色后,从1美分上升到6美分。当巴西打进半决赛后,其赌注价格上升到了45美分,而当巴西队输掉半决赛后,这份赌注变得毫无价值。最后只有德国队的赌注才有价值,因为他们赢得了冠军。
1703868606
1703868607 我们用一个案例来详细解释一下预测市场背后的概念,使其更加清晰。2014年的世界杯在巴西举行,假设有一个市场,你可以买卖每个队的赌注。最终冠军队的赌注是1元,而其他队的都是0。比赛开始之后,根据市场认为每个队最后能赢得冠军的概率,每个球队的赌注都会有一个价格。表9.1就是五个队的赌注价格情况。
1703868608
1703868609 在比赛前,德国队赌注的交易价格是12美分,意味着市场觉得德国队大约有12%的机会获得最后的冠军。当比赛进行的时候,这些赌注价格会上下波动,反映了市场参与者对每个队最终获胜的信心。
1703868610
1703868611 在我们的案例中,英国队赌注本来的交易价是5美分,但后来变成了0,因为英国队没有小组出线,他们已经不可能取得最终的胜利,价格也相应地反映了这一点。与之相反的是,美国队最初被认为很难从小组出现,但是结果他们的小组赛表现却相当不错,如果你在最初美国队赌注价格非常便宜的时候(1美分)买了它,并在它出线并变成6美分的时候马上卖出,你就可以拿回6倍于你最初的投资,而不需要等到全部比赛完了之后再卖出。虽然美国队最后没有赢得世界杯,但你还是可以在美国队小组赛表现抢眼的时候,通过市场对美国队的信心调整来获利。
[ 上一页 ]  [ :1.703868562e+09 ]  [ 下一页 ]