博客文章

人们谈智能合约网络效应时常犯的谬误

August 28, 2017 | 7 Minute Read

以太坊无疑是市场领先的智能合约平台。它是第一家诞生的智能合约平台,目前也最为成熟。它可能拥有最好的协议开发人员,当然也有最好的社区。开发者对以太坊的兴趣正在高涨。大公司也在投资这个平台。它有一个清晰的路线图。它的领导者是我们这个时代最聪明的人之一。 以太坊的网络价值目前约为300亿美元。其竞争对手的情况则如下: NEO – 20亿美元 以太坊经典 – 15亿美元 QTUM – 9亿美元 Stratis – 6亿美元 WAVES – 5亿美元 EOS – 5亿美元 Lisk – 2.5亿美元 按当前价格计算,以太坊在智能平台领域所有竞争对手的网络总价值不过相当于以太坊网络价值的10-15%。 市场价格表明以太坊具有较强的网络效应。以太坊将自己描述为“世界计算机”,自然会带来与操作系统的类比:开发人员使用以太坊越多,需要其代币ETH的用户就会越多,这会鼓励更多的开发人员投入其中的开发等等。 这种类比并没有抓住动态细微差别的实质。像以太坊这样的智能合约平台不应该被拿来与操作系统相比,而应该与编程语言类比。 特别是与操作系统的类比曲解了供给侧(开发者为何要选择以太坊)和需求侧(用户为何要选择购买ETH)的网络效应。对网络安全的担忧是一个有说服力的理由,其实这个问题可以通过跨链锚定得到相当程度的缓解。 我下面逐一剖析一下具体每个谬误。

需求侧—用户不在意

操作系统会产生网络效应,因为用户决定使用一个操作系统,这是一个排他选择。您无法在桌面上同时运行Windows和Linux(忽略虚拟机,因为只有极少数用户有需要或技术能力有效地利用虚拟机)。 由于一个操作系统绑定了很多用户,开发人员自然会为这个操作系统开发。这将为操作系统带来更多更好的应用程序,从而吸引更多用户。良性循环蓬勃发展。 用户不必知道或关心在与哪个区块链交互。对于大多数用户来说,区块链只是个抽象存在,与之打交道,类似“请输入密码来验证您的交易”。 作为与分布式应用(Dapp)交互的用户,您永远不会“看到”区块链。您将看到的是一个web3前端,它使用诸如Parity或Metamask之类的工具触发一个链上交易(下文中我将把这些类型工具称为web3客户端,尽管web3在技术上是特定于以太坊)。虽然web3客户端在非以太坊区块链上尚不存在,但开发者正在构建并将很快推出,而且它们将支持多条区块链。到时候浏览器将原生地实现多链web3客户端。 Web3客户端本身可以把这个问题进一步抽象化。 随着web3客户端实现对许多区块链的支持,它们还将集成去中心化交易所,如Shapeshift和0x。如果您作为用户尝试与需要Stratis代币的Dapp进行交互,但您只有ETH,您的web3客户端将在一家交易所实时、无缝地卖出您的ETH换来Stratis代币。然后web3客户端会将这些Stratis代币发送给后者的Dapp。 作为用户,您根本不会知道或关心这一活动中涉及到哪些代币。 您的web3客户端将生成一个助记词种子,该种子用于在所有受支持的区块链上派生私钥、公钥和地址。 作为用户,您只需记住/存储一个“密码”,其他一切都将是无缝进行的。 综上所述,作为用户,您不必关心正在使用什么区块链或代币。无论底层技术平台是什么,所有Dapps都会成功运行。所有围绕区块链和代币的复杂性都因为抽象而化为乌有。

供给侧—可互操作代币使链商品化

代币可以在任何两个智能合约平台跨链漫游。ETH代币不会仅限于以太坊链上使用。Stratis代币可以在NEO链上流通,WAVES链上将提供Tezos代币。 怎么实现?合成代币。 想象一下两个已知智能合约,一个在ETH链上,一个在ETC链上。如果我想把X个ETH代币转移到ETC链上,我会发送一些ETH给ETH链上的那个合约,并指定我的ETC地址。当那个ETH合约接收到我的ETH,类似Cosmos的东西会触发ETC合约,并将X个 ETH 代币释放到我的ETC地址。这些合成代币也可以被称为ETH 。这个系统是双向运行的。 (我知道这张图并不能从技术层面正确描述智能合约如何发行代币,但它对说明资产如何跨链转移还是有帮助的) 这个功能使得各条区块链之间的竞争回到同一起跑线。当任何代币可以在任何链条上运行时,为什么要关心链条或币种呢?很多复杂性由于抽象而化为乌有。 值得注意的是,这种机制存在一个明显的缺点:每条链上的燃料(Gas)成本必须以该链的原生代币支付。但是Gas成本应该是一个较小的百分比数。如果Gas成本超过支付交易额的0.1-0.2%,该区块链本身可能会失败。根据我上面阐释的框架,“用户如何支付Gas”这个问题是合理的质疑,但与代币链抽象化带来的收益相比无足轻重。

通过跨链锚定降低网络安全风险

当一个代币网络价值严重缩水时,51%攻击风险会上升。PoS共识系统尤其如此;当矿工基于“挖矿成本vs币的价值”选择挖哪个币时, PoW 共识系统也难逃这一风险。 但是就算是网络安全风险也可以通过跨链锚定来降低。以太坊通过梅克尔树根由子链向母链广播方式来降低这种风险,这种机制是从Plasma现有做法中借鉴而来。今天的Factom已经成功采用这种机制: Factom 将自己链上的梅克尔树根广播给每个比特币区块。 未来我们将开始看到大多数区块链将自己锚定于其他链上,作为降低风险的一种手段。届时攻击一个网络,将需要攻击所有被其所锚定的网络。比起攻击单一的区块链,这种多链攻击的难度要高得多。

智能合约平台就像编程语言

如果用户不关心底层采用哪种区块链,如果代币可即时无缝交易,如果代币本身可跨链漫游,如果网络安全是可维持的,各种区块链之间还有什么区别?答案是:开发工具和治理机制的区别。 Stratis 有一个独特的关注点:使C#语言开发者尽可能容易地使用区块链进行开发。现在全球有数百万的C#语言开发者大军,他们中的大多数可能不想学习Solidity或Ocaml。你可能会认为C#语言开发者不理性,应该学习专门为区块链设计的语言。比如说,Stratis不太可能能执行形式化验证,因为C#在设计时就没有考虑到形式化验证。 另一方面,JavaScript原本被设计为一门前端语言,但目前它是Node.js最受欢迎的后端语言之一。某些开发者讨厌JavaScript这样的松散类语言;另外一些则讨厌像C语言这样的静态类型语言。 即使目前所有的主流编程语言都具备图灵完备性,市场经验也表明对多种编程语言的需求是存在的:因为不同语言(可读性、编译与解释、抽象、内存管理、本地性能、并行性等)此消彼长各有所长。 不应由单一的区块链制定所有智能合约开发的规则与机制。考虑到缺乏强大的网络效应,智能合约平台将呈现百花齐放局面。 接下来让我们看看治理。Dash已经有几年的链上治理经验了。从各个方面看,它运行似乎相当良好。Tezos则展示了一种Dash链上治理的变体。目前,Dash社区正在蓬勃发展、不断创新和壮大。链上治理可能是区块链一直需要却从未实现过的。 历史上没有任何反向例子来证明这一点:在过去几年里,比特币显然面临着严峻的治理挑战,但很多开源项目在缺乏链上治理的情况下蓬勃发展。例如Linux内核、很多Linux桌面、火狐浏览器、维基百科、Chrome(及其所有分支)、安卓开源项目(及其所有分支)、WebRTC、以太坊本身,以及许多其它开源项目,在没有官方利益相关者参与的模式下,都取得了成功。

总结

目前各公链代币的价格表明了以太坊将会成为智能合约平台遥遥领先的市场领头羊。但这种情况不是一成不变的。在需求、供应和安全三个层面存在很多世俗趋势,将以太坊的大部分优势商品化。以太坊不会是唯一的智能合约平台。不是说以太坊会消亡或者不会繁荣发展。我不会赌以太坊失败。可是要看到除了以太坊智能合约平台之外,还存在巨大机会。以太坊不会是一个统治所有其它平台的智能合约平台。

2018.5.9 更新

写完这篇文章后,我意识到这篇文章的前提是正确的—智能合约平台几乎没有什么网络效应;但是这篇文章的结论—开发工具很重要,智能合约平台就像编程语言—是不正确的。开发工具和区块链性能也将跨链复制。 我在作为此文后续的「价值存储的网络效应」一文中表明,实现有意义的网络效应的唯一途径,是使资产同时成为价值储存和交换媒介。

有兴趣加入我们的团队,与我们共事,或者创造一些伟大的东西?

联系方式