红帽白皮书新鲜出炉!点击获取,让你的云战略更胜一筹! 了解详情
写点什么

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

  • 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:122422
用户头像
孙春鹭 InfoQ 编辑

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

关注

评论

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

OpenHarmony页面级UI状态存储:LocalStorage

OpenHarmony开发者

OpenHarmony

百度何俊杰:扎根百度技术“黑土地”,造大模型“生态雨林”

Geek_2d6073

Databend 开源周报第 115 期

Databend

Java时间处理---Java8中时区相关类库介绍

程序员万金游

Java 面试 #java #程序员 #JavaSE

腾讯云大数据ES:使用Elastic APM监控SpringBoot服务的最佳实践

腾讯云大数据

ES

Kafka架构详解

ByteByteGo

kafka 系统设计 架构设计 消息列队

YouTube for mac(YouTube客户端)

iMac小白

YouTube客户端 YouTube mac

精彩再现!LLUG 深圳场成功举办 | 附活动资料下载

OpenAnolis小助手

开源 演讲 龙蜥社区 LLUG Linux中国

MatrixOne Logtail 设计解析

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

高效利用内存资源:掌握Redis内存管理与淘汰策略

树上有只程序猿

redis 内存管理

大模型训练对深度学习图片检测速度和精度的影响

百度开发者中心

深度学习 大模型训练 千帆大模型平台

HTX 与 Zebec  Protocol 展开深度合作,并将以质押者的身份参与 ZBC Staking

大瞿科技

极光笔记 | 发送功能使用技巧分享

极光JIGUANG

营销 消息推送 邮件 邮件通知 海外市场

大模型训练:自定义深度学习模型的策略与实践

百度开发者中心

大模型训练 文心千帆

万字长文详解低时延股票交易系统的设计

ByteByteGo

交易所 事件溯源 股票系统 低延时

大模型训练中的Delta Tuning优化方法

百度开发者中心

人工智能 深度学习 大模型训练

iPaaS混合集成平台,打造数字化生态

RestCloud

数据同步 数字化升级 ipaas

向量召回:深入评估离线体系,探索优质召回方法

汀丶人工智能

人工智能 自然语言处理 语义搜索系统 文本匹配 向量召回

OmniGraffle Pro for mac(专业图表绘制软件) v7.22.1永久激活版

mac

苹果mac Windows软件 OmniGraffle Pro 专业绘图软件

7天狂揽 1.3w star 的 MetaGPT,他们的目标让软件公司为之一惊

鼎道智联

GPT

国外服务器入门:为何越来越多的企业选择海外托管?

一只扑棱蛾子

国外服务器

大模型训练:数据与算法的关键融合

百度开发者中心

人工智能 模型训练 大模型

如何设计 API?看这一篇就够了

高端章鱼哥

API

平均检出率“

矩视智能

深度学习 机器视觉

Linux 如何进行内存分配

这我可不懂

Linux

如何将模型原点设置到模型的中心

3D建模设计

模型原点设置 原点归零 原点坐标

XMind mac (XMind思维导图)v23.09中文激活版

mac

XMind 思维导图软件 苹果mac Windows软件

公链开发团队 公链钱包

西安链酷科技

公链开发 区块链开发链游开发

低代码:让软件开发不再遥不可及

互联网工科生

低代码 应用开发 JNPF

HarmonyOS音视频开发概述

HarmonyOS开发者

HarmonyOS

如何优化模型渲染性能

3D建模设计

性能提升 渲染优化

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