Credits 共识算法分析

Credits 白皮书:

https://www.credits.com/Content/Docs/TechnicalWhitePaperCREDITSEng.pdf

网络节点

节点的类型:

  1. 公共节点(CN)是参加交易验证的节点,具有最小的信任因子。它也是可信节点和当前处理的候选人。
  2. 可信节点(TN)是参加交易验证的节点,具有最大值信任因子(1),它是当前处理和普通节点的候选人。在投票和选举的数学计算期间,该节点不是可信的。数学计算取决于节点的数量和网络的复杂性。
  3. 网络主节点(MN)是参与验证的节点。负责将交易添加到账本中。在投票和选举的数学计算期间,该节点不是可信的。

系统使用可信因子 - 从0到1的绝对分数值,以(可信节点数的数量+1)表示网络中节点的总数。该可信节点的最大数量不能超过网络节点的50%。

网络主节点的概念

所有网络节点都是分布式的,没有任何一个具有优先权。网络节点被定义为将处理存储事务队列,构建一个新的交易块并将其放入账本中的节点。

CREDITS平台通过最新的节点账本和容量证明的校验以证明节点的账本是最新的。
基于最新的账本,节点通过计算一个 hash 运算来使得自己变成网络主节点。之后全网广播,结构中包含了一个时间戳和一个基于最新账本的计算值,其他网络节点接到结果后开始验证并通过。此验证过程原则上为 BFT。验证通过后全网认定了唯一的网络主节点。

添加之后,初始消息被分成若干块,每块由16个词组成。每个消息都经过64 ~ 80 次迭代,在每次迭代中,2个次被转换,其余的词定义转换函数。每个块的结果都被hash 计算得到摘要。

网络节点设备

建议使用物质激励来维护网络中最优性能的服务器和高互联网带宽。作为物质补偿,主网络节点的所有者将获得报酬,即CREDITS Token。其余的部分(½)赠予参与BFT共识的可信节点。百分比可以是改变的,通过网络的联邦投票决定费率激励系统。

构建共识

如上所述,主网络节点由所有节点选择。主要任务是:获取候选状态的事务以推动所有节点追加账本。

整个过程可以分为以下几个阶段:

  1. 搜索网络主节点;
  2. 构建可信节点;
  3. 接收交易清单并建立一份候选人清单;
  4. 处理候选人名单,节点投票(可信节点和普通节点有不同的权重因子;
  5. 移除候选人未经证实的交易;
  6. 构建一个已经被确认的交易清单,加入账本;
  7. 使用包含的块的时间戳和散列码将交易添加到账本中;
  8. 将块发送到所有网络节点。收到时,它被添加到所有节点的注册表中。

交易没有被包含在注册表中

未包含在就绪交易列表中的交易标记为已拒绝。这样的交易立即显示给交易的发起人。

不包含在账本中的交易仍保留在候选人的集合中并存储在网络节点上。服务器同时也在收取新交易,然后搜索过程重新开始。这种连续循环操作可以在保持高度可靠性的同时快速进行交易的稳定性。

—笔者认为上述过程对交易的排序是不严谨的。