美国计算科学家彼得·丹宁(Peter Danning)和泰德·刘易斯(Ted Lewis)认为:随着加密货币的验证方法在各个领域找到用武之地,加密货币的创新基础也许会比货币本身存在得更久。
2009年1月3日,中本聪开始销售一种新形式的货币,并运营相关的支持系统,称之为比特币加密货币系统。之所以有比特币(BTC)这个名字,是因为它是一种能够像硬币一样使用的数字货币,而“加密”(crypto)二字表明:比特币得到加密方法的保护。比特币有着秘密的根源:世人仍然不知道中本聪是谁,但他可能是哈罗德·托马斯·芬尼二世(Harold Thomas Finney II)。芬尼是一位著名的密码学家,创造过一种担保交易系统,类似于比特币交易使用的系统。他也是完美隐私(PGP)公司雇用的开发员。(PGP是一种广泛运用于个人编码密钥的协议。)2009年,芬尼是第一位接受比特币的人。但我们也许永远无法确切地知道中本聪是谁,因为芬尼在2014年过世了。
为了便捷地储存用于交易的密钥,比特币用户需要购买纸质凭证或塑料卡片。一些储存了密钥的卡片制作得很精细,运用了全息图之类的防篡改技术,就像这张卡片的特写图像中显示的那样。也能找到采用与硬币相似的代币形式的储存装置
“比特币”这个词令人联想起这样一幅画面:以比特型样(bitpattern)为编码的一枚真正钱币。比特型样最大的问题在于:拥有者可能保留一份数字副本,试图用同一枚货币进行另一次付款。这一双重支付难题困扰了所有虚拟货币概念。中本聪希望有个系统能够确保一笔钱只能花出去一次,没有双重支付。
银行早已知道如何避免双重支付:一笔数字交易由银行来完成,而不是由消费者。银行对于所有帐户的数据库拥有完全控制权,能安全地从支付者转移一笔资金到收款人的帐户。银行业的基础是对于银行系统的信任。中本聪摒弃了集中式数据库的理念,转而寻求一种没有可信任媒介、或没有单点故障的系统。无法侵入单个数据库的分布式系统正合需要。
从而,中本聪将比特币定义为“数字签名的链”。为了理解他的意思,就考虑一下这个例子,比如爱丽丝要支付1比特币给鲍勃。爱丽丝可以生成一个凭证,即“爱丽丝支付了1比特币给鲍勃,爱丽丝签名”。凭证需要爱丽丝的数字密钥签名,数字密钥对应一个数字公钥,任何人都可以用公钥来核实爱丽丝的所有权。凭证是对交易的记录,该笔交易储存于记录所有交易的账簿中。爱丽丝的支付能力是由她的所有收支交易的整段历史来决定。当交易完成时,账簿会显示爱丽丝的净值减少1比特币,而鲍勃的净值增加1比特币。换言之,加密货币是记录于账簿中的交易产生的值。我们扫描账簿,可以查出任何人在任何时刻的净值。
基于交易历史来计算值的理念在许多领域得到应用。一个熟悉的例子是对不动产的所有权。这份凭证中说,“到本日为止,爱丽丝是此处所描述的不动产的唯一拥有者;签名、公证人。”当鲍勃想要购买这个不动产时,托管公司雇用产权调查事务所去审查之前的所有买卖和抵押记录,追溯到房屋建成之时,以此来核实爱丽丝确实是唯一的合法所有者。不动产交易的踪迹被称为“链”。尽管当前的所有权是链整体的一部分,但所有权的正当性要视整段历史而定。假如所有权公司被替换成电脑系统,交易统统变成电子资金转拨,那么中本聪对值的定义与这样的情景类似。
所有比特币交易的记录被汇编成约为4MB大小的区块。所有区块(追溯至2009年比特币横空出世时)的链表称为区块链。尽管区块链能够储存于中央数据库,中本聪却希望将它分布储存于网络的众多计算节点,从而免除单点故障的风险。因此,在分布式的节点网络中存有区块链的许多副本,但通过对源自数字签名和散列值的链进行复杂布置,整个区块链得到保护,免于被篡改。多数同意原则的一种形式用来决定哪个区块是有效的,能添加到区块链中。要在未被察觉的情形下改动任何节点上的副本的内容是近乎不可能的。
比特币系统附带有称为“钱包”的用户介面软件。用户登录进入钱包,再具体指定交易。钱包处理所有具体事务,譬如:将交易表示成签名凭证、向网络广播交易、从网络接收交易等,这些交易会影响钱包中的资金。通过称为比特币兑换的经纪系统,钱包将美元之类的货币兑换成比特币。
签名与散列值
在线上交易的世界里,两个概念绝对是基本中的基本:数字签名与散列值。用户使用比特币钱包的话,能获得一对匹配的密钥(一个公钥与一个私钥,每个密钥一般都由256个比特的型样组成),它们是公钥密码系统的基础。在区块链中,信息加密不重要,信息的真实性才重要。爱丽丝“支付1比特币给鲍勃”的交易行为被编码成“支付1比特币给鲍勃的公钥”,由爱丽丝的私钥签名,再提交给区块链。只有鲍勃能“兑现”这笔交易,换句话来说,就是用他的私钥去解锁交易。数字签名保证了交易的有效性记录在账簿中。
区块链是由区块组成的链表,每个区块包含交易记录、前一个区块的散列值(基于文件中的比特而生成的一串独一无二的比特)、交易的默克尔散列值(这种方法重复地对一对散列值计算其散列值,直至仅剩下一个总散列值)和作为工作量证明(POW)副产物而产生的随机数
但签名并未得到保护,无法抵御双重支付。如果爱丽丝往区块链里插入两次相同的“支付给鲍勃”交易,双重支付就可能发生。区块链协议不会接受爱丽丝的重复交易,但如果鲍勃能在协议退回重复交易之前就“取现”成功,那么鲍勃获得两次支付,爱丽丝却只支付过一次。
中本聪使用一系列复杂的密码技术解决了这个问题,而这些技术基于所谓的散列函数。由一个特别的函数接受一个文件的所有比特,进行拌码,再将拌码成果压缩成固定数量的比特(一般为256个比特),最终产物就是散列值。设计巧妙的散列函数会对文件原本进行彻底的拌码,输入的信息改变1比特的话,都会导致输出的大部分比特变动。散列函数是不可逆转的:给定输出结果,找到生成它的输入信息的唯一办法是搜索所有可能的输入信息,这个过程耗费的时间会超过宇宙的余生。为了确保没有人能够篡改区块链中的任何交易,每笔输入区块链的交易都伴随着散列值。验证一笔交易的有效性非常简单:计算它的散列值、和伴随交易一起储存的散列值进行比较。
区块链中一个交易区块的散列值通过综合如下的数值进行计算:前一个区块的散列值、当前区块的所有交易的散列值、随机数(nonce,一个仅用一次的随机数)。这种联接区块的方法称为棘轮法,因为对一个区块的任何变动都要求重新计算所有区块的散列值,一直到区块链尽头为止。
工作量证明
使用一种被称为“工作量证明”(POW)的算法后,使得计算出一个区块的新散列值要:花费时间、费用昂贵、有意为之、理由充分。如果计算出散列值所需的时间差不多等同于网络给区块链添加新区块所花费的时间,那么黑客就不可能追赶上,无法用重新计算后的区块链来取代原始的区块链。
随机数在POW中扮演了关键角色。随机数不是任意数字,而是特定的随机数,导致区块的散列值始于一定数量的前导零比特。例如,如果零的数量的参数是60,区块散列值必须起始于60个零比特。要达到这种格式,唯一的方式是找到正确的随机数,当该随机数和区块的所有其他散列值相结合时,会产生一个以60个零比特起始的区块散列值。因为散列函数是不可逆转的,这个过程只能通过重复尝试随机数来完成,每一次的随机数会大于前一个随机数。
比特币的零的数量的参数调整频繁,所以POW平均要花费大约10分钟。这意味着一位黑客要预计花费大约10分钟的计算时间去寻找到一个合适的随机数,该随机数为一个欺诈性的区块生成有效的散列值。反过头来,这意味着,黑客超过某位正在将新的有效区块联接到区块链上的用户的概率是微乎其微的。中本聪建立的系统确保POW越来越难(出现越来越多的前导零),因此新的随机数也越来越难以发现。当比特币总数达到2100万时,寻找新的随机数变得近乎不可能。
矿工
矿工是一种特殊的节点,为区块链所计划的新区块计算POW,通过执行POW、添加区块的方式来构建区块链。矿工的工作步骤如下:
向所有节点广播新的交易。
每个节点将新的交易收集进一个区块。
每个矿工节点执行POW,寻找新区块的散列值。
并行工作的不同矿工会发现不同的随机值和散列值。
当一个矿工节点完成POW,它向所有节点广播区块及它的散列值。
一个节点通过核实签名和所有交易的散列值,验证新区块有效,再将新区块添加到区块链的本地副本中。
接受区块之后,矿工节点开始工作,目标是生成区块链中的下一个区块,并使用已接受的区块的散列值作为前一个散列值。所有其他矿工都不再尝试去验证新区块,而是从头开挖下一个区块。
第一个发现新区块散列值的矿工获得若干比特币的奖赏。
矿工不断寻找积聚大量计算能力的方式,以便赢得添加新区块到区块链的竞赛,从而获得奖赏。挖矿是一门大生意,如今出现了专为计算散列值而设计的芯片。这种环境鼓励矿工卡特尔组织的形成,该组织总共控制了全网络51%以上的计算能力,他们合作制造新区块、分享奖赏。他们拥有至少51%的计算能力,能比网络中的任何节点更快完成POW。这一幕被称为“51%攻击”,因为它也可以用来给区块链添加欺诈性区块。
为了避免这样的作弊,中本聪系统严重依赖自我利益而不是信任。他宣称,“假如一位贪婪的攻击者能够聚集起比所有诚实节点更多的CPU能力,他会在两种做法之中选择其一:要么使用那些计算能力来欺骗别人,窃取他们的支付款;要么用那些计算能力来生成新比特币。他应该会发现,按照规矩来办更加有利可图,这样的规矩利于他获得比所有其他用户加在一起更多的新比特币,好过削弱整个系统和他自身财富的有效性。”但中本聪忽视了计算能力达到51%的卡特尔组织的可能性。
区块链的衍生产物
尽管区块链是为了比特币而发明出来的,但许多人看到了区块链用于其他用途的潜力,譬如处理去中心化网络中的公共记录和组织记录。有人提议将互联网的DNS(域名系统)迁移到区块链中,这样会运行得更快,又有足够的灵活性应付停电。尽管支持者有巨大的热忱,但依然存在一些重要问题需要暂停,需要在区块链获得广泛采用之前获得解决方案。这些问题包括区块链的性能、信任、加密货币的波动性、可靠性,以及运营区块链带来的全球能源总损耗。
性能
按照设计,中本聪的区块链的更新有着极大的计算量。结果就是:比特币网络的总产出大约为每秒7笔交易,而一笔交易提交后,大约需要10分钟才能结束这笔交易。相比之下,当今的信用卡公司和银行每秒钟能处理数千笔交易,而且结束交易差不多只需要瞬息的响应时间。2017年8月1日,当比特币区块链的区块从1MB变成4MB时,区块链经历了一次硬分叉(hardfork),比特币的一个更轻盈的版本(被称为“比特币现金”)被创造出来,旨在改善交易的处理速度。
除了大规模计算能力,区块链还需要大量的存储。2017年,区块链占用了100GB的存储空间,在一台个人计算机中下载和验证一个新副本要花费好多天时间。要支持一种有数十亿用户的加密货币的话,区块链需要达到极大的规模。这种区块链显然无法按比例增加到那种规模。
至少还有十多种其他区块链架构,所有架构都旨在降低验证新区快、将它添加到区块链中所需的计算工作量。最有前景的一种方案是以太坊(Ethereum),采用权益证明(POS)而不是工作量证明(POW):在POS中,当一个新区块将要添加进区块链中时,拥有更多货币的节点在投票决定中拥有更大的权重。但是和比特币相比的话,这些类型的加密货币看来更容易受到51%攻击的影响。对于这些加密货币进行测试,查明哪些货币可靠、容易扩大规模、能抵御黑客攻击,将会花费一些时间。
另一种替代方案正在由超级账本(Hyperledger.org)项目进行探索,它的目标是生成一种商业区块链的开放式架构。他们已经定义了一系列的“层”,每种层提供一种关键功能。其中对于性能最为至关重要的是共识层,一旦节点间的一个共识达成后,它就向区块链添加提议中的新区块。他们正在试验POW的替代方案,这些方案需要的计算量会少得多,譬如使用抽奖机制选择出一个节点,接着由那个节点提供提议中的新区块,或者只有当多数投票接受新区块时,才接受提议中的新区块。当放松关于信任的假设时,这些新选择就成为可能。在中本聪的网络中,大家都不信任其他人;其系统的设计是:在每个节点保持匿名和认为其他节点都不值得信任的情况下,形成关于往区块链添加新区块的共识。在新系统中,某个组织内的成员可以暴露自己的身份,从而拥有更高的基本信任水平。
信任
区块链网络的矿工正在变成高度专业化的职业人士,依赖专门为POW设计出的昂贵芯片。因为许多普通用户负担不起当矿工的花费,大多数计算能力就集中在网络中的少数派手中。在近期发生的价值7900万美元的以太币遭窃事件之后,矿工提议相互合作,这样他们就能回溯和修改区块链,删除那些实施盗窃的交易。尽管这种做法会让犯罪分子丧失贼赃,但它也会侵蚀网络的信任基础。矿工的联合体还可能做其他什么事呢?
有效交易构成的正常区块链由区块A1至A7组成。一名黑客尝试插入欺诈性区块B4。因为使用了工作量证明(POW)算法,黑客不得不复制从A4至A7的所有区块,令区块链分叉,重新计算它们的散列值。POW使得重新计算一个区块的散列值的时间与将下一个新区块添加进区块链的时间相同,黑客永远无法追赶上,也就无法强行用分叉的区块链取代正确的区块链
波动性
加密货币的汇率具有相当的波动性,这就怂恿投机者大量买进和囤积比特币。比特币总数有着2100万的上限,这个稀缺性因素进一步增加了比特币的波动性。没有中央政府的银行监控比特币和保持币值的稳定。出于这个原因,中国政府已经禁止了ICO(首次代币发行)的投机行为,禁止以加密货币来换取对初创企业的投资。
比特币价值的波动性很可能与社会和政治的不确定性相关,尤其是当人们对政府的信心下降时。有段时间,传闻中国掌握最多数量的流通比特币,导致比特币价格激增,因为大家担心中国可能将人民币贬值。2016至2017年间比特币汇率的指数式增长也许是对欧洲和美国政治变化的反应。
经济学家威廉·卢瑟(WilliamLuther)来自俄亥俄州的凯尼恩学院,他宣称:比特币已经失败,无法流行起来,因为将资金从政府担保的货币转换成比特币的花费过高。比特币接受者需要有自己的账簿副本(在2017年,账簿占据100GB的存储空间)和足够大的计算能力来快速计算散列值和进行数字签名。就算他们进行了兑换,比特币的波动性也非常可能夺走他们的财富。
能耗问题
我们认为,最大的问题在于POW点子本身。POW的用意是要消耗大量的计算量,甚至是在配置了全球最强大的电脑和专门设计的芯片之后。这种巨大的计算荷载意味着POW要消耗大量能源。各种估量表示,全球所有数据中心当前的电力需求量大约占全球用电量的7%。区块链的大规模运用会显著增加这个总量。这套货币系统要求将地球如此多的能源用于发电,我们真的想要这样的货币系统吗?假如某人找到办法来关闭电力网的话,货币系统是不是变得更加容易全面崩溃?
创造新系统
现在看来,最有可能发生的情况是:比特币的应用仍然会受到限制,直到关于比特币安全性和适应性的问题得到大家都赞成的解答,但这类解答在眼下尚不明显。另一方面,区块链棘轮机制的构思早已经传播到相关技术中,假如它的一些问题能够解决的话,它能够发展得更远。譬如说,诸如Instagram和Facebook的社交网站中使用的信号协议(SignalProtocol)利用了棘轮机制,就是受到区块链技术的启发。这是技术应用出现意料之外的转向的又一个范例。要判定哪些科技新发展会经受住时间的检验?这才是难以预测的问题。
资料来源American Scientist
责任编辑 岳峰
链 接
多数共识(Majority Consensus)是否奏效?
对于任何分布式账簿,在决定新区块的哪个副本有效和哪个副本应该抛弃时存在严重的问题。如下事实加剧了问题的复杂性,即有些矿工可能不诚实,会试图插入欺诈性区块(那会给他们许多比特币的回报)。2017年,比特币区块链中有将近5 000名矿工。中本聪的工作量证明(POW)是一种聪明的方式,使用多数成员的计算能力来克服不诚实的少数成员。此外,挖矿需要非常快的电脑,会消耗大量电力。比特币矿工只有在他们赢得POW竞赛时才获得酬劳。假如一位矿工变得极其强大,让所有其他矿工都失去了生计,会发生什么情况?挖矿群体会萎缩至十几位参与者,只有他们才负担得起非常昂贵、快速、耗能巨大的计算机。