安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

巴比特专栏

4月4日 望北海投稿
  一、菠菜类应用成了黑客的提款机
  自去年EOS主网上线以来,菠菜类应用成了EOS平台的主流应用。但是,因为EOS内在机制的缺陷,让菠菜类应用纷纷沦为黑客的刀下肉,成了黑客的提款机。一个较为知名的案例是EOSDice两度被黑客攻破。
  黑客的攻击手法暴露了一个非常底层而本质的问题:区块链随机数的安全性问题。
  以EOSDice为例〔1〕。第一版本它是实时开奖,用户在当前区块下注时,它通过智能合约代码把上一个区块的信息以及帐户名、id、开奖时间、合约余额信息作为随机数函数的种子,计算出随机数生成结果作为中奖依据。
  黑客发现:开奖代码所用的随机数函数其实生成的是确定性序列,随机性的来源是种子。而区块链上一切数据都是公开透明的,代码也是开源的。因此,掌握了种子信息和计算逻辑不就可以直接推算出来押注哪里必赢了吗?
  黑客必赢手法:根据全部已知信息进行模拟运算,推算出必赢押注。
  EOSDice团队迅速修改了代码,把实时开奖改成了延时开奖。也就是说,顺延一个区块,到下下个区块再执行开奖代码,这样就可以让随机数函数种子使用下个区块的信息这个在当前下注时还不存在的信息。看似无懈可击了吗?
  黑客又一次发现:既然现在无法拿到信息,但是可以现在写个一模一样的算法代码,到未来信息出现的时候再运行不就可以了吗?
  黑客必赢手法:提前写一个和开奖代码一样的伴娘代码,但是让它和开奖代码一样延时到下个区块运行,这样就可以算出来必赢的押注了,然后让这个伴娘代码按照必赢押注进行注资。
  EOSDice这次只好把余额从种子计算的输入中去掉,以免黑客随意改变押注金额操纵种子,进而操纵看似随机的开奖结果。
  于是有安全研究人员大声疾呼:区块链的世界没有真正的随机数,甚至更进一步的,计算机的世界没有真随机数。
  在笔者(公众号:刘教链)看来,上述命题的外延并不清晰,需要刨根问底、一探究竟:
  1、仅仅是因为EOS的伪随机函数被黑客攻击,就可以扩大化到区块链甚至计算机没有真随机吗?
  2、仅仅是因为伪随机函数不能产生真随机数,就可以如此轻易得出不含任何前提条件的绝对命题(categoricaljudgement)吗?这意味着上述两个命题应该在时空任意之处都绝对正确,也意味着只要找到一个反例就足以推翻。
  同时,命题的内涵也具有相当的模糊性,这会导致不同读者产生不同的概念联想并被误导:
  1、存在性:怎么定义一个东西在区块链世界和计算机世界有或者无?没有的意思是指无论通过任何方法也不能有吗?如果不是,那没有的具体内涵又是什么?
  2、真实性:怎么定义真随机数?什么才是真随机?真随机可以被确证吗?
  下面我们就来看一看这些问题。
  二、随机数的定义和及其密码学安全性
  快速了解现代冯诺伊曼架构计算机中随机数问题,可以翻阅美国计算机科学家、1974年图灵奖获得者高德纳(DonaldE。Knuth,1938)的堪称计算机科学理论与技术的经典巨著《计算机程序设计艺术》(TheArtofComputerProgramming,缩写TAOCP)的第二卷不完全数值计算算法之第三章随机数。
  仅仅这一章就有着长达170页的篇幅〔2〕。其中综述了计算机随机数问题的研究历史和成果。笔者(公众号:刘教链)给各位读者简要概述一下,很有趣味:
  首先,高老先生回顾了一下随机数研究历史,然后说,究竟什么是随机数,这其实是一个哲学问题,也就是得先搞清楚我是谁(怎么定义)这个问题。
  然后,高老先生就引述一个前人给出的定义,接着说,嗯,按照这个定义的话,我想,整个宇宙中可能就不存在真正的随机数了!好吧,我们还是换个更宽松的定义吧!
  再然后,高老先生换了一个宽松一些的定义,写了一个算法说,大家看我构造的这个随机数算法,其实根本就不能称之为算法!为什么?因为这个算法根本就不能保证输出结果(计算机术语称之为停机问题)!只好再弱化要求。
  接下来,就是洋洋洒洒,给大家讲解各种弱弱的随机数算法,这个好一点儿,那个差一点儿,等等。总之,高老先生就是不断地在暗示同学们,这些算法嘛,各有各的坑,大家小心点儿用。
  最后,布置习题。完。
  高老先生已经开门见山地告诉我们了,一个确定性的算法所生成的随机数是什么随机数?伪随机数!也就是说,计算机那个叫做random(随机)的函数其实所生成的是一种大大弱化了的、看起来像随机数的随机数。
  这些随机数函数所产生的的结果的随机性将取决于外部给它的随机性,比如通过所谓的种子参数。一旦知道了种子,它所计算出来的随机数序列就是确定性的。
  是不是就可以下结论说,计算机就没有办法产生真随机数了呢?如果这句话的意思是限定计算机的方法为伪随机数算法的话,那么这就不啻为一个分析命题(analyticaljudgement):
  伪随机数算法没有办法产生真随机数。
  上面这个分析命题的正确性和下面这个分析命题是一样的:
  黑天鹅不是白的。
  众所周知,分析命题先验为真〔3〕。并没有讨论的必要。
  我们需要讨论的,永远是怎么解决问题。就像中本聪克服FLP不可能解决拜占庭问题一样。
  在密码学上,随机性是非常重要的,无论是资产控制私钥的安全性,还是椭圆曲线数字签名算法的签名过程安全性,都需要良好的随机数。当然,文初提到的菠菜,可能也需要良好的随机数。
  密码学安全的随机数,比用于统计模拟的随机数,对随机性的要求就要更高、更严格。考虑起来,其分布需要均匀,且不可被操纵导致出现分布偏差,其发生不可预测,每次发生之间保证良好的独立性。
  在密码学里,我们把这种随机数(的来源)叫做高阶最小熵(highminentropy)。其要求统计学上均匀分布的独立同分布(Independentandidenticallydistributed,i。i。d。)。
  比如扔一个两面均匀的硬币的最小熵是log2(12)1比特,扔一个八面均匀骰子的最小熵是log2(8)3比特,而大家知道的比特币私钥的长度是256比特,足够强壮的私钥其最小熵应该可以高达256比特,也就是黑客随便猜一下只有2的256次方分之一的概率能猜中,这么高的最小熵就叫做高阶最小熵,意思就是非常非常不容易被猜中。
  计算机随机数函数的伪随机数算法是确定性算法(受停机问题约束),因而并不能为结果增加最小熵,也就是说,其输出结果的最小熵等于输入的最小熵。
  如果输入被人为控制或猜中,那么输入的熵就减小到0,结果也就完全在黑客的预料之中了。
  分析至此,我们就知道了,区块链的世界或者计算机的世界里可不可以有真随机?当然可以有。怎么有?给这个世界输入熵。
  怎么给区块链系统输入熵?我们可能会考虑如下一些方法:
  1、让节点加装特殊的随机数硬件。这个方法是有问题的:(1)不是所有的节点都有这个硬件,轮到没有这种硬件的节点出块怎么办?(2)区块链是开放的,如果节点故意作弊,使用假冒的、受控的硬件怎么办?(3)最大的问题是,出块节点声称的真随机数其他节点和用户完全无法验证,在这里,真随机和可验证互相矛盾!如果不可验证,就意味着其他节点和用户需要无条件信任(trust)出块节点的随机数是真的,这又和区块链非信任模型相矛盾!
  2、使用外部的随机数提供接口,也就是所谓的OracleAPI。这个方法同样有一些无法忽视的问题:(1)依赖外部Oracle就是给区块链系统带来了中心化和信任依赖,外部Oracle可以被摧毁,也就是中本聪邮件里说的cutoffthehead(斩首)。(2)同上,最大问题也是,其他人只能无条件相信出块节点没有伪造这个结果,即使Oracle提供的是真随机数,因为真随机和可验证矛盾。增加Oracle其实不仅没有缓解信任依赖问题,反而把这个问题进一步扩大化了!
  3、从用户输入中获取熵。问题:区块链是完全透明的,这意味着,系统知道的所有的用户输入的信息,黑客也同样可以知道,而且可以在同一个时间知道!理论上讲,黑客完全可以利用同样的信息、同样的算法模拟出同样的结果。
  4、不公开程序代码,也就是隐藏随机数生成逻辑。问题:封闭代码只会让真实用户怀疑其中是否有猫腻。没有了公开,公平公正性就会受到质疑!正如中本聪在帖子里写的,比特币这种系统必须开源,大家才能相信这些规则是按照声称的来实现的。而闭源这东西反而对真正的黑客高手没什么大用,各种分析技术轻而易举就搞定了。
  5、试图发明真随机数计算函数。问题:发明这种算法的难度和解决停机问题应该是差不多的吧?哈哈哈哈。
  6、给区块链系统引入一个中心的随机数发生器,要求大家都信任它。问题:如果这种中心化也能接受,那么其实就可以不用区块链了,直接全面改成中心化多节点数据库技术一定更好。
  看起来,道路千万条,条条走不通呀!
  真的没有路了吗?当然不是。如果真的是这样,就不会有中本聪发明的比特币了。
  三、比特币是如何实现内生的去中心化随机性的
  好了,让我们仔细考察一下比特币的全球一万多个出块节点的随机选择问题吧。我们会惊奇地发现:
  1、比特币系统没有办法禁止节点操纵任何它能够操纵的输入,包括但不限于时间戳恶意改写、交易集刻意选择、nonce是不是特意选择的,等等。
  2、比特币系统不要求节点安装特别的随机数硬件。
  3、比特币系统不需要依赖外部的随机数提供接口。
  4、比特币系统不需要一个中心的、权威的随机数发生节点。
  5、比特币系统的代码和数据完全公开,人人可见。
  然后比特币系统实现了对于出块节点的公平公正公开的随机选择:
  也就是说,如果我们把整个比特币系统看作一个函数:B(区块高度)出块节点,那么这个函数B有一个很奇妙的特点,那就是,在没有被看见的时候,它的结果是真随机的,而一旦被看见,随机性就会迅速坍缩成为一个确定的结果,而且这个结果可以被其他节点验证。了解过量子力学的朋友此刻脑海中可能会浮现出薛定谔的猫的场景哈?那么这里的看见,则是后续出块节点通过新区块不断加持和见证的过程。
  亲爱的读者朋友请回想一下前面说到的,随机性和可验证相矛盾的问题吧。这个矛盾怎么化解?答案只能是,未产生时具有充分随机性从而无人可以预测,一旦产生则可以公开记录下来被任何人反复确证,这种薛定谔随机性才是最适合区块链的随机性。
  并且这个随机性是足够真的。因为如果它可以被拉偏,那么操纵者就可以获得出块的极大优势,进而赚取超额的比特币奖励!显然,比特币已经如此值钱的情况下,这一情况并未发生。非不愿也,实不能也。
  比特币是无许可的(permissionless),也就是恶意节点可自由加入网络并操纵输入。在这种情况下,比特币又是如何实现内生的、去中心化的真随机性的呢?
  这个随机性的来源是工作量证明(Proofofwork,PoW)吗?PoW是两层SHA256哈希运算,而输入是黑客随意操纵的,哈希运算对于给定的输入必然给出确定性的结果,不会增加任何随机性。
  那么随机性的来源到底在哪儿呢?
  比特币是这样一种非常特别的系统,它对外消耗能量,形成内在的自发秩序(有序的区块链账本)。诺奖得主普利高津发明了一个术语来描述这种系统,称之为耗散结构或者耗散系统〔4〕。生命有机体、公司组织、城市、国家,这些都是耗散系统。
  一个耗散系统能够形成自发秩序,有三个条件:
  1、开放性。系统要保持开放。比特币的无准入许可极大增加了其开放程度。
  2、非平衡性。系统要有持续的内部竞争,以系统远离平衡态。比特币的记账权竞争,也就是挖矿竞争,乃是比特币区块链账本的有序之源。
  3、涨落。系统中微小的扰动会通过系统的非线性回路雪崩式放大,就像所谓的蝴蝶效应。比特币的区块链无时无刻不在分叉,又无时无刻不在选择最长链作为主链,从而形成一个分形结构。
  工作量证明把算力涨落引入系统,作为竞争依据,这种竞争,为系统带来了随机性。
  接下来我们考察一下比特币区块链中的随机性应用及其操纵可行性。
  四、比特币系统随机性应用和作弊可行性分析
  我们大家都知道,比特币区块链中的区块头哈希是符合工作量证明要求的哈希值。
  毋庸置疑,根据密码学安全哈希算法的要求,哈希值的分布是均匀的,而且,无论输入是否有规律性,输出值之间都是没有规律可循的。这些是防碰撞攻击、防第一原像攻击和第二原像攻击的基本要求。
  密码学安全意味着,作弊者只有一种方法来尝试欺诈,就是不断改变输入,直到找到符合自己利益需要的哈希值。
  比如以猜大小为例。两人打赌某个尚未生成的区块的头哈希值的最后一位比特是0还是1。如果没有操纵的情况,这是一个公平的均匀分布。
  现在让我们假设有一个人试图作弊。那么他的方法是什么呢?方法就是使用自己的算力去抢夺打赌的对象区块的创建权,并按照按自己下注的结果去操纵哈希值。
  一个明显的事实是,无论两人打赌的区块高度是下一个,还是若干个之后,作弊者都只能从所赌区块的前一个区块产生出来的时候开始计算,因为计算需要有赖于这前一个区块的头哈希值作为输入之一。
  另外一个值得注意的是,这个问题和中本聪在白皮书里计算通过隐藏区块来实现双花欺诈不同,打赌操纵的问题是一个抢跑问题。
  具体的,作弊者和平常一样计算符合工作量证明要求的哈希,也即是开头有若干个0。一旦找到一个,就再看一下哈希值的最后一位。假设作弊者押的是0,那么如果PoW哈希最后一位正好是0,他就把区块广播出去;否则,如果PoW哈希最后一位是1,他就丢弃这个区块。
  也就是说,作弊者一旦挖出来让自己赢的区块,他就会立刻放出来,一旦领先,就能把其他的中立算力吸引过来,见证自己操纵过的区块进入主链。
  令:
  p诚实节点找到合格区块的概率
  q1p作弊节点找到合格区块的概率
  诚实节点只要找到符合要求的合格区块就会出块
  作弊节点则在找到合格区块后,根据是否符合自己押注(不符合的概率是r)选择出块还是丢弃
  qr作弊节点抢在诚实节点前面先出块的概率
  求qr?
  运用概率论的一些知识,我们可以计算出答案如下:
  对于两人使用区块头哈希最后一位比特对赌大小的情况,r0。5,则作弊节点抢跑成功的概率qr0。5q(10。5q)。则其操纵胜率将是winqr1。0(1qr)0。5。
  一旦操纵成功,其收益会是对方下注bethonest。一旦失败,其损失将是自己下注betcheat加上区块奖励blockreward。收益期望:
  Echeatwinbethonest(1win)(betcheatblockreward)
  而如果作弊者诚实游戏,那么其胜率和败率将是0。5、0。5。收益期望:
  Enocheat0。5bethonest0。5betcheatqblockreward
  因操纵所得的超额期望收益为:
  作弊者的期望超额收益率为Eextrabetcheat,等于:
  要让期望超额收益率大于0,需要满足:
  2(1q1q)blockreward
  令miu2(1q1q)为超额下注系数。
  并假设双方下注金额相当,且远远大于miublockreward以至于区块奖励可以忽略不计,那么RORmax0。5q(10。5q)。这恰好等于qr。
  试算作弊节点掌握算力的比例q、抢跑成功的概率qr、操纵胜率win、超额下注系数miu、期望超额收益率RORmax对照如下:
  q0。001qr0。0005003win0。5002501miu2002。0020000RORmax0。0005003
  q0。01qr0。0050251win0。5025126miu202。0200000RORmax0。0050251
  q0。1qr0。0526316win0。5263158miu22。2000000RORmax0。0526316
  q0。3qr0。1764706win0。5882353miu9。2666667RORmax0。1764706
  q0。5qr0。3333333win0。6666667miu7。0000000RORmax0。3333333
  q0。8qr0。6666667win0。8333333miu6。1000000RORmax0。6666667
  q0。9qr0。8181818win0。9090909miu6。0222222RORmax0。8181818
  可见,如果你的对手掌握了比特币全球算力的10,那么你们的总下注金额需要大于22个区块奖励,今天而言也就是275个比特币以上。假设你们各自下注200个比特币好了。此时他冒着以47的概率损失掉自己的200个比特币的风险,博取5也就是10个比特币的超额收益(这还没扣掉区块奖励的机会损失)。这对他而言不是一个非常理性的选择。
  而如果他掌握了超过一半的算力,理论上他就不需要靠操纵开大小取胜了。完全可以对比特币网络发动双花攻击,谋取更大的利益。
  五、弱化PoW乃至放弃PoW共识机制就是弱化和放弃安全随机性
  根据上面的分析,比特币采用的PoW共识机制,实现了去中心化的安全随机性。
  任何对这一共识机制的弱化和放弃,都将减少熵的导入,进而弱化安全随机性,以及因此而带来的中心化依赖程度的增加又会增加系统脆弱性。
  这一必然性由计算机的停机问题所限定,并在数学上,最终由哥德尔不完备定理所约束。
  任何试图减少PoW对能量消耗的设计,都会给系统增加确定性,并节省黑客尝试攻破随机数的代价,从而给予黑客更多的时间和空间来完成破解。
  PoW本质上是一个映射函数,把物理世界的热力学过程映射成数字世界的比特过程,是一个连接两个世界的虫洞。
  黑客无法逆转物理世界的热力学第二定律,也就无法逆转数字世界的比特过程。只能重演,不能反演。这也正是时间之矢的单向性。
  去中心化的随机性,以及去中心化的时间之矢,这两点正是比特币系统中深藏不露的秘密武器。
  因此,中本聪在比特币白皮书第2页第3节开头第一句就这样写道〔5〕:
  我们提出的解决方案从一个时间戳服务器开始。
  (全文完)
  参考文献:
  〔2〕DonaldKnuth。TheArtofComputerProgramming。Volume2。Chapter3。
  〔3〕ImmanuelKant。CritiqueofPureReason。
  〔4〕IlyaPrigogine。Time,StructureandFluctuations。
  〔5〕SatoshiNakamoto。Bitcoin:APeertoPeerElectronicCashSystem。
  本文作者:刘教链(公众号:刘教链)
投诉 评论 转载

假如存在III级外星文明,为什么他们一直不发动宇宙战争?为什么?因为他们看不上我们的资源啊,可能他们呼吸的就是氢气,而地球氢气贫乏。你会去跟一个屎壳郎抢屎球吗?而且他们既然是高等文明那肯定也明白生物多样性的原理,保护还来不及呢干嘛要……华为的强大源于毛泽东思想指导现在流行这么一句话:在中国有两个公司,一个是华为,另一个就是其他。可想而知,华为在中国企业中的地位。大家都知道,华为是一个真正的高科技公司,是中国最伟大的公司之一,是一个非常有……马云基金会竞拍乾隆宝玺系谣言中新经纬5月1日电据香港经济日报报道,有微信公众号自媒体近期谣传马云艺术品投资团队拍得乾隆帝寿山石玺。马云基金会向该报澄清,对于马云参与拍卖上述藏品和天价聘请顾问的虚假消息,马……iOS15。4。1正式版紧急发布,这次是否值得更新?文明美无限等了半个月,苹果今天终于在今天凌晨发布iOS15。4。1正式版。对于部分iOS15。4正式版的用户来说,该版本就像救命稻草一般的存在。那么iOS15。4。……苹果向重要员工派发特别挽留奖,最高20万美元记者周姝祺编辑硅谷的科技巨头们正为了挽留人才动用薪能力。近日,据彭博社报道,有知情人士透露,苹果公司正在向少数工程师派发新一轮特别股票红利,作为留住关键人才不同寻常……上海启动35万份数字人民币红包发放4日晚间,据上海市政府新闻办官方微信上海发布最新消息,数字人民币五五欢乐购红包活动正式启动,总计35万份,面向所有在上海的公众开放。两个报名入口将于6月5日0时正式开启,……华为获准参与欧洲5G网络建设美国不再要求明确禁止2019年3月,美国驻德国大使理查德格雷内尔称,如果德国坚持使用华为产品,美国将减少情报信息提供量。美国国务卿迈克蓬佩奥几乎在同一时刻表示,使用华为产品的国家将不再获得某些情报……啤酒螺狮粉鸡胸肉,元气森林的新消费宇宙走到哪里了?元气森林又有新动作了,但这次不是推出新饮品。Tech星球独家获悉,和元气森林在同一办公地点,员工佩带相同的工牌,一家名为麦后科技的公司,正在研制并销售螺狮粉、酸辣粉等速食……互联网时代,圈子文化更容易导致信息茧房互联网社会人们以采集信息为生,恰似祖先以采集食物为生一样,拘泥于旧时代的人,或者在信息时代里守着某一分科垂类一亩三分地的人,就会像地理大发现中求稳而不可得的农耕文明一样,被涉猎……暂停信号缕现!双碳目标喂肥了谁的荷包?题记:碳中和、碳达峰目标的提出,在给新能源行业带来更为广阔发展空间的同时,也带来了居高不下的热度以及跃跃欲试分一杯羹的资本、企业以及地方政府。在这其中,地方政府作为规则的制定方……腾讯游戏2021年第四季度本土市场收入环比下降12未成年人用本报记者陈溢波吴可仲北京报道3月23日晚间,腾讯控股(00700。HK)对外发布其未经审核的2021年年度和2021年第四季度财务报告。报告显示,截至2021年年底,腾讯……巴比特专栏一、菠菜类应用成了黑客的提款机自去年EOS主网上线以来,菠菜类应用成了EOS平台的主流应用。但是,因为EOS内在机制的缺陷,让菠菜类应用纷纷沦为黑客的刀下肉,成了黑客的提……
融合通信作战平台解决方案魅族18系列搞定了强迫症队友?细看它的设计,确实如此首发小米有品上架倍思能量堆87W既是快充头,又是充电宝懂行买华为苹果半懂买OV,不懂行的才买小米?事实真的如此吗?旷视科技失血严重债台高筑子公司原项目总监带队出走变竞争对手在什么条件下水可以燃烧?12512GB!OPPOK10s升级6000mAh大电池,主小米手机的5个神奇功能,可提升手机安全性,红米手机也能使用加拿大通讯公司黑莓于近日停止经典款黑莓手机服务干货分享优炫数据库支持多业务场景(二)钠离子新能源大发展侧面说明新能源行业已经不能再投资了微信外卖的骗局全球15个低消费旅游国排行榜年上半年安徽省科技成果登记量大幅增长冬瓜怎么存放不腐烂小学三年级我与书的故事作文叹号造句用叹号造句大全吸血造句用吸血造句大全怎么快速调查婚外情(侦探调查婚内出轨大概多少钱)学会实现作文800字宇宙终结的最新理论黑矮星大爆炸猜那个神秘的女孩带你了解你所不知道的洛杉矶男性孕前检查注意事项

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利