风险提示:请理性看待区块链,树立正确的货币观念和投资理念,不要盲目跟风投资,本站内容不构成投资建议,请谨慎对待。 免责声明:本站所发布文章仅代表个人观点,与CoinVoice官方立场无关

Acala 和 Phala 联合发布首个隐私跨链用例

PolkaWorld
2020年12月25日

Acala 和 Phala 联合发布首个隐私跨链用例

为什么我们需要跨链?

在可预见的未来,平行链将颠覆所有现有的区块链技术。

平行链不仅具有 Layer1 区块链和智能合约的自主性、内生安全性和专业性等优势,它还具备以太坊 Layer2 目前不具备的互操作性。

什么是互操作性?Parity 核心开发者 Tomasz Drwięga 在 Polkadot 首届社区会 Polkadot Decoded 上的分享可以帮助我们更好理解:

假如你提交了一份航班延误保险的赔付申请,在正式赔付前,保险公司会从航空公司获取航班是否延误的数据,并从机场获取数据验证你是否准时去了机场。若符合以上两个条件,保险公司才会将赔付资金打入你的银行账户。该场景中,保险公司对数据的调用充分展示了互操作性的特点。

目前,平行链已自行发展出多种类别,比如:有币平行链、无币平行链、垂直于某一领域的平行链、服务于某一社区的枢纽链……

Acala 和 Phala 联合发布首个隐私跨链用例

以平行链为例,使用 Polkadot/Kusama 的跨链技术,我们可以实现什么样的用例?

首先,我们不妨假设目前有两个最常使用的区块链协议及业务:

  • Acala Network 是一个去中心化开放式金融协议。Acala 具备跨链多资产抵押的稳定币 Honzon 协议、释放 Staking 资产流动性的 Homa 协议以及去中心化交易所等 DeFi 模块

  • Phala Network 是一个区块链隐私协议。Phala 通过可信计算技术+区块链,实现了图灵完备的隐私合约,既保证智能合约可靠执行,又不必泄露敏感数据。

在此条件下,我们想:

  • 让 Acala 上的资产、DeFi 合约使用 Phala 的隐私能力

  • 让 Phala 上的隐私资产从 Acala 获取

显然,在任何非 Polkadot/Kusama 协议下,不管是 Acala 还是 Phala,都要耗费巨大的开发者资源和精力,但是,若我们采用 Polkadot/Kusama 的跨链协议,不用改动一行代码,就能实现这样的用例!

跨链用例展示

Demo Video

Github:https://github.com/Phala-Network/phala-blockchain/tree/rococo

如何实现跨链交互?

跨链原理由中继链、平行链、连接链之间的协议 XCMP 组成。跨链交易通过基于 Merkle 树的简单排队机制来解决,以确保准确性。中继链验证人的任务是将一个平行链的输出队列上的交易移动到目标平行链的输入队列中。但是,只有关联的元数据作为哈希存储在中继链存储器中。

XCMP 队列必须首先通过打开两个平行链之间的通道来启动。通道由发送方和接收方的平行链辨识,这意味着它是一个单向通道。一对平行链之间最多可以有两个通道,一个用于向另一个链发送消息,另一个用于接收消息。

XCMP 协议可以细分为:

  • VMP:平行链-中继链通信

  • HRMP:平行链-中继链-平行链中转通信

  • XCMP:平行链-平行链直接通信

目前 Rococo v0 上实现了 VMP 与 HRMP,但 Rococo v1 还在开发中,因此我们在 v0 上实现了 Phala-Acala 之间的跨链用例。

Architecture

Acala 和 Phala 联合发布首个隐私跨链用例

如上图所述,基于 Polkadot XCM 的 Acala-Phala 跨链实现由三部分组成:

  • 链:Rococo 中继链、两个平行链:Acala、Phala

  • 跨链操作:Acala-中继链和 Phala-中继链的消息传递,实现了 Acala 转账到暗钱包内部,以及暗钱包 (Private Wallet) 内部到 Acala

  • 隐私黑箱:Phala 上的隐私交易一切发生在 TEE 内运行的保密合约,所有加密数据状态对外不可见,从而实现了隐私效果

从 Acala 向 Phala 发起一笔转账

在 Polkadot 的世界中,除了个人控制的账号以外,还有“主权账号”的概念。例如,一个 Substrate 上的 Pallet 模块(或一个智能合约)就可以持有一定的资产。而当一个平行链接入了 Polkadot 之后,它也可以在其他平行链上获得自己的账号。主权账号由对应的平行链控制。每个平行链都有唯一的 ID,会被映射成它对应的主权账号。

Acala 和 Phala 联合发布首个隐私跨链用例

当 Alice 在 Acala 向 Phala 发起一笔转账交易时,例如从转出 1000 ACA 到 Phala 的 Bob 账户,背后发生了这些事件:

  1. 首先在 Acala 链上,会从 Alice 账户里取出 (Withdraw) 1000 ACA,存入 (Deposit) Phala 的主权账号

  2. Acala 链会发起一个 XCMP 转账消息,表示在 Acala 上已经发起了到 Phala 下 Bob 账号的跨链转账,并把消息发送给中继链,这是一个 VMP UpwardMessage

  3. 中继链收到消息后,会根据平行链 ID 解析出消息的接收方是 Phala,它就会把消息向 Phala 转发,这是一个 VMP DownwardMessage

HRMP 是 Rococo v0 已经支持的一种简单跨链消息传递方式,它的原理是 A 链发起 UpwardMessage 给中继链,再由中继链发起 DownwardMessage,把消息中转给 B 链。因此,HRMP 是由两个 VMP 组合实现的。

Phala 暗钱包接受转账并转换为隐私币

Phala 与其他链有一个很大的不同。通常一个平行链会采用波卡提供的标准实现来接受外部转账,并为用户结算。但 Phala 作为一个通用的隐私保护层,主链对应用保持中立是十分重要的,因此 Phala 主链不对跨链转账做任何处理与结算,而直接中转到保密合约之中。

Acala 和 Phala 联合发布首个隐私跨链用例

在 Phala 端,跨链转账消息由主链接受后,直接路由至 TEE 中的暗钱包 (Private Wallet) 合约。当保密合约接收到消息后,就会为账户 Bob 增加 1000 ACA。

保密合约中的转账都是端到端加密的。虽然在外部可以看到 Bob 收到了 1000 ACA,但他可以发起隐私转账,再次转账给 Charlie,作为暗资产,Bob 所有的后续交易在链上都不可见,也无法追踪,从而保证了隐私性。

因此在 Demo 中,我们演示了两个暗钱包之间的隐私交易 (Shielded Transction)。该隐私交易是端到端加密的,在链上只能看到密文,因此该交易的细节 (如发送地址、接受地址、金额数量) 在链上不可见。

从 Phala 向 Acala 发起一笔转账

最后,通过 Phala 的暗钱包可以向 Acala 发起一笔跨链转账,以实现出金。

例如,收到 Bob 通过隐私转账转过来的 1000 ACA 后,Charlie 可以在 Phala 端发起请求,向 Acala 的 Alice 账户发送 500 ACA,则背后发生了这些事情:

  1. TEE 收到转账命令,将 Charlie 账户中减少 500 ACA,并向 Phala 链上发起一笔跨链转账交易

  2. Phala 主链收到跨链转账请求后,会直接把这笔转账消息发给中继链,这是一个 VMP UpwardMessage

  3. 同样,中继链会把它转发给 Acala,这是一个 VMP DownwardMessage

  4. Acala 收到消息后,从 Phala 主权账户中取出 500 ACA 存入 Alice 的账户,这笔跨链转帐交易完成。

结语

在现有的区块链例如以太坊中,Defi 和隐私 Layer2 的结合需要通过以太坊来互相确认,而一个 Layer2 协议无法与另一个 Layer2 协议互操作。这就导致了用户无法用 Loopring 协议直接调用 Tonado Cash,或者用 Aragon 直接调用 Aztec。

但是在 Polkadot 上,XCMP 协议可以让具有强自定义能力的平行链在极少的工作量下,就能实现便捷的跨链的互操作。通过 XCMP 实现的可组合性,可以让开发者像搭建乐高积木一样搭建出丰富的应用案例。

在这篇文章里,我们就展示了 XCMP 强大的能力,我们可以直接让 Acala 和 Phala 实现互操作,通过 Defi 平行链和隐私平行链的组合,让 DeFi 得到了隐私能力。在以太坊 Defi 生态下,我们已经看到了可组合性的优势,因此我们相信 XCMP 会成为强大的 Dapp Building Block,并期待在 Polkadot 上看到由平行链组合出的更多全新的应用。


想要在波卡生态中开发新项目吗?想要获得 Gavin 等重量级导师的亲自指导吗?由 PolkaWorld 社区、数秦科技、巴比特、Nano MG 创新空间、imToken、SimpleChain、Hypersphere Ventures、IOSG、Acala Network、Digital Renaissance Foundation、Patract Labs、Polkadot 生态研究院、白话区块链、Dorahacks 联合发起等发起的「Substrate 创业营」 正在招募中,助力 Web3.0 生态创新产品的诞生和成长!**

[!

  • 欢迎学习 Substrate:

https://substrate.dev/

  • 关注 Substrate 进展 :

https://github.com/paritytech/substrate

  • 关注 Polkadot 进展 :

https://github.com/paritytech/polkadot

Acala 和 Phala 联合发布首个隐私跨链用例

更多内容:

扫码关注公众号,回复 “1” 加入波卡群

Acala 和 Phala 联合发布首个隐私跨链用例

关注 PolkaWorld

发现 Web 3.0 时代新机遇

点个 “在看” 再走吧!


声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。

评论0条

PolkaWorld

简介:波卡(Polkadot)第一中文社区,带你寻找 Web 3.0 时代新机遇!

专栏

更多>>