角色
外部链
Intention
跨链桥合约托管资产 · 放钱之前先校验签名用户资金真正依赖的那个部件
验证者观测外部链,并对看到的内容签名
Finalizer中继,不是权威——它造不出一笔验证者没签过名的提现
Governor验证者集合与参数——那些没法安全自动化的部分
一笔提现只有在聚合到足够多验证者签名之后才可执行——与共识是同一套信任假设,只是跨过了链的边界。
充值事件
聚合签名
提现交易
充值
充值是容易的那个方向。资金被锁在外部合约里,合约发出一个充值事件;验证者观测到它,这笔入账在 Intention 上成为一笔协议原生的交易。 这笔入账就是一笔普通交易,所以内核保证的一切它都继承下来。它按规范顺序执行,对账户的影响算在它自己头上,也和其他任何状态变更一起出现在同一份输出里。充值给一个濒临强平的仓位补上保证金,清算所在同一个执行步骤里就能看见——不用等之后对账。 要等的是外部链的最终性,不是 Intention 的。源链的确认数一够,充值就入账。提现
提现是危险的那个方向,它分两个阶段进行,中间隔着一个争议期。在 Intention 上发起请求
由验证者签名,并登记到合约上它并不放款
争议期必须经过一段配置好的时长
终结资金释放
被作废在任何资金移动之前取消
为什么要等每一次灾难性的跨链桥事故都是同一个结构:攻击者取得了授权提现的能力,资金在同一个区块里就没了。争议期把瞬时、不可逆的损失变成一段窗口,人和监控还来得及动手。代价是正常的提现也要跟着等。
期满
提出异议
叫停它
出问题时有两套机制。 作废在争议期内取消某一笔特定的提现。这是有针对性的处置。 锁定是粗暴的那一个:指定角色可以锁定跨链桥,需要多少个这样的角色一起动手,本身也是一个参数。它对付的是“出事了,但还不知道出的是什么事”——切断整条流,而不是逐笔裁定交易。验证者集合变更
外部合约必须知道验证者是谁,所以验证者集合一变,就得跨过边界传播过去。变更先提出,再单独走一步终结,而不是一提交就生效——和提现同样的两阶段形态,出于同样的理由。风险到底在哪里
值得直说,因为跨链桥正是用户亏钱的地方:- 在 Intention 一侧,跨链桥是普通的。 一笔已入账的充值就是一笔普通交易,带着普通的保证。
- 在外部链一侧,你依赖的是合约和签名阈值。 这是与共识不同的安全模型,并且单独接受审计——跨链桥正是接受第三方审查的那个组件。
- 在两者之间,你依赖验证者正确观测,以及 Finalizer 完成提交。二者都无法伪造一笔提现;二者都可以拖延一笔提现。
后续阅读
充值
面向用户的入金路径,含当前支持的链与时长。
非交易类费用
一笔提现要花多少钱,以及充值为什么免费。
清算所
一笔充值落地的那一刻,对保证金做了什么。
风险披露
以风险形式陈述的跨链桥信任假设。