为想创建项目的朋友搭建创业平台,请感兴趣的朋友加乐乐微信:sensus113
NervosFans 微信公号:Nervosfans
谢谢!
4. 重新思考可扩展区块链设计
本章节中讨论了支持区块链扩展至超越当今比特币参数的各种技术,既有当今去中心化区块链之上的增量变化也有更为激进的重新设计。本节的目标不是提出一种端到端的系统,而是绘制出一个设计空间,提出有潜力的各种方法,并为社区提出公开性挑战。
我们将比特币系统拆分成一系列的抽象层,我们将其称为平面,并围绕这些平面组织相应的讨论。根据从下到上的依赖性层次结构,我们考虑的五个平面分别是是网络、共识、存储、视图以及侧平面。
论述中,分类账指系统的完整历史,即共识平面的完整输出,如下定义。更为确切的定义中则规定了特定的确认策略,原因是如去中心化加密货币的例子中,分类账内容可能发生变化。简单起见,我们不对去中心化加密货币的这一特征进行建模,而是将写入分类账的内容视为已确认。
4.1 网络平面
网络平面的功能是传播交易消息,支持抽象广播,其中来自任何参与者的交易消息将被传输到比特币网络中的所有(全)节点。 然而,比特币中的网络平面并非纯粹的广播媒介。 节点仅传播代表有效交易的消息,因此抽象仅接收有效交易作为输入。
我们的测量结果表明,比特币网络协议与实现并未充分利用底层网络带宽,使得比特币网络平面成为交易处理中的瓶颈。 因此,改善比特币扩展性的一个方向自然是改进其网络平面设计。
比特币网络平面中存在两处显著缺陷。首先,为了避免传播无效交易导致的拒绝服务,节点必须在进一步传播之前完全接收并验证交易。 (有效交易必须产生合法的交易输出,且输出不能与先前交易冲突。)这种交易的本地验证对整体传播时间产生巨大影响。其次,比特币网络层协议首先传播所有交易,随后在挖出区块时对区块(区块包含了先前传播的交易)进行再次传播。这也意味着每笔交易需要发送两次。
有若干改进比特币网络层协议的提案。为了避免每笔交易转移两次,一种可能性是依靠集合调和协议,其中节点仅获取新挖出的块中自己没有的交易[6,32,39,48]。另一种目前已被矿工采用的方案中,使用了专用的集中高速中继网络进行矿工间通信[20]。
另外一种方向是改善网络层广播通道的功能。可以将网络平面设计成强大的P2P覆盖拓扑,实现诚实节点间低直径范围的强连接。此种覆盖拓扑结构一般属于具有已知低延迟广播协议[29,33]的膨胀图。为了限制对抗性节点的影响,覆盖可以随机化所有peer的位置(意思是不受peer控制)。已有若干分布式系统采取了这种手段[15,44]。为了进一步限制拒绝服务,节点可以对来自peer的传输进行速率限制。此种维持诚实节点(出现拜占庭对抗节点时)间强链接的覆盖设计在静态网络中较为常见[23,36],但是对于高度动态的网络来说,仍是相当活跃的研究领域[31]。
另外一个长期存在,涉及网络平面的问题是参与者激励。研究人员指出,网络平面缺乏传播交易的激励结构,同时,提出了一种改良的酬金分润结构进行强有力的激励。网络协议的很多其他的方面仍依赖于自愿参与,且需要临时防御来阻止泛洪、拒绝服务攻击。
4.2 共识平面
共识平面的功能是为处理指定一组全球接受的交易,并对这些交易进行全部或部分排序。 作为一般抽象,本平面从网络平面接收消息并输出随后会被插入系统分类帐的交易。 比特币中,共识平面指的是一种挖掘区块并就其被纳入区块链达成共识的功能。
改进工作量证明协议。比特币区块链协议在共识速度、带宽与安全性之间做出了权衡。对前两者改进的同时,也引入了更多分叉,最终折损了保障系统安全的矿力以及公平性[26]。有相当多的加密货币(如[9])在共识速度与安全性之间选择了前者,相当于高出块率版本的标准比特币区块链。
然而,这种三方权衡并非去中心化加密货币所固有的。 Sompolinsky等的GHOST协议[46],以及Lewenberg等的(协议)[37]表明,改变链选择规则能够改善公平性与矿力利用,具体来说就是指应该包含主链外的分叉。根据最近的研究,Bitcoin-NG [26]证明能够通过一种仅由网络平面提供共识延迟与带宽仅限制的替代协议消除比特币中的固有权衡。
权益证明。 有各种提案(如[12,34])使用了权益证明来达成共识,由此消除了工作量证明的计算成本。权益证明中,委托人通过存款的方式获得创建区块的权利。 然而,这些手段缺乏系统收敛的正式担保[19]。
联盟共识。 去中心化有性能成本。一个信任假设强于比特币的模型能够支持更为有效的共识协议,进而实现因计算、带宽及存储降低带来的低延迟、高吞吐。 具体而言,少数预先指定的可信实体使用标准拜占庭容错(BFT)复制协议的操作扫清了比特币中影响扩展的诸多障碍。
涉及此种由少数可信实体执行的BFT协议设置的学术文献少之又少,但在实践当中激起了广泛兴趣,其中主流金融机构正在对其的使用做出积极探索[45]。 联盟共识有时也被称为“联盟区块链”。
从去中心化加密货币的代替方案以及表征去中心化区块链在分配信任时产生的性能成本这两个方面来说,联盟区块链值得研究。我们在本论文的完整版本[10]中,展示了对当前较流行、节点遍布全球八个地理区域的BFT协议(PBFT)进行试验后的得出的性能数据和微基准评量测试结果。结果表明了使用BFT作为加密货币共识层基础的吸引力(不考虑强信任假设的前提下)。即便只有几十个节点,PBFT在交易延迟与吞吐量方面的表现都大大超越了比特币。譬如,64个节点批量处理8192笔交易可以实现4.5K tx/秒的吞吐量,平均交易延迟1.79秒,处理每笔交易的资源成本预计仅为3.95×10−7美元。2 但是,节点数扩展至上百个时,系统性能则大大降低。如文中所述,如何对BFT协议进行分片会是一种有前景的扩展手段,同时也是开放的研究方向。
2 我们实验当中的交易长度为190字节,做资金转账长度足矣;有鉴于比特币交易平均大小约500字节,系统吞吐可达1700笔交易/秒。
分片。 提高共识平面扩展性的一种可能方式是对其进行分片,意思是将共识任务分配到同时运行的节点集之间,目的是提高吞吐量并降低每个节点的处理与存储要求。分片技术一般应用于诸如Dynamo、MongoDB、MySQL以及BigTable等的分布式数据库,但性能通常不会随分片计数线性增长。 这是因为操作跨多个分片时需要在所有分片间达成共识。根据之前非拜占庭环境中的探索研究[25,30,52],有一种可能的方案是另外使用一种单独的共识协议,譬如Paxos,以实现分片间的共识。 然而,拜占庭设置中需要跨分片协调时,这样的方案可能产生巨大开销,因此区块链的分片协议仍是一个开放的研究领域。
信任委托与层级侧链。实现扩展的另一种手段是创建一种带“低级共识实例”的层次结构,就是常说的“侧链”。侧链的去中心化出程度可能低于顶层区块链;运行的可能也是非工作量证明共识协议,好比BFT。由Back等的一种侧链结构[16],还支持交易在独立的区块链间转移资金。
侧链的引入也带来了三方面的技术挑战。首先,侧链的安全保障必须独立于主区块链。合并挖矿技术[16]支持各单链共享矿力,但是需要矿工协作。若无协作,各侧链的维护会削弱系统整体矿力,使得各单链易受攻击。其次,若广泛采用侧链,则给定资金来源与期望的目的地在同一侧链上的可能性很低,因此可能需要跨链交易。由于跨链交易必须通过主区块链,因此可能需要两笔单独的交易,同时为主区块链带来更多负担,从而对扩展性产生不利影响。最后,涉及多条去中心化链的交易可能产生高延迟。去中心化区块链需要累积多个区块来确保交易会以高概率保留在区块链中。各个链间的交易也需要这样一系列的区块累积,确切的说是每条链都得有。
4.3 存储平面
存储平面扮演全局内存的角色,用于存储并提供共识平面生成的已验证数据的可用性。 可以将该平面视为有两个接口的抽象:(1)接收并处理来自共识平面修改存储的指令,即写入与(可能的)删除操作,以及(2)服务系统中任何实体的读取请求。 存储平面包含系统的分类帐的同时,还可能包含共识产生的其他状态,譬如智能合约状态或由视图平面支持的“视图”。
在加密货币中实现存储平面有若干方式。比特币中,存储平面可视为存储了比特币分类帐。如今的比特币参考实施默认存储整个分类帐;结果是,系统存储了整个分类帐的众多副本。比特币的存储平面仅支持添加数据写入(也就是新挖出的区块),且不支持删除操作。存储平面支持的唯一读取操作是整个分类帐的内容的下载,这个过程需要四天(参见第2节)。 (有鉴于当前区块链的高度,证下载的分类帐时可以参考创世块。)因此,比特币的存储平面显着低效。
其他的存储平面实现与接口也是有的。社区已经提出了一些能够对UTXO数据结构的存储进行分片的想法[38](见下文)。目前尚不清楚如何将这些想法套用到存储平面中其他可能的状态形式,譬如与智能合约相关的状态。所以,如何对通用存储平面进行分片,实现共识节点不必全部存储完整历史,同时还能在读取操作时进行认证是个开放的研究挑战。分布式哈希表(DHT)结合适当的数据验证技术或许是条出路。
4.4 视图平面
对于比特币矿工来说,没有必要在存储了整个交易历史的完整分类账上操作。因此,比特币中的矿工与节点在账本的视图上进行本地计算与运行,这个账本的视图就是未花掉交易输出(UTXO)集,实际上是明确了系统中所有实体的当前余额。同样,以太坊中,智能合约能够定义趴在分类帐中的状态。智能合约的各方希望能够访问并验证此状态而无需阅读分类帐的其他部分。出于这个原因,加密货币(去中心化或中心化)的一个关键性能要求就是支持视图。3
3 我们对数据库理论中的‘视图’做了词义调整,这里指存储查询的结果集。
视图指来源于完整分类帐的数据结构,状态通过应用所有交易获得。出于性能原因,视图可以存储在存储平面中并以一种已验证的方式分布,(这一点并没有在比特币中实现)所以新矿工需要四天时间从零开始重建UTXO集(可以视为视图)。通常情况下,视图可以是完整分类帐的任意函数,不一定必须是UTXO集。作为存储平面中的一段数据,视图必须由共识平面隐式或显式确定,且必须能被任何对其执行读取操作的实体验证。视图的实现有多种方式,包括:
复制视图。 比特币[40]、以太坊[50]以及其他流行的去中心化加密货币规定所有共识节点必须验证所有交易(和/或智能合约),并根据计算结果本地更新各自的视图,譬如UTXO集。 这种情况下,视图属于共识平面的隐式输出,并且能看作是驻留于存储输出:前提是计算正确,因为它代表着一组诚实的共识节点产生的计算,而且可用性很高。
外包密码学视图。视图的计算还可以外包给第三方服务提供商。 由服务商发布该视图的加密摘要(如Merkle根)以及其正确性证明。 借由诸如简洁非交互知识论证(SNARKs)[18,41]等可验证计算技术,服务商可以为摘要生成正确性证明来支持对视图的验证。 随后可将视图插入存储平面。可用性非必要条件时,还可将视图存储在系统的其他部分,甚至由服务商存储。
这种方法有个优点是,共识节点不需要存储整个分类帐,可以选择在适当的视图上操作。 然而,有个关键的问题是,诸如SNARK等的加密技术是否实际可行。论文的完整版本[10]中,我们提供的实验结果表明,使用SNARK计算存储了几乎所有用户余额的简单视图的摊销成本可以低至每笔交易0.0154美元。
4.5 侧平面
顺着侧链支持非主链共识的思路,我们还可以其他考虑链下功能。链下交易这种方式已经在支付网络中得到了论证[13,22,42],意思是支付被路由到各种预先建立的“抵押”通道路径中进行。每个通道中都有一定数比特币储备,让各方可以通过交换带外消息的方式重复调整自己的相对权益,直到该通道被最终确定(且储备金支付尽)。尽管支付网络被认为是解决比特币固有限制的神奇方案,但其中大部分的操作以及网络能够提供的保证,都取决于各方之间形成联系的本质。即便支付网络亦使用与比特币相同的基础交易格式,譬如闪电网络[42]还有全双工通道[22]这种,本质上讲就是形成了一个由比特币支持的独立的网络平面与点对点共识平面。
因此,这个通道络的容量、查找路由的能力、实现的吞吐量、延迟与隐私保证这些从根本上讲,还是取决于支付网络图的突发属性,例如点对点通道的价值能力、路由的可发现性、涉及节点的在线状态等等。此外,支付通道也体现出了支付网络中性能与中心化之间的权衡;简化了路由的集中式中心辐射拓扑固有的体现了集中化中诸如隐私不足的问题。设计出一种高效、可扩展、保护隐私的支付网络协议也是一项持续的研究,毕竟终极目标并不仅仅是全面超越比特币的网络与共识层。
5. 结论
本文探讨了扩展比特币与区块链整体存在的诸多挑战。 根据测量研究,我们发现对比特币块大小与出块间隔的再参量化仅是维持系统去中心化程度的基础上改进吞吐量与延迟的第一步。 长远来看,更为激进的扩展方案将涉及对基础协议的重新设计。 通过对区块链协议的设计格局进行结构化地描述,我们在展示了各种有望成功的扩展手段的同时也对最近提出的一系列新想法进行了分类,并为社区圈出了众多重要的开放性技术挑战。
Acknowledgements
This work is supported in part by NSF grants CNS-1314857, CNS-1453634, CNS-1518765,CNS-1514261, CNS-1518899, a Packard Fellowship, a Sloan Fellowship, two Google Faculty Research Awards, and a VMW are Research Award.
References
1. https://en.bitcoin.it/wiki/Scalability.
2. https://en.bitcoin.it/wiki/Mining_hardware_comparison.
3. https://blockchain.info/charts/hash-rate.
4. https://blockchain.info/charts/n-transactions-per-block.
5. https://bitnodes.21.co/dashboard/?days=365.
6. https://gist.github.com/gavinandresen/e20c3b5a1d4b97f79ac2.
7. Amazon ec2pricing. http://aws.amazon.com/ec2/pricing/. accessed2015-10-30.
8. Antminer s5+hardware. https://bitmaintech.com/productDetail.htm?pid= 0002015081407532655504JMKzsM067B. accessed 2015-10-30.
9. Litecoin, open source P2P digital currency. https://litecoin.org.
10. On scaling decentralized blockchains — a postion paper. http://www.initc3.org/scalingblockchain/ .
11. How a Visa transaction works. http://web.archive.org/web/
20160121231718/ http://apps.usa.visa.com/merchants/become-a-merchant/
how-a-visa-transaction-works.jsp, 2015.
12. NXT.org, Decentralized Financial Ecosystem. http://nxt.org/, 2015.
13. abhi shelat and R. Pass. Micropayments for peer-to-peer currencies. In CCS, 2015.
14. G. Andresen. Increase maximum block size (bip 101).https://github.com/bitcoin/bips/blob/master/bip-0101.mediawiki, retrieved October 2015.
15. B. Awerbuch and C. Scheideler. Towards a scalable and robust DHT. In SPAA, 2006.
16. A. Back, M. Corallo, L. Dashjr, M. Friedenbach, G. Maxwell, A. Miller, A. Poelstra, J. Tim´on, and P. Wuille. Enabling blockchain innovations with pegged sidechains. https://www.blockstream.com/sidechains.pdf, retrieved Nov 26,2015.
17. E. Ben-Sasson, A. Chiesa, E. Tromer, and M. Virza. Scalable zero knowledge via cycles of elliptic curves. In CRYPTO. 2014.
18. E. Ben-Sasson, A. Chiesa, E. Tromer, and M. Virza. Succinct non-interactive zero knowledge for a von neumann architecture. In Security, 2014.
19. I. Bentov, C. Lee, A. Mizrahi, and M. Rosenfeld. Proof of activity: Extending bitcoin’s proof of work via proof of stake. https://eprint.iacr.org/2014/452/.
20. M. Corallo. High-speed Bitcoin relay network. https://github.com/TheBlueMatt/RelayNode, December 2015.
21. C. Decker and R. Wattenhofer. Information propagation in the bitcoin network. In IEEE P2P, pages 1–10. IEEE,2013.
22. C. Decker and R. Wattenhofer. A fast and scalable payment network with bitcoin duplex micropayment channels. In Stabilization, Safety, and Security of Distributed Systems, pages 3–18.Springer, 2015.
23. S. Dolev and N. Tzachar. Spanders: Distributed spanning expanders. Sci. Comput. Program.
24. P. W. Eric Lombrozo, Johnson Lau. Segregated witness (consensus layer). https://github.com/CodeShark/bips/blob/segwit/bip-codeshark-jl2012-segwit.mediawiki.
25. R. Escriva, B.Wong, and E. G. Sirer. Warp: Lightweight Multi-Key Transactions for Key-ValueStores. http://arxiv.org/abs/1509.07815.
26. I. Eyal, A. E.Gencer, E. G. Sirer, and R. van Renesse. Bitcoin-NG: A Scalable BlockchainProtocol. Technical report, CoRR, 2015.
27. J. Garzik. Block size increase to 2mb (bip 102). https://github.com/bitcoin/bips/blob/master/bip-0102.mediawiki, retrieved October 2015.
28. J. Garzik. Making decentralized economic policy. http://gtf.org/garzik/bitcoin/BIP100-blocksizechangeproposal.pdf, retrieved October2015.
29. C. Georgiou, S. Gilbert, R. Guerraoui, and D. R. Kowalski. Asynchronous gossip. J. ACM, 60(2), May 2013.
30. L. Glendenning, I. Beschastnikh, A. Krishnamurthy, and T. Anderson. Scalable Consistency in Scatter. In SOSP, 2011.
31. R. Guerraoui, F. Huc, and A.-M. Kermarrec. Highly dynamic distributed computing with byzantine failures. In PODC, 2013.
32. H. D. Johansen, R. V. Renesse, Y. Vigfusson, and D. Johansen. Fireflies: A secure and scalable
membership and gossip service. ACM Trans. Comput. Syst., 2015.
33. R. Karp, C. Schindelhauer, S. Shenker, and B. Vocking. Randomized rumor spreading. In FOCS, 2000.
34. S. King and S.Nadal. PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake, August 2012.
35. A. Kosba, Z. Zhao, A. Miller, Y. Qian, H. Chan, C. Papamanthou, R. Pass, abhi shelat, and E.
Shi. How to use snarks in universally composable protocols. Cryptology ePrint Archive, Report 2015/1093, 2015. http://eprint.iacr.org/.
36. C. Law and K.-Y. Siu. Distributed construction of random expander networks. In In IEEE Infocom, pages 2133–2143,2003.
37. Y. Lewenberg, Y. Sompolinsky, and A. Zohar. Inclusive block chain protocols. In FC, 2015.
38. G. Maxwell. https://bitcointalk.org/index.php?topic=314467#msg3371194.
39. Y. Minsky, A. Trachtenberg, and R. Zippel. Set reconciliation with nearly optimal communication
complexity. In IEEE Trans. on Information Theory, 2003.
40. S. Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System. http://bitcoin.org/bitcoin.pdf, 2009.
41. B. Parno, J. Howell, C. Gentry, and M. Raykova. Pinocchio: Nearly practical verifiable computation. In S & P, 2013.
42. J. Poon and T. Dryja. The bitcoin lightning network. https://lightning.network/lightning-network-paper.pdf, retrieved Nov 26,2015.
43. P. Rizun. Atransaction fee market exists without a block size limit. 2015.
44. S. Sen and M. J. Freedman. Commensal cuckoo: Secure group partitioning for large-scale
services. SIGOPS Oper. Syst. Rev., 2012.
45. L. Shin. Bitcoin blockchain technology in financial services: How the disruption will play out. Forbes, 14 September 2015.
46. Y. Sompolinsky and A. Zohar. Secure high-rate transaction processing in bitcoin. In FC, 2015.
47. TradeBlock. Bitcoin network capacity analysis. https://tradeblock.com/blog/bitcoin-network-capacity-analysis-part-1-macro-block-trends.
48. R. van Renesse, D. Dumitriu, V. Gough, and C. Thomas. Efficient reconciliation and flow control
for anti-entropy protocols. In LADIS, 2008.
49. L. Wilson. Average electricity prices around the world. http://shrinkthatfootprint.com/average-electricity-prices-kwh.
50. G. Wood. Ethereum: A secure decentralized transaction ledger. http://gavwood.com/paper.pdf, 2014.