写点什么

跨链“战事升级”:迅雷链如何更好地跨链、打造信任协作?

  • 2019-08-23
  • 本文字数:3940 字

    阅读完需:约 13 分钟

跨链“战事升级”:迅雷链如何更好地跨链、打造信任协作?

数据孤岛、信息孤岛,对于区块链行业而言已不再是新鲜名词。正如大家所知道的,目前大部分链与链之间采用的是“烟囱式”的建设模式,每条链都是独立、垂直、封闭的体系,数据本身蕴藏的信息和价值无法自由快速流通,生态无法对接,严重制约了区块链行业的整体发展。


因此,打破不同区块链间通信壁垒的需求层出不穷,解决区块链网络互通问题成为了区块链技术发展的的新趋势。


2019 年 6 月 30 日,“链间通信,链接未来”迅雷链技术沙龙在深圳举办,来自迅雷链开放平台研发负责人张慧勇、迅雷链底层研发工程师李海友、中山大学数据科学与计算机学院教授郑子彬、迅雷链开放平台产品负责人马双阳,以区块链在通信领域的技术突破为基础,解读如何利用 P2P 网络构建互联、互通、互信的通信网络,迅雷链如何利用跨链架构实现 TPS 拓展,并结合迅雷链的平台与生态,为开发者提供高可用的实践经验。

跨链架构的设计与思考

当下,全球正在跑步进入“区块链 3.0”时代,区块链越来越偏向服务于实体行业,注重在各行各业的落地应用,提供低成本的信任基础设施。


但是,TPS 低、交易确认不及时、链间价值无法传递以及安全性存疑等问题一直是区块链落地的“拦路虎” 。对此,迅雷链的“同构多链”框架应运而生。


所谓同构多链框架,顾名思义就是有多条链,每条链上运行的程序是一样的。不同用户的请求会发到不同的链上进行处理。单个节点只需负责单一链上的相关数据,不仅对存储的需求变小,同时性能得到了极大提升。而为保证系统的安全稳定,迅雷链利用 PBFT 的确定性特性完成链间通信。并支持动态扩链,为以后的扩展提供良好的基础。


如下图所示,为多链架构示意图。左边不同的交易进来,通过接入层手心把它做一个链的分配,相当于是做链的路由。不同的交易会进入不同的链,首先看这笔交易的 From 账号在哪一条链, 若有跨链处理需求 ,则通过 Zone 拷贝链间信息 。其中,MetaChain 支持动态扩链,解决下发新的路由配置更新到接入层上,在不同的链之间同步链间信息以及每条链的信息。



那么,在此架构上,如何进行跨链通信呢?


如下图所示,迅雷链会对交易进行分组,确定这条链上的交易。通过 Merkel 证明,将发往每条链的信息生成交易证明 。通 Relay node 把信息发到链里,这不仅是利用流程把跨链信息转移过去,仍然还需要利用共识算法。



PBFT 达成共识的过程分为三个阶段:准备前,准备和提交。共识过程是:


1.准备前阶段:节点为从客户端收到的请求分配提议编号,然后发出预准备消息以广播给其他节点;


2.准备阶段:其他节点收到预准备消息后,检查消息的有效性。如果检查通过,它会向其他节点发送准备消息,并带来自己的 ID 信息,并从其他节点接收准备信息。接收准备消息的节点也检查消息的有效性,并且在整个网络中验证的节点中至少有 2/3 实际上将进入就绪状态;


3.提交阶段:向整个网络的所有节点广播进入就绪状态的消息,然后所有节点投票,并且在投票数达到 2/3 后消息通过。


另外,在算法里很多地方要求三分之二的节点投票。假如三分之一以上的节点不在线或者产生恶意的行为,这会导致 PBFT 整体算法陷入停滞的状态。因此迅雷链引入了 DPoA 避免 PBFT 的停滞可能性。


首先从 150 万个节点中选择具有稳定在线,平滑传输和良好性能的高质量节点,并集中到另一个池中。然后使用 DPoA 算法从候选池中选择一定数量的节点,以形成整个链的计费网络。这些节点定期轮换并重新选举,以防止会计节点被外界暴露和攻击。


迅雷链通过创新多链架构达到百万级 TPS ,为将来区块链应用落地打下良好的基础,同时提供低成本上链环境,通过开放平台提供丰富的业务组件,方便商业用户接入。

P2P 网络的原理与应用

P2P 网络是去中心化系统的基础组件,应用在多个去中心化系统中,包括 eMule、ethereum、迅雷链文件系统 TCFS 等。典型的区块链分为基础层、核心层和应用层,P2P 网络正是位于区块链的基础层,为区块链服务。


P2P 网络协议有很多种,传统 BT 下载类应用常用分布式哈希表(DHT)算法,具体的就是 Chord,Kademlia 算法。

Chord 算法

Chord 算法是最为经典的实现。网络中每个节点分配一个唯一 ID,可以通过机器的 MAC 地址做 Sha1,是网络发现的基础。



假设整个网络有 N 个节点,并且网络是呈环状。两个节点间的距离定义为每个节点会存储一张路由表(Finger 表),表内顺时针按照离本节点 2、4、8、16、32.……2i 的距离选定 log2N 个其他节点的 IP 信息来记录。


存储方面:数据被按一定规则切割,每一份数据也有一个独立 ID (查询 Key),并且和节点 ID 的值域是一样的。然后查找节点,如果存在和数据 ID 一样的节点 ID ,则将这份数据存在该节点上;如果不存在,则存储到离该数据 ID 距离最近的节点上。同时,为了保证数据的可靠性,会顺时针往下找 K 个冗余节点,存储这份数据。


查询方面:先从自己的路由表中,找一个和数据 ID 距离最近、并且存活在网络中的节点 Next。如果该节点的 ID 巧合和数据 ID 相等,则查询成功。如果不相等,则到 Next 进行递归查找。一般或需要经过多次查询才能找到数据所在的节点,而这个次数是可以被证明小于等于 log2N 的。

Kademlia 算法

Kademlia 算法其实是在 Chord 上做的优化。主要是两个点:


1、用二进制(32/64/128)表示一个节点的 ID,两节点的 ID 异或运算得到节点间的距离。


2、 每个节点保持的路由信息更丰富,同样是将整个网络按照划分成 log2N 份,在 Chord 中,是保持 log2N 个路由节点,但在 Kademlia 里面,是保存了 log2N 个队列。每个队列长度为配置值 K,记录网络中对应节点区域的多个节点,并且根据活跃时间对这些节点进行换入换出。



与 Chard 相比,Kademlia 算法一方面方便进行网络划分,节点按照二进制中每一 bit 的 0 或 1 建成一棵二叉树。另一方面可以使得节点查询更迅速。从分割情况可以得知,最坏情况不会差于 Chord,但保存更多的节点使得命中概率更高。另外队列中根据活跃时间进行换入换出,更有利于在 P2P 这种节点变更频繁的网络中快速找到有效的节点。


在 P2P 网络应用上,最典型的例子是比特币以及以太坊。


比特币是没有层次、无结构的去中心化网络。Bootstrap 使用 dns-seed 和硬编码 seed;有 upnp,但没做打洞;交易泛洪传播,也就是病毒式传播;节点不断向其他节点寻找更近的节点并记录。而值得一提的是,比特币为提高区块及交易的传播速度,使用了加速网络,并且不止一个。通过一定中心化的节点协助区块的传播。


相比之下,以太坊则不太一样,使用了结构化的去中心化网络,用 Kademlia 优化网络的拓扑结构。其交易以及区块的传递仍然是泛洪传播,系统中每个节点都要存区块数据。同样只有 upnp,没有做打洞。Kademlia 做了一定的优化,节点加入时,find_node 对象不是自己,而是随机目标 ID。而因为使用了 Uncle Block 的策略,区块的浪费程度更低,以太坊没有加速网络。


而相对于比特币和以太坊没有做打洞,迅雷链 TCFS 在 P2P 网络中进行了不同的探索。TCFS 是为区块链而生的高可用网络存储系统。可以有效避免其他基于区块链的文件系统,在存储文件后,文件的有效性要通过数据提供方时刻关注,去检查数据保存是否靠谱,以及网络过程中安全性是否足够的问题,保障迅雷链文件系统的安全性。



TCFS 设置了冗余编码切片存储和文件自愈机制,以实现高效率和高可用性;采用 Merkle-DAG 管理文件信息,建立信任机制,保证存储高可靠;建立权益保护和授予机制,仅文件拥有者和被授权者通过令牌才可下载。


此外,迅雷链文件系统 TCFS 结合了打洞穿透和中转 Relay 结合的方案,普通的用户节点、边缘节点和骨干节点组成强大的 Relay Network。连通性达到 99%以上的同时,还达到了性能和成本的最佳平衡。

区块链通信产品设计的 4 个核心模块及 5 大特性

区块链通信网络主要面对并需要解决的是用户隐私、数据丢失、数据所有权、价值归还四个问题。而对于这几个方面,区块链通信网络产品该如何设计?


区块链通讯产品设计的核心模块分为四部分:


第一, 分布式存储。文件通过非对称加密算法加密,加密后单个文件被切分为几块分布式地存储在不同节点服务器中,只能通过特定私钥重新组合。


第二,经济激励。Token 直接同用户会员等级挂钩,有更多 Token 的用户会被允许来解锁高级功能、升级会员等。


第三,会话加密。会话唯一 Hash 保证通讯的隐私,安全协议的传输是由地址的私钥进行。进入通信网络,则需要持有钱包地址的公钥,同时对私钥签名,对所有对话进行非对称加密。


第四,共识算法。随着链上数据越来越多,而在通讯网络的场景,会有极其庞大的数据传输,如:会话、照片、语音、视频等,会造成区块交易的延迟。此时可以采用迅雷链 DPoA+PBFT 的共识算法,以此来提高速度。


同时,区块链通信产品设计还要满足以下特性:


第一, 绝对匿名:免注册、无需电话和邮件、不收集通讯录位置、不暴露 IP ;


第二,运用 DPoA+PBFT 共识算法;


第三,开源可信,区块链通信产品公开特性时所有代码是公开的,并且提供 SDK、API 接入的方式;


第四,支付体系,如在会话内支付,产生系统费用和付费消息;


第五,去中心化存储,主要满足可靠存储和区块链验证消息传输的环节。


以版权中心搭建解决方案为例。迅雷为中国版权中心推出 DCI 体系标准联盟链提供区块链技术支持,本质是信息传送的过程,主要是对普通 IP 创作者上传作品,在他的平台上进行验证,生成 DCI 码,迅雷链把 DCI 码通过平台地址进行交易的执行,生成独有的哈希,通过哈希的方式查看功能信息的,并可以通过哈希分析在云存储里的加密,形成完整的阅读。



区块链通信网络应用,目前来说在国内最大的问题是如何拥抱监管。点对点的存储方式主要是中间没有中心化机构的管控,假如发送一些非法的信息,还是比较难以受到监管。这种环境在国内需要研究如何把应用跟监管合作,用相对合适的方式打通,使应用得到很好的推广和普及。


2019-08-23 18:122650
用户头像
孙春鹭 InfoQ 编辑

发布了 27 篇内容, 共 10.9 次阅读, 收获喜欢 18 次。

关注

评论

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

看端点科技如何以行业实践探索企业数字化转型新路径

科技热闻

融云国产化适配排坑指南

融云 RongCloud

Flutter 网络请求 Dio 拦截器详解

岛上码农

flutter ios 安卓开发 4月月更 跨平台应用

在线Excel转公式工具

入门小站

工具

全网最细的短网址系统设计与实战

星牛君

MySQL redis 布隆过滤器 Java EE

高级Java面试经验总结:多家大厂简历优化+面试题目+面经+薪酬等

Java架构追梦

Java 程序员 面试 后端开发

直播回顾:SIMD 指令集在 OpenJDK 中的现状与未来 | 龙蜥技术

OpenAnolis小助手

Java Openjdk simd arm 龙蜥社区

yarn add electron安装失败

空城机

YARN Electron

多商户商城系统如何对接电商收付通?

CRMEB

浅谈商业模式---《北大-真格创业课》笔记(30/100)

hackstoic

商业模式 创业公司

redis优化系列(六)高可用集群Redis Cluster的认识

乌龟哥哥

4月月更

《写作的逻辑》读书笔记

坚果

4月月更

“数聚赋能”,让实时数据中台成为惠企、惠民政策服务应用的源头活水

tapdata

数据中台 数字政务 实时数据 智慧政务

一文看懂博睿数据AIOps场景、算法和能力

博睿数据

TOGAF 10新鲜出炉了!

涛哥 数字产品和业务架构

企业架构 TOGAF

linux之mktemp命令

入门小站

基于云效AppStack实现环境管理 | 开箱即用

阿里云云效

阿里云 研发管理 研发 应用交付 环境管理

没日没夜做需求,就能交出满分答卷吗?

LigaAI

敏捷开发 需求

IDC最新报告:澳鹏AI全生命周期数据解决方案在市场上具独特优势

澳鹏Appen

人工智能 大数据 数据标注 训练数据 数据训练

向着阳光的华为,淬火而行的哪吒

脑极体

SqlServer主备构建探索

Lane

SqlServer

常见问题(FAQ)

源字节1号

在线文本代码对比

入门小站

工具

Android C++系列:vector最佳实践

轻口味

c++ android 4月月更

新品发布 | OpenHarmony面向教育行业的发行版+大赛预告来了~

拓维信息

活动 操作系统 OpenHarmony OpenAtom OpenHarmony OpenHarmony 3.1 Release

最佳实践 | 运维效率提升10倍的秘诀

星汉未来

DevOps 云原生 智能运维

观测云新增俄勒冈站点,布局全球可观测服务网络

观测云

时序数据库 VS 工业实时数据库

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

Redis太难?阿里P8总结的Redis灵魂拷问70题解析,还不懂我就哭了

Java架构追梦

Java 后端开发 程序员面试 Redis 数据结构

课程四

ASCE

[Day27]-[二叉树] 遍历

方勇(gopher)

LeetCode 算法和数据结构

跨链“战事升级”:迅雷链如何更好地跨链、打造信任协作?_区块链_孙春鹭_InfoQ精选文章