AMA 实录 | 从「Dunkirk」出发,ZK 如何翻开资金安全的新篇章?
2023-05-10 14:45
ForesightNews 速递
2023-05-10 14:45
订阅此专栏
收藏此文章
判断去中心化的标准是,即使出现最坏的情况,用户仍然可以取回自己的钱,这也是像「Dunkirk」这样的防灾恢复演练的意义。


主持人:Frank,Foresight News

主讲嘉宾:zkLink 联合创始人 Vince Yang、UniPass CEO 知县、Keystone CEO 力心、SlowMist 合伙人兼 CTO Blue、ChainFeeds 联合创始人潘致雄

整理:Frank,Foresight News


近年来,DeFi 生态系统一直在努力地最大程度实现无需信任的环境,以减少了对人为干预的需求,但从 Ronin 攻击事件再到屡见不鲜的链上 Rug 事件,交易对手风险始终是一个难以杜绝的问题,也让人开始思索通过技术手段而非信任机制提高数字资产的安全性。


在此背景下,牵涉用户资产安全托管、交易服务的去中心化交易产品们,接下来该如何保护用户资金安全,尤其是教育用户,让每个交易者意识到资金安全与自己息息相关,就成了行业必须考虑、大家也十分关注的重要话题。



2023 年 5 月 5 日 20:00,Foresight News 与 zkLink 联合举办围绕「ZK x 安全:Dunkirk 如何定义新的资金安全标准」主题的 Twitter Space 分享,其中共邀请到 zkLink 联合创始人 Vince Yang、UniPass CEO 知县、Keystone CEO 力心、SlowMist 合伙人兼 CTO Blue、ChainFeeds 联合创始人潘致雄等嘉宾,就此话题进行深度讨论。


本文为此次 Twitter Space 中各位嘉宾精彩分享的文字摘要,特此整理,以飨读者。


一:什么是 Dunkirk,为什么要做 Dunkirk?Dunkirk 对行业的意义是什么?


Vince Yang:zkLink 的此次安全测试「Dunkirk」,旨在模拟最极端情况下用户资金大规模的紧急撤退,测试期间,zkLink 将关闭服务器,模拟真实环境下协议运营人员全部消失或服务器宕机,并邀请业内富有声誉的第三方运行恢复程序,用户可通过恢复程序取回 zkLink 中代币。


通过本次模拟,DeFi 用户不仅能亲自参与零知识证明生成的过程,而且能收获资金恢复相关经验:若未来其参与的某个项目发生类似危机,能够有意识去寻找是否有开源的恢复程序,化被动为主动,为潜在危机做好准备。


zkLink 的「Dunkirk」只是一个开始,当前已有更多 DeFi 项目正筹备加入「Dunkirk」计划,未来 zkLink 团队将积极促成「Dunkirk」的社区化,邀请更多 DeFi 基础设施、交易所和安全机构共同参与,将这一安全测试标准化,重塑加密行业处理安全性、资金恢复和风险管理的方式,增强用户对去中心化交易安全的信心。


总之,Dunkirk 代表了一种实践、教育和创新的精神,加密社区应该从过去的经验吸取教训,致力于不断提高用户资金安全标准,这将进一步推动加密货币行业的发展和繁荣。


二,zkLink 如何用最小安全假设保证资金安全?


Vince Yang:举个例子说明,zkLink 是一个多链交易基础设施,我们的 Rollup 合约不仅部署在以太坊上,还包括以太坊侧链、以太坊的 Rollup、zkVM、zkEVM,甚至我们原本还接入了 Solana,未来还可能加入 Move 生态,只要这些网络支持零知识证明校验并能跑完我们采用的声明系统的算法,我们就可以在这些生态中部署合约。


有了这种多链架构,我们可以原生地聚合这些生态中的资产,用户不需要再切换到不同的区块链进行交易,这将大大改善用户的使用体验,因为现有的 DeFi 最大的痛点之一就是用户学习门槛太高,需要完成的步骤太多,且每个步骤都可能带来额外的风险,从而将很多人拒之门外。


而我们架构的最小安全假设是两个含义。


首先,zkLink 继承了主链的安全性,这与经典的 ZK Rollup 扩容方案类似,我们将合约部署在以太坊上,继承以太坊的安全性,链下计算结果反映到链上的这个过程,是完全通过数学证明来保障通信的安全性和传输数据的有效性。


此外由于我们引入了多个一层和二层网络,所以我们继承的安全性变得更加复杂,这意味着我们需要承认不同的安全层级,必须认真考虑选择接入的网络,如果我们认为以太坊是绝对安全的,就可以将其作为基准,在多链接入的情况下,我们不仅需要聚合流动性和资产,还需要保证其安全性足够高,这时就需要引入监督机制解决多链信息的问题。


例如在 ZK Rollup 生态的发展早期,数据和服务可能没有完全去中心化,像现在的单一 Sequencer、单一 Prover 等等,但这并不是主要问题,随着有效性、网络成熟度和可用性的提高,未来将进入下一个阶段,并将这些服务完全去中心化,这也是为什么 StarkWare、zkSync 这些早期都选择了不发行 Token,因为他们想要等到有一个相对比较成熟的方案去做激励,这是他们网络去中心化的一个非常关键的步骤,未来 zkLink 也会走相同的路径,采用成熟的方案实现去中心化。


其次,引入多链架构后,需要确保多链的状态一致性,以保证不同链上的信息是同步的。为此我们引入了一个叫做见证者的角色,见证者的任务非常简单,只需要在不同的链上读取它们所接收到的状态根,与统一状态进行比对。


统一状态记录了所有不同链上进来的资产信息和用户账户的变化,如果状态是一致的,那么链下的信息就是完全一致的,从数学上消除了叫做「Fause Prove」或「Rug Pull」的可能性。此外由于 ZK Rollup 的最小安全假设采用数学证明,而不是经济学假设或引入额外的技术安全公式,以达到与以太坊相同级别的安全性,因此在这个过程中解锁了扩容等特性,譬如可以将 1000 笔、1 万笔甚至更多数量的交易打包成一个 Proof,从而实现成本下降,同时由于它是零知识证明,因此还可以实现一定程度上的隐私转账。


三,ZK 相较于其他安全方案有怎样的优势和挑战?


潘致雄:基于数学的 ZK 肯定是比基于经济学和博弈论的方案更安全,我今天想更多聊一下一些挑战,虽然 ZK 可以在未来提高效率,但它仍然是一个相对较新的领域,人们仍然存在一些对其安全性和鲁棒性的质疑。


当然好处是 ZK 的发展速度特别快,比一些传统密码学或经济学设计的方案发展速度要快得多,工程和研究方面的进展肯定能够跟上。我们可以先回顾一下 ZK 的一些具体应用,例如 Zcash 只是实现了单一逻辑的隐私转账,以太坊基金会下属的 ZK 研究组织提供了一套开发工具,可以通过零知识证明实现具体的业务功能,然后才是 ZK Rollup 方案,就是两年前 StarkWare 开发的 Stark X,以及 Loopring,提供基于 ZK 的交易功能。


但现在具备编程能力的 Starknet、zkSync、Linea 等网络,在工程量和规模上都是远超过之前这些具有垂直特定功能的应用,这些网络已经处于 Alpha 阶段很长一段时间了,所以可见他们对这个领域的选择也比较谨慎。


此外随着 ZK 架构的发展,像 MEV、Prover、Validator 等结构会变得越来越清晰,包括清楚未来的 ZK 架构会是什么样子,像每一层会有多少个节点,或者达到多大程度的去中心化?比如有些人可能认为 Prover 不需要特别去中心化,但 Validator 更需要去中心化等等。


总之,在许多项目方的推进过程中,可以找到一些适当的范式,这也是每个团队探索的不同之处,因此对于这个方向的发展,我们都非常鼓励,特别是伴随着一些不可知的风险。相比于像智能合约这种错误,它并不是一次审计就能完全解决那么简单。我认为对于这些复杂的 ZK 系统,它们的难度还是需要更长时间的积累,才能找到一个相对合理的性价比和安全平衡点。


Blue:ZK 是一个比较新的技术,对于那些不熟悉 ZK 的人来说,肯定会面临着很多的一些安全的挑战。在 ZK 项目的实现上,通常是遵循一些框架、开源的工具和论文来实现,但是无法保证是否完全达到数学级别的安全性,也不能确定实现的标准是否达到 100%。


此外由于 ZK 不是一个已经运行了很长时间的系统,因此很难确定它的安全性。虽然 ZK 通过数学保证了底层的安全性,但是计算的复杂度可能会更高,当性能方面出现问题的时候,也可能就会造成系统的不可用。


另外尽管 ZK 可以增强底层的信任,但是在上层应用时,也需要考虑监管和合规的问题,如何平衡合规和底层私密性是一个挑战。


知县:ZK 和智能合约这两个维度并不太相似,智能合约实际上是一种实现方法,可以用来保护用户隐私和扩容加速。ZK 的最小安全假设是它最大的亮点——用 ZK 做的 Layer2 可以锚定 Layer1 的安全性,这个想法其实早在 2018 年社区里就已经有了共识,只是当时还没有引入 ZK,像 Plasma 等那个时候的 Layer2 方案,其实也是现今 OP Rollup 等的雏形。


如果将 ZK 应用于安全性较高的场景,比如保护用户资产等方面,这种应用方法是可行的;而与合约相关的应用方法,则主要涉及在合约中压缩一些难以直接验证或者验证成本较高的操作,比如需要邮件验证的 IC 场景,需要有可信第三方或者像 TEE 这样验证方式的链下数据层面,如果可以采用这种方式在合约中实现验证,而无需再跑一次执行操作,从而达到较小的成本。


因此在我看来,合约与 ZK 的结合主要涉及隐私和效率方面,而安全方面则更多地涉及共识安全,例如使用 ZK 来做 Layer2,来保证更高的共识安全性。


Vince Yang:其实在选择各种方案时,已经并不仅仅是技术问题。例如 ZKP 或 ZK 已经从一个科研问题或是可行性问题,变成了一个什么时候可行以及采用什么路径可行的问题。在具体的数据处理方案选型上,不同的公司可能会有自己的偏好和取舍。


在接下来的 1-2 年时间里,我对 ZK 的通用方案比较乐观,我认为它们将会推出许多通用的方案,并且真正解决当前去中心化产品中存在的用户体验和成本问题。对于特定的解决方案,例如 ZK 还可以用于抗量子、身份验证、隐私等待那个,它们还可以用于构建像 zkLink 这样专门用于交易的基础设施,这是一个综合考虑和复杂的系统。


在一个复杂的系统中,我们可能会遇到一些我们没有预料到的情况,甚至在没有进行充分验证和长时间测试之前就会出现问题,因为有些系统过于复杂,可能会出现大家都没有遇到过的问题。但至少我们知道,在经典的 ZK Rollup 架构下面,即使出现最坏的情况,用户仍然可以取回自己的钱。


这就是为什么我们要做像「Dunkirk」这样的防灾恢复演练,就是告诉用户不要害怕使用这个产品和协议,因为即使出现网络故障等问题,你的钱还是安全的。我们将你的交易历史或状态记录上链,只要以太坊还在,我们就可以找回你的资产。


甚至即使整个二层网络的服务器全部消失,团队消失了,用户的资金仍然是安全的,你可以通过私钥找回你的资金,所以类似于「Dunkirk」这样的灾难演练,就是为了让用户亲身体验和操作,让大家知道真到了这一天会怎样。只有让用户亲身操作体验,并经过时间的验证,才能让他们从感性的认知转变为理性的认知。


除了 ZK Rollup 可以进行这种演练之外,我认为其他的技术方案也可以采用,如果某个团队采用了其他技术方案来促进这种演练,比如 OP,我们仍然欢迎或者很希望看到这样的团队能够做类似的事情。因为让用户在体验后,用户会自己去判断,形成自己的认知路径和习惯,很多声称自己是去中心化、非托管或去托管的产品,如果他们不能够完成这个测试,用户就有可能会发起提案,建议他们去搞一个。


像巨鲸、机构们,更希望将资金的安全掌控在自己手中,如果一个产品能够在完整的链路中通过验证安全,这些巨鲸、机构会更加放心,因为他们所掌控的资产量级更大。


四,我们该如何评估 ZK 系统的安全性,并确保其能够抵御潜在的攻击和漏洞?


Blue:我认为刚才讲了很多数学层面的安全知识,但对于我们来说,要评估一个系统的安全性,不仅仅是依靠加密技术,还需要其他相关因素的考虑。


首先,我们需要进行充分的安全审计,对代码进行彻底的安全审计,例如对于 ZK 来说,首先要从算法层面入手,找到有经验的算法密码学专家评估算法的实现是否正确和完善;其次,在应用层面上,需要寻找经验丰富的安全团队来做应用层面的审计。


同时为了保证系统的安全性,需要进行充分的安全测试,例如在我们慢雾之前审计 MPC 相关应用时,当对算法底层和应用实现上不是足够清楚或足够安全的时候,我们会建议进行压力测试,例如通过跑每个最小化单元几百亿次,甚至常年不停地跑,来检查系统是否会崩溃或出现不可预料的问题,这样的测试可以在项目的研发中或整个团队中进行。


然后是针对潜在的攻击,我们可以进行攻防演练,例如今天讲的这个「Dunkirk」,就是一种很好的形式。当出现问题或灾难时,如果系统能够恢复资产,那么就可以证明这个系统的安全性和正确性。


在系统开发中,需要做足够的安全测试,特别是在算法和应用实现上。当一个新系统被推出时,可能需要进行紧急关停的方案,以防止漏洞被攻击者利用。虽然使用了 ZK 算法,但仍然不能百分之百保证系统的安全性,我们也看到过很多项目出现安全问题,这是一个不可避免的事实。


总的来说,针对这个项目的安全,需要进行充分的安全审计,包括算法层面和应用层面的审计,可以找多家安全审计公司来进行审计,同时、在研发过程中也需要进行充分的安全测试,例如进行攻防演练和紧急关停测试,来验证系统的实现、完整性、正确性和安全性是否足够好。另外需要注意的是,没有绝对安全的系统,需要时刻保持警惕,并有一个紧急关停的方案来应对可能出现的问题。


Vince Yang:除了 Blue 老师提到的安全边界探索,即在极端挑战下仍然确保用户资产百分之百安全,还有一些常规的工作需要做,各家项目团队都非常严肃地开展安全工作,投入大量的资金和资源。


我认为每个团队都应该寻找审计机构来合作,以查找代码中可能存在的漏洞或业务逻辑上的问题,zkLink 也不断增加在安全审计上的投入,我们的电路已经进行了很多针对性的案例改进,ZK 的特点就是电路是很难攻击的,这也是系统的复杂性带来的好处之一。


因为只有 Validator 本身能够将数据提交到链上,所以就像一个透明的盒子,黑客可以看到电路,但是他没有权限,不能向链上提交数据。然而为了去中心化,这个问题会变成另一个问题,即共识过程的出块问题以及可能存在的效率下降等问题。


但从安全的角度来看,整个 ZK Rollup 的结构已经在行业内基本形成了共识,但是由于还没有真正大规模地采用,未来还很难预测,因此在早期开发过程中做好这样的安全演练,并在审计方面投入更多的资源,总是可以解决许多潜在的问题。


五,伴随着 zk 应用快速发展,加密世界的资金安全是否已经达到一个新的阶段,进入下一个里程碑?


潘致雄:我认为 ZK 的泛资金安全发展非常迅速,已经出现了许多不同技术的解决方案。在未来,我们可能会在隐私安全、资金安全和资产管理方面取得很大进展。


举个例子,从资产安全的角度来看,慢雾他们就有很多建议和想法,大家可以参考他们发布的黑暗森林手册,非常全面。同时一些新技术也能够推动资产安全进一步发展,例如最近比较热门的 MPC 和账户抽象(AA)的推进,我觉得这些技术可以增强私钥控制的灵活性和可编程性,例如支持多签和社交恢复等功能,从多个角度提高用户在使用资金时的安全性。


具体到应用方面,例如在跨链或连接其他网络时,像「Dunkirk」这种方案也算是一个必备选项,只不过大家现在看起来它是一个比较新的东西,这些类似的概念将会在未来项目上线前成为一种常态。


另外还有一块和 ZK 相关,我认为 ZK 和账户层之上的解决方案正在快速推进,例如有一些项目在账户层之上实现了一些场景,例如用户不必完全暴露自己的账户地址,可以通过聚合的方式把自己的一些地址聚合在一起,也可以增加一定程度的安全性和隐私性。


因为现在有很多安全事件是因为人们被迫暴露了他们的公钥地址,这容易被黑客或利用社交工程的方式攻击,如果你的公钥不被暴露,你受到攻击的面也会减少。当然这并不能根本解决问题,如果你真的被钓鱼了,还是会有问题,但从隐私的角度来看,公钥不被暴露也是可以提高安全性的。


因此我认为 ZK 可以在账户层面解决许多未来的安全问题,但它需要做到隐私和集成非常好,而且还需要开发更多的用户场景和体验,希望能有更多的项目在这方面进行尝试。


Blue:对于我们来说的话比较悲观,资产安全并没有取得里程碑式的进展,反而一直是我们面临的最大问题。区块链与传统金融领域不同,传统金融中的法定货币相当于你的现金,当你的现金被盗或者丢失时,你可以通过银行和法律来保障资产的安全。


但在区块链世界中,第一它没有法律保障,虽然区块链不是法外之地,但在大多数情况下,如果你的资产被盗,你是没有法律保障的,因为立案难,找到黑客也难;其次,追踪资产也不像传统金融领域那么方便。因此一旦你的资产被盗,你就没有办法保障自己的权益,我们也看到了太多的安全攻击事件,尽管一些大项目方成功找回了资金,但这并不代表他们已经抓住了黑客并让其赔偿,而只是在黑客和项目方之间进行了妥协。


然后是关于私钥的问题,在区块链世界中,私钥是掌控资产的关键,然而对于大多数用户来说,私钥是一个有争议的问题,不管是出现的 MPC 还是账户抽象的解决方案,相当于还是用户通过持有私钥来掌控自己的资产,对于那些不熟悉区块链的人来说,很难保护好自己的私钥,很难理解它的含义。


在这种情况下,如果私钥这个东西长期来看一直存在,而大众对私钥的理解、掌控和安全意识始终不够,那么资产安全肯定不会提高到下一个等级,也不会像传统资产那样安全。因此=整个区块链的资产安全目前来看还没有一个很好的解决方案。即使现在有很多解决方案,但仍需很长时间的发展,才有可能在某一天去除私钥,就像最近大家谈论的 Google 搞的无密码方案一样,因为密码很难被攻破,但也很难被自己记住,如果没有密码,通过生物特征进入账户可能是一种比较好的方式。


长期来看,如果区块链能够真正去掉私钥,那么在技术层面上就有可能进入下一个领域,同时在法律层面上能否找到一种保障也是一个需要解决的问题。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

ForesightNews 速递
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开