第五期「StarkNet 中文」社区 AMA 活动邀请到了 Encodeclub x StarkWare 黑客松冠军 Sphinx 的创始人 Remi Gai 和 Park Y 做客。
由 Remi 和 Park 开发的 Sphinx 是部署在 StarkNet 上的第一个原生跨链且可组合的中心现价订单薄去中心化交易所 (CLOB DEX)。采用无信任结算、资产流动性、存储证明和 SNARK 证明,保证去中心化的同时,具有较高可组合性。
Switch 是八月份 StarkNet House 举办黑客松获奖作品,是一个无需信任、使用存储证明的钱包恢复方案。平衡中心化和自托管以此获得最优安全性,使用 StarkNet 原生技术来解决自托管难题,让用户能完成所设定条件来恢复钱包。
Remi 和 Park 自我介绍
介绍 Switch
介绍 Sphinx
深入存储证明 (Storage Proof)
Sphinx 底层技术:可组合性和流动性
对于 Cairo 和 StarkNet 开发者建议
以下是翻译后的部分对话内容,本文对话经过编辑,完整 AMA 音频回顾请点击。
主持人:Diamond 和 Leo
嘉宾:@sphinxdex 的创始人 @remi_gai 和 @park_eth
Diamond:
今天「StarkNet 中文」社区 AMA 邀请到了 Encodeclub x StarkWare 秋季黑客松冠军作品 Sphinx 的创始人 Remi 和 Park。本期将介绍他们开发构建的 StarkNet 上首个 CLOB DEX 项目 Sphinx 和八月份黑客松获奖作品 Switch。首先,欢迎 Remi 和 Park 来做一个简单的自我介绍。
Park:
感谢「StarkNet 中文」的邀请,很高兴能认识这么多对 StarkNet 感兴趣的中国朋友。大家好!我叫 Park,毕业于伦敦商学院,接触过加密 VC,曾在 Fabric Ventures 和谷歌工作过。从七月份开始关注开发方面,重点是探索 StarkNet 生态,专注开源软件和基础设施类工具项目。Remi 和我在巴黎 ECC 上认识,在八月份黑客松我们开发了一种无需信任的钱包恢复解决方案 Switch。同时参与 AAVE、MakerDAO 等协议链上治理、委托。
Remi:
大家好!我是 SPC 中的 Web3 项目创始人 Remi。我在 2017 年进入区块链领域,2018 年合作成立了区块链工作室帮企业做钱包、团队市场和社交平台等。2019 年在 VC 工作一段时间。成为软件工程师后,曾任职于微软和谷歌。2021 年联合创办波卡借贷协议 Parallel Finance。正如 Park 所说,我们在夏天认识并成为了开发伙伴。
Diamond:
非常优秀的两位嘉宾,接下来能向我们介绍一下 StarkNet House 黑客松一等奖作品,钱包恢复解决方案 Switch 吗?
Park:
Switch 最开始是由 Remi 提出的想法,所以我就简单介绍一下。Switch 是一个无需信任、使用存储证明的钱包恢复方案,用户如何平衡中心化和自托管以此获得最优安全性。例如,当你丢失密钥后无法恢复钱包访问权,所以我们就在思考如何去解决该问题,通过社会关系恢复?也不够完美,因为不是每个人都有可以委托访问的受信任方。但稍作修改,尝试使用 StarkNet 原生技术来解决自托管难题,让用户能完成所设定条件来恢复钱包。
Remi:
最初我和几个朋友在以太坊 NYC 黑客松中分析了这个想法,有什么办法能够证明你的以太坊外部账户 (EOA) 一直处于非活跃状态?因为 EOA 就是你的 MetaMask 公共地址,无法在上面重建任何逻辑。如果你能证明 Nonce 在一段时间内没有增加,这意味着帐户处于非活跃状态或无法进行新交互,就不会造成资产损失。在以太坊 NYC 黑客松中,我们意识到通过区块哈希值证明 Nonce ,然后推断出 EOA 帐户不同状态。
但问题是,在以太坊上只能往后追溯 256 个区块,也就 1 个小时。ECC 期间,我参加了 Snapshot 实验室的研讨会,他们正在使用存储证明技术来证明以太坊的任意状态。也就是说,可以在 StarkNet 上读取以太坊的状态。当我深入研究时,并在 StarkNet House 黑客松中尝试构建了 Switch 项目,事实证明这的确是一个近乎完美的解决方案,不仅可以直接在 StarkNet 上读取以太坊的状态,由于计算成本低廉,还可以实现递归。
从当前区块链追溯到创世区块,可以把区块链数据结构想象成串列,即当前区块能包含其父区块哈希值。所以基本上可以通过重新创建区块头并反过来继续向后递归一到两年来回溯区块状态。Switch 证明了两年内 EOA 帐户处于非活跃状态,通过对比今天和两年前 Nonce,如果没有增加,就能激活恢复合约帮助你拿回资产。其新颖之处则是,整个过程都是无需信任且在链上完成。
Diamond:
Remi 和 Park 上面提到 Switch 和 Sphinx 使用了存储证明 (Storage Proof) 使区块链具有更强的互操作性也更便捷,所以能和我们详细介绍下存储证明在其中的运用吗?
Park:
存储证明技术可以做很多事情。在 Switch 中可以用作读取历史状态,允许访问以太坊区块历史,以无需信任的方式访问区块链状态。众所周知,区块链结构使用的默克尔树型数据结构 (Merkel Tree Data Structure),包含状态树、交易 (Transaction) 树、接收 (Receipt) 树,可以从这些信息中提取出帐户余额、智能合约存储、发送事件等。不仅是以太坊,该功能同样适用于其他使用了默克尔树型数据结构的区块链。
实际可以应用在无需许可桥接等功能。跨链交易订单薄首先运用的就是桥接,用户可以无需信任地将链上资产跨到另一条链上 DEX 并进行交易。也可以用在提供无需信任的数据流 (Data Stream) ,计算历史价格,再算出加权平均价格,就像是去中心化版 The Graph。不仅如此,还能用作无需信任的预言机,替代 Chainlink 等。所以数据流是极其重要的,用于跨链用例的基础设施。
Remi:
我来举例补充,当你想在以太坊上构建应用但成本高昂,可以选择在计算成本低的 StarkNet 构建应用。所以,存储证明能够帮你做些什么?以太坊上应用需要在 StarkNet 上在 StarkNet 上读取状态并执行计算密集部分。这就是需要存储证明来完成的,类似无需信任版的 Chainlink。
Diamond:
相信经过介绍,大家已经对 Switch 和存储证明都有了一定的了解。接下来,请 Remi 和 Park 给我们介绍第二个获奖作品 Sphinx,以及开发背后的想法是什么?
Park:
关于 Sphinx 的诞生是为了解决一个重要问题,即单一流动性或单一跨链流动性难题。当我们参与黑客松时,发现越来越多 AMM 协议构建在 StarkNet 生态系统中,但是 StarkNet 上缺乏一款,类似 Serum 之于 Solana 的可组合性订单薄。因此,当机会就摆在我们面前时,如何去集成这些流动池、创造交易枢纽中心?于是我们决定借鉴于 Switch 和存储证明的相关经验来实现该目标。
如果将存储证明应用在无需信任型桥接上从而进行资产跨链,就可以解决跨链流动性难题。这个想法是对现存 DEX 的改进,比如 dYdX 就是链下订单薄,因此无论是在 StarkNet 或跨链上都缺乏可组合性。所以总结一下我们想实现的,即 StarkNet 上首个原生的跨链可组合型订单薄。我们的愿景是使用存储证明和 SNARK 证明实现无需信任型桥接流动性跨链,为底层流动性创建聚合层。
在我们的演示中曾提到过的最简可行产品,黑客松允许以太坊用户通过 MetaMask 即可在 StarkNet 交易。就是通过跨链 DEX,不需要跨链迁移资产就可以在 StarkNet 交易。详细来说就是,以太坊用户资产存入智能合约,跨链消息将资产计入 DEX,再发送 EIP-712 签名确认跨链,然后就可以开始交易。这就是产品原型。随着跨链桥基础设施逐渐成熟,我们会连接不同链。
Diamond:
下一个问题关于可组合性 (Composability),能和我们分享一下在 Sphinx 中的可组合性,以及如何为订单薄 DEX 提供帮助的吗?
Remi:
实现可组合性,即链上订单薄。还有一种则是链下订单薄无法保证流动性,如 dYdX 和 ZigZag,意味着无法确保链上验证且无法与之交互。
怎样更具可组合性,如果我在订单薄上有 ETH/USDC 对,任何人可以无需许可使用这些流动性。例如,有聚合器与我们整合时,可以设置订单导入到我们的流动性。这样就可以降低 AMM 滑点,因为可以通过两个路径来获取流动性,对终端用户而言执行价格得到优化。
打造货币市场就需要流动性引擎。不是竞价模式,而是直接打造流动性市场,在订单簿添加 ETH 流动性。另个例子是可组合性,未来会考虑闪电贷。要是提供的流动性闲置,可以用来借贷,带来更多被动收益。
Diamond:
最后,两位都在黑客松中获得傲人成绩,可以给 StarkNet 和 Cairo 建设者一些建议吗?
Remi:
我认为 StarkNet 相比以太坊有不同的特点,如果你想参与黑客松,探索 StarkNet 原生想法是非常有趣的,例如,计算、存储证明、帐户抽象、多重调用、会话密钥、共享证明器 (SHARP) 等等。把它们当作不同的组件并尝试组合起来创造一些新颖的概念。一般来说,很多项目协议都是由其他生态中已有的概念搬运或构建起来的,这确实有一定的市场契合度,但重点是如何去创新,利用 StarkNet 独特的优势构建出新观点会更加有趣。
Park:
关于这点我非常赞同 Remi,利用自身特点尝试全新事物很重要。我再抛出一个方面,关注用户体验感,例如,从用户角度去解决一个实际问题。对于黑客松来说好的技术固然重要,但除此之外,吸引用户、完善用户体验,解决用户痛点从而提升项目可用性同样不可或缺。
比如,无需信任的 Switch 钱包恢复方案也是在解决用户痛点,大部分加密用户都因为各种方式丢失过钱包资产,那么从用户角度出发,怎么创造一种方式来解决该问题?然后构建无需信任的钱包恢复解决方案的想法诞生。Sphinx 同样如此,实现资产跨链是个复杂繁琐的过程,甚至面临资产遗失、攻击等风险,因此专注于解决用户顾虑也是对构建项目的一种帮助。
Remi:
我想补充最后一点,StarkWare 团队给出的支持非常迅速,也非常有帮助。当你刚参与 StarkNet 生态构建时可能会遇到很多问题踌躇不前,但不要灰心害怕,勇敢地向委员会成员寻求帮助,一起发展生态系统,我们都是 StarkNet 前进路上的探险者!