分享

区块链中的数学思想概述

 佬总图书馆 2019-07-08
作者区块链基础设施实验室 吕雯   张秦龙数学在人类文明的发展中起着非常重要的作用。牛顿当年通过数学计算预见了发射人造天体的可能性;爱因斯坦相对论的质能公式从数学论证的角度预示了原子能时代的来临;正是麦克斯韦方程先从数学上论证了电磁波,后来才会有电磁波声光信息传递技术的发展;电子数字计算机的诞生和发展更是在数学理论的指导下进行的。当前,随着电脑应用的普及,信息的数字化和信息通道的大规模联网,依据数学所作的创造设想已经在我们的生活中扮演越来越重要的角色。区块链从单笔交易的发起、确认,到特定时间内所有交易集合的打包成块、达成全网共识,数学算法都作为一种规则和通讯工具,通过信息交互和确立信任,协调各节点之间的一致行动,实现对等网络的有序、持续运转。如果说区块链中各种巧妙、完美设计的规则是其灵魂,那么深深渗透其中的数学思想则是血液,从而支撑整个区块链体系信任机制的建立。

blockchain

交易的发起和验证

  • 交易的发起
单笔交易是整个区块链的基本元素,这里面主要包含价值输出方发起交易、其他节点验证交易两个动作。整个交易的信任完全是依赖非对称加密算法进行保证,非对称加密算法需要两个密钥:公钥和私钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。比如现有付款人1->收款人2、付款人2(前一交易的收款人2)->收款人3两笔交易,付款人1->收款人2的交易为付款人2->收款人3交易的前序交易。付款人2用自己的私钥制作数字签名,即用前序交易中涉及到收款人2(自己)的信息Y(一般包括前序交易的唯一哈希值、收款人2的公钥地址哈希、收款人2在前序交易中的排序、收款人2收到的金额等信息)作为明文计算密文X。付款人2将X作为数字签名和自己的公钥地址附在交易中发给收款人3。
  • 交易的验证
付款人2到收款人3的交易发起后,各节点需要验证价值由付款人2发出以及价值可追溯到付款人1->收款人2的交易数据。验证节点用付款人2提供的公钥地址解密数字签名X得到明文Y,并与区块链上记录的内容进行比对,验证付款人2提供的公钥地址是否由付款人2持有(付款人持有账户);同时,计算付款人2提供的公钥地址的哈希,继续与Y中的收款人2的公钥地址哈希进行比对,验证付款人2提供的公钥地址是否为前序交易的收款地址(付款人账户持有价值),进而验证发出的价值是否可追溯到付款人1->收款人2的交易。如两次比对一致,则付款人2->收款人3交易有效。

区块的打包和上链

  • 区块的打包
在分布式网络下,为了降低记账成本并保证安全性,不是逐笔对交易进行全网共识进而上链,而是将一段时间内所有交易数据汇总打包成块,并通过竞争性记账规则确定上链。在区块打包过程中,数字摘要是重要的工具,它是将任意长度的消息变成固定长度的特定短消息,最后将一个区块内包含的所有信息概括为一个数字摘要,不同的原始消息会生成不同的摘要,但根据摘要无法逆推出原始消息。区块由区块体和区块头组成,区块体包含了大量交易信息,每笔交易有唯一地哈希值代表,往上走通过把相邻的两个哈希值合并成一个字符串,然后运算这个字符串的哈希,这样得到了一个“父哈希”,同样的计算方式往上走,可以得到数目更少的新一级哈希,最终形成一棵倒挂的树,到了树根的这个位置,就剩下一个根哈希了,也就是Merkle根节点,它总结了所有的交易信息。

除了Merkle根节点,区块头还包括上一区块的头哈希值、时间戳、难度值和随机数,而头哈希是区块头五要素的哈希值。一个头哈希就可以总结整个区块所有交易信息、时间戳、前一区块头哈希、工作量证明等所有信息,任何信息的改变都将直接引起头哈希的变化。

  • 区块的上链
区块打包完成后,通过共识机制解决了分布式账本结构下达成一致并抗攻击的问题,它解决了去中心化基础上的节点间互信问题,是保障区块链系统持续安全运行的关键。基于分布式网络中各节点的信任基础不同,可以分为工作量证明机制、拜占庭容错机制等,它们在节点进出进制、抗攻击性等方面各有优势。以工作量证明机制为例来说明共识机制的原理。达成共识需要一定的标准和规则,达到标准就可以获取记账权,同时这个标准或者规则是不能低成本实现的,否则记账的权威性和安全性容易受到挑战。基于数学难度的计算工作量证明机制简单理解就是一份证明,用来确认你做过一定量的工作。因为监测工作的整个过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。比如现实生活中的毕业证、驾驶证等等,也是通过检验结果的方式(通过相关的考试)所取得的证明。工作量证明解决了完全去中心化、节点自由进出的情况下,记账权的确认问题。

同时,工作量证明也保障了抗攻击性。多数人投票的最长链投入了最大的工作量,如果大多数CPU工作量被诚实的节点控制,诚实的链条会增长很快,从而超过其他的链。攻击者为了修改过去的块,必须重做当前块以及之后的所有块,并赶上并超过诚实节点的工作。当下一区块添加时,慢的攻击者赶超的可能性以指数级方式减少,从而抵御恶意攻击。

北京大学数学系密码学方向王倩雯博士亦对此文有重大贡献。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多