如果说区块链技术的出现是各类信息技术融合带来的「化学反应」,那么,经济机理则是其中的「催化剂」。
密码学是区块链的根基,它集成各类密码学原语和方案,同时还应用了 P2P 网络协议、智能合约等技术。如果说区块链技术的出现是各类信息技术融合带来的「化学反应」,那么,经济机理则是其中的「催化剂」。区块链技术不仅需要技术逻辑层上的支撑,还需要经济逻辑层上的保障,否则难以在「去组织」化的环境下开展分布式协同作业。因此,加密技术与经济机制设计的结合使区块链成为具有巨大潜力的新兴技术,被认为是继大型机、个人电脑、互联网、移动互联网之后计算范式的第五次颠覆式创新,有望重塑人类社会活动形态从目前的信息互联网向价值互联网的转变。
1. 「无组织」群体行动需要经济激励
从 Linux 的成功案例来看,基于互联网的社区形态和技术的发展,已使得松散的个体可以不通过命令式管理,无组织地自发合作,开展某一项群体行动。
一是互联网信息传递的空间泛在性,消除了信息传递的物理局限,极大地拓展了潜在参与者的范围,大大降低了寻找「志同道合」者的成本,分布式协同作业成为可能;二是伴随着移动互联网的普及和大众化,信息传递的即时性越来越强,群体之间的实时沟通和协调更有效率。
但是,如果要真正实现去组织化的分布式协同作业,这两点还远远不够,它们仅是技术逻辑层上的基础。既然是生产活动,就须要消耗资源,必然涉及各方的经济利益,激励相容的设计不可或缺。
根据哈维茨(Hurwiez)创立的机制设计理论,在市场经济中每个理性经济人都会有自利的一面,其个人行为会按自利的规则行为行动。
如果能有一种制度安排使行为人追求个人利益的行为,正好与企业实现集体价值最大化的目标相吻合,这一制度安排就是激励相容。
企业实践表明,只有贯彻激励相容原则,才能有效地解决个人利益与企业利益之间的矛盾冲突,使个体行为符合企业价值最大化的目标。对于去组织化的分布式协同作业亦是如此。
「无利不起早」,经济学的自愿原则以及经济个体对帕累托改进的动机,在加密经济的算法机制中依然成立。
当然,我们也观察到在开源经济和加密经济发展的初始,一些技术极客或创始人的付出并非完全出于经济利益的动机,而是怀着社会理想或者大爱精神,乐于无私合作,无须财务报酬。比如 Linus Torvalds 崇尚自由软件精神,发起 Linux 开源软件项目,拒绝商业利益;Nakamoto 提出比特币的概念,设计和发布了相应的开源软件,初衷也并非为了追求经济利益。
但应注意的是,对于大多数普通人,经济利益仍是最重要的动机。
2. 「无组织」群体行动的经济激励
根据经济利益的重要程度,我们可以将「无组织」群体行动分为以下层次:
第一是「非经济利益驱动」的群体行动,如公益活动、慈善活动。这类活动通常不需要参与者付出太多的时间和金钱成本,因此对群体行动的激励相容要求最低。
第二是「潜在经济利益驱动」的群体行动,如社交平台上的主题分享、P2P 网络资源分享。这类活动的参与者并没有明确的经济利益诉求,而是持着相互分享、共惠共利的目的,即「我可能在今天从别人的利益出发采取行动,即便此时给我带来一些风险或代价,但我期望的是,别人会记得这一切,并在未来回报我」,经济学将这样非正式的基于社会关系的互惠互利称为「社会资本」。
社会资本是一种较为隐蔽的潜在经济利益。
第三是「明确经济利益驱动」的群体行动,也就是本文研究的加密经济的分布式协同作业。应该说,分布式协同作业不一定非得要选择明确经济利益驱动模式,也可以选择潜在经济利益驱动模式,比如 Linux 等开源项目即是如此。
根据常见的自由软件授权方式(General Public License, GPL),如果使用者在免费取得自由软件的源代码后修改了源代码,那么基于公平互惠的原则,他也必须公开其修改的成果,这实质上就是为了保障潜在经济利益的分享与互惠。但需要注意的是,除了 Linux 等少数开源项目之外,成功的开源项目相当有限,许多开源项目往往是失败的。
原因很简单,开源项目缺乏经济逻辑层上的机制设计,如果不给予活动参与者真正的经济激励,仅依靠人们对自由的热爱和追求以及业余的投入,难以激发出成员有价值的付出。比如,洪流网站(Torrent Sites)的点对点文件共享就是个失败的案例。系统旨在让每个下载者在下载的同时也保持着向网络里的其他下载者提供种子(上传已下载的数据)。
这是一种基于潜在经济利益——社会资本的设计。而在没有经济激励的情况下,参与者越来越倾向于认为持续上传种子是一件对自己不利的事情,特别是当这一行为会占据电脑里更多的存储空间时,因此失去了继续参与文件共享的兴趣。
在某种意义上,开源项目是一种无明确生产目标、不讲究效率的生产过程,不是一种有效的分布式协同作业。与之不同,区块链技术通过激励相容的算法规则和相关契约安排,明确了各方的经济利益,充分调动了各方的积极性,使有效的分布式协同作业真正成为可能。
3. 区块链和「拜占庭将军问题」
区块链是一种数字账本,是由一个个区块按时序组成的一串链条。一个区块包含两个部分:区块头(Block Header)和交易信息部分。区块记录的所有交易通过默克尔树(Merkle Tree)组织起来,默克尔树根(Root)的哈希值作为本区块里所有交易的信息被放入区块头。
区块头还包含以下字段:前一个区块头的哈希值(或称哈希指针)、本区块的时间戳、高度(从第一个区块开始数,本区块是第几个块)以及其他信息。
在区块链系统开展的分布式协同作业,是众多互不相识的参与者一起对区块的账本信息进行验证、确认和达成共识,形成统一的交易账本。新的区块在经过系统共识验证后被添加到区块链上。由于任何输入端的细微变化都会对哈希函数的输出结果产生较大影响,再加上哈希指针的设计,区块链被认定为是难以篡改的。
比如,若有人尝试改写 1 号区块里的数据,那么存储在 2 号区块里的 1 号区块的哈希值将会产生巨大的变化,从而导致 2 号区块的哈希值随之发生变化,接着又影响存储在 3 号区块的 2 号区块的哈希值,以此类推,后续的所有区块数据都会发生变化。所以说,想改动一个区块,必须同时改动该区块后面的所有区块。
而对任何一个区块的改动,均须获得共识,这就使得更改一条记录的困难程度按时间的指数倍增加,时间越早的记录越难更改。因此,意图修改一整条已获得系统共识的区块链数据几乎不可能做到。
而攻击主要发生在对新增区块进行验证和共识的过程中,最典型的方式是攻击者从某个区块开始构造一条秘密的区块链,当秘密构造的区块链比当前公开的区块链更长时,将其公开,其他节点将会视其为「正确」的链条,在该链条上继续工作和延长它,使被攻击区块包含的交易被撤销,制造「双花攻击」,从而破坏系统参与者原来达成的共识。
如何在「无组织」的群体中形成共识即是经典的「拜占庭将军问题」:在一个一致意见具有绝对必要性的系统里,如何在缺乏信任机制的情况下,通过一个可信的方法,将一个一致意见同步给所有人?或者说,诚实者如何战胜破坏者,形成一个多数一致的、可信的意见?
传统上,解决「拜占庭将军问题」的算法是 BFT(Byzantine Fault Tolerant)算法,其中最著名的是 PBFT,该算法是基于消息传递的一致性算法,在弱同步网络下,算法经过三个阶段可以达成一致性。在无法达成一致时,这些阶段会重复进行,直到超时。
PBFT 算法的优点是收敛速度快、节省资源、具有理论上的安全界(理论上允许不超过 1/3 的恶意节点存在,即总节点数为 3k + 1,其中正常节点超过 2k + 1 个时,算法可以正常工作)。缺点是随着参与共识节点的增加,通信开销会急剧上升,达成共识的速度则快速下降,难以支撑上万节点规模的分布式系统。
尤其是,PBFT 假设系统的所有节点是已知的,且节点参与共识首先要获得投票权,因此需要为节点的加入和退出过程设计额外的机制,这不仅增加了协议复杂度和实现难度,还不允许节点自由加入和退出,不符合加密经济的开放性要求。
而区块链技术与 BFT 算法不同,它通过引入经济激励和惩罚机制,来解决「拜占庭将军问题」。下面通过简单的博弈例子来阐述其中的逻辑。
对于参与共识验证的参与者,存在两种策略是「协作」与「攻击」,选择「协作」即成为诚实者,选择「攻击」即成为攻击者。参与者权衡利弊后选择博弈策略。当参与者发现攻击的收益要高于协作时,参与者选择攻击,否则选择协作。
假定攻击没有成本,那么,如果大家都是攻击者,相当于「一拍而散」,双方收益均为负;如果有一方攻击,一方协作,则攻击者获利,协作者受损;如果大家都是协作者,则共赢,收益均为正。假定相应的收益矩阵为表 1。对其求解,可以得到纳什均衡解:(协作,协作)和(攻击,攻击)。换言之,参与者可能协作,也可能攻击,因此系统存在安全隐患。
若在此基础上引入激励和惩罚,结果则会发生改变。激励机制是,系统给予协作者一个正向的激励,比如在表 1,给予协作者三个单位的正向收益,那么表 1 的收益矩阵变为表 2。此时求解得到的纳什均衡为(协作,协作),即参与者的最优策略均是协作,而不是选择攻击,从而消除了系统的攻击行为。惩罚机制是,系统给予供给者一个负向的惩罚,即攻击须付出一定的成本,比如在表 1,对攻击者施予三个单位的惩罚,那么表 1 的收益矩阵变为表 3,得到的纳什均衡解为(协作,协作)。
可见,同激励机制一样,惩罚机制也消除了系统的攻击行为。毋庸置疑,若同时施加恰当的激励和惩罚机制,系统的安全性更能得到保障。