3.5 互联链架构剖析

3.5.1 互联链背景

虽然作为虚拟货币的比特币非常成功,但金融行业更看重的是区块链技术在支付领域中的应用前景。现在的支付系统很多是竖 井型,互不连接。如果在一个国家内,或者支付参与方账户同在一个支付网络或同一个账本中,支付还相对容易,如图3-11所示。但如果用户试图在不同账本体 系间支付,就没有这么容易,如图3-12所示。比如说支付宝的用户想向微信支付里的账户转账,就没有这么容易。虽然账本之间存在连接,但这些连接都需要人 工干预,交易的确认非常慢和昂贵。这里面碰到的首要问题就是一个信用的问题。也就是说,用户首先要信任在两个账本起连接作用的连接机构,相信它们不会卷款 而逃。这些连接机构目前一般是大的银行,或支付组织,像Visa、万事达、银联等。而这些大的机构往往要靠非常高的成本来建立信用。

image.png

图3-11 同一账本下的支付转账

image.png

图3-12 用户在不同账本体系之间的支付转账

比特币的出现,特别是其不依赖中心化机构而解决的双花问题,以及以极小的成本能使用户在陌生网络中建立信用,使得大家意识到传统的中心化支付系统需要重新构建。

从某种意义上来说,目前支付的状况有些类似在互联网出现之前的状况。互联网出现之前,不同系统之间没办法用标准的协议 来通信、传递信息。互联网的出现解决了这个问题。互联网的架构,简单说来就是通过如图3-13所示的层次架构,在不同链路、不同物理层上的系统间实现应用 层面的互联互通。

image.png

图3-13 互联网层次架构

从区块链的发展来说,目前已经出现比特币、以太坊、NXT等多种链,未来会出现更多不同的区块链。不同区块链之间的互联互通,需要由一个类似互联网概念的“互联链”的架构和协议来实现。我们先给出互联链的定义如下:

定义7: 互联链(Interchain)

提供实现不同区块链互联互通的统一架构和标准协议。

互联链概念还是一个全新的概念,目前还没有被业界普遍接受,因此相关的架构设计和标准化工作也没有开始。与互联链相关 的一个类似概念——“互联账本”(Interledger)则由初创公司Ripple Labs提出。从某种意义上说,互联账本包含了互联链。也就是说,互联账本不单包含了在以区块链为基础的账本之间的互联互通,也包含了多种账本(传统账 本、区块链账本)之间的互联互通。下面我们先介绍互联账本的概念。

3.5.2 互联账本

2012年,分布式账本初创公司的Ripple Labs提出了一种与比特币不同的共识机制的分布式账本,并创造自己代币瑞波币(XRP)。2015年,Ripple提出一个互联账本 (InterLedger)的协议,其目标是提供不同账本间的转账的通用协议,无论这些账本是分布式的,还是那些传统的中心化账本。如果用于基于区块链的 账本,那就是提供互联链的一个参考架构模型和协议。

首先我们来看一下Ripple对账本系统的定义。

定义8: 账本(Ledger)

资金转账系统需要记录在保持状态的系统中,以防止同一笔资金被双花。这种保持状态的系统为账本(Ledger)。账本包含账户(Account),账户有资产余额,余额可以为正为负。

定义9: 连接器(Connectors)

资产可以在同一账本中的账户间转账,也可以在两个不同账本中的账户间转账。如果在两个不同的账本间的转账,需要有一个系统知道这两个转账交易的关系,这个系统就是连接器。

3.5.3 互联账本协议组

受图3-13互联网层次架构的启发,Ripple提出了如图3-14所示的互联账本(Interledger)协议层架构。

image.png

图3-14 互联账本协议层架构

整个协议层分成4层。下面简单介绍这4层的功能。

1.账本层

为了支持账户间的转账,账本必须实现一些API和协议,称为账本层(Ledger Layer)。这一层会有很多不同的协议,每种账本会对应一种协议,这包括专门设计的支持跨账本支付的简单账本协议(SLP),区块链中的比特币、以太坊 等协议,以及传统的支付协议,像ACH、ISO 20022、Paypal等协议。

(1)简单账本协议

简单账本协议(Simple Ledger Protocol,SLP)是专门开发来提供一个跨账本支持的最基本功能的一个RESTful,基于JSONS的协议。

(2)区块链协议(如比特币)

区块链是对一个单一共享状态提供共识的分布式的点对点(Peer-to-peer)系统。任何支持托管资金转账的区块 链系统理论上来说都可以作为一个账本与互联账本连接。例如比特币支持多贷方和借方,以及SHA256哈希锁资金托管,这意味着它能进行OTP/ILP和 UTP/ILP的互联账本交易。

(3)传统支付协议(如ACH、ISO 20022)

传统协议一般不提供托管功能。在这种情况下,这些协议要就是用作协议升级,或者是用一个具高信用的机构,例如银行,作为托管提供方。

(4)专有钱包协议

有很多专有的钱包协议(如Paypal API、微信、支付宝、Apple、Google),包括网页版和移动版,这些钱包协议一般需要加上密码托管功能才能和互联账本对接。

(5)其他专有协议

有些专有协议专门设计成不提供通用账本的功能,例如积分卡、点数和预付费账户等。这些可以有限制地连接到互联账本上。例如,预付费账户账本可以作为资金接收账本,但不能作为资金发送账本或资金中介账本。

2.互联账本层

互联账协议(Interledger Protocol,ILP)保证不同的连接器能互操作,共同完成交易的路由。所有的互联账本传输都使用ILP和连接器通信,发送有关传输的请求。这包括报 价请求和在另一个账本转账的需求。互联账本层协议定义一个使用账本、账户和金额的标准。这个用于交易路由以及使得报价有统一的口径。

(1)互联账本协议

用户当发起一个互联账本协议,发送方要用本地的账本层协议把资金发送到一个连接器。在这个过程中,发送方要发送一个告诉接收的连接器最终地址、转账资金额,以及转账条件的ILP包。一般来说,还要附加一个备忘信息。具体的传输方法取决于本地账本协议。

(2)互联账报价协议(Interledger Quoing Protocol,ILQP)

在互联网账本转账发生前,发送方要发一个报价请求给连接在同一账本的连接器,这个报价请求是通过互联账本报价协议发送的。发送方可以缓存报价请求,并多次发送给同一连接器。

(3)互联账本控制协议

互联账本控制协议(Interledger Control Protocol,ILCP)是一个连接器,用来交换路由信息和报告支付错误信息的协议。

3.传输层

传输层(Transport Layer)协议负责协调不同的转账交易,使它们能进行跨账本转账的交易。转账的安全性取决于采用不同的传输协议。传输层为应用提供端到端的传输服务。目前有3种主要传输层协议:

·乐观传输协议(OTP)

·通用传输协议(UTP)

·原子传输协议(ATP)

(1)乐观传输协议

乐观传输协议(Optimistic Transport Protocol,OTP)是一个没有托管的轻量级的传输协议。它只是简单地把资金传送给连接器。连接器可能会,也可能不会继续向对方账本发起转账请求, 但无论如何,资金已离开资金发送方的账户。大多数情况下,OTP是不适合的,但在一些重复多次发生的微小金额交易,资金丢失损失也不是很大的情况下,用 OTP也是合理的。因此它只适合于微支付场景,这些场景下效率会比稳定性更重要。

(2)通用传输协议

通用传输协议(Universal Transport Protocol,UTP)是一个推荐采用的标准传输协议。它建立级联式托管传输来保障资金交付。UTP用一个有托管的转账来保证在交易成功完成之前,资 金不离开发送者的账户。它适合于任何金额的转账,应该作为缺省选择。

资金的托管必须支持采用密码学手段的托管。有托管的交易意味着有4种状态。

·提议状态:资金没有发生转移。

·准备状态:资金在托管状态。

·执行状态:资金转账完成。

·拒绝状态:资金转账被取消(资金返回给发送方)。

托管相当于金融领域里的“两阶段提交”(two-phase commit)。

(3)原子传输协议

原子传输协议(Atomic Transport Protocol,ATP)是最保守的协议,也是最复杂的互联账本协议。除了账本和连接器,它还包括一组独立的,被交易过程中所涉及的发送方、接收方和连 接器认可的公证机构。由于每个参与方选择他们相信的一组公证机构,或许没有共同认可的工作机构,那ATP在这种情况下就不能使用。一般来说,可以基于一个 所有参与方遵从的协议,采用一个自动化的流程来选择公证机构,或预先选好一组大家公认的公证机构。

ATP用托管转账和一组预先协定的、可信任的公证来保证在多个账本中原子交易的完整性。这种协议的设立比较昂贵,但可以用来减少对对账的需求。

ATP可以用在UTP交易中的一个子协议。当对方连接器给出一个比UTP传输更好的ATP传输报价时,连接器可采用建立一个ATP传输作为下一个段的传输。但这存在不能传输收据和公证机构故障的风险。

同样,在对方连接器不支持ATP传输的情况下,连接器可以决定用UTP作为下一段传输,这样一个ATP传输可以变成一个UTP传输。这也存在不能把收据发送给公证机构的风险。

4.应用层

应用层(Application Layer)是互联账本协议的最高一层。应用协议层包括开放Web支付机制(OWPS)、简单支付建立协议(SPSP),和私有协议,如瑞波支付服务协议(RPSP)开放协议。这一层的协议负责谈判支付的以下关键属性:

·源账户

·目标账户

·金额

·条件

当这些属性定下来之后,应用层协议就会调用传输层协议发起支付。

(1)简单支付建立协议

简单支付建立协议(Simple Payment Setup Protocol,SPSP)是一个应用层协议,用于支付细节的谈判。SPSP处理账户和金额发现、条件建立、报价和设置。SPSP采用 Webfinger和基于HTTP的协议来查询账户和金额细节。它采用ILQP做报价,采用UTP执行支付。

(2)定义其他应用层协议

其他方面的应用层协议应考虑以下问题:

·账户发现

·沟通金额和支付条件

·在备忘信息中里的更多的详细信息

·支持的或必须具备的条件类型

·传输协议

·接收支付交易的验证(金额、条件等)

通过互联账本协议,用户可在不同账本、不同支付网络中实现资金自动转账,交易的确认和验证时间可以大大缩短,而且更重要的是不必担心有资金丢失的风险。

3.5.4 互联账本各层协议关系

互联账本架构中,各层关系类似互联网的各层协议,每层只与相邻层做交互,不会跨层通信。支付由应用层发起,应用层调用 传输层接口,传输层再调用互联账本层的接口,最后互联账本层通过调用账本层接口把包含目的地址连接器的支付请求发到账本层的连接器,账本层的连接器根据目 的地址将支付请求发到对方账本的连接器,实现支付请求的发起。目的账本的连接器在接收到支付请求后,通过调用上层的互联账本层接口,把请求转到传输层,进 而再转发到应用层,这样接收方接收到请求。支付的响应也通过相同的路径返回给支付发起方,实现支付功能,如图3-15所示。

image.png

图3-15 互联账本自动安全转账

互联账本协议还处于非常初级的概念模型阶段,离实际应用还有很大的一段距离。相信在互联账本方面的实践经验积累,会为未来互联链的架构和标准协议的制定提供一个参考。作为一名对区块链有所了解的技术人员,如何掌握区块链的架构呢?由于目前深度介绍区块链技术架构的书籍不多,这是困扰很多区块链技术爱好者的问题。本章深 度剖析区块链1.0、区块链2.0架构,同时也介绍了具有前瞻性的区块链3.0架构。学习本章,可以深入了解在组件级的比特币架构,同时了解以以太坊为代 表的区块链2.0架构和比特币架构的异同。帮助读者在实际应用场景中选择合适的区块链架构以确保区块链应用的成功落地。最后介绍了互联链架构,使用户了解 集成、整合不同账本的解决方案基础。

来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=1026

'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值