2021-06-16 14:31

Dfinity和以太坊建立互操作性

作为区块链革命2.0的以太坊和3.0的Dfinity是如何结合在一起的,今天我们带各位小伙伴了解这两大公链赛道项目是如何结合互补的。

在进入这篇文章之前先让大家理解一个词——容器 (canister),它是WebAssembly字节码的一个捆绑包,它们可以以web速度运行,可以直接为终端用户提供web体验提供端到端的区块链,可以用于创建可拓展的的dapp,并且可以稳定的处理和存储数据,容器是运行在子网上的,并且每个子网和子网之间的容器都可以相互通信交互(Dfiniyty上的智能合约)。

现在部署在以太坊一个GB智能合约数据需要花费100000000美元(Dfinity创始人博客文章提到),但是在Dfinity上部署一个智能合约每年的费用会低于价值5美元 Cycle (cycle是给容器充电的一种稳定gas费,需要通过ICP兑换)。


以太坊数据存储查看链接:


https://proderivatives.com/blog/2019/5/10/minimizing-data-storage-cost-on-the-ethereum-network

在Dfinity上部署智能合约比在以太坊上部署应用性价比高很多,那么怎么能够让Dfinity上的容器和以太坊上运行的智能合约连接降低成本,就需要让以太坊的智能合约直接在Dfinity上调用容器 (智能合约),并使Dfinity的容器(智能合约)直接在以太坊上调用智能合约。

例如:一个运行在以太坊上的DeFi系统使用的是互联网计算机上的容器为终端用户提供用户体验,而不是使用Amazon Web Services云中托管的不安全网站,通过互联网计算机上的智能合约服务的网站也可以与互联网计算机上的其他容器安全的交互,那么整个系统可以实现自治,所以这两个网络组合有着巨大的想象空间。

注意:Dfinity容器因为有特殊节点数据中心是可以充当底层设施的。

这种架构提供了很大的想象空间:

1、DEX可以使用互联网计算机上的(容器)创建,其结构类似于Poloniex所提供的接口,DEX的价值和资产由以太坊结算;

2、基于以太坊的DAPPS可以使用互联网计算机来维护和服务大型数据对象,包括视频文件。

以太坊和互联网计算机的集成将为以太坊的Dapp提供一条路线,通过互联网身份来就解决可用性,允许用户使用设备在互联网电脑上验证自己的区块链服务,比如他们手机上的Face ID 、笔记本上的指纹传感器、yubikeys和Ledger设备,无需持有代币或者管理代币钱包。

以太坊Dapp的终端用户可以使用互联网身份认证网站上的服务,而互联网计算机上的底层智能合约安全无缝的管理创建底层以太坊交易,这消除了一个关键的障碍。


实现阶段一


使互联网计算机容器能够调用以太坊智能合约

互联网计算机网络使用 Chain key (连锁密钥)的密码学创建,这很大程度依赖阈值,这阈值加密中,组织子网的区块链节点机器共同管理单个 链密钥 ,通常是48个字节,本质上,这是链的公钥,与这些链交互的相应签名来(a)交互有效,(b)链正确;

组成链的节点维护私钥份额 ,该私钥份额可以使用与阈值相等数量来生成与公链相对应的签名,及时托管的节点发生变化,链密钥也保持不变。

互联网计算机依赖BLS阈值签名,通过在互联网计算机上建立一个特殊的 代理 容器和引入EGDSA阈值签名就可以调用以太坊上的智能合约功能,通过调用函数就可以创建比特币交易和以太坊交易。

但是EGSDA阈值签名不是完全有效的,它不适合在互联网计算机的协议中使用,在创建以太坊交易构建阈值签名上的费用还是会更高。

但是这种调用也会有问题出现互联网计算机调用以太坊的智能合约结果怎么返回以及以太坊上的智能合约怎么调用到互联往往计算机的容器上。

只需要通过工作量证明检查它们的嵌入程度就能查看哪些区块是有效的,将新的以太坊区块复制到互联网计算机上的代理 容器中,然后该代理容器能够通过查看嵌入链中的工作量来检查私募时候有足够的可能性完成区块,一旦智能合约看到那个区块完成,它就可以扫描这个区块查到从以太坊智能合约到互联网计算机智能合约的调用,以及呼叫结果的另一个方向,然后代理容器将在互联网机上调用智能合约,将值返回到先前的以太坊中调用的智能合约。以太坊的智能合约将通过以太坊上的另一个 代理合约在互联网计算机上调用智能合约。

终端用户与联网计算机上的智能合约提供web体验进行交互时,可以触发对以太坊的呼叫调用,并将结果返回给他们,以太坊上的智能合约可以在互联网计算机上调用容器,但是有一个问题需要改进,互联网计算机的智能合约只能向终端用户显示以太坊的智能合约通过代理合约调用的函数推送给他们以太坊数据,但是以太坊上进行任何函数的调用费用都很贵。


实现阶段二


为了使以太坊智能合约的数据和功能以接近零的成本提供给互联网计算机容器,必须实现在代理容器中维护以太坊当前的状态副本,也就是说代理容器不仅必须要扫描最终的以太坊区块获取交易数据,而且必须使用接受到的区块来维护更新以太坊的完成状态副本,完成这个操作之后,互联网计算机的容器将能够在不修改其状态的情况下调用以太坊智能合约。

例如:调用一些返回信息或者执行一些统计分析的以太坊智能合约)接近零成本的话它将要在合约内运行一个以太坊节点,运行方式和现在Infura节点相似

第二阶段是一项更复杂的任务,并且要花费更长的时间,尤其是因为互联网计算机现在的容器 最多只能容纳4GB的内存,因为以太坊状态必须要跨多个分片。


最后一个方案


实现互联网计算机的节点和以太坊的节点能够相互通信。

可能有些小伙伴没有理解透彻我给大家做个总结:


阶段一方案


通过在互联网计算机和以太坊建立一个特殊的代理智能合约和引入ECDSA阈值签名就可以直接调用以太坊的智能合约功能,调用函数就可以创建以太坊和比特币交易,当一个区块被达成共识的之后,代理智能合约就会扫描有没有从以太坊智能合约和互联网智能合约之间的调用,然后将以太坊的智能合约返回的信息。

但是EGSDA阈值签名不是完全有效的,它不适合在互联网计算机的协议中使用,在创建以太坊交易构建阈值签名上的费用还是会更高。


阶段二方案


在代理智能合约中搭建以太坊节点扫描以太坊的区块获取交易数据,维护接受到的区块和更新以太坊的状态,因为以太坊的状态是要跨多个分片才能获取到的,但是这得让时间话时间去实现,因为现在容器能容纳4GB的内存。


最后一个方案


让互联网的节点和以太坊节点相互通信来实现,但是不同网络之间的节点很难进行通信,如果有一个很好的解决方案,将会有一个1.5阶段方案。这是一个骚操作

本文链接:https://www.8btc.com/media/6649443
转载请注明文章出处

评论
登录 账号发表你的看法,还没有账号?立即免费 注册
下载
阅读
分享
评论
点赞
上一篇
下一篇