上周,Argent发表了一篇文章,展示他们的钱包如何进行“终极非托管测试”。他们很好地完成了测试,用户总是可以保管他们的资金。这也启发了我们进行同样的测试。
上周,Argent发表了一篇文章,展示他们的钱包如何进行“终极非托管测试”。他们很好地完成了测试,用户总是可以保管他们的资金。这也启发了我们进行同样的测试。
路印的首要职责是保障用户资产所有权和安全性,确保基于路印协议的DEX永远不会保管用户资金,也不会阻止用户保管自己的资金。即使路印团队,基金会,其他参与者关闭或进行恶意操作,用户资产也不会受到影响。
如Argent文章所描述的:
非托管钱包的好处是用户拥有控制权。钱包永远不能保管用户的资产,或阻止用户保管它们。
终极测试是:如果构建钱包的公司关闭或受到国家的施压,将会发生什么情况?
这种情况下,像Coinbase和币安这样的托管钱包会暴露你的信息。
这里如果将“钱包”改为“交易所”,也就是路印协议(以及所有DEX协议)的研究领域。准确地说,钱包和交易所在DeFi领域的概念有些时候是模糊的,但实际上就意味着用户应该保管自己的资产。
路印协议3.0: 安全性第一,可扩展性第二
DEX宣称用户始终可以保管自己的资金,这并不是革命性的,因为这是DEX的特质。
但是,当DEX协议开始想要实现可扩展性(高吞吐量,低成本),并进入layer 2时,用户很难完全享受以太坊级别的安全性。这里需要在安全性和可扩展性做出权衡。
具体来说,要提高协议的扩展性,并确保用户有控制权(只要以太坊存在,不需要依赖别人就能保管自己的资产),这不是简单的事。
这正是路印协议3.0所解决的痛点,帮助构建最强安全性保证的高性能,非托管订单簿交易所。我们使用具有链上数据可用性的zkRollups,并且它是以太坊上第一个此类型的DEX协议。
在我们的设计中,当安全性和可扩展性出现冲突时,我们都优先选择安全性。
简要阐述Rollups
首先,让我们来介绍下Rollup可扩展性解决方案,并区分Rollup的两种类型:zkRollups和Optimistic Rollup。
如我们所见,zkRollups使用密码证明来验证每个状态的转换,而Optimistic Rollup更依赖于博弈论。
在我们的构建中,DEX的状态转换包括处理交易,取消,提现等,这会在链上的Merkle tree进行更新,通过zkSNARK得到证明,并最终提交到以太坊。
zkRollups要求链下发生的每个操作都通过数学来证明,而Optimistic Rollup只对错误操作的某些人要求提供证明。
也就是说,您可以使用Optimistic Rollup做更通用的智能合约,但是zkRollups保障了更高的安全性。
如果想深入研究Optimistic Rollup和zkRollups的差异,请查看Matter Labs撰写的文章:https://medium.com/matter-labs/optimistic-vs-zk-rollup-deep-dive-ea141e71e075 。
链上与链下数据可用性
接下来是交易数据存储地点的问题,因此任何人都可以重建Merkle tree过去和当前的状态,该状态代表着DEX的状态。
Merkle root以两种类型存储在链上时,如果有人要随时重建状态,则还需要知道Leaves(账户)之间的增量。如果不具备这个能力,用户将无法“证明”其账户余额,也就无法提取资产。
如果数据是可用的,您可以随时保管自己的资金。如果数据是不可用的,DEX运营商将无法盗取您的资产,但是您也无法保管自己的资产。
因此,这里关键的问题是,协议是将数据存储在链上还是链下?
存储在链上意味着您(或任何人)有可能从以太坊区块链获得数据。具体地说,协议使用交易数据。
存储在链下意味着将数据存储在其他地方,在以太坊区块链之外的数据库中。也许是DEX自己的数据库,或者是值得信赖的合作伙伴,审计师和公证人等组成的联盟。
当然,路印协议3.0增强了链上数据可用性,因此,如果DEX突然关闭或受到某个国家的施压,它也不会影响用户保管自己的资产。DEX所有者/运营商,或者路印协议本身都不可以控制您的资产。
但是,如果数据以某种链下方案进行存储,面对压力,恶意操作甚至人为错误,数据很容易存在问题。
最坏的情况:提现模式
通常,交易所大部分工作都是由运营商链下完成的。这非常有利于提升可扩展性,但是链下完成的请求在链上是完全未知的,这使得运营商无法知道执行的操作是否必要。
这就是我们支持特定链上请求的原因,其中最重要的是链上提现请求。这些链上提现请求可以直接由用户在链上完成。如果运营商拒绝处理提现请求,路印智能合约会采取以下措施:
智能合约会要求运营商执行链上提现请求,如果提现请求没有得到解决,大约1小时之后,则运营商无法处理任何其他请求(交易等)。
如果运营商一直拒绝处理提现请求,则交易所将进入提现模式,大约1天之后,运营商会被削减。
这些参数都是可配置的,1小时和1天是现在设置的参数。
当交易所完全关闭时,唯一可行的方法是用户使用Merkle证明从最新的有效状态提取资产。为了使用户能够创建Merkle证明,他需要知道交易的整个状态。
如上文所述,使用链上数据可用性并不难。路印协议将创建用于执行该操作的工具,但执行操作所需要的信息是公开和开源的。
然而,对链下数据可用性而言,用户依赖第三方来提供交易状态的数据。如果用户无法获得数据,资产将被冻结在交易所中,无法收回。
任何在链上引入非以太坊环节的协议都可能无法通过终极非托管测试。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!