区块链与人工智能:数字经济新时代
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第四节 比特币协议与发展

一、比特币协议概述

比特币的本质是一种协议,在中本聪的论文中提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何金融机构。虽然数字签名部分地解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付(Double Spending),那么这种系统也就失去了存在的价值。

中本聪提出了一种解决方案,使现金系统在点对点的环境下运行,并防止双重支付问题。该网络通过随机散列(Hashing)对全部交易加上时间戳(Timestamp),将它们合并入一个不断延伸的基于随机散列的工作量证明(Proof-of-Work)的链条作为交易记录,除非重新完成全部的工作量证明,否则形成的交易记录将不可更改。最长的链条不仅将作为被观察到的事件序列(Sequence)的证明,而且被看作来自CPU(或者当前流行的ASIC比特币挖矿专用芯片)计算能力最大的池(Pool)。只要大多数的CPU或者说各种芯片的计算能力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成最长的、超过攻击者的链条。这个系统本身需要的基础设施非常少。信息尽最大努力在全网传播即可,节点(Node)可以随时离开和重新加入网络,并将最长的工作量证明链条作为在该节点离线期间发生交易的证明。

二、比特币协议特点

通过比特币协议,我们可以发现比特币的价值远不止货币本身,因为它构建的是货币的互联网协议。大部分人只知道作为数字货币的比特币,而真正有着深远意义的是作为潜藏协议的比特币,它还有着封装并分发合约的功能。比特币封装了以下四项基本技术。

电子签名:无法伪造,允许一方安全地核实同另一方的交易。

点对点网络:如同BitTorrent和TCP/IP一样,几乎无法被摧毁,无须强大中央机构的维护。

Proof-of-Work(工作量证明):可以防止用户同一分钱花两次,同时还无须中央机构来验证交易是否有效。比特币为矿工设立了奖励机制,他们利用算力强大的计算机,来完成验证交易是否有效的工作。矿工可以从这种活动中获得新的比特币作为奖励,任何有足够算力的人都可以参与挖矿,并获得奖励。

分布式总账:在每一个比特币钱包中,你都能查到整个比特币系统的每一笔交易记录。区块链意味着任何人都可以去检验某项交易是否发生过。

通过这四项基础技术,比特币具有了很多特点,它是稀缺的(中央银行没法滥发货币),持久的(不会像金子一样降解),便携的(可以以电子的或者只是你大脑记忆中的一串数字的形式存储、传播),可分的(一个比特币可以分成一亿份或更多),可证实的(每个人的区块链里都能查到),可替代的(每个比特币本身都是可匿名且一样的),难以伪造的(几乎不可能被破解或篡改),可被广泛使用的,许多互联网技术人才正在花时间不断改善比特币。

对于比特币的未来,人们还有各种各样的担心,比如加密算法的安全性、交易速度、区块链的大小、交易的不可逆性、被盗或者被黑的可能性。所有这些都是可以被第三方服务和协议升级解决掉的。不妨把现在的比特币协议看作数字货币1.0,就像曾经的HTTP 1.0一样,从最初只有简单文字和图片的浏览器演化成现在的互联网,以后也会有更丰富的数字货币世界。

相较于现在的英镑或者美元,比特币有很多明显的优势,上文已经提到不少。但更重要的是,比特币这套协议可以支持当下不可能实现或者实现昂贵且需要强力第三方的金融交易服务。

比特币自带有脚本语言,不但支持“把钱从X汇给Y”这种简单交易,还支持类似于“要求N方中的M方同意,才算完成交易”这样的条件交易。举个例子,设定一项遗嘱,只有当大部分继承人同意他们的父母已经过世时,该遗嘱才会生效,完全不需要任何律师;或者只有当三方受信签名中有两方同意才能批准某项支出;或者一项Kickstarter上的众筹计划,只有多数支持者同意达到某项指标时,钱才会支付给发起人。所有这些案例中,参与仲裁的人自己都是不能单方面拿走钱的,他们只能代表自己做出同意和反对的决定,但最终结果完全取决于整体结果是否达到预设条件。

当然,脚本语言也能支持基于其他参数的交易,比如基于时间的交易,可以衍生出自动抵押贷款、信托和津贴支出,或者是由全网络节点共同审计的基于随机数字的彩票抽奖。你还可以设计出智能财产,比如一种汽车电子钥匙,只要买方向卖方支付一笔钱,卖方的汽车钥匙就失灵,买方的钥匙开始工作,可以用来开车。在不久的未来,当你的无人驾驶汽车在其他地方被堵住了,给邻居一点比特币,就可以借他的车一用。

只要每个人都有整个比特币的区块链的备份,也就都能够核实你的交易。你可以将任意一份文件加密,给个时间戳,放到区块链中,任何人都可以随时核准这份文件。如果你用自己的私钥给文件签名,其他方也用他们的私钥签名,这份文件就成了不可否认的共同署名的合同,可以彻底无须拜托公证员。基于比特币思想的还有域名币(Namecoin)计划,解决了域名分配问题;或者博彩交易所(SatoshiDice),杜绝了出老千的可能;P2P股票(BitShares)则能够在没有传统意义上的证券交易所的前提下实现股票的买卖和分红。

最重要的是,比特币提供了开放的API接口,可以用于创造安全的、可编写脚本的电子现金交易。如同Web将出版平民化一样,比特币可以让构建新的金融服务更加平民化。你可以用任意第三方或者代码本身来订立、修改或者执行电子合同,完全免费、快捷,不用担心伪造或者撤回。传统银行或者信用卡公司只会把自己的支付基础设施开放给几家公司,而比特币则向所有人开放。

比特币从最初的0.1版本后,由比特币开发团队不断进行维护和升级,根据市场的需求逐渐增加了一些新的功能,使得比特币协议更加完善。我们就最近的比特币协议升级情况,来说明比特币的最新发展情况。比特币核心开发团队曾在2013年的第三季度中发布了两次协议升级,其中一次是计划升级,还有一次则是为了响应一个关键性错误,这个错误会阻止多个节点索引最新的比特币交易。

三、Bitcoin Core

比特币基金会从0.9版本开始将比特币核心协议更新正式分离出来,删除了一些旧版本中的附加功能,并将核心协议命名为比特币核心(Bitcoin Core)。长期以来,人们没有很好地把比特币钱包(Bitcoin-QT中本聪客户端)和比特币网络区分开,比特币核心开发团队命名Bitcoin Core 0.9,目的是强调Core的存在,即Bitcoin Core 0.9是为比特币网络而设计的。而在其后的非核心(Non-core)版本开发中,比特币核心团队则会负责为比特币玩家设计客户端钱包。Bitcoin Core是BTC的唯一开发团队,由一群资深的数字货币开发者组成,基于信念,对比特币进行较大的修改是他们所不能接受的,包括SegWit2X在内的扩容一直未能顺利进行。

2016年2月23日,Bitcoin Core 0.12版本开放更新,官方表示此次可能是有史以来最大规模的一次升级,共包含了22项改进内容,其中包括7倍签名认证速度、限制上传流量的功能、通过内存池设限防崩溃功能、交易验证费用增加选项、交易传递规则提升、自动选择Tor网络运行、ZeroMQ消息提醒接口开放、钱包所需硬盘空间骤减、为矿工提供更快的区块组合能力9项重要升级。

Bitcoin Core 0.12版本发布不到两个月,2016年4月15日Bitcoin Core 0.12.1版本发布。该版本就比特币网络的延展性进行了改进。最突出的升级特点在于实现了对软分叉的兼容,从而进一步保证了侧链和闪电网络在比特币网络中的技术实现。侧链和闪电网络作为能够打通比特币生态圈的发展方向,将在本部分第四章中进行具体探讨。

2016年10月,准备近一年后,比特币扩容关键技术——隔离见证(Segregated Witness)被正式引入Bitcoin Core 0.13.1版本。隔离见证是为了让区块链承载更多交易信息而把见证信息(交易合法背书)隔离出区块的技术方式。采用隔离见证可以用软分叉增加区块容量,也可以更好地支持闪电网络。

2017年3月,Bitcoin Core 0.14版本发布,相比之前版本,其同步速度进一步提升,技术改进主要体现在四个方面。第一个功能改进就是使用布谷鸟散列算法(Cuckoo Hashing)更新了签名缓存,使八核以上的多核CPU能得到有效利用。第二个功能改进就是BIP152致密区块的实施,能够减少P2P网络节点广播区块所需的带宽数量。第三个功能改进体现在P2P代码重构,集中改善了并发性和吞吐量。第四个功能改进是将内存池存储到磁盘,节省了重新下载关机时未确认交易的时间,使包含这些未确认交易的区块可以被更快验证。

由于BCH硬分叉的发生,Bitcoin Core在2017年9月更新的0.15版本不再支持任何运行的SegWit2X分叉节点,并引入了一些新功能提升网络性能,包括通过链状数据库重组改变数据结构使新节点的初始同步时间减少了约40%,以及增强网络分叉安全性等。

四、比特币区块链分叉

分叉(Fork)是由于新的共识规则发布后节点没有全部升级引起的,影响新旧节点对结构有所改变的区块的验证结果。分叉的技术解释我们将在第2部分中展开阐述。从结果上看,没有升级的旧节点不接受新节点生产的交易和区块会导致硬分叉(分裂成两条链),旧节点接受新区块形成的是软分叉。早在2013年3月12日,比特币区块链即出现过版本漏洞引起的意外分叉。分叉持续了24个区块后,被主链赶上而成了孤链,这个漏洞也在后一版的协议中被修复。

图1.1为区块链分叉示意图。

图1.1

(一)扩容的争议

一般来说,当社区发现意外的分叉会通过呼吁旧节点升级来消除分叉,但内部分歧除外。近年来尤其是在2017年,随着交易量的指数级增长,网络拥堵成了限制比特币继续发展的一大问题:用户发现即使交了昂贵的手续费,仍有可能等上几天也等不到自己的交易被确认。许多用户开始转向替代比特币的其他数字货币,比特币的市场占有率一度从95%跌至40%。但是,争论了两三年,社区在采取何种技术进行扩容这一问题上一直无法达成共识。

有人提出Bitcoin Classic协议——将区块上限增加到2 MB,这个区块容量上限的变化将需要一次硬分叉,该协议将在支持区块扩容的矿工找到1000个最新区块中的750个区块后的28天激活。比特币核心团队无法接受通过修改代码扩大区块的方案。比特币核心开发者Pieter Wuille在比特币扩容峰会中国香港站的活动中提出了隔离见证,并在后期考虑2 MB硬分叉事宜,提案得到支持。实际上,一部分矿工并不想要隔离见证,只是为争取链上扩容而做出了妥协。但令矿工意外的是,硬分叉不过是核心团队的“缓兵之计”——隔离见证钱包很快就开发出来,核心团队却对硬分叉何时提上日程含糊其词。这引发了部分矿工的不满,他们谋划着硬分叉方案。由于双方迟迟未能达成一致意见,比特币扩容升级从2015年一直拖到2017年。

中本聪隐退后,一部分技术大牛自发地组成核心团队维护比特币底层技术和网络生态的持续发展。一方面他们对中本聪及其理念充满了敬仰,不愿对比特币底层技术做较大改动;另一方面他们认为区块越大对计算能力要求越高,意味着越来越少的节点有能力运行全节点区块链,届时容易造成算力的中心化和垄断化,即区块链只能交由几个大的矿池进行维护。他们认为通过隔离见证的方式移出签名数据,可以将区块的交易空间提升至2 MB,变相达到扩容的效果。

另一伙是以矿机挖矿、拥有大量算力的矿工团队,相比理想他们更关心利益。网络拥堵带来高额手续费自然是矿工乐见其成的,但交易流失就另当别论了,因此扩容迫在眉睫。矿工的手续费按数据大小计算,隔离见证将签名数据移到链下意味着矿工手续费的损失,这显然是他们所不能接受的。此外,他们认为隔离见证最多将区块大小变成1.7 MB左右,且软分叉相比硬分叉更具有危险。

矛盾看似无法调和了。核心团队率先出手,打算强硬推行隔离见证,激活日期为2017年8月1日凌晨,届时如果矿工代表的节点未能跟进升级,则比特币网络面临分裂。从某种意义上来说,是耐心被磨光了。既然达不成一致,那么便分叉好了。

市场对分叉风险充满担忧。从2017年7月10日开始,比特币交易价格开始出现跳水,短短7个交易日,比特币收盘价便从17762元跌至13500元,整个加密数字资产市场更是哀鸿遍野,“腰斩”“胸斩”比比皆是。

比特币扩容峰会中国香港站后分歧又持续了一年多,2017年6月,以矿工、矿池公司为主的圈内人士在纽约商定了SegWit2X硬分叉共识,称为纽约共识(NYA)。核心团队已将隔离见证的激活时间定在2017年8月1日,SegWit2X计划在11月执行硬分叉。不过因为争议不断,硬分叉并没有如期激活。

更为激进的矿工不愿激活隔离见证,决意直接执行硬分叉,于是就有了比特币现金(BCH)。这是比特币首次主动执行硬分叉,此后短短数月涌现了多种分叉币,由此也形成了IFO(Initial Fork Offerings)这种商业模式。我们将随机选取几种分叉币进行简单介绍。

(二)分叉币

1.比特币现金(Bitcoin Cash, BCH)

2017年8月1日分叉于区块高度478559,由比特大陆主导,开创了比特币主动硬分叉的先河。比特币现金采用链上扩容的方法,分叉时将区块大小由1 MB提高到8 MB。

2.比特币黄金(Bitcoin Gold, BTG)

2017年10月25日分叉,但由于BTG网络还没有开发完成,正式上线时间为2017年11月13日。与其他分叉币相比,BTG并没有对BTC进行扩容,依然采用1 MB区块+SegWit设定,主要改变的是挖矿算法,为了防止ASIC专用矿机造成的算力过于集中问题,对其进行了限制,改用GPU挖矿,并使用紧急难度调整机制(EDA)。总的来说,BTG主要是想解决BTC挖矿算力过于集中与难度调整机制方面的问题。

3.比特币钻石(Bitcoin Diamond, BCD)

产生于2017年11月24日,由海外Evey与007团队联合开发,Bitcoin Diamond Foundation负责运营。BCD使用8 MB大区块,支持SegWit,具有重放保护,并使用新的工作验证算法创建区块。相比BTC,它具有转账隐私保护功能,也可对交易额进行加密。

4.超级比特币(SuperBitcoin, SBTC)

超级比特币由李笑来主导,采取POW共识机制,支持SegWit、重放保护。同时,其官网对外宣称该币种的特点是“智能合约+闪电网络+零知识证明+大区块”,于2017年12月12日硬分叉。SBTC的区块容量大小为8 MB,总发行量为2121万个,其中21万为分叉预挖。

5.闪电比特币(Lightning BTC, LBTC)

LBTC于2017年12月23日在比特币第499999区块高度分叉,发行量为2100万个,不支持SegWit。LBTC采用DPoS(委任权益证明)共识机制,可以将投票权和记账权分开。

(三)IFO及其风险

所谓IFO,指的是“首次分叉发行”(Initial Fork Offerings),即通过硬分叉发行新币种的模式。与ICO(Initial Coin Offerings)发行代币融资不同,IFO是基于比特币等主流币而进行的分叉,持有诸如比特币等主流币可获得分叉币,即一种新的虚拟货币。分叉前拥有比特币的用户可以分到相等数量的分叉新币,称为“分糖果”。

除了比特币外,莱特币也分叉出了莱特黄金,而莱特币创始人李启威在Twitter上发文表示,莱特币基金会与莱特黄金没有任何关系。越来越多的主流币遭遇IFO,而某些分叉并非是为了技术升级,只是利益驱动,与ICO热潮带来了众多纯圈钱项目一样,恶意IFO会造成整个市场的非良性发展。

需要指出的是分叉项目可能存在风险。

第一,技术安全。部分分叉币不具备攻击保护机制,且未进行充分的代码测试和审查,没有进行重放保护等,因此对于分叉币本身的安全性仍需引起足够重视。在硬分叉的情况下,重放保护可以防止在分叉的任意一边丢失代币。本质上,重放保护应该确保其中一边的一个签署交易在另一边是无效的。否则,有人可以从分叉币链中获取已经签署的、有效的交易,然后再将它发布到一个比特币核心节点中,从而造成比特币的丢失。

第二,社区分裂。频繁和过多的分叉币的产生,分散了一部分比特币节点及算力,社区分裂一定程度上削弱了比特币的公信力。

第三,中心化操纵。经历了比特币扩容之争,我们可以看到算力过度集中、中心化已成为比特币发展过程中的问题。部分分叉项目“预挖”几十万枚分叉币,让人回想起2012—2013年,各种毫无创新和实用性的山寨币通过预挖,然后上线交易套现离场、“一地鸡毛”的光景。

第四,诈骗风险。硬分叉最初是为了解决比特币的扩容问题,因此五花八门的分叉项目描述了各自趋于“完美”的技术解决方案。由于现实中大部分人对于数字货币及相关技术手段并不了解,仅通过项目交流群、新闻媒体报道就参与并投入大量资金,而项目通过发行代币或操纵币价的方式获取暴利,实际获得资金并未投入技术研发。