翻译:
一个加密货币网络下的分布式共识算法
--------匿名者 2016.10.22
摘要
这篇论文中我们提出一种分布式共识算法。共识的对象是一些哈希函数处理过的数据,或者是在区块链中添加的区块。各个分布式节点通过共识来决定哪一个哈希数据(区块)是正确的或可被认可的。文章作者的目的是找到一种可行的解决方案,能够确保每个分布式共识节点良好的遵循共识算法的决策。最终能够实现目标(1)快速的到达网络节点(2)最小化的网络线路减少拥挤(3)网络整体可承受大规模的进攻。经过设计,该算法具有可扩展性,高复杂运算但低花费的特点,很好的替代的PoW(工作量证明算法)。因此它可做到低成本低耗能,在经济可观的硬件上运行共识算法和完成区块形成。这种共识算法在加密货币网络中应用,对消除网络中心化有着非常好的鲁棒性。
----- 目录-----
0.1 前言
0.2 网状网络
0.2.1 稀疏的连通性
0.2.2 节点私有化
0.2.3 消息传播和全网广播
0.2.4 掌控数据内容
0.3 网络共识算法
0.3.1 共识的需求
0.3.2 算法设计
0.3.3 网络规模可扩展性
0.3.4 共识实验准备
0.3.5 共识实验建模
0.3.6 时钟同步独立性
0.3.7 共识算法的实现
0.3.8 共识算法实例应用
0.4 模拟仿真
0.4.1 网络参数
0.4.2 网络拓扑的影响
0.4.3 消极节点的影响
0.4.4 样本数据量的影响
0.5 算法伪代码
0.6 致谢
0.7 法律公告
Obelisk - 草稿图 1 数据传输过程
Obelisk - 草稿图 2 节点连接过程
图1中数据通知和数据请求过程用户(“sub”)作为附属,接收发布者(“pub”)发来的数据。在图2 中,用户(“sub”)实质上已经不存在,每个节点独立存在,只传递确认消息。
0.1 前言
本文的组织如下:
首先,在第0.2节中,我们简要介绍了网状网络。然后,在第0.3节中,我们描述了算法。仿真结果第0.4节中。最后,0.5节显示算法的伪代码。
期望读者能对如下概念有一个基本的了解:(i)哈希函数的概念(ii)如何用公共/私人密钥来签署哈希签名并完成验证。区块和区块链的概念也会在文中解释。
0.2 网状网络
0.2.1 稀疏的连通性
网状网络是为稀疏连接而设计的。每个网络节点(“node”)预计将直接连接到几个上游节点和几个下游节点。
每个节点起双重作用:既是信息发布者又是订阅者。作为订阅服务器,它直接连接到上游的节点(“pub”),并且接收数据。作为发布服务器,该节点作用:
(i)转发已接收的数据
(ii)将生成的数据独立发送到,直接连接到的下游节点(“sub”)
这种设计允许节点从潜在的每一个节点接收数据,并向网络中的每一个潜在节点发送数据。
如图2 为网状网络的物理和逻辑连接实例图;如图1 说明了数据传输过程。
0.2.2 节点的私有化
节点间通过他们的加密公钥处理事务(“pubkey”),某节点的IP地址只被直接连接的节点所知。
0.2.3 消息传播和全网广播
任何节点都可以发布消息,收到消息的下游节点在通过密码验证后,确认消息不重复则可以将消息转发至各自的下游节点。该过程最终会让广播消息传播至整个网络。
【注】附加的连接以较少的跳数创建路由,从而加快消息传播速度。
Obelisk - 草稿图 3 网状网络物理连接
Obelisk - 草稿图 4 网状网络逻辑连接
图 3:是一个小的网状网络节点的物理连接(上),各个节点与PK0节点的直接相连。
图 4:是该网状网络节点的逻辑连接(下),各个节点与PK0节点的逻辑连接关系。
0.2.4 掌控数据内容
通过断开连接方式
一个节点可以断开一个同它直接相连节点的连接。
可能的应用场景:
(i)节点 Y 以节点 X 不能处理的速度转发消息给它;
(ii)节点 Y 接收到节点X含有大量不适当或恶意的内容的消息;
遇到如上情况时,其它节点依然可以从绕过节点X的路线到达节点Y。
通过黑名单方式
一个节点可以通过公共密钥将局部的节点列入黑名单中。
当X节点将Y节点(恶意节点)列入黑名单后,来自Y节点的信息将被X节点所忽略,且Y节点(恶意节点)对于X节点的订阅也不能得到反馈信息。
可能的应用场景:
Y节点有很大一部分不合适的内容或正在进行恶意消息的转发,但是X节点不能与Y节点断开连接,因为Y节点没有直接连接到X节点(翻译注:逻辑连接总会有一条使得X节点与Y节点相连)。
如果存在到达Y节点的路径,且不涉及x节点,网络中的其他节点仍然可以从Y节点接收消息。
0.3 网络共识算法
0.3.1 共识的需求
一个运作良好的加密货币系统的要求是,所有网络参与者都获得同样的交易清单,包含历史与当前的记录。要做到这一点而不需要集中化,就需要一种特殊的机制。下面描述的网络就是一个这样的共识机制算法。
【注】在实践中,交易列表被分为称为区块的组,并且这些区块被连接到一起成为所谓的区块链。将事务“打包”成块,然后经过相关算力竞争添加到区块链上,这样的机制使得要修改历史事务的“块”成为不可能的事。
共识算法的主要目的是同步网络中所有节点的区块链状态。经过同步后的区块链整体充当了一个记账的会计。
------
未完待续
#
网友评论