写点什么

揭秘区块链间的连接桥梁——蚂蚁跨链 ODATS 设计之道

  • 2019-12-25
  • 本文字数:2509 字

    阅读完需:约 8 分钟

揭秘区块链间的连接桥梁——蚂蚁跨链ODATS设计之道

认识跨链

各行业乃至行业中某个领域根据自身的产业结构构建不同区块链网络,每条链上都流转着相应有价值的信息与资产。但通常情况下,任何一个行业的价值都不可能完全孤立,往往有跨行业协作的业务需求,这也催生了区块链应用落地的一大挑战——多链信息孤岛。



比如一个简单的资产跨链转移例子:


基于区块链搭建的供应链金融平台上,流转着 Alice 的一笔应收账款资产,当 Alice 有转让需求,但接收方 Bob 却在另外一个区块链资产平台上,如果两个平台业务上相通且区块链平台具有跨链能力的话,就可以使 Alice 的资产在其链上销毁或者永久冻结,同时 Bob 所在的区块链平台确认 Alice 资产已冻结后,创建对等的合法的应收账款资产给 Bob。


这个过程的关键是要求 Bob 的区块链能“看见”且“认证”Alice 的资产状态,进而诚实履行创建资产的任务。


整个跨链过程可以看成一个原子事务,一旦 Alice 资产永久冻结后,Bob 所在的区块链就必须给 Bob 发行对等的资产。两条链上的状态需要在一定时间内达成一致,不能永久处在一个中间态,否则不能保障资产守恒以及不可双花等基本要求。


跨链需求的本质可以定义成这么一个跨链信息交互模型:链 A 上面的信息经过共识确定,可以安全可信地流转到链 B 中,链 B 可以认证信息,并且按照约定执行后续的跨链逻辑。

如何实现跨链技术

这就需要一种“可信连接技术”,能把一条链上的可信数据,真实可靠地告诉另外一条区块链上,中途能像区块链本身数据流转一样保证数据无法被篡改,那么两条链上的参与方就可以互信对方数据,就像是在一条链上一样进行可信的业务协作了。



要实现这个跨链模型,首要解决的核心问题是跨链消息的认证,常用跨链技术里可以使用「侧链机制」直接认证的,或者使用「公证人机制」间接认证;区块链间异构特性带来的数据结构差异,需要设计相关数据协议约定和引入桥接组件等方式解决数据差异性的问题;最后是完成跨链事务的设计,使得两条链上的状态能够安全达成业务的一致性,且该事务具有原子性。


现有跨链技术能力已经有多种方案去解决以上基本问题,使链与链之间具备基本的交互能力。但在面对实际的业务场景,还需要解决哪些具体问题,面向未来万链互联的技术愿景,跨链技术基础架构还需要完善哪些技术能力?来看蚂蚁区块链跨链技术交出的创新答卷。

蚂蚁区块链 ODATS 跨链协议设计之道

蚂蚁区块链 ODATS 技术愿景是为了超越价值流转的边界,构建跨链通讯基础设施,承载区块链价值互联网。ODATS 从实际业务场景出发打磨的商用跨链平台,从底层协议到高可用组件实现与业务编程界面有着诸多丰富设计,现在为大家解读 ODATS 在协议层不一样的几个重点设计要素,预览跨链核心。

跨链协议的安全性、适用性


异构区块链账本上的可信数据的数据格式、验证逻辑、验证信任根都是独立的,其规格可以通过区块链自身协议定义清楚,任意客户端包括另外一条链上的单位,原理上都可以直接认证。


但在实际跨链中更多存在中继者/公证人等角色做了一层“桥接”,桥接过程中完成原数据的安全认证、数据格式转化、数据重新声明等动作,本质上这些行为是一种「证明转化」:在不改变原有数据语义的前提下,进行数据格式转化、数据证明的转化、信任根的转化,以便于验证者安全简便地解析和认证跨链信息。


ODATS 把以上过程梳理成协议,即“证明转化协议”,使其可以清晰地去描述了流转跨链消息时数据格式验证规格以及数据语义的信任根和安全性。


设计这种协议设计有什么好处?


首要的考虑是安全性,“证明转化协议”将安全规格“量化”出来,这是跨链机制的核心,等同于区块链的共识机制,是业务评估其承载价值能力的最重要基础。


其次是适用性,就如同面向各式各样的实际的区块链场景,业务通常会根据场景情况使用不同的共识算法与参与方信任模型去构建出适用场景的信任边界以及安全度等维度不尽相同的区块链,当在跨链时,面向不同规格的区块链实例,也需要根据信任关系和安全等级去灵活构建跨链网络。

统一的分布式自治跨链身份


身份体系是通讯的基础,目前很多跨链解决方案中并未重视区块链身份体系的搭建,区块链跨链标识往往只能在局部跨链使用,跨链作为面向万链互联的基础设施,区块链身份体系将会是重要基础。


现在的开放的互联网的安全通讯里,已有一份健全且久经考验的体系:PKI 基础设施。开放的跨链互联网络有着与现有互联网一致的需求:开放、安全通讯、分布式自治,而不一样的点是该区块链证书的对象是一条链及链上对象,对于链的身份,这里涉及到如何开放地定义链的“唯一标识”,对于链上的对象,包括账号以及合约等,如何出域对外可验证。


业务引入了职能与 PKI 体系类似,而更轻量级且更具分布式自治及扩展性的“分布式身份”体系,设计区块链证书,描述区块链的唯一认证根以及其安全更新与公开吊销,让业务在由区块链组成的价值互联网里进行安全跨链,做到“有根可寻”且“安全可控”。

数据安全与隐私保护


隐私保护及数据安全是区块链面向实际场景的重要问题,而跨链流程往往意味着链上数据要面临隐私公开和数据要在安全域外不可靠流转等安全敏感问题。就如数据要上链就要公开被全网共识一样,貌似数据隐私安全天生就站立在跨链的对立面。但随着各类链上隐私保护方案的研究与落地应用,跨链要解决数据隐私安全问题也是面向实际生产场景的首要任务。


与“中继链”以及“预言机”等集中型的重型跨链中继解决方案不一样,蚂蚁区块链采用的是跨链路由形态。在联盟链场景中,这类跨链中继中心会是落地障碍,其引入了跨链两方外新的信任体和数据安全域,这让跨链协作的业务变得更为复杂的同时,中继中心也是数据安全的杀手。


跨链路由与证明转化协议以及身份体系结合,互联的两条区块链各自的安全信任域内各自部署“证明转化”的跨链路由,路由上可管控数据进出身份,数据可以按需出域,路由间通过 TLS 安全通道 P2P 直连,使数据直接到达信任的彼岸,实现跨链数据按需出入与传输可控。


以上解决的是跨链数据的物理隔离安全,其内容安全同样也存在需求,证明转化里还支持链下可验证/可信计算,支持引入 ZKP 和 TEE 等可信计算技术,完成跨链数据出域的同时,支持内容的隐私保护。


本文转载自公众号蚂蚁区块链。


原文链接


https://mp.weixin.qq.com/s/9OxlPUyeHak5Zkjo5HB9tQ


2019-12-25 14:002459

评论

发布
暂无评论
发现更多内容

SpringMVC专栏 第1篇 - 快速入门

小马哥

Java spring Spring MVC 七日更 二月春节不断更

Elasticsearch dynamic mapping

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

熬夜7天,我总结了JavaScript与ES的25个重要知识点!

我是哪吒

学习 程序员 面试 大前端 2月春节不断更

面试官系列:你对Spring事件发布和广播监听有了解吗?

后台技术汇

面试 2月春节不断更

数字资产助力未来十年打赢数字经济战

CECBC

数字经济

《我们脑中挥之不去的问题》 - 卓克科普(3)

石云升

读书笔记 科普 2月春节不断更

深入 Python 解释器源码,我终于搞明白了字符串驻留的原理!

Python猫

Python 编程

保持模块的兼容性

Rayjun

go modules Go 语言

日记 2021年2月15日(周一)

Changing Lin

2月春节不断更

记一次有意思的微信视频号直播

小匚

产品经理

日记 2021年2月14日(周日)

Changing Lin

2月春节不断更

第十二周学习总结

Binary

公路交通区块链技术的痛点问题和典型场景应用

CECBC

区块链

华为 MPLS的数据转发流程

艺博东

华为

诊所数字化从预约开始

boshi

数字化医疗 七日更 线上预约

Idea应用启动时WEB-INF/lib无效标记问题处理

程序员架构进阶

Java IntelliJ IDEA 七日更 2月春节不断更

翻译:《实用的Python编程》01_03_Numbers

codists

Python

第十二周课后作业

Binary

Tomcat异常: Unable to process Jar entry [module-info.class] from Jar

小马哥

Java maven 七日更 二月春节不断更

深入理解gradle中的task

程序那些事

Java maven Gradle 程序那些事 构建工具

10. 比找女朋友还难的技术点,Python 面向对象

梦想橡皮擦

Python 2月春节不断更 python入门

机器学习笔记之:

Nydia

【STM32】串口通信出现乱码(使用官方标准库)

AXYZdong

硬件 stm32 2月春节不断更

工作学习累了?试试 GitHub 上的那些简单易学的游戏项目吧!

JackTian

GitHub 开源 游戏 2月春节不断更

今日出门

Nydia

ElasticSearch.01-简介

insight

elasticsearch 2月春节不断更

中国科学家突破区块链核心技术

CECBC

区块链

JUnit速查手册

jiangling500

Java JUnit

松耦合

sinsy

设计模式 RabbitMQ

【LeetCode】情侣牵手Java题解

Albert

算法 LeetCode 2月春节不断更

【LeetCode】最大连续1的个数Java题解

Albert

算法 LeetCode 2月春节不断更

揭秘区块链间的连接桥梁——蚂蚁跨链ODATS设计之道_区块链_Geek_d42ef0_InfoQ精选文章