主链与侧链的双向桥接网络怎样去构建
扫描二维码
随时随地手机看文章
概述
我们提出了一种新颖的方法,用于在主链和侧链之间构建无信任的双向桥梁。 通过永久停止侧链,即使在乐观的情况下,我们也不再需要严格的同步要求和长时间的退出延迟。而代之的是,只有在侧链暂停很长一段时间后才允许提款。 一旦停止了侧链,就可以通过流动性提供者网络使用原子交换立即提取资金以进行使用。 可以同时启动新的侧链,以终止旧的侧链以接受并开始处理掉期后的资金。
现有提案存在的问题
目前的侧链建议有几个问题,我们在这篇文章中解决。我们将在本节中讨论一些更常见的建议:
合并挖矿(Merge-Mined)侧链
合并挖矿涉及通过允许矿工同时开采两个或更多链条来重复使用工作量证明。这用于像Rootstock这样的系统,作为引导侧链启动的一种方式。
不幸的是,合并挖矿仅提供针对外部哈希率的安全性,而在一般情况下则不提供安全性。另外,它在任何情况下都无法实现不信任的双向资金桥梁(即在不信任第三方的情况下,将代币/代币从主链和侧链转移到主链和侧链)。
Federated Peg(联邦挂钩)侧链
federated peg联邦挂钩)实现主侧链之间的互相转账,通过多个集体构成的联盟共同监督和维护主侧链之间的转账。如果联盟的大多数成员未通过多重签名对此表示同意,则该联盟无法从侧链向主链释放资金。即使联盟不直接控制实际资金,用户也可以将其资金无限期地停留在侧链中,直到大多数人决定解锁资金为止。因此,用户应联邦的要求。
通常在主链的智能合约功能(例如比特币脚本)的表达能力不足时使用。为了有效地锁定和解锁侧链和主链之间的资金,需要在链上验证证明,这可能需要广泛的功能。这就是Liquid 1和Rootstock等系统的工作方式。
还有另一种称为Drivechain的2-way federated peg(双向联邦挂钩)系统,其中联邦是主链矿工的隐式子集。即使在这种情况下,加入联盟是未经许可的,我们仍然遇到与上段所述相同的问题,即大多数矿工可以任意窃取或锁定资金。
Plasma链
受早期CoinWitness的启发,Plasma Cash使用基于代币的数据模型(不同于比特币的UTXO数据模型或以太坊的账户数据模型)。这具有很好的功能,即侧链上的所有代币对主链都是已知的-类似于打开的通道。通过使用复杂的退出博弈来维护不信任的双向挂钩,无论在侧链上发生什么情况(包括操作员扣留区块或产生无效区块),都必须维护该挂钩,这是维持双向交易所必需的。
这些退出游戏产生的问题是它们是交互式的,必须在一个实时的、不断变化的侧链上执行。因此他们需要考虑用过的代币和无效支出的可能的欺诈性退出,这最终阻止了监视塔的有效使用,并要求用户持有状态(代币历史)。这迫使用户进入严格的同步要求,并要求每个用户运行一个完整的节点。
停止的双向桥接
假设与要求
这篇文章使用了“侧链”一词,尽管它可以等效地替换为“具有延迟状态执行的执行环境”,我们将在后面的文章中介绍。
资金通过单向桥存入侧链(即资金被锁定在合约中,没有立即取回的方式)。侧链上的执行按正常情况进行。尽管我们要求侧链区块标头在链上可用,并且对无效区块和不可用数据都提供解决方案,但这种方式通常是正向的。无效的数据区块可以通过有效性证明或欺诈证明解决(尽管首选欺诈证明),而不可用的数据可以通过按请求始终将所有数据作为调用数据发布在链上或通过使用非交互式链上数据可用性证明来解决
任何数据模型都可用于侧链,包括UTXO数据模型(如比特币),账户数据模型(如以太坊)或基于代币的数据模型(如Plasma Cash实际上这里提出的方案可用于增强Plasma结构)。执行模型还可以通过任意断言和程序扩展到广义状态执行。
双向桥接
我们注意到,侧链退出游戏的复杂性、成本和安全假设的大部分允许无可信的双向桥(即Plasma)源于这样一个事实,即在每一个退出尝试中,通过永久性的、在非常紧迫的时间窗口内,必须执行有效性。这使得这些方案特别容易受到链拥塞攻击,并且大大限制了它们的安全容量。
我们可以通过简单地拒绝提款来减少这种复杂性,直到侧链已经停止并且足够长的时间已经过去(比如,几个月或一个系统参数)。在此之前,任何人都可以发布欺诈证明或数据不可用证明来使任何数量的侧链区块失效。
停止侧链
现在最大的悬而未决的问题是“谁来决定何时停止侧链?”多重签名联合会可能具有过多的控制权或者可能永远不会停止。基于权益的投票是可操纵的,也可能导致侧链永不停止。
事实证明,最简单的答案是最优雅的:侧链在预定数量的固定块之后简单地停止。这也具有阻止侧链僵化的良好效果:用户将撤回资金,然后将其存入新的侧链中,这可能会改善规格或减少安全漏洞。可以在钱包级别将其抽象出来,因此不是一个重要的UX阻止程序。
快速提款:流动性提供者
为了避免提款延迟,流动性提供者可以通过原子交换购买侧链上的资金所有权。这与为Plasma提议的代币化快速退出类似,尽管没有资金被提取。流动性提供者将承担欺诈和资本锁定成本的相关风险,并将其转移给用户以获取利润以换取流动性。但是通过运行侧链完整节点,他们将能够对基础资产的有效性充满信心地进行购买。
快速提款只需要一个流动性提供者,而无需执行无信任的双向桥梁。成为流动性提供者只需要提供流动资金而无其他许可。激励流动性提供者以确保他们交换有效资金,并因此通过任何必要手段确保与之交换的侧链技巧有效。
快速恢复:跨侧链发生
尽管现在我们有了让用户能够通过流动性提供商迅速提取其资金以使用的方法,但用户资金现在已处于主链上,这速度可能会很慢,昂贵,拥挤,或者涉及昂贵的gas费用。为了解决这个问题,我们可以在旧的侧链停止后立即启动一个新的侧链,可能会使用新规则(类似于硬分叉)。
新的侧链可以立即接受存款,因此用户可以从旧的侧链进行原子交换资金,然后将其无缝地存入新的侧链(具有UI集成)。在旧的侧链经过很长时间发布欺诈证明之后,新的侧链也可以接受批量取款到存款。
借助正确的钱包集成和无许可的流动性提供商网络,几乎在所有情况下,这都使用户甚至不知道自己使用的是特定的侧链情况下进行资金转移。
来源: 区块链研究实验室