这篇文章写于2016年7月29日,有点老但是很有参考价值
正如很多人在这里所知道的,我对共识机制的兴趣遍布全球。在毕马威的研究报告中,我共同撰写了“共识:价值互联网的不变协议”,讨论了许多共识机制。在论文的附录3中,该领域的许多主要参与者讨论了他们的共识方法。Swirlds Hashgraph Consensus算法是一种不存在于论文中的共识机制。那个白皮书是一个很好的阅读,这个共识机制有相当多的承诺。我已经与其创作者Leemon Baird进行了许多讨论,并且这篇博文来自关于该主题的对话,问题和电子邮件。在博客的最后,我要求Leemon填写毕马威报告中的共识调查问卷,他慷慨地做了。他的答案出现在这篇文章的末尾。
什么是一个哈希图?
“哈希图”是一种数据结构,存储某种类型的信息,并根据一定的算法进行更新。数据结构是一个有向无环图,其中每个顶点包含其两个父顶点的散列。这可以称为Merkle DAG,用于git,IPFS和其他软件。
存储的信息是每个人如何闲谈的历史。当爱丽丝告诉鲍勃她知道的所有信息时,鲍勃通过创建一个新的“事件”来纪念这一事件,该事件是图中的顶点,包含他最近事件的散列和爱丽丝最近事件的散列。它还包含时间戳以及Bob此刻想要创建的任何新事务。鲍伯数字签名这个事件。“哈希图”就是所有已知事件的集合。
哈希图由八卦更新:每个成员随机重复选择另一个成员,并给他们所有他们还不知道的事件。随着散列图的本地副本增长,成员运行本文中的算法以确定事件的一致性顺序(以及共识时间戳)。这决定了事务的顺序,所以它们可以应用到应用程序指定的状态。
什么是八卦协议?
“八卦协议”是指信息由每台计算机随机调用另一台计算机传播,并分享知道另一台计算机没有的信息。几十年来它已被用于各种各样的事物。我认为“八卦协议”这个词的第一次使用是为了分享身份信息,尽管这个想法可能早于这个词。有一个维基百科文章更多的历史。在比特币中,这些交易是闲聊的,并且挖掘出的街区是闲聊的。
它的使用非常广泛,因为它的速度如此之快(信息以指数级快速传播)并且可靠(单台计算机停机无法阻止八卦)。
就我所知,关于八卦的“八卦八卦”概念是全新的。有许多类型的信息可以通过八卦传播。但有八卦信息,八卦本身的历史是一个新奇的想法。
在哈希图中,它被称为“八卦八卦”而不是“八卦八卦”。类似于你的朋友可能会“喋喋不休地谈论鲍勃所做的事情”,而不是“鲍勃做什么的闲话”。
Swirlds哈希图共识的关键特征
- 交易的顺序和公平是Swirlds的核心。简而言之,Swirlds试图通过使用Hashgraph Consensus和“闲话八卦”来解决当今区块链世界中存在的排序问题(由于不同的共识方法在解决这个问题上存在困难)。
- 哈希图可以在没有工作证明的情况下达成共识。所以它可以作为一个开放系统(未经许可)使用权证明,或者它可以用作没有POW或POS的许可系统。
- 没有采矿。任何成员可以随时创建一个块(称为“事件”)。
- 它支持智能合约创建。
- Blocksize可以是任何你想要的大小。当你创建一个块(“事件”)的时候,你把你想创建的任何新事务加到这个时候,再加上几个字节的开销。因此,该块的范围从几个字节(无交易)到您想要的大小(对于许多交易)。但是由于你每秒创建很多块,所以没有理由让任何特定的块变得非常大。
- 核心散列图系统用于一组事务的分布式共识。所以所有节点都接收所有数据。人们可以在上面建立一个分层的分层系统。但核心系统是一个复制的状态机。数据存储在每台机器上。但对于核心系统来说,数据是被复制的。
其他问题我问Leemon Baird关于白皮书的问题
以下是我在阅读白皮书后询问Leemon的一些问题。他的答案对于那些试图不仅了解哈希图共识而且对区块链的内部工作以及推动它们的共识算法的人来说是精心制作和非常有用的。
1) 为什么公平很重要?
公平性允许以前不可能的新类型的应用程序。这创建了第四代分布式信任。
对于某些应用而言,公平并不重要。如果两个硬币几乎同时使用,只要我们都同意,我们不关心哪一个算作“第一”。如果两个人几乎同时在账本中记录他们的驾驶执照,我们并不关心哪一方面被记录为“第一”。
另一方面,公平性也是至关重要的。如果你我同时在纽约证券交易所买入一只股票,我们绝对关心哪个出价是第一个!如果我们都试图同时申请同一件东西,情况也是如此。或者如果我们都试图同时购买相同的域名。或者如果我们参与拍卖。或者我们正在玩一个在线游戏:如果你开枪射击并躲闪,那么在你开枪之前或在你开枪之后我是否躲过了这个问题。
所以hashgraph可以做所有块链的事情(更好的速度,成本,证明等)。但是哈希表也可以做全新的事情,你甚至不会考虑使用块链。
思考分布式信任的历史可以分为四代:
1.加密货币
2.分类帐
3.聪明的合同
4.市场
我认为这是不可避免的。一旦你有了一个加密货币,人们就会开始考虑在其中存储其他信息,从而将它变成一个分布式信任的公共分类账。
一旦您拥有存储资金和财产的分类账,人们就会开始考虑智能合约,让您以分布式信托的形式出售财产。
一旦你有能力做出明智的合同,人们就会开始考虑公平的市场来匹配买家和卖家。并做所有其他公平允许的事情(比如游戏,拍卖,专利局等)。
Swirlds是第四代的第一个系统。它可以完成前三代的任何事情(速度等)。但它也可以做第四代的事情。
2)你提到互联网的速度以及带宽的重要性?所以它就像股票市场中电子交易的现状。您是否担心高速连接的恶意演员接管网络?就像迈克尔刘易斯在“Flash Boys”中谈到的那样,高频交易如何使用低延迟交易机制,共址和巨大带宽对股票市场的“获胜”非常有利?
在哈希图中,快速连接不允许你“接管网络”。它只是让你更快地将你的信息传递给世界。如果Alice创建一个交易,它将通过闲话协议通过八卦传播给其他人以指数的速度快速传播。这将需要几毫秒的时间,具体取决于她的Internet连接速度以及社区的规模。如果鲍勃的连接速度更快,那么他可能会比她晚几毫秒创建一个交易,但在她之前将其传播到社区。然而,一旦她的交易已经传播给大多数人,即使鲍勃拥有无限带宽,现在为时已晚,因此鲍伯算得比她早。
这与目前的股票市场类似,除了一个很好的功能。如果鲍勃想要几毫秒的优势,他不能仅仅建立一个单一的快速管道到单个中央服务器。他需要快速连接网络中的每个人。网络可能遍布各大洲。所以他只需要快速连接到互联网骨干网。这是他能做的最好的,任何人都可以做到,所以这不是“不公平”。
换句话说,快速连接的优势小于他在当前股票市场中可以获得的优势。这很公平。如果“服务器”是整个社区,那么公平地说,无论哪种交易首先到达整个社区,将被视为“第一”。鲍勃的快速连接对他有一点帮助,但是通过让整个系统工作更快,这也让社区受益,所以这很好。
“Flash Boys”是一本很棒的书,我觉得它很有启发性。我们的系统可以缓解现有系统中最糟糕的部分,人们付费将他们的计算机与中央服务器放置在同一建筑物中,或者支付巨额费用来使用通过山脉隧道的单个快速管道。在散列图系统中,没有中央服务器,所以这种不公平是不可能发生的。
3)您在白皮书中提到,增加区块大小“可以使公平性更差”。这是为什么?
像比特币这样的POW系统也是如此。如果爱丽丝提交交易,那么矿工鲍勃希望将其包含在他的区块中,因为他支付了几美分来完成交易。但是,如果卡罗尔想在爱丽丝之前将自己的交易记录在历史记录中,她可以贿赂鲍勃以忽略艾丽丝的交易,并且只在该区块中包括卡罗尔。如果鲍勃成功地挖掘了这个街区,那么艾丽丝的交易就不公平地转移到了历史的后面,因为她必须等待下一位矿工进行交易。
如果每个区块包含1笔交易,那么爱丽丝在其交易出现在历史记录中的地方遭遇1插槽延迟。如果每个块包含一百万个交易,那么Alice已经遭受了一百万个时隙的延迟。从这个意义上说,大块比小块更糟糕。大块允许不诚实的人将您的交易延迟到达成共识订单后的位置。
有关块大小的评论不适用于Paxos等基于领导者的系统。在他们中间,并没有真正的“块”。不公平现象只是由现任领导接受爱丽丝的交易,但后来拖延了很长时间才将其发送出去供社区记录。该评论也不适用于散列图。
4)你能解释一下如何不记住旧砖块的作品吗?为什么只需要知道最频繁的街区,以及在最长的连锁规则面前这不会如何呢?
哈希图没有“最长链规则”。在区块链中,你绝对必须拥有一个“连锁”,所以如果它要求给你两个连锁店,那么社区必须选择接受一个,拒绝另一个。他们这样做使用最长的连锁规则。但是在哈希图中,分叉很好。每个块都被接受。散列图是大量的链条,所有链条一起编织成一张图。我们不关心“最长的连锁”。我们只是接受所有的块。(在Hashgraph中,一个块被称为“事件”)。
我们必须记住的不是“最频繁的块”。相反,我们记得由交易的一致性排序所导致的状态。设想一个加密货币,其中每笔交易都是一个声明“将X币从钱包Y转移到钱包Z”。在某种程度上,社区将就前100次交易的确切排序达成共识。那时,在处理交易号码101之前,社区的每个成员可以精确地计算每个钱包中处理那些100个交易(按一致的顺序)之后有多少个硬币。因此他们将会同意“状态”,这是所有非空钱包中的硬币数量列表。他们每个人都以数字方式标记该状态。他们闲聊他们的签名。那么每个成员最终都会得到一份州政府的副本以及大多数社区的签名。这种状态和签名列表的组合可以从数学上证明每个人在交易100后有多少钱。它以一种可转移的方式证明它:一名成员可以向法庭证明这一点,证明Alice有交易100之后和交易101之前的10个硬币。
那时,每个成员都可以放弃前100个交易。他们可以放弃包含这100个交易的所有块(“事件”)。不需要保留旧的块和交易。因为你仍然有国家本身,由大多数社区签署,证明有共识。
当然,你也可以自由地保留这些旧信息。也许你想记录它,或者想要做审计,或者其他什么。但重要的是,扔掉它并没有什么坏处。
5)你提到区块链没有拜占庭协议的保证,b / ca会员从未达到达成协议的确定性。你能详细说明这一点,并解释为什么Hashgraph可以实现这一目标吗?
由于比特币的定义如此,比特币没有拜占庭容错功能。哈希图有它,因为这篇论文的数学证明。
在计算机科学中,有一个着名的问题叫做“拜占庭将军问题”。这是一个简化版本。你和我都是拜占庭军队的将军。我们需要决定是否在黎明时进行攻击。如果我们都攻击或者两者都不攻击,我们会没事的。但是如果只有我们中的一个人单独进攻,他就会被击败,因为他没有足够的力量来取胜。
那么,我们该如何协调?这是在收音机前的一个时代,所以你可以给我一个信使告诉我要发动攻击。但是如果这个使者被抓获了,所以我从来没有收到这个消息?显然,我需要通过信使发送回复,让你知道我收到了这条消息。但如果答复丢失了呢?显然,您需要发送回复给我的回复,让我知道它通过了。但如果这种情况丢失了呢?我们可以花费永远的回报,永远不知道我们是否同意。实际上有一场戏剧戏剧化了这个问题。
完整的问题比较复杂,有更多的将军和两种将军。但这是问题的核心。标准定义是计算机系统是“拜占庭式容错”,如果它解决了以下意义上的问题:
- 假设有N台电脑通过互联网进行通信
- 每台电脑以YES或NO投票开始
- 所有计算机都需要最终达成共识,我们都同意“是”或全部同意否
- 所有电脑需要知道何时达成共识
- 超过2/3的计算机是“诚实的”,这意味着他们正确地遵循算法,虽然一台诚实的计算机可能会停下来一段时间(并停止通信),但它最终会恢复并开始再次通信
- 互联网由攻击者控制,他可以随意延迟和删除消息(除非Alice不断发送消息给Bob,否则攻击者最终必须允许一个人通过;如果她一直发送消息,他最终必须允许另一个通过,等等)
- 每台计算机都以投票(YES或NO)开始,并且可以多次更改该投票,但最终计算机“决定”是或否时最终必定会有一段时间。在那之后,它永远不会再改变主意。
- 所有诚实的电脑最终都必须决定(以概率一),并且所有人都必须以同样的方式来决定,并且它必须与至少一个诚实的成员的最初投票相匹配。
这只是一个YES / NO的问题。但拜占庭容错也可以应用于更一般的问题。例如,决定历史上前100个交易的确切排序的问题。
因此,如果一个系统是拜占庭容错的,那最终意味着所有诚实的成员最终都会知道前100次交易的确切顺序。此外,每个成员都会到达一个他们知道他们知道的时间点。换句话说,他们的意见不仅仅是停止改变。他们实际上知道一个什么时候能够保证达成共识。
比特币不这样做。每次确认后,您达成一致的可能性都会增加。你可能会决定在6次确认后,你确实“确定”。但是你从来不会在数学上确定。所以比特币没有拜占庭容错。
网上有很多关于这个问题的讨论。但是,至少对于一些人来说,这很重要。
如果您对比特币缺乏拜占庭容错性的更多细节感兴趣,我们可以讨论如果互联网被划分了一段时间会发生什么。当你开始考虑细节时,你实际上开始明白为什么拜占庭容错很重要。
6)你在白皮书中提到,“在哈希图中,每个容器都被使用了,没有被丢弃”?为什么这很重要,为什么这不是浪费?
在比特币中,你可能花费大量时间和电力开采一块,后来才发现有人在几乎同一时间开采了一个街区,社区最终扩展了他们的链条而不是你的链条。所以你的块被丢弃。你没有得到报酬。这太浪费了。此外,爱丽丝可能已经给了你一笔交易,最终在你的区块中,但不是在另一个中。所以她认为她的交易已成为区块链的一部分,后来才知道它没有。那真不幸。
在哈希图中,只要你闲聊,“块”(事件)肯定会成为永久记录的一部分。其中的每笔交易都将成为永久记录的一部分。可能需要几秒钟才能确切知道它在历史上的位置。但你**立即**知道它将成为历史的一部分。保证。
在比特币的术语中,哈希图的“效率”是100%。因为没有块被浪费。
当然,在交易成为共识秩序的一部分并且共识状态已经签署后,你可以自由地扔掉旧的街区。但那不是因为它们没有被使用。这是因为他们**被**使用,并且现在可以安全地丢弃,达到了他们的目的。这与比特币中的废弃区块不同,它们未被使用,其交易也不能保证成为历史/分类账的一部分。
7)在白皮书的第8页上,你写道:“假设Alice有散列图A和Bob散列图B,这些散列图在任何给定的时刻都可能略有不同,但它们总是一致的。一致意味着如果A和B都包含事件X,那么它们都将包含完全相同的X祖先集合,并且都包含这些祖先之间完全相同的一组边缘。如果Alice知道X并且Bob不是,并且他们都是诚实和积极参与的,那么我们会希望Bob通过八卦协议很快地学习X.但是一致性算法并没有对这种情况发生的速度做出任何假设,该协议完全是异步的,并且不会对超时周期做出假设,八卦速度,或进步的速度。“如果他们不诚实怎么办?
如果爱丽丝诚实,那么她将会了解该团队的共识是什么。
如果鲍勃不诚实,那么他可能会欺骗自己,认为共识不是什么。那只会伤害自己。
如果2/3以上的成员诚实,那么他们就能保证达成共识,并且每个成员最终都会有一个签署的状态,用于向外界证明共识是什么。
在这种情况下,不诚实的成员不能阻止共识的发生。不诚实的成员不能得到足够的签名来伪造一个糟糕的“签署状态”。不诚实的成员不能停止公平的共识。
顺便说一下,上面的“2/3”数字是最佳的。有一个定理说,没有算法可以实现比2/3更好的Byzantine容错性。所以这个数字是可以的。
8)白皮书中提到的选举是否决定交易或信息的顺序?
是。具体而言,选举决定哪些证人事件是着名的证人。然后那些着名的证人事件决定事件的顺序。这决定了交易的顺序(和共识时间戳)。
9)是什么让黄色“从白皮书第8页的图表中”强烈看到“?
如果Y是X的祖先,那么X可以“看到”Y,因为从X到Y的路径在图中完全向下。如果从X到Y有许多这样的路径,它们通过2/3以上的成员,那么X可以“强烈地看到”Y.这就是整个数学证明的基础。
(要完整:对于X来看Y,也必然是Y的创建者没有分叉是X的祖先,但通常情况下不会发生。)
10)什么差btw弱BFT(拜占庭容错)和强BFT?你在用哪个?
哈希图是BFT。它是强大的BFT。
“弱BFT”的意思是“不是真正的BFT,但我们想用这个术语”。
这些不是真正的技术术语。谷歌搜索“弱拜占庭式容错”(用引号括起)表示这个短语在整个网络上都不会出现。和“弱BFT”(引号)发生6次,其中没有一个是拜占庭的东西。
人们喜欢用“拜占庭式”这样的术语,而不是技术上的定义。着名的论文“Practical Byzantine Fault Tolerance”描述了一个系统,在技术上它根本不是拜占庭容错。我的论文引用另外两篇关于这个事实的论文。所以从理论上讲,这些系统实际上并不是BFT。哈希图确实是BFT。
我们也可以在实践中而不是从理论上谈论它。我在我的技术报告中提到的论文谈到了简单的网络攻击几乎可以完全瘫痪PBFT或Paxos等基于领导者的系统。这并不令人感到意外。如果一切都由领导者协调完成,那么你可以将该领导者的单台计算机用数据包淹没,然后关闭整个网络。如果他们有选择新领导者的机制(如派克斯拥有),则可以切换为攻击新领导者。
没有领导者的系统,比如比特币和哈希图,没有这个问题。
有些人也用“拜占庭”这个叫做“同步”的较弱感觉。这意味着你假设一个诚实的计算机总是**会在X秒内响应消息,对于某些固定的常量X.当然,如果我们担心像刚才描述的那样的攻击,这不是一个现实的假设。这就是为什么像比特币和哈希图这样的系统是“异步”的重要原因。有些人甚至喜欢说一个系统是“部分异步的”。所以要清楚,我会说哈希图是“完全异步的”或“完全异步的”。这意味着我们不必对计算机可能响应的速度做出任何假设。电脑可能会长时间停机。
11)“着名证人”是否决定哪些交易是第一位的?
是。他们决定所有事件的一致性顺序。他们决定所有事件的共识时间戳。而这又决定了事件中包含的交易的顺序和时间戳。
值得指出的是,“证人”或“着名证人”是一个事件,而不是计算机。没有计算机作为领导者来做出这些决定。这些“决定”实际上是由散列图中的事件产生的。每台计算机都会查看哈希图并计算着名证人说的话。所以他们都得到了同样的答案。没有办法作弊。
12)在您写白皮书的第8页上,“这个虚拟投票有几个好处,除了节省带宽之外,它还可以确保成员总是按照规则计算他们的投票。” 谁制定规则?
“规则”只是本文给出的一致性算法。从历史上看,不是领导者的拜占庭制度基于多轮投票。例如,在这些投票中,“规则”就是,爱丽丝必须根据她在第九轮从其他人收到的大多数选票,在第10轮投票。但由于爱丽丝是一个人(或电脑),她可能会作弊,并投票不同。她可能会在第10轮投票否决,尽管她在第9轮时收到大部分其他人的YES投票。
但是在哈希图中,每个成员查看哈希图,并决定在第10轮中Alice应该如何投票,因为她在第9轮时应该得到虚拟选票。因此,真正的Alice不会作弊。因为“投票”是由居住在其他人电脑上的“虚拟爱丽丝”完成的。
也有更高级别的规则由Swirlds平台之上构建的特定应用强制执行。例如,你不能用同一枚硬币两次的规则。但那不是那句话所说的。
13)如何验证交易并验证它们?
Swirlds平台在属于该共享世界(“swirld”)的每个成员的计算机上运行指定的应用程序。在比特币术语中,成员社区是“完整节点”(或“矿工”)的“网络”。散列图一致性算法确保每个应用都以相同的顺序看到相同的事务。然后,应用程序负责根据应用程序的规则更新状态。例如,在加密货币应用程序中,“交易”是X币应从钱包Y转移到钱包Z的语句。该应用程序检查钱包Y是否具有许多硬币。如果确实如此,那么应用程序会执行转移,方法是更新当地记录Y的有多少以及Z的有多少。如果Y没有那么多硬币,那么应用程序什么也不做,
由于每个人都在运行相同的应用程序(即Java代码,运行在沙箱中),并且由于每个人都以相同的顺序结束相同的事务,因此每个人都将以相同的状态结束。他们都会同意在前100次交易之后有多少硬币在Y. 他们都会同意哪些转账是有效的,哪些是无效的。所以,他们都将签署该州。那个签署的状态是复制的,不变的分类帐。
14)创建Swirlds的最初动机是什么?
我们可以使用云来协作业务文档,或者玩游戏,或者运行拍卖。但是让我困扰的是,“云”意味着一个中央服务器,其中包含所有的成本和安全问题。它困扰了我很多。
任何人都应该可以在互联网上创建一个共享的世界,并邀请尽可能多的参与者,进行协作,或者购买,出售,播放或创建等。不应该有任何昂贵的服务器。它应该是快速和公平的拜占庭。即使没有一个人被任何人信任,社区的规则也应该得到执行。这应该是互联网的样子。这是我对网络空间应该如何运行的展望。这是我们需要的。
但是没有这样的系统存在。每当我试图设计这样的系统时,我都会遇到障碍。它显然需要建立在一个共识系统上,这个系统不需要太多的计算,没有使用很多的带宽,也没有使用太多的存储空间,而是完全公平,快速和便宜。
我会努力工作好几天,直到我终于确信自己是不可能的。然后,几个星期后,它会再次开始唠叨我,我不得不重新努力工作,直到我再次确信这是不可能的。
这持续了很长时间,直到我终于找到答案。如果有散列图,关于八卦和虚拟投票的八卦,那么你就可以获得公平性和速度,并且可以证明拜占庭容错性。当我最终拥有完整的算法和数学证明时,我就构建了这个软件和一个公司。整个过程非常紧张,3年。但最后,它变成了一个非常简单的系统。回顾过去看起来很明显。
概要:
带有哈希的DAG并不新鲜,并被广泛使用。用它来存储八卦的历史(“八卦八卦”)是新的。
一致性算法看起来与几十年来基于投票的拜占庭算法类似。但使用“虚拟投票”(没有投票必须通过互联网)的想法是新的。
具有共识的分布式数据库(“复制状态机”)并不新鲜。但是能够对非共识和共识订单作出回应的应用平台是新的。
似乎哈希图和Swirlds平台可以完成目前正在使用区块链进行的所有工作,而且哈希图的效率更高。但是hashgraph还提供了新的属性,这将允许构建新的应用程序。
总体共识方法
使用共识的基本方法是什么?
Swirlds哈希图共识系统被用来就交易的公平秩序达成共识。它还给出了社区收到每笔交易时的共识时间戳。它还就智能合约等规则的执行达成共识。
需要多少个节点来验证事务?(%vs数量) 这将如何影响有限的参与网络?
当超过2/3的社区在线和参与时达成共识。几乎三分之一的社区可能成为攻击者,他们将无法停止达成共识,或者不公平地偏袒哪些订单成为交易的共识。
是否所有节点都需要在线才能使系统正常工作? 当前节点的数量?
超过2/3的节点需要在线获得共识。如果在线人数较少,交易仍然会很快在线传达给每个人,并且每个人都会立即知道这些交易是不可变分类账的一部分。直到超过2/3上线为止,他们才会知道共识。
该算法是否有基本的假设,即网络中的参与者是事先知道的?
不,这不是必要的。尽管可以按照这种方式运行,但如果需要的话。
节点的所有权 - 共识提供者或网络参与者?
该平台可用于创建一个被许可或不允许的网络。
什么是目前的机制阶段?
事务被放入“事件”中,就像块一样,每个矿工每秒可以挖掘多块。永远不需要放慢采矿速度,避免分叉。这些事件由八卦协议传播。当爱丽丝与鲍勃闲聊时,她告诉鲍勃所有她知道他不知道的事件,反之亦然。在Bob收到这些消息后,他创建了一个新事件来纪念这个八卦同步,其中包含他创建的最后一个事件的散列以及Alice在与他同步之前创建的最后一个事件的散列。他还可以在此时包括他想创建的任何新交易。并且他签署了这个活动。而已。没有必要进行其他沟通,例如投票。没有必要通过工作证明来减缓采矿速度,因为任何人都可以随时创建活动。
交易何时被认为是“安全”还是“活”?
爱丽丝一听到一笔交易,就立即核实并确知它将成为官方历史的一部分。在那之后,她随便闲聊的人也是如此。经过短暂的延迟(几秒到一两分钟)后,她会知道它在历史上的确切位置,并有数学保证这是一致的顺序。这个知识不是概率的(如在6次确认后,你确定)。这是一个数学保证。
什么是容错?(在关闭所有内容之前需要损害多少个节点?)
这是拜占庭容错,只要少于1/3的节点有故障/受到攻击/攻击。数学证明采用了标准的假设:攻击节点可以串通,并允许主要控制互联网。他们对互联网控制的唯一限制是,如果Alice重复发送Bob消息,他们最终必须允许Bob接收一个消息。
是否存在分叉漏洞?
只要少于1/3的错误/攻击,共识就不能分叉。
在参与节点的权限系统中如何定义激励措施?
不同的激励机制可以建立在这个平台之上。
一方如何取得资产的所有权?
这是一个允许节点创建事务的系统,社区可以就发生什么事务以及以何种顺序达成共识。像“资产”这样的概念可以建立在这个平台之上,就像写在其上的应用程序所定义的一样。
算法的密码/强度:
密钥是如何产生的?
每个成员(节点)在加入时都会生成自己的公私密钥对。
该算法是否有领导者或否?
没有领导者。
当前针对错误测量的节点行为如何?
如果一个节点创建了一个无效事件(坏散列或坏签名),那么在同步过程中,该无效事件会被诚实节点忽略。只要少于1/3的节点出现错误,节点中的错误就不会伤害系统。
治理:
如何执行控制/治理?
如果一个组织使用该平台建立网络,那么该组织可以按照他们的愿望来组织治理。
Tokenization(如果使用):
有没有交易签名机制?
每个事件都经过签名,作为其内部交易的签名。一个应用程序可以建立在这个平台之上,它将定义令牌或加密货币。
性能:
什么是当前时间测量?要验证交易?为达成共识?
该软件处于早期阶段。这个问题的答案涉及平台软件完成时的情况。对于复制数据库(每个节点获取每个事务),它应该能够在带宽限制下运行,在每个节点允许的情况下,每秒处理每秒事务数量,每个节点接收和发送一次事务(在平均值)加上少量的开销字节(增加几个百分点)。对于一个分层的,分片的系统(其中一个事务只能被一个子节点看到,而大多数节点从来没有看到它),应该可以扩展到这个限制以外。但目前,该平台正在假设一个复制系统,每个节点接收每个事务。
安全:
你的机制有数字签名吗?
是的,它使用签名,哈希和加密标准(ECDSA,SHA-256,AES,SSL / TLS)
系统如何确保网络的同步(节点与网络同步需要多少时间?)
假定没有同步。没有假设一个诚实的节点总是会在特定的秒数内响应。拜占庭式容错证明适用于完全异步系统。只要沟通发生,社区就会在共识上取得进展。如果每台计算机都进入睡眠状态,那么一旦它们醒来,进展就会继续。它甚至应该在运动鞋网络上运行得很好,在那里设备只在物理上接近时才同步,并且可能需要几天或几个月才能让八卦接触到每个人。即使在这种情况下,共识机制也应该没问题,在沟通缓慢发生的时候慢慢地工作。在小群体的普通互联网连接中,共识可以在不到一秒的时间内发生。
节点是否可以访问内部时钟/时间机制以保持足够的准确性?
有一个事件的共识时间戳,这是收到它的那些节点的时钟的中位数。这个中位数与典型的诚实计算机时钟一样精确。这个共识时间戳不需要准确就达到事件排序的一致性,或对算法中的任何重要事项达成一致。但对于构建在此平台之上的应用程序可能很有用。
隐私:
系统如何确保隐私?
该平台允许每个成员定义他们自己的密钥对,并将其用作他们的身份。如果应用程序建立在该平台之上以建立网络,则应用程序设计者可以决定如何允许成员加入,诸如通过为他们的密钥设置CA,或者通过为每个成员投票,或者通过使用基于加密货币的股权证明等。该应用程序还可以创建隐私,例如允许一个用户使用多个钱包。但该平台只是基于每个节点的密钥对来管理共识。
系统是否需要验证节点之间传递的消息的真实性(签名验证是否到位?)
是的,所有内容都已签名,并且所有通讯频道都是SSL加密的。
数据加密如何工作?
在八卦同步期间,所有通信都使用通过两个参与者的密钥协商的会话密钥进行SSL / TLS加密。如果应用程序想要进一步加密,例如加密交易中的数据以便只有一部分成员可以阅读,那么应用程序可以自由地进行加密,并且平台中的某些API函数可以帮助制作此类应用程序更容易写。
实施方法
目前共识机制的用例是什么?
除了传统的使用案例(加密货币,公共分类账,智能合约)之外,共识机制还赋予交易订单公平性。这可以实现订单必须公平的用例,例如股票市场,拍卖,竞赛,专利局或大型多人在线(MMO)游戏。
目前与谁合作(风险投资家,银行,信用卡公司等)
Ping Identity发布了基于Swirlds平台的分布式会话管理概念验证产品。Swirlds,Inc.目前由多家投资者融资,包括风险投资,战略合作伙伴和天使投资。