引介

StarkEx 作为自主托管型方案,Part-3:钱包整合

Ajian   |     |   582 次阅读

StarkEx 作为自主托管型方案,Part-1:引言
StarkEx 作为自主托管型方案,Part-2:合约可升级性


StarkEx 是一种自主托管式可扩展性引擎。我们已经介绍过了自主托管式系统的各个方面,其中就包括钱包。本文将要介绍我们是如何与不同的钱包提供商合作,来确保 StarkEx 保持自主托管型系统的本色。

自主托管型系统的一大重要特征是,每次交互都需要用户签名。我们的首要原则是 “不只要签名,还要验证它。”—— 这是套用的区块链行业的老话:“不要相信它,去验证它。” 换言之,要是用户不能验证,自主托管型系统只是徒有其名而已。用户要能够验证他们的钱包和自主托管型应用之间所进行的交互的参数。例如,如果一名用户向链上合约提供了签名,ta 的钱包显示的应该是经过良好解析的可读消息,而非一团高深莫测的数据。在用户需要签署链下交易的时候,二层应用也应遵循同样的原则。

为了恪守 “不只要签名,还要验证它” 这一原则,我们正在与多个钱包提供商合作,将我们的协议直接整合进他们的产品内。这一整合对零知识证明系统来说尤为重要。为了高效地验证签名,零知识证明二层系统所使用的曲线通常不同于标准的以太坊曲线,使用的哈希函数也不同。一种简单的方法是在浏览器中实现钱包。我们倾向于不这么做,主要有两点原因:首先,StarkEx 的目标是让用户可以直接通过钱包在专业的交易平台中交易,无需再将资金转移到其他地方;第二,构建一个安全的钱包并非易事(路印最近被曝出的高危前端漏洞就是一个很好的例子)。

下文列出了截至 2020 年 5 月支持 StarkEx 的钱包(以太坊主网上线了首个 StarkEx 系统,支持 DeversiFi

Ledger :完全整合

Ledger 是完全整合 StarkEx 的。无论是链上合约调用还是链下订单提交,每一次交互都将由 Ledger 解析,然后向用户显示。用户要先确认过后才能在 Ledger 中签名。用户将能验证每一次交互的参数。此外,Ledger 将在其原生以太坊应用中支持 StarkEx (用户甚至不需要通过 Ledger Live 安装特定的应用)。

为了整合 StarkEx ,我们必须将 STARK 专用曲线添加到 Ledger 的固件中 ,并在 Ledger 的应用中执行 StarkWare 的哈希函数(Pedersen 哈希函数)。通过 StarkWare 和 Ledger 的紧密结合,Ledger 成了首个应用于二层的硬件钱包。

WalletConnect:完全整合

WalletConnect 是完全整合 StarkEx 的。WalletConnect 是一个开放式协议,(通过二维码)将桌面应用连接到使用端到端加密技术的移动钱包。我们与 Pedro Gomes 一起实现了 StarkEx 交互,创建了 StarkEx WalletConnect Provider 。DeversiFi 是首个构建在 StarkEx 上的自主托管型交易所,也将 WalletConnect 整合进了它的应用中。移动钱包 Argent 目前正在整合 StarkEx WalletConnect Provider ,很快就会支持用户在 DeversiFi 上进行自主托管型交易。

MetaMask:混合解决方案

目前,我们为 MetaMask 用户提供混合解决方案。所有链上交易都将由 MetaMask 处理,所有链下交易都将由浏览器内置钱包(第一种就是 DeversiFi 的钱包)处理。这一解决方案与如今绝大多数二层方案相同,而且可以让我们立即支持 MetaMask 庞大的基础用户。这一方案目前还做不到上面几个方案那样完美:用户既不能验证链上合约调用,也不能验证他们的链下交易。一旦 MetaMask 部署好 Snaps 插件系统,这一问题就能得到解决。我们将继续作为 Snaps 上的 Design Partner (设计伙伴)与 MetaMask 团队密切协作(参见我们在 Devcon 5 上的联合演示),让 StarkEx 像我们所描述的最优方法那样为 MetaMask 用户提供服务。

(完)


原文链接: https://medium.com/starkware/wallets-c5a9c4e35c02
作者: StarkWare
翻译&校对: 闵敏 & 阿剑

 
0 人喜欢