本文是QuarkChain创始人兼CEO周期博士在ETHresear.ch上提出的可即时存入提取的 Optimistic 跨链桥方案,可以用于任意两个基于 EVM 的 Layer1 协议之间进行跨链存入提取,操作可立即完成且不要求两个协议间使用相同的共识。其基本设计思想在于,满足一定前提条件(有质押且可信)时,允许所有人无限铸造标的Token。
在本文中,我们提出一套在两个基于 EVM 的链之间的即时Optimistic ERC20 传输(即桥)方案。而不是用户必须等待很长的挑战时间的,在大多数Optimistic解决方案中(例如,主网和 POS 链之间的Optimistic桥)使用的两步机制(请求/挑战)。这个方法可以立即完成对目标链的操作(例如,铸造 Wrapped Token 或从加密箱合约中提取Token)。此外,该方法与链共识无关,这意味着可以轻松扩展以桥接多个 EVM 链上的资产,而不管它们的共识如何。
带有代币 T 的源链 S
带有 Wrapped Token W 的目标链 D
想要将源链 S 上的代币 T 以 1:1 的比例兑换成目标链 D 上的代币 W 的用户
铸造者将一定数量的代币 W 作为抵押品放在目标链 D 上并为用户铸造代币 W
其基本思想是允许任何人成为能够无限铸造代币 W 的铸造者,只要能满足:
最近 CHALLENGE_PERIOD 铸造价值的总和 <= 铸造者锁定在目标链 D / COLLATERAL_RATIO 上的抵押品价值;以及
铸币者在最近的 CHALLENGE_PERIOD 中没有受到挑战。
用户想要将 USDT 从 ETH(来源)转移到 BSC(目标)。假设 COLLATERAL_RATIO (抵押率)= 2,CHALLENGE_PERIOD (挑战期)= 1 天。铸币者在 BSC 上锁定了 100k Warpped USDT 作为抵押品,这意味着它可以在 BSC 的任何 1 天窗口中铸造最多 50k USDT。
在时间 0,用户 1 从 ETH 锁定/转移 20k USDT,铸币者监测到事项并在 BSC 上向用户铸造 20k WUSDT(此时剩余配额为 30k)。
在时间 12h,用户 2 从 ETH 锁定/转移 30k USDT,铸币者监测到事项并在 BSC 上向用户铸造 30k WUSDT(此时剩余配额为 0)。
在时间 18h,用户 3 从 ETH 锁定/转移 10k USDT,铸币者监测到事项,但是,它无法铸造任何 WUSDT,因为它在最近的 1 天窗口中已经铸币了 50k。
在时间 24.1h,铸币者在 BSC 上向用户 3 铸造 10k USDT(此时剩余配额为 10k)。
假设 PENALTY_RATE(罚金率) = 1
在时间 0,用户 1从 ETH锁定/转移20k USDT。铸币者监测到事项,然而,它铸造了30k WUSDT,即额外的 10k WUSDT铸造给了 BSC 上的用户。
在 CHALLENGE_PERIOD 内,验证者捕获恶意铸造者并以多数票在 BSC 上向铸币者发起 Challenge。
挑战成功后,验证者将获得从铸币者抵押品中以罚金率 PENALTY_RATE * 10k = 10k WUSDT 作为奖励,并从铸币者的抵押品中燃烧 10k WUSDT 以平衡额外铸造出的 10k WUSDT。这样一来,铸造者将只剩 100k - 20k = 80k WUSDT 作为剩余抵押品(并且可以在任何 CHALLENGE_PEROID 中继续铸造 40k WUSDT)。
假设 PENALTY_RATE = 1
在时间 0,铸币者在 BSC 上恶意铸币给自己50k WUSDT。
在 CHALLENGE_PERIOD 内,验证者捕获恶意铸造者并以多数票在 BSC 上向铸币者发起 Challenge。
挑战成功后,验证者将从铸币者的抵押中获得 PENALTY_RATE * 50k = 50k WUSDT 作为惩罚奖励,并从铸币厂抵押品中销毁 50k WUSDT 以平衡恶意铸造的 50k WUSDT。因此,铸币厂将只有 100k - 100k = 0 WUSDT 作为剩余抵押品。
如果目的链与源链具有相同的原生代币(例如,USDT 在多条链上发行),我们可以使用原生代币作为抵押品。在跨链转移代币时,铸币者不会铸造 wrapped 代币,而是在目标链合约中提取代币,代币可能来自:
本地锁定的原生代币(并在另一条链上铸造/提取)
抵押品,即通过抵押品提供流动性。
如果目标链的原生代币用尽,混合解决方案可以同时支持目标链上的原生代币和 wrapped 代币:
如果在目标链上有足够的流动性。只提取原生代币用于跨链转移;
如果没有,铸币者可以提取原生代币,然后通过铸造 wrapped 代币补足其余部分。
在混合解决方案中,wrapped 代币可以
只要有足够的流动性,就可以在本地转换为原生代币;或者
按照我们提出的方法,转移到另一条链作为原生代币或在另一条链上wrapped代币的替代品。
初始 Wrapped Token 转移。由于铸币者的抵押品可能没有 wrapped 代币,我们仍然可以使用两步机制或多数投票来创建这些初始包装的代币。
支持多链。铸币者可以监听多条链,只要在任何一条链上发现相应的锁定/转移事件,就可以进行铸造。
改变验证者集设置。我们可以在开始时固定使用一套具有良好信誉的验证者集,但可以进一步使用由现有Optimistic桥开发的验证器设置更改协议。
大额转账。两步请求/挑战机制仍然可以使用,而铸币者可以不断铸币,直到满足大转移。
避免Gas War。 如果多个铸币者想要在源链上铸币一个锁定/转移事件,用户可以为跨链转移指定一个首选铸币者,并且只有首选铸币者才能在 PREFERRED_MINT_PEROID 内铸币(例如,30 分钟)
它与具有不同“借贷”约束的借贷协议(例如 Compound/Aave)有一些相似之处。