http://www.7klian.com

ENS 如何实现互操纵性?相识以太坊 Layer 2 通用桥

string gateway; function claimableBalance(address addr) external view returns(bytes prefix, string url) { return (abi.encodeWithSelector(claimableBalanceWithProof.selector, addr), gateway); } function claim(address addr) external view returns(bytes prefix, string url) { return (abi.encodeWithSelector(claimWithProof.selector, addr), gateway);

ETH

最后,客户端验证返回的 calldata 是否以合约所断言的前缀开始,假如是,则利用生意业务发送 calldata 给合约。

(为了简化,我们省略掉了 verifyProof (验证证明成果)的实现)

这里的网关处事只需要为客户端所发送的 claim 挪用解码函数挪用数据,组装一个证明 —— 可能,,在一个实际的 L2 方案中,参考 L2 来组装出一个证明 —— 然后将功效编码放在对 claimWithProof 的挪用中,返回给客户端。

实用的要领必需满意下列条件:

因为认真领略如何与 L2 交互的是网关处事,所以这样一种简朴的协议就可以让客户端从链下得到数据,而且不需要让客户端领略任何与 L2 相关的对象。为了利用这套系统,每一个应用都需要为本身意向交互的 L2 实现并陈设一个网关处事和一个验证合约。在大部门利用,这些网关可以长短常通用的,低落了在差异应用间反复劳动的承担。

const args = tokenInterface.decodeFunctionData("claim", data); const balance = balances[args.addr]; const proof = merkleTree.getProof(addr, balance); return merkleInterface.encodeFunctionData("claimWithProof", [args.addr, balance, proof]);

撰文:Nick Johnson

相应地,这里有两个主要的构成部门:第一个,是一个放在以太坊 contract PreloadedToken is ERC20 { mapping(address=>uint) preload; function claimableBalance(address addr) external view returns(uint) { return preload[addr]; } function claim(address addr) external { if(preload[addr] > 0) { mint(addr, preload[addr]); preload[addr] = 0; } } }

原文标题:《引介 | 一种以太坊 Layer 2 的通用桥》

这个简朴的办理方案有一个显而易见的问题:陈设者必需在陈设时将所有余额填充到 preload 映射中,这是一种很是昂贵的操纵。他们会更愿意把数据存储在链下,然后让可以或许证明本身拥有余额的用户来提取本身的数额。用默克尔树很容易就能实现这一点:

对付 ENS 和其它应用来说,要害问题在于,在一个存在很多互不兼容的 Layer 2 方案的世界里,如何能以信任最小化的方法 —— 也就是不引入任何新的信任假设 —— 从某个系统中检索数据,且不需要酿成所有 Layer 2 方案的客户端、本身来存储大概有用的数据 。

接下来,我们需要实现一个网关处事来,可以满意客户端的查询请求。以 claim1 为例,很直接就能实现:

安详思量和信任模子

假设客户端信任了原始合约 —— 我们的意思是,期望该合约会以特定的方法运行,而这可以通过查抄它宣布的源代码来验证 —— 那么这个系统就不会引入任何新的信任假设。固然网关的响应是一个外部流程,但其不良行为的范畴仅限于拒绝处事。

向合约发出查询数据的请求。合约并不直接返回所需的功效,而是返回两个值:一个 网关 URL,以及一个 calldata 前缀。

重要的是,这三个步调的流程在挪用者处可以完全抽象掉;一个领略这个协议的库就可以让整个流程看起来跟一个通例的 web3 合约挪用一般无二,也就是说,不只应用不需要知道本身在跟哪个 L2 交互,它们甚至完全不知道本身是在跟 L2 交互!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读