问题不是“链与链”,而是“账本与账本”
大多数付款今天要走一条长长的代理链:发卡行、卡组织、收单行,每家都在自己的账本上记一笔。Interledger 出发的位置不同:它不发明总账,也不要求任何一家账本升级成同一种技术,而是假设存在一个能描述“我在任何账本上的某个账户”的地址体系,然后回答一个更工程的问题——怎么把一笔跨账本的转账做成原子操作,既不会出现付款方扣了钱、收款方没到账,也不会反过来。
ILP(Interledger Protocol)给出的答案有两根支柱:条件支付与两阶段转账。条件支付是账本上的一个原语:一笔款项不是直接付给某人,而是锁定“谁能出示某个哈希的原像,谁就能领走”。两阶段转账则把整条路径包成一场先预扣、再决定确认或回滚的握手。两者合起来,等价于把哈希时间锁合约的思路推广到任意一对账本之间。

四类报文与一场带倒计时的博弈
握手由四种报文构成。PREPARE 沿路径逐跳传递,带着金额、到期时间和条件(领款条件的哈希);每一跳收到后不是转发就算完,而是在自己的下游通道上做出对应的预扣——上游欠我的承诺换我对下游的承诺。FULFILL 携带原像,沿原路传回,每一跳用它结清自己那份预扣,链条像多米诺一样正向结算;REJECT 走同样的路,但含义是失败,每一跳把预扣原样退回。最关键的角色是路径末端的连接器:当整条路径都不成功时,必须有人在到期前宣布终局,否则各家账本上的预扣会悬着不下锅——COMMIT 就是连接器发出的那句“结账”,它告诉所有参与方:这一轮到此为止,该确认的确认,该退款的退款。
原子性正是从超时里长出来的:要么到期前所有人看到同一个结果(原像或失败),要么到期后所有人各自安全回滚,不存在中间状态被永久锁死。协议对报文超时有明确纪律,实现据此避免“半付款”的悬挂状态。
钱在途中时,各家账本上记了什么
把一笔“从 A 的账本到 B 的账本”的转账摊开看,路径上每个连接器都同时持有两份账:一份对它上游的收款权利,一份对它下游的付款义务,两份都由条件锁住。握手的奇妙之处在于资金全程没有移动过——结算的是条件与承诺,移动的是信息。到期前如果 FULFILL 回来了,两份账同时转正;如果 REJECT 或到期,两份账同时清零。于是风险被压缩到一个可以计算的窗口:持有敞口的时间,最长不超过这笔转账的到期时间。
这也解释了“连接器”这一角色的商业模型:它本质是一家做微观外汇的机构——把上游账本的债权换成下游账本的债务,从中收取点差。协议对汇率换算没有标准,报价由各连接器自己给出,这是设计上留给市场的那一半。
边界与现状
值得先破一个联想:Interledger 不是链桥。它不锁定任何资产、不验证任何链的共识,账本对 ILP 而言只是一台“条件支付能力”黑盒——银行账户、支付通道、区块链钱包,只要能实现条件支付接口就能进网。ILP 对底层转账的原子性也不做承诺,那是账本自己的性质。另一件事是状态:这套协议自二〇一五年公开规范以来,生态由 Interledger 基金会维护,主要落地集中在支付通道与钱包互联场景(例如基于它的实时支付网络)。在公开资料里,它更多是支付工程社区的标准,而非加密行业的主干叙事——把它当“让各家账本互相付钱的 TCP/IP”读,是恰当的期待值。
一笔转账的算术
给抽象装上数字。假设一笔一百万单位的转账分三跳,到期设为一百二十秒。最坏路径:最后一跳的收款人离线、没结这笔预扣;连接器在第一百秒发出 COMMIT,消息在剩余二十秒内传播到位——各家账本在到期线前全部回到起点,零损失,代价是这一百二十秒的服务占用。最好路径:第三跳十秒内交出原像,FULFILL 反向传回同样十秒,全程二十秒结清。两种结局的共同点是:没有任何一家账本需要在别人家挂着一笔语义不明的“在途”余额。把时间参数改大(几小时)或缩小(几十秒),分别对应跨境大额与实时微支付两类产品形态——时间参数就是这个协议真正的设计旋钮。
快速问答
问:中间跳的连接器跑路怎么办? 答:该跳上游的预扣到期自动退回,整笔转账失败重来;连接器跑路损失的是它自己与两邻的敞口,协议不保护经营失败。
问:这能用于区块链与银行卡之间吗? 答:只要两侧账本支持条件支付接口即可入网;现实中取决于服务商是否把这套接口做进了产品。
问:地址长什么样? 答:形如“协议加账本前缀加账户”的明文地址,跨协议时由连接器做地址翻译,规范把它称作全局寻址。
风险提示:参与跨账本支付涉及敞口与对手方风险,请理解连接器商业模式后再选择路径;本文不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。