Interledger协议(ILP)
前言
本文件规定了Interledger协议(ILP)。它很大程度上取决于RFC 791中定义的互联网协议(IP)的定义。Interledger协议是十多年来分散式支付协议研究的高潮。Ryan Fugger于2004年开始了这项工作,并于2008年开发了比特币,并从此开始涉及众多贡献者。
介绍
动机
今天的付款网络是孤立的,不连接。在一个国家内付款相对容易,或者如果发件人和收件人在同一网络或分类帐上有帐户。但是,从一个账本发送到另一个账户通常是不可能的。在连接确实存在的情况下,它们是手动,慢速或昂贵的。
Interledger协议提供跨越不同数字资产分类帐的路由支付,同时隔离发送方和接收方免于中间失败的风险。安全的多跳支付和自动路由功能可以为全球网络提供不同类型的价值,可以将任何发送方与任何接收方连接起来。
范围
Interledger协议的范围有意限制,以提供必要的功能,以通过分类帐系统的互联系统从源端向目的地提供付款。它包含对基础分类帐的最低要求,它不包括公钥基础设施,身份,流动性管理或支付协议中常见的其他服务。
接口
此协议由主机通过Interledger环境中的更高级协议模块调用。Interledger协议模块通过本地账本协议调用交叉支付到下一个连接器或目标账户。
例如,一个Simple Payment Setup Protocol (SPSP)
模块会使用interledger包中的地址和其他参数调用interledger模块来发送付款。插入器模块将根据给定的参数将转移发送到下一个连接器或目标帐户以及插入器数据包。传输和插入数据包将由下一个主机的插入器模块接收,并由每个连续的连接器和最终的目标的SPSP模块处理。
例如,在Ripple案例中,插入器模块将调用本地分类器模块,该模块将创建Ripple事务,并附加Interledger数据包以传输至Ripple Consensus Ledger。Ripple地址将由本地分类帐接口从Interledger地址派生,并将成为Ripple网络中某个帐户的地址,该帐户可能属于其他分类帐的连接器。
手术
Interledger协议的核心功能是解决主机和跨不同分类帐的付款问题。
每个主机发送和接收付款的付款都有一个插入器模块,该模块使用插入器头中的地址向其目的地传输插入付款。Interledger模块共享解释地址的通用规则。模块(尤其是连接器)还具有制定路由决策和其他功能的程序。
插入者协议使用转移保留来确保发件人的资金被发送到目标帐户或返回到发件人的帐户。“ 概述”和“ Interledger白皮书”中详细介绍了此机制。
插入者协议将每个插入者付款视为与任何其他插入者付款无关的独立实体。没有连接或通道(虚拟或其他)。
Interledger支付不包含专用的生存时间或剩余跳数字段。相反,金额字段的作用类似于隐式生存时间:每次转发付款时,转发连接器都会从入站金额中收取一定费用。一旦连接器识别出入境金额比ILP头部中的目标金额小(但不一定数值上更小),它将拒绝转发付款。
请参阅IL-RFC 19,了解诸如转账,分类帐,连接器和付款等术语的定义。
概观
与其他协议的关系
下图说明了协议层次结构中的交互协议的位置:
Interledger协议一方面与更高级别的端到端协议接口连接,另一方面与本地总账协议接口。在这种情况下,“分类帐”可能是由个人或组织拥有的小型分类帐,也可能是像比特币这样的大型公共分类账。
操作模式
该协议使用转帐暂停以确保发件人的资金被交付到目的地或返回到发件人的帐户。以下示例说明了操作模型:
(1,21) (11)
Application Application
\ /
(2,20) (6,16) (10,12)
Interledger Module Interledger Module Interledger Module
\ / \ /
(3,19) (5,17) (7,15) (9,13)
LLI-1 LLI-1 LLI-2 LLI-2
\ (4,18) / \ (8,14) /
Local Ledger 1 Local Ledger 2
发送应用程序使用更高级别的协议来协商地址,金额,加密条件以及与目标的超时。它调用interledger模块发送这些参数的付款。
Interledger模块准备ILP数据包,选择帐户发送本地分类帐传输,并将它们传递到本地分类帐接口。
本地分类账界面创建本地分类账转账(包括加密条件),然后在本地分类账上授权此转账。
分类账将发送人的资金置于保留状态 - 不会将资金转入连接器 - 并通知连接器。
连接器主机的本地分类帐接口接收通知并将其传递给插入器模块。
连接器的interledger模块提取ILP数据包并确定它应该转发付款。Interledger模块调用目的地分类帐的本地分类账接口发送第二次转账,包括与发件人转账相同的条件。
本地分类账界面创建本地分类账转账(包括加密条件),然后在本地分类账上授权此转账。
分类账将持卡人的资金搁置 - 不会将资金转移到目的地 - 并通知目标主机。
目标主机的本地分类帐接口接收通知并将其传递给插入器模块。
Interledger模块提取ILP数据包并确定支付是针对该主机中的应用程序的。它将传输数据传递给应用程序。
目标应用程序收到通知并确认资金处于待定状态,等待条件满足。它根据与发件人商定的内容检查传入传输的细节。如果检查通过,应用程序将生成条件履行并将其传递给交错模块。
目标的Interledger模块将履行交给本地分类帐界面。
本地分类帐界面将履行提交给分类帐。
目的地分类账根据持有的转账情况验证兑现情况。如果履行有效且传输未过期,则分类帐执行传输并通知目标主机和连接器。
连接器的本地分类帐接口收到履行通知并将其传递给交错模块。
连接器的插入器模块接收履行并将其传递到对应于源分类帐的本地分类帐接口。
该分类帐界面将履行情况提交给来源分类账。
源分类账根据持有的转账情况验证兑现情况。如果履行有效且传输未过期,则分类帐执行传输并通知连接器和发件人的主机。
发件人的本地分类帐接口收到履行通知并将其传递给交错模块。
发件人的interledger模块接收履行通知并将其传递给应用程序。
发件人的申请收到履行通知并作出相应反应。
功能说明
Interledger协议的目的是使主机能够通过一组相互连接的分类帐路由支付。这是通过将支付从一个插入模块传递到另一个模块来完成的,直到达到目的地。interledger模块驻留在interledger系统中的主机和连接器中。根据对插入者地址的解释,付款将通过个别分类帐从一个插入模块发送到另一个。因此,interledger协议的中心组件是interledger地址。
在路由支付金额较大时,他们在路由过程中选择的连接器和中间分类帐可能不受信任。底层账簿提供的保留可用于保护发送方和接收方免受此风险。在这种情况下,ILP数据包包含密码条件和到期日期。
解决
与互联网协议一样,Interledger在名称,地址和路由之间进行区分。
“一个名字表示我们寻求的东西,一个地址表示它在哪里,一条路线表示如何到达那里,互联网协议主要处理地址,它是更高层次(即端到端或应用)协议的任务从名字到地址的映射。“
interledger模块将interledger地址转换为本地分类帐地址。连接器和本地分类帐接口分别负责将地址转换为交错路由器和本地路由。
地址是由句点(.
)字符分隔的段组成的分层结构字符串。
g.us.bank1.bob
有关ILP地址的更多信息可在ILP地址规范中找到。
分类帐中地址到本地帐户的映射由分类帐协议定义。
连接器
连接器实施interledger协议,在分类账之间转发付款,并将错误传递回路径。连接器实现(或包含一个实现的