区块链:从数字货币到信用社会.pdf
http://www.100md.com
2020年1月7日
![]() |
| 第1页 |
![]() |
| 第6页 |
![]() |
| 第14页 |
![]() |
| 第30页 |
![]() |
| 第35页 |
![]() |
| 第93页 |
参见附件(1558KB,185页)。
区块链:从数字货币到信用社会,这是一本关于区块链的起源与发展现状的书籍,为读者们提供区块链金融相关的问题,对于这方面感兴趣的可以来看看!

从数字货币到信用社会简介
《区块链:从数字货币到信用社会》从历史与背景、发展现状、基础原理与技术、应用生态、存在的问题与挑战等方面论述了区块链是怎样立起来的,为什么人人都在谈论区块链,区块链的秘密在哪里、进阶区块链(第二代区块链技术)是什么,区块链怎么玩,怎样从信息互联网走向价值互联网,如何用法规约束和监管区块链,区块链走向何处、争议与挑战,并通过经济、金融、货币、法律、科技哲学等角度来加以分析区块链在各个方面遇到的问题和需要解决的困难。
从数字货币到信用社会作者
长铗
巴比特创始人,科幻作家
韩锋
清华大学博士,iCenter导师
杨涛
研究员,博士生导师。社科院金融研究所所长助理
达鸿飞
小蚁创始人
潘志彪
比特大陆技术负责人,前币付宝CTO
史宇航
上海交通大学凯原法学院博士
海滨
布比公司技术专家,博士
申屠青春
深圳银链科技CEO,博士
陶荣祺
上海国际金融研究中心特约研究员,巴比特专栏作家
从数字货币到信用社会目录
第一章 区块链创世纪
一、先驱篇
二、货币篇
三、信用篇
四、区块链篇
第二章 区块链基础
一、区块链的基本概念
二、区块链的工作原理
三、区块链共识机制
四、区块链面临的问题
第三章 区块链进阶
一、简单支付验证(SPV)
二、侧链
三、闪电网络
第四章 智能合约
一、智能合约的起源
二、智能合约的定义
三、智能合约与传统合约的区别
四、智能合约与区块链
五、智能合约应用案例
六、智能合约面临的问题
七、智能合约的未来展望
第五章 区块链怎么玩
一、数字货币
二、支付汇兑
三、登记结算
四、数据存证
五、知识产权保护
六、溯源、防伪与供应链
七、身份认证与公民服务
八、物联网
九、保险
十、医疗
十一、博彩和预测市场
第六章 从信息互联网到价值互联网
一、技术创新与制度创新
二、中心化与去中心化
三、区块链与共享金融
四、区块链与货币创新
五、区块链与金融创新
第七章 区块链政策与法规
一、各国政府的监管态度
二、区块链资产的合法性问题
三、区块链与法律的重构
四、区块链的法律前景
第八章 区块链经济学的范式革命
一、自由与演化:发自社区,来自市场
二、组织与激励:各花入各眼
三、纳什均衡:公有链的永动机之谜
四、比特币的内在价值:当它成为一种刚性需求
五、博弈与合作:区块链——信任的机器
区块链:从数字货币到信用社会截图


区块链
——从数字货币到信用社会
长铗 韩锋 等 著目录
序一 区块链:建设互联网的价值高速公路
序二 区块链:网络世界运行规则与技术的全新探索
序三 区块链——未来全球信用的基础协议
第一章 区块链创世纪
第二章 区块链基础
第三章 区块链进阶
第四章 智能合约
第五章 区块链怎么玩
第六章 从信息互联网到价值互联网
第七章 区块链政策与法规
第八章 区块链经济学的范式革命
后记
附录序一
区块链:建设互联网的价值高速公路
姚余栋 [1]
区块链因比特币而生。一般民众都将比特币简单地视为一种货币,但从根本上来说,区
块链更是价值传输协议。相较于通常意义上的数字货币,区块链与互联网TCPIP(传输控制
协议网络互联协议)协议更为相似。只不过,TCPIP协议为信息互联网而设计,区块链则为
价值互联网提供了理论基础。
但在互联网上进行价值交换,需解决三个问题:一是确保价值交换的唯一性;二是如何
确立价值交换双方的信任关系;三是如何确保双方的承诺能够完成依靠网络的自治机制(智
能合约)而自动执行,而无需可信第三方的介入。2009年基于区块链技术的数字货币比特币
的诞生,给上述三个问题找到了解决方案。
区块链是一种新型的去中心化协议,链上数据不可随意更改或伪造,因而提供了无需信
任积累的信用建立范式。区块链可理解为一个账本(ledger),人们只需加入一个公开透明
的数据库,通过点对点的记账、数据传输、认证或智能合约来达成信用共识,而不再借助任
何中间方。这个公开透明的数据库包括了过去所有的交易记录、历史数据及其他相关信息。
这些信息安全地分布式存储在一串使用密码学方法产生的数据块中,即为一个区块,从创始
区块连接到当前区块,就形成了区块链。由于每个区块都包含了上一个区块的索引,即区块
的哈希(hash),使得每一个区块按照时间顺序产生,若要逆转某个区块上的交易,需要重
新计算该区块之后的所有区块,这在计算难度上几乎是不可能的。于是,区块链逐步成为一
种可靠的审计工具,也让系统内参与者之间的信任建立得以实现。
区块链本身具有分布式(Distributed)、去中介(Disintermediation)、去信任
(Trustless)、不可篡改(Immutable)、可编程(Programmable)等特征。这些特征使区
块链能弥补传统金融机构的不足,提高运作效率,降低运营成本,灵活更新市场规则,防止
信息篡改和伪造,同时也大大提高了稳定性,减少了宕机风险。因而区块链可应用的场景非
常广泛,众多金融机构正在研究区块链技术在金融市场的应用。
区块链可直接用于银行相关业务。例如,对账户的反洗钱检查、交易后的银行结算等涉
及人工审核的业务。区块链的分布式网络结构使账户资产、信用等信息可在各银行间共通,这大大简化了重复性手续,节省大量人力物力。目前,全球中央银行和商业银行都在积极寻
求利用区块链技术,开发数字货币平台。R3CEV区块链项目在世界上获得多家银行支持,目
前有42家银行加入该项目的研究,实现实时结算和清算功能。各国央行还可以使用区块链技术尝试发行eSDR,来构建一套新型的超主权货币跨国支付
清算体系,从而适当缓解主权货币主导下的传统货币体系缺陷,也有助于应对全球“流动性
困局”。英国央行计划发布由中央机构控制的类比特币数字货币RSCoin。这是一款完全基于
央行的需求来设计的基于区块链技术的数字货币。该技术将依赖于一系列权威机构,如商业
银行,防止货币重复消费。我国央行也在研讨发行数字货币方案。
由于任何人都能创造自己的区块链系统:启动条件十分简易,且不难实现。当前正迎来
区块链的寒武纪大爆发,大量区块链开源或封闭试验得以实施。现有区块链林林总总,有公
有链、联盟链与私有链之分。知名项目除了R3CEV,还有Linux基金会推进的超级账本
(Hyperledger),以智能合约平台而著称的以太坊,以及基于比特币区块链系统的闪电网络
与侧链技术……正如区块链数据的合法性是以算法来竞争最长链,这些区块链协议与技术也
呈现出非常激烈的竞争局面,它们最终哪一种会胜出,联盟链与公有链哪一个笑到最后,并
成为互联网通用价值传输协议,目前还是个谜。
或许,互联网的早期发展能带给我们以启示。互联网鼻祖是美国国防部的军用网,叫
做“阿帕网”(ARPAnet)。在20世纪70年代,ARPAnet已经形成好几十个计算机网络,但是
每个网络只能在网络内部的计算机之间互联通信,不同计算机网络是一个个信息孤岛,它们
之间不能通讯。直到1974年,研究人员设计了连接分组网络的协议,其中就包括著名的
TCPIP——网际互联协议IP和传输控制协议TCP,这才将这些孤岛连通起来,构成现在的因
特网(Internet)。因而,联盟链与公有链之间,比特币与以太坊之间,以及其他区块链网络
之间,也许并不是一个你死我活、赢家通吃的局面,而是会通过构建不同区块链之间的价值
传输协议,而形成一个统一的区块链:互联链(Interchain)。同样,互联链也会像互联网的
物理层、网络层、传输层、应用层的层级设计一样,根据功能定位的不同、应用场景的不
同、共享账簿的开放权限的不同,而演化为不同层级的协议。
如果说TCPIP协议让我们进入了信息自由传递的时代,区块链则将把我们带入价值高速
公路时代。区块链协议的完善,将构成共享金融的基础设施。当今互联网正进入分布式时
代,逐渐从传递信息的互联网演变为交换价值的互联链。出于价值交换的需要,人类进入数
据可计算时代。数据结构也进化成为附带计算机程序的代码,数据可以自我计算,自我运
行,从而成为智能数据,为整个人类社会进入智慧社会打开了大门。
[1]序二
区块链:网络世界运行规则与技术的全新探索
王永利 [2]
近年来,区块链成为全球互联网领域,特别是金融互联网界快速升温、越来越热的概
念。在中国,区块链更是引发越来越多的人、越来越热的关注和探索。
区块链最早面世,是由于2009年初发布的比特币,区块链成为比特币产出、记录、流通
的基础协议和技术应用。尽管比特币自面世以来饱受争议,甚至仍不能被政府和货币当局视
同为“货币”,但比特币所应用的区块链技术却得到了包括政府和货币当局在内的广泛关注。
为什么区块链会成为快速升温的热点技术和话题?
这其中最重要的可能就是,在区块链技术基础上推出的比特币,开启了一种与传统社会
(线下)没有多少关联的,完全应用于网络世界(线上)的网民身份验证、财富确认、交易
记录、公证核查等全新的技术与规则体系的探索和尝试,而这给人们适应互联网社会的发展
提供了可选路径和无限遐想。
从其在比特币的应用情况看,区块链直观讲,就是将加密技术与互联网技术相结合,所
形成的一套全新的数据区块(Block)建立、比特币发行分配、网络身份验证,以及挖矿所形
成的比特币(价值)确认、比特币交易记录,比特币的链上流动(价值转移),以及加密
(加入了区块与交易时间标识等因素)登记和查验核实等在内的互联网协议规则和账本
(Ledger)体系。
正因为比特币并不是线下法定货币的替代物,而是非法定货币当局发行和管理的,主要
模仿黄金的模式,完全由互联网基础协议和严格的加密技术保护和支持的、全新的、去中心
化的网络货币(虚拟货币),由此也形成了一套不同于、也不受制于现实社会法律的新的货
币规则和体系,并且可以与法定货币进行买卖或兑换。
比特币自推出以来已超过8年时间,没有出现过资金或用户信息被盗用的记录,其安全
性得到验证,而且其资金清算的效率和成本也具有明显的优势。这使得人们对比特币所应用
的区块链技术的信心不断增强,而且人们也越来越清晰地认识到,区块链尽管是比特币所首
创和应用的一种技术和协议,但区块链并不等同于比特币,其应用也绝不会只局限于比特
币。区块链的应用,可以是去中心化的,也可以是中心化的;可以是公有链模式,也可以是
私有链模式。因此,在比特币之后,区块链技术也在不断发展创新,并不断探索新的应用领
域。区块链之所以被越来越多的人高度重视,是因为互联网的发展和广泛应用,已经使得越
来越多的经济交往和交易活动转到网上进行。网络世界(或线上社会)正在快速扩展、充实
和活跃,而网上交易必须解决当事人的身份验证、价值核实、交易记录、查验核实等方面的
效率和安全保护问题,需要严格的中介和协议(规则或宪法)。在这方面,传统思维和习惯
做法就是顺应线下交易向线上转移的发展轨迹,将现实(线下)社会的通行规则和做法推到
线上(网络)社会,但实践中却越来越难以适应网上交易的需求。
比如,当事人身份验证,自然的选择就是以各国法律保护的身份证件的信息为基础,再
增加账户或交易密码,以及脸谱、虹膜、指纹等生物识别等,进行线上交易的身份验证。这
种方法,首先就使得跨境互联互通的网络世界的公民身份信息受到现实社会行政管辖的制
约。同时,非数字化的、多种身份信息的采集和验证会大大增加成本、降低效率。
再者,现实社会中各种经济活动涉及资金清算的,除直接的现金交易外,都需要当事人
首先在银行等机构开立账户,并通过开户机构进行资金清算。但由于种种原因,即使一个国
家内,也不可能要求所有的公民都在一个开户机构(包括其分支机构)开立账户,跨国之间
就更不可能做到。这就使得在不同机构开立账户的当事人的交易,必须通过其开户机构之间
的清算才能完成。将这种模式推行到网络世界,更将严重影响交易确认和资金清算的效率和
成本。
还有,现实社会中,交易活动的计价和清算必然涉及货币,而货币都是以国家或地区主
权保护的法定货币。在互联网跨境互联互通,互联网交易跨境发展的情况下,交易的计价和
资金的清算还涉及货币的问题,多种货币的运行,也将大大增加清算的成本和风险。
因此,网络世界和网络交易的发展,亟须与之相适应的身份验证、价值核实、货币计
价、交易确认与记录、账户管理与核查等方面的创新。而区块链技术为此提供了非常重要的
启迪和实践。
当然,比特币的应用是一种极端的例子,最初始的比特币并不是法定货币可以直接转化
出来的,而是要在网络世界通过“挖矿”才能获得的。因此,比特币可以完全撇开线下社会规
则,运用区块链技术形成一套全新的游戏规则,并由线上向线下延伸。而现实社会中,无论
线上还是线下交易,其主体都是人(包括法人),其财富或价值的管理不应该被完全分割,而必须连接和融合,因此,O2O是必须的。这就要求区块链的应用,不仅要研究和解决网络
世界的问题,还要研究和解决网络世界与现实社会的连接与融合问题。这将带来更多的挑战
和风险,也需要更多的人、更大的力量、更深入的探讨和创新。也可能未来区块链技术会被
更先进更完善的技术所替代,但区块链的历史价值将是不可磨灭的!
为普及区块链的知识,引导区块链的研究,推动区块链的应用,最近我国一批对区块链理论研究和应用实践颇有造诣的专家学者,将其心得和成果精心梳理,编写出版了《区块
链:从数字货币到信用社会》一书,非常值得认真阅读。当然,区块链作为一个全新的技术
和概念,其研究和探索才刚刚开始,希望《区块链:从数字货币到信用社会》一书能够成为大
家学习、研究区块链的“垫脚石”,也希望作者们能不断推出新的成果和作品!
[2]序三
区块链——未来全球信用的基础协议
韩锋 [3]
在2015年的时候,阿里巴巴研究院和中国社科院金融所举行了一个研讨会,我受邀前
往。会议的主旨很宏大,提出要为互联网金融建立一个理论体系!围绕这个主题,诸多中国
一流的学者提出了自己的观点。我也深受启发,尤其是随着最近几年来区块链技术的兴起,似乎给这一目标找到了答案。在探讨区块链能给互联网金融带来什么之前,让我们先看看究
竟互联网会为金融带来什么。
金融的核心无疑就是“信用”的建立。最原始的商品经济是以物换物。但大家很快发现这
样的交易成本很高。如果你把几车皮商品拉去,但是交易没做成,还有可能被土匪抢了,不
仅交易成本高,还要面临很高的风险。所以大家考虑,要让市场经济更好地发展,首先要降
低交易成本。于是很快就过渡到了利用信用建立交易的方式。信用的建立才是金融的核心。
当然,我们传统的信用建立无疑是靠很多的“中心”,譬如央行、商业银行,要有法院、经济
警察等。但是传统金融的问题就是成本过高。我本人很喜欢在北京周边骑车,只要骑车超过
一百公里,虽然只是到了北京的郊区,但金融生态就已发生了巨大的变化!我就经常找不到
ATM(自动取款机)机了,找不到银行网点了。我自己是不太爱带现金的,结果有一两次在
北京郊区把我弄得既不能住店,也不能吃饭,甚至无法买水。
打个比方,这就像人的身体,只靠主动脉无法到达全身,一定要有毛细血管,才能让身
体的很多地方得到营养。如果人的毛细血管出了问题,那么你这个人就会得各种病,非常严
重。所以互联网金融第一步搞得风风火火的,实际上是“支付宝”们,它向前跨的一步就是依
靠大数据来建立信用,这是前所未有的。在我创业的时候,我也曾经去银行贷过款。其过程
非常烦琐,要调查你的资产情况,恨不得把你的家底全搞清楚,之后才决定是否给你贷款。
据说当时银行里所谓的小额贷款是五百万元。为什么这么大的数额?因为成本下不来。所以
光靠银行是不行的,不说我去山沟里没ATM,很多中小企业甚至都无法得到贷款服务。结果
突然出现了支付宝、余额宝,“信用”是建立在互联网交易的大数据基础上,这就是一大突
破!大数据金融基本上是建立互联网金融的第一步。它让信用建立的成本比传统银行吸储放
贷方式的成本下降了很多。后来出现了P2P(点对点)、众筹等,都促使信用建立成本下降
成为趋势。
那为什么还需要区块链?因为光靠互联网公司大数据产生“信用”是远远不够的,让我们
看看传统金融出现的几个问题。首先,互联网公司的大数据实际形成了数据孤岛。每个互联网公司都会提倡互联网的共
享、公开、透明精神。但事实上,他们会将掌握的大数据与他人共享吗?目前,答案是否定
的。在当前形势下,大数据必然是每一个公司的绝对内部资源,不可能进行无边界的共享,这就出现了“大数据集中”的问题。
这样一来,互联网发展到现在就出现了一个悖论,走向了初衷的反面。大数据的集中会
引起富者越富的马太效应。如果形成数据孤岛,大数据资源集中到少数人手中、全社会无法
形成环流,这些宝贵的数据资源只能为少数数据的掌控者所利用,用户个人作为大数据产生
者完全没有获得信用资源的主动权,这非常不利于全球市场信用成本的进一步下降。
其次,数据所有权现在是错配的。海量数据是由每一个参与主体产生的,尤其是在腾讯
微信这样的软件上。但大数据的所有权属于每一个参与主体吗?参与主体可以管控自己的大
数据吗?答案也是否定的。尤其是2016年初发生了一件恶劣的事情——“百度卖吧”事件。在
百度上形成一个“吧”产生的数据、资源的所有权应该归属于用户,这其中包括“吧主”也是由
参与用户选举产生的。但是,百度却能将产生的大数据效益公开出售!
同样,在微信上我们每天能产生多少数据?我们每天产生的社交、交易数据本应该是完
全属于产生者每一个人的。如果按互联网共享、平等、透明的精神,这种大数据产生的是一
种“全球性的信用资源”。
所以,新的创新一定是要解决的问题是:大数据既要能够共享,又要能够清晰所有权归
属。表面上看,这两点有些矛盾。众所周知,第一代互联网解决了信息的自由传递问
题。“信息”本身可以复制、多次传递并且免费,这都没有问题。但“资产”不可以。在现实
中,“资产”在传递过程中所有权唯一,资产的所有权是不能随便复制的。所以,如果按第一
代互联网TCPIP协议做的话,大家似乎无法在互联网上建立所有权和信用制度。因为资产属
性一定是唯一的,不能说拷贝就拷贝。如果任何一个所有权可以无限复制,就没有任何人愿
意相信,也就没有任何信用可言了。
2008年比特币的诞生让以上两个问题迎刃而解。中本聪认为不能靠某个中心建立信用。
因为任何过度中心化的结果都会产生信息不对称,会存在利用中心权力损害参与者的利益、损害市场上其他方利益的情况。所以,比特币白皮书开宗明义地提出:我们要开创一种不需
要第三方的、不需要中介的支付系统,即电子货币的支付系统。但这首先要解决资产所有权
唯一性的问题,即不能重复支付。否则,这个所谓的电子货币无外乎就是存储的数字,如果
还是可以无数次拷贝是没有任何信用价值的。在此之前,很多人也尝试建立电子货币系统。
类似“Q币”显然是依靠腾讯公司发行的,一旦腾讯公司垮了,Q币则一文不值。但中本聪宣
称要创造的这个P2P电子货币支付系统不相信任何中心、不需要任何第三方!比特币的解决方案就是我们现在讨论的区块链技术。第一个也是最核心的概念是“时间
戳”。“时间戳”本身不是中本聪发明的,早就有国家的“时间戳”中心。比如一个合同,可以
盖一个“网络时间戳”,相当于一个证明。即在这个时间点,合同的文本已经形成,当出现纠
纷的时候,可以利用这个证明来打官司等。比特币系统的每笔交易,为了防止重复支付,都
盖了“时间戳”。因为盖了“时间戳”以后,同一笔资产就不能支付给第二个人了。如果有人重
复支付,那么时间会对不上,系统会自动识别为非法交易。唯一的合法交易只能是盖了“时
间戳”的那笔,这就成功解决了重复支付的问题。这个办法听起来可以解决重复支付问题,证明了此时此刻财产转移的唯一性,但问题是:谁来盖这个“时间戳”?中本聪显然是市场的
信徒,信奉亚当·斯密提出的市场都是由自利的人组成的,要有一定的利益规则。盖“时间
戳”的是所谓的“矿工”。矿工每10分钟给全网的每一笔交易盖“时间戳”——记账。他们也是
有利益驱动的。矿工的利益是币基所产生的新币的奖励,通过竞争到一段时间内(约10分
钟)的唯一合法记账权而获得,谁竞争到了,谁就可以获得一定数量比特币的奖励,同时,全网其他矿工要同步一致它这个记账,然后竞争下一个区块记账权。最初,这个奖励是50个
比特币。按照规则设定,每四年减半一次。2013年减半到25个比特币。所谓区块链,就是这
样一个又一个区块账簿连接起来形成的单向记账链条。
比特币的区块链是靠消耗计算资源给全网作证,重新建立信用体系。大家经常看到网上
的讨论,比如,下一代微信可能是什么,下一代淘宝可能是什么等。在我们看来,下一代最
有可能的是一个真正去中心化的系统。每个人在微信上产生的大数据,对每个人自身都有很
大价值。如果这些数据用类似Factom(公证通)这样的系统加密后形成一个新的数字水印
(哈希)然后保存在比特币的区块链上,每个人自己产生的大数据都不可篡改,私钥掌握在
每个人自己手中,也就掌握了自己大数据的所有权。当我们任何人需要向银行贷款时,只要
提供自己的公钥和私钥给全球任何一家银行,根据大数据分析就可以得出贷款人的信用情
况,这就可以让每个人通过大数据+区块链获得全球信用。
阿里巴巴副总裁高红冰对我说:“传统金融的信用建立在钢筋水泥的大厦上,你看银行
是不是都得盖大楼?但未来的信用是建立在区块链的数据上。”所以区块链就是靠全网分布
记账,自由公证,建立了一个共识数据库,这就是未来信用的数据大厦。
畅想一下未来,比如说原来你的出生证、房产证、婚姻证等,需要政府备书,好像政府
才能承认。但一旦跨国,你就会遇到很多麻烦,包括合同。跨国以后合同可能就不能被承认
了,或者无法执行。整个传统的信用执行系统成本非常高。这些成本都摊在了我们每个人的
头上。但是,如果全网公证帮你证明,几乎无法作假。否则就像我刚才说的改时间,除非我
有本事把每个人的手表都改了。将来大家公证一件事情,比如公证你们的情侣关系,一下子
就会成为全网的事实,修改的话几乎是不可能的了,除非到全网的每个矿工那里去改,成本
高到无法接受。现在,要想修改的话,我问过比特币的矿工,如果他们的世界想要这样篡改区块链上的数据,成本是十几亿人民币(随着时间还在迅速地增加)。成本一旦高了,大家
就都不想作假了,因为付出的代价和获得不成比例。
一个新的时代,未来的信用、真假是靠全网公证某个协议,靠全网每台电脑成为记账人
来实现的。这在人类历史上打开了广阔的空间。它解决了什么问题?未来信用由每个消费者
自己靠大数据在区块链上产生,就像北京市金融局霍学文书记所说的,“区块链会成为全球
金融的基础架构”,这是未来的信用大厦。
[3] 作者为清华大学博士生,iCenter导师,比特币基金会终身会员,曾任清华大学十五
规划重点课题“基于网络(大数据)的创新人才评价和选拔”项目负责人,美国甲骨文教育基金
会中国合伙人。第一章
区块链创世纪 [4]
一、先驱篇
(一)中本聪的生日
P2P Foundation是中本聪发布比特币白皮书的网站,注册这个网站必须提供出生日期,中本聪填写的是1975年4月5日。当然,没有人会认为这些信息是真实的,但如果认为这些信
息是随便填的,又似乎低估了一位密码学家的自我修养。
4月5日在货币史上是具有重要意义的一天。在1933年的这一天,美国总统富兰克林·罗斯
福签署了政府法令6102,该法令规定所有美国公民持有黄金都是非法的。
罗斯福没收美国人的黄金,并以美元交换,然后让美元贬值了40%,强制推高黄金价,目的是让美国的债务贬值,从而对抗大萧条。这些措施造成的后果是美国人的财富被洗劫了
40%。
有许多人认为这是美国政府所作所为中最违反宪法的行为之一。这是政府不经过民主程
序对民众最直接的盗窃行为之一。
那么,在1975年又发生了什么?在1975年,福特总统签署“黄金合法化”法案,美国人可
以再一次合法地拥有黄金。
这两个数字撞在一起实在太蹊跷,无法让人不怀疑这是有意为之。毕竟中本聪没有说他
出生于1933年,而是说1975年。因为如果出生年份是1933,这意味着当他发明比特币时已经
75岁了,显然不太可能。假如1975年出生,2008年时他33岁,这明显地更让人信服 [5]。
如果仔细研究中本聪的创世论文以及比特币代码,一定对他注重细节以及对货币知识的
掌握感到惊讶,显然,他的生日数字不是随机组合。没错,这是一个政治隐喻,透露给关心
这些细节并能理解的特殊人群,比如那些密码朋克们。
(二)密码朋克
基于密码学技术的比特币,并非加密货币之发轫,早在20世纪80年代,密码朋克就有了
加密货币的最初设想。蒂莫西·梅(Timothy May)提出了不可追踪的电子货币——加密信用(Cry pto Credits),用于奖励那些致力于保护公民隐私的黑客们。
加密货币的难点在于如何建立分布式共识,也就是莱斯利·兰伯特(Leslie Lamport)等
人1982年提出的拜占庭将军问题(Byzantine Generals Problem)。所谓拜占庭将军问题是
指,把战争中互不信任的各城邦军队如何达成共识并决定是否出兵的决策过程,延伸至计算
领域,试图建立具有容错性的分布式系统,即使部分节点失效仍可确保系统正常运行,也可
让多个基于零信任基础的节点达成共识,并确保信息传递的一致性。
1990年,大卫·乔姆(David Chaum)提出注重隐私安全的密码学网路支付系统,具有不
可追踪的特性,就是后来的电子货币Ecash。不过Ecash并非去中心化系统,后来大多数电子
加密货币都继承了Ecash重视隐私安全的特性,以盲签名技术(Chaumian blinding)为基础,但都没有流行起来,因为它们都依赖于一个中心化的中介机构。
1993年,埃里克·休斯(Eric Hughes)和其他几个人创建了一个“密码朋克邮件名单”的
加密电子邮件系统,简称“密码朋克”,对抗受到政府监控的互联网电子邮件。埃里克·休斯在
《密码朋克宣言》里阐述了密码朋克的使命与目标。
“密码朋克致力于建立匿名系统……电子时代,隐私是开放的社会不可或缺的……
我们不能期望政府、企业或其他大型的匿名组织保障我们的隐私……如果期望拥有隐
私,那么我们必须亲自捍卫之。我们使用密码学、匿名邮件转发系统、数字签名,以及
电子货币保障我们的隐私。”
密码朋克在20世纪90年代最为活跃,包括电脑黑客、密码学家和追求隐私的狂热者,他
们极力主张用密码技术保护个人隐私不受其他人或者政府的侵犯,但在当时,密码技术并没
有在日常生活中得到广泛应用,而是被政府垄断,主要用于情报和保密。
密码朋克们意识到密码学对社会经济的深远影响,蒂莫西·梅说:“正如印刷技术改变了
中世纪的行会及社会权力结构,密码技术方法也将从根本上改变机构及政府干预经济交易的
方式。”
比特币的加密理论基础来源于以下几项密码学的技术创新:1976年威特菲尔德·迪菲
(Whitfield Diffie)与马蒂·赫尔曼(Marty Hellman)发明的非对称加密算法,1977年罗纳
德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard
Adelman)率先发明的第一个具备商业实用性的非对称RSA加密算法 [6]
,以及1985年由尼
尔·科布利茨(Neal Koblit)和维科特·米勒(Victor Miller)首先提出的椭圆曲线加密算法
(ECC)。这些加密算法奠定了现在非对称加密理论的基础,被广泛应用于网络通信领域。但是,当时这些加密技术发明均在NSA(美国国家安全局)严密监视的视野之内。NSA
最初认为它们对国家安全构成威胁,并将其视为军用技术。直到20世纪90年代末,NSA才放
弃对这些技术的控制,RSA算法等非对称加密技术最终得以走进公众领域。
有趣的是,中本聪并不信任NSA公布的加密技术。2013年9月,斯诺登爆料NSA采用秘
密方法控制加密国际标准,比特币采用的椭圆曲线函数可能留有后门,NSA能以不为人知的
方法弱化这条曲线。所幸的是,中本聪使用的不是NSA的标准,而是另一条鲜为人知的曲
线。全世界只有极少数程序躲过了这一漏洞,比特币便是其中之一。
1998年,另一名密码朋克戴伟(Dai Wei)提出了匿名的、分布式的电子加密货币系统
——B-money。分布式思想是比特币的重要灵感来源,在比特币的官网上,B-money被认为
是比特币的精神先导。
B-money的设计在很多关键的技术特质上与比特币非常相似,但是不能否认的是,B-
money有些不切实际,其最大的现实困难在于货币的创造环节。
在B-money系统中,要求所有的账户持有者共同决定计算量的成本并就此达成一致意
见。但计算技术发展日新月异,而且有时并不公开,计算量的成本这类信息并不准确、及
时,也难以获得,因而B-money很难成为现实。
2005年,尼克·萨博(Nick Szabo)提出比特金(Bitgold)的设想:用户通过竞争解决数
学难题,再将解答的结果用加密算法串联在一起公开发布,构建出一个产权认证系统。该系
统已经非常类似于比特币的理念,且发布日期与比特币非常接近,所以,萨博也被视作中本
聪的潜在候选人之一。除此之外,萨博还发表了许多关于《合同法》在网络中安全实现的理
论文章,这些思想被视为区块链智能合约的起源。
但萨博终究不是中本聪,他擅长于理论研究而不是编程实现,他一直寻找能将比特金变
为现实的开发者,但没有人响应。
从乔姆的Ecash,到戴伟的B-money,再到萨博的比特金……几代密码朋克都怀着对自
由货币的向往,像堂吉诃德一般偏执而骄傲,试图征服加密货币的风车,最终都功亏一篑,这些理论探索并未真正进入应用领域,长期不为公众所知,但他们的研究成果加速了比特币
面世的进程。
(三)加密货币的乔布斯
非对称加密技术的发明以及创立Napster
[7]
的肖恩·范宁(Shawn Fanning)与肖恩·帕克
(Shawn Park er)点对点网络技术的开发,使比特币的出现成为可能。通过这两项技术,可以建立分布式交易账簿,并以呼叫问答机制向全网广播,网络节点不停地检查接收的数据,避免数据被篡改。
数字货币的诞生历程就像是一次扣人心弦的橄榄球进攻,在乔姆、戴伟、萨博等“明星
球员”的冲刺下,每一次冲阵都前进了一些,但离“达阵”总还差一点距离。
最后的难点就是“双重支付”问题。“双重支付”阴云在数字货币诞生伊始,就始终盘桓不
去。其实解决方法是现成的,就是亚当·拜克(Adam Back)在1997年发明的哈希现金(Hash
Cash)算法机制。但起初,该设计是用于限制垃圾邮件发送与拒绝服务攻击。这就好比另一
个球场正进行着田径接力赛,并没有引起橄榄球赛场的注意。2004年,哈尔·芬尼(Hal
Finney)接过拜克的接力棒,将哈希现金算法改进为“可复用的工作量验证(Reusable Proofs
of Work)”。他的研究又是基于达利亚·马凯(Dahlia Malkhi)与迈克尔·瑞特(Michael
Reiter)的学术成果:拜占庭容错机制(Byzantine Quorum Systems)。
所有的技术都已成熟,终于由中本聪在2008年完成“达阵”。他将RPOW(可复用工作量
验证)引入加密货币,就像博尔特跑入了橄榄球赛场一样,一下发挥出巨大的威力,比特币
诞生了。中本聪阐述了RPOW机制如何用于解决拜占庭将军问题,RPOW消除了中枢“时间
戳”服务器的需求,杜绝了那些不怀好意的人通过攻击中央服务器进行比特币无限重复消费
的问题。
非对称加密、点对点技术、哈希现金这三项关键技术没有一项是中本聪发明的,但最后
摘取桂冠的却是他。这与其说是运气,不如说是因为中本聪恰好具备发明比特币的全部素
养:既是“橄榄球员”,又是“田径高手”,更关键的是他还是编程大师,能够把自己的想法付
诸行动。中本聪就像是加密货币界的乔布斯,纵横于不同领域,采撷各家之长为我所用。
正如戴伟事后评价说:“要想开发出比特币,必须:①对货币有非常深入的思考;②要
了解密码学;③认为比特币这样的系统从理论上是可行的;④要有足够的动力将这个理念开
发成实际产品;⑤编程能力出色,能保证产品安全;⑥有足够的社交技巧,才能围绕这个产
品建立一个成功的社区。密码学圈子能符合前三个条件的人就已是凤毛麟角。”
(四)创世区块
中本聪第一次出现是在2008年11月1日。那一天,秘密讨论群“密码学邮件组”里出现了
一个新帖子:“我正在开发一种新的电子货币系统,采用完全点对点的形式,而且无须受信
第三方的介入。”该帖的署名就是塞托西·中本聪(Satoshi Nak amoto)。
这样的电子货币系统是密码朋克们数十年来的梦想,有许多人进行过尝试,但都失败
了。当时最积极的反应也只是持怀疑态度,因为密码组成员已经看过太多低水平的新手想出来的宏伟计划,他们的本能反应就是怀疑。当时有不少人表示,这样的系统是不可能实现
的,连大卫·乔姆这样的密码学天才都失败了,更何况一个无名小辈呢。
中本聪细致入微地回答了所有疑问,最终在白皮书中提出了一个可行的方案。白皮书遵
从学术习惯采用“我们”作为第一人称,行文也是标准的论文格式。
“本文提出了一种完全通过点对点技术实现的电子现金系统。它使得在线支付能够
直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。”
中本聪选择在2008年全球金融危机的时候将比特币公布于世,在介绍他的创新时说
道:“传统货币最根本的问题在于信任。中央银行必须让人信任它不会让货币贬值,但历史
上这种可信度从来都不存在。银行必须让人信任它能管理好钱财,并让这些财富以电子货币
形式流通,但银行却用货币制造信贷泡沫,使私人财富缩水。”
与密码朋克的文章相比,比特币创世论文的语言显得格外冷静和去政治化,文中没有出
现政府或主权的字眼,仅将比特币描述成一个区别于传统金融的支付系统。
两个月之后,也就是2009年1月3日,中本聪发布了开源的第一版比特币客户端,宣告了
比特币的诞生。他同时通过“挖矿”得到了50枚比特币,产生第一批比特币的区块就叫作“创
始区块”(Genesis block)。
在全球金融危机时期,中本聪将他的怀疑和愤怒集中在了银行机构上,但与用生日密码
挖苦美国政府一样,他不动声色地幽默化了英国财政大臣达林一把,在创世区块里写
道:“当时正是英国财政大臣第二次出手疏解银行危机之时。”
财政大臣左支右绌的窘态就这样被永久记录在区块链上。“第二次”在此与其说是一个量
词,不如说是一个形容词,很形象。
9天以后,中本聪向密码学家哈尔·芬尼转账了一笔比特币。那笔转账在当时还不值一
文,却在加密货币篇章里留下浓墨重彩的一笔。这是人类历史上第一次摆脱受信第三方金融
机构而完成的点对点交易。
与许多患有隐私癖的黑客一样,中本聪也是独行侠。他几乎没有合作伙伴,如果非要说
一个,哈尔·芬尼勉强算半个。芬尼是参与过PGP加密技术研发的一位顶级开发者,也是密码
朋克的重要成员。当中本聪在加密邮件列表中宣布比特币的想法时,迎来的更多的是冷嘲热
讽,但只有芬尼热情支持。芬尼很早就对加密货币计划感兴趣,早在2004年,他就推出了自
己设计的加密货币,在其中采用了可重复使用的工作量证明机制,所以他明白比特币的价值。当中本聪公布第一个版本的软件时,芬尼马上下载并测试。
多年后,芬尼在社区回忆这段经历说:“我想我是除了中本聪以外第一个运行比特币
的。我开采了大约70个块,而且我还是第一个比特币交易的接受人,中本聪测试时转给了我
10个币。在接下来的几天里,我和中本聪通过邮件谈了很多,主要是我报告一些故障然后他
把它们搞定。”
社区网友亲切地把芬尼称作“中本聪的沃森”,因为当电话被发明时,第一个电话就是贝
尔打给他的助手沃森:“沃森,快过来,我想见你。”2014年8月,在与渐冻人症搏斗了五年
之后,哈尔·芬尼在亚利桑那州去世。向“沃森”致敬!
(五)后起之秀
比特币发布后取得了空前的成功,媒体与公众纷纷把中本聪与20世纪90年代的那些密码
学天才们相提并论。中本聪对此不以为然。
尽管维基解密创始人朱利安·阿桑奇(Julian Assange) [8]
宣称比特币是从密码朋克中来
的,中本聪却对密码朋克或者密码无政府主义只字不提。
2010年,维基解密宣布接受用比特币的捐款时,社区一片欢呼,中本聪却出人意料地提
出了反对意见:
“不,请不要揠苗助长。比特币这个项目需要平静地成长,这样软件才能够逐渐强
化。我请求维基解密现在不要使用比特币。比特币还是一个非常小的测试项目,还处在
婴儿期。在这个阶段,你们所带来的关注将摧毁我们。”
中本聪对20世纪90年代的失败者记忆犹新。他指出Beenz(虚拟货币)、Flooz、Ecash(电子货币)等数字货币先驱失败的根本原因就在于其中心化的架构。因为一旦为数
字货币信用背书的公司倒闭,或保管总账的中央服务器被黑客攻破,该数字货币就会面临信
用破产和内部崩溃的风险。
2013年,一名叫特拉梅尔的安全研究人员公布了他与中本聪的加密邮件往来。在邮件
中,中本聪写道:
“我觉得现在更多的人对90年代感兴趣,但是经过数十年,我们已经看到了基
于‘信任第三方’系统的失败(例如Ecash)。我希望人们能够有一种区分,即知道:
我们是在尝试首次建立一个以‘非信第三方’为基础的系统。”然而,要向公众解释这两者的区分很难,有一次他在论坛抱怨:“向普通读者描述比特
币真是‘bloody hard’(该死地困难)。” [9]
中本聪对加密货币前辈的态度难说有几分尊重,但世道轮回,没过几年他也面临后起之
秀的挑战。
对比特币的共识机制来说,挖矿是必须的。正如白皮书中开门见山指出的:“想要在点
对点(P2P)基础上布置一个分布式的‘时间戳’服务器,我们必须使用一种与亚当·拜克的哈
希现金相似的工作证明系统。”
但很多人都认为,比特币网络消耗的庞大计算力是一场能源灾难。素数币创始人萨尼·肯
(Sunny King)试图将算力应用于蛋白质折叠、寻找素数这样的科学工程。他自信地写
道:“加密货币目前已分道扬镳为两条道路:一种是能源密集型,另一种是环保节能型。我
相信,在未来较长一段时间(5年以上),环保节能型货币将因其成本优势而挑战能源密集
型货币。素数币第一次引入非哈希现金的工作量证明机制,使算力不仅用来制造区块链,还
提供额外的潜在科学价值。”
除此之外,Sunny King还发明了权益证明(PoS)。与要求矿工证明执行一定量的计算
工作不同,权益证明要求用户提供证明一定数量加密货币的所有权即可。
还有一些人对比特币处理交易的效率很不满意。比特股创始人拜特·马斯特(By te
Master)在社区发帖:“互联网带宽、CPU(中央处理器)、硬盘空间等都是非常宝贵的资
源,指望用户用个人时间和挖矿的方式获得财富,这对于创新而言将是不利的。此外,比特
币10分钟的确认时间对于验证付款而言实在是太长了,它应该像如今刷信用卡那般迅速。”
中本聪是这样解释的:将来用户只需运行轻节点,只交易,不挖矿,处理区块的节点将
是矿场部署的大型服务器。最后,他无奈地说:“如果你没有理解我的意思,我没时间说服
你。”在心底,恐怕他又吐槽一遍“bloody hard”吧。
另一位技术天才维塔莱克(Vitalik)从未在社区与中本聪对过话,毕竟在2008年的时
候,他才13岁。Vitalik与中本聪的交流更多的是通过代码。他指出,中本聪作为一个老派
C++程序员,编程水平并不高明,但运气不错:“虽然中本聪在2008年为比特币做出的绝大多
数决策我们仍坚持着,但他的选择绝对不是完美的,幸运的是他正确的次数经常比错误要
多。事实上有几个实例,因为中本聪的选择我们获得了更好的结果。”
他说的是中本聪在比特币的代码中埋下的三个“彩蛋”,后来被证明都是对的。
第一个是比特币使用公钥的哈希作为地址,带来了不必要的复杂度和浪费。但事实上,这是深思远虑的未雨绸缪,因为可以让比特币完全免受量子计算机的威胁。第二个是比特币
总量2100万的限制,或者说是2的50.899次方。这是一台计算机里面能以标准整数形式存放的
最大整数,超过那个值的话,数值将像里程表那样归零。第三个是选择了正确的椭圆曲线,成功绕开了NSA居心叵测的陷阱。
中本聪在代码里处处留情,可惜能读懂他的人不多。很难说Vitalik能否算是一个知音,因为后者并不认为中本聪天才地设计了这一切,他说:“这些设计带来更好结果的原因可能
连中本聪自己都没想到过。”他认为中本聪是蒙对的。2014年,他发起以太坊项目,试图以
一套图灵完备的脚本语言,解决比特币扩展性不足的问题,提供不同智能合约,让用户搭建
各种应用。有意思的是,以太坊以加密货币先驱的名字作为货币单位,戴伟、萨博、芬尼均
名列其中,唯独没有中本聪。
2010年12月12日,中本聪在比特币论坛发布了他最后一个帖子,其后,他在网络上的公
开活动频率也逐渐降低。直到2011年4月,他发布了最后一项公开声明,宣称自己“已经开始
专注于其他事情”。他依然跟几个关键人物保持着联系,比如说比特币的首席开发者加文·安
德森,并提出了一些建议。但到这一年年末,安德森公开表示,中本聪回复他电子邮件的次
数越来越少,然后慢慢地就再也没了消息。
二、货币篇
(一)石币之岛
密克罗尼西亚是太平洋的三大岛群之一,其中最西边的雅浦岛上曾住着一群非常古怪的
土著居民。1903年,美国的人类学家威廉·亨利·弗内斯(William Henry Furness)在雅浦岛
住过几个月,并把他在当地所见的风俗记录成书,书名叫《石币之岛》,因为当地的货币体
系令他印象深刻。
雅浦岛上没有金属资源,于是石器在他们的文化中扮演着重要的角色。但即使是石灰
岩,也需在离雅浦岛400英里远的帕劳岛上才能找到。雅浦岛部落里的探险家们开采这些石
灰岩,打制成内部中空外部呈环形的石轮,然后用木筏运回雅浦岛作为货币使用。这些石轮
小的直径30多厘米,大的直径有3米多。为了便于运输,有时会往中间插一根粗壮的木柱。
雅浦石币有个很有趣的特点。交易双方在决定了使用多大的石币付费后,如果那个石头
太大了,不方便运输,那么卖家只要在买家的石头上做个标记就可以了,这样就算是付费
了。那个标记就说明这个石头已经属于卖家了,而石头仍然躺在买家屋里。不只如此,还有更神奇的事情。岛上有一户大财主,所有人都承认他们家是首富,但奇
怪的是,没有人见过首富家里的石币,连他的家人都没见过。他们家拥有的财产是一个巨大
的石币,大小只有祖辈才知道,因为这个石币一直沉睡在海底。原来许多年以前,这户人家
的祖辈和其他人外出探险,寻找和开采石灰岩,就像美国西部的淘金客一样。他们的祖辈运
气不错,碰到了这个庞然大物,便将其制成石币,然后用木筏拉回家。但是归途中遭遇了强
烈的暴风雨,为了逃命,探险队只好砍掉拉筏的绳子,于是那块巨大的石币沉入了大海,永
远也找不回来了。回村后,探险队的成员都替他作证,那块石币尺寸巨大并且质量上乘。虽
然已掉落大海,但大伙都见证了这块石头的去处,所以不会影响它的价值。它的主人仍然可
以用它买东西,就跟把石币运回家存放起来的效果一样。
如果这个还不足以让你惊讶,请看下面的故事。雅浦岛岛民都不穿鞋,并且也没有发明
轮子,自然也就没有车道。岛上只有一些适合原住居民裸足行走的珊瑚礁道路,但是西方殖
民者却要求他们修筑能行驶汽车的公路。德国在1898年从西班牙手中买下了这座岛,要求几
个部落的酋长组织修路。修路对土著居民而言完全没有意义,德国人的马克在土著居民看来
跟废纸差不多,所以命令下达了几遍都无人搭理。想想也是,一伙拿枪的人登上一座自己从
未踏足的岛屿便声称拥有岛屿的所有权,还强迫当地居民为自己修路,这不是流氓是什么。
德国政府研究了雅浦岛的文化习俗后,突然开窍了,下令对几个违抗命令的部落征税。他们
派人到这些部落的每家每户,并往他们最珍贵的石币上涂上黑十字标记,声称这些石币已经
归德国政府所有了。这个解决方案既简单又“文明”——文明用在这儿真够讽刺的——但的确
非常奏效,可谓是“取之于无形,使人不怒”。所有人都觉得政府抢了自己的钱,为了使钱不
被抢走,只得乖乖去替政府修路。最后路修好了,德国政府就把那些标记抹去,于是岛民又
幸福地过上自己富有的生活。
读到这里读者朋友也许会发出这样的感慨:天底下竟存在这样荒唐的货币!但事实上,被视为现代经济学皇冠上最璀璨宝石的信用货币,其运行原理与雅浦岛石币并无不同。
(二)法兰西银行的黄金
弗里德曼在《货币的祸害》一书里举了一个例子:1932年,法兰西银行害怕美国不再盯
住金本位,不再按一盎司黄金兑换20.67美元的传统价格兑换黄金。于是,法兰西银行要求纽
约联邦储备银行将它存在美国的大部分美元资产转换成黄金。为了降低将黄金装船海运的成
本,法兰西银行要求联邦储备银行把黄金存到法兰西银行的会计账簿上。
于是财经报纸用头条报道了这条关于“黄金的损失”以及对美国金融体系的威胁等诸如此
类的消息。美国的黄金储备开始减少,法国的黄金储备开始增加。市场认为美元走软,法郎
走强。这种因法国向美国兑换黄金而造成的所谓黄金流失,甚至引发了1933年的银行业恐
慌。而事实上,黄金并没有流到法国,仍然在美联储的地下金库里,因为这只是一次会计操
作而已。当时的实际情形是美国联邦储备银行在地下金库的抽屉上作了一些标记,表示这些
抽屉中的金块属于法国了。
看起来雅浦岛的石币像是远古的实物货币,如法国人的兽皮,蒙古人的砖茶,印度原始
居民的杏仁,中国夏代的海贝……但是,雅浦岛居民的交易并不真正需要挪动或分割那些石
币,他们只需要更改石币上的标记,甚至连标记也不需要。如果大伙脑海里有关于某一石币
的共同记忆,那么大伙也都承认这笔财富的存在。
对,货币只是一种记账方式。不仅雅浦岛居民这样认为,美国联邦储备银行也这样认
为,比特币等区块链货币也是这样认为。当文克莱沃斯兄弟宣称他们拥有100000枚比特币,不是说在某银行的保险箱里,真的有100000枚比特币整整齐齐码在那儿,而是说比特币全网
节点都承认有这些一笔比特币,且归属于文克莱沃斯兄弟的比特币地址。
(三)货币的本质
让我们回到货币的本质。假想我们处在一个没有货币的世界,比如同样也是在一个遗世
独立的小岛上,与雅浦岛不同,这个小岛还没有诞生货币。岛上只有我和你,现在我们需要
进行一笔交易。我想要你手里的鱼,你想要我手里的浆果。那么很简单,我们直接互相交换
就可以了。但是如果我现在手里没有浆果,我的浆果得在秋天才能收获,可是我现在又很需
要你手里的鱼。那么我们该怎么交易呢?好吧,鉴于岛上只有我们两个人,你决定相信我,我给你发出一个IOU(I owe you),即借据,约定到秋天浆果收获的时候我支付给你,现在
我就可以获得我所想要的鱼。我们引入资产负债表的概念,让这个故事更一目了然(表1-
1)。
表1-1 基于直接互换的资产负债表
在资产负债表中,我的资产由于获得鱼而增加,同时负债也增加,即对你的债务凭证。
而你的资产端则是将交易给我的商品转换成了对我的债务追偿权。
现在我们来个稍微复杂的例子。假设你我素昧平生,彼此都不信任,那这个时候我们该
如何进行交易?假设我们都信任一个第三方,比如银行,银行也乐意充当我们的桥梁,那么
交易见表1-2。
表1-2 基于第三方的资产负债表我把自己的IOU转换成向你所认可接受的第三方发出的IOU,在这里由银行发出的IOU
即银行券(bank note)。这样如资产负债表所示,我在资产端获得所需商品,负债端为对银
行的IOU;而银行的资产端则为我发出的IOU,在负债端银行以我发出的IOU转换为对你发
出的银行券(钱)。你的资产就由商品转换为银行券。
所以在现代社会,货币就是一种特殊的IOU,无论把货币当作是贷款还是债务,货币的
本质都是一种记账方式。
当交易的群体不只是两个人之间,而是扩大到社会中的每个成员,当我们进行这种时间
上不匹配的交易时,我们每个人都发出自己的IOU,那么这个系统就会变得极为复杂(图1-
1)。因为没有都认可的第三方时,我们每个人的交易都要取决于是否相信其他人,这将使
我们在交易中寸步难行。于是我们不得不依赖于银行这种所谓“可信第三方”,可问题并没有
解决,而是转化为另一个问题:银行真的值得信任吗?
图1-1 无“可信第三方”的交换
(四)邓巴数限制
如果雅浦岛首富登上“非诚勿扰”,骄傲地宣称自己在太平洋底拥有一块非常值钱的石
头,恐怕会被女嘉宾当成疯子羞辱。这种原始的货币制度只适合自然状态下的小规模经济,也就是费孝通在《江村经济》一书所说的熟人社会。雅浦岛石币无法突破邓巴数限制。人类
学家罗宾·邓巴(Robin Dunbar)发现每个人与之维持持久关系的熟人,数量通常只有150个
左右,这一数量限制就称作邓巴数。狩猎采集社会的典型组织单位“游团”的规模一般不足百
人,比如非洲西南部卡拉哈里沙漠的桑人,每个游团20~60人,邻近农耕区的游团100~150
人;从事游耕农业的半定居社会,规模也只是略大,比如缅甸克钦邦山区的游耕群落,最大
的也只有100多人。
雅浦岛之所以能孕育出如此神奇的货币现象,乃是因其处于自然经济状态,小岛居民人
口不多,交易不普遍,货币的周转速度也非常慢。当地居民有的也许终其一生,也只有寥寥
几次交易行为。幸亏雅浦岛上没有淘宝,没有电子商务,不然当地居民的脑子可能会“内存
不足”。这也正是雅浦岛石币仅存于与世隔绝的大洋孤岛,而不见于人类主流社会的原因。
从地理上,没有比雅浦岛石币更孤独的了,它原产于西太平洋上的帕劳。但在理念上,它并不孤独,可以说它与比特币思想异曲同工。石币与比特币都具有稀缺性,前者是大自然
的石灰岩矿藏分布,后者是基于数学算法;两者同样需要付出昂贵的劳力(计算力)成本才
能获取,前者是冒险家的航海运输,后者是矿工的挖矿;两者交易总账均采用分布式存储,前者是大脑记忆,后者是计算机(表1-3)。幸亏有了计算机,人们终于不再需要用石头标记
或集体记忆来记录交易,计算机网络可以帮助我们实现这一切。交易行为也同样打破了熟人
社会的限制,在比特币交易过程中,交易双方不必彼此熟识或信任,也无须引入可信第三
方,就能随时随地自由交易,也就是说,邓巴数被突破了。
表1-3 法币、石币、比特币特性对比
(五)中心化缺陷
如果雅浦岛首富为富不仁,想要私下使用这笔巨款,比如偷偷跟自己的情人说我那块大
石头送给你了,那么这次交易是无效的,因为交易没有广播,并没有其他岛民在旁边作证。
但如果首富临死前,当着全岛人民的面说,这块大石头就作为遗产给我的大儿子了,那么这
笔交易就是有效的,因为其他岛民都做了见证,并集体更新了头脑里的“账簿”。雅浦岛石币
虽已具备分布式货币的雏形,但毕竟人肉信息传递网络是脆弱的,交易在口口相传的途径中
以及集体记忆中极易出现差错。
比特币全网的节点每时每刻都在向网络广播交易,每笔交易经10~60秒就能广播至全球
所有节点,速度取决于节点的网络连接状况。这些广播出来的交易在经过矿工的验证后,打
包到数据块中,串联起来形成环环相扣的区块链,这些交易一经六次确认便几无篡改的可能
性。要修改某个区块上的数据,得从这个区块开始重新计算之后的所有区块,考虑到比特币
全网1300万亿次哈希运算的算力,地球上在比特币网络之外已不存在足以逆转比特币交易的
计算能力。
雅浦岛的集体记忆式账簿虽然表面上是分散的,但仍然存在一个权威的第三方,可以决
定石币的归属。然而在去中心化的区块链中,并无一个高高在上的殖民政府有权宣布没收你
的比特币。或许从载体来说,石币是真实存在的实体,比特币只是虚无缥缈的数字,但从实
用性来说,石币只是发人深省的寓言,比特币才是实实在在的财富。
数万年以来,雅浦岛岛民将他们在遥远的岛屿上开采出来,经过打制并运回自己居住岛
屿的石头,充作交换的载体,他们一直这样独特地理解着金钱与财富;数千年以来,文明社
会则把金块从地底深处开采出来,花大力气进行冶炼,经过长距离的转运,再次埋进精心设
计的地下金库,金块的一举一动都可能引发金融市场的离奇波动;最近几年,矿工们满世界寻找着便宜的电力,大规模部署先进的ASIC芯片,挖掘一种叫比特币的玩意,据说那是一串
叫作Base58编码 [10]
的毫无意义的字符,居然能在全球100多家交易市场卖数百美元一个。
听完上面这个故事,比特币是不是也变得不那么令人费解了呢?
三、信用篇
(一)库拉圈
社会学家马林诺夫斯基(Malinowsk i)考察完西太平洋上的特罗布里恩德群岛后,对古
典经济学中的一个假设很生气。经济学家过去一直把人类视作“理性经济人”,假设他们在自
由和竞争性的市场里同他人进行交易或交换时,总是寻求物质利益或效用的最大化。但特罗
布里恩德群岛上的居民却不是这样。在他们的交易行为中,利益最大化似乎并不是他们考虑
的首要前提。
在这些洋岛部落间存在着一种被称为库拉圈(Kula Ring)的封闭交换关系圈,当地居民
生活的各方面都与库拉有着紧密的联系。库拉的核心是白色贝壳雕琢的臂镯和红色贝壳打造
的项圈的交换,这种交易具有方向性,人们只能逆时针方向交换臂镯,顺时针方向交换项圈
(图1-2)。
图1-2 库拉圈交换
库拉贸易圈大致覆盖了整个特罗布里恩德群岛。岛上的男人长途航行,横穿公海,按顺
时针方向输运项圈;另一些人则按逆时针方向输运臂镯。一个人根据地位的不同,可能有一
个到数十个的库拉伙伴。库拉伙伴是具有库拉关系的不同部落的土著。这是一种相对稳定的
关系,关系一旦建立就基本不会被破坏。一旦进行库拉交易,则一直进行库拉交易,交易伙
伴越多,他的部落地位越高。
当一个人从南方的库拉伙伴处得到臂镯,他会再把臂镯交换给处于北方的库拉伙伴。相
反,当他从北方的库拉伙伴处得到项圈,会再次把项圈交换给南方的库拉伙伴,从而形成按
相反方向流动的两种库拉圈:臂镯以逆时针的方向流动,而相应地,项圈以顺时针的方向流
动。处在库拉圈不同地方的土著基本按照这样的方式进行库拉。
马林诺夫斯基发现,库拉交易并不是等价交易,也不同时发生,而更像是一种礼物馈
赠。一个人将臂镯交换给处于下游的库拉伙伴,上游的库拉伙伴一段时间后回赠项圈,臂镯和项圈的价值并不相等。如果臂镯的价值高,且人都是自私的话,那么他不应该将臂镯交换
出去。但事实上,群岛上的每个库拉交易者都非常乐意将臂镯交换出去,而不是以占有为目
的。正如马林诺夫斯基指出的:
“在特罗布里恩德岛民的库拉交换形式中甚至没有一丝要从中获利的迹象,没有任
何理由用纯功利主义的和经济的观点看待他们,因为他们没有通过交换而相互利用”。
(二)理性经济人
看到这里,读者朋友可能会觉得这群可爱的岛民都是乐施好善、淡泊名利的天使,但你
要是了解他们种红薯的奇怪嗜好就不会这样认为了。特罗布里恩德人喜欢种红薯但他们并不
吃红薯,因为岛上遍布野生的热带奇珍异果,既好吃又管饱,在这儿,农业更像是一种娱乐
活动。他们种红薯的唯一目的就是堆在院子里炫耀,攀比谁的红薯堆大,然后储藏起来让它
们烂掉。看来特罗布里恩德人同文明世界里的“土豪”一样,都喜欢炫耀自己的财富,以种红
薯这样不算浪漫的方式诠释着浪费。但在库拉交易中,他们却并不以拥有臂镯和项圈多为
傲,相反,他们以频繁交易为荣。这种交易要经历航海的千辛万苦,没有带来丝毫财富上的
回报,这似乎很矛盾。
按照经典经济学中“理性经济人”的概念,小岛原住民的一切行为都是出于自利的理性考
虑,他们过着一种“算计的、冷酷的、自我中心主义的、斤斤计较于效用的生活”。马林诺夫
斯基严厉地批评了这些观点。他指出,“库拉交易绝非纯粹的商业性交易,它不是建立在对
实际效用和利润得失的简单计算上”。 [11]
对库拉交易行为的合理性解释很多,一种解释认为这就是礼物馈赠,因为库拉交易中隐
含着一种互惠逻辑:赠予礼仪性的礼物以后,不论时间长短,总要报以差不多等值的答礼。
结构主义大师列维·施特劳斯的舅舅莫斯还根据这个社会学案例写了本著名的《礼物》。另一
种解释认为这是宗教仪式,因为某些库拉交易还伴随着精致的巫术仪式和公共仪礼。
但是,以上两种解释都无法回答以下几个问题:①库拉交易为何要规定方向?②为何交
易对象越多,交易者的地位越高?③为何交易次数越多,交易者的地位越高?
(三)等价交易
当今电子支付是如此快捷高效,以至于人们会有这样的疑惑:既然PayPal(贝宝)、支
付宝已经如此方便,我们还需要基于区块链的数字货币支付吗?
答案是肯定的。在一次支付宝处理的交易中,一个人的支出等于另一个人的收入,这是等价交易。问题在于,如果支出与收入是同一个人的两个账户,会发生什么?由于对支付宝
而言,每一笔交易的边际成本都近乎于零,所以,如果一个人同时拥有两个账户,他在两个
账户里反复进行转账交易,就会以非常低的成本制造出无数被支付宝视作洪水猛兽的刷信用
行为。
淘宝网非常明智地给交易引入了评价,但是无论采用多么高明的机器算法与人工干预,都无法阻止刷客与差评师这两种职业的存在。前者假扮成买家,通过虚假交易,对卖家的商
品刷好评以赚取卖家支付的佣金;后者给网上卖家恶意差评,以勒索卖家提供相应的“赔
偿”以获利。
淘宝网通过非常复杂的手段遏制刷信用行为:一方面使用机器算法对店铺进行排查,将
出现异常情况(如交易过于频繁)的店铺进行上报;另一方面设有2000多人的团队,对涉嫌
刷信用和好评的店铺进行清查,但是收效甚微。这不仅是淘宝网的难题,也是所有电子商务
平台的阿喀琉斯之踵。只因它们对交易行为的处理都是一样的,即等价交易。
等价交易的观念伴随着可切割熔铸的金属货币的使用而被人们广泛接受,并随着时间的
推移而根深蒂固。公元前7世纪吕底亚人使用条状的金属或者扁豆状的金属块进行支付,可
以精确地衡量商品的价值。王国的统治者克里萨斯国王因发达的铸币业而富有得令人难以置
信,并因此就有了“像克里萨斯一样富有”的说法。
互联网电子支付对交易的处理与吕底亚人并无不同,只不过,PayPal、支付宝不再使用
粒度不同的金属,而是使用服务器里妥善存储的数据。等价交易无须精确称量,而只需进行
一次数据库操作。用户用电子支付的A账户给B账户转账金额为m,反过来,再从B账户转账
金额m到A账户,电子支付数据库里A账户与B账户的数值又恢复到起始,如此进行无数遍,便是典型的刷信用行为。库拉圈交易也是一次循环(库拉的含义就是循环),不同的是库拉
的交易有方向性,而不能作对换交易。
试想在特罗布里恩德群岛的库拉圈贸易中,若是一个人从南方的库拉伙伴处得到臂镯,不再把臂镯交换给北方的库拉伙伴(逆时针),也不把自己的项圈回赠给南方的库拉伙伴
(顺时针),而是再次把臂镯还给这位南方的库拉伙伴,将意味着什么?没错,这是一次典
型的刷信用式的死循环,臂镯将永远在这两位库拉伙伴中循环,而成为两人永久占有的私
藏。两人在部落中也将“刷出”非常显赫的地位。显然,如果大家都这么投机取巧,那么所有
的臂镯与项圈都将退出流转,变成藏而不露的私有财产,库拉贸易圈也将不复存在,而这正
是库拉贸易要规定交易的方向的缘故。交易一旦启动,库拉就会像接力游戏一样,一直按顺
时针或逆时针方向流转下去。
库拉圈带给我们的启示是:如果规定交易的方向,就可以避免刷信用的行为。然而,这在真实经济中是不现实的,我们无法规定在电子商务中只允许与固定的人群交易,人们也的
确有与自己交易的自由。
(四)将币天销毁引入信用评价
币天(CoinDay s)销毁是区块链的一个非常重要的概念。顾名思义,币天销毁等于每笔
交易的金额(币)乘以这笔交易的币在账上留存的时间(天),比如你花了一笔100天以前
收到的10比特币,这笔交易的币天销毁就是1000币天。
起初,区块链研究者并没有注意到币天销毁的意义所在,因为它不像时间戳、难度、随
机数等字段一样,在区块链中有明确的作用。只有少数对币价敏感的人群关注这个指标,他
们认为区块链的币天销毁累积的变动,可以揭示市场走向。在市场处于下跌通道时,币天销
毁的峰值意味着市场中的弱手,因为代表着大户可能要抛币。当市场处于上涨通道时,币天
销毁的峰值意味着市场中的强手,表明市场可能会走强。与传统股票市场不同,在比特币等
数字货币交易市场中,币天销毁比每日交易量这个指标更能准确地显示市场的资金流动。因
为如果一个人开两个账户(比特币地址),用100个比特币来回转账,这样可以把交易量做
到很大,但币天销毁却几乎维持不变。
币天销毁第二次被引起重视是在权益证明(PoS)中。点点币创始人萨尼·肯为避免工作
量证明机制(PoW)的算力浪费,设计了权益证明的共识方案:当创造一个权益证明的区块
时,矿工需要创建一个“币权”交易,交易会按设定的比例把一些币发送给矿工本身,其原理
与比特币的区块产出25个新币相似,不同的是其难度与交易输入的“币天”成反比,而与哈希
计算力无关。由于权益证明的哈希运算只是基于时间与已知数据,因此无法通过改进芯片性
能来加快其运算速度。每一秒钟,每个点点币交易输出都有一定概率产生与其币天成正比的
工作量 [12]。显然,在权益证明中引入币天的初衷是防止矿工重复使用自己的币,因为如果
挖矿难度仅与矿工的权益(拥有的币)相关,那么,每个币都可以成为“模拟矿机”,那些拥
有大量币的人躺着就能挣钱(挖矿),持币较少的用户则只能喝西北风,而这正是权益证明
饱受诟病的原因。但若挖矿难度是币天的函数,虽然这种“模拟矿机”的算力会随着时间累积
而线性增长,但每发现一个新的区块其算力就随币天的销毁而归零,故币天可以保障权益证
明机制中所有挖矿者的公平性。
以上两个应用实例虽然解决的是不同的问题,但本质上都是利用币天销毁在交易过程中
不可逆的特性,使得用户不能在两个账户间反复利用同一笔钱获得某种回报。在市场中,大
户不能利用同一笔比特币制造大量币天销毁虚构币的流动,在PoS挖矿中,用户不能利用同
一笔点点币反复挖得区块中的新币。相应地,如果把币天销毁引入交易的信用评价呢?如果
说币天销毁在市场预测与权益证明中的应用是小试牛刀的话,那么,它在信用评价中的作用
则是锋芒毕露了。让我们看看为什么刷客与差评师们在区块链的信用体系中会混不下去。如果规定把币天销毁作为信用评价因子,在一次交易中,销毁的币天越多,则信用评价
的权重越高。当刷客试图给用两个账户反复交易而刷好评时,第一次交易的评价是有效的,但历史上累积的币天在交易完成之时便已销毁,当进行第二笔交易时,由于发生在第一次交
易后不久,币天积累非常小。相应地,对信用评价的贡献微乎其微,其后所有交易的币天销
毁之和同样也非常小,用户利用同一笔钱反复给自己刷好评,不管进行多少次,其最终效果
与第一笔交易所带来的信用评价几乎一样。同样,当差评师试图通过大量小额交易给用户以
恶意差评时,由于信用评价正比于币天销毁,交易的额度太小,同样也几乎不能对用户的信
用产生影响。
也许在不远的将来,在淘宝、京东等电商平台泛滥成灾的刷客与差评师将会失业。需要
指出的是,人们过去总是把信用当作一个道德问题,试图从道德层面约束交易行为。淘宝极
其复杂的信用体系试图区分真实的交易行为与作弊交易行为,并通过大数据分析,结合用户
的社会关系、职业、收入甚至公共事业缴费单,评价一个人的信用高低。然而在区块链的信
用评价中,信用其实是一个数学问题。在刚才的例子中我们看到,用户的交易行为不再被区
分为作弊交易与真实交易,而对所有的交易行为一视同仁,通过数学赋予交易以成本(币天
销毁),便可以使信用评价结果准确地反映用户的真实信用。作弊是允许的,不存在一个中
心化权威可以跳出来宣布冻结你的账户,但即使你作弊,也不会对任何人的信用产生影响。
(五)交易的热力学第二定律
目前第三方支付都把交易处理成等价交易,在一次交易中,一方的支出等于另一方的收
入(式1-1)。这本身并没有错,只是还不够。在交易的过程中,还需要引入时间之矢,用于
区分一笔从A账户到B账户的交易与B账户到A账户的交易,虽然金额同样为m,但两个过程
中销毁的币天不一样。
等价交易是个等式,而信用评价是个不等式。在交易的过程中,既包含交易金额的转
移,又包含交易双方相互的评价。如果说等价交易就像是交易的热力学第一定律(式1-2),那么基于币天销毁的信用评价就好比发现了交易的热力学第二定律(式1-3)。热力学第二定律讲的是在孤立系统内的不可逆过程,系统的熵总是增加的,也叫作熵增
加原理。这一原理的克劳修斯表述是,不可能把热量从低温物体传向高温物体而不引起其他
变化。相似地,我们可以得到热力学第二定律的交易式表述:在交易过程中,系统的币天总
是销毁的,不可能在一次交易中不销毁任何币天。
币天销毁的本质就是时间之矢。正如特罗布里恩德群岛的居民们规定了库拉交易的空间
方向,区块链上的交易则是用币天销毁标记了交易的时间方向。等价交易把交易理解为标
量,信用评价却把交易理解为矢量,等价交易加上信用评价,这才是交易的全部。
于是,奇怪的库拉交易行为也可以进行解释了。原来,岛民们并不是在做普通的等价交
易,而是在从事一个类似于信用评价的交易。一个人的交易伙伴、交易次数的多少决定了他
的信用高低,这确实符合信用的逻辑。信用也不取决于交易信物的价值,占有库拉并不能提
升个人财富,相反,还可能损害个人信用,交易信物的价值很小,交易行为本身才有价值,库拉只有在流动中才能展现一个人的信用。那么,岛民们不远万里地与库拉伙伴们交易,也
完全合乎他们的利益。虽说在院子里晒红薯堆的行为看起来简直“蠢萌蠢萌”,但他们在交易
库拉时却是不折不扣的精明人。库拉交易确实不是等价交易,在这一点上,马林诺夫斯基是
对的,但在岛民是不是“理性经济人”这个问题上,他着实是错怪古典经济学家了。
最后问题来了:是谁设计了币天?如前所述,在区块链中币天并不是必须存在的字段,它可有可无。如果区块链是一部机器,那么从这部机器中去掉币天这个零件,丝毫不影响整
部机器的运行。但事实上,从创世区块以来,币天就已经存在了。中本聪为什么添加币天这
样一个字段,我们只能像Vitalik一样把这个归为碰巧吧。
四、区块链篇
(一)第五次计算范式创新
1970年是比特币的计时元年,比特币区块链的时间戳从1970年1月1日起开始计算秒数。
1970年,纽约清算所建立银行同业支付系统(CHIPS),以电子化的手段代替原来的纸
质支付清算。当时采用的是联机作业方式,通过清算所的交换中心同9家银行的42台终端相
连。
当然1970这个数字巧合并不是中本聪有意为之,区块链以1970作绝对时间的计算起点,是因为UNIX(尤尼斯)操作系统以1970年1月1日作为纪元时间,很多编程语言起源于UNIX
系统,同时也在比特币代码中留下了历史的痕迹。20世纪70年代,采用UNIX操作系统的大型机大行于世,所以银行清算中心也因大型机的面世而步入电子化时代。这与其说是巧合,不如说是偶然中的必然。
分析现代社会进化过程的一种方法是观察计算范式,我们看到每隔10年就会有一次新的
范式出现。20世纪70年代是大型机,20世纪80年代是个人电脑,互联网与移动互联网则是最
近的两次范式创新,那么接下来10年呢?基于区块链加密协议的价值互联网很可能就是一种
新的范式(图1-3)。
图1-3 五次计算范式创新
与声名大振的比特币相比,区块链技术一直默默无闻,但关于比特币的误解却一直影响
着公众对区块链的认知,如与“丝绸之路”这样的网络黑市的种种关联,不免让人谈虎色变。
事实上,各国政府部门、金融机构都在探索区块链技术的未来应用场景。它的以下四个特
征,可能会给政府与金融服务带来跨越性创新 [13]。
1.通过加密技术对账
目前,政府和商业机构会把交易的详细信息发送给对方,一旦收到信息,每个机构都会
在自己的账本上更新信息。但现在还没有一种方法可以保证这些信息的准确性。区块链可以
通过分布式共识机制来解决这个问题。例如,通过工作量证明、权益证明等不同共识算法解
决拜占庭将军问题,或通过“证据点”检验数据,账本的参与者就可以就底层数据的状态达成
共识。
2.数据复制
许多机构都有部分或全部数据的拷贝,这极大地降低了错误数据出现的可能性。对于现
在的数据库技术来说,数据复制工作会增加IT(信息技术)系统的成本,并对IT系统的复杂
性提出更高的要求。将数据大量复制的一个好处就是哪怕有一处数据出现错误,其他的数据
还会是准确的。很多机构可以通过对账计算,检验其数据是否准确。
3.访问控制
分布式账本使用私钥和签名管理能够访问账本的权限。这些私钥在特定情况下具有特定
的功能。举例来说,一名监管人员想检查一个机构所有的交易,可能需要一把“观察钥匙”,但这样的钥匙只有被法庭授权后才能具有这样的权限。4.透明性和私密性
因为许多机构都拥有账本的备份,同时也可能验证每份记录的真伪,所以共享账本的透
明性是很高的。因此,监管者或是独立第三方(司法)可以确信数据库的内容没有被篡改。
鉴于此,他们可以公开原本是私密或不可公开的文件信息。在监管报告和欺诈预防方面,共
享账本可以帮助银行等商业机构,甚至可以使民众拥有监督政府履行职责的能力。通过独特
的数字签名技术,可以验证正确的人已经按照正确的规则添加了正确的记录。
(二)无银行间组织的跨行结算
生活中我们经常需要跨行、异地存取款,这会给银行之间带来高昂的结算成本。在没有
银行间清算组织之前,需要解决两家银行之间的通信问题。以图1-4为例,汇丰银行、花旗银
行、渣打银行之间需要专门的通信接口,以满足双向通信的要求。
图1-4 无银行间清算组织的结算
下面,以银行的存付款为例,让我们设想有三个银行:汇丰银行、花旗银行、渣打银
行;两个用户:用户A和用户B。每一个银行都有独立的信息系统,来核算自己的收支情况。
汇丰银行的信息系统记录自己的客户的账户收支,花旗银行的信息系统记录自己的客户的账
户收支,以此类推(图1-5)。
图1-5 银行各自记录账户收支的信息模型
显而易见,我们可以发现两个问题。
第一,记录的重复性。看看银行的记账方式,汇丰银行的系统记录着“花旗银行欠汇丰
银行100万欧元”,而花旗银行的系统也记录这个事务。也就是说,同样的事务被两个独立研
发的系统记录了两次。而在其他领域,这种重复更加庞大也更加昂贵。
第二,记录者风险。看看用户A在汇丰银行和渣打银行有存款,而他在花旗银行是处于
透支状态。也就是说,汇丰银行和渣打银行欠用户A钱,那么是谁记录这个欠钱的事务呢?
汇丰银行和渣打银行自身!用户A不得不相信这两家银行会妥善处理自己放在银行的钱,银
行会保持所有记录的准确性。我们习惯地将这种情况视为理所当然,但总感觉哪里不对劲
吧。毕竟塞浦路斯银行危机这样的事就发生在不久前,如果有一天,你拿张祖传的100万美元存单,银行说上面只有1000元……
因此我们看到了两个有趣的现象:存款方不得不相信银行会妥善保管存款,并准确记录
账户信息。而银行自己也不得不花费大量的时间和金钱来建立一套系统,以相信自己可以妥
善保管用户的钱并保持账户信息的准确性。然后同业银行之间会花费更多的时间和金钱,互
相检查,以保证它们的系统可以达成一致。
即便是在简单的模型里面,也至少有7处需要对账(图1-6)。银行里的“事务”通常最少
要由两个不同的实体记录,并且需要昂贵的重复确认过程来保证各方的记录是一致的。
图1-6 对账的简单模型
在没有清算系统之前,同业银行之间的来往增多以后,会快速增加银行之间的清算网络
和成本。这还只是三家银行的简单模型,通信网络就增加到6条,当银行越来越多的时候,这种点对点的通信变得越来越复杂,每新增一家银行,要做之前银行都要做的重复性工作,成本非常高昂。
如果一家银行与业内的1000家银行之间建立清算链接,该银行需要建设1998条通信链
路。类似于足球比赛中主客场之间比赛,20支球队之间的联赛,每支球队需要参加38场比
赛,30支球队的联赛每支球队需要踢58场比赛。
上述例子套在保险业和金融衍生品系统也是完全合适的。事实上对后者而言,这个模型
带来的问题会更加严重,因为我们不仅仅需要确认谁和谁做了什么样的交易,还要确认他们
以及他们的系统都同意交易带来的结果——他们一定要在商业逻辑上达成一致。
想一想在金融领域有多少几乎一样的系统存在,每一个都几乎无差别的运行,制造更加
几乎无差别的结果,这些结果不得不以昂贵的方式检查和解决,花费是十分巨大的。
(三)中心化的共享式总账
如果每一个银行都运行自己的系统,是如此昂贵和复杂,并且不可避免地带有局限性,不得不在与其他系统重叠的部分反复检查以互相匹配,那为什么不直接让大家都使用,由大
家都相信的某权威运行的一份统一单独的总账(如图1-7)?图1-7 中心化共享总账的对账模型
图1-7 左边的5张分开的表格合并后,可以完全等价地写成右边单一的表格,同样从右边
的表格也很容易复原出左边的5张表格,唯一的不同是右边的表多一列。这样我们就可以用
一张表记录一切,并且得到与原来的方案相同的结果。每个银行都可以毫不费力地从这个总
账本中找出与自己相关的部分。
那么必须出现一个网络来保管右边这统一的表格,而且它能够接入所有的银行。新的银
行只需接入这个网络,就可以和其他所有银行进行通信,清算所和银行间组织就这样应运而
生。
(四)有银行间组织的跨行结算
说起美国银行业清算系统的由来,还有一段趣闻。在两百多年前,两个银行职员的偶遇
擦出了债务交换的火花,成为现代银行间清算系统的雏形。那天,两个不同银行的职员在收
账的路途中小憩,碰巧走进了同一家咖啡店。闲聊中,得知相互都要去对方那里取送票据,于是灵机一动,干脆在咖啡店进行交换算了,这样就可以省掉去对方营业地的旅途劳顿。从
那以后,喝咖啡成了他们的正差,交换票据成了副业。如此滋润的事自然吸引了其他同行,他们纷纷加入进来,于是这家咖啡店变成了不叫清算所的清算所。
如果说咖啡店票据交换场所尚处于蹒跚学步阶段的话,那么1853年由62家银行在华尔街
14号地下室共同创立的纽约清算所则标志着银行清算所已步入成年。CHIPS(纽约清算所银
行同业支付系统)是全球最大的私营美元资金交换系统,平均每天清算和处理1.5万亿美元的
美国境内和跨境支付业务。
美国不仅拥有全球最发达的银行清算系统,还拥有全球最发达的资本市场清算系统,也
是全球最大的信用卡清算中心。VISA(维萨)和万事达两大国际信用卡组织均为位于美国纽
约的摩根大通银行,同时也是自动清算所的成员,纽约也就成为全球信用卡的发源地和支付
清算中心。
在VISA和万事达等这样的信用卡组织出现之前,跨行结算复杂度高,成本高,速度极
慢。信用卡组织出现后,形成中心清算的模式,所有银行和该中心建立清算接口,所有跨行
之间的交易都汇总到该清算中心。清算组织的出现提升了跨行清算的速度,并降低了清算的
成本(图1-8)。
图1-8 有清算组织的银行间的跨行结算但由于清算中心是中心化的架构,随着加入组织的银行成员增多,给清算中心带来收入
的同时,也加大了工作量。在接入的银行超过一定程度后,再增加银行会员,就会显著增加
清算中心的成本和工作量,从而降低清算速度。例如管理10人团队和管理10000人团队差别
很大。目前,国际上三大信用卡上市公司VISA、万事达、美国运通2015年营业收入合计达到
543亿美元。区块链技术实现分布式记账的结算之后,能为整个银行业节省一大笔费用。
清算、结算、托管和注册服务对于发行、交易和持有证券都会显著增加成本。有大量的
专业代理和交易对手参与到投资者的证券和现金活动,不仅这些服务有特定的收费,还有处
理各种不同系统接口的业务集成和流程的辅助成本。据估算,全球金融行业每年在交易后
(post-trade)成本是650亿~800亿美元。图1-9以T+2交易机制为例,描述了主流证券交易结
算的多层次的复杂交易过程 [14]。
图1-9 美国证券交易的托管结算体系
同样,传统清算中心还面临中心化风险。例如“9·11”事件后,纽约联邦储备银行立刻停
止靠近纽约的新泽西美元支付清算系统的运行,启动灾难备份系统,将美元支付清算系统从
纽约新泽西切换到里士满和达拉斯。虽然在整个切换过程中,支付清算系统既没有中断服
务,也没有丢失数据,但也惊出一身冷汗。如果袭击的不是世贸大楼,而是新泽西的美元支
付清算系统,那么纽约清算中心将立即崩溃。
(五)去中心化的共享式总账
全球共享的账本可能被单一的强力实体控制,还有中心化的系统可能会有系统性的风
险。因此我们可不可以对模型做两种微调?
第一,为什么不大量地复制账本,让每一个银行都保管一份拷贝?这样,单点出现故障
就不会影响总体,系统也会更安全,因为要篡改其中一份拷贝很容易,但要同时改动所有人
的拷贝则很难。同样,每一个银行都有一份总账本拷贝也能使现存金融机构的整合变得更容
易,这也能推动共享式总账的接受度。问题是怎样保证这么多份拷贝实现同步?
第二,为什么不让这个系统的参与者——不仅仅是银行,也许还包括银行的用户——一
起参与进来维持和保护这个系统呢?毕竟,银行和用户都是这个系统的直接利益攸关方,不
用怀疑他们任何一方保护自己的钱与监督对方的动力。任何一方欺骗都会被及时发现并受到
惩罚。因此我们将一个单一权力的实体替换为每一个人都参与系统安全的新模型。如果以上设想成立,账本看起来应该是这样的(图1-10)。
图1-10 银行与用户共同参与的系统模型
在这个模型中,所有的参与方都有一份总账的拷贝,但是只有修改自己部分的权限,因
此它既是可复制的又是分布式的。
如果一个全球化的分享式总账存在风险,那么区块链就是对各方有利的最佳选择。区块
链技术以点对点的方式运行一个分布式共享账本,参与者通过非对称加密的公私钥对执行交
易,这显著降低了交易结算的复杂性和交易后的服务成本。
区块链几乎不存在单点故障,数据存储在全球数以万计的节点之上,分布式网络每时每
刻都有大量节点频繁地加入或退出,但丝毫不影响全局结构的稳定性。
交易数据以区块的形式被打包到数据库,每一个区块都会由节点进行审查。如果所有节
点达成共识,该区块包含有效交易时就会被添加到数据库中。此外,建立和维护这些节点是
完全自治的,不需要也不允许任何一个控制或监管实体的存在。
由于区块链清算和结算几乎达到同步,系统在点对点网络上运行,每一笔交易都能确保
准确执行,安全透明,每笔交易都能被网络上所有节点核实,而不是依靠一个中心化机构,因此其交易几乎不能被篡改。几乎所有无形的文件或资产都能以编码的形式表达,交易历史
既可以被记录且公开,也可以被自主隐藏。隐私的选择权在于私钥的拥有者用户本人,使参
与者能更自主地管理自己的隐私,监管者更有效地监管资产的流动。
[4] 本章由长铗完成。长铗,巴比特(www.8btc.com)创始人,区块链研究者,科幻作
家,2006~2008年连续三届中国科幻小说最高奖银河奖得主。合著有《比特币——一个真实
而虚幻的金融世界》(中信出版社),合编有《2014~2015中国数字货币行业发展研究报
告》(上海社科院出版社)。巴比特创立于2011年,专注于区块链资讯、数据、社区与区块
链众筹服务,现已发展为国内入口级区块链基础信息与数据服务平台。
[5] Dominic Frisby.搜寻中本聪.巴比特,2014.
[6] 由罗纳德·维斯特、阿迪·萨莫尔和伦纳德·阿德曼三人姓首字母为名的一种加密算
法。
[7] Napster是一款可以在网络中下载自己想要的MP3文件的软件。
[8] 维基解密创始人朱利安·阿桑奇也是密码邮件组成员。[9] 解密学家猜测中本聪可能是英国人,或受到英国文化影响,这不无道理,因为大多
数人可能都会采用damn hard(非常地困难)或者更简单粗暴的语言。
[10] Base58是比特币中使用的一种独特的编码方式,主要用于产生比特币的钱包地址和
私钥。
[11] 马林诺夫斯基.西太平洋的航海者.梁永佳,等,译. 北京:华夏出版社,2002.
[12] Vitalik Buterin.什么是权益证明以及为什么它重要.巴比特,2013.
[13] 英国政府首席科学顾问报告《分布式账本技术:超越区块链》。
[14] DTCC:拥抱颠覆者——探索分布式总账技术潜力,改进交易后场景。第二章
区块链基础 [15]
一、区块链的基本概念
区块链(Blockchain)技术的产生和发展离不开比特币。首先,因为随着比特币的诞
生,区块链技术才得以公布于众;其次,比特币是截至目前区块链技术最成功、最成熟的应
用案例。比特币的概念由中本聪在2008年发表的论文《比特币:一种点对点的电子现金系
统》中首次提出。文中,中本聪将区块链技术作为构建比特币数据结构及交易体系的基础技
术,将比特币打造为一种数字货币和在线支付系统,利用加密技术实现资金转移,而不再依
赖于中央银行。比特币使用公钥地址发送和接收比特币,并进行交易记录,从而实现个人身
份信息的匿名。交易确认的过程则需要用户贡献算力,共同对交易进行共识确认,从而将交
易记录到全网公开账本中。用户可以利用电脑、手机等发送或接收比特币,并选择交易费
用。现有逾百种加密数字货币(未来币、点点币、莱特币、狗狗币等),比特币约占所有加
密数字货币市值的90%。
比特币的区块链毕竟是为比特币体系的设计而定制,因此比特币的区块链技术并不等于
区块链技术。区块链技术应该是可以有更多种形态、更多种体系、更多种用途、更多种规格
的技术,其概念为:区块链是一个去中心化的分布式数据库,该数据库由一串使用密码学方
法产生的数据区块有序链接而成,区块中包含有一定时间内产生的无法被篡改的数据记录信
息。
区块中包含数据记录、当前区块根哈希(Hash)、前一区块根哈希、时间戳以及其他信
息(图2-1)。数据记录的类型可以根据场景决定,比如资产交易记录、资产发行记录、清算
记录、智能合约记录甚至物联网数据记录等。数据记录在存储过程中,通常组织为树形式,比如默克尔树,而区块根哈希实际就是数据记录树的根节点哈希,为根据数据记录树自下而
上逐步通过SHA-256等哈希算法计算得出。时间戳为区块的生成时间。其他信息包括区块签
名信息、随机值等信息,也可根据具体应用场景灵活定义。
图2-1 区块链结构示意图
区块链技术不是一种单一的技术,而是多种技术整合的结果,包括密码学、数学、经济
学、网络科学等。这些技术以特定方式组合在一起,形成了一种新的去中心化数据记录与存储体系,并给存储数据的区块打上时间戳使其形成一个连续的、前后关联的诚实数据记录存
储结构,最终目的是建立一个保证诚实的数据系统,可将其称为能够保证系统诚实的分布式
数据库。在这个系统中,只有系统本身是值得信任的,所以数据记录、存储与更新规则是为
建立人们对区块链系统的信任而设计。诚实意味着系统可以被信任,正是商业活动和应用推
广的前提,所以区块链技术已经被很多领域主流机构看中并非是没有理由的。因为有了区块
链技术,在一个诚信的系统里,可以省去许多烦琐的审查手续,许多因数据缺乏透明度而无
法开展的业务可以开展,甚至社会的自动化程度也将大幅提升。
近年来,包括高盛、摩根大通和纳斯达克等金融机构开始展开对区块链技术的重点研
究。这些机构的金融业务大都具有标准化程度高、连续性强、自动化需求大、业务对信用度
要求高等特点,跟区块链的优势高度契合。同时,在供应链金融中,由于物流、资金流和信
息流的复杂安排会涉及众多单据,因此使用电子商务平台记账会大大节省纸质单据所需要的
时间和成本,然而使用谁的电子商务平台就成为一个大问题。如果使用利益相关各方自建的
电子商务平台,数据的真实性就很容易受到质疑,而自建电子商务平台往往耗资不菲;如果
使用第三方的电子商务平台,第三方的经营稳定性和信息安全性又难以保证,比如因财务、政策、网络攻击等各种情况引起不稳定问题等,沟通协调成本和风险也会大幅增加。区块链
技术的安全性、不可逆、不可篡改性和透明性都已经得到了证明,如果能把供应链金融业务
直接建立在这样已被证明其可靠性的区块链上,将极大地降低安全和信用成本。所以,尽管
目前电子商务平台的使用已经大大节约了成本,但如果能有一个具有公信力的类似区块链公
共信用系统,成本仍有进一步节约的空间。从政府层面来说,这一点也很重要,因为提供值
得大众信任的系统本身就是政府职能的一部分。中国的资本运用效率远低于美国的一个非常
重要的原因就是社会的信用体系不健全、信息不透明、部门协调成本过高,且利益保护现象
严重。如果能从技术上应用区块链,就可以用较低的成本打破这些阻碍,建立一个公开的社
会公共信用系统,整个社会成本都将大幅降低,效率也将大幅提升,还便于监管。透明的数
据不仅将大大降低监管部门的工作量(很大一部分工作量转移给了社会监督,任何异动都很
难逃过众人的眼睛),而且使得监管部门的主要工作转向治理,提升治理人性化和效率。
尽管使用区块链技术所建立的系统本身是诚实可信的,但这并不意味着来自系统以外的
输入信息就是诚实的,更多的时候只是意味着区块链诚实记录并储存了这些外部数据。比如
认证,认证工作往往是在线下完成,即使区块链能够存储文字、图片甚至多媒体信息,也并
不意味着那些信息都是真实的。这只意味着区块链真实记录并存储了这些信息,防止被篡
改,如果发生业务纠纷时可以作为凭证。可能许多人没有注意到这一点,自动化是区块链技
术的一个非常重要的特性,区块链网络实际上就是一个接近于自动化或存在完全自动化可能
性的网络。这一点之所以重要,一方面,是因为自动化是金融机构青睐区块链技术的重要原
因,金融交易需要网络能够自动记录和存储交易数据,也能够允许参与者通过设置条件在网
络上自动进行和完成交易;另一方面,区块链技术在这方面提供的可能性为社会生产效率的大幅提升留下了广阔的空间,也为智能合约等一系列高级应用留下了充足的余地。在理想情
况下,区块链技术最终能够同物联网结合起来。
总体而言,区块链的发展体系可以划分为四个象限(图2-2)。第一象限是比特币区块
链;
第二象限是使用比特币区块链协议,但不使用比特币货币的系统,比如万事达币、彩色
币、合约币,以及采用合并挖矿的域名币等;第三象限是同时使用独立货币和独立区块链的
系统,比如以太坊、瑞波、莱特币和未来币等;第四象限是侧链,采用独立的网络但以比特
币作为底层货币的系统,如BTC Relay等。
图2-2 区块链发展体系四象限
(一)区块链的分类
目前已知的区块链技术应用大致分为三类。
1.公共区块链(Public Block chain):是指全世界任何人都可读取、可发送交易进行有效
性确认,任何人都能参与其共识过程的区块链(共识过程是维持区块链这种分布式数据库一
致性、准确性的关键技术,将在后续章节详细介绍),如图2-3所示。区块链上的数据记录公
开,所有人都可以访问,都可以发出交易请求,并通过验证被写入区块链。共识过程的参与
者通过密码学技术共同维护公共区块链数据的安全、透明、不可篡改。公共区块链的典型应
用包括比特币、以太坊等。
图2-3 公共区块链示意图
公共区块链是完全分布式的区块链,区块链数据公开,用户参与程度高,同时易于产生
网络效应,便于应用推广。然而,系统的运行需要依赖于内建的激励机制。公共区块链上试
图保存的数据越有价值,越要审视其安全性以及安全性带来的交易成本、系统可扩展性问
题。
2.共同体区块链(Consortium Blockchains):又称联盟链,是指参与区块链的节点是事
先选择好的,节点间通常有良好的网络连接等合作关系,区块链上的数据可以是公开的也可
以是内部的,为部分意义上的分布式,可视为“部分去中心化”。如图2-4所示为共同体区块链示意图。比如有若干家金融机构之间建立了某个共同体区块链,每个机构都运行着一个节
点,而且为了使每个区块生效需要获得至少其中10个机构的确认。区块链可以允许每个机构
可读取,或者只受限于共识验证参与者,或走混合型路线,例如区块的根哈希及应用程序接
口对外公开,允许外界用来进行区块链数据和区块链状态信息查询等。其典型应用包括超级
账本(Hy perledger)、区块链联盟R3CEV等。
图2-4 共同体区块链示意图
共同体区块链的参与节点间的连接状态较好、验证效率较高,只需较低的成本即可维持
运行,提供高速交易处理的同时降低交易费用,有很好的扩展性,数据可以保持一定的隐私
性。但是这也意味着在共识达成的前提下,参与节点可以一起篡改数据。
3.私有区块链(Private Block chain):参与的节点只有有限的范围,比如特定机构的自
身用户等,数据的访问及使用有严格的权限管理,如图2-5所示为私有区块链示意图。完全私
有的区块链中写入权限仅在参与者手里,读取权限可以对外开放,也可以进行任意程度的限
制。相关的应用囊括数据库管理、数据库审计甚至公司管理,尽管在有些情况下希望私有区
块链可以具有公共的可审计性,但在更多的情况下,没有公共的可读性。由于是私有用户说
了算,里面的数据没有无法篡改的特性,对于第三方的保障力度大大降低。因此,目前很多
私有区块链会通过依附在比特币等已有区块链的方式存在,定期将系统快照数据记录到比特
币等系统中。其典型应用如Eris Industries。
图2-5 私有区块链示意图
私有区块链可以带来规则的改变。如果需要的话,运行着私有区块链的机构可以很容易
地修改区块链的规则、回滚交易。这一点似乎略有违背区块链的本质,但是却适用于一些特
殊场景需求。由于私有区块链验证者是内部公开的,所以并不存在部分验证节点共谋进行
51%攻击的风险。私有区块链交易成本更低。交易只需被几个受信的高算力节点验证即可,而不是需要数万个节点的确认,因此交易成本会低。但从长远来看,随着区块链技术的进
步,公共区块链的成本将可能降低1~2个数量级,大致与高效的私有区块链系统类似。私有
区块链节点间连接情况好、故障可以迅速通过人工干预来修复,从而提升交易速度并可以更
好地保护隐私。
公共区块链、共同体区块链和私有区块链各有优势。公共区块链很难实现得很完美,共同体区块链、私有区块链需要找到实际迫切需求的应用需求和场景。至于具体选择哪套方案
取决于具体需求,有时使用公共区块链会更好,但有时又需要一定的私有控制,适用于使用
共同体区块链或私有区块链。
(二)区块链的特征
1.去中心化
去中心化是区块链最基本的特征,意味着区块链不再依赖于中央处理节点,实现了数据
的分布式记录、存储和更新。由于使用分布式存储和算力,不存在中心化的硬件或管理机
构,全网节点的权利和义务均等,系统中的数据本质是由全网节点共同维护的。由于每个区
块链节点都必须遵循同一规则,而该规则基于密码算法而非信用,同时每次数据更新需要网
络内其他用户的批准,所以不需要一套第三方中介结构或信任机构背书。在传统的中心化网
络中,对一个中心节点实行攻击即可破坏整个系统,而在一个去中心化的区块链网络中,攻
击单个节点无法控制或破坏整个网络,掌握网内超过51%的节点只是获得控制权的开始而
已。
2.透明性
区块链系统的数据记录对全网节点是透明的,数据记录的更新操作对全网节点也是透明
的,这是区块链系统值得信任的基础。由于区块链系统使用开源的程序、开放的规则和高参
与度,区块链数据记录和运行规则可以被全网节点审查、追溯,具有很高的透明度。
3.开放性
区块链系统是开放的,除了数据直接相关各方的私有信息被加密外,区块链的数据对所
有人公开(具有特殊权限要求的区块链系统除外)。任何人或参与节点都可以通过公开的接
口查询区块链数据记录或者开发相关应用,因此整个系统信息高度透明。
4.自治性
区块链采用基于协商一致的规范和协议,使整个系统中的所有节点能够在去信任的环境
自由安全地交换数据、记录数据、更新数据,把对个人或机构的信任改成对体系的信任,任
何人为的干预都将不起作用。
5.信息不可篡改
区块链系统的信息一旦经过验证并添加至区块链后,就会得到永久存储,无法更改(具
备特殊更改需求的私有区块链等系统除外)。除非能够同时控制系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。
6.匿名性
区块链技术解决了节点间信任的问题,因此数据交换甚至交易均可在匿名的情况下进
行。由于节点之间的数据交换遵循固定且预知的算法,因而其数据交互是无须信任的,可以
基于地址而非个人身份进行,因此交易双方无须通过公开身份的方式让对方产生信任。
二、区块链的工作原理
(一)拜占庭将军问题
拜占庭将军问题是容错计算中的一个老问题,由莱斯利·兰伯特(Leslie Lamport)等人
在1982年提出。拜占庭帝国是5~15世纪的东罗马帝国,即现在的土耳其。拜占庭城邦拥有
巨大的财富,使它的十个邻邦垂涎已久。但是拜占庭高墙耸立,固若金汤,没有一个单独的
邻邦能够成功入侵。任何单个城邦的入侵行动都会失败,而入侵者的军队也会被歼灭,使其
自身反而容易遭到其他九个城邦的入侵。这十个邻邦之间也互相觊觎对方的财富并经常爆发
战争。拜占庭的防御能力如此之强,十个邻邦中的至少一半同时进攻,才能攻破。也就是
说,如果六个或者更多的邻邦一起进攻,就会成功并获得拜占庭的财富。然而,如果其中有
一个或者更多邻邦发生背叛,答应一起入侵但在其他人进攻的时候又不干了,会导致只有五
支或者更少的军队在同时进攻,那么所有的进攻军队都会被歼灭,并随后被其他邻邦所劫
掠。因此,这是一个由不互相信任的各个邻邦构成的分布式网络,每一方都小心行事,因为
稍有不慎,就会给自己带来灾难。为了获取拜占庭的巨额财富,这些邻邦分散在拜占庭的周
围,依靠士兵相互通信来协商进攻目标及进攻时间。这些邻邦将军想要攻克拜占庭,都面临
着一个困扰,也就是拜占庭将军问题。
邻邦将军不确定他们中是否有叛徒,叛徒可能擅自变更进攻意向或者进攻时间。在
这种状态下,将军们能否找到一种分布式协议进行远程协商,进而赢取拜占庭城堡攻克
战役的胜利呢?这就是拜占庭将军问题。
针对拜占庭将军问题的解决方法包括:口头协议算法、书面协议算法等 [16]。口头协议
算法的核心思想如下:要求每个被发送的消息都能被正确投递,信息接收者知道消息的发送
者身份,知道缺少的消息信息。采用口头协议算法,若叛徒数少于13,则拜占庭将军问题可
解。也就是说,若叛徒数为m,当将军总数n至少为3m+1时,问题可解。然而,口头协议算
法存在明显的缺点,那就是消息不能追根溯源。为解决该问题,提出了书面协议算法。该算法要求签名不可伪造,一旦被篡改即可发现,同时任何人都可以验证签名的可靠性。书面协
议算法也不能完全解决拜占庭将军问题。因为该算法没有考虑信息传输时延、其签名体系难
以实现且签名消息记录的保存难以摆脱中心化机构。
与已有方法相比,区块链技术将是更完美的解决方案。区块链是怎样来解决这个问题的
呢?它为发送信息加入了成本,降低了信息传递的速率,并加入了一个随机数以保证在一段
时间内只有一个矿工可以进行传播。它加入的成本就是“工作量”,区块链矿工必须完成一个
随机哈希算法的计算工作量才能向各城邦传播消息。
当用户向网络输入一笔交易的时候,他们使用内嵌在客户端的标准公钥加密工具为这笔
交易签名,这好比拜占庭将军问题中他们用来签名和验证消息时使用的“印章”。因此,哈希
计算速率的限制,加上公钥加密,使一个不可信网络变成了一个可信的网络,使所有参与者
可以在某些事情上达成一致。拜占庭将军问题的区块链解决方案可以推广到任何在分布式网
络上缺乏信任的领域,比如说域名、投票选举或其他需要分布式协议的地方 [17]。
(二)区块链工作流程
区块链的工作流程主要包括如下步骤(图2-6)。
①发送节点将新的数据记录向全网进行广播。
②接收节点对收到的数据记录信息进行检验,比如记录信息是否合法,通过检验后,数
据记录将被纳入一个区块中。
③ 全网所有接收节点对区块执行共识算法(工作量证明、权益证明等。
④区块通过共识算法过程后被正式纳入区块链中存储,全网节点均表示接受该区块,而
表示接受的方法,就是将该区块的随机散列值视为最新的区块散列值,新区块的制造将以该
区块链为基础进行延长。
图2-6 区块链的工作流程
节点始终都将最长的区块链视为正确的链,并持续以此为基础验证和延长它。如果有两
个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差
别,它们将在先收到的区块基础上进行工作,但也会保留另外一个链条,以防后者变成长的
链条。该僵局的打破需要共识算法的进一步运行,当其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。以上就是
防止区块链分叉的整个过程。
所谓“新的数据记录广播”,实际上不需要抵达全部的节点。只要数据记录信息能够抵达
足够多的节点,那么将很快地被整合进一个区块中。而区块的广播对被丢弃的信息是具有容
错能力的。如果一个节点没有收到某特定区块,那么该节点将会发现自己缺失了某个区块,也就可以提出自己下载该区块的请求。
现在我们都知道了区块链网络里的记账者是节点,节点负责把数据记录记到数据区块
里,为了鼓励节点记账,系统会按照规则随机地对记账的节点进行奖励。那么如何保证不会
有人制造假数据记录或者说如何保证造假数据记录不被通过验证?这就涉及时间戳。这也正
是区块链与众不同的地方。区块链不仅关注数据区块里的内容,也关注数据区块本身,把数
据区块的内容与数据区块本身通过时间戳联系起来。时间戳为什么会出现?这是由区块链的
性质规定的。节点把数据记入了区块,因此一个区块就相当于一页账簿,每笔数据在账簿中
的记录可以自动按时间先后排列,那么账簿的页与页怎么衔接起来?也就是说,这一个区块
与下一个区块的继承关系如何断定就成为问题。于是时间戳就出现了。
时间戳的重要意义在于其使数据区块形成了新的结构。这个新的结构使各个区块通过时
间线有序连接起来,形成了一个区块的链条,因此才称为区块链。区块按时间的先后顺序排
列使账簿的页与页的记录也具有了连续性。通过给数据记录印上时间标签,使每一条数据记
录都具有唯一性,从而使数据记录本身在区块和区块上的哪个位置上发生可以被精确定位且
可回溯,也给其他的校验机制协同发挥作用提供了极大的便利和确定性,使整个区块链网络
能够确定性地验证某条数据记录是否真实。由于区块链网络是公开的,意味着系统知道过去
发生的所有数据记录,而任何新的数据记录都继承于过去的数据记录,因为过去的数据记录
是真实的,而且链条的各个区块记录由时间戳连接起来使之环环相扣,所以如果想要制造一
个假的数据记录,就必须在区块链上修改过去的所有数据记录。尽管在挖矿的过程中,形成
了多个链条,但因为最长的那个被诚实的节点所控制,所以想要修改过去的数据记录,首先
就要从头构造出一个长度比之前最长的那个还要长的链条,在这个新的链条超过原来的那个
链条后,才能制造双重支付的虚假数据。然而随着时间推移,制造新链条的难度和成本都是
呈指数级上升的,而且随着链条越来越长,其难度也变得越来越大,成本也就越来越高。同
时,因为去中心化的设置,区块链的各个核心客户端同时又是服务器,保存了区块链网络的
完整数据,因此使对区块链网络的攻击很难像对传统的中央处理节点那样有效,一般情况下
很难对区块链网络构成重大冲击。最终,区块链网络成为一个难以攻破的、公开的、不可篡
改数据记录和制造虚假数据的诚实可信系统。
区块链保证数据安全、不可篡改以及透明性的关键技术包括两个方面:一是数据加密签
名机制;二是共识算法。在数据加密签名机制中,首先,要有一个私钥,私钥是证明个人所有权的关键,比如证明某人有权从一个特定的钱包消费数字货币,是通过数字签名来实现
的。其次,要使用哈希(Hash)算法。哈希散列是密码学里的经典技术,把任意长度的输入
通过哈希算法计算,变换成固定长度的由字母和数字组成的输出,具有不可逆性。共识算法
是区块链中节点保持区块数据一致、准确的基础,现有的主流共识算法包括工作量证明
(PoW)、权益证明(PoS)、瑞波共识协议(RCP)等。以PoW为例,是指通过消耗节点
算力形成新的区块,是节点利用自身的计算机硬件为网络做数学计算进行交易确认和提高安
全性的过程。交易支持者(矿工)在电脑上运行比特币软件不断计算软件提供的复杂的密码
学问题来保证交易的进行。作为对他们服务的奖励,矿工可以得到他们所确认的交易中包含
的手续费,以及新产生的比特币。
三、区块链共识机制
区块链要成为一个难以攻破的、公开的、不可篡改数据记录的去中心化诚实可信系统,需要在尽可能短的时间内做到分布式数据记录的安全、明确及不可逆,提供一个最坚实且去
中心化的系统。在实践中,该流程分为两个方面:一是选择一个独特的节点来产生一个区
块;二是使分布式数据记录不可逆。实现上述流程的技术核心就是:共识机制。共识机制是
区块链节点就区块信息达成全网一致共识的机制,可以保证最新区块被准确添加至区块链、节点存储的区块链信息一致不分叉甚至可以抵御恶意攻击。
当前主流的共识机制包括:工作量证明、权益证明、工作量证明与权益证明混合
(PoS+PoW)、股份授权证明、瑞波共识协议等。
(一)工作量证明
工作量证明(Proof of Work),顾名思义,即指工作量的证明。PoW机制的基本步骤如
下:①节点监听全网数据记录,通过基本合法性验证的数据记录将进行暂存;②节点消耗自
身算力尝试不同的随机数,进行指定哈希计算,并不断重复该过程直至找到合理的随机数;
③找到合理的随机数后,生成区块信息,首先输入区块头信息,然后是数据记录信息;④接
单对外部广播出新产生的区块,其他节点验证通过后,连接至区块链中,主链高度加一,然
后所有节点切换至新区块后面继续进行工作量证明和区块生产。
PoW叫工作量证明体现在步骤②中,节点需要不断消耗算力工作,进行哈希计算,以找
到期望的随机数。以比特币区块链为例,通过PoW机制维护区块链的整体运行及其安全性。
验证节点通过随机的散列运算,争夺比特币区块链的记账权,防止欺诈交易,避免“双重支
付”,这一过程需要消耗电力、算力来完成。因此,验证节点也成为“矿工”,随机数计算查
找过程称为“挖矿”。每一个比特币区块链中的区块都包含着一个由无意义数据构成的短字符串(称为随机数),找到一个合适的随机数唯一已知的方法是不停地随机试探直到搜索到一
个有效的数。比特币的PoW中,平均每10分钟有一个节点找到一个区块。如果两个节点在同
一个时间找到区块,那么网络将根据后续节点和区块生成情况来确定哪个区块构建最终区块
链。一般情况下,需要6个区块的生成时间进行确认,因为一般交易在6个区块(约1个小
时)后被认为是安全确认且不可逆的。其工作量主要体现在:一个符合要求的区块随机数由
N个前导零构成,零的个数取决于网络的难度值。要得到合理的随机数需要经过大量尝试计
算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的随机数值,说明该
节点确实经过了大量的尝试计算。当然,这并不能得出计算次数的绝对值,因为寻找合理随
机数值是一个概率事件。工作量证明机制看似很神秘,其实在社会中的应用非常广泛。例
如,毕业证、学位证、律师证等证书就是工作证明,拥有证书即表明在过去付出了努力。挖
矿为整个系统的运转提供原动力,挖矿有三个重要功能:一是发行新的货币;二是维系系统
的支付功能;三是通过算力保障系统安全。首先,挖矿消耗资源将黄金注入流通经济,比特
币通过“挖矿”完成相同的事情,只不过消耗的是CPU时间与电力。其次,挖矿用于产量调
节,区块的产量为大约每两周2016个,即每10分钟一块。第三,通过算力保障系统安全。算
力攻击的概率难度呈指数上升(泊松分布),每个区块都必须指向前一个区块,否则无法验
证通过。追根溯源便是高度为零的创世区块。PoW机制存在两方面明显的缺陷。一是算力的
消耗与浪费。在PoW中,尽管区块链节点是用来帮区块链进行分布式数据记录的,但是它们
实际所做的大部分工作是寻找正确的随机数而与数据记录无关。用来寻找随机数的能量和资
源将永远地消失,这显然是一种浪费。二是算力集中化凸显。PoW机制自然地导致了算力集
中问题。由于作为一个普通的个体或者几十、几百台规模的矿机目前都很难挖到区块了,因
此大家必须联合起来挖矿,就诞生了算力集中的地方——矿池。其中最著名的是比特币
Ghash矿池,它因为数次接近甚至达到了50%比特币的算力,从而引起了比特币社区的广泛
担忧。
(二)权益证明+工作量证明
2012年8月,一个化名Sunny King的极客推出了Peercoin(PPC),采用工作量证明机制
PoW发行新币,采用权益证明机制PoS维护网络安全,即PoW+PoS机制。该机制中,区块被
分成两种形式——PoW区块及PoS区块。在这种新型区块链体系里,区块持有人可以消耗他
的币天获得利息,同时获得为网络产生一个区块和用PoS造币的优先权。PoS的第一次输入被
称为权益核心,需要符合某一哈希目标协议。因此,PoS区块的产生具有随机性,其过程与
PoW相似。但有一个重要的区别在于,PoS随机散列运算是在一个有限制的空间里完成的,而不是PoW那样在无限制的空间里寻找,因此无须大量的能源消耗。权益核心所要符合的随
机散列目标是以在核心中消耗的币天的目标值(币×天),这与PoW是不同的,PoW的每个
节点都具有相同的目标值。因此,核心消耗的币天越多,就越容易符合目标协议。PoS中还
有一种新型的造币过程。PoS区块将根据所消耗的币天产生利息币,设计时设定了每币一年将产生1分利息,以避免将来的通胀。在造币初期时保留了PoW,使最初的造币更加方便。
在区块链中谁是主链的问题是解决分叉的关键。PoS判断主链的标准已经转化为对消耗
币天的判断。每个区块的交易都会将其消耗的币天提交给该区块,以提高该区块的得分。获
得最高消耗币天的区块将被选中为主链。此设计减少了部分对于51%攻击的忧虑,因为在
PoS区块中,要进行51%攻击,首先,要控制数量众多的币天,成本可能要高于获得51%的算
力,这样就提高了攻击的成本;其次,攻击者在攻击网络时,其币天也会消耗,这将使攻击
者阻止交易进入主链的行为变得更加困难。
为抵御分布式拒绝服务攻击,在PoW+PoS机制中,每个区块都必须由其拥有者签名,以
避免受到复制并被攻击者使用。为了抵御攻击者复制产生多个区块进行分布式拒绝服务攻
击,每个节点都会收集其接触到的(核心,时间戳)配对信息。假如一个已接收到的区块包
含与其他之前收到的区块中的配对信息(核心,时间戳)是重复的,会忽略此区块直到后者
被孤立出去。
在PoW+POS机制下,只要持有币的人,不论持有的数量多少,都可以挖到数据块,而
不用采用任何的矿池导致算力集中。同时,由于多采用币天生成区块,而不是算力,降低了
资源消耗,解决了单纯PoW机制在维护网络安全方面先天不足的问题。
(三)权益证明
除了结合PoW使用外,能否单独利用PoS机制进行区块链系统设计运行呢?答案是肯定
的。简单来说,PoS就是一个根据持有货币的量和时间,进行利息发放和区块产生的机制。
在权益证明PoS模式下,有一个名词叫币天。例如,每个币每天产生1币天,比如持有100个
币,总共持有了30天,那么此时币天就为3000。这个时候,如果发现了一个新PoS区块,币
天就会被清空为0。每被清空365币天,将会从区块中获得0.05个币的利息(可理解为年利率
5%)。
PoS的典型应用就是未来币。同其他加密货币一样,未来币体系的总账是建立和储存在
一系列区块里的,也就是区块链中。每个区块链的备份都存放在未来币网络的每个节点里,而且在每个节点上没有加密的每个账户都能够生成区块,只要至少一个新入账户的交易已经
确认了1440次。任何账户只要达到了这个标准就会被视为“激活账户”。在未来币里,每个区
块都包含着255个交易,每个交易都是由包含识别参数的192字节的数据头开始的。一个区块
里的每个交易量都是由128个字节所代表着。总共加在一起就意味着最大的区块大小有32K字
节。每个区块都有一个“生成签名”的参数。激活账户用自己的私钥在原先的区块上签署“生
成签名”。这就产生了一个64字节的签名,之后通过SHA256散列该签名。哈希产生的前八个
字节给出了一个数字,作为一个“hit”。“hit”与目前的目标值相比较,如果计算出的“hit”值要比“目标值”低,那么就可以生成下一个区块了。对于每个活动账户来讲,“目标值”都是与它
自身所确认的余额成比例的。一个持有1000个币的账户得到的目标值是持有20个币账户所得
到目标值的50倍。因此,拥有1000个币的持有者产生的区块数是持有20个币的人产生的50
倍。同时,“目标值”并不是固定的,随着先前区块的时间戳的流逝时刻都在增长。如果在最
初的一秒钟内没有哪个账户的“hit”值是低于“目标值”的,则下一秒钟“目标值”就会翻
倍。“目标值”会连续地翻倍,直到一个活动账户的“hit”值有一个较低的数值。还有一个“基
本目标”值,它以60秒的间隔设定为目标值。正是这个原因,一个区块平均产生的时间会在
60秒。即使在网络上只有很少的激活账户,它们其中的一个最终会产生一个区块因为“目
标”值会变得相当大。通过将你账户的“hit”值与目前的“目标”值相比,你就可以估算出你
的“hit”值还有多久能成功。
当一个激活账户赢得产生区块的权利时,就能将任何可获得的且未确认的交易放入区块
中,并用所有需要的参数来填充该区块。然后,这个区块就会被传播到网络中作为一个区块
链的备选。每一个区块中的负载值、“hit”、产生的账户以及签名都能被网络上接收到它的节
点所确认。每个区块参考之前的区块,区块形成的区块链可以用来追溯和查询网络中素有的
交易历史,所有这些都会追溯到创世源区。上述完整地展示了利用币天进行区块产生和验证
共识的过程,体现了PoS的核心思想。
(四)股份授权证明
PoS机制使用一个确定性算法以随机选择一个股东来产生下一个区块,该算法中,账户
余额决定了节点被选中的可能性。然而,该系统并未使区块链变得越来越安全而不可逆,因
为最终区块链的区块产生权掌握在账户余额最多的少数节点手中。同时,PoS面临的挑战是
如何通过及时而高效的方法达成共识。为达到这个目标,每个持币节点可以将其投票权授予
一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每名代表被分配到一个
时间段生产区块。所有的代表将收到等同于一个平均水平的区块所含交易费的1%作为报酬。
如果一个平均水平的区块含有100股作为交易费,一名代表将获得1股作为报酬,即可大大提
高共识效率。这就是DPoS的核心思想。
网络延迟有可能使某些代表没能及时广播他们的区块,而这将导致区块链分叉。然而,这发生的概率较小,因为制造区块的代表可以与制造前后区块的代表建立直接连接。在DPoS
中,第一个步骤是成为一名代表,必须在网络上注册公钥,然后分配到一个32位的特有标识
符。然后该标识符会被每笔交易数据的“头部”引用。第二个步骤是授权选票。每个钱包有一
个参数设置窗口,在该窗口里用户可以选择一个或更多的代表,并将其分级。一经设定,用
户所做的每笔交易将把选票从“输入代表”转移至“输出代表”。一般情况下,用户不会创建特
别以投票为目的的交易,因为那将耗费他们一笔交易费。但在紧急情况下,某些用户可能觉得通过支付费用这一更积极的方式来改变他们的投票是值得的。每个钱包将显示一个状态指
示器,让用户知道代表的表现如何。如果某代表错过了太多的区块,那么系统将会推荐用户
去换一个新的代表。如果任何代表被发现签发了一个无效的区块,那么所有标准钱包将在每
个钱包进行更多交易前要求选出一个新代表。与PoW系统及其他PoS系统一样,最佳区块链
是最长的有效区块链。在任何时候,一名代表错过签发一个区块的机会,该区块链将比潜在
竞争对手短。只要交易被写入区块后的100个区块中的51%被生产出来了,那么你就可以安全
地认为在主区块链上。也许,在防止区块链分叉所导致的损失方面,最重要的事是在事发后
第一时间得知消息。如果10区块中有超过5个错过生产,那么这意味着你很可能在一条支链
上,因此应该停止所有交易,直到分叉得到解决。以一种及时的方式(少于5分钟)简单地
发现并警示用户网络分叉,是可以最小化潜在损失的非常重要的能力。
(五)瑞波共识协议
瑞波共识协议(Ripple Consensus Protocol,RCP),使一组节点能够基于特殊节点列表
达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由一定比例的该俱
乐部会员投票通过。RCP机制的工作原理如下。
①验证节点接收存储待验证交易。首先,验证节点接收待验证交易,将其存储在本地;
其次,本轮共识过程中新到的交易需要等待,在下次共识时再确认。
②活跃信任节点发送提议:首先,信任节点列表是验证池的一个子集,其信任节点来源
于验证池;其次,参与共识过程的信任节点须处于活跃状态,验证节点与信任节点间存在保
活机制,长期不活跃节点将被从信任节点列表删除;最后,信任节点根据自身掌握的交易双
方额度、交易历史等信息对交易做出判断,并加入到提议中进行发送。
③本验证节点检查收到的提议是否来自信任节点列表中的合法信任节点,如果是,则存
储;如果不是,则丢弃。
④验证节点根据提议确定认可交易列表的步骤如下:首先,令信任节点列表中活跃的信
任节点个数为M(比如5个),本轮中交易认可阈值为N(百分比,比如50%),则每一个超
过M×N个信任节点认可的交易将被本验证节点认可;其次,本验证节点生成认可交易列表。
系统为验证节点设置一个计数器,如果计数器时间已到,本信任节点需要发送自己的认可交
易列表。
⑤账本共识达成的步骤如下:首先,本验证节点仍然在接收来自信任节点列表中信任节
点的提议,并持续更新认可交易列表;其次,验证节点认可列表的生成并不代表最终账本的
形成以及共识的达成,账本共识只有在每笔交易都获得至少超过一定阈值(比如80%)的信任节点列表认可才能达成。如果账本中每笔交易都获得至少超过一定阈值(比如80%)的信
任节点列表认可,则共识达成,交易验证结束,否则继续上述过程。
⑥共识过程结束后,已经形成最新的账本,现将上轮剩余的待确认交易以及新交易纳入
待确认交易列表,开始新一轮共识过程。
除上述机制外,还有恒星共识协议(Stellar Consensus Protocol,SCP)、改进型实用拜
占庭容错机制(Practical By zantine Fault Tolerance,PBFT)和Pool验证池机制等共识机制被
提出,甚至已经应用在区块链系统中,不同共识机制各有其应用场景和优势。
四、区块链面临的问题
目前,区块链技术已经受到众多领域的广泛关注并得到应用,包括托管交易、金融交
易、公共交易、证件、私人记录、留存证明、实物资产、无形资产等。然而,区块链技术在
面临机遇的同时,也面临着不少问题与挑战。
(一)区块链体积过大问题
随着区块链的发展,节点存储的区块链数据体积会越来越大,存储和计算负担将越来越
重。以比特币区块链为例,其完整数据的大小当前已达63.61GB(千兆)(图2-7),用户如
果使用比特币核心客户端进行数据同步的话,可能三天三夜都无法同步完成,并且,区块链
的数据量还在不断地增加。这给比特币核心客户端的运行带来了很大的困难。
图2-7 比特币区块链体积增长趋势
数据来源:区块元blockmeta.com
(二)区块链数据确认时间的问题
目前的区块链系统,尤其是金融区块链系统中,存在数据确认时间较长的问题。以比特
币区块链为例,当前比特币交易的一次确认时间大约需要10分钟(图2-8),6次确认的情况
下,需要等待约1小时。当然,对于信用卡动则2~3天的确认时间来说,比特币已经有了很大
的进步,但距离理想状态仍有较大距离。图2-8 比特币区块生产间隔
数据来源:区块元blockmeta.com。
(三)处理交易频率问题
区块链系统面临交易频率过低的问题。还是以比特币区块链为例,每条交易的平均大小
约为250个字节(Byte),如果区块大小限制在1MB(兆),那么可以容纳的交易数量为
4000条。按照每10分钟产生一个区块的速度计算,每天可以产生144个区块,也就是能容纳
576000条交易,再除以每天的秒数86400,比特币区块链最高每秒处理6.67笔交易。目前,比
特币区块链上每天的实际交易量已经接近系统“瓶颈”(图2-9),如果扩容问题得不到解决,可能造成大量交易的堵塞延迟。
图2-9 比特币区块平均交易数
数据来源:区块元blockmeta.com。
相比之下,Paypal在2013年第三季度的总体交易笔数为7.29亿笔,平均每秒为93.75笔交
易。全球最大的支付卡VISA的官网信息显示,VisaNet(维萨网)在2013年的测试中,实现
了每秒处理47000笔交易。比特币区块链比起支付宝等几大支付网络,从交易处理频率来
看,更像是一个刚出生的婴儿。当然,这也是中本聪早期故意为之的设计。比特币区块大小
被限制在1MB,以此避免“流氓”矿工的恶意行为,对人们造成不良的影响。比特币区块链支
付网络之所以能够成长到如今价值数十亿美元,就在于它的去中心化。
(四)区块链发展受到现行制度的制约
一方面,区块链去中心、自治化的特性淡化了国家监管的概念,对现行体制带来了冲
击。比如,以比特币为代表的数字货币不但对国家货币发行权构成挑战,还影响到货币政策
的传导效果,削弱央行调控经济的能力,导致货币当局对数字货币的发展保持谨慎态度。另
一方面,监管部门对这项新技术也缺乏充分的认识和预期,法律和制度建立可能会滞后,导
致与运用区块链相关的经济活动缺乏必要的制度规范和法律保护,无形中加大了市场主体的
风险。
(五)区块链技术与现有制度的整合成本较大
对于任何创新,现有机构都要保证既能创造经济效益,又要符合监管要求,还要与传统
基础设施相衔接。特别是当部署一个新型基础系统时,耗费的时间、人力、物力成本都非常大,现有传统机构内部遇到的阻力也不小。
当然,问题的存在并不能阻碍区块链的发展步伐,诸如简单支付验证、侧链、闪电网络
协议等技术的提出和深入研究,已经为上述问题的解决提出了思路。
参考资料
[1]http:www.j ianshu.comp5e06fee80460
[2]http:www.zhihu.comquestion27687960answer70057319
[3]http:www.8btc.comon-public-and-private-blockchains
[4]http:www.zhuihun.comdomainnews-20983-1-1.html
[5]http:www.wanhuaj ing.comd342166
[6]http:www.zhihu.comquestion22369364answer21169413
[7]http:8btc.comthread-540-1-1.html
[8]http:8btc.comarticle-1882-1.html
[9]http:www.8btc.comwhat-proof-of-stake-is-and-why-it-matters
[10]http:www.8btc.comfu0powpos http:www.8btc.comnxt-whitepaper
[11]http:coinfeed.netcninformationbitsharesdpos授权股权证明机制白皮书.html
[12]http:www.8btc.comblock chain-scalability
[13]http:toutiao.comi6243674242018181634
[15] 本章由海滨完成。海滨,布比公司技术专家、博士,在区块链技术、网络安全、数字
货币等领域有非常深厚的技术积累。布比公司专注于区块链技术和产品的创新,已经拥有多
项核心技术,开发了高可扩展高性能的区块链基础服务平台,具备快速构建上层应用业务的
能力,满足数千万级用户规模的场景。
[16] 范捷,易乐天,舒继武.拜占庭系统技术研究综述[J].软件学报, 2013(6):12.
[17] 巴比特.比特币与拜占庭将军问题,http:www.8btc.combaizhantingj iangjun.第三章
区块链进阶 [18]
一、简单支付验证(SPV)
简单支付验证(Simplified Payment Verification,简称SPV)是一种无须维护完整的区块
链信息,只需要保存所有的区块头部信息即可进行支付验证的技术。该技术可以大大节省区
块链支付验证用户的存储空间,减轻用户存储负担,降低区块链未来交易量剧增而给用户带
来的压力。以比特币系统为例,节点只需保存所有区块头信息,即可进行交易支付验证。节
点虽然不能独立验证交易,但能够从区块链其他节点获取交易验证的必要信息,从而完成交
易支付验证,同时还可以得到整个区块链网络对交易的确认数。
要理解SPV的概念,首先需要理解如下两类概念的区别。
一是SPV与轻钱包(或瘦客户端)的区别。轻钱包指的是节点本地只保存与其自身相关
的交易数据(尤其是可支配交易数据),但并不保存完整区块链信息的技术。SPV的目标是
验证某个支付是否真实存在,并得到了多少个确认。比如爱丽丝(Alice)收到来自鲍伯
(Bob)的一个通知,鲍伯声称已经从其账户中汇款一定数额的钱给了爱丽丝。如何快速验
证该支付的真实性,是SPV的工作目标。轻钱包或瘦客户端的目标不仅是支付验证,而且是
用于管理节点自身的资产收入、支付等信息。比如爱丽丝使用轻钱包或瘦客户端管理自身在
区块链的收入信息、支出信息,在本地只保存与爱丽丝自身相关的交易数据,尤其是可支配
交易数据。轻钱包与SPV的最大区别是,轻钱包节点仍需下载每个新区块的全部数据并进行
解析,获取并本地存储与自身相关的交易数据,只是无须在本地保存全部数据而已。而SPV
节点不需要下载新区块的全部数据,只需要保存区块头部信息即可。虽然轻钱包或瘦客户端
中部分借鉴了SPV的理念,但和SPV是完全不同的。
二是区块链支付验证与区块链交易验证的区别。SPV指的是区块链支付验证,而不是区
块链交易验证。这两种验证方式存在很大的区别。区块链交易验证的过程比较复杂,包括账
户余额验证、双重支付判断等,通常由保存区块链完整信息的区块链验证节点来完成。而支
付验证的过程比较简单,只是判断该笔支付交易是否已经得到了区块链节点共识验证,并得
到了多少的确认数即可。还是以比特币系统为例,用户爱丽丝收到来自鲍伯的通知,鲍伯声
称已经从其账户中汇款一定数额的钱给爱丽丝。爱丽丝进行交易验证的过程如下:首先,爱
丽丝遍历完整的区块链账本,在区块链账本的交易中保存了鲍伯的历史交易信息(包括鲍伯
的汇款账户、鲍伯的签名、历史收款人的地址以及汇款金额信息等),查询鲍伯的账户,就
可以判断鲍伯提供的账户是否有足够的余额,如果余额不足则交易验证失败;其次,爱丽丝要根据区块链账本判断鲍伯是否已经支出了这个账户上的钱给别人,即是否存在双重支付问
题,如果存在则交易验证失败;最后,判断鲍伯是否拥有其提供账户的支配权,如果判断失
败则交易验证失败。而如果爱丽丝只是进行支付验证,则过程简单得多:通过SPV,爱丽丝
可以进行支付快速验证,即检查此项支付交易是否已经被收录存储于区块链中,并得到了多
少个确认数,就可以判断支付验证的合法性。详细的技术原理如下。
(一)SPV的技术原理
在区块链中,区块信息主要包括区块大小、区块头、交易数量和交易信息四部分内容。
其中,区块头大小为固定字节,比如比特币中区块头的大小始终为80字节。区块头中一般包
括如下信息:前一区块(也称父区块)的哈希值、区块中交易默克尔树的根哈希值、时间戳
等。以比特币为例,其区块头的数据结构如表3-1所示。
表3-1 区块头的数据结构
通过区块的哈希值,可以识别出区块链中的对应区块。区块前后有序链接,每一个区块
都可以通过其区块头的“前一区块的哈希值”字段引用前一区块。这样把每个区块均链接到各
自前一区块的哈希值序列就创建了一条一直可以追溯到第一个区块(创世区块)的链条。前
一区块的哈希值,可以确保区块链所记录的交易次序。默克尔树的根哈希值则可以确保收录
到区块中的所有交易的真实性。
区块链节点利用SPV对支付进行验证的工作原理如下:
①计算待验证支付的交易哈希值;
②节点从区块链网络上获取并存储最长链的所有区块头至本地;
③节点从区块链获取待验证支付对应的默克尔树哈希认证路径;
④根据哈希认证路径,计算默克尔树的根哈希值,将计算结果与本地区块头中的默克尔
树的根哈希值进行比较,定位到包含待验证支付的区块;
⑤验证该区块的区块头是否已经包含在已知最长链中,如果包含则证明支付真实有效;
⑥根据该区块头所处的位置,确定该支付已经得到的确认数量。
上述方法可以减轻用户的负担。以比特币为例,无论未来的交易量多大,区块头的大小始终只有80字节,按照每小时6个的区块生成速度,每年产出52560个区块。当只保存区块头
时,每年新增存储需求约为4兆字节,100年后累计的存储需求仅为400兆字节,即使用户使
用的是最低端的设备,正常情况下也完全能够负载。
SPV的工作原理中,最为关键和复杂的是步骤③,节点从区块链获取待验证支付对应的
默克尔树哈希认证路径的过程。例如,一个区块链节点想要知道其钱包中某个比特币地址即
将到达的某笔支付,该节点会在节点间的通信链接上建立起布鲁姆过滤器,限制只接受含有
目标比特币地址的交易。当节点探测到某交易符合布鲁姆过滤器的要求时,将以默克尔区块
消息的形式发送该区块。默克尔区块消息包含区块头和一条连接目标交易与默克尔树根的默
克尔哈希认证路径。默克尔树哈希认证路径是验证待验证支付是否存在于默克尔树的关键条
件,该认证路径由默克尔树所有路径中节点的哈希值共同构成,自下而上进行哈希计算。节
点能够使用该路径找到与该交易相关的区块,进而验证对应区块中该交易的有无。如图3-1所
示为根据交易A、B、C、D、E、F、G、H生成的默克尔树。这是一棵自下而上通过哈希运算
生成的二叉树。叶子节点为交易信息的哈希值,叶子节点两两进行哈希运算得到其父节点,继续此过程,直至生成默克尔树根节点。需要注意的是,如果存在单个叶子节点无法匹配成
对,则用复制的方法构成完整的二叉树,比如图3-2中交易H不存在,则可以将交易G的哈希
值M(G)复制一份替代M(H),从而完成二叉树的生成过程。
图3-1 交易默克尔树结构示意图
图3-2 默克尔树哈希认证路径示意图
假设待验证交易为E,则交易E的默克尔树哈希认证路径为图3-2虚线框所示的M(F)、M(GH)和M(ABCD)。通过该哈希认证路径,即可以通过哈希计算找到一条链接交易E与默克
尔树根的完整路径。
(二)SPV的功能扩展
虽然SPV可以高效地进行支付验证,但对于节点当前状态(账户余额、账户信息甚至合
约状态等)均无法给出证明。SPV能否扩展并更进一步呢?以太坊对SPV的功能进行了扩
展:每一个区块头,并非只包含一棵默克尔树,而是包含了三棵默克尔树,分别对应了三种
对象——默克尔交易树、默克尔收据树和默克尔状态树。其中默克尔收据树和默克尔状态树
是比特币等现有区块链系统没有的。默克尔收据树是由展示每一笔交易影响的数据条构成的默克尔树。而在默克尔状态树中,则保存账户信息、账户余额等信息。三棵默克尔树的功能
分工如下。
①默克尔交易树:保存交易信息,用于验证交易是否真实包含于区块链中。
②默克尔收据树:保存某个地址的历史事件实例,比如一个交易是否成功执行、一个众
筹合约是否完成了目标等。
③默克尔状态树:保存了账户名称、账户余额等信息。
基于上述三棵树,以太坊不仅可以实现SPV的支付验证,而且可以快速验证账户是否存
在、了解账户余额甚至快速判断交易是否执行成功等信息,实现了良好的SPV扩展。
(三)SPV面临的问题
SPV面临的第一个是问题是SPV节点与区块链系统去中心化程度似乎存在一定的矛盾。
随着SPV节点数量的增多,那么区块链参与完整验证的节点数量就会减少。然而,SPV却不
能完全独立构成区块链。由于SPV节点没有存储完整的区块链信息,SPV的实现离不开存储
区块链完整信息的节点或系统的辅助。
SPV面临的第二个问题是交易可锻性攻击 [19]。由于SPV实现中一个关键步骤是根据支
付哈希值定位其在区块中的位置,而该过程可能遭遇交易可锻性攻击。比如比特币系统中,交易可锻性攻击体现在交易ID(账号)可被伪造,而交易ID可被伪造的原因是比特币签名算
法不够完善。以比特币为例,交易可锻性攻击的过程如下:在比特币的交易中,第三方交易
系统会将交易发送方、接受方、交易金额等数据作为一个交易发送到比特币网络中,发送之
前会对这条交易信息进行加密和签名,接着根据生成的签名最终获得一个哈希值,这个哈希
值作为交易ID返回给提现的用户。一次交易请求过后,用户接收到的仅有一个交易ID,根据
这个交易ID可以查看交易是否成功。当交易发送到比特币网络中后,网络中的各个节点会根
据之前生成的签名来验证交易的真实性。问题就出在签名算法上:椭圆曲线数字签名ECDSA
这个算法的一个问题是,修改签名的某个字节能够使签名依然校验成功,这样伪造签名之后
交易依然能够成功进行。由于交易ID是根据签名生成的,而伪造之后的签名会生成一个完全
不同的交易ID,第三方判断到两个ID不同便会确定当前交易失败,而事实上交易已经成功
了。这时如果用户发现交易提示失败,可以再次发起交易,第三方交易系统一看之前交易确
实失败了,那就会再进行一次交易。这时用户的比特币钱包里就会多收到一份比特币,也就
造成了第三方交易平台资金损失。交易的可锻性体现在虽然交易签名被“锻造过”(即修改伪
造过),但最终的交易依然有效。上述攻击对于SPV是有效的,因为在交易可锻性攻击场景
中,伪造的交易和正常的交易都在区块链网络中,如果伪造的交易先被处理,那么攻击就成功。从而,SPV支付在区块链中的位置定位过程可能无法完成或出现错误,最终影响支付验
证的进程和准确性。
有人提出可以通过改进SPV的工作流程来提升攻击防范的有效性,比如不再仅根据哈希
值来判断支付的状态,而是使用双因素或者多因素验证,包括账户余额、支付信息追踪等来
综合判断支付是否真正成功,但这会增加SPV的复杂度。如何更加有效地解决SPV面临的问
题还值得进一步研究。
二、侧链
(一)侧链的起源
侧链(sidechains)实质上不是特指某个区块链,而是指遵守侧链协议的所有区块链,该
词是相对于比特币主链来说的。侧链协议是指可以让比特币安全地从比特币主链转移到其他
区块链,又可以从其他区块链安全地返回比特币主链的一种协议。
显然,只需符合侧链协议,所有现存的区块链,如以太坊、莱特币、暗网币等竞争区块
链都可以成为侧链。元素链(Elements)就是这样一种侧链。所不同的是,它是由
BlockStream公司,即提出侧链协议的公司开发的一个侧链的参考实现。
侧链协议具有重大意义。它意味着比特币不仅可以在比特币区块链上流通,还可以在其
他区块链上流通,其应用范围和应用前景会更加广泛;有创意的人们会研发出各种各样的应
用以侧链协议与比特币主链对接,使得比特币这种基准自由货币的地位更加牢固。
侧链协议的产生有以下几个原因。
1.应对其他区块链的创新威胁
以太坊(Ethereum)区块链、比特股(Bitshares)区块链后来居上,对比特币区块链产
生相当大的威胁。智能合约和各种去中心化应用在以上两个区块链上兴起,受到人们的欢
迎。而基于比特币的应用则因为开发难度大,项目不多。
2.比特币核心开发组不欢迎附生链
比特币区块链也有合约币(Counterparty)、万事达币(Mastercoin)和彩色币
(ColoredCoin)等附生链,但是比特币核心开发组并不欢迎它们,觉得它们降低了比特币区
块链的安全性。他们曾经一度把OP_RETURN的数据区减少到40字节,逼迫合约币开发团队改用其他方式在比特币交易中附带数据。
3.BlockStream商业化考虑
2014年7月以太坊众筹时,获得了价值1.4亿元人民币的比特币,还有20%的以太币,开
发团队获得了巨大的回报。但是比特币核心开发组并没有因为他们的辛勤工作获得可观回
报,因而他们成立了BlockStream,拟实现商业化价值。
基于以上三个原因,提出侧链协议、把比特币转出比特币区块链、另行开发二代区块
链,这样的选择既能保证比特币区块链的安全,又能应对二代币的冲击,还能针对不同应用
场景实现商业化,因而成了BlockStream的必然选择。
(二)侧链协议
侧链协议的目的是实现双向锚定(Two-way Peg),使比特币可以在主链和侧链中互转
(图3-3)。
图3-3 比特币主链与侧链关系图
双向锚定分为以下几个阶段(图3-4)。
1.发送锁定交易,把比特币锁定在主链上
由比特币持有者操作,发送一个特殊交易,把比特币锁定在区块链上。
图3-4 双向锚定示意图
2.等待确认期
确认期的作用是等待锁定交易被更多区块确认,可防止假冒锁定交易和拒绝服务攻击,等待时间是1~2天。
3.在侧链上赎回比特币
确认期结束后,用户在侧链上创建一个交易花掉锁定交易的输出,并且提供一个SPV工作量证明,输出到自己在侧链上的地址中。该交易称为赎回交易,SPV工作量证明是指赎回
交易所在区块的工作量证明。
4.等待一个竞争期
竞争期的作用是防止双重支付。在此期间,①赎回交易不会被打包到区块;②新传输到
侧链的比特币不能使用;③如果有工作量更大的工作证明出现,即该赎回交易包括了比特币
主链更大难度的SPV证明,则上一个赎回交易将被替换。
竞争期结束后,该赎回交易将被打包到区块中,用户可以使用自己的比特币。
从侧链转比特币到主链的过程也是如此。这就是侧链双向锚定协议。
(三)元素链
元素链是BlockStream实现的一个参考侧链,Alpha(阿尔发)版于2015年7月推出。元素
链Alpha旨在演示技术并且提供测试环境,目前还未开发完成。作为一个与比特币测试网络
相对接的侧链,元素链Alpha有可能被其他技术取代。
元素链Alpha是比特币测试链的一个侧链。它依赖可审计的联合签名者来管理传输到侧
链的测试币(参见确定性锚定特性),并且以此来产生签名区块(参见签名区块特性)。这
样做能快速探索侧链实施的可能性,考虑如何使用不同的安全措施。在未来版本中,升级协
议接口以完全支持去中心化的侧链联合挖矿,最终达到完全双向锚定的目标。
元素链所包括的技术如下。
1.私密交易
元素链中最具创新意义的特性莫过于私密交易。私密交易中的金额仅有该交易的参与者
知道(或者参与者指定的人),元素链以密码学算法保证不会多花币。比特币用地址来保证
隐私,同时公开交易让别人验证;元素链在保护个人隐私上更进一步,隐藏了交易金额。金
额隐藏的具体技术见下文。
私密交易最明显的一点是引入了一种新地址类型,称为私密地址。私密地址含了一个盲
化因子,比普通比特币地址更长,这种地址在元素链Alpha版本中是默认地址。
2.隔离见证
Alpha版的交易中,签名从交易中分离出来。此举完全消除了任何已知形式的交易可塑性的威胁,并且允许有效的区块链剪枝。
在比特币中,交易包含转账信息(未花费交易集、地址和金额)和用于证明交易合法性
的签名;对于隔离见证来说,交易ID仅由转账信息生成,区块中包含签名。这样做有如下好
处:
①比特币有一些“正常化交易ID”的建议,隔离见证包含了这些建议。因为正常化交易ID
机制在可塑性的输入后还要重写所依赖的交易,对高层协议如闪电网络来说是必要基础。
②交易ID不覆盖签名,以比BIP62更好的方式,避免了交易可塑性的所有形式,而后可
以安全地使用更大尺寸的多语句智能合同。
③具有更有效提供SPV证明(用于轻钱包)的潜力,因为签名可以从交易中被省略而不
破坏默克尔树结构。节点无须存贮或验证签名,可以把签名从磁盘中删除或无须在网络上传
输它,以大幅度减少区块链存储容量和宽带要求。但在Alpha版本中,证明数据比比特币签
名更占空间,因为还包含了大段的输出金额证明(因为使用了私密交易,隐藏了金额,因而
要使用密码学证明以防止多花)。
3.相对锁定时间
为序列号赋予了新的意义,使已签名交易被确认后,其输入在一段特定时间内保持无
效,目的是支持交易替换功能。
比特币每个交易都有个序列号,初始想法是相比低序列号,最高序列号应该最占优势,矿工应该更喜欢它,但这个想法从未真正实现。在假设矿工利益最大化的前提下,为了使得
交易替换机制得以加强,新增一个操作码CHECKSEQUENCEVERIFY,用于比特币脚本检查
序列号限制。
相对锁定时间与常规锁定时间用途一致,如时间锁定的担保服务等。但所指的“相对”会
使以区块链为媒介的应用更有意思。例如双向锚定阶段可描述为以交易开始的一个相对锁定
时间条件,该交易声明了赎回证据。
4.Schnorr签名验证
元素链未使用ECDSA签名方案,而使用了同一曲线上的Schnorr签名方案。其好处如
下。
①更有效的nn阈值签名。多个Schnorr签名可以被合成一个签名,该签名对公钥的总和
来说是有效的,所以任意大的nn多签名只需用一个合签名就可以完成,同时可以被一个CHECKSIG操作所验证。
②更小的签名容量(64字节,而非71~72字节),没有DER编码问题。潜在支持批量验
证(同时验证32个签名达到最高2倍加速),这需要知道R.y坐标(ECDSA忽略这个参数)和
脚本级别,确保所有签名验证错误导致脚本运行错误(比如所有CHECKSIG操作与
CHECKSIGVERIFY类似),以便提供更强的安全证明。
③能证明没有固有的签名可塑性问题。ECDSA有可塑性问题,并且不知道是否存在其他
形式的可塑性问题。注意,分离证据使得签名可塑性不会导致交易可塑性。
④比ECDSA的签名和验证速度更快一点。
5.新操作码
元素链Alpha版本新增几个新脚本操作码。
①被禁用的操作码。比特币以前支持许多操作码,一些操作码在2010年因为安全考虑被
禁用,需要硬分叉才能重新启用。Alpha版本重新启用了一些被禁用但是安全的操作码,如
字符串连接和字串操作码,整数位移码和几个位操作码。
②DETERMINISTICRANDOM操作码:根据种子在一个范围内产生一个随机数。
③CHECKSIGFROMSTACK操作码:验证堆栈中对消息的签名,而不是验证对交易本身
的签名。
这些新操作码有一些使用场景,包括双花保护债券、彩票、允许1N多签名的默克尔树
结构(N可为成千上万)、概率支付等。
6.金额隐藏技术
以下工作由亚当·拜克首次在Bitcointalk上的帖子《同态值比特币》中提出。
①佩德森的承诺。CT(密码学承诺)的基础密码学工具是佩德森的承诺。
承诺场景让你把一段数据作为私密保存,但是要承诺它,使你以后不能改变该数据。一
个简单的承诺场景用哈希函数构建如下:如果你仅告诉别人承诺,别人没法确定你承诺了什么数据。但你后来揭露了盲化因子和
数据,别人可以运行该哈希函数来验证是否与你之前的承诺相匹配。盲化因子必须存在,否
则别人可以试图猜测数据。如果你的数据比较少而简单,猜测成功的可能性比较大。
佩德森承诺与以上场景中的承诺类似,但是附加一个特性:承诺可以相加,多个承诺的
总和等于数据总和的承诺(盲化因子的集合即盲化因子总和):
换句话说,加法律和交换律适用于承诺。
我们用椭圆曲线点来构建具体的佩德森承诺(读者无须理解椭圆曲线密码学体系,把它
当成黑盒行为来了解就可以了)。通常,ECC公钥由私钥x乘基点G生成。
结果保存为33字节的数组。ECC公钥遵守以前描述过的加法同态性:
(以上特性被BIP32分层确定性钱包用来允许第三方生成新的比特币地址。)
由于佩德森承诺的额外基点(称之H点)生成方法,因而没人知道H对G的离散对数(反
之亦然),即没人知道x,且xG=H。我们使用G哈希来选择H:
这里to_point把输入当成椭圆曲线上某个点的x值,并且计算出y值。给定两个基点我们能构建如下承诺场景:
这里x是私密盲化因子,a是我们要承诺的金额,你可以用加法交换律验证加法同态承
诺场景中的相关关系。
佩德森承诺是信息理论上的隐私,你看到的所有承诺,总能找到一些盲化因子,可以和
任意金额一起匹配该承诺。如果你的盲化因子是真随机,那么拥有无穷计算力的攻击者都不
能分辨你承诺的金额。这种承诺无法被假冒,没法计算出任意其他能被验证的承诺。如果你
做到,这就意味着你能找到两个基点相对于彼此的离散对数,意味着承诺椭圆曲线公钥体系
被破解。
②佩德森承诺应用。
利用该工具,我们替换比特币交易中的8字节金额为32字节佩德森承诺。如果一个交易
的发送人认真选择他们的盲化因子,以便正确相加,然后人们还能通过承诺相加为0来验证该
交易。
以上公式需要明确的交易费用,在实际交易中,这点没有问题。生成承诺和承诺验证非
常简单,不幸的是,如果没有附加的措施这个场景是不安全的。
问题在于该群是循环群。加法要mod P(一个256位的质数,用于定义群的秩),结果大
数的加法会“溢出”,从而像个负数金额,因而当有些输出金额为负数时,承诺加起来为0的
特点依然存在,导致可凭空创造5个比特币。
以上式子可以被解释成“有人花了2个比特币,得到-5个比特币和7个比特币”。为了防止
产生这种情况,交易中有多输出的时候,我们必须证明每个承诺输出金额都在允许范围(如
[0,2~64])内且没有溢出。
我们可以公开金额和盲化因子,以便其他人能检查,但是这样一来就损失了所有 ......
——从数字货币到信用社会
长铗 韩锋 等 著目录
序一 区块链:建设互联网的价值高速公路
序二 区块链:网络世界运行规则与技术的全新探索
序三 区块链——未来全球信用的基础协议
第一章 区块链创世纪
第二章 区块链基础
第三章 区块链进阶
第四章 智能合约
第五章 区块链怎么玩
第六章 从信息互联网到价值互联网
第七章 区块链政策与法规
第八章 区块链经济学的范式革命
后记
附录序一
区块链:建设互联网的价值高速公路
姚余栋 [1]
区块链因比特币而生。一般民众都将比特币简单地视为一种货币,但从根本上来说,区
块链更是价值传输协议。相较于通常意义上的数字货币,区块链与互联网TCPIP(传输控制
协议网络互联协议)协议更为相似。只不过,TCPIP协议为信息互联网而设计,区块链则为
价值互联网提供了理论基础。
但在互联网上进行价值交换,需解决三个问题:一是确保价值交换的唯一性;二是如何
确立价值交换双方的信任关系;三是如何确保双方的承诺能够完成依靠网络的自治机制(智
能合约)而自动执行,而无需可信第三方的介入。2009年基于区块链技术的数字货币比特币
的诞生,给上述三个问题找到了解决方案。
区块链是一种新型的去中心化协议,链上数据不可随意更改或伪造,因而提供了无需信
任积累的信用建立范式。区块链可理解为一个账本(ledger),人们只需加入一个公开透明
的数据库,通过点对点的记账、数据传输、认证或智能合约来达成信用共识,而不再借助任
何中间方。这个公开透明的数据库包括了过去所有的交易记录、历史数据及其他相关信息。
这些信息安全地分布式存储在一串使用密码学方法产生的数据块中,即为一个区块,从创始
区块连接到当前区块,就形成了区块链。由于每个区块都包含了上一个区块的索引,即区块
的哈希(hash),使得每一个区块按照时间顺序产生,若要逆转某个区块上的交易,需要重
新计算该区块之后的所有区块,这在计算难度上几乎是不可能的。于是,区块链逐步成为一
种可靠的审计工具,也让系统内参与者之间的信任建立得以实现。
区块链本身具有分布式(Distributed)、去中介(Disintermediation)、去信任
(Trustless)、不可篡改(Immutable)、可编程(Programmable)等特征。这些特征使区
块链能弥补传统金融机构的不足,提高运作效率,降低运营成本,灵活更新市场规则,防止
信息篡改和伪造,同时也大大提高了稳定性,减少了宕机风险。因而区块链可应用的场景非
常广泛,众多金融机构正在研究区块链技术在金融市场的应用。
区块链可直接用于银行相关业务。例如,对账户的反洗钱检查、交易后的银行结算等涉
及人工审核的业务。区块链的分布式网络结构使账户资产、信用等信息可在各银行间共通,这大大简化了重复性手续,节省大量人力物力。目前,全球中央银行和商业银行都在积极寻
求利用区块链技术,开发数字货币平台。R3CEV区块链项目在世界上获得多家银行支持,目
前有42家银行加入该项目的研究,实现实时结算和清算功能。各国央行还可以使用区块链技术尝试发行eSDR,来构建一套新型的超主权货币跨国支付
清算体系,从而适当缓解主权货币主导下的传统货币体系缺陷,也有助于应对全球“流动性
困局”。英国央行计划发布由中央机构控制的类比特币数字货币RSCoin。这是一款完全基于
央行的需求来设计的基于区块链技术的数字货币。该技术将依赖于一系列权威机构,如商业
银行,防止货币重复消费。我国央行也在研讨发行数字货币方案。
由于任何人都能创造自己的区块链系统:启动条件十分简易,且不难实现。当前正迎来
区块链的寒武纪大爆发,大量区块链开源或封闭试验得以实施。现有区块链林林总总,有公
有链、联盟链与私有链之分。知名项目除了R3CEV,还有Linux基金会推进的超级账本
(Hyperledger),以智能合约平台而著称的以太坊,以及基于比特币区块链系统的闪电网络
与侧链技术……正如区块链数据的合法性是以算法来竞争最长链,这些区块链协议与技术也
呈现出非常激烈的竞争局面,它们最终哪一种会胜出,联盟链与公有链哪一个笑到最后,并
成为互联网通用价值传输协议,目前还是个谜。
或许,互联网的早期发展能带给我们以启示。互联网鼻祖是美国国防部的军用网,叫
做“阿帕网”(ARPAnet)。在20世纪70年代,ARPAnet已经形成好几十个计算机网络,但是
每个网络只能在网络内部的计算机之间互联通信,不同计算机网络是一个个信息孤岛,它们
之间不能通讯。直到1974年,研究人员设计了连接分组网络的协议,其中就包括著名的
TCPIP——网际互联协议IP和传输控制协议TCP,这才将这些孤岛连通起来,构成现在的因
特网(Internet)。因而,联盟链与公有链之间,比特币与以太坊之间,以及其他区块链网络
之间,也许并不是一个你死我活、赢家通吃的局面,而是会通过构建不同区块链之间的价值
传输协议,而形成一个统一的区块链:互联链(Interchain)。同样,互联链也会像互联网的
物理层、网络层、传输层、应用层的层级设计一样,根据功能定位的不同、应用场景的不
同、共享账簿的开放权限的不同,而演化为不同层级的协议。
如果说TCPIP协议让我们进入了信息自由传递的时代,区块链则将把我们带入价值高速
公路时代。区块链协议的完善,将构成共享金融的基础设施。当今互联网正进入分布式时
代,逐渐从传递信息的互联网演变为交换价值的互联链。出于价值交换的需要,人类进入数
据可计算时代。数据结构也进化成为附带计算机程序的代码,数据可以自我计算,自我运
行,从而成为智能数据,为整个人类社会进入智慧社会打开了大门。
[1]序二
区块链:网络世界运行规则与技术的全新探索
王永利 [2]
近年来,区块链成为全球互联网领域,特别是金融互联网界快速升温、越来越热的概
念。在中国,区块链更是引发越来越多的人、越来越热的关注和探索。
区块链最早面世,是由于2009年初发布的比特币,区块链成为比特币产出、记录、流通
的基础协议和技术应用。尽管比特币自面世以来饱受争议,甚至仍不能被政府和货币当局视
同为“货币”,但比特币所应用的区块链技术却得到了包括政府和货币当局在内的广泛关注。
为什么区块链会成为快速升温的热点技术和话题?
这其中最重要的可能就是,在区块链技术基础上推出的比特币,开启了一种与传统社会
(线下)没有多少关联的,完全应用于网络世界(线上)的网民身份验证、财富确认、交易
记录、公证核查等全新的技术与规则体系的探索和尝试,而这给人们适应互联网社会的发展
提供了可选路径和无限遐想。
从其在比特币的应用情况看,区块链直观讲,就是将加密技术与互联网技术相结合,所
形成的一套全新的数据区块(Block)建立、比特币发行分配、网络身份验证,以及挖矿所形
成的比特币(价值)确认、比特币交易记录,比特币的链上流动(价值转移),以及加密
(加入了区块与交易时间标识等因素)登记和查验核实等在内的互联网协议规则和账本
(Ledger)体系。
正因为比特币并不是线下法定货币的替代物,而是非法定货币当局发行和管理的,主要
模仿黄金的模式,完全由互联网基础协议和严格的加密技术保护和支持的、全新的、去中心
化的网络货币(虚拟货币),由此也形成了一套不同于、也不受制于现实社会法律的新的货
币规则和体系,并且可以与法定货币进行买卖或兑换。
比特币自推出以来已超过8年时间,没有出现过资金或用户信息被盗用的记录,其安全
性得到验证,而且其资金清算的效率和成本也具有明显的优势。这使得人们对比特币所应用
的区块链技术的信心不断增强,而且人们也越来越清晰地认识到,区块链尽管是比特币所首
创和应用的一种技术和协议,但区块链并不等同于比特币,其应用也绝不会只局限于比特
币。区块链的应用,可以是去中心化的,也可以是中心化的;可以是公有链模式,也可以是
私有链模式。因此,在比特币之后,区块链技术也在不断发展创新,并不断探索新的应用领
域。区块链之所以被越来越多的人高度重视,是因为互联网的发展和广泛应用,已经使得越
来越多的经济交往和交易活动转到网上进行。网络世界(或线上社会)正在快速扩展、充实
和活跃,而网上交易必须解决当事人的身份验证、价值核实、交易记录、查验核实等方面的
效率和安全保护问题,需要严格的中介和协议(规则或宪法)。在这方面,传统思维和习惯
做法就是顺应线下交易向线上转移的发展轨迹,将现实(线下)社会的通行规则和做法推到
线上(网络)社会,但实践中却越来越难以适应网上交易的需求。
比如,当事人身份验证,自然的选择就是以各国法律保护的身份证件的信息为基础,再
增加账户或交易密码,以及脸谱、虹膜、指纹等生物识别等,进行线上交易的身份验证。这
种方法,首先就使得跨境互联互通的网络世界的公民身份信息受到现实社会行政管辖的制
约。同时,非数字化的、多种身份信息的采集和验证会大大增加成本、降低效率。
再者,现实社会中各种经济活动涉及资金清算的,除直接的现金交易外,都需要当事人
首先在银行等机构开立账户,并通过开户机构进行资金清算。但由于种种原因,即使一个国
家内,也不可能要求所有的公民都在一个开户机构(包括其分支机构)开立账户,跨国之间
就更不可能做到。这就使得在不同机构开立账户的当事人的交易,必须通过其开户机构之间
的清算才能完成。将这种模式推行到网络世界,更将严重影响交易确认和资金清算的效率和
成本。
还有,现实社会中,交易活动的计价和清算必然涉及货币,而货币都是以国家或地区主
权保护的法定货币。在互联网跨境互联互通,互联网交易跨境发展的情况下,交易的计价和
资金的清算还涉及货币的问题,多种货币的运行,也将大大增加清算的成本和风险。
因此,网络世界和网络交易的发展,亟须与之相适应的身份验证、价值核实、货币计
价、交易确认与记录、账户管理与核查等方面的创新。而区块链技术为此提供了非常重要的
启迪和实践。
当然,比特币的应用是一种极端的例子,最初始的比特币并不是法定货币可以直接转化
出来的,而是要在网络世界通过“挖矿”才能获得的。因此,比特币可以完全撇开线下社会规
则,运用区块链技术形成一套全新的游戏规则,并由线上向线下延伸。而现实社会中,无论
线上还是线下交易,其主体都是人(包括法人),其财富或价值的管理不应该被完全分割,而必须连接和融合,因此,O2O是必须的。这就要求区块链的应用,不仅要研究和解决网络
世界的问题,还要研究和解决网络世界与现实社会的连接与融合问题。这将带来更多的挑战
和风险,也需要更多的人、更大的力量、更深入的探讨和创新。也可能未来区块链技术会被
更先进更完善的技术所替代,但区块链的历史价值将是不可磨灭的!
为普及区块链的知识,引导区块链的研究,推动区块链的应用,最近我国一批对区块链理论研究和应用实践颇有造诣的专家学者,将其心得和成果精心梳理,编写出版了《区块
链:从数字货币到信用社会》一书,非常值得认真阅读。当然,区块链作为一个全新的技术
和概念,其研究和探索才刚刚开始,希望《区块链:从数字货币到信用社会》一书能够成为大
家学习、研究区块链的“垫脚石”,也希望作者们能不断推出新的成果和作品!
[2]序三
区块链——未来全球信用的基础协议
韩锋 [3]
在2015年的时候,阿里巴巴研究院和中国社科院金融所举行了一个研讨会,我受邀前
往。会议的主旨很宏大,提出要为互联网金融建立一个理论体系!围绕这个主题,诸多中国
一流的学者提出了自己的观点。我也深受启发,尤其是随着最近几年来区块链技术的兴起,似乎给这一目标找到了答案。在探讨区块链能给互联网金融带来什么之前,让我们先看看究
竟互联网会为金融带来什么。
金融的核心无疑就是“信用”的建立。最原始的商品经济是以物换物。但大家很快发现这
样的交易成本很高。如果你把几车皮商品拉去,但是交易没做成,还有可能被土匪抢了,不
仅交易成本高,还要面临很高的风险。所以大家考虑,要让市场经济更好地发展,首先要降
低交易成本。于是很快就过渡到了利用信用建立交易的方式。信用的建立才是金融的核心。
当然,我们传统的信用建立无疑是靠很多的“中心”,譬如央行、商业银行,要有法院、经济
警察等。但是传统金融的问题就是成本过高。我本人很喜欢在北京周边骑车,只要骑车超过
一百公里,虽然只是到了北京的郊区,但金融生态就已发生了巨大的变化!我就经常找不到
ATM(自动取款机)机了,找不到银行网点了。我自己是不太爱带现金的,结果有一两次在
北京郊区把我弄得既不能住店,也不能吃饭,甚至无法买水。
打个比方,这就像人的身体,只靠主动脉无法到达全身,一定要有毛细血管,才能让身
体的很多地方得到营养。如果人的毛细血管出了问题,那么你这个人就会得各种病,非常严
重。所以互联网金融第一步搞得风风火火的,实际上是“支付宝”们,它向前跨的一步就是依
靠大数据来建立信用,这是前所未有的。在我创业的时候,我也曾经去银行贷过款。其过程
非常烦琐,要调查你的资产情况,恨不得把你的家底全搞清楚,之后才决定是否给你贷款。
据说当时银行里所谓的小额贷款是五百万元。为什么这么大的数额?因为成本下不来。所以
光靠银行是不行的,不说我去山沟里没ATM,很多中小企业甚至都无法得到贷款服务。结果
突然出现了支付宝、余额宝,“信用”是建立在互联网交易的大数据基础上,这就是一大突
破!大数据金融基本上是建立互联网金融的第一步。它让信用建立的成本比传统银行吸储放
贷方式的成本下降了很多。后来出现了P2P(点对点)、众筹等,都促使信用建立成本下降
成为趋势。
那为什么还需要区块链?因为光靠互联网公司大数据产生“信用”是远远不够的,让我们
看看传统金融出现的几个问题。首先,互联网公司的大数据实际形成了数据孤岛。每个互联网公司都会提倡互联网的共
享、公开、透明精神。但事实上,他们会将掌握的大数据与他人共享吗?目前,答案是否定
的。在当前形势下,大数据必然是每一个公司的绝对内部资源,不可能进行无边界的共享,这就出现了“大数据集中”的问题。
这样一来,互联网发展到现在就出现了一个悖论,走向了初衷的反面。大数据的集中会
引起富者越富的马太效应。如果形成数据孤岛,大数据资源集中到少数人手中、全社会无法
形成环流,这些宝贵的数据资源只能为少数数据的掌控者所利用,用户个人作为大数据产生
者完全没有获得信用资源的主动权,这非常不利于全球市场信用成本的进一步下降。
其次,数据所有权现在是错配的。海量数据是由每一个参与主体产生的,尤其是在腾讯
微信这样的软件上。但大数据的所有权属于每一个参与主体吗?参与主体可以管控自己的大
数据吗?答案也是否定的。尤其是2016年初发生了一件恶劣的事情——“百度卖吧”事件。在
百度上形成一个“吧”产生的数据、资源的所有权应该归属于用户,这其中包括“吧主”也是由
参与用户选举产生的。但是,百度却能将产生的大数据效益公开出售!
同样,在微信上我们每天能产生多少数据?我们每天产生的社交、交易数据本应该是完
全属于产生者每一个人的。如果按互联网共享、平等、透明的精神,这种大数据产生的是一
种“全球性的信用资源”。
所以,新的创新一定是要解决的问题是:大数据既要能够共享,又要能够清晰所有权归
属。表面上看,这两点有些矛盾。众所周知,第一代互联网解决了信息的自由传递问
题。“信息”本身可以复制、多次传递并且免费,这都没有问题。但“资产”不可以。在现实
中,“资产”在传递过程中所有权唯一,资产的所有权是不能随便复制的。所以,如果按第一
代互联网TCPIP协议做的话,大家似乎无法在互联网上建立所有权和信用制度。因为资产属
性一定是唯一的,不能说拷贝就拷贝。如果任何一个所有权可以无限复制,就没有任何人愿
意相信,也就没有任何信用可言了。
2008年比特币的诞生让以上两个问题迎刃而解。中本聪认为不能靠某个中心建立信用。
因为任何过度中心化的结果都会产生信息不对称,会存在利用中心权力损害参与者的利益、损害市场上其他方利益的情况。所以,比特币白皮书开宗明义地提出:我们要开创一种不需
要第三方的、不需要中介的支付系统,即电子货币的支付系统。但这首先要解决资产所有权
唯一性的问题,即不能重复支付。否则,这个所谓的电子货币无外乎就是存储的数字,如果
还是可以无数次拷贝是没有任何信用价值的。在此之前,很多人也尝试建立电子货币系统。
类似“Q币”显然是依靠腾讯公司发行的,一旦腾讯公司垮了,Q币则一文不值。但中本聪宣
称要创造的这个P2P电子货币支付系统不相信任何中心、不需要任何第三方!比特币的解决方案就是我们现在讨论的区块链技术。第一个也是最核心的概念是“时间
戳”。“时间戳”本身不是中本聪发明的,早就有国家的“时间戳”中心。比如一个合同,可以
盖一个“网络时间戳”,相当于一个证明。即在这个时间点,合同的文本已经形成,当出现纠
纷的时候,可以利用这个证明来打官司等。比特币系统的每笔交易,为了防止重复支付,都
盖了“时间戳”。因为盖了“时间戳”以后,同一笔资产就不能支付给第二个人了。如果有人重
复支付,那么时间会对不上,系统会自动识别为非法交易。唯一的合法交易只能是盖了“时
间戳”的那笔,这就成功解决了重复支付的问题。这个办法听起来可以解决重复支付问题,证明了此时此刻财产转移的唯一性,但问题是:谁来盖这个“时间戳”?中本聪显然是市场的
信徒,信奉亚当·斯密提出的市场都是由自利的人组成的,要有一定的利益规则。盖“时间
戳”的是所谓的“矿工”。矿工每10分钟给全网的每一笔交易盖“时间戳”——记账。他们也是
有利益驱动的。矿工的利益是币基所产生的新币的奖励,通过竞争到一段时间内(约10分
钟)的唯一合法记账权而获得,谁竞争到了,谁就可以获得一定数量比特币的奖励,同时,全网其他矿工要同步一致它这个记账,然后竞争下一个区块记账权。最初,这个奖励是50个
比特币。按照规则设定,每四年减半一次。2013年减半到25个比特币。所谓区块链,就是这
样一个又一个区块账簿连接起来形成的单向记账链条。
比特币的区块链是靠消耗计算资源给全网作证,重新建立信用体系。大家经常看到网上
的讨论,比如,下一代微信可能是什么,下一代淘宝可能是什么等。在我们看来,下一代最
有可能的是一个真正去中心化的系统。每个人在微信上产生的大数据,对每个人自身都有很
大价值。如果这些数据用类似Factom(公证通)这样的系统加密后形成一个新的数字水印
(哈希)然后保存在比特币的区块链上,每个人自己产生的大数据都不可篡改,私钥掌握在
每个人自己手中,也就掌握了自己大数据的所有权。当我们任何人需要向银行贷款时,只要
提供自己的公钥和私钥给全球任何一家银行,根据大数据分析就可以得出贷款人的信用情
况,这就可以让每个人通过大数据+区块链获得全球信用。
阿里巴巴副总裁高红冰对我说:“传统金融的信用建立在钢筋水泥的大厦上,你看银行
是不是都得盖大楼?但未来的信用是建立在区块链的数据上。”所以区块链就是靠全网分布
记账,自由公证,建立了一个共识数据库,这就是未来信用的数据大厦。
畅想一下未来,比如说原来你的出生证、房产证、婚姻证等,需要政府备书,好像政府
才能承认。但一旦跨国,你就会遇到很多麻烦,包括合同。跨国以后合同可能就不能被承认
了,或者无法执行。整个传统的信用执行系统成本非常高。这些成本都摊在了我们每个人的
头上。但是,如果全网公证帮你证明,几乎无法作假。否则就像我刚才说的改时间,除非我
有本事把每个人的手表都改了。将来大家公证一件事情,比如公证你们的情侣关系,一下子
就会成为全网的事实,修改的话几乎是不可能的了,除非到全网的每个矿工那里去改,成本
高到无法接受。现在,要想修改的话,我问过比特币的矿工,如果他们的世界想要这样篡改区块链上的数据,成本是十几亿人民币(随着时间还在迅速地增加)。成本一旦高了,大家
就都不想作假了,因为付出的代价和获得不成比例。
一个新的时代,未来的信用、真假是靠全网公证某个协议,靠全网每台电脑成为记账人
来实现的。这在人类历史上打开了广阔的空间。它解决了什么问题?未来信用由每个消费者
自己靠大数据在区块链上产生,就像北京市金融局霍学文书记所说的,“区块链会成为全球
金融的基础架构”,这是未来的信用大厦。
[3] 作者为清华大学博士生,iCenter导师,比特币基金会终身会员,曾任清华大学十五
规划重点课题“基于网络(大数据)的创新人才评价和选拔”项目负责人,美国甲骨文教育基金
会中国合伙人。第一章
区块链创世纪 [4]
一、先驱篇
(一)中本聪的生日
P2P Foundation是中本聪发布比特币白皮书的网站,注册这个网站必须提供出生日期,中本聪填写的是1975年4月5日。当然,没有人会认为这些信息是真实的,但如果认为这些信
息是随便填的,又似乎低估了一位密码学家的自我修养。
4月5日在货币史上是具有重要意义的一天。在1933年的这一天,美国总统富兰克林·罗斯
福签署了政府法令6102,该法令规定所有美国公民持有黄金都是非法的。
罗斯福没收美国人的黄金,并以美元交换,然后让美元贬值了40%,强制推高黄金价,目的是让美国的债务贬值,从而对抗大萧条。这些措施造成的后果是美国人的财富被洗劫了
40%。
有许多人认为这是美国政府所作所为中最违反宪法的行为之一。这是政府不经过民主程
序对民众最直接的盗窃行为之一。
那么,在1975年又发生了什么?在1975年,福特总统签署“黄金合法化”法案,美国人可
以再一次合法地拥有黄金。
这两个数字撞在一起实在太蹊跷,无法让人不怀疑这是有意为之。毕竟中本聪没有说他
出生于1933年,而是说1975年。因为如果出生年份是1933,这意味着当他发明比特币时已经
75岁了,显然不太可能。假如1975年出生,2008年时他33岁,这明显地更让人信服 [5]。
如果仔细研究中本聪的创世论文以及比特币代码,一定对他注重细节以及对货币知识的
掌握感到惊讶,显然,他的生日数字不是随机组合。没错,这是一个政治隐喻,透露给关心
这些细节并能理解的特殊人群,比如那些密码朋克们。
(二)密码朋克
基于密码学技术的比特币,并非加密货币之发轫,早在20世纪80年代,密码朋克就有了
加密货币的最初设想。蒂莫西·梅(Timothy May)提出了不可追踪的电子货币——加密信用(Cry pto Credits),用于奖励那些致力于保护公民隐私的黑客们。
加密货币的难点在于如何建立分布式共识,也就是莱斯利·兰伯特(Leslie Lamport)等
人1982年提出的拜占庭将军问题(Byzantine Generals Problem)。所谓拜占庭将军问题是
指,把战争中互不信任的各城邦军队如何达成共识并决定是否出兵的决策过程,延伸至计算
领域,试图建立具有容错性的分布式系统,即使部分节点失效仍可确保系统正常运行,也可
让多个基于零信任基础的节点达成共识,并确保信息传递的一致性。
1990年,大卫·乔姆(David Chaum)提出注重隐私安全的密码学网路支付系统,具有不
可追踪的特性,就是后来的电子货币Ecash。不过Ecash并非去中心化系统,后来大多数电子
加密货币都继承了Ecash重视隐私安全的特性,以盲签名技术(Chaumian blinding)为基础,但都没有流行起来,因为它们都依赖于一个中心化的中介机构。
1993年,埃里克·休斯(Eric Hughes)和其他几个人创建了一个“密码朋克邮件名单”的
加密电子邮件系统,简称“密码朋克”,对抗受到政府监控的互联网电子邮件。埃里克·休斯在
《密码朋克宣言》里阐述了密码朋克的使命与目标。
“密码朋克致力于建立匿名系统……电子时代,隐私是开放的社会不可或缺的……
我们不能期望政府、企业或其他大型的匿名组织保障我们的隐私……如果期望拥有隐
私,那么我们必须亲自捍卫之。我们使用密码学、匿名邮件转发系统、数字签名,以及
电子货币保障我们的隐私。”
密码朋克在20世纪90年代最为活跃,包括电脑黑客、密码学家和追求隐私的狂热者,他
们极力主张用密码技术保护个人隐私不受其他人或者政府的侵犯,但在当时,密码技术并没
有在日常生活中得到广泛应用,而是被政府垄断,主要用于情报和保密。
密码朋克们意识到密码学对社会经济的深远影响,蒂莫西·梅说:“正如印刷技术改变了
中世纪的行会及社会权力结构,密码技术方法也将从根本上改变机构及政府干预经济交易的
方式。”
比特币的加密理论基础来源于以下几项密码学的技术创新:1976年威特菲尔德·迪菲
(Whitfield Diffie)与马蒂·赫尔曼(Marty Hellman)发明的非对称加密算法,1977年罗纳
德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard
Adelman)率先发明的第一个具备商业实用性的非对称RSA加密算法 [6]
,以及1985年由尼
尔·科布利茨(Neal Koblit)和维科特·米勒(Victor Miller)首先提出的椭圆曲线加密算法
(ECC)。这些加密算法奠定了现在非对称加密理论的基础,被广泛应用于网络通信领域。但是,当时这些加密技术发明均在NSA(美国国家安全局)严密监视的视野之内。NSA
最初认为它们对国家安全构成威胁,并将其视为军用技术。直到20世纪90年代末,NSA才放
弃对这些技术的控制,RSA算法等非对称加密技术最终得以走进公众领域。
有趣的是,中本聪并不信任NSA公布的加密技术。2013年9月,斯诺登爆料NSA采用秘
密方法控制加密国际标准,比特币采用的椭圆曲线函数可能留有后门,NSA能以不为人知的
方法弱化这条曲线。所幸的是,中本聪使用的不是NSA的标准,而是另一条鲜为人知的曲
线。全世界只有极少数程序躲过了这一漏洞,比特币便是其中之一。
1998年,另一名密码朋克戴伟(Dai Wei)提出了匿名的、分布式的电子加密货币系统
——B-money。分布式思想是比特币的重要灵感来源,在比特币的官网上,B-money被认为
是比特币的精神先导。
B-money的设计在很多关键的技术特质上与比特币非常相似,但是不能否认的是,B-
money有些不切实际,其最大的现实困难在于货币的创造环节。
在B-money系统中,要求所有的账户持有者共同决定计算量的成本并就此达成一致意
见。但计算技术发展日新月异,而且有时并不公开,计算量的成本这类信息并不准确、及
时,也难以获得,因而B-money很难成为现实。
2005年,尼克·萨博(Nick Szabo)提出比特金(Bitgold)的设想:用户通过竞争解决数
学难题,再将解答的结果用加密算法串联在一起公开发布,构建出一个产权认证系统。该系
统已经非常类似于比特币的理念,且发布日期与比特币非常接近,所以,萨博也被视作中本
聪的潜在候选人之一。除此之外,萨博还发表了许多关于《合同法》在网络中安全实现的理
论文章,这些思想被视为区块链智能合约的起源。
但萨博终究不是中本聪,他擅长于理论研究而不是编程实现,他一直寻找能将比特金变
为现实的开发者,但没有人响应。
从乔姆的Ecash,到戴伟的B-money,再到萨博的比特金……几代密码朋克都怀着对自
由货币的向往,像堂吉诃德一般偏执而骄傲,试图征服加密货币的风车,最终都功亏一篑,这些理论探索并未真正进入应用领域,长期不为公众所知,但他们的研究成果加速了比特币
面世的进程。
(三)加密货币的乔布斯
非对称加密技术的发明以及创立Napster
[7]
的肖恩·范宁(Shawn Fanning)与肖恩·帕克
(Shawn Park er)点对点网络技术的开发,使比特币的出现成为可能。通过这两项技术,可以建立分布式交易账簿,并以呼叫问答机制向全网广播,网络节点不停地检查接收的数据,避免数据被篡改。
数字货币的诞生历程就像是一次扣人心弦的橄榄球进攻,在乔姆、戴伟、萨博等“明星
球员”的冲刺下,每一次冲阵都前进了一些,但离“达阵”总还差一点距离。
最后的难点就是“双重支付”问题。“双重支付”阴云在数字货币诞生伊始,就始终盘桓不
去。其实解决方法是现成的,就是亚当·拜克(Adam Back)在1997年发明的哈希现金(Hash
Cash)算法机制。但起初,该设计是用于限制垃圾邮件发送与拒绝服务攻击。这就好比另一
个球场正进行着田径接力赛,并没有引起橄榄球赛场的注意。2004年,哈尔·芬尼(Hal
Finney)接过拜克的接力棒,将哈希现金算法改进为“可复用的工作量验证(Reusable Proofs
of Work)”。他的研究又是基于达利亚·马凯(Dahlia Malkhi)与迈克尔·瑞特(Michael
Reiter)的学术成果:拜占庭容错机制(Byzantine Quorum Systems)。
所有的技术都已成熟,终于由中本聪在2008年完成“达阵”。他将RPOW(可复用工作量
验证)引入加密货币,就像博尔特跑入了橄榄球赛场一样,一下发挥出巨大的威力,比特币
诞生了。中本聪阐述了RPOW机制如何用于解决拜占庭将军问题,RPOW消除了中枢“时间
戳”服务器的需求,杜绝了那些不怀好意的人通过攻击中央服务器进行比特币无限重复消费
的问题。
非对称加密、点对点技术、哈希现金这三项关键技术没有一项是中本聪发明的,但最后
摘取桂冠的却是他。这与其说是运气,不如说是因为中本聪恰好具备发明比特币的全部素
养:既是“橄榄球员”,又是“田径高手”,更关键的是他还是编程大师,能够把自己的想法付
诸行动。中本聪就像是加密货币界的乔布斯,纵横于不同领域,采撷各家之长为我所用。
正如戴伟事后评价说:“要想开发出比特币,必须:①对货币有非常深入的思考;②要
了解密码学;③认为比特币这样的系统从理论上是可行的;④要有足够的动力将这个理念开
发成实际产品;⑤编程能力出色,能保证产品安全;⑥有足够的社交技巧,才能围绕这个产
品建立一个成功的社区。密码学圈子能符合前三个条件的人就已是凤毛麟角。”
(四)创世区块
中本聪第一次出现是在2008年11月1日。那一天,秘密讨论群“密码学邮件组”里出现了
一个新帖子:“我正在开发一种新的电子货币系统,采用完全点对点的形式,而且无须受信
第三方的介入。”该帖的署名就是塞托西·中本聪(Satoshi Nak amoto)。
这样的电子货币系统是密码朋克们数十年来的梦想,有许多人进行过尝试,但都失败
了。当时最积极的反应也只是持怀疑态度,因为密码组成员已经看过太多低水平的新手想出来的宏伟计划,他们的本能反应就是怀疑。当时有不少人表示,这样的系统是不可能实现
的,连大卫·乔姆这样的密码学天才都失败了,更何况一个无名小辈呢。
中本聪细致入微地回答了所有疑问,最终在白皮书中提出了一个可行的方案。白皮书遵
从学术习惯采用“我们”作为第一人称,行文也是标准的论文格式。
“本文提出了一种完全通过点对点技术实现的电子现金系统。它使得在线支付能够
直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。”
中本聪选择在2008年全球金融危机的时候将比特币公布于世,在介绍他的创新时说
道:“传统货币最根本的问题在于信任。中央银行必须让人信任它不会让货币贬值,但历史
上这种可信度从来都不存在。银行必须让人信任它能管理好钱财,并让这些财富以电子货币
形式流通,但银行却用货币制造信贷泡沫,使私人财富缩水。”
与密码朋克的文章相比,比特币创世论文的语言显得格外冷静和去政治化,文中没有出
现政府或主权的字眼,仅将比特币描述成一个区别于传统金融的支付系统。
两个月之后,也就是2009年1月3日,中本聪发布了开源的第一版比特币客户端,宣告了
比特币的诞生。他同时通过“挖矿”得到了50枚比特币,产生第一批比特币的区块就叫作“创
始区块”(Genesis block)。
在全球金融危机时期,中本聪将他的怀疑和愤怒集中在了银行机构上,但与用生日密码
挖苦美国政府一样,他不动声色地幽默化了英国财政大臣达林一把,在创世区块里写
道:“当时正是英国财政大臣第二次出手疏解银行危机之时。”
财政大臣左支右绌的窘态就这样被永久记录在区块链上。“第二次”在此与其说是一个量
词,不如说是一个形容词,很形象。
9天以后,中本聪向密码学家哈尔·芬尼转账了一笔比特币。那笔转账在当时还不值一
文,却在加密货币篇章里留下浓墨重彩的一笔。这是人类历史上第一次摆脱受信第三方金融
机构而完成的点对点交易。
与许多患有隐私癖的黑客一样,中本聪也是独行侠。他几乎没有合作伙伴,如果非要说
一个,哈尔·芬尼勉强算半个。芬尼是参与过PGP加密技术研发的一位顶级开发者,也是密码
朋克的重要成员。当中本聪在加密邮件列表中宣布比特币的想法时,迎来的更多的是冷嘲热
讽,但只有芬尼热情支持。芬尼很早就对加密货币计划感兴趣,早在2004年,他就推出了自
己设计的加密货币,在其中采用了可重复使用的工作量证明机制,所以他明白比特币的价值。当中本聪公布第一个版本的软件时,芬尼马上下载并测试。
多年后,芬尼在社区回忆这段经历说:“我想我是除了中本聪以外第一个运行比特币
的。我开采了大约70个块,而且我还是第一个比特币交易的接受人,中本聪测试时转给了我
10个币。在接下来的几天里,我和中本聪通过邮件谈了很多,主要是我报告一些故障然后他
把它们搞定。”
社区网友亲切地把芬尼称作“中本聪的沃森”,因为当电话被发明时,第一个电话就是贝
尔打给他的助手沃森:“沃森,快过来,我想见你。”2014年8月,在与渐冻人症搏斗了五年
之后,哈尔·芬尼在亚利桑那州去世。向“沃森”致敬!
(五)后起之秀
比特币发布后取得了空前的成功,媒体与公众纷纷把中本聪与20世纪90年代的那些密码
学天才们相提并论。中本聪对此不以为然。
尽管维基解密创始人朱利安·阿桑奇(Julian Assange) [8]
宣称比特币是从密码朋克中来
的,中本聪却对密码朋克或者密码无政府主义只字不提。
2010年,维基解密宣布接受用比特币的捐款时,社区一片欢呼,中本聪却出人意料地提
出了反对意见:
“不,请不要揠苗助长。比特币这个项目需要平静地成长,这样软件才能够逐渐强
化。我请求维基解密现在不要使用比特币。比特币还是一个非常小的测试项目,还处在
婴儿期。在这个阶段,你们所带来的关注将摧毁我们。”
中本聪对20世纪90年代的失败者记忆犹新。他指出Beenz(虚拟货币)、Flooz、Ecash(电子货币)等数字货币先驱失败的根本原因就在于其中心化的架构。因为一旦为数
字货币信用背书的公司倒闭,或保管总账的中央服务器被黑客攻破,该数字货币就会面临信
用破产和内部崩溃的风险。
2013年,一名叫特拉梅尔的安全研究人员公布了他与中本聪的加密邮件往来。在邮件
中,中本聪写道:
“我觉得现在更多的人对90年代感兴趣,但是经过数十年,我们已经看到了基
于‘信任第三方’系统的失败(例如Ecash)。我希望人们能够有一种区分,即知道:
我们是在尝试首次建立一个以‘非信第三方’为基础的系统。”然而,要向公众解释这两者的区分很难,有一次他在论坛抱怨:“向普通读者描述比特
币真是‘bloody hard’(该死地困难)。” [9]
中本聪对加密货币前辈的态度难说有几分尊重,但世道轮回,没过几年他也面临后起之
秀的挑战。
对比特币的共识机制来说,挖矿是必须的。正如白皮书中开门见山指出的:“想要在点
对点(P2P)基础上布置一个分布式的‘时间戳’服务器,我们必须使用一种与亚当·拜克的哈
希现金相似的工作证明系统。”
但很多人都认为,比特币网络消耗的庞大计算力是一场能源灾难。素数币创始人萨尼·肯
(Sunny King)试图将算力应用于蛋白质折叠、寻找素数这样的科学工程。他自信地写
道:“加密货币目前已分道扬镳为两条道路:一种是能源密集型,另一种是环保节能型。我
相信,在未来较长一段时间(5年以上),环保节能型货币将因其成本优势而挑战能源密集
型货币。素数币第一次引入非哈希现金的工作量证明机制,使算力不仅用来制造区块链,还
提供额外的潜在科学价值。”
除此之外,Sunny King还发明了权益证明(PoS)。与要求矿工证明执行一定量的计算
工作不同,权益证明要求用户提供证明一定数量加密货币的所有权即可。
还有一些人对比特币处理交易的效率很不满意。比特股创始人拜特·马斯特(By te
Master)在社区发帖:“互联网带宽、CPU(中央处理器)、硬盘空间等都是非常宝贵的资
源,指望用户用个人时间和挖矿的方式获得财富,这对于创新而言将是不利的。此外,比特
币10分钟的确认时间对于验证付款而言实在是太长了,它应该像如今刷信用卡那般迅速。”
中本聪是这样解释的:将来用户只需运行轻节点,只交易,不挖矿,处理区块的节点将
是矿场部署的大型服务器。最后,他无奈地说:“如果你没有理解我的意思,我没时间说服
你。”在心底,恐怕他又吐槽一遍“bloody hard”吧。
另一位技术天才维塔莱克(Vitalik)从未在社区与中本聪对过话,毕竟在2008年的时
候,他才13岁。Vitalik与中本聪的交流更多的是通过代码。他指出,中本聪作为一个老派
C++程序员,编程水平并不高明,但运气不错:“虽然中本聪在2008年为比特币做出的绝大多
数决策我们仍坚持着,但他的选择绝对不是完美的,幸运的是他正确的次数经常比错误要
多。事实上有几个实例,因为中本聪的选择我们获得了更好的结果。”
他说的是中本聪在比特币的代码中埋下的三个“彩蛋”,后来被证明都是对的。
第一个是比特币使用公钥的哈希作为地址,带来了不必要的复杂度和浪费。但事实上,这是深思远虑的未雨绸缪,因为可以让比特币完全免受量子计算机的威胁。第二个是比特币
总量2100万的限制,或者说是2的50.899次方。这是一台计算机里面能以标准整数形式存放的
最大整数,超过那个值的话,数值将像里程表那样归零。第三个是选择了正确的椭圆曲线,成功绕开了NSA居心叵测的陷阱。
中本聪在代码里处处留情,可惜能读懂他的人不多。很难说Vitalik能否算是一个知音,因为后者并不认为中本聪天才地设计了这一切,他说:“这些设计带来更好结果的原因可能
连中本聪自己都没想到过。”他认为中本聪是蒙对的。2014年,他发起以太坊项目,试图以
一套图灵完备的脚本语言,解决比特币扩展性不足的问题,提供不同智能合约,让用户搭建
各种应用。有意思的是,以太坊以加密货币先驱的名字作为货币单位,戴伟、萨博、芬尼均
名列其中,唯独没有中本聪。
2010年12月12日,中本聪在比特币论坛发布了他最后一个帖子,其后,他在网络上的公
开活动频率也逐渐降低。直到2011年4月,他发布了最后一项公开声明,宣称自己“已经开始
专注于其他事情”。他依然跟几个关键人物保持着联系,比如说比特币的首席开发者加文·安
德森,并提出了一些建议。但到这一年年末,安德森公开表示,中本聪回复他电子邮件的次
数越来越少,然后慢慢地就再也没了消息。
二、货币篇
(一)石币之岛
密克罗尼西亚是太平洋的三大岛群之一,其中最西边的雅浦岛上曾住着一群非常古怪的
土著居民。1903年,美国的人类学家威廉·亨利·弗内斯(William Henry Furness)在雅浦岛
住过几个月,并把他在当地所见的风俗记录成书,书名叫《石币之岛》,因为当地的货币体
系令他印象深刻。
雅浦岛上没有金属资源,于是石器在他们的文化中扮演着重要的角色。但即使是石灰
岩,也需在离雅浦岛400英里远的帕劳岛上才能找到。雅浦岛部落里的探险家们开采这些石
灰岩,打制成内部中空外部呈环形的石轮,然后用木筏运回雅浦岛作为货币使用。这些石轮
小的直径30多厘米,大的直径有3米多。为了便于运输,有时会往中间插一根粗壮的木柱。
雅浦石币有个很有趣的特点。交易双方在决定了使用多大的石币付费后,如果那个石头
太大了,不方便运输,那么卖家只要在买家的石头上做个标记就可以了,这样就算是付费
了。那个标记就说明这个石头已经属于卖家了,而石头仍然躺在买家屋里。不只如此,还有更神奇的事情。岛上有一户大财主,所有人都承认他们家是首富,但奇
怪的是,没有人见过首富家里的石币,连他的家人都没见过。他们家拥有的财产是一个巨大
的石币,大小只有祖辈才知道,因为这个石币一直沉睡在海底。原来许多年以前,这户人家
的祖辈和其他人外出探险,寻找和开采石灰岩,就像美国西部的淘金客一样。他们的祖辈运
气不错,碰到了这个庞然大物,便将其制成石币,然后用木筏拉回家。但是归途中遭遇了强
烈的暴风雨,为了逃命,探险队只好砍掉拉筏的绳子,于是那块巨大的石币沉入了大海,永
远也找不回来了。回村后,探险队的成员都替他作证,那块石币尺寸巨大并且质量上乘。虽
然已掉落大海,但大伙都见证了这块石头的去处,所以不会影响它的价值。它的主人仍然可
以用它买东西,就跟把石币运回家存放起来的效果一样。
如果这个还不足以让你惊讶,请看下面的故事。雅浦岛岛民都不穿鞋,并且也没有发明
轮子,自然也就没有车道。岛上只有一些适合原住居民裸足行走的珊瑚礁道路,但是西方殖
民者却要求他们修筑能行驶汽车的公路。德国在1898年从西班牙手中买下了这座岛,要求几
个部落的酋长组织修路。修路对土著居民而言完全没有意义,德国人的马克在土著居民看来
跟废纸差不多,所以命令下达了几遍都无人搭理。想想也是,一伙拿枪的人登上一座自己从
未踏足的岛屿便声称拥有岛屿的所有权,还强迫当地居民为自己修路,这不是流氓是什么。
德国政府研究了雅浦岛的文化习俗后,突然开窍了,下令对几个违抗命令的部落征税。他们
派人到这些部落的每家每户,并往他们最珍贵的石币上涂上黑十字标记,声称这些石币已经
归德国政府所有了。这个解决方案既简单又“文明”——文明用在这儿真够讽刺的——但的确
非常奏效,可谓是“取之于无形,使人不怒”。所有人都觉得政府抢了自己的钱,为了使钱不
被抢走,只得乖乖去替政府修路。最后路修好了,德国政府就把那些标记抹去,于是岛民又
幸福地过上自己富有的生活。
读到这里读者朋友也许会发出这样的感慨:天底下竟存在这样荒唐的货币!但事实上,被视为现代经济学皇冠上最璀璨宝石的信用货币,其运行原理与雅浦岛石币并无不同。
(二)法兰西银行的黄金
弗里德曼在《货币的祸害》一书里举了一个例子:1932年,法兰西银行害怕美国不再盯
住金本位,不再按一盎司黄金兑换20.67美元的传统价格兑换黄金。于是,法兰西银行要求纽
约联邦储备银行将它存在美国的大部分美元资产转换成黄金。为了降低将黄金装船海运的成
本,法兰西银行要求联邦储备银行把黄金存到法兰西银行的会计账簿上。
于是财经报纸用头条报道了这条关于“黄金的损失”以及对美国金融体系的威胁等诸如此
类的消息。美国的黄金储备开始减少,法国的黄金储备开始增加。市场认为美元走软,法郎
走强。这种因法国向美国兑换黄金而造成的所谓黄金流失,甚至引发了1933年的银行业恐
慌。而事实上,黄金并没有流到法国,仍然在美联储的地下金库里,因为这只是一次会计操
作而已。当时的实际情形是美国联邦储备银行在地下金库的抽屉上作了一些标记,表示这些
抽屉中的金块属于法国了。
看起来雅浦岛的石币像是远古的实物货币,如法国人的兽皮,蒙古人的砖茶,印度原始
居民的杏仁,中国夏代的海贝……但是,雅浦岛居民的交易并不真正需要挪动或分割那些石
币,他们只需要更改石币上的标记,甚至连标记也不需要。如果大伙脑海里有关于某一石币
的共同记忆,那么大伙也都承认这笔财富的存在。
对,货币只是一种记账方式。不仅雅浦岛居民这样认为,美国联邦储备银行也这样认
为,比特币等区块链货币也是这样认为。当文克莱沃斯兄弟宣称他们拥有100000枚比特币,不是说在某银行的保险箱里,真的有100000枚比特币整整齐齐码在那儿,而是说比特币全网
节点都承认有这些一笔比特币,且归属于文克莱沃斯兄弟的比特币地址。
(三)货币的本质
让我们回到货币的本质。假想我们处在一个没有货币的世界,比如同样也是在一个遗世
独立的小岛上,与雅浦岛不同,这个小岛还没有诞生货币。岛上只有我和你,现在我们需要
进行一笔交易。我想要你手里的鱼,你想要我手里的浆果。那么很简单,我们直接互相交换
就可以了。但是如果我现在手里没有浆果,我的浆果得在秋天才能收获,可是我现在又很需
要你手里的鱼。那么我们该怎么交易呢?好吧,鉴于岛上只有我们两个人,你决定相信我,我给你发出一个IOU(I owe you),即借据,约定到秋天浆果收获的时候我支付给你,现在
我就可以获得我所想要的鱼。我们引入资产负债表的概念,让这个故事更一目了然(表1-
1)。
表1-1 基于直接互换的资产负债表
在资产负债表中,我的资产由于获得鱼而增加,同时负债也增加,即对你的债务凭证。
而你的资产端则是将交易给我的商品转换成了对我的债务追偿权。
现在我们来个稍微复杂的例子。假设你我素昧平生,彼此都不信任,那这个时候我们该
如何进行交易?假设我们都信任一个第三方,比如银行,银行也乐意充当我们的桥梁,那么
交易见表1-2。
表1-2 基于第三方的资产负债表我把自己的IOU转换成向你所认可接受的第三方发出的IOU,在这里由银行发出的IOU
即银行券(bank note)。这样如资产负债表所示,我在资产端获得所需商品,负债端为对银
行的IOU;而银行的资产端则为我发出的IOU,在负债端银行以我发出的IOU转换为对你发
出的银行券(钱)。你的资产就由商品转换为银行券。
所以在现代社会,货币就是一种特殊的IOU,无论把货币当作是贷款还是债务,货币的
本质都是一种记账方式。
当交易的群体不只是两个人之间,而是扩大到社会中的每个成员,当我们进行这种时间
上不匹配的交易时,我们每个人都发出自己的IOU,那么这个系统就会变得极为复杂(图1-
1)。因为没有都认可的第三方时,我们每个人的交易都要取决于是否相信其他人,这将使
我们在交易中寸步难行。于是我们不得不依赖于银行这种所谓“可信第三方”,可问题并没有
解决,而是转化为另一个问题:银行真的值得信任吗?
图1-1 无“可信第三方”的交换
(四)邓巴数限制
如果雅浦岛首富登上“非诚勿扰”,骄傲地宣称自己在太平洋底拥有一块非常值钱的石
头,恐怕会被女嘉宾当成疯子羞辱。这种原始的货币制度只适合自然状态下的小规模经济,也就是费孝通在《江村经济》一书所说的熟人社会。雅浦岛石币无法突破邓巴数限制。人类
学家罗宾·邓巴(Robin Dunbar)发现每个人与之维持持久关系的熟人,数量通常只有150个
左右,这一数量限制就称作邓巴数。狩猎采集社会的典型组织单位“游团”的规模一般不足百
人,比如非洲西南部卡拉哈里沙漠的桑人,每个游团20~60人,邻近农耕区的游团100~150
人;从事游耕农业的半定居社会,规模也只是略大,比如缅甸克钦邦山区的游耕群落,最大
的也只有100多人。
雅浦岛之所以能孕育出如此神奇的货币现象,乃是因其处于自然经济状态,小岛居民人
口不多,交易不普遍,货币的周转速度也非常慢。当地居民有的也许终其一生,也只有寥寥
几次交易行为。幸亏雅浦岛上没有淘宝,没有电子商务,不然当地居民的脑子可能会“内存
不足”。这也正是雅浦岛石币仅存于与世隔绝的大洋孤岛,而不见于人类主流社会的原因。
从地理上,没有比雅浦岛石币更孤独的了,它原产于西太平洋上的帕劳。但在理念上,它并不孤独,可以说它与比特币思想异曲同工。石币与比特币都具有稀缺性,前者是大自然
的石灰岩矿藏分布,后者是基于数学算法;两者同样需要付出昂贵的劳力(计算力)成本才
能获取,前者是冒险家的航海运输,后者是矿工的挖矿;两者交易总账均采用分布式存储,前者是大脑记忆,后者是计算机(表1-3)。幸亏有了计算机,人们终于不再需要用石头标记
或集体记忆来记录交易,计算机网络可以帮助我们实现这一切。交易行为也同样打破了熟人
社会的限制,在比特币交易过程中,交易双方不必彼此熟识或信任,也无须引入可信第三
方,就能随时随地自由交易,也就是说,邓巴数被突破了。
表1-3 法币、石币、比特币特性对比
(五)中心化缺陷
如果雅浦岛首富为富不仁,想要私下使用这笔巨款,比如偷偷跟自己的情人说我那块大
石头送给你了,那么这次交易是无效的,因为交易没有广播,并没有其他岛民在旁边作证。
但如果首富临死前,当着全岛人民的面说,这块大石头就作为遗产给我的大儿子了,那么这
笔交易就是有效的,因为其他岛民都做了见证,并集体更新了头脑里的“账簿”。雅浦岛石币
虽已具备分布式货币的雏形,但毕竟人肉信息传递网络是脆弱的,交易在口口相传的途径中
以及集体记忆中极易出现差错。
比特币全网的节点每时每刻都在向网络广播交易,每笔交易经10~60秒就能广播至全球
所有节点,速度取决于节点的网络连接状况。这些广播出来的交易在经过矿工的验证后,打
包到数据块中,串联起来形成环环相扣的区块链,这些交易一经六次确认便几无篡改的可能
性。要修改某个区块上的数据,得从这个区块开始重新计算之后的所有区块,考虑到比特币
全网1300万亿次哈希运算的算力,地球上在比特币网络之外已不存在足以逆转比特币交易的
计算能力。
雅浦岛的集体记忆式账簿虽然表面上是分散的,但仍然存在一个权威的第三方,可以决
定石币的归属。然而在去中心化的区块链中,并无一个高高在上的殖民政府有权宣布没收你
的比特币。或许从载体来说,石币是真实存在的实体,比特币只是虚无缥缈的数字,但从实
用性来说,石币只是发人深省的寓言,比特币才是实实在在的财富。
数万年以来,雅浦岛岛民将他们在遥远的岛屿上开采出来,经过打制并运回自己居住岛
屿的石头,充作交换的载体,他们一直这样独特地理解着金钱与财富;数千年以来,文明社
会则把金块从地底深处开采出来,花大力气进行冶炼,经过长距离的转运,再次埋进精心设
计的地下金库,金块的一举一动都可能引发金融市场的离奇波动;最近几年,矿工们满世界寻找着便宜的电力,大规模部署先进的ASIC芯片,挖掘一种叫比特币的玩意,据说那是一串
叫作Base58编码 [10]
的毫无意义的字符,居然能在全球100多家交易市场卖数百美元一个。
听完上面这个故事,比特币是不是也变得不那么令人费解了呢?
三、信用篇
(一)库拉圈
社会学家马林诺夫斯基(Malinowsk i)考察完西太平洋上的特罗布里恩德群岛后,对古
典经济学中的一个假设很生气。经济学家过去一直把人类视作“理性经济人”,假设他们在自
由和竞争性的市场里同他人进行交易或交换时,总是寻求物质利益或效用的最大化。但特罗
布里恩德群岛上的居民却不是这样。在他们的交易行为中,利益最大化似乎并不是他们考虑
的首要前提。
在这些洋岛部落间存在着一种被称为库拉圈(Kula Ring)的封闭交换关系圈,当地居民
生活的各方面都与库拉有着紧密的联系。库拉的核心是白色贝壳雕琢的臂镯和红色贝壳打造
的项圈的交换,这种交易具有方向性,人们只能逆时针方向交换臂镯,顺时针方向交换项圈
(图1-2)。
图1-2 库拉圈交换
库拉贸易圈大致覆盖了整个特罗布里恩德群岛。岛上的男人长途航行,横穿公海,按顺
时针方向输运项圈;另一些人则按逆时针方向输运臂镯。一个人根据地位的不同,可能有一
个到数十个的库拉伙伴。库拉伙伴是具有库拉关系的不同部落的土著。这是一种相对稳定的
关系,关系一旦建立就基本不会被破坏。一旦进行库拉交易,则一直进行库拉交易,交易伙
伴越多,他的部落地位越高。
当一个人从南方的库拉伙伴处得到臂镯,他会再把臂镯交换给处于北方的库拉伙伴。相
反,当他从北方的库拉伙伴处得到项圈,会再次把项圈交换给南方的库拉伙伴,从而形成按
相反方向流动的两种库拉圈:臂镯以逆时针的方向流动,而相应地,项圈以顺时针的方向流
动。处在库拉圈不同地方的土著基本按照这样的方式进行库拉。
马林诺夫斯基发现,库拉交易并不是等价交易,也不同时发生,而更像是一种礼物馈
赠。一个人将臂镯交换给处于下游的库拉伙伴,上游的库拉伙伴一段时间后回赠项圈,臂镯和项圈的价值并不相等。如果臂镯的价值高,且人都是自私的话,那么他不应该将臂镯交换
出去。但事实上,群岛上的每个库拉交易者都非常乐意将臂镯交换出去,而不是以占有为目
的。正如马林诺夫斯基指出的:
“在特罗布里恩德岛民的库拉交换形式中甚至没有一丝要从中获利的迹象,没有任
何理由用纯功利主义的和经济的观点看待他们,因为他们没有通过交换而相互利用”。
(二)理性经济人
看到这里,读者朋友可能会觉得这群可爱的岛民都是乐施好善、淡泊名利的天使,但你
要是了解他们种红薯的奇怪嗜好就不会这样认为了。特罗布里恩德人喜欢种红薯但他们并不
吃红薯,因为岛上遍布野生的热带奇珍异果,既好吃又管饱,在这儿,农业更像是一种娱乐
活动。他们种红薯的唯一目的就是堆在院子里炫耀,攀比谁的红薯堆大,然后储藏起来让它
们烂掉。看来特罗布里恩德人同文明世界里的“土豪”一样,都喜欢炫耀自己的财富,以种红
薯这样不算浪漫的方式诠释着浪费。但在库拉交易中,他们却并不以拥有臂镯和项圈多为
傲,相反,他们以频繁交易为荣。这种交易要经历航海的千辛万苦,没有带来丝毫财富上的
回报,这似乎很矛盾。
按照经典经济学中“理性经济人”的概念,小岛原住民的一切行为都是出于自利的理性考
虑,他们过着一种“算计的、冷酷的、自我中心主义的、斤斤计较于效用的生活”。马林诺夫
斯基严厉地批评了这些观点。他指出,“库拉交易绝非纯粹的商业性交易,它不是建立在对
实际效用和利润得失的简单计算上”。 [11]
对库拉交易行为的合理性解释很多,一种解释认为这就是礼物馈赠,因为库拉交易中隐
含着一种互惠逻辑:赠予礼仪性的礼物以后,不论时间长短,总要报以差不多等值的答礼。
结构主义大师列维·施特劳斯的舅舅莫斯还根据这个社会学案例写了本著名的《礼物》。另一
种解释认为这是宗教仪式,因为某些库拉交易还伴随着精致的巫术仪式和公共仪礼。
但是,以上两种解释都无法回答以下几个问题:①库拉交易为何要规定方向?②为何交
易对象越多,交易者的地位越高?③为何交易次数越多,交易者的地位越高?
(三)等价交易
当今电子支付是如此快捷高效,以至于人们会有这样的疑惑:既然PayPal(贝宝)、支
付宝已经如此方便,我们还需要基于区块链的数字货币支付吗?
答案是肯定的。在一次支付宝处理的交易中,一个人的支出等于另一个人的收入,这是等价交易。问题在于,如果支出与收入是同一个人的两个账户,会发生什么?由于对支付宝
而言,每一笔交易的边际成本都近乎于零,所以,如果一个人同时拥有两个账户,他在两个
账户里反复进行转账交易,就会以非常低的成本制造出无数被支付宝视作洪水猛兽的刷信用
行为。
淘宝网非常明智地给交易引入了评价,但是无论采用多么高明的机器算法与人工干预,都无法阻止刷客与差评师这两种职业的存在。前者假扮成买家,通过虚假交易,对卖家的商
品刷好评以赚取卖家支付的佣金;后者给网上卖家恶意差评,以勒索卖家提供相应的“赔
偿”以获利。
淘宝网通过非常复杂的手段遏制刷信用行为:一方面使用机器算法对店铺进行排查,将
出现异常情况(如交易过于频繁)的店铺进行上报;另一方面设有2000多人的团队,对涉嫌
刷信用和好评的店铺进行清查,但是收效甚微。这不仅是淘宝网的难题,也是所有电子商务
平台的阿喀琉斯之踵。只因它们对交易行为的处理都是一样的,即等价交易。
等价交易的观念伴随着可切割熔铸的金属货币的使用而被人们广泛接受,并随着时间的
推移而根深蒂固。公元前7世纪吕底亚人使用条状的金属或者扁豆状的金属块进行支付,可
以精确地衡量商品的价值。王国的统治者克里萨斯国王因发达的铸币业而富有得令人难以置
信,并因此就有了“像克里萨斯一样富有”的说法。
互联网电子支付对交易的处理与吕底亚人并无不同,只不过,PayPal、支付宝不再使用
粒度不同的金属,而是使用服务器里妥善存储的数据。等价交易无须精确称量,而只需进行
一次数据库操作。用户用电子支付的A账户给B账户转账金额为m,反过来,再从B账户转账
金额m到A账户,电子支付数据库里A账户与B账户的数值又恢复到起始,如此进行无数遍,便是典型的刷信用行为。库拉圈交易也是一次循环(库拉的含义就是循环),不同的是库拉
的交易有方向性,而不能作对换交易。
试想在特罗布里恩德群岛的库拉圈贸易中,若是一个人从南方的库拉伙伴处得到臂镯,不再把臂镯交换给北方的库拉伙伴(逆时针),也不把自己的项圈回赠给南方的库拉伙伴
(顺时针),而是再次把臂镯还给这位南方的库拉伙伴,将意味着什么?没错,这是一次典
型的刷信用式的死循环,臂镯将永远在这两位库拉伙伴中循环,而成为两人永久占有的私
藏。两人在部落中也将“刷出”非常显赫的地位。显然,如果大家都这么投机取巧,那么所有
的臂镯与项圈都将退出流转,变成藏而不露的私有财产,库拉贸易圈也将不复存在,而这正
是库拉贸易要规定交易的方向的缘故。交易一旦启动,库拉就会像接力游戏一样,一直按顺
时针或逆时针方向流转下去。
库拉圈带给我们的启示是:如果规定交易的方向,就可以避免刷信用的行为。然而,这在真实经济中是不现实的,我们无法规定在电子商务中只允许与固定的人群交易,人们也的
确有与自己交易的自由。
(四)将币天销毁引入信用评价
币天(CoinDay s)销毁是区块链的一个非常重要的概念。顾名思义,币天销毁等于每笔
交易的金额(币)乘以这笔交易的币在账上留存的时间(天),比如你花了一笔100天以前
收到的10比特币,这笔交易的币天销毁就是1000币天。
起初,区块链研究者并没有注意到币天销毁的意义所在,因为它不像时间戳、难度、随
机数等字段一样,在区块链中有明确的作用。只有少数对币价敏感的人群关注这个指标,他
们认为区块链的币天销毁累积的变动,可以揭示市场走向。在市场处于下跌通道时,币天销
毁的峰值意味着市场中的弱手,因为代表着大户可能要抛币。当市场处于上涨通道时,币天
销毁的峰值意味着市场中的强手,表明市场可能会走强。与传统股票市场不同,在比特币等
数字货币交易市场中,币天销毁比每日交易量这个指标更能准确地显示市场的资金流动。因
为如果一个人开两个账户(比特币地址),用100个比特币来回转账,这样可以把交易量做
到很大,但币天销毁却几乎维持不变。
币天销毁第二次被引起重视是在权益证明(PoS)中。点点币创始人萨尼·肯为避免工作
量证明机制(PoW)的算力浪费,设计了权益证明的共识方案:当创造一个权益证明的区块
时,矿工需要创建一个“币权”交易,交易会按设定的比例把一些币发送给矿工本身,其原理
与比特币的区块产出25个新币相似,不同的是其难度与交易输入的“币天”成反比,而与哈希
计算力无关。由于权益证明的哈希运算只是基于时间与已知数据,因此无法通过改进芯片性
能来加快其运算速度。每一秒钟,每个点点币交易输出都有一定概率产生与其币天成正比的
工作量 [12]。显然,在权益证明中引入币天的初衷是防止矿工重复使用自己的币,因为如果
挖矿难度仅与矿工的权益(拥有的币)相关,那么,每个币都可以成为“模拟矿机”,那些拥
有大量币的人躺着就能挣钱(挖矿),持币较少的用户则只能喝西北风,而这正是权益证明
饱受诟病的原因。但若挖矿难度是币天的函数,虽然这种“模拟矿机”的算力会随着时间累积
而线性增长,但每发现一个新的区块其算力就随币天的销毁而归零,故币天可以保障权益证
明机制中所有挖矿者的公平性。
以上两个应用实例虽然解决的是不同的问题,但本质上都是利用币天销毁在交易过程中
不可逆的特性,使得用户不能在两个账户间反复利用同一笔钱获得某种回报。在市场中,大
户不能利用同一笔比特币制造大量币天销毁虚构币的流动,在PoS挖矿中,用户不能利用同
一笔点点币反复挖得区块中的新币。相应地,如果把币天销毁引入交易的信用评价呢?如果
说币天销毁在市场预测与权益证明中的应用是小试牛刀的话,那么,它在信用评价中的作用
则是锋芒毕露了。让我们看看为什么刷客与差评师们在区块链的信用体系中会混不下去。如果规定把币天销毁作为信用评价因子,在一次交易中,销毁的币天越多,则信用评价
的权重越高。当刷客试图给用两个账户反复交易而刷好评时,第一次交易的评价是有效的,但历史上累积的币天在交易完成之时便已销毁,当进行第二笔交易时,由于发生在第一次交
易后不久,币天积累非常小。相应地,对信用评价的贡献微乎其微,其后所有交易的币天销
毁之和同样也非常小,用户利用同一笔钱反复给自己刷好评,不管进行多少次,其最终效果
与第一笔交易所带来的信用评价几乎一样。同样,当差评师试图通过大量小额交易给用户以
恶意差评时,由于信用评价正比于币天销毁,交易的额度太小,同样也几乎不能对用户的信
用产生影响。
也许在不远的将来,在淘宝、京东等电商平台泛滥成灾的刷客与差评师将会失业。需要
指出的是,人们过去总是把信用当作一个道德问题,试图从道德层面约束交易行为。淘宝极
其复杂的信用体系试图区分真实的交易行为与作弊交易行为,并通过大数据分析,结合用户
的社会关系、职业、收入甚至公共事业缴费单,评价一个人的信用高低。然而在区块链的信
用评价中,信用其实是一个数学问题。在刚才的例子中我们看到,用户的交易行为不再被区
分为作弊交易与真实交易,而对所有的交易行为一视同仁,通过数学赋予交易以成本(币天
销毁),便可以使信用评价结果准确地反映用户的真实信用。作弊是允许的,不存在一个中
心化权威可以跳出来宣布冻结你的账户,但即使你作弊,也不会对任何人的信用产生影响。
(五)交易的热力学第二定律
目前第三方支付都把交易处理成等价交易,在一次交易中,一方的支出等于另一方的收
入(式1-1)。这本身并没有错,只是还不够。在交易的过程中,还需要引入时间之矢,用于
区分一笔从A账户到B账户的交易与B账户到A账户的交易,虽然金额同样为m,但两个过程
中销毁的币天不一样。
等价交易是个等式,而信用评价是个不等式。在交易的过程中,既包含交易金额的转
移,又包含交易双方相互的评价。如果说等价交易就像是交易的热力学第一定律(式1-2),那么基于币天销毁的信用评价就好比发现了交易的热力学第二定律(式1-3)。热力学第二定律讲的是在孤立系统内的不可逆过程,系统的熵总是增加的,也叫作熵增
加原理。这一原理的克劳修斯表述是,不可能把热量从低温物体传向高温物体而不引起其他
变化。相似地,我们可以得到热力学第二定律的交易式表述:在交易过程中,系统的币天总
是销毁的,不可能在一次交易中不销毁任何币天。
币天销毁的本质就是时间之矢。正如特罗布里恩德群岛的居民们规定了库拉交易的空间
方向,区块链上的交易则是用币天销毁标记了交易的时间方向。等价交易把交易理解为标
量,信用评价却把交易理解为矢量,等价交易加上信用评价,这才是交易的全部。
于是,奇怪的库拉交易行为也可以进行解释了。原来,岛民们并不是在做普通的等价交
易,而是在从事一个类似于信用评价的交易。一个人的交易伙伴、交易次数的多少决定了他
的信用高低,这确实符合信用的逻辑。信用也不取决于交易信物的价值,占有库拉并不能提
升个人财富,相反,还可能损害个人信用,交易信物的价值很小,交易行为本身才有价值,库拉只有在流动中才能展现一个人的信用。那么,岛民们不远万里地与库拉伙伴们交易,也
完全合乎他们的利益。虽说在院子里晒红薯堆的行为看起来简直“蠢萌蠢萌”,但他们在交易
库拉时却是不折不扣的精明人。库拉交易确实不是等价交易,在这一点上,马林诺夫斯基是
对的,但在岛民是不是“理性经济人”这个问题上,他着实是错怪古典经济学家了。
最后问题来了:是谁设计了币天?如前所述,在区块链中币天并不是必须存在的字段,它可有可无。如果区块链是一部机器,那么从这部机器中去掉币天这个零件,丝毫不影响整
部机器的运行。但事实上,从创世区块以来,币天就已经存在了。中本聪为什么添加币天这
样一个字段,我们只能像Vitalik一样把这个归为碰巧吧。
四、区块链篇
(一)第五次计算范式创新
1970年是比特币的计时元年,比特币区块链的时间戳从1970年1月1日起开始计算秒数。
1970年,纽约清算所建立银行同业支付系统(CHIPS),以电子化的手段代替原来的纸
质支付清算。当时采用的是联机作业方式,通过清算所的交换中心同9家银行的42台终端相
连。
当然1970这个数字巧合并不是中本聪有意为之,区块链以1970作绝对时间的计算起点,是因为UNIX(尤尼斯)操作系统以1970年1月1日作为纪元时间,很多编程语言起源于UNIX
系统,同时也在比特币代码中留下了历史的痕迹。20世纪70年代,采用UNIX操作系统的大型机大行于世,所以银行清算中心也因大型机的面世而步入电子化时代。这与其说是巧合,不如说是偶然中的必然。
分析现代社会进化过程的一种方法是观察计算范式,我们看到每隔10年就会有一次新的
范式出现。20世纪70年代是大型机,20世纪80年代是个人电脑,互联网与移动互联网则是最
近的两次范式创新,那么接下来10年呢?基于区块链加密协议的价值互联网很可能就是一种
新的范式(图1-3)。
图1-3 五次计算范式创新
与声名大振的比特币相比,区块链技术一直默默无闻,但关于比特币的误解却一直影响
着公众对区块链的认知,如与“丝绸之路”这样的网络黑市的种种关联,不免让人谈虎色变。
事实上,各国政府部门、金融机构都在探索区块链技术的未来应用场景。它的以下四个特
征,可能会给政府与金融服务带来跨越性创新 [13]。
1.通过加密技术对账
目前,政府和商业机构会把交易的详细信息发送给对方,一旦收到信息,每个机构都会
在自己的账本上更新信息。但现在还没有一种方法可以保证这些信息的准确性。区块链可以
通过分布式共识机制来解决这个问题。例如,通过工作量证明、权益证明等不同共识算法解
决拜占庭将军问题,或通过“证据点”检验数据,账本的参与者就可以就底层数据的状态达成
共识。
2.数据复制
许多机构都有部分或全部数据的拷贝,这极大地降低了错误数据出现的可能性。对于现
在的数据库技术来说,数据复制工作会增加IT(信息技术)系统的成本,并对IT系统的复杂
性提出更高的要求。将数据大量复制的一个好处就是哪怕有一处数据出现错误,其他的数据
还会是准确的。很多机构可以通过对账计算,检验其数据是否准确。
3.访问控制
分布式账本使用私钥和签名管理能够访问账本的权限。这些私钥在特定情况下具有特定
的功能。举例来说,一名监管人员想检查一个机构所有的交易,可能需要一把“观察钥匙”,但这样的钥匙只有被法庭授权后才能具有这样的权限。4.透明性和私密性
因为许多机构都拥有账本的备份,同时也可能验证每份记录的真伪,所以共享账本的透
明性是很高的。因此,监管者或是独立第三方(司法)可以确信数据库的内容没有被篡改。
鉴于此,他们可以公开原本是私密或不可公开的文件信息。在监管报告和欺诈预防方面,共
享账本可以帮助银行等商业机构,甚至可以使民众拥有监督政府履行职责的能力。通过独特
的数字签名技术,可以验证正确的人已经按照正确的规则添加了正确的记录。
(二)无银行间组织的跨行结算
生活中我们经常需要跨行、异地存取款,这会给银行之间带来高昂的结算成本。在没有
银行间清算组织之前,需要解决两家银行之间的通信问题。以图1-4为例,汇丰银行、花旗银
行、渣打银行之间需要专门的通信接口,以满足双向通信的要求。
图1-4 无银行间清算组织的结算
下面,以银行的存付款为例,让我们设想有三个银行:汇丰银行、花旗银行、渣打银
行;两个用户:用户A和用户B。每一个银行都有独立的信息系统,来核算自己的收支情况。
汇丰银行的信息系统记录自己的客户的账户收支,花旗银行的信息系统记录自己的客户的账
户收支,以此类推(图1-5)。
图1-5 银行各自记录账户收支的信息模型
显而易见,我们可以发现两个问题。
第一,记录的重复性。看看银行的记账方式,汇丰银行的系统记录着“花旗银行欠汇丰
银行100万欧元”,而花旗银行的系统也记录这个事务。也就是说,同样的事务被两个独立研
发的系统记录了两次。而在其他领域,这种重复更加庞大也更加昂贵。
第二,记录者风险。看看用户A在汇丰银行和渣打银行有存款,而他在花旗银行是处于
透支状态。也就是说,汇丰银行和渣打银行欠用户A钱,那么是谁记录这个欠钱的事务呢?
汇丰银行和渣打银行自身!用户A不得不相信这两家银行会妥善处理自己放在银行的钱,银
行会保持所有记录的准确性。我们习惯地将这种情况视为理所当然,但总感觉哪里不对劲
吧。毕竟塞浦路斯银行危机这样的事就发生在不久前,如果有一天,你拿张祖传的100万美元存单,银行说上面只有1000元……
因此我们看到了两个有趣的现象:存款方不得不相信银行会妥善保管存款,并准确记录
账户信息。而银行自己也不得不花费大量的时间和金钱来建立一套系统,以相信自己可以妥
善保管用户的钱并保持账户信息的准确性。然后同业银行之间会花费更多的时间和金钱,互
相检查,以保证它们的系统可以达成一致。
即便是在简单的模型里面,也至少有7处需要对账(图1-6)。银行里的“事务”通常最少
要由两个不同的实体记录,并且需要昂贵的重复确认过程来保证各方的记录是一致的。
图1-6 对账的简单模型
在没有清算系统之前,同业银行之间的来往增多以后,会快速增加银行之间的清算网络
和成本。这还只是三家银行的简单模型,通信网络就增加到6条,当银行越来越多的时候,这种点对点的通信变得越来越复杂,每新增一家银行,要做之前银行都要做的重复性工作,成本非常高昂。
如果一家银行与业内的1000家银行之间建立清算链接,该银行需要建设1998条通信链
路。类似于足球比赛中主客场之间比赛,20支球队之间的联赛,每支球队需要参加38场比
赛,30支球队的联赛每支球队需要踢58场比赛。
上述例子套在保险业和金融衍生品系统也是完全合适的。事实上对后者而言,这个模型
带来的问题会更加严重,因为我们不仅仅需要确认谁和谁做了什么样的交易,还要确认他们
以及他们的系统都同意交易带来的结果——他们一定要在商业逻辑上达成一致。
想一想在金融领域有多少几乎一样的系统存在,每一个都几乎无差别的运行,制造更加
几乎无差别的结果,这些结果不得不以昂贵的方式检查和解决,花费是十分巨大的。
(三)中心化的共享式总账
如果每一个银行都运行自己的系统,是如此昂贵和复杂,并且不可避免地带有局限性,不得不在与其他系统重叠的部分反复检查以互相匹配,那为什么不直接让大家都使用,由大
家都相信的某权威运行的一份统一单独的总账(如图1-7)?图1-7 中心化共享总账的对账模型
图1-7 左边的5张分开的表格合并后,可以完全等价地写成右边单一的表格,同样从右边
的表格也很容易复原出左边的5张表格,唯一的不同是右边的表多一列。这样我们就可以用
一张表记录一切,并且得到与原来的方案相同的结果。每个银行都可以毫不费力地从这个总
账本中找出与自己相关的部分。
那么必须出现一个网络来保管右边这统一的表格,而且它能够接入所有的银行。新的银
行只需接入这个网络,就可以和其他所有银行进行通信,清算所和银行间组织就这样应运而
生。
(四)有银行间组织的跨行结算
说起美国银行业清算系统的由来,还有一段趣闻。在两百多年前,两个银行职员的偶遇
擦出了债务交换的火花,成为现代银行间清算系统的雏形。那天,两个不同银行的职员在收
账的路途中小憩,碰巧走进了同一家咖啡店。闲聊中,得知相互都要去对方那里取送票据,于是灵机一动,干脆在咖啡店进行交换算了,这样就可以省掉去对方营业地的旅途劳顿。从
那以后,喝咖啡成了他们的正差,交换票据成了副业。如此滋润的事自然吸引了其他同行,他们纷纷加入进来,于是这家咖啡店变成了不叫清算所的清算所。
如果说咖啡店票据交换场所尚处于蹒跚学步阶段的话,那么1853年由62家银行在华尔街
14号地下室共同创立的纽约清算所则标志着银行清算所已步入成年。CHIPS(纽约清算所银
行同业支付系统)是全球最大的私营美元资金交换系统,平均每天清算和处理1.5万亿美元的
美国境内和跨境支付业务。
美国不仅拥有全球最发达的银行清算系统,还拥有全球最发达的资本市场清算系统,也
是全球最大的信用卡清算中心。VISA(维萨)和万事达两大国际信用卡组织均为位于美国纽
约的摩根大通银行,同时也是自动清算所的成员,纽约也就成为全球信用卡的发源地和支付
清算中心。
在VISA和万事达等这样的信用卡组织出现之前,跨行结算复杂度高,成本高,速度极
慢。信用卡组织出现后,形成中心清算的模式,所有银行和该中心建立清算接口,所有跨行
之间的交易都汇总到该清算中心。清算组织的出现提升了跨行清算的速度,并降低了清算的
成本(图1-8)。
图1-8 有清算组织的银行间的跨行结算但由于清算中心是中心化的架构,随着加入组织的银行成员增多,给清算中心带来收入
的同时,也加大了工作量。在接入的银行超过一定程度后,再增加银行会员,就会显著增加
清算中心的成本和工作量,从而降低清算速度。例如管理10人团队和管理10000人团队差别
很大。目前,国际上三大信用卡上市公司VISA、万事达、美国运通2015年营业收入合计达到
543亿美元。区块链技术实现分布式记账的结算之后,能为整个银行业节省一大笔费用。
清算、结算、托管和注册服务对于发行、交易和持有证券都会显著增加成本。有大量的
专业代理和交易对手参与到投资者的证券和现金活动,不仅这些服务有特定的收费,还有处
理各种不同系统接口的业务集成和流程的辅助成本。据估算,全球金融行业每年在交易后
(post-trade)成本是650亿~800亿美元。图1-9以T+2交易机制为例,描述了主流证券交易结
算的多层次的复杂交易过程 [14]。
图1-9 美国证券交易的托管结算体系
同样,传统清算中心还面临中心化风险。例如“9·11”事件后,纽约联邦储备银行立刻停
止靠近纽约的新泽西美元支付清算系统的运行,启动灾难备份系统,将美元支付清算系统从
纽约新泽西切换到里士满和达拉斯。虽然在整个切换过程中,支付清算系统既没有中断服
务,也没有丢失数据,但也惊出一身冷汗。如果袭击的不是世贸大楼,而是新泽西的美元支
付清算系统,那么纽约清算中心将立即崩溃。
(五)去中心化的共享式总账
全球共享的账本可能被单一的强力实体控制,还有中心化的系统可能会有系统性的风
险。因此我们可不可以对模型做两种微调?
第一,为什么不大量地复制账本,让每一个银行都保管一份拷贝?这样,单点出现故障
就不会影响总体,系统也会更安全,因为要篡改其中一份拷贝很容易,但要同时改动所有人
的拷贝则很难。同样,每一个银行都有一份总账本拷贝也能使现存金融机构的整合变得更容
易,这也能推动共享式总账的接受度。问题是怎样保证这么多份拷贝实现同步?
第二,为什么不让这个系统的参与者——不仅仅是银行,也许还包括银行的用户——一
起参与进来维持和保护这个系统呢?毕竟,银行和用户都是这个系统的直接利益攸关方,不
用怀疑他们任何一方保护自己的钱与监督对方的动力。任何一方欺骗都会被及时发现并受到
惩罚。因此我们将一个单一权力的实体替换为每一个人都参与系统安全的新模型。如果以上设想成立,账本看起来应该是这样的(图1-10)。
图1-10 银行与用户共同参与的系统模型
在这个模型中,所有的参与方都有一份总账的拷贝,但是只有修改自己部分的权限,因
此它既是可复制的又是分布式的。
如果一个全球化的分享式总账存在风险,那么区块链就是对各方有利的最佳选择。区块
链技术以点对点的方式运行一个分布式共享账本,参与者通过非对称加密的公私钥对执行交
易,这显著降低了交易结算的复杂性和交易后的服务成本。
区块链几乎不存在单点故障,数据存储在全球数以万计的节点之上,分布式网络每时每
刻都有大量节点频繁地加入或退出,但丝毫不影响全局结构的稳定性。
交易数据以区块的形式被打包到数据库,每一个区块都会由节点进行审查。如果所有节
点达成共识,该区块包含有效交易时就会被添加到数据库中。此外,建立和维护这些节点是
完全自治的,不需要也不允许任何一个控制或监管实体的存在。
由于区块链清算和结算几乎达到同步,系统在点对点网络上运行,每一笔交易都能确保
准确执行,安全透明,每笔交易都能被网络上所有节点核实,而不是依靠一个中心化机构,因此其交易几乎不能被篡改。几乎所有无形的文件或资产都能以编码的形式表达,交易历史
既可以被记录且公开,也可以被自主隐藏。隐私的选择权在于私钥的拥有者用户本人,使参
与者能更自主地管理自己的隐私,监管者更有效地监管资产的流动。
[4] 本章由长铗完成。长铗,巴比特(www.8btc.com)创始人,区块链研究者,科幻作
家,2006~2008年连续三届中国科幻小说最高奖银河奖得主。合著有《比特币——一个真实
而虚幻的金融世界》(中信出版社),合编有《2014~2015中国数字货币行业发展研究报
告》(上海社科院出版社)。巴比特创立于2011年,专注于区块链资讯、数据、社区与区块
链众筹服务,现已发展为国内入口级区块链基础信息与数据服务平台。
[5] Dominic Frisby.搜寻中本聪.巴比特,2014.
[6] 由罗纳德·维斯特、阿迪·萨莫尔和伦纳德·阿德曼三人姓首字母为名的一种加密算
法。
[7] Napster是一款可以在网络中下载自己想要的MP3文件的软件。
[8] 维基解密创始人朱利安·阿桑奇也是密码邮件组成员。[9] 解密学家猜测中本聪可能是英国人,或受到英国文化影响,这不无道理,因为大多
数人可能都会采用damn hard(非常地困难)或者更简单粗暴的语言。
[10] Base58是比特币中使用的一种独特的编码方式,主要用于产生比特币的钱包地址和
私钥。
[11] 马林诺夫斯基.西太平洋的航海者.梁永佳,等,译. 北京:华夏出版社,2002.
[12] Vitalik Buterin.什么是权益证明以及为什么它重要.巴比特,2013.
[13] 英国政府首席科学顾问报告《分布式账本技术:超越区块链》。
[14] DTCC:拥抱颠覆者——探索分布式总账技术潜力,改进交易后场景。第二章
区块链基础 [15]
一、区块链的基本概念
区块链(Blockchain)技术的产生和发展离不开比特币。首先,因为随着比特币的诞
生,区块链技术才得以公布于众;其次,比特币是截至目前区块链技术最成功、最成熟的应
用案例。比特币的概念由中本聪在2008年发表的论文《比特币:一种点对点的电子现金系
统》中首次提出。文中,中本聪将区块链技术作为构建比特币数据结构及交易体系的基础技
术,将比特币打造为一种数字货币和在线支付系统,利用加密技术实现资金转移,而不再依
赖于中央银行。比特币使用公钥地址发送和接收比特币,并进行交易记录,从而实现个人身
份信息的匿名。交易确认的过程则需要用户贡献算力,共同对交易进行共识确认,从而将交
易记录到全网公开账本中。用户可以利用电脑、手机等发送或接收比特币,并选择交易费
用。现有逾百种加密数字货币(未来币、点点币、莱特币、狗狗币等),比特币约占所有加
密数字货币市值的90%。
比特币的区块链毕竟是为比特币体系的设计而定制,因此比特币的区块链技术并不等于
区块链技术。区块链技术应该是可以有更多种形态、更多种体系、更多种用途、更多种规格
的技术,其概念为:区块链是一个去中心化的分布式数据库,该数据库由一串使用密码学方
法产生的数据区块有序链接而成,区块中包含有一定时间内产生的无法被篡改的数据记录信
息。
区块中包含数据记录、当前区块根哈希(Hash)、前一区块根哈希、时间戳以及其他信
息(图2-1)。数据记录的类型可以根据场景决定,比如资产交易记录、资产发行记录、清算
记录、智能合约记录甚至物联网数据记录等。数据记录在存储过程中,通常组织为树形式,比如默克尔树,而区块根哈希实际就是数据记录树的根节点哈希,为根据数据记录树自下而
上逐步通过SHA-256等哈希算法计算得出。时间戳为区块的生成时间。其他信息包括区块签
名信息、随机值等信息,也可根据具体应用场景灵活定义。
图2-1 区块链结构示意图
区块链技术不是一种单一的技术,而是多种技术整合的结果,包括密码学、数学、经济
学、网络科学等。这些技术以特定方式组合在一起,形成了一种新的去中心化数据记录与存储体系,并给存储数据的区块打上时间戳使其形成一个连续的、前后关联的诚实数据记录存
储结构,最终目的是建立一个保证诚实的数据系统,可将其称为能够保证系统诚实的分布式
数据库。在这个系统中,只有系统本身是值得信任的,所以数据记录、存储与更新规则是为
建立人们对区块链系统的信任而设计。诚实意味着系统可以被信任,正是商业活动和应用推
广的前提,所以区块链技术已经被很多领域主流机构看中并非是没有理由的。因为有了区块
链技术,在一个诚信的系统里,可以省去许多烦琐的审查手续,许多因数据缺乏透明度而无
法开展的业务可以开展,甚至社会的自动化程度也将大幅提升。
近年来,包括高盛、摩根大通和纳斯达克等金融机构开始展开对区块链技术的重点研
究。这些机构的金融业务大都具有标准化程度高、连续性强、自动化需求大、业务对信用度
要求高等特点,跟区块链的优势高度契合。同时,在供应链金融中,由于物流、资金流和信
息流的复杂安排会涉及众多单据,因此使用电子商务平台记账会大大节省纸质单据所需要的
时间和成本,然而使用谁的电子商务平台就成为一个大问题。如果使用利益相关各方自建的
电子商务平台,数据的真实性就很容易受到质疑,而自建电子商务平台往往耗资不菲;如果
使用第三方的电子商务平台,第三方的经营稳定性和信息安全性又难以保证,比如因财务、政策、网络攻击等各种情况引起不稳定问题等,沟通协调成本和风险也会大幅增加。区块链
技术的安全性、不可逆、不可篡改性和透明性都已经得到了证明,如果能把供应链金融业务
直接建立在这样已被证明其可靠性的区块链上,将极大地降低安全和信用成本。所以,尽管
目前电子商务平台的使用已经大大节约了成本,但如果能有一个具有公信力的类似区块链公
共信用系统,成本仍有进一步节约的空间。从政府层面来说,这一点也很重要,因为提供值
得大众信任的系统本身就是政府职能的一部分。中国的资本运用效率远低于美国的一个非常
重要的原因就是社会的信用体系不健全、信息不透明、部门协调成本过高,且利益保护现象
严重。如果能从技术上应用区块链,就可以用较低的成本打破这些阻碍,建立一个公开的社
会公共信用系统,整个社会成本都将大幅降低,效率也将大幅提升,还便于监管。透明的数
据不仅将大大降低监管部门的工作量(很大一部分工作量转移给了社会监督,任何异动都很
难逃过众人的眼睛),而且使得监管部门的主要工作转向治理,提升治理人性化和效率。
尽管使用区块链技术所建立的系统本身是诚实可信的,但这并不意味着来自系统以外的
输入信息就是诚实的,更多的时候只是意味着区块链诚实记录并储存了这些外部数据。比如
认证,认证工作往往是在线下完成,即使区块链能够存储文字、图片甚至多媒体信息,也并
不意味着那些信息都是真实的。这只意味着区块链真实记录并存储了这些信息,防止被篡
改,如果发生业务纠纷时可以作为凭证。可能许多人没有注意到这一点,自动化是区块链技
术的一个非常重要的特性,区块链网络实际上就是一个接近于自动化或存在完全自动化可能
性的网络。这一点之所以重要,一方面,是因为自动化是金融机构青睐区块链技术的重要原
因,金融交易需要网络能够自动记录和存储交易数据,也能够允许参与者通过设置条件在网
络上自动进行和完成交易;另一方面,区块链技术在这方面提供的可能性为社会生产效率的大幅提升留下了广阔的空间,也为智能合约等一系列高级应用留下了充足的余地。在理想情
况下,区块链技术最终能够同物联网结合起来。
总体而言,区块链的发展体系可以划分为四个象限(图2-2)。第一象限是比特币区块
链;
第二象限是使用比特币区块链协议,但不使用比特币货币的系统,比如万事达币、彩色
币、合约币,以及采用合并挖矿的域名币等;第三象限是同时使用独立货币和独立区块链的
系统,比如以太坊、瑞波、莱特币和未来币等;第四象限是侧链,采用独立的网络但以比特
币作为底层货币的系统,如BTC Relay等。
图2-2 区块链发展体系四象限
(一)区块链的分类
目前已知的区块链技术应用大致分为三类。
1.公共区块链(Public Block chain):是指全世界任何人都可读取、可发送交易进行有效
性确认,任何人都能参与其共识过程的区块链(共识过程是维持区块链这种分布式数据库一
致性、准确性的关键技术,将在后续章节详细介绍),如图2-3所示。区块链上的数据记录公
开,所有人都可以访问,都可以发出交易请求,并通过验证被写入区块链。共识过程的参与
者通过密码学技术共同维护公共区块链数据的安全、透明、不可篡改。公共区块链的典型应
用包括比特币、以太坊等。
图2-3 公共区块链示意图
公共区块链是完全分布式的区块链,区块链数据公开,用户参与程度高,同时易于产生
网络效应,便于应用推广。然而,系统的运行需要依赖于内建的激励机制。公共区块链上试
图保存的数据越有价值,越要审视其安全性以及安全性带来的交易成本、系统可扩展性问
题。
2.共同体区块链(Consortium Blockchains):又称联盟链,是指参与区块链的节点是事
先选择好的,节点间通常有良好的网络连接等合作关系,区块链上的数据可以是公开的也可
以是内部的,为部分意义上的分布式,可视为“部分去中心化”。如图2-4所示为共同体区块链示意图。比如有若干家金融机构之间建立了某个共同体区块链,每个机构都运行着一个节
点,而且为了使每个区块生效需要获得至少其中10个机构的确认。区块链可以允许每个机构
可读取,或者只受限于共识验证参与者,或走混合型路线,例如区块的根哈希及应用程序接
口对外公开,允许外界用来进行区块链数据和区块链状态信息查询等。其典型应用包括超级
账本(Hy perledger)、区块链联盟R3CEV等。
图2-4 共同体区块链示意图
共同体区块链的参与节点间的连接状态较好、验证效率较高,只需较低的成本即可维持
运行,提供高速交易处理的同时降低交易费用,有很好的扩展性,数据可以保持一定的隐私
性。但是这也意味着在共识达成的前提下,参与节点可以一起篡改数据。
3.私有区块链(Private Block chain):参与的节点只有有限的范围,比如特定机构的自
身用户等,数据的访问及使用有严格的权限管理,如图2-5所示为私有区块链示意图。完全私
有的区块链中写入权限仅在参与者手里,读取权限可以对外开放,也可以进行任意程度的限
制。相关的应用囊括数据库管理、数据库审计甚至公司管理,尽管在有些情况下希望私有区
块链可以具有公共的可审计性,但在更多的情况下,没有公共的可读性。由于是私有用户说
了算,里面的数据没有无法篡改的特性,对于第三方的保障力度大大降低。因此,目前很多
私有区块链会通过依附在比特币等已有区块链的方式存在,定期将系统快照数据记录到比特
币等系统中。其典型应用如Eris Industries。
图2-5 私有区块链示意图
私有区块链可以带来规则的改变。如果需要的话,运行着私有区块链的机构可以很容易
地修改区块链的规则、回滚交易。这一点似乎略有违背区块链的本质,但是却适用于一些特
殊场景需求。由于私有区块链验证者是内部公开的,所以并不存在部分验证节点共谋进行
51%攻击的风险。私有区块链交易成本更低。交易只需被几个受信的高算力节点验证即可,而不是需要数万个节点的确认,因此交易成本会低。但从长远来看,随着区块链技术的进
步,公共区块链的成本将可能降低1~2个数量级,大致与高效的私有区块链系统类似。私有
区块链节点间连接情况好、故障可以迅速通过人工干预来修复,从而提升交易速度并可以更
好地保护隐私。
公共区块链、共同体区块链和私有区块链各有优势。公共区块链很难实现得很完美,共同体区块链、私有区块链需要找到实际迫切需求的应用需求和场景。至于具体选择哪套方案
取决于具体需求,有时使用公共区块链会更好,但有时又需要一定的私有控制,适用于使用
共同体区块链或私有区块链。
(二)区块链的特征
1.去中心化
去中心化是区块链最基本的特征,意味着区块链不再依赖于中央处理节点,实现了数据
的分布式记录、存储和更新。由于使用分布式存储和算力,不存在中心化的硬件或管理机
构,全网节点的权利和义务均等,系统中的数据本质是由全网节点共同维护的。由于每个区
块链节点都必须遵循同一规则,而该规则基于密码算法而非信用,同时每次数据更新需要网
络内其他用户的批准,所以不需要一套第三方中介结构或信任机构背书。在传统的中心化网
络中,对一个中心节点实行攻击即可破坏整个系统,而在一个去中心化的区块链网络中,攻
击单个节点无法控制或破坏整个网络,掌握网内超过51%的节点只是获得控制权的开始而
已。
2.透明性
区块链系统的数据记录对全网节点是透明的,数据记录的更新操作对全网节点也是透明
的,这是区块链系统值得信任的基础。由于区块链系统使用开源的程序、开放的规则和高参
与度,区块链数据记录和运行规则可以被全网节点审查、追溯,具有很高的透明度。
3.开放性
区块链系统是开放的,除了数据直接相关各方的私有信息被加密外,区块链的数据对所
有人公开(具有特殊权限要求的区块链系统除外)。任何人或参与节点都可以通过公开的接
口查询区块链数据记录或者开发相关应用,因此整个系统信息高度透明。
4.自治性
区块链采用基于协商一致的规范和协议,使整个系统中的所有节点能够在去信任的环境
自由安全地交换数据、记录数据、更新数据,把对个人或机构的信任改成对体系的信任,任
何人为的干预都将不起作用。
5.信息不可篡改
区块链系统的信息一旦经过验证并添加至区块链后,就会得到永久存储,无法更改(具
备特殊更改需求的私有区块链等系统除外)。除非能够同时控制系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。
6.匿名性
区块链技术解决了节点间信任的问题,因此数据交换甚至交易均可在匿名的情况下进
行。由于节点之间的数据交换遵循固定且预知的算法,因而其数据交互是无须信任的,可以
基于地址而非个人身份进行,因此交易双方无须通过公开身份的方式让对方产生信任。
二、区块链的工作原理
(一)拜占庭将军问题
拜占庭将军问题是容错计算中的一个老问题,由莱斯利·兰伯特(Leslie Lamport)等人
在1982年提出。拜占庭帝国是5~15世纪的东罗马帝国,即现在的土耳其。拜占庭城邦拥有
巨大的财富,使它的十个邻邦垂涎已久。但是拜占庭高墙耸立,固若金汤,没有一个单独的
邻邦能够成功入侵。任何单个城邦的入侵行动都会失败,而入侵者的军队也会被歼灭,使其
自身反而容易遭到其他九个城邦的入侵。这十个邻邦之间也互相觊觎对方的财富并经常爆发
战争。拜占庭的防御能力如此之强,十个邻邦中的至少一半同时进攻,才能攻破。也就是
说,如果六个或者更多的邻邦一起进攻,就会成功并获得拜占庭的财富。然而,如果其中有
一个或者更多邻邦发生背叛,答应一起入侵但在其他人进攻的时候又不干了,会导致只有五
支或者更少的军队在同时进攻,那么所有的进攻军队都会被歼灭,并随后被其他邻邦所劫
掠。因此,这是一个由不互相信任的各个邻邦构成的分布式网络,每一方都小心行事,因为
稍有不慎,就会给自己带来灾难。为了获取拜占庭的巨额财富,这些邻邦分散在拜占庭的周
围,依靠士兵相互通信来协商进攻目标及进攻时间。这些邻邦将军想要攻克拜占庭,都面临
着一个困扰,也就是拜占庭将军问题。
邻邦将军不确定他们中是否有叛徒,叛徒可能擅自变更进攻意向或者进攻时间。在
这种状态下,将军们能否找到一种分布式协议进行远程协商,进而赢取拜占庭城堡攻克
战役的胜利呢?这就是拜占庭将军问题。
针对拜占庭将军问题的解决方法包括:口头协议算法、书面协议算法等 [16]。口头协议
算法的核心思想如下:要求每个被发送的消息都能被正确投递,信息接收者知道消息的发送
者身份,知道缺少的消息信息。采用口头协议算法,若叛徒数少于13,则拜占庭将军问题可
解。也就是说,若叛徒数为m,当将军总数n至少为3m+1时,问题可解。然而,口头协议算
法存在明显的缺点,那就是消息不能追根溯源。为解决该问题,提出了书面协议算法。该算法要求签名不可伪造,一旦被篡改即可发现,同时任何人都可以验证签名的可靠性。书面协
议算法也不能完全解决拜占庭将军问题。因为该算法没有考虑信息传输时延、其签名体系难
以实现且签名消息记录的保存难以摆脱中心化机构。
与已有方法相比,区块链技术将是更完美的解决方案。区块链是怎样来解决这个问题的
呢?它为发送信息加入了成本,降低了信息传递的速率,并加入了一个随机数以保证在一段
时间内只有一个矿工可以进行传播。它加入的成本就是“工作量”,区块链矿工必须完成一个
随机哈希算法的计算工作量才能向各城邦传播消息。
当用户向网络输入一笔交易的时候,他们使用内嵌在客户端的标准公钥加密工具为这笔
交易签名,这好比拜占庭将军问题中他们用来签名和验证消息时使用的“印章”。因此,哈希
计算速率的限制,加上公钥加密,使一个不可信网络变成了一个可信的网络,使所有参与者
可以在某些事情上达成一致。拜占庭将军问题的区块链解决方案可以推广到任何在分布式网
络上缺乏信任的领域,比如说域名、投票选举或其他需要分布式协议的地方 [17]。
(二)区块链工作流程
区块链的工作流程主要包括如下步骤(图2-6)。
①发送节点将新的数据记录向全网进行广播。
②接收节点对收到的数据记录信息进行检验,比如记录信息是否合法,通过检验后,数
据记录将被纳入一个区块中。
③ 全网所有接收节点对区块执行共识算法(工作量证明、权益证明等。
④区块通过共识算法过程后被正式纳入区块链中存储,全网节点均表示接受该区块,而
表示接受的方法,就是将该区块的随机散列值视为最新的区块散列值,新区块的制造将以该
区块链为基础进行延长。
图2-6 区块链的工作流程
节点始终都将最长的区块链视为正确的链,并持续以此为基础验证和延长它。如果有两
个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差
别,它们将在先收到的区块基础上进行工作,但也会保留另外一个链条,以防后者变成长的
链条。该僵局的打破需要共识算法的进一步运行,当其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。以上就是
防止区块链分叉的整个过程。
所谓“新的数据记录广播”,实际上不需要抵达全部的节点。只要数据记录信息能够抵达
足够多的节点,那么将很快地被整合进一个区块中。而区块的广播对被丢弃的信息是具有容
错能力的。如果一个节点没有收到某特定区块,那么该节点将会发现自己缺失了某个区块,也就可以提出自己下载该区块的请求。
现在我们都知道了区块链网络里的记账者是节点,节点负责把数据记录记到数据区块
里,为了鼓励节点记账,系统会按照规则随机地对记账的节点进行奖励。那么如何保证不会
有人制造假数据记录或者说如何保证造假数据记录不被通过验证?这就涉及时间戳。这也正
是区块链与众不同的地方。区块链不仅关注数据区块里的内容,也关注数据区块本身,把数
据区块的内容与数据区块本身通过时间戳联系起来。时间戳为什么会出现?这是由区块链的
性质规定的。节点把数据记入了区块,因此一个区块就相当于一页账簿,每笔数据在账簿中
的记录可以自动按时间先后排列,那么账簿的页与页怎么衔接起来?也就是说,这一个区块
与下一个区块的继承关系如何断定就成为问题。于是时间戳就出现了。
时间戳的重要意义在于其使数据区块形成了新的结构。这个新的结构使各个区块通过时
间线有序连接起来,形成了一个区块的链条,因此才称为区块链。区块按时间的先后顺序排
列使账簿的页与页的记录也具有了连续性。通过给数据记录印上时间标签,使每一条数据记
录都具有唯一性,从而使数据记录本身在区块和区块上的哪个位置上发生可以被精确定位且
可回溯,也给其他的校验机制协同发挥作用提供了极大的便利和确定性,使整个区块链网络
能够确定性地验证某条数据记录是否真实。由于区块链网络是公开的,意味着系统知道过去
发生的所有数据记录,而任何新的数据记录都继承于过去的数据记录,因为过去的数据记录
是真实的,而且链条的各个区块记录由时间戳连接起来使之环环相扣,所以如果想要制造一
个假的数据记录,就必须在区块链上修改过去的所有数据记录。尽管在挖矿的过程中,形成
了多个链条,但因为最长的那个被诚实的节点所控制,所以想要修改过去的数据记录,首先
就要从头构造出一个长度比之前最长的那个还要长的链条,在这个新的链条超过原来的那个
链条后,才能制造双重支付的虚假数据。然而随着时间推移,制造新链条的难度和成本都是
呈指数级上升的,而且随着链条越来越长,其难度也变得越来越大,成本也就越来越高。同
时,因为去中心化的设置,区块链的各个核心客户端同时又是服务器,保存了区块链网络的
完整数据,因此使对区块链网络的攻击很难像对传统的中央处理节点那样有效,一般情况下
很难对区块链网络构成重大冲击。最终,区块链网络成为一个难以攻破的、公开的、不可篡
改数据记录和制造虚假数据的诚实可信系统。
区块链保证数据安全、不可篡改以及透明性的关键技术包括两个方面:一是数据加密签
名机制;二是共识算法。在数据加密签名机制中,首先,要有一个私钥,私钥是证明个人所有权的关键,比如证明某人有权从一个特定的钱包消费数字货币,是通过数字签名来实现
的。其次,要使用哈希(Hash)算法。哈希散列是密码学里的经典技术,把任意长度的输入
通过哈希算法计算,变换成固定长度的由字母和数字组成的输出,具有不可逆性。共识算法
是区块链中节点保持区块数据一致、准确的基础,现有的主流共识算法包括工作量证明
(PoW)、权益证明(PoS)、瑞波共识协议(RCP)等。以PoW为例,是指通过消耗节点
算力形成新的区块,是节点利用自身的计算机硬件为网络做数学计算进行交易确认和提高安
全性的过程。交易支持者(矿工)在电脑上运行比特币软件不断计算软件提供的复杂的密码
学问题来保证交易的进行。作为对他们服务的奖励,矿工可以得到他们所确认的交易中包含
的手续费,以及新产生的比特币。
三、区块链共识机制
区块链要成为一个难以攻破的、公开的、不可篡改数据记录的去中心化诚实可信系统,需要在尽可能短的时间内做到分布式数据记录的安全、明确及不可逆,提供一个最坚实且去
中心化的系统。在实践中,该流程分为两个方面:一是选择一个独特的节点来产生一个区
块;二是使分布式数据记录不可逆。实现上述流程的技术核心就是:共识机制。共识机制是
区块链节点就区块信息达成全网一致共识的机制,可以保证最新区块被准确添加至区块链、节点存储的区块链信息一致不分叉甚至可以抵御恶意攻击。
当前主流的共识机制包括:工作量证明、权益证明、工作量证明与权益证明混合
(PoS+PoW)、股份授权证明、瑞波共识协议等。
(一)工作量证明
工作量证明(Proof of Work),顾名思义,即指工作量的证明。PoW机制的基本步骤如
下:①节点监听全网数据记录,通过基本合法性验证的数据记录将进行暂存;②节点消耗自
身算力尝试不同的随机数,进行指定哈希计算,并不断重复该过程直至找到合理的随机数;
③找到合理的随机数后,生成区块信息,首先输入区块头信息,然后是数据记录信息;④接
单对外部广播出新产生的区块,其他节点验证通过后,连接至区块链中,主链高度加一,然
后所有节点切换至新区块后面继续进行工作量证明和区块生产。
PoW叫工作量证明体现在步骤②中,节点需要不断消耗算力工作,进行哈希计算,以找
到期望的随机数。以比特币区块链为例,通过PoW机制维护区块链的整体运行及其安全性。
验证节点通过随机的散列运算,争夺比特币区块链的记账权,防止欺诈交易,避免“双重支
付”,这一过程需要消耗电力、算力来完成。因此,验证节点也成为“矿工”,随机数计算查
找过程称为“挖矿”。每一个比特币区块链中的区块都包含着一个由无意义数据构成的短字符串(称为随机数),找到一个合适的随机数唯一已知的方法是不停地随机试探直到搜索到一
个有效的数。比特币的PoW中,平均每10分钟有一个节点找到一个区块。如果两个节点在同
一个时间找到区块,那么网络将根据后续节点和区块生成情况来确定哪个区块构建最终区块
链。一般情况下,需要6个区块的生成时间进行确认,因为一般交易在6个区块(约1个小
时)后被认为是安全确认且不可逆的。其工作量主要体现在:一个符合要求的区块随机数由
N个前导零构成,零的个数取决于网络的难度值。要得到合理的随机数需要经过大量尝试计
算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的随机数值,说明该
节点确实经过了大量的尝试计算。当然,这并不能得出计算次数的绝对值,因为寻找合理随
机数值是一个概率事件。工作量证明机制看似很神秘,其实在社会中的应用非常广泛。例
如,毕业证、学位证、律师证等证书就是工作证明,拥有证书即表明在过去付出了努力。挖
矿为整个系统的运转提供原动力,挖矿有三个重要功能:一是发行新的货币;二是维系系统
的支付功能;三是通过算力保障系统安全。首先,挖矿消耗资源将黄金注入流通经济,比特
币通过“挖矿”完成相同的事情,只不过消耗的是CPU时间与电力。其次,挖矿用于产量调
节,区块的产量为大约每两周2016个,即每10分钟一块。第三,通过算力保障系统安全。算
力攻击的概率难度呈指数上升(泊松分布),每个区块都必须指向前一个区块,否则无法验
证通过。追根溯源便是高度为零的创世区块。PoW机制存在两方面明显的缺陷。一是算力的
消耗与浪费。在PoW中,尽管区块链节点是用来帮区块链进行分布式数据记录的,但是它们
实际所做的大部分工作是寻找正确的随机数而与数据记录无关。用来寻找随机数的能量和资
源将永远地消失,这显然是一种浪费。二是算力集中化凸显。PoW机制自然地导致了算力集
中问题。由于作为一个普通的个体或者几十、几百台规模的矿机目前都很难挖到区块了,因
此大家必须联合起来挖矿,就诞生了算力集中的地方——矿池。其中最著名的是比特币
Ghash矿池,它因为数次接近甚至达到了50%比特币的算力,从而引起了比特币社区的广泛
担忧。
(二)权益证明+工作量证明
2012年8月,一个化名Sunny King的极客推出了Peercoin(PPC),采用工作量证明机制
PoW发行新币,采用权益证明机制PoS维护网络安全,即PoW+PoS机制。该机制中,区块被
分成两种形式——PoW区块及PoS区块。在这种新型区块链体系里,区块持有人可以消耗他
的币天获得利息,同时获得为网络产生一个区块和用PoS造币的优先权。PoS的第一次输入被
称为权益核心,需要符合某一哈希目标协议。因此,PoS区块的产生具有随机性,其过程与
PoW相似。但有一个重要的区别在于,PoS随机散列运算是在一个有限制的空间里完成的,而不是PoW那样在无限制的空间里寻找,因此无须大量的能源消耗。权益核心所要符合的随
机散列目标是以在核心中消耗的币天的目标值(币×天),这与PoW是不同的,PoW的每个
节点都具有相同的目标值。因此,核心消耗的币天越多,就越容易符合目标协议。PoS中还
有一种新型的造币过程。PoS区块将根据所消耗的币天产生利息币,设计时设定了每币一年将产生1分利息,以避免将来的通胀。在造币初期时保留了PoW,使最初的造币更加方便。
在区块链中谁是主链的问题是解决分叉的关键。PoS判断主链的标准已经转化为对消耗
币天的判断。每个区块的交易都会将其消耗的币天提交给该区块,以提高该区块的得分。获
得最高消耗币天的区块将被选中为主链。此设计减少了部分对于51%攻击的忧虑,因为在
PoS区块中,要进行51%攻击,首先,要控制数量众多的币天,成本可能要高于获得51%的算
力,这样就提高了攻击的成本;其次,攻击者在攻击网络时,其币天也会消耗,这将使攻击
者阻止交易进入主链的行为变得更加困难。
为抵御分布式拒绝服务攻击,在PoW+PoS机制中,每个区块都必须由其拥有者签名,以
避免受到复制并被攻击者使用。为了抵御攻击者复制产生多个区块进行分布式拒绝服务攻
击,每个节点都会收集其接触到的(核心,时间戳)配对信息。假如一个已接收到的区块包
含与其他之前收到的区块中的配对信息(核心,时间戳)是重复的,会忽略此区块直到后者
被孤立出去。
在PoW+POS机制下,只要持有币的人,不论持有的数量多少,都可以挖到数据块,而
不用采用任何的矿池导致算力集中。同时,由于多采用币天生成区块,而不是算力,降低了
资源消耗,解决了单纯PoW机制在维护网络安全方面先天不足的问题。
(三)权益证明
除了结合PoW使用外,能否单独利用PoS机制进行区块链系统设计运行呢?答案是肯定
的。简单来说,PoS就是一个根据持有货币的量和时间,进行利息发放和区块产生的机制。
在权益证明PoS模式下,有一个名词叫币天。例如,每个币每天产生1币天,比如持有100个
币,总共持有了30天,那么此时币天就为3000。这个时候,如果发现了一个新PoS区块,币
天就会被清空为0。每被清空365币天,将会从区块中获得0.05个币的利息(可理解为年利率
5%)。
PoS的典型应用就是未来币。同其他加密货币一样,未来币体系的总账是建立和储存在
一系列区块里的,也就是区块链中。每个区块链的备份都存放在未来币网络的每个节点里,而且在每个节点上没有加密的每个账户都能够生成区块,只要至少一个新入账户的交易已经
确认了1440次。任何账户只要达到了这个标准就会被视为“激活账户”。在未来币里,每个区
块都包含着255个交易,每个交易都是由包含识别参数的192字节的数据头开始的。一个区块
里的每个交易量都是由128个字节所代表着。总共加在一起就意味着最大的区块大小有32K字
节。每个区块都有一个“生成签名”的参数。激活账户用自己的私钥在原先的区块上签署“生
成签名”。这就产生了一个64字节的签名,之后通过SHA256散列该签名。哈希产生的前八个
字节给出了一个数字,作为一个“hit”。“hit”与目前的目标值相比较,如果计算出的“hit”值要比“目标值”低,那么就可以生成下一个区块了。对于每个活动账户来讲,“目标值”都是与它
自身所确认的余额成比例的。一个持有1000个币的账户得到的目标值是持有20个币账户所得
到目标值的50倍。因此,拥有1000个币的持有者产生的区块数是持有20个币的人产生的50
倍。同时,“目标值”并不是固定的,随着先前区块的时间戳的流逝时刻都在增长。如果在最
初的一秒钟内没有哪个账户的“hit”值是低于“目标值”的,则下一秒钟“目标值”就会翻
倍。“目标值”会连续地翻倍,直到一个活动账户的“hit”值有一个较低的数值。还有一个“基
本目标”值,它以60秒的间隔设定为目标值。正是这个原因,一个区块平均产生的时间会在
60秒。即使在网络上只有很少的激活账户,它们其中的一个最终会产生一个区块因为“目
标”值会变得相当大。通过将你账户的“hit”值与目前的“目标”值相比,你就可以估算出你
的“hit”值还有多久能成功。
当一个激活账户赢得产生区块的权利时,就能将任何可获得的且未确认的交易放入区块
中,并用所有需要的参数来填充该区块。然后,这个区块就会被传播到网络中作为一个区块
链的备选。每一个区块中的负载值、“hit”、产生的账户以及签名都能被网络上接收到它的节
点所确认。每个区块参考之前的区块,区块形成的区块链可以用来追溯和查询网络中素有的
交易历史,所有这些都会追溯到创世源区。上述完整地展示了利用币天进行区块产生和验证
共识的过程,体现了PoS的核心思想。
(四)股份授权证明
PoS机制使用一个确定性算法以随机选择一个股东来产生下一个区块,该算法中,账户
余额决定了节点被选中的可能性。然而,该系统并未使区块链变得越来越安全而不可逆,因
为最终区块链的区块产生权掌握在账户余额最多的少数节点手中。同时,PoS面临的挑战是
如何通过及时而高效的方法达成共识。为达到这个目标,每个持币节点可以将其投票权授予
一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每名代表被分配到一个
时间段生产区块。所有的代表将收到等同于一个平均水平的区块所含交易费的1%作为报酬。
如果一个平均水平的区块含有100股作为交易费,一名代表将获得1股作为报酬,即可大大提
高共识效率。这就是DPoS的核心思想。
网络延迟有可能使某些代表没能及时广播他们的区块,而这将导致区块链分叉。然而,这发生的概率较小,因为制造区块的代表可以与制造前后区块的代表建立直接连接。在DPoS
中,第一个步骤是成为一名代表,必须在网络上注册公钥,然后分配到一个32位的特有标识
符。然后该标识符会被每笔交易数据的“头部”引用。第二个步骤是授权选票。每个钱包有一
个参数设置窗口,在该窗口里用户可以选择一个或更多的代表,并将其分级。一经设定,用
户所做的每笔交易将把选票从“输入代表”转移至“输出代表”。一般情况下,用户不会创建特
别以投票为目的的交易,因为那将耗费他们一笔交易费。但在紧急情况下,某些用户可能觉得通过支付费用这一更积极的方式来改变他们的投票是值得的。每个钱包将显示一个状态指
示器,让用户知道代表的表现如何。如果某代表错过了太多的区块,那么系统将会推荐用户
去换一个新的代表。如果任何代表被发现签发了一个无效的区块,那么所有标准钱包将在每
个钱包进行更多交易前要求选出一个新代表。与PoW系统及其他PoS系统一样,最佳区块链
是最长的有效区块链。在任何时候,一名代表错过签发一个区块的机会,该区块链将比潜在
竞争对手短。只要交易被写入区块后的100个区块中的51%被生产出来了,那么你就可以安全
地认为在主区块链上。也许,在防止区块链分叉所导致的损失方面,最重要的事是在事发后
第一时间得知消息。如果10区块中有超过5个错过生产,那么这意味着你很可能在一条支链
上,因此应该停止所有交易,直到分叉得到解决。以一种及时的方式(少于5分钟)简单地
发现并警示用户网络分叉,是可以最小化潜在损失的非常重要的能力。
(五)瑞波共识协议
瑞波共识协议(Ripple Consensus Protocol,RCP),使一组节点能够基于特殊节点列表
达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由一定比例的该俱
乐部会员投票通过。RCP机制的工作原理如下。
①验证节点接收存储待验证交易。首先,验证节点接收待验证交易,将其存储在本地;
其次,本轮共识过程中新到的交易需要等待,在下次共识时再确认。
②活跃信任节点发送提议:首先,信任节点列表是验证池的一个子集,其信任节点来源
于验证池;其次,参与共识过程的信任节点须处于活跃状态,验证节点与信任节点间存在保
活机制,长期不活跃节点将被从信任节点列表删除;最后,信任节点根据自身掌握的交易双
方额度、交易历史等信息对交易做出判断,并加入到提议中进行发送。
③本验证节点检查收到的提议是否来自信任节点列表中的合法信任节点,如果是,则存
储;如果不是,则丢弃。
④验证节点根据提议确定认可交易列表的步骤如下:首先,令信任节点列表中活跃的信
任节点个数为M(比如5个),本轮中交易认可阈值为N(百分比,比如50%),则每一个超
过M×N个信任节点认可的交易将被本验证节点认可;其次,本验证节点生成认可交易列表。
系统为验证节点设置一个计数器,如果计数器时间已到,本信任节点需要发送自己的认可交
易列表。
⑤账本共识达成的步骤如下:首先,本验证节点仍然在接收来自信任节点列表中信任节
点的提议,并持续更新认可交易列表;其次,验证节点认可列表的生成并不代表最终账本的
形成以及共识的达成,账本共识只有在每笔交易都获得至少超过一定阈值(比如80%)的信任节点列表认可才能达成。如果账本中每笔交易都获得至少超过一定阈值(比如80%)的信
任节点列表认可,则共识达成,交易验证结束,否则继续上述过程。
⑥共识过程结束后,已经形成最新的账本,现将上轮剩余的待确认交易以及新交易纳入
待确认交易列表,开始新一轮共识过程。
除上述机制外,还有恒星共识协议(Stellar Consensus Protocol,SCP)、改进型实用拜
占庭容错机制(Practical By zantine Fault Tolerance,PBFT)和Pool验证池机制等共识机制被
提出,甚至已经应用在区块链系统中,不同共识机制各有其应用场景和优势。
四、区块链面临的问题
目前,区块链技术已经受到众多领域的广泛关注并得到应用,包括托管交易、金融交
易、公共交易、证件、私人记录、留存证明、实物资产、无形资产等。然而,区块链技术在
面临机遇的同时,也面临着不少问题与挑战。
(一)区块链体积过大问题
随着区块链的发展,节点存储的区块链数据体积会越来越大,存储和计算负担将越来越
重。以比特币区块链为例,其完整数据的大小当前已达63.61GB(千兆)(图2-7),用户如
果使用比特币核心客户端进行数据同步的话,可能三天三夜都无法同步完成,并且,区块链
的数据量还在不断地增加。这给比特币核心客户端的运行带来了很大的困难。
图2-7 比特币区块链体积增长趋势
数据来源:区块元blockmeta.com
(二)区块链数据确认时间的问题
目前的区块链系统,尤其是金融区块链系统中,存在数据确认时间较长的问题。以比特
币区块链为例,当前比特币交易的一次确认时间大约需要10分钟(图2-8),6次确认的情况
下,需要等待约1小时。当然,对于信用卡动则2~3天的确认时间来说,比特币已经有了很大
的进步,但距离理想状态仍有较大距离。图2-8 比特币区块生产间隔
数据来源:区块元blockmeta.com。
(三)处理交易频率问题
区块链系统面临交易频率过低的问题。还是以比特币区块链为例,每条交易的平均大小
约为250个字节(Byte),如果区块大小限制在1MB(兆),那么可以容纳的交易数量为
4000条。按照每10分钟产生一个区块的速度计算,每天可以产生144个区块,也就是能容纳
576000条交易,再除以每天的秒数86400,比特币区块链最高每秒处理6.67笔交易。目前,比
特币区块链上每天的实际交易量已经接近系统“瓶颈”(图2-9),如果扩容问题得不到解决,可能造成大量交易的堵塞延迟。
图2-9 比特币区块平均交易数
数据来源:区块元blockmeta.com。
相比之下,Paypal在2013年第三季度的总体交易笔数为7.29亿笔,平均每秒为93.75笔交
易。全球最大的支付卡VISA的官网信息显示,VisaNet(维萨网)在2013年的测试中,实现
了每秒处理47000笔交易。比特币区块链比起支付宝等几大支付网络,从交易处理频率来
看,更像是一个刚出生的婴儿。当然,这也是中本聪早期故意为之的设计。比特币区块大小
被限制在1MB,以此避免“流氓”矿工的恶意行为,对人们造成不良的影响。比特币区块链支
付网络之所以能够成长到如今价值数十亿美元,就在于它的去中心化。
(四)区块链发展受到现行制度的制约
一方面,区块链去中心、自治化的特性淡化了国家监管的概念,对现行体制带来了冲
击。比如,以比特币为代表的数字货币不但对国家货币发行权构成挑战,还影响到货币政策
的传导效果,削弱央行调控经济的能力,导致货币当局对数字货币的发展保持谨慎态度。另
一方面,监管部门对这项新技术也缺乏充分的认识和预期,法律和制度建立可能会滞后,导
致与运用区块链相关的经济活动缺乏必要的制度规范和法律保护,无形中加大了市场主体的
风险。
(五)区块链技术与现有制度的整合成本较大
对于任何创新,现有机构都要保证既能创造经济效益,又要符合监管要求,还要与传统
基础设施相衔接。特别是当部署一个新型基础系统时,耗费的时间、人力、物力成本都非常大,现有传统机构内部遇到的阻力也不小。
当然,问题的存在并不能阻碍区块链的发展步伐,诸如简单支付验证、侧链、闪电网络
协议等技术的提出和深入研究,已经为上述问题的解决提出了思路。
参考资料
[1]http:www.j ianshu.comp5e06fee80460
[2]http:www.zhihu.comquestion27687960answer70057319
[3]http:www.8btc.comon-public-and-private-blockchains
[4]http:www.zhuihun.comdomainnews-20983-1-1.html
[5]http:www.wanhuaj ing.comd342166
[6]http:www.zhihu.comquestion22369364answer21169413
[7]http:8btc.comthread-540-1-1.html
[8]http:8btc.comarticle-1882-1.html
[9]http:www.8btc.comwhat-proof-of-stake-is-and-why-it-matters
[10]http:www.8btc.comfu0powpos http:www.8btc.comnxt-whitepaper
[11]http:coinfeed.netcninformationbitsharesdpos授权股权证明机制白皮书.html
[12]http:www.8btc.comblock chain-scalability
[13]http:toutiao.comi6243674242018181634
[15] 本章由海滨完成。海滨,布比公司技术专家、博士,在区块链技术、网络安全、数字
货币等领域有非常深厚的技术积累。布比公司专注于区块链技术和产品的创新,已经拥有多
项核心技术,开发了高可扩展高性能的区块链基础服务平台,具备快速构建上层应用业务的
能力,满足数千万级用户规模的场景。
[16] 范捷,易乐天,舒继武.拜占庭系统技术研究综述[J].软件学报, 2013(6):12.
[17] 巴比特.比特币与拜占庭将军问题,http:www.8btc.combaizhantingj iangjun.第三章
区块链进阶 [18]
一、简单支付验证(SPV)
简单支付验证(Simplified Payment Verification,简称SPV)是一种无须维护完整的区块
链信息,只需要保存所有的区块头部信息即可进行支付验证的技术。该技术可以大大节省区
块链支付验证用户的存储空间,减轻用户存储负担,降低区块链未来交易量剧增而给用户带
来的压力。以比特币系统为例,节点只需保存所有区块头信息,即可进行交易支付验证。节
点虽然不能独立验证交易,但能够从区块链其他节点获取交易验证的必要信息,从而完成交
易支付验证,同时还可以得到整个区块链网络对交易的确认数。
要理解SPV的概念,首先需要理解如下两类概念的区别。
一是SPV与轻钱包(或瘦客户端)的区别。轻钱包指的是节点本地只保存与其自身相关
的交易数据(尤其是可支配交易数据),但并不保存完整区块链信息的技术。SPV的目标是
验证某个支付是否真实存在,并得到了多少个确认。比如爱丽丝(Alice)收到来自鲍伯
(Bob)的一个通知,鲍伯声称已经从其账户中汇款一定数额的钱给了爱丽丝。如何快速验
证该支付的真实性,是SPV的工作目标。轻钱包或瘦客户端的目标不仅是支付验证,而且是
用于管理节点自身的资产收入、支付等信息。比如爱丽丝使用轻钱包或瘦客户端管理自身在
区块链的收入信息、支出信息,在本地只保存与爱丽丝自身相关的交易数据,尤其是可支配
交易数据。轻钱包与SPV的最大区别是,轻钱包节点仍需下载每个新区块的全部数据并进行
解析,获取并本地存储与自身相关的交易数据,只是无须在本地保存全部数据而已。而SPV
节点不需要下载新区块的全部数据,只需要保存区块头部信息即可。虽然轻钱包或瘦客户端
中部分借鉴了SPV的理念,但和SPV是完全不同的。
二是区块链支付验证与区块链交易验证的区别。SPV指的是区块链支付验证,而不是区
块链交易验证。这两种验证方式存在很大的区别。区块链交易验证的过程比较复杂,包括账
户余额验证、双重支付判断等,通常由保存区块链完整信息的区块链验证节点来完成。而支
付验证的过程比较简单,只是判断该笔支付交易是否已经得到了区块链节点共识验证,并得
到了多少的确认数即可。还是以比特币系统为例,用户爱丽丝收到来自鲍伯的通知,鲍伯声
称已经从其账户中汇款一定数额的钱给爱丽丝。爱丽丝进行交易验证的过程如下:首先,爱
丽丝遍历完整的区块链账本,在区块链账本的交易中保存了鲍伯的历史交易信息(包括鲍伯
的汇款账户、鲍伯的签名、历史收款人的地址以及汇款金额信息等),查询鲍伯的账户,就
可以判断鲍伯提供的账户是否有足够的余额,如果余额不足则交易验证失败;其次,爱丽丝要根据区块链账本判断鲍伯是否已经支出了这个账户上的钱给别人,即是否存在双重支付问
题,如果存在则交易验证失败;最后,判断鲍伯是否拥有其提供账户的支配权,如果判断失
败则交易验证失败。而如果爱丽丝只是进行支付验证,则过程简单得多:通过SPV,爱丽丝
可以进行支付快速验证,即检查此项支付交易是否已经被收录存储于区块链中,并得到了多
少个确认数,就可以判断支付验证的合法性。详细的技术原理如下。
(一)SPV的技术原理
在区块链中,区块信息主要包括区块大小、区块头、交易数量和交易信息四部分内容。
其中,区块头大小为固定字节,比如比特币中区块头的大小始终为80字节。区块头中一般包
括如下信息:前一区块(也称父区块)的哈希值、区块中交易默克尔树的根哈希值、时间戳
等。以比特币为例,其区块头的数据结构如表3-1所示。
表3-1 区块头的数据结构
通过区块的哈希值,可以识别出区块链中的对应区块。区块前后有序链接,每一个区块
都可以通过其区块头的“前一区块的哈希值”字段引用前一区块。这样把每个区块均链接到各
自前一区块的哈希值序列就创建了一条一直可以追溯到第一个区块(创世区块)的链条。前
一区块的哈希值,可以确保区块链所记录的交易次序。默克尔树的根哈希值则可以确保收录
到区块中的所有交易的真实性。
区块链节点利用SPV对支付进行验证的工作原理如下:
①计算待验证支付的交易哈希值;
②节点从区块链网络上获取并存储最长链的所有区块头至本地;
③节点从区块链获取待验证支付对应的默克尔树哈希认证路径;
④根据哈希认证路径,计算默克尔树的根哈希值,将计算结果与本地区块头中的默克尔
树的根哈希值进行比较,定位到包含待验证支付的区块;
⑤验证该区块的区块头是否已经包含在已知最长链中,如果包含则证明支付真实有效;
⑥根据该区块头所处的位置,确定该支付已经得到的确认数量。
上述方法可以减轻用户的负担。以比特币为例,无论未来的交易量多大,区块头的大小始终只有80字节,按照每小时6个的区块生成速度,每年产出52560个区块。当只保存区块头
时,每年新增存储需求约为4兆字节,100年后累计的存储需求仅为400兆字节,即使用户使
用的是最低端的设备,正常情况下也完全能够负载。
SPV的工作原理中,最为关键和复杂的是步骤③,节点从区块链获取待验证支付对应的
默克尔树哈希认证路径的过程。例如,一个区块链节点想要知道其钱包中某个比特币地址即
将到达的某笔支付,该节点会在节点间的通信链接上建立起布鲁姆过滤器,限制只接受含有
目标比特币地址的交易。当节点探测到某交易符合布鲁姆过滤器的要求时,将以默克尔区块
消息的形式发送该区块。默克尔区块消息包含区块头和一条连接目标交易与默克尔树根的默
克尔哈希认证路径。默克尔树哈希认证路径是验证待验证支付是否存在于默克尔树的关键条
件,该认证路径由默克尔树所有路径中节点的哈希值共同构成,自下而上进行哈希计算。节
点能够使用该路径找到与该交易相关的区块,进而验证对应区块中该交易的有无。如图3-1所
示为根据交易A、B、C、D、E、F、G、H生成的默克尔树。这是一棵自下而上通过哈希运算
生成的二叉树。叶子节点为交易信息的哈希值,叶子节点两两进行哈希运算得到其父节点,继续此过程,直至生成默克尔树根节点。需要注意的是,如果存在单个叶子节点无法匹配成
对,则用复制的方法构成完整的二叉树,比如图3-2中交易H不存在,则可以将交易G的哈希
值M(G)复制一份替代M(H),从而完成二叉树的生成过程。
图3-1 交易默克尔树结构示意图
图3-2 默克尔树哈希认证路径示意图
假设待验证交易为E,则交易E的默克尔树哈希认证路径为图3-2虚线框所示的M(F)、M(GH)和M(ABCD)。通过该哈希认证路径,即可以通过哈希计算找到一条链接交易E与默克
尔树根的完整路径。
(二)SPV的功能扩展
虽然SPV可以高效地进行支付验证,但对于节点当前状态(账户余额、账户信息甚至合
约状态等)均无法给出证明。SPV能否扩展并更进一步呢?以太坊对SPV的功能进行了扩
展:每一个区块头,并非只包含一棵默克尔树,而是包含了三棵默克尔树,分别对应了三种
对象——默克尔交易树、默克尔收据树和默克尔状态树。其中默克尔收据树和默克尔状态树
是比特币等现有区块链系统没有的。默克尔收据树是由展示每一笔交易影响的数据条构成的默克尔树。而在默克尔状态树中,则保存账户信息、账户余额等信息。三棵默克尔树的功能
分工如下。
①默克尔交易树:保存交易信息,用于验证交易是否真实包含于区块链中。
②默克尔收据树:保存某个地址的历史事件实例,比如一个交易是否成功执行、一个众
筹合约是否完成了目标等。
③默克尔状态树:保存了账户名称、账户余额等信息。
基于上述三棵树,以太坊不仅可以实现SPV的支付验证,而且可以快速验证账户是否存
在、了解账户余额甚至快速判断交易是否执行成功等信息,实现了良好的SPV扩展。
(三)SPV面临的问题
SPV面临的第一个是问题是SPV节点与区块链系统去中心化程度似乎存在一定的矛盾。
随着SPV节点数量的增多,那么区块链参与完整验证的节点数量就会减少。然而,SPV却不
能完全独立构成区块链。由于SPV节点没有存储完整的区块链信息,SPV的实现离不开存储
区块链完整信息的节点或系统的辅助。
SPV面临的第二个问题是交易可锻性攻击 [19]。由于SPV实现中一个关键步骤是根据支
付哈希值定位其在区块中的位置,而该过程可能遭遇交易可锻性攻击。比如比特币系统中,交易可锻性攻击体现在交易ID(账号)可被伪造,而交易ID可被伪造的原因是比特币签名算
法不够完善。以比特币为例,交易可锻性攻击的过程如下:在比特币的交易中,第三方交易
系统会将交易发送方、接受方、交易金额等数据作为一个交易发送到比特币网络中,发送之
前会对这条交易信息进行加密和签名,接着根据生成的签名最终获得一个哈希值,这个哈希
值作为交易ID返回给提现的用户。一次交易请求过后,用户接收到的仅有一个交易ID,根据
这个交易ID可以查看交易是否成功。当交易发送到比特币网络中后,网络中的各个节点会根
据之前生成的签名来验证交易的真实性。问题就出在签名算法上:椭圆曲线数字签名ECDSA
这个算法的一个问题是,修改签名的某个字节能够使签名依然校验成功,这样伪造签名之后
交易依然能够成功进行。由于交易ID是根据签名生成的,而伪造之后的签名会生成一个完全
不同的交易ID,第三方判断到两个ID不同便会确定当前交易失败,而事实上交易已经成功
了。这时如果用户发现交易提示失败,可以再次发起交易,第三方交易系统一看之前交易确
实失败了,那就会再进行一次交易。这时用户的比特币钱包里就会多收到一份比特币,也就
造成了第三方交易平台资金损失。交易的可锻性体现在虽然交易签名被“锻造过”(即修改伪
造过),但最终的交易依然有效。上述攻击对于SPV是有效的,因为在交易可锻性攻击场景
中,伪造的交易和正常的交易都在区块链网络中,如果伪造的交易先被处理,那么攻击就成功。从而,SPV支付在区块链中的位置定位过程可能无法完成或出现错误,最终影响支付验
证的进程和准确性。
有人提出可以通过改进SPV的工作流程来提升攻击防范的有效性,比如不再仅根据哈希
值来判断支付的状态,而是使用双因素或者多因素验证,包括账户余额、支付信息追踪等来
综合判断支付是否真正成功,但这会增加SPV的复杂度。如何更加有效地解决SPV面临的问
题还值得进一步研究。
二、侧链
(一)侧链的起源
侧链(sidechains)实质上不是特指某个区块链,而是指遵守侧链协议的所有区块链,该
词是相对于比特币主链来说的。侧链协议是指可以让比特币安全地从比特币主链转移到其他
区块链,又可以从其他区块链安全地返回比特币主链的一种协议。
显然,只需符合侧链协议,所有现存的区块链,如以太坊、莱特币、暗网币等竞争区块
链都可以成为侧链。元素链(Elements)就是这样一种侧链。所不同的是,它是由
BlockStream公司,即提出侧链协议的公司开发的一个侧链的参考实现。
侧链协议具有重大意义。它意味着比特币不仅可以在比特币区块链上流通,还可以在其
他区块链上流通,其应用范围和应用前景会更加广泛;有创意的人们会研发出各种各样的应
用以侧链协议与比特币主链对接,使得比特币这种基准自由货币的地位更加牢固。
侧链协议的产生有以下几个原因。
1.应对其他区块链的创新威胁
以太坊(Ethereum)区块链、比特股(Bitshares)区块链后来居上,对比特币区块链产
生相当大的威胁。智能合约和各种去中心化应用在以上两个区块链上兴起,受到人们的欢
迎。而基于比特币的应用则因为开发难度大,项目不多。
2.比特币核心开发组不欢迎附生链
比特币区块链也有合约币(Counterparty)、万事达币(Mastercoin)和彩色币
(ColoredCoin)等附生链,但是比特币核心开发组并不欢迎它们,觉得它们降低了比特币区
块链的安全性。他们曾经一度把OP_RETURN的数据区减少到40字节,逼迫合约币开发团队改用其他方式在比特币交易中附带数据。
3.BlockStream商业化考虑
2014年7月以太坊众筹时,获得了价值1.4亿元人民币的比特币,还有20%的以太币,开
发团队获得了巨大的回报。但是比特币核心开发组并没有因为他们的辛勤工作获得可观回
报,因而他们成立了BlockStream,拟实现商业化价值。
基于以上三个原因,提出侧链协议、把比特币转出比特币区块链、另行开发二代区块
链,这样的选择既能保证比特币区块链的安全,又能应对二代币的冲击,还能针对不同应用
场景实现商业化,因而成了BlockStream的必然选择。
(二)侧链协议
侧链协议的目的是实现双向锚定(Two-way Peg),使比特币可以在主链和侧链中互转
(图3-3)。
图3-3 比特币主链与侧链关系图
双向锚定分为以下几个阶段(图3-4)。
1.发送锁定交易,把比特币锁定在主链上
由比特币持有者操作,发送一个特殊交易,把比特币锁定在区块链上。
图3-4 双向锚定示意图
2.等待确认期
确认期的作用是等待锁定交易被更多区块确认,可防止假冒锁定交易和拒绝服务攻击,等待时间是1~2天。
3.在侧链上赎回比特币
确认期结束后,用户在侧链上创建一个交易花掉锁定交易的输出,并且提供一个SPV工作量证明,输出到自己在侧链上的地址中。该交易称为赎回交易,SPV工作量证明是指赎回
交易所在区块的工作量证明。
4.等待一个竞争期
竞争期的作用是防止双重支付。在此期间,①赎回交易不会被打包到区块;②新传输到
侧链的比特币不能使用;③如果有工作量更大的工作证明出现,即该赎回交易包括了比特币
主链更大难度的SPV证明,则上一个赎回交易将被替换。
竞争期结束后,该赎回交易将被打包到区块中,用户可以使用自己的比特币。
从侧链转比特币到主链的过程也是如此。这就是侧链双向锚定协议。
(三)元素链
元素链是BlockStream实现的一个参考侧链,Alpha(阿尔发)版于2015年7月推出。元素
链Alpha旨在演示技术并且提供测试环境,目前还未开发完成。作为一个与比特币测试网络
相对接的侧链,元素链Alpha有可能被其他技术取代。
元素链Alpha是比特币测试链的一个侧链。它依赖可审计的联合签名者来管理传输到侧
链的测试币(参见确定性锚定特性),并且以此来产生签名区块(参见签名区块特性)。这
样做能快速探索侧链实施的可能性,考虑如何使用不同的安全措施。在未来版本中,升级协
议接口以完全支持去中心化的侧链联合挖矿,最终达到完全双向锚定的目标。
元素链所包括的技术如下。
1.私密交易
元素链中最具创新意义的特性莫过于私密交易。私密交易中的金额仅有该交易的参与者
知道(或者参与者指定的人),元素链以密码学算法保证不会多花币。比特币用地址来保证
隐私,同时公开交易让别人验证;元素链在保护个人隐私上更进一步,隐藏了交易金额。金
额隐藏的具体技术见下文。
私密交易最明显的一点是引入了一种新地址类型,称为私密地址。私密地址含了一个盲
化因子,比普通比特币地址更长,这种地址在元素链Alpha版本中是默认地址。
2.隔离见证
Alpha版的交易中,签名从交易中分离出来。此举完全消除了任何已知形式的交易可塑性的威胁,并且允许有效的区块链剪枝。
在比特币中,交易包含转账信息(未花费交易集、地址和金额)和用于证明交易合法性
的签名;对于隔离见证来说,交易ID仅由转账信息生成,区块中包含签名。这样做有如下好
处:
①比特币有一些“正常化交易ID”的建议,隔离见证包含了这些建议。因为正常化交易ID
机制在可塑性的输入后还要重写所依赖的交易,对高层协议如闪电网络来说是必要基础。
②交易ID不覆盖签名,以比BIP62更好的方式,避免了交易可塑性的所有形式,而后可
以安全地使用更大尺寸的多语句智能合同。
③具有更有效提供SPV证明(用于轻钱包)的潜力,因为签名可以从交易中被省略而不
破坏默克尔树结构。节点无须存贮或验证签名,可以把签名从磁盘中删除或无须在网络上传
输它,以大幅度减少区块链存储容量和宽带要求。但在Alpha版本中,证明数据比比特币签
名更占空间,因为还包含了大段的输出金额证明(因为使用了私密交易,隐藏了金额,因而
要使用密码学证明以防止多花)。
3.相对锁定时间
为序列号赋予了新的意义,使已签名交易被确认后,其输入在一段特定时间内保持无
效,目的是支持交易替换功能。
比特币每个交易都有个序列号,初始想法是相比低序列号,最高序列号应该最占优势,矿工应该更喜欢它,但这个想法从未真正实现。在假设矿工利益最大化的前提下,为了使得
交易替换机制得以加强,新增一个操作码CHECKSEQUENCEVERIFY,用于比特币脚本检查
序列号限制。
相对锁定时间与常规锁定时间用途一致,如时间锁定的担保服务等。但所指的“相对”会
使以区块链为媒介的应用更有意思。例如双向锚定阶段可描述为以交易开始的一个相对锁定
时间条件,该交易声明了赎回证据。
4.Schnorr签名验证
元素链未使用ECDSA签名方案,而使用了同一曲线上的Schnorr签名方案。其好处如
下。
①更有效的nn阈值签名。多个Schnorr签名可以被合成一个签名,该签名对公钥的总和
来说是有效的,所以任意大的nn多签名只需用一个合签名就可以完成,同时可以被一个CHECKSIG操作所验证。
②更小的签名容量(64字节,而非71~72字节),没有DER编码问题。潜在支持批量验
证(同时验证32个签名达到最高2倍加速),这需要知道R.y坐标(ECDSA忽略这个参数)和
脚本级别,确保所有签名验证错误导致脚本运行错误(比如所有CHECKSIG操作与
CHECKSIGVERIFY类似),以便提供更强的安全证明。
③能证明没有固有的签名可塑性问题。ECDSA有可塑性问题,并且不知道是否存在其他
形式的可塑性问题。注意,分离证据使得签名可塑性不会导致交易可塑性。
④比ECDSA的签名和验证速度更快一点。
5.新操作码
元素链Alpha版本新增几个新脚本操作码。
①被禁用的操作码。比特币以前支持许多操作码,一些操作码在2010年因为安全考虑被
禁用,需要硬分叉才能重新启用。Alpha版本重新启用了一些被禁用但是安全的操作码,如
字符串连接和字串操作码,整数位移码和几个位操作码。
②DETERMINISTICRANDOM操作码:根据种子在一个范围内产生一个随机数。
③CHECKSIGFROMSTACK操作码:验证堆栈中对消息的签名,而不是验证对交易本身
的签名。
这些新操作码有一些使用场景,包括双花保护债券、彩票、允许1N多签名的默克尔树
结构(N可为成千上万)、概率支付等。
6.金额隐藏技术
以下工作由亚当·拜克首次在Bitcointalk上的帖子《同态值比特币》中提出。
①佩德森的承诺。CT(密码学承诺)的基础密码学工具是佩德森的承诺。
承诺场景让你把一段数据作为私密保存,但是要承诺它,使你以后不能改变该数据。一
个简单的承诺场景用哈希函数构建如下:如果你仅告诉别人承诺,别人没法确定你承诺了什么数据。但你后来揭露了盲化因子和
数据,别人可以运行该哈希函数来验证是否与你之前的承诺相匹配。盲化因子必须存在,否
则别人可以试图猜测数据。如果你的数据比较少而简单,猜测成功的可能性比较大。
佩德森承诺与以上场景中的承诺类似,但是附加一个特性:承诺可以相加,多个承诺的
总和等于数据总和的承诺(盲化因子的集合即盲化因子总和):
换句话说,加法律和交换律适用于承诺。
我们用椭圆曲线点来构建具体的佩德森承诺(读者无须理解椭圆曲线密码学体系,把它
当成黑盒行为来了解就可以了)。通常,ECC公钥由私钥x乘基点G生成。
结果保存为33字节的数组。ECC公钥遵守以前描述过的加法同态性:
(以上特性被BIP32分层确定性钱包用来允许第三方生成新的比特币地址。)
由于佩德森承诺的额外基点(称之H点)生成方法,因而没人知道H对G的离散对数(反
之亦然),即没人知道x,且xG=H。我们使用G哈希来选择H:
这里to_point把输入当成椭圆曲线上某个点的x值,并且计算出y值。给定两个基点我们能构建如下承诺场景:
这里x是私密盲化因子,a是我们要承诺的金额,你可以用加法交换律验证加法同态承
诺场景中的相关关系。
佩德森承诺是信息理论上的隐私,你看到的所有承诺,总能找到一些盲化因子,可以和
任意金额一起匹配该承诺。如果你的盲化因子是真随机,那么拥有无穷计算力的攻击者都不
能分辨你承诺的金额。这种承诺无法被假冒,没法计算出任意其他能被验证的承诺。如果你
做到,这就意味着你能找到两个基点相对于彼此的离散对数,意味着承诺椭圆曲线公钥体系
被破解。
②佩德森承诺应用。
利用该工具,我们替换比特币交易中的8字节金额为32字节佩德森承诺。如果一个交易
的发送人认真选择他们的盲化因子,以便正确相加,然后人们还能通过承诺相加为0来验证该
交易。
以上公式需要明确的交易费用,在实际交易中,这点没有问题。生成承诺和承诺验证非
常简单,不幸的是,如果没有附加的措施这个场景是不安全的。
问题在于该群是循环群。加法要mod P(一个256位的质数,用于定义群的秩),结果大
数的加法会“溢出”,从而像个负数金额,因而当有些输出金额为负数时,承诺加起来为0的
特点依然存在,导致可凭空创造5个比特币。
以上式子可以被解释成“有人花了2个比特币,得到-5个比特币和7个比特币”。为了防止
产生这种情况,交易中有多输出的时候,我们必须证明每个承诺输出金额都在允许范围(如
[0,2~64])内且没有溢出。
我们可以公开金额和盲化因子,以便其他人能检查,但是这样一来就损失了所有 ......
您现在查看是摘要介绍页, 详见PDF附件(1558KB,185页)。





