笛卡尔融云链——(五)关键技术

高连接性网络分簇算法

区块链的底层是 P2P 分布式网络,通信特征是非周期性通信,任意单个节点都有全网广播权限,这带来2个问题:一是效率问题,耗时耗能低效;第二个是安全问题:如何判断节点诚实或恶意。笛卡尔金融链不同于传统的网络通信方法,因为它使用了使用三角形的固有特性来确保连通性的分簇算法。

通过这种算法,网络中形成高度连接的骨干网络,减少了网络的路由表开销和整个网络的通信开销。实施过程是这样的,在部署节点之前,节点由系统指定。网络消息通过广播进行初始化,整个网络被初始化,并由它启动分簇算法。

当一个节点存在超过一段时间,相邻簇头数量还未达到 3 个,节点进入补充节点并请求成簇,以确保整个网络中的任何非簇头节点都在 3 个簇头的通信范围内。 从而形成一种高连通的骨干网络。随着时间的变化,簇头节点消耗太多的能量,当该簇头节点能量低于一定数值时,进入簇头更新阶段,更换簇头节点,使网络保持正常工作水平。 该技术可以解决在满足系统自身规模扩张的情况下,不增加矿机节点的计算压力。下面是核心算法,在算法描述过程中需要使用一些符号如表 1 所示:( i 为当前广播 GCM 消息的节点)

DKSCA (分布式密钥安全分簇算法)

由于公链是对开放的,不排除会有恶意节点加入网络。 笛卡尔采用一种安全的分簇算法,实现分布式密钥的生成和管理,加入网络各个节点都需要通过系统验证。 实现过程是这样的: 在所有簇头形成之后,广播的成簇消息包含它自己的公共密钥,接收到该消息的节点,保存其公钥,以确保整个网络中, 节点具有一跳内簇头节点的公钥。在部署系统之前,从密钥池中随机选择一些公钥存储。

节点的认证共分为 4 个阶段,并且对于广播消息均需要收到 2 条,节点才会对其处理并转发。 协议发起由簇头节点广播认证消息,使其 周边可互相通信的 3 个簇头节点发起协议,进入密钥搜索阶段。当网络中发现密钥,则根据来时路径返回密钥,此时进入应答阶段。当协议发起簇头节点验证签名并在数量上满足初始设定的门限值时, 广播密钥确认消息,协议进入确认阶段。而在整个认证协议执行过程中,如若发现异常情况,则立即进入协议终止阶段,防止恶意节点的攻击。

下面是核心算法,在算法的描述过程中使用到的符号如表 2 所示:

网络安全性

网络安全威胁主要来自恶意节点攻击。不管攻击者是否知道密钥池信息,其想要通过簇头节点的认证,必须知道普通节点的 ID 并知道该 ID 对应的私钥信息。由于密钥对和 ID 之间没有直接关系,并且攻击者至多知道攻击中的公钥信息,所以不可能从公钥计算私钥。 因此,保证攻击者不能通过公钥获得私钥,从而保证攻击者不能伪造具有特定 ID 号的节点进行通信。

应用安全性

管理数字资产,实际就是管理私钥。以比特币为例,私钥的本质是一个随机数,比特币的私钥算法是对随机数运行 SHA256 运算生成长度为 256 位随机数。在前面加上版本号,后面添加压缩标志和附加校验码,然后再对其进行Base58 编码,就可以得到 WIF(Wallet import Format) 格式的私钥。公钥由私钥经过椭圆曲线算法生成,比特币地址由公钥经过哈希函数(RPIEMD+SHA) 生成。不论个人还是交易所,密钥都是完整储存在一个地方,可能是用户的电脑硬盘,它可能是提供钱包软件的第三方服务器,也可能是交易所服务器。 一旦发生黑客攻击,密钥泄露,丢失或者第三方监守自盗,都会造成用户的损失。

DKSC 技术不仅解决跨链通信难题,而且提高了数字资产的安全性,体现在两个方面:

· 密钥分片

完整的钥匙被分成几个部分,每个部分被称为一个分片。 分片后的密钥从生成到存储、使用都不需要进行重组,从而使得在任何地方和任何时候都不会出现完整的私钥。

· 分布式存储

分片后的密钥交给去中心化网络中的不同节点保管称为分布式存储。分布式存储的过程中,每个节点只会接触到密钥中的一个分片,任何单个节点或数个节点靠几个分片都无法重组出密钥,从而降低密钥泄露的风险。分布式存储密钥的方式,可以彻底避免发生被第三方恶意侵占的行为。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180719A0F74C00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券