语言、互联网和区块链都可以理解为网络协议。每一种都是在一组参与者---网络---中使用,以实现一个共同的目标。
本文是Horizen Academy专家内容和 "什么是区块链?"章节的一部分。
如果您觉得本文中的信息过多,请考虑阅读初级或高级版本。它们传达的信息是一样的,但细节和复杂程度较低。
在本文中,我们要说明区块链的多学科性质。如果没有正确的激励制度和经济考量,全球数字货币就无法发挥作用。如果没有在技术和货币方面建立起认知的桥梁,人们对区块链的认识就会变得不完整。
在比特币之前,数字稀缺性并不存在。数字商品是可以无限复制的,所以它们的自然价值(理论上)是零,因为你有无限的供应和有限的需求。
今天,价值交换的工作原理类似于互联网前的信息交换;从点到点,涉及中间人和第三方。加密货币呈现出价值转移的创新,就像互联网彻底改变了信息交换一样;以点对点的方式,大幅度降低了对中间商的需求。
一个精心设计的全球价值交换系统,还能使社会的可扩展性更强。当我们说系统时,里面隐含着协议,因为协议定义了系统。社会可扩展性这个词指的是大群体有效合作的能力,或者像创造这个词的尼克.萨博Nick Szabo在他最著名的一篇文章中所说的那样。
"社会可扩展性是一个机构的能力 -- 一种关系或共同的努力,其中多人反复参与,并以习俗,规则,或其他特征为特色,约束或激励参与者的行为 -- 克服人类思想中的缺点,以及在所述机构激励或限制哪些人或多少人的参与。" - 尼克-萨博
区块链可以分为两层:应用层和网络层。
"应用层处理交易、区块链进程和采矿等任务。[......]网络层处理节点之间的通信,这发生在节点间TCP连接的P2P网络上。- Dandelion Paper
在这篇文章中,我们主要讨论应用层的区块链协议。在关于P2P网络的文章中,讨论的是网络层的协议。
网络协议
语言、互联网、区块链都可以理解为网络协议,每个协议都有一套规则,所以它们可以在没有中间人的情况下达到目的。每一种都是在一组参与者--网络中使用。都有一个共同点,那就是遵守规则比违反规则对个人产生的利益更大。
如果你不想遵守现有的规则,你可以发明你自己的语言,但不会有任何人可以与你交谈。也可以说,TCP/IP协议可以被一个更有效的协议所取代。但如果只有你一个人使用新的协议,没有人和你交换信息就没有意义了。随着参与者越来越多,实用性的增加被称为网络效应。
对于加密货币,我们也有类似的情况。加密货币可以被看作是钱,因此也可以被看作是信息。货币是一种非常特殊但可以被理解的信息。安德烈亚斯-安东诺普洛斯(Andreas Antonopoulos)将用最准确和精炼的语言描述了这件事:
"在最基本的层面上,钱并不是价值。钱代表了价值的抽象,是一种沟通价值的方式——钱是一种语言。" - Andreas M. Antonopoulos
为了交流信息,所有参与者都需要一套他们共同遵守的规则。一个给定的词是什么意思?如何向服务器请求信息?交易又是怎样的?这套规则就是我们所说的区块链的协议。它涵盖了从如何处理数据,到点对点网络中的对等人如何通信,再到网络如何在单一的交易历史上达成共识。
你可以区分几大类型的网络协议。一些例子包括:
网络通信协议,如TCP/IP(传输控制协议/互联网协议)
网络安全协议,如HTTPS和SSL(超文本传输协议安全/安全套接字层)
网络管理协议,如SNMP和ICMP(简单网络管理协议/国际网络控制信息协议)
价值转移协议,如Horizen或Bitcoin
网络协议概述,包括TCP/IP, HTTP, VOIP, Bitcoin 和 Horizen
上面你看到的是一系列协议,其中许多协议你每天都在使用。TCP/IP协议规定了如何将数据分解成数据包,对数据包进行寻址,并在世界范围内进行路由。SSL(安全套接字层)是在线通信中用于在网络服务器和客户端(如你的计算机)之间建立加密链接的标准协议,用于数据的安全传输。简单网络管理协议(SNMP)是一组由路由器、服务器或打印机等网络设备支持的协议,并负责它们之间的无缝操作(有时)。像比特币或Horizen这样的协议可以实现点对点之间的价值数字传输。
规则是什么?
现在我们来看看区块链的协议是什么样的。规则是什么?为了使系统正常运行,需要对什么进行标准化和规范化?
主要目标是维护所有交易的一致分类账,有几个规则来实现这个目标。首先,我们需要一定的标准,交易和区块等数据需要是什么样子的。一个有效的交易的数据是以哪种顺序提供的,使用什么格式,区块内使用哪些结构,我们在上一篇关于区块链作为数据结构的文章中已经介绍过了。我们在这篇文章中涉及到的所有约定都是由协议定义的。
当软件交换信息的通用语言建立起来后,我们需要规则如何向区块链中添加新的数据。添加数据是有成本的。这个成本必须足够高,以防止大量无用的数据被添加,但同时也不能让人望而却步。
首先,所有矿工和全节点都会维护所谓的mempool,其中包含新的和未确认的交易。一旦一个交易被包含在最终确定的区块中,它就会从mempool中移除。
共识机制决定了如何向链上添加新区块,以及网络如何就单一版本的历史达成一致。最长链规则或中本共识决定哪一个区块是有效的,以防两个矿工在同一时间认定两个有效的区块。
最长链规则适用于区块链的分叉
为了保持区块链的增长稳定,关于每个时间单位增加的区块数量,有一个难度调整。若非如此,越多的矿工用他们的哈希能力支持一个网络,如果没有难度调整的对策,他们找到区块的速度就越快。但如果总哈希率增加,区块难度也会增加,这种机制可以使得平均的区块时间基本保持不变。
最后,协议中定义了货币政策。大多数加密货币的最大流通供应量是随着其成立而定义的。通过定期将区块补贴减半(Horizen每84万个区块,比特币每21万个区块,两者大致等于4年),总流通供应量会渐渐接近其极限,但永远不会超过极限。
抑制通货膨胀的供应时间表和随着时间的推移而递减的图表
这种类型的货币时间表被称为去通胀。按照Investopedia的说法:
"与通货膨胀和通货紧缩不同的是,通货膨胀指的是物价的方向,而去通胀指的是通货膨胀率的变化率. 虽然有时会与通货紧缩相混淆,但并不认为去通胀有什么问题,因为价格实际上并没有下降,而且去通胀通常并不意味着经济开始放缓。"
可预测的货币供应量是央行控制的政府发行的法币的最大区别之一。涵盖某项协议的所有规则会吹大本文的范围。关键的收获应该是,协议这个有点抽象的术语是一套规则,它定义了一个给定的区块链及其所有的比特和碎片。
如何改变区块链的规则?
一个区块链的初始规则集是用创世区块定义的。对它的任何更改都需要得到大多数网络参与者的批准。在一个没有中心控制的分布式环境中,必须围绕每一个对协议的拟议更改建立共识。在这方面,区块链的开发与许多其他开源项目没有太大区别。我们想区分以下几个方面。
建议修改的过程
决定这些变化的过程
最后是实施这些变化的过程。
为了提出修改建议,大多数大型区块链项目都有一个改进建议系统。任何人都能够在GitHub上查看代码并提出改进建议,通常是通过提交相应的代码。在开发者社区内,建议的改进会被讨论、完善,如果大多数人认为这些改进是有益的,并且不会对安全性产生负面影响,那么他们可能会被实施。
决定更改被称为协议的治理。通常情况下,这只是一套松散的准则,但它可以更有条理。在后面的文章中,我们将更多地讨论治理问题。Jameson Lopp整理了一篇关于比特币内部治理过程的非常有见地的文章,我们可以强烈推荐阅读。
变化的实施可以通过软分叉或硬分叉来实现,其中软分叉是向下兼容更新,硬分叉是向下不兼容。如果协议的变更可以通过软分叉来实现,那么有两种方式可以处理这个过渡。在用户激活软分叉(UASF)中,变化是由节点网络来执行的。节点操作者在特定的标志日期更新他们的软件,并将根据新的共识规则集接受或拒绝矿工的区块。矿工有很强的动力去遵守新规则,否则他们有可能挖到无效的区块,就会被淘汰。
矿工激活软分叉(MASF)不需要将变化与特定的标志日期挂钩。矿工可以通过改变其区块头中的版本位来表示对MASF的准备。一旦有一定比例的生产区块发出了更新准备的信号,全节点就可以相应地执行规则的改变。
比特币引入的伟大创新
即使制定了一套完美的规则,也必须以某种方式加以执行。如果没有一个中央当局,外部执行是不可能的。因此,协议呈现的是一种自我执行的协议。博弈论是研究描述和预测不同方之间战略互动的模型。评价一个协议及其内在的激励机制就属于这个范畴。
在博弈论中,合作行为只能通过自我执行协议来实施的博弈称为非合作博弈,而允许依靠外部执行的策略的博弈称为合作博弈。
这是比特币引入的伟大创新之一;在全球范围内,在相互不信任的未知实体之间达成自我执行协议。这只是因为一个激励系统,使得诚实行为比欺诈行为更有利可图。
去中心化共识
在比特币之前,在一个不受信任的参与者表现出恶意的,或者说拜占庭式的行为,以及不可靠的异步网络的环境中,是不可能达成共识的。
自我执行协议
工作证明区块链中最重要的激励措施之一是让矿工花费真实的资源(电力和采矿设备)来保护账本的安全,并以该区块链上的本位币来奖励他们。这就在账本周围建立了一个热力学的安全层,只有愿意获得大量计算能力并花费大量电力来**它的实体才会受到影响。
正如中本聪在《比特币白皮书》中的表述。
"如果一个贪婪的攻击者能够聚集比所有诚实节点更多的CPU算力, 他将不得不在使用它偷回他付过的款, 或使用它来产生新的比特币之间做出选择。他应该会发现,比起破坏系统和自己财富的有效性,遵守这种有利于所有人的规则比创造他自己的的新币更有利可图。" - 中本聪
攻击者现在必须平衡攻击区块链的成本:攻击成功的可能性及其潜在的上升空间与花费同样的电量进行诚实挖矿和收集区块奖励的收益。关键的启示是:只要激励机制设置正确,区块链的协议是自我强化的。这就是让理性的代理人拒绝无效的区块和交易,用他们的计算能力保证网络的安全。
数字化稀缺性
比特币是第一个解决双重消费问题的技术。之前无法验证一个数字对象是否只存在一次。当你转让一个单位的货币时,你就交出了一个数字对象的所有权,接收者可以确定她是这个数字对象的新的、唯一的所有者。抗双重支出的属性也被称为数字化稀缺性。
三重记账
历史上,会计的发展分为三步。首先是使用单式记账,双式记账引发了第一次贸易革命,2009年比特币推出了三式记账,这可能会引发商业、贸易和会计的另一次革命。
单式记账是你用于个人财务的。你把进出的交易记录为正数或负数,并可以随时计算出你的当前余额。不过它并不适用于商业,因为你不能相信另一个实体的账本。它很容易制造欺诈活动,同时它们很难被发现。
复式记账给商业带来了一场革命。每个参与者在自己的账簿中每笔交易都会创建两个条目:借方和贷方。任何给自己的贷方必须与另一方的借方相匹配。一旦你比较交互各方的账目,欺诈行为很容易被发现,但你必须依靠作为验证者的第三方来实际审核账目。欺骗系统还是有可能的,但你必须创造一个完整的虚假交易历史才行。
现在,三重记账使你不可能凭空创造资金,假设整个网络是由大多数诚实的参与者控制的。每笔交易都有三个条目:贷记给收款人,借记给付款人,以及公开的收据,即分类账上记录的交易。因为每个人都可以保留整个交易记录的副本,所以没有行为人可以为自己创造一个虚假的信用。你可以相信系统本身,而不必相信审计师或银行等第三方。
三重记账原理示意图
三重记账仍然有一个缺点:总的交易吞吐量是有限的,因为它必须由网络的所有参与者处理。我们想参考上节借用的Todd Kronenberg的文章《为什么比特币的闪电网络是巧妙的》,了解三笔记账的优缺点,以及在区块链之上有一个双入口记账系统--像闪电网络这样的第二层解决方案的 "巧妙 "缓解策略。
货币与国家的分离
从历史上看,让中央银行以今天的范围制定货币政策是个例外。我们不想展开经济讨论,因为这本身就是一个话题,但有一个去中心化的、无许可的、独立的货币形式作为传统金融体系的替代,肯定是无伤大雅的。竞争总是有利于服务的,我们相信我们很快就会看到加密货币与国家发行的法币竞争。
上面的每一个想法都值得自己写一本书,这个简短的概述并不能公正地描述加密货币的相关性和复杂性。尽管如此,我们还是想提到几个方面,给你一个方向,为你研究你感兴趣的不同方面提供一个基础。上述概念没有一个是孤立运作的。它们是相互关联的,可以从不同的角度来处理。当我们将区块链的范围扩展到加密货币之外时,我们可以发现更多有趣的发展。
维护区块链的非金融激励措施
虽然数字货币和传统资产的数字代理形式的金融应用是首个且现在仍然是最受关注的用例,但区块链可以被认为是实现其他手段的工具。
当许多彼此不信任的各方想要维护一个共享和一致的数据集时,区块链可以成为一种选择。不同的实体可以决定各自运行一个节点,彼此之间组织起一个网络。添加正确的激励结构,并确保系统中的所有行为者不能滥用或破坏数据库是一个很大的考虑因素,就像任何公共区块链一样。如果矿工和节点没有动力以一致的方式维护数据,区块链将毫无用处。通常,这些激励措施是直接的经济性质的。
但激励措施也可以是非财务性质的。例如一群企业共用一个共享数据库。供应链管理就是一个很好的例子:生产者希望证明他们及时发送了货物,物流公司希望证明它何时收到并交付了货物,客户希望看到他的货物是否以及何时转手。当每一次交接都由直接互动的双方签字时,一旦出现延迟交货的情况,责任的归属就变得比较容易。可以说,基本的激励措施是具有经济性质的,但这种好处是由于效率的提高而不是直接的金钱利益。
总结
在这篇文章中,我们研究了区块链在应用层的协议,并将其定义为价值转移协议。我们提到的一些构成协议的规则的例子有:当出现临时链分裂时适用的最长链规则,保持区块生产速率不变的难度调整,以及不通胀的货币时间表。
接下来,我们提到了区块链治理,并继续列举了区块链技术引入的主要创新:网络参与者之间的自我强化协议、数字稀缺性、三重记账、货币与国家的分离。最后,我们举了一些例子,说明共享数据集等维护区块链的激励机制与数字货币的方式有所不同。