IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> Optics Bridge:Celo <-> 以太坊 -> 正文阅读

[区块链]Optics Bridge:Celo <-> 以太坊

1. 引言

目前,Celo生态已上线的跨链方案主要有3种:

  • 1)Optics Bridge:当前支持 cleo、以太坊、Polygon三者之间跨链。即将支持Avalanche。
  • 2)AllBridge:支持与Solana等多种生态跨链,为信任模式跨链方案。
  • 3)Moss:支持Celo与以太坊跨链。方案同 RSK<->以太坊 trustless bridge

Chorus One:bridge between Cosmos and Celo 目前未上线?

Optics Bridge目前有2套UI界面供用户操作:

也可通过Optics Bridge部署在Etherscan上的合约地址来进行操作:

Optics Bridge开源代码见:

Optics中:

  • 以Solidity语言实现了链上合约
  • 以Rust语言实现了链下系统agents

未来将针对NEAR和Solana实现Rust版本的链上合约。

1.1 Optics VS IBC

Optics为跨链通讯系统,其可将raw buffers在链之间以便宜、无需关注链共识细节的方式传输。

与IBC等跨链协议类似,Optics需要在链之间创建channels,然后通过channel来发送消息。一旦一个channel建立成功,任何基于该链的应用都可使用该channel来发送消息到其他链。建立的channel由xApp(又名“cross-chain applications”) developers来使用。

与其他IBC和基于PoS light client的跨链方案相比,Optics具有更弱的安全保证,以及更长的延迟周期。但是,Optics可在任意支持智能合约的链上实现,无需工程化定制light client。因为其不需要运行light client,Optics不需要额外的gas来验证对方链上的区块头。【Optics V2上线之后,延迟周期由3小时缩短为了30分钟。】

换句话说,Optics优先考虑:

  • 1)Cost:没有header verification 或 state management。
  • 2)Speed of implementation:仅需要简单的智能合约,无需复杂的密码学。
  • 3)Ease of use:简单的接口来维护xApp connections。

2. 何为Optics?

Optics全称为:OPTimistic Interchain Communication。

Optics定位为更便宜的跨链通讯,无需header verification。相比于传统的header relay方案,Optics可节约月90%的gas开销。

Optics受Optimistic Roll-ups启发,具有Optimistic机制中的很多优质特征,如:

  • public verification
  • low gas fees
  • broad participation
  • 不同的security model。

Optics将作为跨链通讯网络的基础layer,为所有支持智能合约的链和rollups提供快速、便宜的通讯。

Optics依赖于widely-available cryptographic primitives(不同于header relays),具有几个小时的延迟(而Optimistic Roll-up需要一周的延迟),对于message senders来说,仅需要120,000 gas开销。

Optics设计为适于任何支持用户自定义计算的链。

3. Optics的设计思想

Optics类似于公证服务。
在这里插入图片描述
发送链(类似于上图中的“Home”)产生了一系列的message(类似于上图中的“docment”),这些消息需要公证。公证处(类似上图中的“updater”)会对这些消息进行签署。公证处可出示欺诈性副本,但他们将受到惩罚,被公开吊销其保证金和license。当这种情况发生时,每个人需依赖the notary learns that the notary is malicious。所有的natory’s customers可立即阻止该notary并防止任何malicious access to their accounts。

4. Optics是如何工作的?

Optics是按照Optimistic系统设计的。Optics看到an attestation of some data,当过了一定时间后,将其作为有效数据接收。在一定时间期间,honest参与者有机会对该attestation进行相应并(或)提交欺诈证明。

不同于大多数Optimistic系统,Optics跨越多条链:

  • sending 链:为the source of truth,上面有“Home”合约,enqueued了大量消息。这些消息commit到了a merkle tree(名为“message tree”)。该message tree的root将由updater进行公证,公证后将relay “update”到receiving链。Updates由updater签署,updater会commit to the previous root and a new root。

任何链都可维护一个“Replica”合约,在该合约中维护了updater和current root信息。Replica合约中可维护已签名的updates,当超时后,可接收认可这些已签名的updates。Replica合约可高效replay一系列的updates来达到与Home链相同的root,由于root为对message tree的commit,一旦root通过这种方式计算出来,即可用于证明和处理message。

公开message tree叶子节点可确认Updater是否对一个欺诈的update进行了签名。不同于Optimistic rollup,Optics中允许欺诈。最大的不同在于security model。最重要的是,欺诈总是可在sending链的Home合约中得到证明。因此,updater必须向sending链发送 a bonded stake,一旦在sending链上证明了欺诈,相应的bond将被slash掉以作为惩罚。

不幸的是,某些类型的欺诈无法在receiving链上得到客观证明。接收链上的Replicas合约无法知道,在发送链上本来想发送的是哪种message,因此,无法在所有情况下检查message tree的有效性。但是,若某message由Updater进行了falsified,并提交到了接收链的Replica合约,则该update是公开的。这意味着,任何honest actor可prove this fraud on the original Home contract and cause slashing。并没有办法来对欺诈进行隐藏。

此外,由于Replica等待处理消息,Optics可保证honest dapps将避免处理dishonest消息。Fraud总是在fraudulent message被处理之前公开,此时,Optics(如atomic swaps和其他locally verified systems)要求有honest users持续在线。为此,需要构建一套强健的系统来委托该责任。

所有的链下observers可立刻信服fraud(因为他们可check the home chain)。这意味着,由Optics发送的消息的有效性并不是100%保证的。

相反,Optics可确保以下要素:

  • Fraud is costly。
  • All users can learn about fraud。
  • All users can block a fraudulent message before they are accepted。

换句话说,不依赖于全局的verifiable fraud-proof,Optics依赖local verification by participants。因此,相比于悲观地relay每个header,Optics可在保持较高安全性的情况下,节约约90%的gas费。

5. Optics架构

在这里插入图片描述
Optics中包含了多个链上和链下要素。为了便于表达,可将Home和Replica看成是合约,事实上,它们是由多个合约组成的。

  • 链上(合约):Home合约和Replica合约
  • 链下:Updater、Watcher、Relayer、Processor

5.1 Optics链上合约

5.1.1 Home合约

Home合约负责生成message tree 以及 维护updater质押的bond。

Home合约中实现了如下功能:

  • 1)为home链上的其他合约提供了“send message” API
  • 2)强化了消息格式
  • 3)将消息commit到message tree
  • 4)维护a queue of tree roots
  • 5)Slash掉updater的bond:double-update proofs 或 improper update proofs。

5.1.2 Replica合约

Replica合约负责管理optimistic replication,并将消息派发到终端recipients。

Replica合约中实现了如下功能:

  • 1)维护a queue of pending updates
  • 2)当超时时,固化updtes
  • 3)接收double-update proofs
  • 4)验证message inclusion proofs
  • 5)强化消息格式
  • 6)确保消息按顺序处理
  • 7)将消息派发到目的地
  • 8)off-chain(Agents)

5.2 Optics链下要素

5.2.1 Optics链下要素——Updater

updater负责对new root attestation进行签名。

updater为链下actor,主要做:

  • 1)监听home chain合约。
  • 2)对new root attestation签名。
  • 3)将签名后的attestation发送到home chain。

5.2.2 Optics链下要素——Watcher

watcher(通过监听Home合约)来观察Updater与Home合约之间的交互,并对malicious或faulty attestations做出反应。
watcher可同时观察任意数量的replicas,以确保Updater不会跳过Home直接到某replica。

watcher为链下actor,主要做:

  • 1)监听home合约。
  • 2)监听1个或多个Replica合约。
  • 3)将所看到的updates维护在数据库中。
  • 4)提交double-update proofs。
  • 5)提交invalid update proofs。
  • 6)可配置,提交an emergency halt transaction。

5.2.3 Optics链下要素——Relayer

relayer直接将updates由home发送到一个或多个replicas。

relayer为链下actor,主要做:

  • 1)监听home合约。
  • 2)监听1个或多个replicas。
  • 3)在home合约中轮询new signed updates(since replica’s current root),并将其提交给replica。
  • 4)在replica合约中轮询confirmed updates(that have passed their optimistic time window)and confirms if available(更新replica的current root)。

5.2.4 Optics链下要素——Processor

processor负责证明the validity of pending messages,并将其发送到终端接收者。

processor为链下actor,主要做:

  • 1)监听home合约
  • 2)本地维护merkle tree with all leaves
  • 3)监听1个或多个replica
  • 4)维护对应每个leaf的message list
  • 5)为pending(unproven)messages生成并提交merkle proofs
  • 6)派发proven messages到终端接收者。

6. Optics如何在不同链之间传递消息?

在这里插入图片描述
Optics会在home链上创建an authenticated data structure,并将updates relay到该data structure on any number of replicas。最终,home链和所有的replicas将认可该data structure的状态。通过在该data structure中嵌入data(“message”),可在链之间以高度自信的方式传播。

home链会强化创建该data structure的规则。在当前的设计中,该data structure为基于eth2 deposit contract设计的sparse merkle tee。该merkle tree为对the vector of all previous messages的commit。home链强化an addressing and message scheme for messages and calculates the tree root。该root会传播给replica合约。home链上维护了a queue of roots(one for each message)。

home chain会选出一个“updater”必须对message tree的state作证。该updater会在home链上质押bond,并要求周期性地签署attestations(updates或U)。每个attestation中包含了root from the previous attestation(U_prev),以及a new root(U_new)。

当:

  • 看到2个有冲突的updates(U_i and U_i’ where U_i_prev == U_i’_prev && U_i_new != U_i’_new)
  • 或 a single update中,U_new不是an element of the queue【new root必须为a member of the queue,如,a list of updates U_1…U_i应遵循[(A,B), (B,C), (C,D)…]格式。】

时,home chain会slash。

语义上,updates代表a batch commitment to the messages between the two roots。updates中包含了一个或多个必须传输的replica链的message。updates可以任意频率发生,可一个消息对应一个update。因为updates为chain-independent的,任意home chain的update都可提交到任意replica,任意replica的update也可提交到任意home chain。换句话说,signed updates的data availability由每个链来保证。

在认可某update之前,replica会将其放入a queue of pending updates中。每个update必须等待一定时长,超时后才被认可。replica并不知道某update肯定是有效的,等待模式可保证fraud is publicly visible on the home chain before being accepted by the replica。换句话说,系统的安全保障取决于:

  • all frauds may be published by any participant
  • all published frauds may be slashed
  • all participants have a window to react to any fraud

因此,未被参与者列入黑名单的updates足够可靠可被replica认可。

7. Optical channels for Cross-Chain Communication

Optics以raw bytes的形式来将消息由源链发送到目标链。想要使用Optics的跨链应用需要根据其应用场景定义发送和接收的消息规则。

每个跨链应用必须实现其自己的messaging protocol。将实现了messaging protocol的协议称为该跨链应用的Router合约。Router合约类似于本地网络路由,可保证incoming和outgoing messages为协议定义的格式,便于handling和dispatch。

Router合约必须实现以下功能:

  • 1)维护a permissioned set of the contract(s) on remote chains from which it will accept messages via Optics。可为a single owner of the application on one chain;也可为a registry of other applications implementing the same rules on various chains。
  • 2)encode messages in a standardized format,使得可由目标链上的Router合约正确解码。
  • 3)处理来自于remote Router合约的消息
  • 4)派发消息到remote Router合约。

通过在Router合约中实现以上功能,并将其部署在多条链上,可使用通用语言和规则创建跨链应用。这些跨链应用可使用Optics作为跨链信使来相互收发消息。

8. Optics架构的优缺点

BenefitsChallenges
Broadcast channel1-of-N fraud-proof trust model
CheapLiveness failure if updater goes down
One-solution fits allUpdater could voluntarily forfeit bond to try to pass forged messages
Simple

Optics的优点在于:

  • 其broadcast channel支持a single-producer, multi-consumer模式。这可保证1个accumulator可与任意多条receiving链进行通讯。
  • 比其他方案更便宜,支持updates和proofs的开销小于100k gas,仅需检查1个签名。
  • one-solution fits all:对于receiving chain的限制最小(1个hash函数+1次验签)。对PoS链和PoW链均无实现或安全上的差异。

Optics在实际实现时,充分考虑了速度、cost以及安全性。如,Optics依赖fraud publication 而不是 fraud proofs 来改进发送消息的速度和cost。在security model中,任何潜在的欺诈都是不被激励和代价昂贵的。所有的参与者将有大量的事件来了解到任何潜在的欺诈来减轻伤害。

9. Optics代码解析

Optics会在链之间建立communication channels,但是这些channels由xApp(又名“cross-chain applications”) developers来使用。
https://github.com/celo-org/optics-monorepo 提供了标准的模式来集成Optics channels,来确保communication是安全的。

集成过程中,需要以下关键要素:

参考资料

[1] Celo Bridges
[2] Celo Docs——Optics

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:12:33  更:2022-02-19 01:13:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:01:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码