需要说明的是,中本聪在创世论文中并没有提到密码朋克或者密码无政府主义。中本聪选择在2008年全球金融危机的时候将比特币公诸于世。并在介绍他的创新时说道:
“传统货币最根本的问题在于信心。中央银行在不使货币贬值方面必须足够可信,但历史上这种可信度从来都不存在。银行在保存和支付货币方面也必须足够可信,但银行却用货币来制造信贷泡沫,使私人财富减少。”
与密码朋克相关的文章相比,比特币创世论文的语言显得格外冷静和去政治化,文中没有出现政府或主权的字眼,仅将比特币描述成一个区别于传统金融的支付系统。
比特币设计及其背后的技术
中本聪结合密码学原理,基于P2P网络和分布式数据库,开发出了一种点对点的电子现金系统,即比特币系统,背后的技术我们称为区块链技术。该系统通过随机散列(hash)运算对以区块(block)形式存在的交易数据加上时间戳(timestamp server),并将该随机散列向全网广播,从而将区块合并入一个不断延伸的基于工作量证明机制(proof-of -work)的区块链(blockchain)中。
这一过程被形象地称为“挖矿”,如同矿工在矿场采矿一样,比特币的矿工们通过消耗计算机的计算能力解决哈希密码问题,成功者可以得到比特币作为奖励。
哈希算法是一种单向的加密方法,主要用于完整性校验和提高数字签名的有效性。哈希算法可以将任意长度的数据转换为一个长度固定的、不可逆的数字。比特币使用的哈希算法为SHA256,即任意长度的数据通过哈希运算都转换为一组由256个二进制数字组成的数据。
由于哈希算法的单向性,两个不同的初始数据基本不可能产生同样的哈希结果,也不可能通过对哈希结果的反向计算来推出初始数据。可见,哈希值只能依靠随机计算和不断试错才能得出。
初始的比特币来源于系统对哈希运算成功者的奖励。理论上,比特币的生产速度是预先设定的。不论全系统计算能力如何,基于分布式网络的比特币系统运算难度能自动调节,如果区块生成的时间短于10分钟,计算的难度会提高,反之则会下降。全网大致平均每10分钟确认一个区块,区块中包含这10分钟内被验证的交易。计算机比拼的是在10分钟内,谁最先算出一个值,这个值与上一个区块的哈希值以及这10分钟内验证过的交易记录合起来是最小的哈希值。
在一个没有权威第三方机构的支付系统中,为保证支付的有效性、防止双重支付,需要交易的信息公开透明,并且绝大多数参与方都认可。比特币系统利用时间戳机制解决了这个问题。
时间戳机制对每一个区块中的数据实施哈希运算,并将随机散列的结果广播至全网,宣布特定的数据在特定的时刻必然存在,网络中收到随机散列结果的节点会以此为初始条件之一,将其纳入新生成的随机散列中。同理,新生成的随机散列仍会向全网广播,通过后一个时间戳对前一个时间戳完成确认和增信工作。随着确认的节点增多,交易被确认,双重支付或可逆支付变得不可能。
时间戳是数字签名技术的核心,获得时间戳就等同于获取比特币的电子标识。为保护时间戳的安全性和稳定性,比特币系统设计了工作量证明机制。
传递时间戳时,哈希运算中引入了一个随机数(nonce),这个随机数要使得该给定区块的随机散列值出现所需个数的0,且随着0的数目的上升,找到这个随机数的工作量将呈指数增长,但检验结果仅需要一次哈希运算。
如前所述,哈希运算是单向随机的,无法通过算法反推出这个随机数,唯一可行的办法是随机抽取一个数,将其放入哈希运算,看结果是否满足要求。如果不满足,则继续尝试到满足为止。接收时间戳并进行确认的节点也同样需要反复试错来找到这个随机数,获得正确的哈希值。通过这样的穷举法,就构建了比特币系统的工作量证明机制。
毫无疑问,工作量证明机制通过提高欺骗的成本解决了互联网交易中的信任问题。工作量证明机制基于全网的CPU、显卡运算,排除了人为操纵去破坏其诚信机制的可能。如果绝大多数的节点是诚实的,则诚实的区块链会以最快的速度增长。有研究认为,“如果一个矿池运算能力足够大,它可以不披露最新挖掘出的区块,使其他矿工浪费时间重复挖掘,从而控制比特币。”这就是市场传闻的51%攻击。事实上,最长的区块链包含着最多的工作量,如果攻击者想要修改某一区块,必须重新完成目标区块的工作量及其后所有区块的工作量,这几乎是不可能的。
非对称加密技术是相对于对称加密而言的。在对称加密技术下,加密和解密适用同一种算法。只要知道加密算法,就可以通过逆运算进行解密。对称加密的一个明显弊端是密钥的保管和传递风险较大,实际应用中逐步被非对称加密技术取代。
在非对称加密技术下,密钥被分解为公钥和私钥,发起方利用接收方的公钥对信息进行加密,接收方通过自己的私钥进行解密。目前应用比较广泛的非对称加密技术主要有:RSA和ECC算法。其中,RSA算法基于大数分解问题,ECC算法基于离散对数问题。相比而言,比特币所采用的ECC算法在安全性、计算量、存储空间、带宽要求等方面都要优于RSA。
比特币系统中,接收方A如何确认信息是来自发起方B的?发起方B怎么证明这条信息是由自己发送给接收方A的呢?这类信任问题是靠非对称加密技术解决的。发起方B要证明信息是由自己发送给接收方A的,需要完成两步:
一是用自己的私钥对原始信息加密;
二是用A的公钥再次加密;
接收方A要确定这个信息来自发起方B,也需要完成两步:
一是用自己的私钥解密;
二是用A的公钥再次解密。
实际使用中,比特币地址就是公钥,钱包文件就是私钥。
最后我想说明的是,货币主要就是一种经济现象,承担着流通手段、价值尺度、贮藏手段等职能,涉及经济运行中的“效率”问题。比特币是否是货币,或数字货币,我在此不表。比特币的诞生及其设计确实和密码学关系甚密,也确实在一定程度上区别于传统的货币体系。但我认为我们更需要关注的是比特币背后的区块链技术及其密码学内核。科技本无好坏,而至于如何应用、发展以适应市场才是焦点。
文章作者:Mercina-zy
原文链接:
https://mp.weixin.qq.com/s/3XHpzn4mL_L4yTPhRBrEsQ