前一篇关于区块链的零星想法区块链,就当一场大梦罢了在知乎引发了激烈的辩论,其中对区块链是否能去中心化,正反双方都提出了一些有趣的观点。一切的源头不得不谈中本聪的大作比特币:一种点对点的电子现金系统,它的开头就这么写道:
我们非常需要这样一种电子支付系统,它基于密码学原理而不基于信用,使得任何达成一致的双方,能够直接进行支付,从而不需要第三方中介的参与。
也就是说,比特币的核心命题就在于不存在信用中介前提下的交易安全。其实这并不是一个新鲜的想法,早在上个世纪的1994年,号称科技界大法师的凯文·凯利就在他的鸿篇巨制「失控」里预言了去电子货币的出现,然而哪怕P2P技术在文件下载与分享的场景之中早已遍地开花,但是始终没有出现可用的防范交易欺诈风险始的机制,直到中本聪创造性提出了工作量证明的设想。
也许你会认为区块链的去中心化就此奠定,实际上中心化与去中心化的战争才刚刚开始,我更愿意修正一种说法,区块链是去中介化而非去中心化。
举几个例子来说明。
51%攻击
工作量证明设想的精华在于,新产生的比特币用来奖励对区块链打包并且破解随机哈希的节点,那么算力就成为了这场争夺记账权利游戏的关键。
一种典型的交易欺诈行为是,攻击者向没有被密码学直接保护的部分,也就是交易顺序发起攻击。攻击者先与某个卖家完成交易,然后向自己的另一个账户发送等量的比特币,并使得整个网络相信发往自己账户的交易是最早发生的。这时攻击者需要做的便是篡改第一笔交易所产生的区块,强行对区块链进行分叉。因为分叉时更长的链条会被比特币网络认定是诚实的,攻击者需要挖出更多的区块,去追赶并超越现有的分叉。这么做的前提是攻击者的算力资源要比整个网络除它之外的全部算力之和还要多,也就是完成一次51%攻击。以今天(2018-03-02)的数据计算,攻击者需要拥有每秒可执行12,000,000万亿次哈希操作的算力,乍看是一个Misson Impossible。
然而这种风险却是切切实实存在的。我们虚构一个如同漫威宇宙大反派Mandarin一般的科技野心家,只需Mandarin控制了BTC.TOP/BTC.com/AntPool三大公共矿池,就能轻易攫取整个比特币网络超过51%的算力,那么凭借一人之力改变交易顺序也不是什么遥不可及的事情,甚至有人怀疑这已经发生过了。
除了算力,存储的中心化也将影响到区块链分布式的意义。比如以太坊的创始人Vitalik就在其最近的访谈中指出,如果块链的大小发展到100TB,将只有少数的大商家会运行全节点,而常规用户使用SPV节点(Simplified Payment Verification,简化交易验证的轻节点)。这将增加全节点合伙欺诈牟利的风险,而轻节点将没有办法立刻检测到这种欺诈。
智能合约的困境
以太坊在比特币的基础之上率先引入了智能合约的机制,从而把区块链的应用场景扩展到电子货币之外。智能合约相当于一个可以自动执行的代码版信用中介,被部署到账本之上,可以对某些事件提供事先约定的响应。简单理解就是一个去中心化的支付宝,也意味着我们可以通过区块链创建一个个去中心化的淘宝。除了电商,智能合约还将被应用到抵押、保险、证券等原本需要第三方信用中介的场景,以降低未来世界的交易成本。
但是,智能合约并不是万能的。还是以淘宝为例,假如买家通过智能合约买到了假货,但是智能合约本身并无法鉴定货品的真伪,这里仍然需要一个权威的仲裁机构;交易过程中,物流供应商会向淘宝同步货品是否抵达的数据,这也是智能合约无法取代的,这里仍然需要一个高效的物流网络。仲裁机构和物流网络,恰恰都是中心化的。迁移到其他场景,抵押货品价值多少、被保人是否健康、上市公司是否具备资格,都不是去中心化的智能合约能解决的问题。
交易效率与去中心化的悖论
区块链落地的两大难题分别是交易确认延迟和数据吞吐量。比特币大概最少三十分钟后数据才能被确认,以太坊也需要几分钟;比特币一秒钟仅可确认6.6笔交易(比特币的扩容仍然争论不休),而以太坊大概是10-20笔。对比支付每秒处理8万笔交易和几乎毫秒计的确认时间,我们可认为区块链还处在婴儿期,不具备大规模推广的条件。
当然不会是只有我看到了这个问题。区块链大神Dan Larimer就希望通过最新的EOS项目解决区块链的交易确认延迟和数据吞吐量问题,而主要的思路就是POW(工作量证明)向DPOS(委托权益凭证)的进化。DPOS的原理是所有节点通过选举产生21个生产者,而一笔交易只需要15个生产者确认就为不可逆。这大大减少了区块链的交易延迟,并使得整个区块链网络足以支撑每秒钟数百万次的交易,付出的代价就是交易记录被篡改的风险又被提升,因为21个生产者就是区块链里的阿里爸爸。
看起来一切又回到了原点,不是么?