IBM是真正的区块链吗?
IBM 是企(qǐ)业区块(kuài)链领(lǐng)域的重(chóng)要参与(yǔ)者,其(qí)区块链平台以(yǐ) Hyperledger Fabric 超级账本为基础,为(wéi)很多(duō)大(dà)企业比如沃尔玛和安泰保险都开发(fā)过区块链试点产品。
Hyperledger 基金会是(shì)一个开源的公链项目,属于非盈利机构。作为机构的(de)赞助商之一(yī)(最近微(wēi)软和软件服务公司(sī) Salesforce 也宣布入驻 Hyperledger),IBM 投(tóu)入(rù)了(le)大量资金,计划推动机构向私有链或“许(xǔ)可链”方向发展。IBM 似乎有他自(zì)己的投资意图:Hyperledger 既要与业界知名(míng)的比特币和以太坊等公链保持(chí)共通性(xìng),也(yě)要去除掉身上(shàng)“不适合企业发(fā)展”的特点。
但不管(guǎn)公有还是(shì)私有,IBM 这种既(jì)保公链,又搞创收的行为恰(qià)恰忽略了 Hyperledger Fabric 区块链最重(chóng)要的特征。Fabric 的架构比任(rèn)何区块链平台都复杂,同时,面(miàn)对(duì)未来可(kě)能的篡改和袭击(jī)风险也不够牢靠(kào)。你可能想,毕竟(jìng)是“私有(yǒu)链(liàn)”,多少(shǎo)有扩展性和效率的优势,但很(hěn)抱歉,Fabric 在这方面也好不到哪儿去。简单说(shuō),基于 Fabric 建立的试(shì)点项目在部署过程中会面临很多(duō)复杂因素和不安全状况,未来扩展到其他企业的可能性(xìng)不(bú)大。
我们(men)能选择的区块链有哪(nǎ)些?
2016 年(nián),我还在摩根(gēn)大通的时(shí)候,曾领导一个(gè)新兴的(de)技术(shù)小组负责(zé)研究和审查市面上的区块链项(xiàng)目,为公(gōng)司未来的战略开发(fā)和投资作铺垫。我们对 Hyperledger、Axoni、Symbiont、Ripple 和(hé)以太坊等早期(qī)版(bǎn)本都做(zuò)了深入分析。当时我们发(fā)现(xiàn),市(shì)面(miàn)上的(de)区块链项目在技(jì)术上都不足以支撑(chēng)企(qǐ)业的应(yīng)用(yòng)。 非常遗憾的是(shì),当时的问题在(zài)今天的 Hyperledger Fabric 上仍然存在,而(ér)且是核心问题(tí)。
问题有很(hěn)多:区块链的智(zhì)能(néng)合约(yuē)语(yǔ)言如(rú)何将复杂的商业规则以安全简(jiǎn)单(dān)的方式表达(dá)出来(lái)?公钥签名如何(hé)保(bǎo)证有(yǒu)效(xiào)?区块链系统如何(hé)在不(bú)减缓效率的前提下扩展更多的节点?还有,作为一家面向未来的公司(sī),如何与其他的公链和(hé)私链轻松做(zuò)到(dào)交互操作?
从这些问题看,我认为(wéi) IBM 的区块(kuài)链系统缺乏区(qū)块链的必要元素,不仅其效率指(zhǐ)数(shù)可能给企(qǐ)业造成误(wù)导,而且(qiě)在保证企业的(de)长期(qī)生存能力方面也要打个(gè)问号。虽然我和(hé)同(tóng)事不(bú)应该只把(bǎ)效率(比如每(měi)秒交易(yì)量和(hé)节(jiē)点数等)作为区块链技(jì)术的唯(wéi)一衡量(liàng)因素,但我们认为,大家有必要(yào)知道(dào)区(qū)块链应该是什(shí)么不应该是什么。厘清这个概念(niàn)有助于我(wǒ)们更好地理解区块链这(zhè)项新(xīn)技术的(de)变化。
区(qū)块(kuài)链应是什么(me)?不是什么?
要想真正(zhèng)理解 IBM 的区块链立场,我们需要看(kàn)看区块链的定(dìng)义。所谓区块(kuài)链,其核心要义是记录项目和交(jiāo)易数据的不可更改的去中心化账本,实(shí)际的交(jiāo)易记录通(tōng)过共识机(jī)制执行。在比特币和以太坊等公链中(zhōng),共识(shí)机制(zhì)的实现方式是(shì)工作量证明机制,俗称“挖矿”。在(zài)许可(kě)链中(zhōng),共(gòng)识机制的实现方式是(shì)参与节点提供加密签(qiān)名,对书面条款投票表(biǎo)决。不管哪种(zhǒng)链,都(dōu)没有中(zhōng)心机构参与其中。
IBM 的定义(yì)抓住了区块链的分布性和不(bú)可篡改(gǎi)性,但(dàn)忽略了去中心化共识,这(zhè)就是为什么 Hyperledger Fabric 没有对真(zhēn)正的共(gòng)识(shí)机制提出要求。取而代之(zhī)的(de)是,它使用了一种叫做 Kafka 的“订(dìng)阅系统”。但(dàn)问题(tí)是,只(zhī)有参(cān)与方强(qiáng)制(zhì)执行了民主(zhǔ)式投票(piào)机制,我们才(cái)能证(zhèng)明账本信息未(wèi)被篡改。容错(cuò)机制是区块链的(de)标志特(tè)征。如果没有容错机制,IBM 的“区块链”几乎跟时间戳也没什么两样了。
Fabric 的架构同时暴露了很(hěn)多弱点,这些弱点很容(róng)易被不法分子利用(yòng)。例如(rú),Fabric 在验证者签名(míng)的“网络内(nèi)”上(shàng)使(shǐ)用公钥加密技术,这种做法确实提供了安全保证,但前提条件是,只有当外部签名交易提交后才可启动。
从(cóng)根(gēn)本上来看,比(bǐ)特币(bì)及其(qí)他真正区(qū)块(kuài)链系统已验证的安全模式可能失效。在比(bǐ)特币等真(zhēn)正的区块链系统中,交易记(jì)录只能通过外部(bù)用户的公钥签(qiān)名确定,任何形式的(de)中间力量(liàng)都无法参与到系(xì)统中。但是(shì),Fabric 共(gòng)识(shí)机制中真正重要的签名属(shǔ)于验证人(rén),而用户(hù)签名在任意数据集(jí)的网络复制过程中往往不受重(chóng)视。
Fabric 的研究者(zhě)之所以不断强调(diào)效率指数(比如交易速度等),就是因为 Fabric 的架构无法在保(bǎo)持高效(xiào)率的同时进行(háng)扩展。Fabric 运用多链环(huán)境(通道)为用户保密(mì)。保(bǎo)护(hù)用(yòng)户隐私是私有“企业”链的一个重(chóng)要(yào)特征,不可(kě)避(bì)免会涉及很多(duō)权(quán)衡和复(fù)杂因素,但是多链方案不适(shì)合扩(kuò)展。而且在节点(diǎn)部署方面也很复杂,各(gè)节点参(cān)差不齐,智能合约可靠(kào)性低,单(dān)点故障容易扩(kuò)散。
所以,对于一(yī)个标准(zhǔn)的 Fabric 部署来说,效率指数高不(bú)能说明(míng)问题。随着(zhe)节(jiē)点(diǎn)数(shù)的增加,通道重新恢(huī)复为单通道,效率指数也会迅(xùn)速降(jiàng)低:如(rú)果你想通过多通道与全网做交易,效率指数没有多(duō)大参考价值。即(jí)使你看见(jiàn)单独(dú)通道的每秒交易量已拼命达到 800 以上,但 16 个(gè)节点的通道参数也不会超(chāo)过(guò)每秒(miǎo) 1500,节点参与量一旦变高,延迟可能达到(dào) 10-20 秒的长度(dù)。
最近,Fabric 下了大功夫,据(jù)说每(měi)秒交易量被提高(gāo)到了 20,000 的水平,但研究者在架构层(céng)面做出(chū)的改变大(dà)大偏离了区块(kuài)链(liàn)的本(běn)质,以至于改(gǎi)后的(de)架构属性面目全非:赞(zàn)助人(rén)无法(fǎ)承担验证者的角色,而且(qiě) Kafka 系统作为唯一(yī)的订阅系统也成为摆设(从理论上(shàng)说,Fabric 可以采用真正的区块链共识机(jī)制,但速度会很慢,实际应用的可(kě)能性不(bú)会很高)。
最后一点,速度(dù)指数只停留在单通道层面,意味着区块链(liàn)无法成为整体的共(gòng)享信息来源。
智能(néng)合约是一种商业逻(luó)辑
面对(duì)区块链,最后(hòu)一个考虑的点是:它如何超越私有数据库进行扩展?区(qū)块链工具(比(bǐ)如智能合约语言)如何帮助(zhù)企业取得广泛的成功。
请(qǐng)记住,智能(néng)合约不是所谓的“代码”,它是(shì)一种商业逻辑的(de)体现。你可以(yǐ)通过智能(néng)合约在区块链上买房,确认自己的数字身(shēn)份,或者买卖二(èr)手车。所以智能合约的可(kě)靠性非常重要(yào),条款是什(shí)么,就(jiù)按照什么执(zhí)行。
如果你想在区块链上创建什么东西,你需要通过智能(néng)合约描述自(zì)己(jǐ)想做什(shí)么东西(比如(rú)实物交(jiāo)易(yì)、打(dǎ)包数(shù)据等等)。你描述的语言越(yuè)简单,创建的速度就越快,也能(néng)更快让项(xiàng)目方看到成果(guǒ)。更重要的(de)是,你需要智能合约(yuē)获取收(shōu)益(yì)或(huò)者给你的企业(yè)带来好业(yè)绩。
Hyperledger Fabric 的智能(néng)合(hé)约(yuē)(“链式码”)一般由几种编程(chéng)语言写成,包括通(tōng)用的 Javascript 语言和 Go 语(yǔ)言(yán),但是(shì)需要权衡编程语(yǔ)言的便利性和安全性(xìng)。如果区(qū)块链涉及的利益很大,比如如果程序出现 bug 或(huò)者(zhě)写错了,导致上百(bǎi)万(wàn)美金丢失(shī),那编程语言确实(shí)应该(gāi)目的明确,设计的时候把安全(quán)放在(zài)首位。在理(lǐ)想的区(qū)块链环境中,智能合约语言(yán)应该好学也(yě)好用,但实际情况不可能如愿以偿。我(wǒ)们知道,要成功完成经典的(de)程序演示“Hello world”,需要(yào)写 150 行左(zuǒ)右的代码。代码量如此之大,自然(rán)容易产生可能造成上(shàng)百万美元损失的(de) bug。
私有链和公链不会毫无关系
区块链领域资深的观(guān)察家正意识到,私有(yǒu)链和公(gōng)链不会毫(háo)无关(guān)系,两者(zhě)在未来会发生联(lián)系。私(sī)有网络想发行代币给公链用(yòng)户(hù),而公链的去中心化(huà)应用也想在(zài)私有链中(zhōng)储存机密信息(xī)。但不(bú)幸的是,IBM Fabric 用户仅仅(jǐn)因(yīn)为(wéi)架构(gòu)无(wú)法兼容,就被“隔离”在公链(liàn)之外。不仅如此,他们因此也错过了智能合约语(yǔ)言的学习机会,无(wú)法在公链(liàn)和私有(yǒu)链之间实现无缝操(cāo)作。
随(suí)着(zhe) IBM 宣布建立企业(yè)区块(kuài)链的消息(xī)持续成为媒体关注的焦点,我们(men)需要看清楚(chǔ)聚光灯之下,这项技术(shù)到(dào)底(dǐ)有何(hé)作为。Hyperledger Fabric 很多(duō)方(fāng)面(miàn)的标准(zhǔn)性不足(包括安全性、效率和可(kě)靠性等等(děng)),因此,想借助区块链技术寻求发展(zhǎn)的公司或(huò)机构(gòu)无法得到有(yǒu)价值的(de)解决方案。要想真(zhēn)正理解(jiě)区(qū)块链的价值,资深(shēn)用(yòng)户(hù)会寻(xún)找更有优势的服务公司,因为他们(men)能提供更好的区块(kuài)链技术,对未来的发展和技术(shù)的(de)应用方(fāng)式也(yě)有更好的规划。