区块链技术简史(一个法律人的学习笔记)

月亮🌛   |     |   3505 次阅读

作者:蔡欣

在世界经济组织(WEF)于2016年8月中旬发布的重磅报告中,给区块链(BlockChain)用了一个看起来洋气高端的名字,DLT(分布式总账技术,Distributed Ledger Technology)。但是笔者作为一个技术爱好者,作为一个习惯于追根溯源的法律人,仍然愿意称之为“区块链”;说到它的技术和历史,仍然要从比特币开始说起。

1、比特币概况

区块链技术的首次也是最著名的应用是比特币(BitCoin),一个在2009年1月初正式上线运行的去中心化数字货币应用,他的创始人叫中本聪,但目前大家并不知道此人的真实身份。比特币不同于现代国家发行的货币,它由分布式网络基于数学计算产生,总量恒定(2100万个,发行规律约为每四年减半),所有交易由全网节点共同记账确保其不可篡改,依靠密码学保障网络安全,账户具有匿名性,软件的代码开源,更新与发展依靠网民社区自治。

2、前比特币时代

虽然区块链技术的开端一般只追溯到2008年中本聪发表的《比特币:一个点对点的电子现金系统》创世论文,但是,区块链技术并非突然横空出世,而只是在前人不断艰难探索的基础上的集大成者。包括:经济学理论,如,哈耶克的《货币的非国家化》,凯恩斯的无客观本位货币与购买力理论,弗里德曼的自动化系统取代中央银行设想;博弈论,特别是2005年诺贝尔经济学奖得主之一的托马斯·谢林的“共同知识(Common Knowledge)”概念;会计学领域,由Ian Grigg在2005年提出的“三重记账法(Triple Entry Accounting)”;在计算机领域,BT和eMule等P2P文件共享与传输技术,伯克利开放式网络计算平台(BONIC)的折叠蛋白质(Folding@home)和寻找外星人(SETI@home)等网格计算项目,原本用于检测垃圾邮件的“可复用工作量证明(RPOW)”方法;密码学方面,非对称椭圆曲线加密算法、哈希散列函数(Hash)、Schnorr数字签名算法、以及Merkle Tree等具体方法的成熟与广泛运用,为比特币区块链的诞生提供了必要条件。此外,最为重要的是各界人士特别是“密码朋克”们从20世纪80年代以来不断的尝试,其中最为有名的包括e-gold(始于1995年,如今却遗憾的早已被传销玩坏了)、早期的Ripple支付和结算网络(始于2004年)、1990年大卫·乔姆(David Chaum)提出的Ecash(注重隐私安全的密码学网络支付系统)、1998年密码学家戴伟(Wei Dai)提出的B-money(被认为是比特币的精神先导)、2005年尼克·萨博(Nick Szabo)提出的Bitgold(非常类似于比特币的系统,但萨博不擅长编程,而后来的中本聪则编程实现了比特币)。

3、比特币热潮

随着系统本身的完善和相关知识不断普及,比特币的知名度从极客圈慢慢向普通人群蔓延。最重要的是,当2010年5月22日,一位程序员用一万个比特币向商家购买了价值25美元的两块披萨之后,比特币拥有了“价值”。之后,便有了更多的比特币支付案例,包括使用比特币进行捐款(如在银行渠道无法使用的情况下,向“维基解密”和斯诺登的捐款)。
由于市场有需求,比特币交易网站、比特币ATM机、比特币信用卡等开始出现,在2013年,塞浦路斯经济危机等全球性事件将比特币的价格在短时间内不断推向高峰,最高时达1200美元。由于有利可图,计算生产比特币也就是俗称“挖矿”的方式从个人电脑CPU过渡到GPU显卡挖矿(因为显卡更擅长做大量的重复性计算),然后有人研发了专业“矿机”,从FPGA到ASCI矿机,从55、40、28到14纳米,工艺细节也在不断改良,还有人建立了专门的“矿场”(在电力相对便宜的西部地区)。
比特币的生产过程就是基于随机数计算出一个区块,如果该区块的哈希值比当前难度值小且与当前难度值最接近,则该区块就会被公认为是链上的下一个区块,由于该区块生产过程中也包含了一段时间内全网的比特币交易,所以“挖矿”也被视为是争抢记账权,而作为记账的奖励,“矿工”将获得网络自动发放的比特币奖励和被打包交易的转账费。
由于全网算力的不断提升,普通的单台矿机已经很难“挖”到比特币,于是出现了“矿池”,通过协议将分散的算力接入一起计算,最后“挖”到的比特币按照贡献大小比例分配,矿池的运营和收益分配方式包括pplns、pps、dgm、slush等。

4、山寨币和竞争币

因为比特币的源代码是公开的,所以当它变得很值钱的时候,就有一些人fork了它的代码,改动几个参数,造出了“山寨币”。山寨币往往成为了不良商人诈骗、传销的工具,山寨币创造者往往通过宣传包装,吸引无知群众购买,然后在较高价格砸盘套现跑路。
当然也有一些fork了比特币代码的人做了有益的技术探索和创新,我们常常称这一类衍生品为“竞争币”:莱特币(LiteCoin)针对比特币挖矿已经被矿机、矿池垄断了算力,试图用scypt算法(内存难度的)代替比特币采用的sha256算法,以抵抗矿机,试图使密码学货币保持去中心化(虽然在一年多之后莱特币矿机依然被发明出来,但莱特币的尝试是值得肯定的,因而市场是有“比特是金、莱特是银”的说法);域名币(NameCoin),针对有人认为比特币“没有用”的质疑,域名币网络提供了分布式域名解析系统,它的专用域名是.bit,该域名管理不是由传统的DNS服务器提供服务,而是分布在区块链上,有利于保障言论自由和隐私(2015年,域名币拓展区块链服务到身份认证领域);质数币(PrimeCoin),针对很多人对比特币挖矿是浪费能源的诟病,质数币将挖矿过程改造为寻找质数(素数),成为BONIC那样的科学计算,而且也让提供算力资源的账户有数字货币的回报;猎人币(HunterCoin)是第一次试图通过玩游戏的方式来挖矿,这个游戏就是猎人在地图上寻找金币,它的目的是通过无法被机器替代的人玩游戏的行为,以此解决比特币“算力垄断”和“没有用”两个问题(但是很可惜,没多久,游戏外挂就被发明了);暗黑币(DarkCoin)将密码学用到极致,混合采用了11种加密算法,试图通过复杂的挖矿算法破解“算力垄断”难题。
有些人认为,是POW(Proof Of Work,工作量证明机制)导致了比特币的一些问题,特别是浪费能源的问题,于是开始尝试POS(Proof of Stake,权益证明机制),未来币(Nextcoin)是最早采用POS机制的数字货币;再后来,点点币(PPCoin)采用了POW与POS相结合的方式,试图使区块链网络兼具节能和安全两种特性。此外,在POS基础上还发展出了DPOS(股份授权证明机制)机制,类似于现实中的议会制度,只能由选举产生的代表节点进行记账。

5、乱象与发展

比特币及其它数字货币在发展过程中,因为涉及到金钱,难免催生出很多的乱象:各种拙劣的、没有技术含量的骗局层出不穷(传销与诈骗);用户的钱包秘钥文件被木马盗走;交易所倒闭(曾经全球最大的比特币交易所MT.GOX于2014年初宣布破产)、跑路(注册地为中国香港的GBL交易所的管理层携款潜逃)、伪造交易记录、挪用用户资金;为了逐利,有人用公有设备挖矿(哈佛大学研究员用超级计算机挖矿、bitcointalk论坛上某地方政府机房承建商咨询如何做一个外表是电脑实际是矿机的方案);交易市场也开发出了杠杆、期货等各种金融新玩法,利用人性挖掘利益;由于比特币的匿名性、全球流动特点,一些网上博彩网站使用比特币作为筹码,也成为了洗钱的渠道(由于比特币其实也具有可追踪溯源的特性,居然也有商家提供“洗币”服务,如很多桩大额被盗的比特币都流往Bitcoin Fog进行混币,近来的Zcash则是一款号称依靠“零知识证明”实现真正隐私保护的数字货币),在臭名昭著的“丝绸之路(SilkRoad)”网站上,曾有大量的比特币用于购买毒品、枪支、信用卡及个人信息等非法物品,由于“丝绸之路”网站采用了“洋葱网络(tor)”和PGP加密,无法被当局管制,直到2013年底,FBI才抓获了其经营者,将该网站关闭(之后还曾一度短暂出现过“SilkRoad2.0”,近来也出现了基于区块链的去中心化交易市场项目,比如ZeroNet)。
固然是利益作祟,才导致比特币的世界乱象重生,但是,也恰是有经济利益驱动,才使比特币技术破解了“拜占庭将军难题”,使得陌生人之间的信任和全网共识成为可能。所以,技术的问题还是要靠技术解决。为了解决资金的安全性问题,布道者提倡大额比特币存自己的节点钱包里,而不是实际上中心化的交易所或“云钱包”中,推荐大额钱包的文件冷备份,普及离线签名技术,因此有了“冷钱包”和“热钱包”之说,进而衍生了“硬件钱包”和“脑钱包”。
比特币作为一款软件,面临最大的挑战,其实也是来自自身的技术方面:2010年8月,有人利用大整数溢出漏洞“挖”出了1844亿个比特币,开发人员迅速升级软件并启动硬分叉,化解了危机;2013年3月,由于0.8版与0.7版共识机制不兼容,导致比特币网络分叉,后经社区在几个小时内协商一致,矿池统一暂时退回0.7版,解决了问题。作为一个市值亿万的网络,每天都在经受着DDos等各种攻击,各路黑客高手无不想破解它,但是近八年来却仅仅只有这两次重大的技术事故,且都能迅速解决,足见区块链网络的安全性。

6、区块链存证

当一部分人把比特币作为自由货币进行发展的同时,另一部分人注意到的则是比特币底层的技术:2009年1月4日,中本聪在创世区块的币基(CoinBase)上留下了一段话:“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”,那是当天泰晤士报的头版文字标题,这段话永久记录在比特币区块链中,除了揶揄当年金融危机中政府的束手无策,也是在宣称,比特币区块链可以证明不可篡改的记录,并且由全网协议的唯一“时间戳(timestamp)”为记录加上了时间维度。
将内容刻在区块的币基上,那是矿工挖矿的特权;在0.9版之前,比特币并没有提供一个正式的用于存储信息的位置,著名的比特币赌博网站“中本聪骰子(Satoshi Dice)”为了证明其公平性,用交易的数额承载信息,具体做法是:将谜底文件的哈希值分割成16个4位十六进制数,分别转化为最多5位的十进制数,将这5位数分别作为输出金额的末尾数字(比特币的计量单位小数点后有8个0,因此每比输出金额不超过0.00100000比特币),构造一笔包含16个输出的交易(输出金额不超过0.016比特币),将收款指向自己的账户,这样实际上只需要花费非常少的矿工费,就可以实现永久的存在性证明效果。(矿工挖矿除了获得固定的网络增发收益,也可获得交易的费用,如果交易发送者支付较多的矿工费,则该笔交易能够获得更快的网络确认,因为矿工在挖矿时更愿意打包矿工费的交易,当然,如果不给交易费,交易也终会被打包确认,只是要等很长的时间);从0.9版开始,比特币专门新增了交易附言位置(OP_RETURN),使得用脚本存证变得非常简单直接,虽然比特币基金会在文档中宣传OP_RETURN并不代表对比特币区块链可以作为分布式数据存储的认可,但是,利用OP_RETURN存储信息的区块链存证应用就此遍地开花。(此外,还有两种存证方法:一种是合约币(Counterparty)和万事达币(MasterCoin)都曾经用过的,运用“多签名公钥空位(OP_CHECKSIGVERIFY)”存证;另一种是在交易广播前将“OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG”中pubKeyHash这里的40个0替换成拟存证的信息。只是在有了OP_RETURN功能之后,这些方法都显得较低效了。)
率先提供存在性证明的服务网站非常直白的就叫“Proof Of Existence”,区块链存证的基本技术门槛并不高,一时间,提供该项服务的企业非常多,而这当中做得最好的,当属“公正通(Factom)”:由于比特币每比交易的OP_RETURN只能存储40(最多80)个字节的数据,所以一般只是把文件的32位哈希值存储到区块链上,只能单向检验文件真伪,并不能逆向还原文件,用户仍需要在本机电脑上妥善保存文件的原件;虽然也可以通过将大文件的hex字串拆分成若干段分别存证,用时再取回组装,但是这样做效率低下,而且成本较高,不是长久之道;Factom在底层锚定比特币OP_RETURN的基础上,构建了也是基于区块链技术的存储层,抓住了行业痛点,使存证产业链变得完整。
有了完整的存证体系,区块链就可以完美应用于电子证据、知识产权、身份验证、婚姻登记、土地登记、食品溯源等领域。Factom曾在政局动荡的洪都拉斯试图用区块链登记土地所有权,中国企业“唯链(vechain)”通过在奢侈品中嵌入可查询区块链记录的NFC芯片进行防伪,MIT(麻省理工学院)在区块链上开发出了学历认证系统,“保全网”运用区块链存证技术双向对接企业和公证机构的需求,阿里巴巴旗下的“蚂蚁金服”正在尝试将区块链用于慈善项目。
除了Factom等现成的方案,如果你想从底层探索一个区块链存证项目,或许还应该了解“星际文件系统(IPFS)”、StorJ、Sia、MainSafe等分布式存储方案。

7、公私钥体系

比特币基于非对称椭圆加密算法,实现了公私钥体系,简单来说,就是通过密钥加密的信息,只有另一个密钥才能解码。公钥和私钥是两把密钥,公钥是公开的密钥(比特币账户可视为公钥,虽然事实上还有更多的计算),私钥是不公开的密钥,公钥由私钥推导而来,但反之不行。
比特币交易的过程是这样的:由私钥对交易内容进行签名,表示我是交易的合法发起人,广播到网络上之后,各节点根据其公钥进行验证,如果验证通过,签名是合法发起人的,则交易予以记录。
在有些场景下,需要证明某人是账户的合法持有人,那么证明的过程如下:使用此人的公钥对一段数据进行加密,进行全网广播,此时,只有通过此人的私钥才能对这一段数据进行解密,也就是说,只有该账户的合法持有人才能看到这段数据的明文。
运用公私钥体系,可以构建高效、可信且安全的应用,比如比特信(BitMessage)是一款用公私钥体系作为运作原理的的点对点加密聊天工具(区块链全网同步能够保障信息高效、可信的送达,只有合法的账户私钥持有者才能查看加密的内容,确保了接收方用户的行迹不被追踪,可保护人们的隐私);OpenBazaar类似于用公私钥体系搭建的“淘宝”;而Twister是一款去中心化的微博应用(除了运用了公私钥体系,这款应用的其它方面也设置非常精妙,用户发布的微博记录在区块链上,但传播力有限,如果想发布向所有用户自动推送的“广告”,则需要提供算力进行“挖矿”)。
公私钥体系也可运用于物联网,区块链技术有助于解决当前物联网技术遇到的一些瓶颈,比如物件的身份认证、物件之间可靠、安全、保密的信息传输。德国的Slock.it正在研制的智能锁项目,就是试图将公私钥体系运用于物联网,以实现对财产物件的去中心化管理。

8、智能资产、智能合约、智能股权

比特币中交易的记账逻辑并非是一方加、一方减,而是通过脚本表达的总账脉络,明明可以很简单的东西,却用了一种叫UTXO(Unspent Transaction Outputs,未花费的交易输出)的体系、用相对复杂的脚本语言来表达,为什么?因为中本聪要告诉人们的是,比特币是“可编程货币”,在其区块链上并不是只能实现简单的加减,而是可以实现复杂的权限管理,公私钥体系并非只是一对一,而是可以演化为复杂的“多签名”验证。这样的思路,加上前面提到的不可篡改的存证、与物联网的对接,尼克·萨博在1997年提出的“智能合约(Smart Contract)”概念就复活了。
人们将传统的互联网称之为“信息互联网”,因为它很容易传输信息,却不方便传导价值,而基于区块链的网络,通过巧妙的密码学安排,可以实现价值的高效传输。在“信息互联网”中,如果要传递价值,原理只是由中心化的服务器进行记账,这样,篡改是相对容易的;而如果使用区块链构建的“价值互联网”,由于信息以分布式全网账本的形式存在,篡改的成本是极高的。
所以,有人想到,既然比特币可以表达人们对数字货币的产权,那么通过区块链技术也可以表达对现实资产的产权,“染色币(Colored Coins)”的想法应运而生:如果某个数字货币对应现实中的产权,那么通过给该数字货币“染色”(用存证的方法),将其产权状态和流转信息标明,以实现对现实中资产的产权表达。
更进一步,区块链不仅仅是静态的,也可以动起来,不只是记录,还能够通过条件进行触发,根据预设的情形进行判断和执行。比如,智能锁程序可以判断发出指令的账户是否合法进而决定是否执行开锁,如果是房子的合法使用人,开锁后才能进入,这就可以形成“智能资产(Smart Asset)”;又比如,两家公司约定,货到后付款,拟写了一个程序放到区块链上,程序会自动判断货是否已到,如果已到,则自动从买方的账户上扣款发往卖方账户,这就能构建出“智能合约”。智能合约具有自治、自足、去中心化三个特征:自治是指一旦启动便不受任何干预,忠实按照既定程序执行;自足是指程序可以自主控制其计算所涉及的资源,比如有权限调配参与者的资金和财产;去中心化是指它不依赖某个单独的服务器,而是由分布式网络的节点共同支持运行。将智能资产和智能合约用于共享经济,就能创造出去中心化的Uber(以色列的创业项目La'zooz就是如此)和区中心化的Airbnb(有消息说,Airbnb已经收购了一支名叫 ChangeCoin的区块链技术团队);运用于电力能源再分配,可以将电力进行P2P共享,形成“智能电网”;运用于促进社交网络信息生产,可以打造智能化的社交媒体平台(如Steem);也可运用于表达和确保法律和政治权利,在公民的数字身份、民主投票选举等领域进行应用(如BitNation、Pax、Ubiquity等项目)。
现实中有有形的资产,也有无形的资产,股权属于无形的资产。当前社会条件下,股权形态和分布越来越复杂,仅仅靠国家强制力保障的权利成本有时会过高,救济并不及时,发生纠纷后走法律程序往往得不偿失,所以,不妨事前做好预防,用区块链上的智能资产来确认股权,用智能合约来表达转让流转、纠纷处理等机制,如此,可实现股权的低成本保护和快速安全的流动。国内的“小蚁(AntShares)”就是一款专注于“智能股权”的产品。在这之前,还有很多的探索者,知名的有比特股(Bitshares,自带交易所功能的数字资产发行平台)、万事达币(MasterCoin,是最早建立在比特币区块链之上的可供运行智能合约的编程平台,现已改名为Omni)、合约币(Counterparty,附生在比特币协议之上的去中心化财务应用)。

9、瓶颈与突围

在Bitpay、Coinbase等团队的努力下,比特币支付生态越来越成熟,越来越多的商家开始接收比特币,其中不乏国际知名的大企业,比如亚马逊、戴尔。但是,无论是作为货币,还是作为技术,比特币都面临着很多的瓶颈。
作为货币,比特币大约每10分钟出一个块,而如果金额较大的话,一般需要6次确认才能将“双重花费”等意外风险降低到一定程度,也就是说,如果普通消费者使用比特币支付,需要等至少十分钟才能行,很明显不适合通常的小额支付。有一些公司做了比特币的云钱包、轻钱包,但其本质却是中心化的服务,并不可靠,也违背了比特币的初衷。而且,区块的大小上限决定了,比特币的并发能力也有限,只有平均不到10笔交易/秒,根本不足以支撑真正的商业应用。针对此,开发人员设计出了“闪电网络(Lightning Network)”和“雷电网络(Raiden Network)”,将“交易”与“结算”分开,日常小额的交易在闪电网络或雷电网络中进行,而在比特币网络中只进行最终的结算,确保速度的同时保障安全。
技术上,比特币非常“不友好”。正常的比特币使用需要同步下载全部历史区块后,才能进行交易,而截止目前,比特币的全部区块已经大到了超过70G,对于一般用户的电脑来说,是很大的负担,并且也成为了将比特币应用往移动设备移植的最大障碍。我们固然可以用在0.12版之后推出的prune功能让区块瘦身(瘦身之后区块链占用空间将可以不到1G),但是,对于技术人员来说却不适用,因为只有全节点环境下才能部署和运行区块链应用。在这样的背景下,有人提出了“隔离见证(Segregated Witness)”,指出区块链中的信息可以分成两类,一类普通人关注的账户结余情况,另一类是普通人不需要看、而需要给记账的矿工看的关于“交易和合法性”的情况(比如“签名”),像后一类信息并不需要包含在一般用户节点的区块链中,需要验证时再向特殊节点去取就好了,这样,比特币区块就可以实现大规模瘦身,且不影响基于其开发新应用(2016年8月底发布的Bitcoin Core 0.13.0版本中,已首次包含了“隔离见证”功能,当然可能要到后续版本才会激活)。
其实,闪电网络或雷电网络、隔离见证等改进方案,都是围绕着一个根本问题:比特币的扩容。比特币如果不扩容,始终还是会面临着这些效率相对低下的瓶颈,而如果扩容,可能会面临安全方面的挑战。在比特币的社区里,分裂已经发生,区块大小为1M的老版本改名为Bitcoin Core,而先后出现了区块扩容的Bitcoin XT、Bitcoin Classic等新版本。
除此以外,还有一些长久以来悬而未决的问题,如POW机制浪费资源的诟病、挖矿日益趋向中心化的问题、钱包保管安全问题、将非法内容(如儿童色情图片、病毒代码)写进区块链如何解决的问题,还有比特币代码中越来越多的中心化内容(如,在源代码文件chainparams.cpp中可以看到,有若干个“检查点(checkpoint)”,它们的作用是在比特币节点启动时会检验区块是否是“官方认可”的区块,如果不是,则不能正常使用比特币软件,这固然是由于很多历史原因而打的补丁,但是在源代码层面直接用写死的数据去影响区块链的自治,有种令人不太舒服的感觉。当然,也有一种说法,写死的检查点可以防止未来的达摩克利特之剑——量子计算对比特币的突然袭击,姑且听之),加上,比特币基金会越来越多的掺和到商业利益中,使得比特币技术的发展整体上已渐渐跟不上时代。
由于比特币区块链显出了老态,有人便提出了“侧链(SideChains)”的概念:制造一条新链,然后将新链嫁接在比特币区块链上,将具有稀缺性的比特币的价值通过技术方法传导到新链发行的数字货币上,如果把数字货币的价值视为“血液”,那么这些侧链就是要吸比特币区块链的血,用比特币的稀缺性来充盈新链数字货币的价值。合约币(Counterparty)是通过“燃烧证明(POB,Proof of Burn)”机制来将比特币的价值传导为合约币XCP的价值的(参与合约币众筹的人们将3000多个比特币发送到一个没有私钥的“黑洞地址”);万事达币(MasterCoin)通过在比特币上建立侧链机制,不但利用比特币区块哈希值进行“联合挖矿”,而且在比特币块链上存储每个交易,如此通过比特币的强大算力安全性保障自身区块链的安全性。(如果回过头来看,会发现其实“闪电网络”也是一种“侧链”机制。)

10、以太坊横空出世

比特币虽然首先运用了Merkle Tree、UTXO、非对称椭圆曲线加密算法、哈希散列函数、公私钥加密等一系列技术方法构建了区块链技术,但是他最初的目的只是“币”,至于存在性证明、智能股权、智能资产、智能合约这些,都是基于“币”属性的一种改造,有很多牵强为之的地方。在比特币区块链上小修小补总像是隔靴搔痒,能不能干脆从底层开始改造?能不能够运用区块链技术搭建一个专门的应用平台,这个平台除了可以存证(把区块链当数据库用),还具有较多的运算功能(让区块链也具有处理复杂运算的能力),让这个成为像App Store那样的平台,然后由世界各地的开发者根据既定规则提交去中心化的应用(DApp)?(笔者认为“智能合约”与“去中心化应用”在某种意义上是同一的,因此为叙述简洁方便,在后文中会混用两个概念。)一个在2013年不到20岁的俄裔加拿大人Vitalik Buterin提出了这些的构想,次年1月正式宣布了“以太坊(Ethereum)”计划,Gavin Wood撰写了以太坊的形式化推导证明(俗称“黄皮书”),6月以太坊进行了为期42天的众筹(预售以太币),获得了约合当时价值为1843.9万美元的比特币(当时世界第三大众筹项目,目前是世界第六大众筹项目);2015年7月,以太坊Frontier网络启动(开发者先行版,只有命令行界面);2016年3月,以太坊Homestead版本发布,标志着测试版结束,正式版开始。这期间,最敏感的市场仍然是“炒币”,每个以太币的价格从最初众筹时的0.4美元,到2015年12月的0.9美元,到半年后曾一度达到17美元,翻了无数倍。
当然,以太坊最令人着迷的,仍然是技术层面的:它提供了一个叫EVM的虚拟机(计算平台),号称“图灵完备”(一切可计算的问题都能计算,程序逻辑自洽),实现了区块链上的复杂计算,全世界的开发者都可以在链上部署和运行“去中心化的应用程序(DApp)”;以太坊使用了在Merkle Tree基础上改进而来的Patricia Tree来组织区块数据,也改进了UTXO机制,区分了“外部账户”和“合约账户”,使用DHT(Distributed Hash Table,分布式哈希表)网络代替了比特币依赖于在源文件中写死的种子节点的路由方法,离完全的去中心化网络又更进一步;关键是,以太坊的出块速度非常快,每出一个区块的时间一般在12-15秒之间(更宽泛的区间描述是5-30秒),也就是说,交易被确认一次的时间只要十几秒,这大大短于比特币的10分钟,并且以太坊未来还能通过一系列的方式进行扩容(Vitalik Buterin在研究报告里曾经提到以太坊未来的目标和技术方案,最终它将可以使区块链技术足以堪比VISA每秒约50000笔的交易的速度)。在有些人看来,以太坊只是“伪图灵完备”,因为要避免“图灵停机悖论”,以太坊网络引入了gas机制,防止错误和恶意的程序无限占用区块链资源(如死循环程序,如果发布到以太坊区块链上,gas耗尽后将执行完毕,而gas是要用以太币来兑换的),通过gas还可以解耦市场价格波动对应用运行成本预期的影响(以太币价格升,则可兑换的gas相应增多,反之相应减少),gas消耗同时也是以太币矿工收益的来源。
作为分布式网络系统,为尽可能避免错误,以太坊开发了7种语言的版本(Go、C++、Python、Java、JavaScript、Haskell、Rust),通过用多版本冗余的方式可以检测程序的bug。为了让开发者们在以太坊区块链上创建应用,创造了四种编写应用的语言:Solidity(语法结构似JavaScript)、Serpent(似Python)、LLL(似Lisp)、Mutan(似Go语言)。开发者将去中心化应用(DApp)部署到以太坊区块链之后,可以使用以太坊浏览器Mist(被认为是Web3.0时代的概念产品,包含了特殊安全层、密钥管理、去中心化账户管理等区块链相关套件的浏览器),或者使用web3.js的JavaScript API接口来调用应用再通过传统web的方式,实现最终用户界面与区块链的交互。
此外,目前的以太坊挖矿依然是POW机制(采用的是sha3算法,比特币是sha256算法),可以用CPU和GPU进行挖矿,也有矿池。不过,以太坊开发者的计划号称会在不久之后转为POS的新币发行机制(未来还有可能转为更加安全高效的DPOS),由于矿机的研发需要巨大的成本投入,而一旦转为POS机制之后矿机会变成一堆废铁,因此,目前市场上还没有人研制出以太坊的矿机。

11、区块链行业迅猛发展

以太坊众筹的成功,让ICO模式引得纷纷效仿(ICO即Initial Coin Offering,改编自证券界的Initial Public Offering(首次公开发行),不同的只是将标的物由证券变成了数字货币)。当然,以太坊并非第一个进行众筹的区块链项目,早在2014年初“合约币”等竞争币就搞过,而更早在比特币矿机稀缺的年代,先支付比特币购买矿机期货的做法,也可视为是一种ICO,只是没有这么称之罢了。作为以太坊的替代方案之一Lisk平台(前身是Crypti),也在2016年初进行了ICO,获得了价值580万美元的比特币(以太坊的另一个竞争者RootStock,原本是基于比特币区块链、用侧链技术构建起智能合约平台,近期他们宣布将以太坊的一个测试版本改进为比特币的侧链了,从而使以太坊的智能合约兼容该平台);此外,试图打造开放金融市场的区块链项目Waves也在2016年第二季度进行了ICO,获得了1643万美元的众筹资金。
以太坊的普及让“共识(Consensus)”一词走红,诸如ConsenSys(Consensus Systems)这样专注区块链生态的企业顺势崛起,并与微软成为了战略合作伙伴。曾经保守的金融领域此时成为了区块链技术的实验田,高盛、摩根大通、德勤、安永等世界各大金融及服务机构纷纷建立实验室、开展研究、发布报告,结论均对区块链持乐观态度,认为区块链会带来未来的新经济形态,并采取了实际行动:纳斯达克针对私人股权市场启动了区块链项目Linq,高盛集团投资了比特币支付项目Circle(2016年9月苹果iOS 10加入了Circle Pay的功能),普华永道与BlockStream合作实施Liquid项目……
由于区块链智能合约可以提供高效、安全的信用服务,所以,以太坊上的第一个项目是一个去中心化的众智预测平台Augur(当然,更像是一个博彩应用);IBM与三星联合推出了利用以太坊协议打造去中心化物联网的ADEPT方案(Autonomous Decentralized Peer-to-Peer Telemetry,去中心化的p2p自动遥测系统);DigixDAO则是一款基于以太坊的加密资产交易平台(严格来说,它只是以太坊上的一个DApp应用,居然也搞ICO,而它通过预售以太坊很方便就能发行的代币(Crowdsale),居然也筹集到了价值50万美元的资金,这让很多人大跌眼镜、大开脑洞,当然,后面的the DAO项目更为让人惊叹。)

12、国家态度和巨头行动

在2015年之前,大多数人知道比特币却不知道区块链的时代,各国的态度大致分成简单的三派:放任(如美国、英国、日本),肯定(如德国金融部认可比特币是一种“货币单位”和“私有资产”、加拿大承认比特币的“货币地位”),或者否定(如泰国是全球首个封杀比特币的国家,俄罗斯和韩国也是反对态度强硬,中国在2013年底比特币价格峰值时期由中国人民银行等五部委联合发布的《关于防范比特币风险的通知》,认为比特币“不具有货币属性,不是真正意义的货币”,基本上是持否定态度的)。
时间来到2016年,“区块链”的名声渐渐盖过了“比特币”,各国对区块链及其相关事物的态度多呈一边倒的支持,如在2016年初的几个月,周小川多次表示,中国央行正在研究发行“数字货币”,而在5月3日《人民日报》刊登的《新技术引领数字货币演变》中,更是明确了对以比特币为代表的数字货币的技术创新的支持态度(周小川还说,数字货币不是传销,不是资金盘,是一种理财投资。当然,虽然中国对数字货币的态度原来越宽容,但有些底线,如“货币必须由国家发行”这样的底线是未突破的)。到了9月,中国人民银行主管的《中国金融》杂志第17期发布《央行数字货币研究与探讨》专题,共有17篇来自各司局主要成员的文章,更有积极表态,央行数字货币离不开区块链技术;此外,英国、荷兰、加拿大等国央行也正在开展发行“数字货币”的研究和行动。
区块链技术有着越来越巨大的市场潜力和投资价值,微软基于其“云计算”平台Azure的优势,率先实现BaaS(区块链即服务,Blockchain as a Service),即为企业和去中心化应用开发者提供便捷的云端区块链开发环境。除了微软,IBM、亚马逊也都在做类似的探索。2016年4月,英特尔公布的“锯齿湖(Sawtooth Lake)”项目是一种“搭建、部署和运行分布式账本的高度模块化平台”,听起来跟BaaS是很类似的思路。
科技巨头做BaaS,就像由内而外的突围,而商业巨头们则建立起了“联盟链”,似是由外而内的包抄。我们熟知的比特币、以太坊是一种人人都能参与的区块链协议,谓之“公有链”,公有链往往需要消耗一定的能源通过POW挖矿以经济激励的方式保障网络协议的安全性(POS锻造也是一种经济激励机制),牵涉到代币难免让人费解和引起混乱,而且效率也受到影响,影响区块链技术本身的发展和应用,于是有人认为,将区块链用于内部应用的时候,不需要挖矿和锻造,因为内部节点是绝对可信的,可以保障网络的安全,而且网络结构也简单很多,可实现非常高的效率,基于这样的思路打造的剥离了代币系统的内部区块链应用,谓之“私有链”(并非私有链就一定没有代币,只不过,私有链是由此思路演化而来)。
对于商业领域的区块链应用来说,私有链相对公有链还有一个非常大的优势,就是私有链不必担心链上数据公开导致的商业信息的泄露,可将信息限定在内部。然而,完全的企业内部信息流转和保障,与传统的技术相比,数据的安全性和公信力并没有本质的提升,于是商业巨头们想到了一个将商业信息在少数同行间互相分享、行业内许可使用的“联盟链”的点子:每个企业一个节点,相互保障安全,相互监督数据真实性。联盟链又可叫许可链,本质上是一种类似行业联盟的私有链。2016年1月,DTCC(美国存管信托和结算公司)发表白皮书,呼吁全行业开展协作,利用分布式总账技术改造传统封闭复杂的金融业结构;2016年4月,全球最大的联盟链R3 CEV宣布其首个区块链应用Corda(截止目前,已经有42家全球巨头银行和中国平安、招商银行、丰田汽车等知名企业加入R3联盟;经过若干次凤凰涅槃的瑞波(Ripple)结算网关协议也将与R3建立合作伙伴关系);2016年8月,由Linux基金会发起的“超级账本(HyperLedger)”项目(IBM提供了最初的44000行开源代码)发布了一种人人都能浏览其80个成员项目的区块链浏览器,这是将区块链技术标准化的重要一步(中国区块链企业“小蚁”、“太一云”、“布比”均是“超级账本”项目成员,9月,万达金融集团宣布加入“超级账本”项目);与此同时,中国工信部电子标准院召集若干单位开始了编写《中国区块链技术和应用白皮书》的征程;而在此之前,中国已经有了“中国分布式总账基础协议联盟(ChinaLedger)”、“金融区块链合作联盟,简称‘金链盟’(BankLedger)”等联盟链尝试。

13、The DAO的故事

早在2013年,就有人提出,区块链的最高境界是建立DAC(Decentralized Autonomous Corporation/Company),即“去中心化自治公司”;2015年,进化为DAO(Distributed Autonomous Organization)即“分布式自治组织”的概念。无论概念怎么演进,DAC和DAO大致都是指一种建立在区块链之上的、无需也不能人工干预的可按照既定规则自动化运行的公司、企业或其他组织(甚至是政府)。其实,从表述可以看出,DAC和DAO的想法与“智能合约”密不可分,而被誉为“DAO之母”的the DAO项目,其程序实现恰恰就是以太坊平台上的一个智能合约。
2016年4月30日,The DAO项目发起为期28天的ICO,募集到1170万以太币(按照当时每个以太币90元人民币的价格计算,约合总价值是1.6亿美元;紧接着几天后,以太币价格最高曾涨到过140元人民币,此时the DAO的总价值约为2.45亿美元,因此有1.6亿美元和2.45亿美元两种说法),是当时也是迄今为止世界最大的众筹项目,令众多传统人士大呼不可思议。
The DAO项目的白皮书声称要打造一个区块链上的、无法被人为干预的、由技术直接实现民主的经营组织,参加众筹获得DAO币的以太坊账户将会拥有投票等权利,从而类似于传统公司的股东,通过透明的代码、不受外界干预的投票等行使权利的方式,决策该组织的经营。The DAO按照计划推进,6月初即推出了提案投票功能。
然而紧接着几天之后的6月17日,有人发现,有黑客利用智能合约程序中一句话的执行顺序上的“递归调用(recursive calling)”漏洞,正在将the DAO上的资产进行“切割(split)”,试图在28天冻结期之后将这些以太币“赎回”到非其“合法”所有人的账户。随着事件的危害性越来越为众人所知,各种“线上/线下”、“链上/链下”的解决方案层出不穷,经过较长时间的博弈,由Vitalik Buterin领衔的以太坊团队提出了“对以太坊进行硬分叉”的方案。其实,the DAO只是以太坊平台之上的一个智能合约应用,为了一个应用而改变一个平台,仍然是有争议的,但是,大多数人基于朴素的正义感,在若干次的“民意测验”投票中都投了赞成票,结果显示,同意“硬分叉”方案的占据压倒性多数,势在必行。
7月20日,随着第192000个区块被挖出,以太坊硬分叉实施宣告成功。硬分叉的后果就是黑客的行为强行被以太坊升级版网络归于无效,之后几天,the DAO的投资人纷纷按照既定程序将以太币赎回,这个世界最大的众筹项目眼看着就这样灰飞烟灭、落下帷幕。
然而,当人们还来不及总结the DAO项目的经验教训,新的故事又发生了:最新的以太坊客户端(Ethereum Wallet 0.8.1版)存在两个选项:支持DAO分叉;不支持DAO分叉。选择前者将会从第192000个区块开始运行一条新的链,即让黑客行为归于无效的链;选择后者将会继续运行一条对黑客行为没有任何影响的旧链。硬分叉时,有85%的算力支持新链,虽然是绝大多数,但是,另外的15%算力却宣称要维持以太坊平台的“去中心化”本质,反对人为干预,他们将其维护的旧链称为Ethereum Classic,紧接着,数字货币交易平台Poloniex将旧链上的以太币作为新的币种上线进行交易,与原以太币符号ETH针锋相对,命名为ETC(C指Classic),ETC价格从无到有、短时间内从低涨高,在分叉之前拥有1个以太币的账户,分叉之后同时拥有了1个ETH和1个ETC,而且通过简单的技术处理,都可以拿到市场上进行买卖,这是一个奇异的现象,两条区块链还可共用同一个客户端。有人说,硬分叉并不是优势资产重组,而是企业拆分,因为ETH和ETC的市值之和恰是分叉前以太坊的市值。
在比特币的历史上,也曾进行过几次分叉,但是,也许是因为没有像the DAO这样令人瞩目的项目,也许是因为没有足够多类似坚持ETC网络的死忠粉,也许是因为没有Poloniex这样把巨量资本直接引入争议的行为,所以,没有出现今天以太坊双链这样的局面。以太坊双链是一个新现象、新问题,有人担心,智能合约的未来发展肯定还会遇到更多的问题,如果每一次都要靠分叉来解决问题,难保不会出现越来越多的以太坊分叉……围绕着以太坊双链的争论仍在继续中。

14、忧虑与反思

区块链以密码学技术为底层创建了坚固的数据链条,号称安全可靠,这是其广受青睐的原因,但是,世界上并不存在绝对安全的事物。原因有二:第一个原因,区块链网络的安全实际上是一种“概率安全”。人们惧怕“51%攻击”,但并非只有到了51%的算力才会使已确认的区块被改写,只拥有48%算力的矿工也能够有85%的概率逆转10个已被确认的区块,只能操控40%攻击算力也意味着有50%的概率去推翻之前的6次确认,虽然算力越小,逆转区块链网络的可能性越少,但并非代表不可能,最最极端的情况下,很小的算力操控者,如果他的运气好到极致,也是可以逆转已经确认的区块链的,只是,现实来说,那种好运气的概率堪比买一百次大乐透都中头奖,事实上是难以发生的罢了。不过,“难以”并不等于“绝对”,所以哲学层面来说,区块链不是绝对安全的。第二个原因,区块链网络的安全性与其链上承载的财产价值密切相关。私钥生成公钥的过程虽然不可逆,但对密码学家来说,总能留下一些蛛丝马迹,通过这些总能找出破解私钥的相对捷径,从而降低破解加密系统的成本。未来,当区块链上承载越来越多财产的时候,当链上的财产价值大到足以吸引顶尖黑客蜂拥而至研发针对加密系统的逆向算法时,区块链还能安然无恙吗?
区块链上可以部署智能合约,在链上管理智能资产,但是,它毕竟是比特网络上的数字,如何将原子世界的事物与比特世界的数字一一对应?区块链固然难以篡改,可以作为存在性证明的有力凭证,但是,将原子世界事物对应为比特世界数字的过程如何控制?如何保证要证明的信息本身的真实性?如果刻到区块链中的数据本身就是不真实的,区块链的保真又有何意义?针对这个问题,有两种途径:一种是相信机器,就像我们相信区块链的算法一样,相信那些物联网的探头测量到的数据(21.Inc在树莓派的基础上制造了专门的“比特币电脑”,它有一种用途,就是在其上装载各种传感器,比如温度和湿度探测仪,收集到的数据可以卖给需要的人,而卖出数据的人将会获得买方发送的比特币,以经济激励确保信息的真实性),但是,这个方法只能用于规范可测的事物,对于现实世界中诸多的“横看成岭侧成峰”甚至是“罗生门”事物,怎么处理?另一种途径就是设立“仲裁节点”,运用“共同知识”来消解众说纷纭带来的困扰(例如,今天的油价,我说是5.6元,你说是5.7元,他说是5.8元,那么真实的价格必然与平均值5.7元相去不远),但是,这会不会是“多数人的暴政”?我们是否要提防“完全信息、理性和真理并不掌握在多数人手中”的情况(想想,社会公众对案件的预测与法院最终的判决,会一致吗?)人们试图用区块链来打造一个去中心化(去人类干涉)的平台,初衷可能是追求公平公正,但是,区块链这个工具,连客观事物都没法准确认知,更别说判断是非善恶了(想想“丝绸之路”,想想那些被人恶意写入区块链的儿童色情图片、病毒代码,想想the DAO被盗后黑客的嚣张和在金钱驱动下产生的奇葩的以太坊双链),针对这些基础的问题,还没有真切的解决方案,基于区块链技术描绘的很多蓝图在现阶段是否更像是空中楼阁?
在“大众创业、万众创新”的当下,即便最近一段时间遭遇了所谓的“资本寒冬”,但是,“区块链”概念却开始逆势而上,随着相关技术越来越普及,以“新经济”、“新金融”冠名的区块链活动也越来越多,很多人一听“区块链”就像打了鸡血,一些创业团队开始“为了区块链而区块链”(笔者甚至看到了有国内人士提出要搞“党务区块链”来进行党务管理,敢情这样是“杀鸡用牛刀”呀,一套传统的信息系统就能解决的问题,为什么要部署相对复杂的区块链呢?文中提到的那些理由并不是站得住脚的痛点),各大机构争先恐后成立区块链实验室、加入联盟链,试图抢先一步,占得先机……对于这些,对错姑且不论,成败也应留给市场评说,只是记得佛曰:不可执着!“区块链”只是人类历史长河中众多创新技术中的一种而已,让我们平常心对待它,让我们像正确对待自己家成长的孩子那样,静待花开,就好!

@lawup

 
1 人喜欢