English  简体中文
   

从密码学的角度浅析区块链原理

2018-05-14       撰稿人:张妍


中本聪结合密码学原理,基于P2P网络和分布式数据库,开发出了一种点对点的电子现金系统,即比特币系统,背后的技术我们称为区块链技术。该系统通过随机散列(hash)运算对以区块(block)形式存在的交易数据加上时间戳(timestamp server),并将该随机散列向全网广播,从而将区块合并入一个不断延伸的基于工作量证明机制(proof-of -work)的区块链(blockchain)中。

这一过程被形象地称为“挖矿”,如同矿工在矿场采矿一样,比特币的矿工们通过消耗计算机的计算能力解决哈希密码问题,成功者可以得到比特币作为奖励。由于哈希算法的单向性,两个不同的初始数据基本不可能产生同样的哈希结果,也不可能通过对哈希结果的反向计算来推出初始数据。可见,哈希值只能依靠随机计算和不断试错才能得出。

在一个没有权威第三方机构的支付系统中,为保证支付的有效性、防止双重支付,需要交易的信息公开透明,并且绝大多数参与方都认可。比特币系统利用时间戳机制解决了这个问题。

时间戳机制对每一个区块中的数据实施哈希运算,并将随机散列的结果广播至全网,宣布特定的数据在特定的时刻必然存在,网络中收到随机散列结果的节点会以此为初始条件之一,将其纳入新生成的随机散列中。同理,新生成的随机散列仍会向全网广播,通过后一个时间戳对前一个时间戳完成确认和增信工作。随着确认的节点增多,交易被确认,双重支付或可逆支付变得不可能。

时间戳是数字签名技术的核心,获得时间戳就等同于获取比特币的电子标识。为保护时间戳的安全性和稳定性,比特币系统设计了工作量证明机制。传递时间戳时,哈希运算中引入了一个随机数(nonce),这个随机数要使得该给定区块的随机散列值出现所需个数的0,且随着0的数目的上升,找到这个随机数的工作量将呈指数增长,但检验结果仅需要一次哈希运算。

如前所述,哈希运算是单向随机的,无法通过算法反推出这个随机数,唯一可行的办法是随机抽取一个数,将其放入哈希运算,看结果是否满足要求。如果不满足,则继续尝试到满足为止。接收时间戳并进行确认的节点也同样需要反复试错来找到这个随机数,获得正确的哈希值。通过这样的穷举法,就构建了比特币系统的工作量证明机制。毫无疑问,工作量证明机制通过提高欺骗的成本解决了互联网交易中的信任问题。工作量证明机制基于全网的CPU、显卡运算,排除了人为操纵去破坏其诚信机制的可能。如果绝大多数的节点是诚实的,则诚实的区块链会以最快的速度增长。

此外,在比特币系统中,接收方A如何确认信息是来自发起方B的?发起方B怎么证明这条信息是由自己发送给接收方A的呢?这类信任问题则需要依靠密码学中的非对称加密技术解决了。
中国密码学会电子认证专业委员会 版权所有
地址:北京市海淀区闵庄路甲89号 4号楼
联系电话:010-82546543-686
京ICP备05046059号-4