区块链技术

ArcBlock 分享 | 以太坊把公链都带歪了吗?

本文主要是介绍ArcBlock 分享 | 以太坊把公链都带歪了吗?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

冒志鸿:区块链应该做回它应该做的事,不应该做通用计算。

会不会目前大部分人努力的区块链方向,都是错的?

比如跨链、比如所有人都在谈的”区块链3.0“。

Odaily星球日报最近跟 ArcBlock 创始人 CEO 冒志鸿讨论了一下相关的问题。上述两个问题基于圈内对区块链领域所面临的痛点的判断——链与链之间无法互联互通,公链性能无法满足大规模商业应用。如果从根本上否认这两个痛点——都是伪需求,那是不是目前的无数项目显得毫无意义?

image

对标数据库,区块链也需通用访问工具

在开始聊这个话题之前,先来更新一下 ArcBlock 的最新进展。这个将会涉及到我们讨论的前两个话题:对标区块链,区块链是不是需要通用查询工具?是不是需要 interledger 级别的跨链?

ArcBlock 介绍,这是一个直接面向开发者、构建于开放链访问协议(Open Chain Access Protocol,简称 OCAP)之上的开发工具,构建了一个区块链应用开发环境,开发者无需任何下载安装,只要有浏览器就能开始区块链的测试和应用开发。目前公测版 OCAP 支持比特币、以太坊等底层区块链。

这个工具对于开发者的作用,就是可以在只懂一种语言的情况下,就能把自己的应用部署在不同的链上。这就降低了开发者的学习门槛,不需要因为语言而绑定公链。OCAP 采用的 Facebook 主导和开源的 GraphQL 语言,冒志鸿认为这也有利于吸引原来 GraphQ 的开发者群体支持 OCAP。

开发者友好不仅需要体现在语言。

冒志鸿还举例了节点部署成本。“以太坊的全节点是用来挖矿,开发者跑应用依然要自己部署一个节点。就像你自己用电一样,电网到处都有电,你也需要有一个配电箱。以太坊基金会也意识到这个问题,因此孵化了一个名为 Future 的云节点服务,部署好之后卖给开发者,开发者依然需要对云节点付费。OCAP 也帮开发者部署全节点。”

“现在大家都意识到一个事情:就是得开发者得天下。区块链很像数据库,本身非常很底层,必须要有开发者支持。”

另一方面,对于某些行业型或者应用类公链而言,如果他们支持了  OCAP,可以快速接入社区和开发者,不用重新发明工具。

先看一下以太坊的发展,光有公链和智能合约是不足以让开发者开发应用的,还需要有很多工具,因此以太坊基金会本身也孵化了不少项目去帮助开发者访问链和开发应用。冒志鸿表示,作为一条通用型公链,以太坊也许可以这么做,但对 CyberMiles(电商公链)和 Eloncity(微电网电力结算)这类应用链来说,并不希望把精力放在这里,他们就可以选择做一个链适配器适配 OCAP 协议。

冒志鸿认为,类似通用工具未来会是公链的标配。他再次类比数据库,查询 SQL 数据库,需要有查询工具,“之前所有的厂商都有自己的查询工具,现在是通用,因为所有的数据库都用 SQL 语言,都用 ODBC 和 JDBC Driver”。

ODBC(Open Database Connectivity,开放数据库互连)是微软开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准 API(应用程序编程接口)。

JDBC(Java DataBase Connectivity)与 ODBC 类似,也是一个面向对象的应用程序接口(API), 通过它所有 Java 程序可访问各类关系数据库,是 java 核心类库的一部分。

OCAP 是从 ODBC 获得的灵感。“今天数据库的厂商都会把自身的 ODBC 和 JDBC 驱动开发好,否则没有人来用你的数据库。”冒志鸿认为公链世界也会出现类似的地位的工具,ArcBlock 希望未来社区或者公链的开发者自己去开发链适配器。

image.gif

Interledger 级别的跨链是伪需求?

ArcBlock 做的事情某种程度上跟跨链相关,因为其开发平台希望支持开发者将自身的应用部署在不同的区块链上,这就涉及到不同链上资产的交互。然而,今天的跨链机制依然非常不成熟。大部分提到资产“跨链”的团队,实际上做的都是“区块链版 Visa 和 MasterCard ”的事,做了一个中间商去兑换两个币种之间的汇率——不就是今天币币交易所钱包。

当 Odaily星球日报直接问冒志鸿 ArcBlock 的跨链如何实现链上数据的保真时,冒志鸿也非常直接地表示要实现这个技术实际上非常难。现在的跨链,包括他们自身,都是没有实现链上数据的保真,本质上都像交易所一样,根据汇率,在两条链上开账户,一增一减。他称这为应用级跨链,每个链并不不知道自己在“跨链”。

另外一种“链自己是知道”的思路,他称为 interledger 思路,试图将两链之间的资产双向锚定起来。比如公有链项目 Cosmos;闪电网络在他看起来不算跨链(有主侧链之分)。他解释,极度简化的链,就是一个应用。“目的是要做到双向锚定,从A上面发出了交易,是从 Transaction 的角度,在 B 链上到账,一旦出现问题,就会回滚,这个安全性更好。”

如果拿着这种技术跟上面的“区块链版跨境汇款”相比,这时候做链间价值转移,就可以直接对接。“如果有一边出现问题,比如分叉了,应用级跨链中,另一边是不知道的;interledger 情境中,则是相互知道的。”

因此,他认为两者确实有“很大区别”。可是,他认为这个方案很可能“得不偿失”:

从一方面来说 interledger 的难度非常高,“interledger 就是建起桥梁,两条链的东西还得是一致的,但是两条链确实是不一样的”;一方面实际应用需求很少,“99% 都只需要应用级的跨链,只有很少需要 interledger 级别的跨链,比特币和以太坊为了安全性,可能要这种”。

这个判断,同样是他以“数据库历史”为鉴得出。他介绍,在 80、90 年代,曾经有一个概念叫联邦分布数据库,愿景是:两家企业用的数据库供应商不同,该技术希望数据库的角度让交易保证数据交易的原子性,难度极其高,但是后来证明在现实中根本不需要。“既然可以通过应用层保证一致性,为什么一定要在底层做呢?因此我们其实在整体设计上比较实用主义。”

如果要预测谁先做成这种级别的跨链技术,他认为第一个能落地可能是 Cosmo。

image.gif

很可能以太坊把大家都带歪了

聊完跨链,我问及公链领域的变化、还有以太坊和 EOS 的智能合约漏洞问题。这个背景是智能合约漏洞频现,为了规避这些问题,某些公链甚至选择将智能合约做成图灵不完备,以此保证公链的安全性。

作为一个致力整合公链开发框架的创业者,冒志鸿的看法简直是要否定以太坊大方向的节奏。

他认为,这半年以来市场没有发生很大的变化,大部分公链都是想做一个更好的以太坊。“凡是想在新公链上做一个虚拟机,都是以太坊的追随者。我有一个大胆的判断:很有可能以太坊都把大家带歪了。以太坊想做全世界的通用计算机,社会需要区块链,但是不一定需要计算机。”

以太坊的智能合约多次出现漏洞,业界普遍认为与智能合约太过灵活有关,即以太坊想把智能合约做成图灵完备。冒志鸿总结,以太坊智能合约漏洞,一是因为太过灵活了;二是由于虚拟机和语言是新做的,不太成熟。“前段时间发出溢出的问题(美图币的问题,都是整数溢出导致的),本来应该在语言层面就解决 。”

“这些都是因为以太坊想做通用计算,愿景太大。”

至于 EOS,在冒志鸿看来“走得更歪”:目标方向是更好的以太坊,实际上只是把以太坊做得更中心化,在虚拟机语言的选择上似乎也有问题。

“以太坊之所以选择写一套新语言 Solidity,就是为了能实现智能合约代码的一致性。为什么不能用现有的语言,而要用一个 VM 来实现?这就要看第三方能不能审计。”他认为,EOS 所选择的虚拟机语言 WebAssembly(WASM)),本质上底层是 JavaScript,能不能做一致性是一个巨大的问题。

Diss 毕两家“现象级别”的通用型公链,他的想法是,公链应该承载更多价值传递的事情。“公链可能应该把更多的东西专注在 Token 上,未来我们想做可编程 Token。”

他将此称为公链除了比特币和以太坊之外的第三种方向,这条链所有的东西都是围绕 tokenise 来实现,专门为 token 服务,不是图灵完备。

ERC20 没有得到足够关注,以太坊只是在这个语言中实现 interface,其实作为一个 Token,它简陋得不可思议。“只能用 token 来表征,比如 token 的智能合约,现在都是当某条件发生的时候,token 会从某地址转到某地址,会如何被分掉。”



作者:陈俊
链接:https://www.jianshu.com/p/0e53ce48ce79


这篇关于ArcBlock 分享 | 以太坊把公链都带歪了吗?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!