主页 > 合法imtoken钱包下载 > 一篇文章阐明了跨层和跨链的方法

一篇文章阐明了跨层和跨链的方法

合法imtoken钱包下载 2023-01-17 08:17:02

作词:李华

受访者:p0n1,艾比实验室研究员; 王东,路印协议创始人; Cdot创始人刘毅; 保利网络创始成员John

跨层、跨链,不同的跨层方式、不同的跨链方式,看似复杂、扑朔迷离,其实背后的逻辑很简单。 本文简要总结了各种跨层和跨链的方法。 我希望它能让“交叉”的事情更清楚。

这篇文章更像是一个索引,围绕下图展开。 如果每个方法的具体实现在之前的文章中都已经讨论过了,那也只是对关键内容的一个参考。 如果你明白这一点,你可以跳过它; 如果没有讨论过,将在详细展开。

usdt怎么兑换人民币_okex里usdt怎么转成usdt_usdt跨链兑换

01

跨层

Layer 2和侧链(包括其他公链)是两个不同的主体,跨层和跨链是两个完全不同的东西。 用一个比喻来说明:

古希腊的神庙用小麦为公民记账。 如果“主寺”忙于记账,就请其他寺庙代为记账。 不管市民的账户记在哪个神庙,也不管这些神庙有没有变化,当市民想要提取资产的时候,总能拿到属于自己的麦子。 这就是跨层。

假设有另一个大陆,一个聪明人为两地的商人提供服务,让每个人在古希腊账本上的资产都可以在这个大陆的账本上使用。 有人将资产转移过来后,这块大陆会在他记账的时候,不会将账户信息上报给主神殿; 另外,这个大陆不产小麦,其核算单位也不是小麦。 如果这个人要从这个大陆上提取资产,他得到的不是小麦,而是跨链。 他能得到什么取决于不同的跨链方式。

跳出类比:Layer 2是一个子账本,cross-Layer是指一套账本体系下的具体记账地点发生了变化,Layer 2和Layer 1的记账单位相同,记账的是Layer 2需要通知Layer 1; 链是不同的分类账。 跨链是从一个账本系统到另一个账本系统。 侧链和主链的记账单位不同,侧链记账不会通知主链。

卷起

分清了Layer 2和跨链之后,我们来看Layer 2。Rollup是最主流也是最有前途的Layer 2usdt跨链兑换,目前看来只需要关注一下。 什么是汇总:

“Rollup是指在链下进行复杂的计算和状态维护,然后通过合约调用状态变化相关的数据,使用更便宜的CALLDATA保存在链上。

usdt怎么兑换人民币_usdt跨链兑换_okex里usdt怎么转成usdt

任何人都可以根据链上存储的数据恢复全局状态,从而消除数据可用性问题带来的安全风险。 Rollup 将大量交易汇总/汇总为一个交易,在保证数据可用性的同时提升TPS。 “

通俗地说:Rollup负责处理具体的记账事宜,但是它的账户是如何被记住的,是在以太坊上报告和记录的,这会让以太坊认可Rollup的账户。 具体来说,Rollup 的工作原理如下(以 ZK Rollup 为例):

“有一个技术上的东西叫Merkle Tree,把不同的数据逐层哈希,最后变成一个简单的哈希值,这个值叫做树的根,这个根其实可以代表树的根。”一切的状态,虽然我不知道具体的状态是什么。

树本身必须在某处找到,如果没有这样的树,只有根,那么帐户就不安全。 ZK Rollup 在 Layer 2 维护着这样一棵树,一开始很简单,里面什么都没有,然后你交易或者支付的时候,就会改变这棵树里面的数据。 这个变化本身就是要放在以太坊上,作为数据上位存储在以太坊上。 (注意:不是把这棵树放到以太坊上,这棵树在Layer 2,而是把这棵树的变化数据放到以太坊上)

因此,你可以通过以太坊在任何时间点恢复树的所有历史状态。 恢复后,你可以通过树的根来验证你恢复的数据是否正确。 任何用户都可以从叶节点到根节点取一串数据。 这串数据称为默克尔证明。

把这个证明丢到以太坊路印协议的智能合约里,合约会计算这个Merkle证明能不能证明你确实在这棵树上。 如果你能证明你在这棵树上,它会把你在这棵树上标记的多少钱从以太坊智能合约中解锁,直接转入你的以太坊账户。 这是在最不理想的情况下提取现金的方法。 “

Rollup实现扩容的原理如下(以ZK Rollup为例):

“为什么ZK Rollup可以扩容,变得这么快,还省钱,跟这个Merkle Tree的更新涉及到的一些计算有关。

比如一个人的账户状态改变了,那么Merkle Tree的根怎么改变呢? 需要逐层计算,直到到达根。 所以一笔交易可能需要改变大概4、5个叶子节点,一次转账可能需要改变大概3个叶子节点。 这些变化非常多。

但是现在,这些变化与以太坊无关。 它不需要为这些变化做计算。 计算都是在 Merkle Tree 和中继中完成的。 在以太坊上,你只需要验证零知识证明。 Maybe Just spend 100,000 gas 或者多少gas,大概是这样的。

比如做1000笔交易,变化可能是4000个叶子节点左右,计算一个根可能需要几万个hash,但是这些数据都在Layer 2,最后丢到以太坊上的数据其实是三个类型:一种是如何改变每一片叶子; 二是如何改根; 第三个是证明前两个一致性的证明。

零知识证明有什么作用? 零知识证明就是验证当树中的数据变化如此之多时,根的计算能匹配到各种变化。 零知识证明只做一件事,就是证明数据的一致性。 它对应的不是每笔交易如何证明,而是大量交易如何证明成一个包/块,这是一个批处理过程。 “

通俗地说:Rollup 帮助主链工作,所以更多的人工作,同时可以做更多的工作。

usdt怎么兑换人民币_okex里usdt怎么转成usdt_usdt跨链兑换

ZK Rollup 和 Optimistic Rollup

了解了 Rollup 之后,再看看 ZK Rollup 和 Optimistic Rollup。 两者的核心区别如下:

ZK Rollup 方案的关键是 ZK。 它的每一次状态变化都需要提供零知识证明,并由主链上的合约进行验证。 只有验证通过才能改变状态。 也就是说,ZK Rollup 的状态转换严格依赖于密码学证明。

在 Optimistic Rollup 方案中,每个状态转换都不需要严格验证。 它乐观地假设每个转换都是正确的,然后可以在一定的时间限制内挑战某个转换。 如果挑战成功,则证明之前的提交有问题。 ,将惩罚提交者并回滚状态。 也就是说,Optimistic Rollup 的状态转换依赖于经济激励和博弈。

ZK Rollup 的突出问题在于可编程性的实现,这是由零知识证明引起的。 如果你对此感兴趣,你可以阅读一篇文章。 程式化的。 不过zkSync(Matter Labs)的VM及相关设计可以将可编程性带到地面,值得期待。

Optimistic Rollup 最关心的问题似乎是资金从 Layer 2 返回时挑战期造成的延迟,但有中介可以提供预付款服务救国,所以这可能不是问题。

以上都是关于跨层的。 它在子分类账中保留账户,并且记录的账户必须分批报告给以太坊; ZK Rollup 使用密码学来杜绝假账户,而 Optimistic Rollup 使用监督和报告的方法来避免假账户。 .

02

跨链

跨链是从一套账本系统到另一套账本系统,无论参与者是哪两条链,或者如何跨链,当发生跨链时,都需要第三方在两条链之间. 否则两条链都不知道另一条链发生了什么,跨链就无从谈起。

一个完整的跨链流程如下(以锁定+铸造为例):

“跨链桥非常直观,它有两个桥墩和一座桥。两个桥墩是两套智能合约,一套运行在A链上,一套运行在B链上;桥在中间,而bridge是一个链下进程,负责监听双方的事件,用于这两套智能合约。

假设有一个 ERC20 代币,比如 UNI,它是在以太坊上发行的,我们想把它转移到 PlatON 上。 那么以太坊端肯定有智能合约,比如Vault合约,它是跨链桥的一个码头; 跨链用户需要发送Vault合约的Lock方法,传入需要锁定的币种和数量作为参数。 然后提供一个PlatON地址,说我锁定500个UNI,以便在这个地址上铸造500个UNI替代品。

okex里usdt怎么转成usdt_usdt跨链兑换_usdt怎么兑换人民币

此时Vault合约会调用UNI合约转入UNI,将UNI从用户地址转入Vault合约地址,即锁定UNI。 锁定完成后,Vault合约会发送一个事件,比如AssetLock事件。

链下进程通过RPC接口连接到以太坊节点。 它将订阅 Vault 合约的 AssetLock 事件。 只要这个事件出现在日志中,链下进程就会得到这个事件。 这个事件包含了相关的参数,比如锁定了哪个币,锁定了多少,谁是另一条链上的受益人。 链下进程也有一个连接到 PlatON 的 RPC 接口,它会向 PlatON 提交一个交易,假设这个交易叫做 Mint。

PlatON 上也会有一个合约,比如 Control 合约,它是跨链桥的另一个码头; 控制合约会提前创建一个类似ERC20的合约,比如EUNI。 Control合约收到Mint请求,确认请求确实来自witness后,会调用EUNI合约的Mint方法,告诉它为某个地址铸造500个EUNI代币; EUNI铸造后,会放在用户提供的地址前,用户可以使用。

假设用户将EUNI转给另一个用户,新用户想要在以太坊上使用UNI,他需要做的是调用Control合约的Redeem方法,销毁例如100 EUNI,并发布一个名为AssetBurn的事件。

当链下进程监听到Control合约的AssetBurn事件时,会向Ethereum Vault合约发送交易请求,并调用Release接口。 以太坊在验证交易来自见证人后,会从 Vault 合约的地址转入 UNI。 到指定的用户地址,用户得到原始的UNI。 这是一个完整的跨链过程。 “

简单来说,跨链就是先在A链上进行一个操作,然后一个信使把消息告诉B链,B链再进行相应的操作。 也可以看出侧链不同于Layer 2的方法。 侧链只在发生跨链时与主链通信,而 Layer 2 定期与 Layer 1 通信。

虽然跨链是指从A链到B链的资产交叉,但是B链没有A链的真实资产(没有小麦),比如除了比特币链之外的任何一条链上都不会有真实的BTC,会有除了以太坊之外,任何链上都没有真正的 ETH。 用户在 B 链上收到的内容取决于不同的跨链实现方式。

锁定+投射

锁定+铸币的方式是这样的:在A链上锁定资产,在B链上铸币对应的资产; 销毁B链上的铸造资产,解锁A链上对应的资产。

用户在 B 链上收到的是他使用的跨链协议铸造的资产。 比如他使用Ren跨链协议,他收到的就是renBTC,类似于BTC的某种等价兑换券。 只要跨链协议和B链没有问题,这个兑换券就没有问题。

锁定+解锁

如果有一个叫test的token,它的发行者在A链和B链上都发行过token,那么这个token可以采用lock+unlock的方式:锁定A链资产,释放等量的A链资产B; 资产锁定在 B 链,等量资产在 A 链释放。

在这种情况下,用户在 B 链上收到的不是类似于兑换券的“假”资产,而是“真实”资产。 用户不用担心跨链桥的问题,因为跨源链变现资产不再需要依赖跨链桥usdt跨链兑换,锁定+解锁的方式可以单向使用跨链桥是一次性的。 (文中真假无意贬低,只是为了明确区分不同的跨链方式)

usdt跨链兑换_okex里usdt怎么转成usdt_usdt怎么兑换人民币

这种跨链方式安全便捷,但只适用于已在多条链上发行的代币,并且需要发行方配合跨链协议。 它可能是最好的选择,但单独使用时并不通用。

跨链池:交易所

兑换方式需要引入跨链矿池这个新主题。 跨链池既不位于源链也不位于目标链,它位于提供跨链服务的协议所在的链上,其工作方式如下图所示(以Poly Network为例子):

usdt怎么兑换人民币_usdt跨链兑换_okex里usdt怎么转成usdt

用户的USDT从以太坊跨链到BSC的流程如下:先在以太坊上锁定USDT,然后在Poly上释放PUSDT,然后在跨链池中将PUSDT兑换成PBUSD,再在Poly上锁定PBUSD,最后释放PUSDT 在 Poly 上发布 BUSD 在 BSC 上。

这个过程看似复杂,有两次跨链操作加一次交易操作,但对于跨链用户来说,这个过程无所谓。 他把 USDT 放在以太坊上,在 BSC 上得到 BUSD。 在交换模式下,用户收到目标链上的“真实”资产,因此无需担心跨链桥接问题。

这种跨链方式之所以被发明并流行起来,是因为它可以带来两个好处:

1. 随机交叉令牌。 用户可以将任何代币放在以太坊上,并在 BSC 上获得他们想要的任何代币。 在下面的示例中,用户投入 ETH 并获得 BNB。

usdt跨链兑换_usdt怎么兑换人民币_okex里usdt怎么转成usdt

与对应币种的跨链相比,跨链过程需要多进行一次交易操作。 这笔交易不发生在跨链协议的交易池中,而是发生在源链或目标链的原始交易协议中。 这里,链协议分别提供了源链和目标链的DEX聚合器功能,为用户寻找源链或目标链上的最佳交易价格。

至于交易发生在源链还是目标链,取决于哪条跨链路径的价格更优。 例如,跨链流程也可以是:ETH-PETH-PBETH-BETH-(BETH:BNB)-BNB。

再者,假设用户想用ETH兑换USDT,且BSC上的交易价格优于以太坊,那么一个可能的交易路径为:ETH-PETH-PBETH-BETH-(BETH:BUSD)-BUSD-PBUSD -PUSDT-USDT。 有一些协议开放了不同链的流动性。 我想很大程度上是指这件事。 这种跨链架构可以通过交易路径的选择,为用户提供多条链上最优的交易价格。

2.随意跨链。 锁定+解锁的方式是两条链的直连:跨链协议在以太坊和BSC之间搭建跨链桥梁,在以太坊和Polygon之间搭建跨链桥梁。 这时,如果要实现 BSC 和 BSC Polygon 之间的跨链,就需要在 BSC 和 Polygon 之间建立一个新的跨链桥。

usdt跨链兑换_usdt怎么兑换人民币_okex里usdt怎么转成usdt

而交换方式通过跨链池连接多条链,可以实现架构中任意两条链之间的跨链:跨链协议连接以太坊和BSC。 这时如果接入Polygon,就可以提供Polygon与以太坊、Polygon与BSC的跨链,无需一一搭建桥梁。 其结构如下图所示:

usdt跨链兑换_usdt怎么兑换人民币_okex里usdt怎么转成usdt

“跨链池:交换”方式可能会衍生出一个或多个跨链底层协议:每个协议在自己的应用中想要提供跨链功能,只需要接入这些跨链协议即可支持跨链-链; 一方面,“跨链池:交易所”也是应用自建链的一种方式。 一些 DeFi 应用已经声明它们将是链。 他们的链不是像公链那样支持各种应用的链,但是很可能会上传这样的链,如文中所述维护自己的多链流动性池。

需要注意的是,兑换方式和锁仓+铸币方式并不能相互替代,它们解决的是不同的问题。 跨链交换方式是基于两条链上已经存在的资产。 它不能从源链上“带”出不在目标链上的资产。 当需要将源链资产投射到目标链上时,需要使用锁定+投射的方式。

其他跨链分类维度

跨链需要第三方在两条链之间进行通信,以上三种跨链方式也不例外。 该消息的第三方可以被许可,例如跨链协议形成的联盟; 也可以是非许可的,比如不需要许可就可以进入的节点。 因此,有3×2=6种跨链方式。

跨链也可以分为见证人跨链和中继跨链。 它们的区别是:

》当目标链收到消息时,如果是见证人跨链,则验证消息来自见证人,如果相信见证人,就会执行应该执行的操作;如果是中继跨链,验证这条消息不是来自哪个中继,验证这条消息是否来自源链,如果是则执行该执行的操作。

也就是说,见证人可以看作是需要信任的中继,而中继可以看作是不需要信任的见证人。 这是两者的核心区别。 中继显然比见证更符合 trustless 原则。 “

中继跨链优于见证跨链。 在这种方法中,负责传播消息的第三方不能作恶,但这种方法需要另一条链上有两个轻客户端,有些链没有办法实现其他链的轻客户端,比如比特币。

因此,这种分类方式不会带来6×2=12种跨链方式,而是:如果具备实现中继跨链的条件,跨链协议会实现或旨在实现; 如果没有条件实现 跟随跨链,只能以见证人的形式跨链。

以上都是关于跨链的。 跨链就是跨到另一个账本上。 有3种不同的跨链方法。 不同的方法决定了你跨链到目标链的时候有什么,也决定了对跨链桥的不同依赖程度。

结论:

说到跨链,我们还会说到Polkadot和Cosmos。 但实际上,Polkadot 并不为跨链服务。 它是以链为单位的结构。 它的跨链是指在这个结构内链与链之间的交互; Cosmos 服务于跨链。 它所做的是链与链之间的通信标准。 使用其标准的链可以轻松实现跨链,但前提是采用其标准。

最后我想表达的是,虽然现在有很多公链在开发中,但是大部分都是类似以太坊的。 真希望以后能有一些公链跟以太坊不一样,不是性能上的。 区别不是一样,而是可以做什么的区别。