NEAR彩虹桥是如何工作的

1 min read
NEAR DeFi Aurora
To Share and +4 nLEARNs

作为唯一的无需许可、去信任的以太坊桥,NEAR彩虹桥在密码学领域是很独特的。本文将介绍它的工作机制!

NEAR协议构建了彩虹桥—一个在密码学领域独特且高价值的完全去信任的桥,可以在以太坊与NEAR之间,以及最终与极光(Aurora)之间转移通证。已有一些技术文档描述这个桥,而本文希望能让任何一个对密码学有基本认识的人能了解这个桥的工作机制。

概念

假设我要从以太坊转移20枚DAI到NEAR上。当然不可能在两个网络之间将通证进行物理转移,这意味着我们需要将20枚DAI移出以太坊上的流通,再投放20枚DAI到NEAR上流通,这样总的DAI流通量保持不变。

以下是通过无需许可且去信任的方式完成该需求的方法:

  1. 告诉以太坊网络我要把20个DAI转移到其他地方;
  2. 以太坊锁定我的20个DAI到一个保管库(一个智能合约),这样它们就退出流通了;
  3. 一旦确认这20枚DAI已经被锁定在以太坊上了,我就告诉NEAR给我创建20个新的DAI;
  4. 然而空口无凭,NEAR要求我提供20枚DAI已经在以太坊上锁定的证明;
  5. 我向NEAR提交以太坊上的锁定证明;
  6. NEAR独立验证这个证明,通过后给我创建NEAR上流通的20枚DAI。

之后,一旦我想把DAI转移回以太坊,只要简单逆转上述流程即可,很优雅,是吧?

参与方

现在让我们看看在使用彩虹桥的过程中,实际上发生了些什么。这涉及到组成彩虹桥的一些技术组件:

彩虹桥UI — 这是网址。作为用户,你使用它与彩虹桥交互,在网络之间转账。

轻节点(LiteNode) — 它是一个区块链节点,不过仅仅存储区块头,因此极大的减少了存储占用。轻节点是以智能合约实现的,一个部署在以太坊网络上,存储NEAR区块头,另一个部署在NEAR网络上,存储以太坊区块头。

(仅供参考,因为历史原因,轻节点在其他文档中也被叫做轻客户端(light client)。如果要问,“存储区块数据的实体应该叫什么?”,我的想法是“一个节点”,所以在这篇文档里,我用轻节点这个词,以便帮助建立思维模型。)

中继(Relayer) — 轻节点是智能合约,它们不会自己运行和更新信息。中继是一些脚本,运行于传统服务器上,它们周期性地从一个区块链上读取块,传递给运行于另一个链上的轻节点。也就是说,中继保持轻节点的数据最新。

每次更新轻节点都是一笔交易,因此会消耗gas费。NEAR上的轻节点(含有以太坊区块)逐个以太坊块进行更新(因为NEAR上的gas费便宜),而以太坊上的轻节点(含有NEAR区块)更新频率是可配置的,受限于经济性(目前是12到16小时更新一次)。

连接器(Connector) — 连接器是种智能合约,负责特定资产类型的跨链管理逻辑。与轻节点类似,它们成对出现。一个运行于以太坊,另一个运行于NEAR。例如,有一对“ETH连接器”,负责在链之间转移ETH资产。还有一对“ERC-20连接器”, 负责转移ERC-20通证。其他人可以根据他们的需要,开发一个“NFT连接器”、“预测市场结果连接器”、“DAO投票结果连接器”等。只要有对应的连接器,任何资产或数据都可以通过彩虹桥移动!

把组件合起来

要理解这些组件是如何组织起来,使得我可以无需许可的,去信任的在以太坊和NEAR之间转移通证,让我们重新过一遍开头的例子:

  1. 使用 彩虹桥UI, 我发起了从以太坊到NEAR的20个DAI的转移。
  2. 当我在MetaMask上确认了前两笔交易(approve 和 transfer),彩虹桥与以太坊上的ERC-20 连接器通信 (因为DAI是一个ERC-20通证),连接器将这20枚DAI锁定在它的保管库中。至此,这笔DAI就不再在以太坊上流通了。
  3. 基于我这笔交易区块的区块头数据,彩虹桥UI 计算出一个密码学“证明” 表明我确实锁定了20枚DAI。
  4. 接下来我要请求NEAR网络基于刚才以太坊上活动而创建一些DAI,就先要等待中继发送大概20个以太坊区块头给运行在NEAR上的轻节点。这是为了安全的考虑,跟你充值给虚拟币交易所时需要等一些确认一样。
  5. 之后,彩虹桥UI就允许我们执行流程中的第二步 — 让NEAR上的ERC-20 连接器为你在NEAR链上创建20枚新的DAI。
  6. 当向ERC-20 连接器发起这个请求时,我们要提供那个早先收到的密码学“证明”,以证明我们确实在以太坊上锁定了20枚DAI。
  7. NEAR上的ERC-20 连接器接下来查找NEAR上轻节点的以太坊区块头,然后创建一个独立计算出来的密码学证明。
  8. 如果我们提供的证明匹配上连接器算出的那个,它就知道20枚DAI已经被安全的被我锁定在以太坊上了! 接下来就在NEAR上创建20个新的DAI,并转账给我的钱包。

当我要把DAI转移回以太坊,流程反转。不过我们不是在NEAR上锁定那20枚DAI,而是销毁它,也叫做燃烧。然后我们提供燃烧的证明给运行于以太坊上的连接器。通过访问运行于以太坊上的轻节点里的NEAR区块数据,连接器验证那个证明,随后从保管库里释放20枚DAI并发送给我我的钱包!

简而言之,这就是彩虹桥的工作机制!它是密码学领域唯一按这种方式工作的以太坊桥。目前支持无需许可的在以太坊和NEAR之间转移资产,不久之后,极光链(Aurora)也会加入。而这一切都无需信任任何第三方. 非常的酷!

其他说明

这里有些有关以上内容的有趣的说明:

  • 因为NEAR到以太坊中继每16个小时才发送一次NEAR区块头信息给以太坊上的轻节点,造成了该方向跨链在第一步和第二步之间有16个小时的延迟。 (还记得吧,这是因为以太坊上的gas费太高,每个块都更新轻节点过于昂贵。)有一些致力于降低该延迟的方案,团队正在积极研究中。
  • NEAR上的轻节点本来是要存储以太坊的所有历史区块。但是为了让存储可控,轻节点会清除大概两周之前的区块。这意味着,如果你发起一笔从以太坊到NEAR的转账,然后在第一步和第二步之间出去度假了三个星期,你将无法完成这笔转账,因为用来检验你的“证明”的那些NEAR上的以太坊数据已经被移除了!
  • NEAR区块头设计上有个有趣的特性,就是仅靠一个区块头,就能计算过去一大段时间里的区块历史。所以理论上,以太坊上的轻节点只需要一个NEAR区块;然而,我们仍然保留多个区块,因为进行那种计算消耗的gas费是一种对资源的纯粹浪费。
  • 彩虹桥的开发团队正是极光,NEAR上的EVM,的开发团队。因为这个团队已经独立出去形成自己的实体,彩虹桥会由该实体负责运维管理和未来发展。
  • 极光团队正致力于开发彩虹桥的“自动终结”特性。这样你就无需手动发起跨链转账的第二步了。这将给用户带来极大的便利(意味着你讲可以发起一笔以太坊到NEAR的转账,然后去度假!)
  • 以太坊和极光之间的跨链转账是由极光桥负责的,它使用与彩虹桥相同的核心技术,增加了NEAR/极光之间转账的隐藏步骤处理。
  • 彩虹桥和极光桥在用户界面和使用体验上有所不同。但是未来的某个时候,它们会趋于一致。

尽管简化了一些技术细节,你现在也对彩虹桥的运行机制有了一个基础的认识!

要深度了解彩虹桥,你可以阅读该文档。要跟进极光的所有相关信息,请关注极光的推特!

Generate comment with AI 2 nL
96

发表评论


To leave a comment you should to:


Scroll to Top
Report a bug👀