在上文中,咱们为你们介绍了「链下」技术中的状态通道、Plasma。接下来咱们会为你们介绍链外计算的两种方案。安全
以太坊声称要作计算机,EOS 要作全球操做系统,但不管是作计算机仍是作操做系统都得正视计算这个问题,链上计算的开销是很是大的,链上每个 EVM 的 Code 计算须要全球计算机都算一遍,才能得出结果,因此有人作了这么一个计算的扩展,在链外作 Computation。
这个方式大体有两种框架
第一种是在可信的执行的环境中,把这个计算算出来,而后传到链上去,再加上可信环境的一个证实。
这个证实不是计算结果的对和错,而是证实这个计算是在安全的环境里运行的。
可信的执行环境在工业界相对来讲仍是比较成熟,ARM 芯片是支持 TrustZone 方案的,咱们用的苹果和安卓手机的指纹,它的秘钥信息都是存在 TrustZone 里面的。它的优缺点经过介绍其实也比较清楚了。
优势性能
缺点区块链
因此这种依赖于安全执行环境的 Layer 2 方案通常是由联盟链或者是企业内部的链来使用的。加密
第二种叫 Trurbit,它解决的也是链外运算的问题,这个项目颇有趣。这里面有好几个角色,包括用户、Solver 和 Challenger。spa
第一个是计算需求的提出者(用户),这个计算需求是用 Truebit 的 VM 来描述的,在实际操做的时候,Truebit 的 VM 是用 Rust 实现的操作系统
用户能够选择悬赏的方式找人来帮他作运算,运算的执行人叫作 Solver。Solver 把每一步的运算状态都算成一个哈希折叠到默克尔树里面,在最后,Solver 把全部运算结果的默克尔树的根哈希,以及运算的最终结果提交到区块链上。
而 Challenger 须要本身算一遍生成结果,若是他发现算的结果和 Sovler 算的不同,他就能根据错误信息找到哪一步或者是哪几步错了。Challenger 就能把这个状态和状态运行的指针上传到区块链上,挑战这个 Solver。
由于 Truebit 在链上拥有指令集,并且 State 能够证实它在原来的默克尔树里面,因而链能够计算这个 State 加指令获得一个新的 State,经过这个链能够开始判断,这个 State 是 Solver 生成的 State 仍是 Challenger 生成的 State,谁对谁错。
Truebit 只须要链上的一步运算,就可以证实全部运算是正确的仍是错误的,它能把普通运算折叠成了最关键的计算,交给主链去运算,验证。.net
延伸阅读:指针
Layer2 | 区块链发展新思潮
Layer2 | 状态通道 State Channel
Layer2 | Plasma 框架
Layer2 | 链下计算
Layer2 | 链间通讯 blog