2018年11月6日,中国人民银行发布了《区块链能做什么、不能做什么?》这一论文,全文近两万字,可读性非常高,论文质量也非常高。论文从经济学角度研究了区块链的功能,并对区块链内Token 的使用情况、特征、区块链共识与信任、智能合约、应用方向、安全性等话题进行了讨论。
从2009年比特币诞生到现在已经10年了,对很多行业、很多人产生了很大影响。比特币背后的区块链技术也是被人们熟知,成为了当下的热点。那么问题来了:
区块链能做什么、不能做什么?
相信这也是很多人想问,想了解的!下面带着这个问题,笔者来对这篇论文进行解读,希望对大家有用。
一、引言
区块链最早作为比特币的底层技术由中本聪在2008年提出,比特币是我们常说的第一代区块链技术,但比特币的脚本语言缺乏图灵完备性,使用的UTXO模型难以支持复杂的状态操作。为此,V神2013提出了以太坊(Ethereum),以太坊是一个基于账户模型的区块链系统,脚本语言具有图灵完备性,首次提出智能合约(smart contract)并支持分布式应用(decentralized application简称是DApp)。
2009 年1 月,比特币网络上线标志着区块链应用落地。从那时至今近10年时间里,除了加密货币发行和交易之外,区块链没有得到大规模应用。一个重要原因是物理性能不高,提高区块链物理性能的另一个重要方向是改进共识算法(consensus algorithm)。
解读:区块链发展了10年,区块链除了加密货币和交易之外,因为TPS的原因还没有得到大规模应用。
二、对区块链技术的经济学解释
1 (一)区块链的Token 范式
目前主流区块链系统,不管采取以比特币为代表的UTXO 模型,还是以以太坊为代表的账户模型,也不管脚本语言是否具有图灵完备性或是否支持智能合约,都具有3 个关键特征,可以归纳为“Token 范式”:
1.1 第一,共识算法针对区块链内的Token。
Token 本质上是区块链内定义的状态变量,Token 可以在区块链内不同地址之间转移。转让过程中Token 总量不变。
Token 在区块链内不同地址之间转让时,Token 的状态(指区块链内各地址内有多少Token)更新和交易确认同步发生。因此,Token 被交易时,不会形成传统意义上的结算在途资金或结算风险。
1.2 Token 与智能合约之间有密不可分的联系。
Token 本身是智能合约的体现。比如,以以太坊ERC20 为代表的Token 合约规定Token 的总量、发行规则、转让规则和销毁规则等一系列逻辑。在Token 合约的基础上,可以构建对Token 执行复杂操作的智能合约。
1.3 区块链内的信息与Token 的状态和交易的关系。
按照是否与Token 的状态和交易有关,区块链内的信息分成两类——有关系的和没有关系的,这两类信息在共识算法下有完全不一样的地位。
节点在运行共识算法时,重点检验第一类信息是否符合预先定义的算法规则,第二类信 息作为Token 交易的附加信息写入区块链,节点不会检验这类信息的真实准确性。
特别是,区块链外信息写入区块链内的机制,一般被称为预言机(oracle mechanism)。如果区块链外信息在源头和写入环节不能保证真实准确,写入区块链内只意味着信息不可篡改,没有提升信息的真实准确性。
2(二)区块链内的共识和信任
2.1 共识的界定
目前对区块链共识的讨论,涉及三种不同语境下的共识概念——机器共识、治理共识和市场共识,其中治理共识和市场共识可以称为“人的共识”。很多误解就源于混淆了这三类共识,或者泛化了共识的范围和性质。
第一,机器共识。机器共识属于分布式计算领域的问题,目标是在存在各种差错、恶意攻击以及可能不同步的P2P网络中,并且在没有中央协调的情况下,确保分布式账本在不同网络节点上的信息备份是一致的。
第二,治理共识,指在群体治理中,群体成员发展并同意某一个对群体最有利的决策。比如,比特币社区关于“扩容”和分叉的讨论可以在治理共识框架下理解。
第三,市场共识。Token 参与交易时(不管是不同Token 之间交易,还是Token与区块链外资产或权利交易),就涉及市场共识。市场共识体现在市场交易形成的均衡价格中。
2.2 去信任含义的辨析
去信任源于Token 被交易时,Token 的状态变更和交易确认同步发生这一安排。设想Alice 以比特币向Bob 买入某一货物。Alice 向Bob 支付比特币这一过程无需两人之间有任何了解,也无需受信任的第三方机构,就可以在区块链内有保障地进行。这是去信任的真正含义。但在交易之后,Alice 如何确保Bob会按时向她交付合格的货物?这是很难保证的。
因此,区块链内的去信任环境,不能简单外推到区块链外。一旦脱离Token交易等原生场景,区块链要解决现实中的信任问题,往往需要引入区块链外的可信中心机制予以辅助。
3 (三)智能合约的功能
智能合约是运行在区块链内、主要对Token 进行复杂操作的计算机代码。目前区块链内有限的运行环境,使得这类代码远没达到智能阶段。甚至可以说,目前的智能合约,既不智能,也不是合约。
3.1 产权层面的功能。
A 地址和B 地址可以属于账户或智能合约。地址中的Token 具有产权含义。两个地址之间的Token 转移,就对应着产权变更。
3.2 流程层面的功能
一笔Token 转让要有效,转让发起者必须拥有对A地址中X 数量的Token 的操作权限,并且智能合约的触发条件被满足。智能合约的执行只有“成功”、“失败”两种情形,不存在中间情形。特别是,如果转让发起者不能确保A 地址中的Token数量超过X,智能合约的执行就会失败。
3.3 经济社会层面的功能
- 投票,往某一地址转Token 可以理解为投票;
- 抵押,先将一定数量的Token 转给某一智能合约,约定在未来时点并满足一定条件时,Token 可被返还;
- 冻结和解冻,冻结是将一定数量的Token 用时间锁(time lock)锁定,从而暂时放弃Token 的流动性,到期才解冻。
3.4 智能合约的功能短板不容忽视
- 没有普遍适用的去中心化预言机方案
- 智能合约难以保证区块链内债务履约
-
智能合约难以处理不完全契约
解读:区块链涉及计算机技术和经济学。由于区块链是个新事物,人们对区块链的理解存在很多误解,论文对区块链技术给出经济学解释,并对区块链的共识、信任和智能合约等方面的常见误解进行全面的更正说明,让我们对区块链的相关知识有系统型的认识和了解。