当前位置:首页 > 比特币新闻 > 正文

分分钟发链的背后,Substrate技术框架能否开启跨链时代

来源: 互联网时间:2019-03-04 14:58:12

在今天的Web3峰会上,前以太坊联合创始人,现Polkadot(波卡)链创始人Gavin Wood通过一台全新的Mac电脑,在15分钟内开发了一条全新的区块链,可谓惊艳四座。而其用到的,正是被Parity公司称为Substrate的一种技术方案。

p5

如果你关注Polkadot的开发进展,你可能会多次看到“Substrate”这个词。它是Polkadot项目的重要组成部分,但网络上有关它的信息,是非常有限的。它并没有出现在Polkadot的白皮书或者黄皮书当中,而关于它的规范说明书正在不断地被修改和完善。从较高的层面上来看,Substrate是用于创建密码货币和其它去中心化系统的一种新框架。

根据Parity Technologies公司软件开发者Jack Fransham 撰写的《什么是Substrate?》这篇文章,我们可以得到以下这些信息:

虽然Polkadot是使用Substrate构建的,但Substrate并不只属于Polkadot,任何项目方或个体都可以通过Substrate来构建自己的区块链,这不需要等待Polkadot的完成,你甚至无需发布概念验证,就可以开始使用该框架来开发区块链。而等到Polkadot主网上线之后,这些通过Substrate构建的区块链,都可以无缝地和Polkadot链进行交互。

那Substrate到底属于什么呢?你可以将其视为Express应用程序框架,或者另一个Web应用框架,但它是用于构建分布式或去中心化系统的(例如密码货币或消息总线(Message Bus))。正如大多数Web应用不需要重新实现自己的HTTP版本一样,Polkadot团队认为,大家都从头开始构建网络和共识代码,是一件非常浪费精力的事。如果你想使用Substrate来构建一个新项目,你所要做的,就是在你的代码中实施非常少量的hooks函数,然后你就可以免费获得:

  1. 共识,终结性和区块投票逻辑。即使你并不是在构建一个密码货币,这也是可取的,这意味着你可以免费获得拜占庭容错共识。因此,即使系统中的部分节点被攻破了,或者转为了恶意节点,系统也能够继续正常工作;
  2. 一个高效的、确定性的沙盒WebAssembly runtime(应用的运行环境),它可用于运行智能合约,甚至运行其它基于Substrate的项目。你不需要使用WebAssembly,当然,你也可以编写自己的虚拟机解释器,但Polkadot团队坚信使用WebAssembly runtime的好处,这样做你就可以利用全球开发社区为其创建的各种工具;
  3. 能够在浏览器中无缝运行节点,它可与任何桌面或云节点进行通信;
  4. 跨平台的数据库和文件存储抽象,甚至它可以在浏览器中运作;
  5. 无缝客户端更新,任何可能影响共识的更新,都是通过将代码编译到WebAssembly,并将其部署为网络上的另一条消息来处理的。不仅如此,你还可以存储自己希望的多版本的共识代码,并且Substrate将处理相关复杂性,确保正在执行的本机代码与当前部署的WebAssembly代码保持一致。
  6. 当Polkadot网络正式上线时,你可以立即将自己的项目与Polkadot网络无缝对接……

而对于私密交易的区块链实现而言,想要通过Substrate框架进行构建可能会更复杂。此外,截至目前,该技术方案的很多技术名称都没有定稿,所以你会在不同的地方看到不同版本的说法。但这里有一些简单的关于你需要实现什么,才能启动并运行一个完整的区块链:

(1)、一个根据前一区块头来创建新等待区块的函数,这个区块头包含:

  1. 区块高度;
  2. 对区块状态的”加密承诺“,这对于验证区块是否正确的轻客户端而言,是非常重要的。加密承诺与哈希具有相同的作用,你无法在不使承诺失效的情况下更改状态;
  3. 对区块体内所有外在因素的加密承诺,防止外在因素被改变;
  4. 区块的父级哈希值;
  5. 一些额外的任意数据,这类数据的一个用例是用于客户端更新,因为轻客户端仅同步区块头信息,如果要更新它们,就不能以一种外部的方式实现更新,否则轻客户端就不会接受它们;

(2)、一种将外部数据(例如交易)添加到等待区块的函数。它也会更新链的状态(例如,账户余额);
(3)、获取等待区块,并从中生成完成区块(finished block)的函数,然后这些完成区块,就可以在整个网络中得到传播;
(4)、执行现有区块的一个函数,它是由全节点来负责运行的,它可以确认接收到的区块,在被接受之前是有效的。例如,在一个价值链中,你可以检查没有人尝试转移超过其余额的资金。

而这种设计的其中一个缺点在于,你必须手动确保在创建区块时完成状态转换,以及在执行现有区块同步时 完成状态转换。如果你不这样做,你可能会遇到共识问题!而在未来,这可能会发生一些变化,但在当前的实践当中,这不会是一个很大的问题,因为你可能会把外部执行委托给一个公共函数;

此外,你需要提供一个验证者集。这覆盖了权威证明(proof-of-authority)、权益证明(POS)以及委托权益证明(DPOS)链,但目前Polkadot团队无意在Substrate框架当中支持工作量证明(POW)链。

p6

(Substrate简短规范,来源:https://www.parity.io/substrate/)

而从以上这些信息,我们不难看出,Polkadot团队是希望通过Substrate技术框架来为其跨链大业进行铺垫的,类似的跨链项目Cosmos也有这种设计,而Substrate的作用,类似于以太坊当前的ERC-20通证标准,只不过以前是人人发币,以后便是人人发链。

更多的资料:

Video: Gavin Wood presenting Substrate at Event Horizon 2018
Video: Rob Habermeier presenting Substrate at Truebit’s Berlin meetup

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。