写点什么

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

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

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

关注

评论

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

OpenHarmony应用实现二维码扫码识别

OpenHarmony开发者

OpenHarmony

铜锁 SM2 算法性能优化实践(三)|快速模逆元算法实现

铜锁开源密码库

开源 开发者 算法 性能优化 密码学

App备案来袭,开发者如何应对选型

Onegun

混合应用开发 app备案

私有化部署即时通讯平台,30分钟替换钉钉和企业微信

BeeWorks

利用 Databend 助力 CDH 分析 | 大参林

Databend

DevOps团队如何提高Kubernetes性能

高端章鱼哥

Kubernetes DevOps 安全性

私密信息管理工具 Vault 快速入门

极限实验室

加密 valut 安全工具

GPU荒漠,算力短缺背后的时间竞赛与解决方案|TE解读

TE智库

JMeter 接口自动化测试的使用技巧

Liam

测试 Jmeter 性能测试 自动化测试 测试工具

花了4天,做了一个公司的管理系统,只需几个步骤

高端章鱼哥

软件开发 低代码 管理系统

27. Pandas

茶桁

Python pandas

pd19虚拟机完美激活版 最新版Parallels Desktop19一键安装(附最新pd下载教程)

mac

pd虚拟机 苹果mac Windows软件 Parallels Desktop19 虚拟机软件

PolygonStore,一款“业务驱动”而生的 NoSQL 多模数据库产品

TRaaS

前端开发进阶:前端开发中如何高效渲染大数据量?

袋鼠云数栈

大数据 前端

【腾讯云 TDSQL-C Serverless 产品体验】 使用 Python 向 TDSQL-C 添加读取数据 实现词云图

全栈若城

Python 腾讯云 Serverless 词云图 tdsql

如何使用NLP库解析Python中的文本

互联网工科生

Python nlp Transformer

徐州堡垒机采购选择哪家?行云堡垒可以吗?

行云管家

网络安全 堡垒机 徐州

2023大健康博览会|2023广州国际健康产品展会

秋硕展览

对话英特尔院士Tom Petersen:持续优化锐炫驱动,游戏性能强劲提升

E科讯

文心一言 VS 讯飞星火 VS chatgpt (80)-- 算法导论7.4 5题

福大大架构师每日一题

福大大架构师每日一题

智能窗帘展-2023广州国际智能晾衣架展会

秋硕展览

展会

GaussDB技术解读系列:高级压缩之OLTP表压缩

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

Tongsuo 8.4.0-pre2 发布!

铜锁开源密码库

开源 密码学 版本更新 版本发布 铜锁

ARTS打卡第一天

请务必优秀

五脏俱全,搭建部署多人语音厅源码功能分析

山东布谷网络科技

直播源码

精彩回顾|【ACDU 中国行·杭州站】数据库主题交流活动成功举办!

墨天轮

数据库 oracle AntDB oceanbase 国产数据库

2023年徐州等级保护测评公司还是只有一家吗?电话多少?

行云管家

等保 徐州

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