DaoliCloud: Digital Asset Open Ledger for Inexpensive Web3 Services

博客

2021三月

非许可链的安全性

区块链是一个仅添加的数据库系统,其DB 管理系统 (DBMS) 软件在分布式硬件服务器上分散运行。非许可(permisionless)区块链上的每个服务器可以动态地加入提供服务或退出其服务,而无需许可,也不会对DBMS造成错误或中断。事实上,在不导致错误或中断 DBMS 的情况丢弃服务器的性能只是轻描淡写地描述非许可区块链的坚固性和安全性,一个非许可区块链必须保持良好的运行次序,即使出现某些“资源贡献”参与者在积极攻击系统,通过在他们的服务器上运行恶意修改的软件作为 DBMS 的一部分。这样的非许可参与者可以自由地对 DBMS 发起攻击,因为他在其”贡献”的服务器上拥有完全的管理权限。显然,有必要而且也是合理地假设非许可区块链中的大多数参与者不是攻击者。比特币是第一个没有许可的区块链,它证实了让参与者竞争编写DB的权利,大多数非攻击性的公众参与者确实可以保持分布式DBMS运行良好,甚至允许更小部分参与者成为攻击者。

比特币使用工作证明 (PoW) 解谜游戏,让参与者争夺编写 DB 的专属权利。非许可竞争不仅可以防止数据库被写入错误或相互冲突的记录,它甚至具有以下自动纠错功能,在链分叉点,这意味着遇到相互矛盾的DB条目,随后的矿工跟随最长的分支链挖矿并延长区块链。这种纠错方法效果很好,因为只有这样做,才能保证开采硬币是有效的。比特币开采的无许可竞争已经变得无可比性。

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

比特币 -- 竞争写DB

中本聪策划了比特币,这是全球首款不涉及以银行为中心的数字支付工具。为了让比特币不出错,该系统的交易数据库管理系统 (DBMS) 在全球分布式计算机上运行,冗余程度非常高,高到没有任何中心控制系统可以干涉它的运行。比特币通过无许可参与来吸引人们去”挖掘”数字硬币,从而实现了如此全球分布的冗余。带着能成功挖掘出硬币的希望,世界各地的热心的矿工们将他们的计算机插入并拼凑成一个全球分布的庞大资源池,为比特币系统提供了所需的冗余。虽然资源池的无许可插入风格也意味着可以从池中免费和动态地退出,但是由于挖掘比特币的红利是相当高的,通常吸引了更多的计算机加入资源池而不是退出,使其稳步增长到全球范围,从而有力地保护了比特币的 DBMS。强大的安全性也是采矿盈利能力的结果,因为只有盈利能力可以推动矿工之间的激烈竞争,向DB输入正确的交易记录。

矿工之间的激烈竞争也可能导致多个矿工同时宣布采矿成功,其中哪一名矿工应向 DB 输入交易记录呢?此时DBMS 状态不可避免地变得难以区分或有争议。在设想了竞争噪音和无法区分争议的可能性之后,中本聪从计算难度入手为比特币的挖掘游戏设计了难度极高的计算方法:比特币挖掘是用巨大的计算力(蛮力)去求一个加密的哈希函数的值,直到找到一个具有公认的且易于测量计算量的有效输出。这个解迷公式是一个很难计算(工作)并容易验证的(证明),最初是由 Dwork 和 Naor 在 1992 年为打击电子垃圾邮件提出的,而工作量的证明( PoW )这个概念是由 Jakobsson 和 Juels 在 1999 年创造的。为了避免无法区分的争议,比特币挖矿的难度正日益增加到这样一个水平,即在整个点对点( P2P )网络中所有矿工合起来的哈希运算能力应该维持在平均每 10 分钟挖出一个块。比特币的挖矿流量非常安静,事实上,是太安静了以至于它几乎用不到互联网的带宽。比特币挖矿的一些不如人意的后果已经被确定,以下是比特币挖矿的几个缺点,它们受到了广泛的批评。

由于比特币挖矿是一种简单的竟标游戏,比特币矿工们多年来一直在军备竞赛中使用从未有过的越来越强大的计算能力,其中一些被特意设计成,如 ASIC 硬件电路,甚至将巨大量这样的挖矿机聚集在一起(又被命名为矿场),相互竞争挖币,导致了比特币挖矿巨大集中的现状。只有越来越少的矿工和越来越强大的矿工才能在游戏中存活下来。这造成比特币实际上对这些高度集中的比特币矿工有非常强的信任要求,从而破坏了安全性、可靠性、公平性、服务稳定性,并威胁到比特币的可持续性。此外,由于比特币著名的记账处理缓慢输出量低,构造延迟长,因此不适合全球在线商业交易应用。 即使比特币也有极少的应用成功,例如金融投资,比特币也承担了浪费能源消费的责任。

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

 

我们可以看作是一种普通的“汽车赛车”,此赛车的交通非常安静,在大多数情况下,在平均10分钟的沉默后,只有一辆车到达终点线,而所有其他参赛的汽车远远落后。所有这些失败者看到(听到广播)有唯一一辆获胜的汽车到达终点线后就立即放弃了比赛。这种安静的方式来排列区块链的采矿资源是一个赢家通吃的方法。输家甚至没有机会向系统传播他们的身份信息。

 

在这样一个平均10分钟无块传播的沉默中,没有用户账本可以记录到数据库DB中,因此比特币具有非常差的记账能力。一些已建成的大型采矿场天真地认为,扩大区块大小可以批量处理更多的账本,从而可以提高账本处理可扩展性,建议比特币处理8兆字节的大块。。一些矿工,例如比特币无限,又名比特币现金或BCH,甚至要求对区块大小不加限制,并在20178月从比特币中分拆出硬叉。具有讽刺意味的是,仅仅一年多之后的201811月,比特币无限链遇到了另一个硬叉分裂为比特币-SV”Satoshi版本),回到最古老的版本比特币(Ver 1.0)即1兆字节的块大小限制。多年来比特币矿工围绕区块规模问题一直存在着的相对立的争议和激烈的算力竞争。一般来说,已经装备好的大矿工更喜欢,并且拥有更大的能力去挖大块矿。不幸的是,这种加大算力的竞争使公平性受到了损害,不仅使较大的矿工比较小的矿工拥有更多优势,而且还导致了严重的采矿集中,采矿权往往集中在单一的控制器下,打破了中本的基本前提和愿景,即安全、稳定和区块链的健康增长基于矿工的权力下放。

 

在那些不得不放弃比特币赢者通吃挖矿竞赛的输家中,很可能有许多人以一种更正确或更令人满意的方式处理了用户的交易,而不是一个赢家独自完成的。由于比特币的挖掘强烈避免多个矿工同时获胜,它没有一个机制来进行横向和实时的比较哪些矿工处理的用户交易比其他人的更正确。相反,比特币经常遇到不良的矿工,他们只处理空账本,这就使他们块的大小远远小于那些诚实矿工试图写入数据库 DB的包含完整批量账本的 块。这些作弊矿工的哈希评估是更快的,他们获得不公平的优势,更早地赢得了PoW挖矿。我们需要足够的竞争来排除这些作弊者,因此推出了稻粒云。

 

稻粒云区块链的“赛车赛道”上的噪音要比比特币的大得多,赛道要短得多,所以在终点线上比比特币的情况要拥挤得多得多。在大多数情况下,会有许多矿工宣布采矿成功,这些成功被认为是并行的和不可区分的时间事件。 毫无疑问的是,这些同时获胜的矿工的身份ID现在已经被整个网络都知道。 这种嘈杂的挖掘方式有很大的用处:已知身份的矿工们有序排列,除了因形成更强的竞争而保证DBMS正确性之外,还可以为更大的云服务器资源池做出贡献。

由于道里云区块链的终点线上有所需的嘈杂网络流量,我们需要一个机制来避免关于谁是唯一赢家的争议。 如果矿工们能够就各自时钟“现在是什么时候”达成简单的共识,那么区块链采矿确实可以避免像这样的“撞车”场景。 在以下几个博客中,我们将确定如何让无权限区块链的所有矿工在P2P网络中就分散的全局时钟达成共识。

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

1991年的哈伯和斯托内塔(Stuart Haber and W Scott Stornetta. “如何给数字文档打时间戳” 见:密码学理论与应用会议。Springer. 1990 ,pp 337 – 455 )提出了一个巧妙的观察,重复链接一个加密哈希函数可以很好地模拟时间的一些基本属性:容易向前计算,难以恢复或篡改。他们建议使用他们的哈希链数据结构来提供时间戳服务。正是比特币采用了哈希链数据结构,才使得哈伯和斯托内塔的发明得到了迟来的认可。然而,比特币在其链接的块中包含时间戳,名为“块时间戳”,并不是一个严格意义上的计时用途。下面的块引用是比特币对其块时间戳的详述:

(…时间戳’)除了作为块哈希函数的一个变量之外,它们还使敌对手更难操纵区块链。如果块时间戳大于前 11 个块的平均时间中值,且小于网络调整时间+ 2 小时,则确认此时间戳是有效的。“网络调整时间”是连接到您的所有节点返回的时间戳的中位数。因此,块时间戳并不准确且也不需要准确。块的时间只能精确到一两个小时之内。

比特币使用时间戳实际上与有意达成全球时间共识没有什么关系。甚至非常可能一个块的时间戳比前一个块的值更低(或更早)。为什么比特币的时间戳没有时间意义我们可以这样去理解下面几个原因:

    1. 比特币矿工可以谎报时间戳,而矿工的私人时钟也可能不同步。似乎没有一个切实可行的办法来实施、执行或维持一个尽职调查标准,以使无许可参与的矿工行为良好。
    2. 随着国家的进步,时间滴答滴答地前进,无条件地服从一些自然规律。例如,它不能被恢复,也不能被超越。然而,比特币区块链的状态可以被一个更长的链叉取代,甚至可以在秘密开采的长链叉被揭露时恢复。

可以理解的是,比特币并没有一个很好的方法来使用它的块时间戳作为可信的时间参考。事实上,正如它的规范所承认的,块时间戳主要是将一些噪声添加到哈希函数中,作为理想的熵。在本文撰写之时,这种对区块链时间戳的不当使用一直是区块链的现状。据我们所知,后来提出的旨在改进比特币的POW机制中,没有一个真正关注时间戳的有意义的使用。
然而,即使允许矿工在自己的区块中记录时间戳时,比特币块时间戳也具有一定的时间属性。例如,块时间戳值在时间进度方向上会单调增加,并且大体上记录用于挖掘块的时间长度以及在整个网络中传输块的时间长度。在我们看来,以及在我们的开发中,前矿工的幻灯片窗口集体定义的时间戳的一个非常重要的质量是:块的幻灯片窗口中记录的时间戳形成了一个书面共识,供区块链网络中的所有对等节点可靠使用。
让我们继续建立一种算法方法,让这种无许可参与的采矿者就全球时间达成共识。

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

比特币的块时间戳规定,虽然相当不准确但足以让 P2P 网络中无许可的区块链节点在时间进度间隔上达成共识,具有写入可靠性。以下是一些全球矿工共识的事实。

 

区块链要处理多个区块(例如,比特币的时间戳算法是 11 个区块),必须花费一定的时间。矿工可以通过收听区块传播和记录这些区块到达时的当地时钟读数,客观地测量这段时间的长度。全球P2P 网络的大多数矿工都将知道这个时间长度始终是基本不变的本地时钟滴答的数目。

 

每个矿工的本地时钟都以稳定的节奏滴答作响。矿工们的本地时钟不需要与全球时间同步。让一个时钟比另一个本地时钟更快或更慢,更快/更慢的时钟总是稳定地使用更多/更少的滴答数来计算他们传播到 P2P 网络的客观测量到的时间长度。

 

标题图显示了一个常识,即不同滴答速度的时钟可以稳定地测量目标时间段的长度。每一个时钟都在以自己的速度滴答作响,告诉大家一个共识:“现在大约是下午 5 点”;这些时钟的分针停留在或将要返回到一个小时之前大约相同的位置。

 

幸运的是,现在的任何数字计算机,无论是高端服务器、个人电脑、智能手机,甚至是一个不起眼的物联网设备,都有一个本地时钟稳定地滴答作响,以保持其本地时间一致。在下一篇博文中,我们将描述一个矿工如何用自己本地稳定的时钟向整个 P2P 网络表达共识的全球时间。

 

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

前一篇博文标题图片中的一堆正常工作的老式钟说明了一个常识:虽然那些古色古香的钟滴答的速度不同,但谢天谢地,它们每一个都在稳定地滴答作响,让所有人对一个粗略的时间都能可靠地达成共识:即现在大约5点钟!” 这一常识也适用于无权限区块链,让矿工使用独立的本地时钟,并始终就全球时钟的时间达成共识。

一个已接受多个块的矿工必然意味着以下两件事:(1) 它已接受了写在这些区块记录中时间戳的有效性,即书面记录的时间戳,以及 (2) 它可以使用其本地时钟记录这些区块到达本地的时间,即听到的时间。请注意,在(1)中被接受的区块之间的时间间隔已客观地表达给全球矿工,如果大多数矿工接受了这些区块,而(2)中这些区块之间的时间间隔也已被这些矿工使用本地时钟主观记录。因此,每个矿工在客观上表示的时间段长和主观记录的时间段长之间有一个映射。虽然不同本地时钟的不同滴答速度将客观表

达的时间段限记录为不同的主观局部测量,但由于当地时钟的速度稳定,不同的矿工可以使用不同的映射可靠和精确地转换 (1) 和 (2) 的时间间隙长度。本地时钟的稳定滴答速度意味着翻译功能是一个简单的线性函数。

DaoliCloud 区块链要求矿工以书面形式表达其成功找到有效 PoW 块所花费的挖掘时间通道差距。挖掘时间的不诚实表达很容易被发现。书面表达的采矿时间的精细度,足以避免像赛车碰撞一样的事故发生在采矿竞争的终点线上。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

比特币的 PoW 矿工是出了名的勤奋,努力到在他们的超大规模的采矿场上集中所有专门硬件共同运算可以在平均 10 分钟间隔得到一次哈希解。可悲的是,以这种水平的苦干 PoW 竞争的比特币已经被揭示,正如我们在前面博客文章(比特币挖矿一个问题:竞争不足)中讨论过的,竞争不足,不能防止不诚实的矿工以欺骗手段获得不公平的采矿优势。比特币的超大规模的 PoW 挖矿场,算力非常强大,但没有什么好的用途,除了为挖矿而去计算特殊的哈希函数。

 

稻粒云(DaoliCloud 不仅希望成为一个支持区块链的全球支付系统,更希望为云服务提供可扩展的全球范围的资源池。稻粒云的无许可参与者不需要使用强大的机器,相反,一个微小的设备都会有所帮助,他们应该使用普通的通用计算机来参与稻粒云。在稻粒云挖矿只是赚钱的一种方式,通过提供IT资源来构建云和出售云服务也可以赚钱。

 

DaoliCloud的块挖掘也是评测PoW中的一个哈希函数。不过,DaoliCloud挖矿流量会比比特币挖矿的噪音大很多。在DaoliCloud 中成功挖掘所需的时间比 10 分钟短得多,我们的实验表明, 1 分钟级别的挖掘时间将提供一个很好的和足够公平的竞争,以确保区块链的安全。在这样一个容易挖掘的层面上,DaoliCloudPoW更多的是运气,而不是蛮力。事实上,DaoliCloud挖掘是一个幸运的证明(PoL)。参与 DaoliCloud的矿工使用的通用计算机,除了在 PoL 挖掘中碰碰运气,其实只会使用其资源的一小部分而主要的资源将为云服务提供更多的贡献。注意,矿工的报酬,可能更多是后者!

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

像比特币开采一样,稻粒云(DaoliCloud)开采也用加密硬币激励获胜的矿工。然而,不像比特币矿工,他们可能不是真正的信徒,只是拥有专门的挖矿机组成的大型挖矿池,DaoliCloud矿工靠运气获胜,他们使用的软件运行在普通通用计算机上,如PC、云虚拟机或容器、智能手机,甚至是物联网设备。

 

 

比特币PoW挖掘是一种暴力计算哈希函数 H(nonce)直到发现输出数是如此之小带有许多前导零(这里在输入序列中 nonce 是一个随机数,矿工用它的电力猪蛮力搜索)。DaoliCloud挖掘也是一种蛮力计算哈希函数 H(nonceGlobalClockTime)直到发现输出值非常小只带有很少的前导零。此哈希函数的附加输入变量 GlobalClockTime 代表了挖掘者在查找有效哈希函数输出时花费的时间。DaoliCloud中的所有矿工都可以在一个全球时钟上达成算法共识,因此一个获胜的矿工可以使用 GlobalClockTime 表示其挖矿所用时间,从而声称自己已经找到了有效的区块,所有其他矿工可以验证这个声明的有效性。(见博客文章比特币时间戳全球时钟共识,第一部分第二部分)在下一篇博文中,我们将阐明为什么一个矿工必须诚实地宣布,它已经花费了确切的所声称的时间且幸运地找到了一个有效的矿输出。

 

 

 

与比特币挖掘相比,DaoliCloud挖掘更容易获胜。计算能力的大小没有优势赢得DaoliCloud挖矿,是靠运气,DaoliCloud挖矿因此在尝试幸运验证(PoL)。我们的实验表明,这种用蛮力计算的哈希输出如果把获胜阈值限制在 10 个前导零,则强大的计算能力将不比云容器、 PC 、智能手机甚至物联网设备(如 Raspberry – PI )更具有优势。若将 GlobalClockTime 限制为一个相当小的值,例如小于一分钟,则挖掘者必须幸运地在所宣称的时间长度内找到一个有效块。采矿成功完全取决于运气。

 

挖掘难度的降低必然转化为哈希分叉,这是来自多个不同的竞争矿工宣布的多个挖掘成功的公告。事实上,要确定在这些不同的竞争矿工中谁实际上赢得了写数据库的专有权是一个无法区分的问题。好吧,对于一个无法解决的问题,就把它功能化吧!

 

 

什么样的功能道立云挖矿可以再造出来呢?正是有足够多的PoL赢家在同一个采矿时段上。让这些优胜者相互比较谁在写数据库时更正确、更诚实。这就是DaoliCloud如何修复比特币中不诚实和不公平的挖矿问题。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

如果一个矿工使用一个强大的机器,比如一个大型服务器甚至是专门设计的 ASIC 硬件,来挖掘 PoL 块,希望比预期的在微小机器上跑的软件更快地找到一个有效的块,会发生什么?这个更强的机器矿工,当比其它矿工较早地找到一个有效的 PoL 块时,必须宣布一个GlobalClockTime 作为输入变量到它的挖矿哈希函数,其它比它晚成功的矿工也做的同样工作,较早成功挖到矿的GlobalClockTime应该比后续矿工的GlobalClockTime小些。注意,宣布的GlobalClockTime是挖掘哈希函数的输入。一个矿工当它开始挖矿时应该总是向挖掘哈希函数输入其最新的 GlobalClockTime,就像挖Bitcoin时它总是向哈希函数输入一个新的随机数 nonce 。这就是为什么GlobalClockTime 值是一个,哈希函数的每一个输入值都是一个申报的承诺具有易于评估和公开验证的特性。

 

我们还知道,稻粒云(DaoliCloud的所有矿工对全球时钟的表达:现在是几点,有着全球一致的共识,即全球共享一个时钟。DaoliCloud使用预先指定的通信延迟阈值,让它被表示为DELTA,以限制块的有效旅行时间。一个块不能比DELTA走得更长,也就是说,一个块的行走时间是指此块的广播时间与块验证器接收此块的时间之间的时间,它是绝不允许超过Delta的。广播时间是一个矿工开始挖矿时宣布的GlobalClockTime作为块的输入。这个区块旅行时间的有效性是由DaoliCloud的所有矿工验证的。因此,声称较早的GlobalClockTime并不比声称较晚但有效的GlobalClockTime更有利。所有矿工,无论是使用更强大的机器还是使用小破机器进行挖掘,在有效的GlobalClockTime持续时间内找到一个有效的块时,应该最好立即广播该块,以避免增大在接收和验证端被判断为Delta超时的可能性。显然,没有一个人,甚至是一个全能巨大的机器矿工,也不能控制一个块通过网络时的通信延迟。

 

结论是:投资于更强大的采矿机没有好的投资回报。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

通过PoL挖矿赚钱是一种低门槛且无需许可的生意。可以理解的是,随着越来越多的参与者加入,PoL挖掘的获胜概率会逐渐减小。值得庆幸的是,在实现比特币全球支付系统的唯一目标之外, DaoliCloud 还渴望成为一个云资源平台。

在比特币挖矿传播的非常安静的交通中,一个赢了的挖矿公告会立即让整个网络的所有其他挖矿者安静下来,并且使得他们完全没有地址就像是被吸入黑洞。所有这些辛苦的PoW竞争失败者实际上是极端富有资源和渴望出售他们的资源来赚钱。不幸的是,所有超大的具有全球规模的比特币资源池只适合一台机器在平均 10 分钟的时间段输入一个微小的记录到数据库DB

DaoliCloud的分叉和嘈杂的PoL挖掘赛中,每个区段都会有一个不分叉的赢家成为该时代的DB写手。尽管如此输家们也暴露了自己的地址,这是在功能设计上充分竞争的结果。事实上,这些挖掘传播暴露了PoL竞争失败者的地址,这些失败者成为卖数据以进入数据库的IT资源。更准确地说,DaoliCloud也是IT资源所有者通过互联网销售云资源和服务的广告平台。

出售 IT 资源,如 CPU 处理能力、存储空间、网络连接和带宽作为云服务,将成为加入一个低门槛和无许可的商务。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

和比特币PoW挖矿一样,DaoliCloudPoL挖矿也是蛮力判断一个哈希函数。然而,由于 DaoliCloud 的特点是在云容器、 PC 、智能手机甚至物联网设备等通用计算机上进行简单的软件挖掘,因此 DaoliCloud 中的 PoL 挖掘比比特币的 PoW 挖掘的难度要小得多。我们的实验表明, DaoliCloud 网络中的挖掘传播流量比比特币的噪声大得多的多。避免多乱差(spam)难度可控挖掘,DaoliCloud PoL 挖掘可以将难度调整到在一个 30 秒的挖掘窗口由全球200 名使用云容器的矿工宣布10来个成功块,而 Bitcoin平均每 10 分钟才宣布一个块

 

随着竞争块的嘈杂播报, PoL 挖矿导致DaoliCloud 是一个分叉 forky 树,其中一个公认的去叉算法将输出 1 个赢家享有独立写数据库DB的权力,外加 10来个失败者。这些挖矿失败者的公钥地址也已广泛传播到整个P2P网络。本质上,嘈杂的竞争性采矿传播也为采矿失败者做了免费广告,如果他们中的一些人愿意,以出售 IT 资源作为采矿机之外的主要贡献!

 

除了被标签为采矿失败者出售 IT 资源外,这些已知的有地址的采矿“失败者”还有另一个非常重要的用途,他们的被广而告之的地址也被写入到区块链数据库中。因此,每一个挖矿段的赢家失败者都被排好队,他们的带有队列位置的公共密钥地址已被整个网络所知道,当然包括他们自己。在任何情况下发生了数据库输入错误,无论是双重支付等恶意攻击、自私挖掘似的欺骗行为,还是真正的设备错误,这些已知地址的排好队的输家成为算法定义的合法竞争者,以用来纠正数据库输入错误。我们将在后面的博文中提供更详细的算法步骤,说明这种基于竞争的噪音挖掘流量如何有效地为无许可区块链提供不可或缺的纠错机制。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

在无权限区块链中,任何参与者都可以竞争赢得一个时间段(通常称为时代epoch)的专属权利,使它可以独立维护 DBMS。当然,这种排他性权利是有条件的,获胜者必须正确地执行 DBMS 维护工作,所有矿工都在监测 DBMS 维护的正确性。在发现任何错误行为时,竞争总是用来进行纠正错误的。在比特币中,这种基于纠错机制的竞争受到采矿竞争安静性的限制,因此 DBMS 缺少所需的质量。经常讨论的质量问题是延迟。确认记账正确性需要等待 70 分钟的超长时间。如果长时间延迟不仅其数据库正确性不能满足要求,而且挖矿的不公平性也是不能容忍的。

 

比特币的正确记账是什么?空是一个,今天是星期五也是一个,比特币矿工经常这样维护 DBMS。这种采矿行为被称为自私的采矿,哈希一个较小的账本比做一个大账本要快,而且快速赢得天价超值硬币作为采矿奖励的收益远远大于缓慢收取记账费过程中的风险损失。在写这个博客的时候,我们还没有看到一个好的解决方案来解决比特币的这种不公平的弱点。我们对比特币采矿不公平问题的本质认知如下,比特币采矿竞争从源头上说是串行的,矿工们没有办法在某一时间点停下来并就其DBMS维护质量对多个块进行平行比较。

然而,PoW采矿本质上是竞争,将其固有的自然串行竞争修改为成一个平行竞争是有可能的。要做到这一点, PoW 的挖掘难度需要降低,要比比特币的难度低很多很多,这样在大多数情况下,一个挖掘时间段中应该有多个矿工以时间接近的方式输出有效块。然而,一个难度低得多的 PoW 挖掘,如果它是无许可的和鼓励参与的,显然会导致非常嘈杂的块传播流量,网络被堵塞的风险就像遇到垃圾邮件(spam)的攻击。因此,一个大大降低挖矿难度的PoW挖矿,需要一些交通控制措施。假设有这样一个措施来控制块传播流量不达到spam级别,就可以实现DBMS维护质量的平行竞争。我们将在后面的一些博客中制定这些措施。在当前这个博客中我们可以只是假设,我们有一个 PoW 挖矿方案可以有很低的挖块难度,在大多数情况下,它可以有多个Non-spam数量的矿工输出有效的块为其 DBMS 维护质量进行平行比较。

DaoliCloud 的方法,以平行竞争激励追求利益的矿工维护正确,公平和实时地维护区块链 DBMS, 将需要一些功能。全球时间共识是重要的一个,我们在之前的文章中已经准备了并提出了。对消息正确性,甚至对消息公平性的共识是另一个重要问题。Spam的预防和liveness活性保持(即始终保持系统运行)是必要的。此外,也需要加密组件和使用,可以提供一些比哈希函数可以做到的更微妙的控制。我们将在近期的博客文章中开发这些组件的使用。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

DaoliCloud 网络中嘈杂的块传播流量决定了一届 PoL 挖矿比赛应该在链加的区块链的末端输出一个有相当数量的但不超过Spam大小的 forky 树,以实现健康竞争。有一个去叉工作就是从这些竞争输出的块中选择一个块,让其矿工成为幸运者最终的赢家,其 DBMS 维护工作在平行比较中被见证是最正确和公平的。这项去叉工作是在集体决定的基础上进行的,反映了所有矿工的共识。DaoliCloud使用一组组逐步更新的曾经赢了的矿工作为这些决策者或受托人。这个想法是基于一个长期并经过充分研究的主题:拜占庭故障容错。

拜占庭故障(也包括交互式一致性、源一致性、错误雪崩、拜占庭协议问题、拜占庭一般问题、和拜占庭故障)是计算机系统的一个条件,特别是分布式计算系统,其中某些组件可能会失败,而这些组件是否出现故障的信息却不完善。这个词的名称来源于一个寓言,拜占庭将军问题,为了描述这样一种情况,为了避免系统的灾难性失败,系统的参与者们必须达成一致的战略,但其中一些参与者是不可靠的。

拜占庭容错( BFT )研究始于 1982 兰波特肖斯塔克皮斯(Lamport – Shostakes – Pase)的工作,后来发展成为一个重要的工作。当时,该研究领域面临着一个悲观的低谷,即费舍尔林奇帕特森在1985年提出的著名结论FLP共识不可能性FLP不可能说,在异步网络中,如比特币情况下的互联网,计算和通信节点联盟不可能就在联盟中传播消息的正确性条件达成共识,即多数同意。FLP不可能论点认为,异步网络被认为具有不可靠性,相当于联盟中甚至存在一个故障节点,更不用说这个故障节点是主动攻击者的场景了。

 

 

有趣的是,比特币的稳健和良好的秩序运行了十多年,现在应该被广泛接受,比特币是第一个成功的 BFT 协议。在撰写这篇博文的时候,BFT协议被广泛接受为对可靠的容错计算有用。BFT作为一种实用的多方计算(MCP)方法,在计算机安全领域也找到了很好的应用。比特币如何能用一个显例来反驳FLP共识不可能的问题呢?让我们在下一个博客中提供我们的解释。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

经典拜占庭容错协议,例如实际拜占庭容错 Practical Byzantine Fault Tolerance (PBFT),卡斯特罗利斯科夫(Castro-Liskov1999年的工作,是基于所有对所有投票。这种投票机制通常需要一个指定的领导人,也通常被称为首脑,他启动决策过程,在一系列全体参与的轮回通信中用多个冗余副本进行讨论,以确保所有人绝对确定地达成相同的决策。这种在n个节点之间的(All-to-All)讨论具有n-二次级别的通信复杂性。在领导者失败的情况下,协议将进入更多轮的(All-to-All)通信来选举新的领导者,以此类推。此外,所有节点都需要准确了解所有参与节点的成员身份、维护系统成员身份时的任何错误,或网络视图中的任何差异,都可能导致安全违规。由于 BFT 节点的成员身份认证具有高度复杂和脆弱的系统设计、较高的通信成本和较强的安全假设,经典 BFT 协议迄今为止没有发现具有规模的应用,并且肯定不会使用于无许可的区块链中,其节点可以随意加入和退出而不需要预先安排会员身份认证。

比特币的激励给予挖矿开启了容错计算的全新思维。经典的容错计算正确地认为共识失效可能是设备故障、通信不完善或某些恶意攻击行为的结果。在节点不需要有共同兴趣的公共网络环境中,经典容错计算更正确地指出(例如,FLP, 参见之前的博客)不可能区分这些共识失败的不同原因。比特币使用的激励给予挖矿产生了显著的差异:真正的故障的概率几乎可以忽略不计,而恶意攻击的概率在没有激励的情况下几乎是 1 ,但在有激励的条件下可以减少到几乎可以忽略!

 

在一个群体中恶意攻击者和寻求奖励的协作者相比,当恶意攻击者在群体中的比例较小时,就很容易放大协作者的有效性,从而总是减少和阻止攻击者的有效性。这样容错性的计算就变得非常实用。Daolicloud将比特币低效的non-BFT共识扩展到更有效的赚奖励的BFT共识方案:激励拜占庭容错(I-BFT)。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

DaoliCloud 区块链使用一种新的激励拜占庭容错( I BFT )技术来排列嘈杂竞争的 PoL 矿工。I BFT 服务器组是动态组成的,是由最近赢得 PoL 挖矿的排好队的矿工,他们的队被排在区块链的附加末尾。每一个I BFT 服务器在听到 PoL 挖掘成功传播后,对I BFT 服务器认为有效的矿工进行数字签名,并广播签名结果。因为,对于每一个 I BFT 服务器来说协同工作非无协作的攻击有更大的可能获得激励奖励,无协同的攻击对他人几乎没有影响力,这将是一种更大概率,I B FT 服务器通常输出一个小组的协议共识并成功地排列 POL 矿工。

 

较大的概率是嘈杂的 PoL 竞争矿工通常被排好了队,在较小概率的情况下,当 I BFT 未能输出一个协议的共识,已经排好队的“输家”轮流得到竞争的权利,该协议不仅有足够的竞争支持公平的数据库写入的正确性,也维持了系统的活性(liveness)。

 

DaoliCloud 区块链所制定的排队的 I BFT 的灵感来自于ByzCoin 的工作,然而,我们的工作加入了奖励到 BFT 小组。区块链具有足够嘈杂的竞争特性以用于平行的实时的公平性和正确性检查,以及活性(liveness),其灵感来自比特币下一代( Bitcoin-NG )的工作。在接下来的几篇博文中,让我们回顾一下这两个工作是如何对DaoliCloud区块链有所帮助的。

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

比特币下一代(Bitcoin-NG)是第一批用来改进比特币性能的区块链协议之一。它将区块链 DBMS 维护分为两个阶段:( 1 )领导人选举,称为 KeyBlock 挖掘,保留了比特币挖掘的难题;( 2 )记账排队,称为 MicroBlock ,用于实际向 DB 输入数据,这成为一项非常轻松的任务,吞吐量大大提高。阶段( 2 )是由选出的领导人独立执行的,通过发布数字签名的 MicroBlocks ,该独占 DB 写入权可以通过阶段( 1 )公开的公钥进行验证。因此,较宽松的阶段(2)仍然没有许可,但没有Spam发送。这种工作分离揭示了一个重要的事实:中本聪为比特币发明的无许可 DBMS 维护可以有有趣的方式来提高质量。

 

 

Bitcoin-NG使用比特币挖矿是不幸的。比特币挖矿的成本非常高,已经认为比特币矿工不可能有经济利益来为Bitcoin– NG 开采 KeyBlocks

 

 

Bitcoin-NG专注于提高记账排队性能,它启发DaoliCloud提高竞争的强度,以保证正确性,公平性,更重要的是区块链的活性。在下一篇博文中,让我们来解释Bitcoin- NG KeyBlock – MicroBlock 分离思想如何在 DaoliCloud 中有更重要、更创新的应用。

 

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

DaoliCloud 中, 领导人(实际上,正确的名称是 winner ,因为 DaoliCloud 是一个真正的 P2P 系统,没有任何高于其他角色的节点被称为 leader )选举,即 KeyBlock PoL 挖掘,是一项非常轻松的工作,吸引在通用计算机上的软件(software-on-general-purpose-computer采矿因此, KeyBlock 挖掘,即 DB 维护阶段( 1 )的 Bitcoin – NG 风格,通常应输出多个 Keyblocks 区块链的末端分叉,并公开各自获胜者的公钥。所有这些可能成为赢家的人都有资格发布竞争性的 MicroBlocks 他们账本可以在实时行比较中验证正确性和公平性,以选择具有最正确和最公平账本的最佳赢家来附加到区块链上。

 

下面让我们描述一下更重要的质量改进:区块链活liveness)。区块链活要求附加(append only数据库必须在所有情况下始终附加块。随着无许可的区块链允许随意竞争来维护DBMS ,Liveness意味着自治组织变成了一个众所周知的难题。

A DaoliCloud Epoch

PoL矿成功的KeyBlocks节点,即待定获胜者,通过在MicroBlocks广播竞争。这些获胜者数量spam的平行竞争对手,见“A Daolicloud Epoch。每个竞争的 MicroBlock 包括,输入数据库数据,所有其他获奖竞争对手公共密钥地址即 ID ,这些竞争者已经公开了各自的 KeyBlocks ,不包括该 MicroBlock 创建者本身。这部分要输入到区块链数据库中MicroBlock数据好了队准赢家,但是实际上在微块创建者的眼中。大多数情况下, POL 挖掘阶段应该输出足够多的赢家为了一个健康的行竞争,竞争是为了的正确性和公平性。较少的时候 POL 挖掘阶段可能输出不够多的准赢家,如果不是空的会有降低竞争质量的风险,更严重的是,威胁Liveness造成系统崩溃。当这种情况发生时,那些已经在前几期阶段 1 排好队赢家有资格在一个良好的秩序加入平行竞争。

 

这就是DaoliCloud区块链将始终保持Liveness运行的方式。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

DaoliCloud 网络中嘈杂的块传播流量决定了一个 PoL 采矿竞赛时间段应在仅附加的区块链末端输出一棵相当大的但不是Spam量级的叉树,以便进行健康竞争。有一个去分叉工作,从这些竞争块中选择一个块,此块的矿工是最终的赢家,它的DBMS维护工作是经过平行比较被见证的,是最正确和公平的。这一除叉工作是在集体决定反映所有矿工的共识的基础上进行的。DaoliCloud 使用逐渐更新的中标矿工小组作为这些决策者或受托人,他们被称为 BFT 成员,并组成 BFT(共识) 小组或联盟。因此,DaoliCloud BFT 和区块链的组合协议,即 BFT 区块链。

 

BFT区块链之一是 ByzCoin。我们认为,ByzCoin BFT 区块链中具有独特的创新性,因为它的 BFT 共识联盟开放供无许可参与。这就是说,像比特币一样,ByzCoin是一个不需许可的BFT区块链。ByzCoin应用的 BFT 算法是实用拜占庭故障容差 PBFT)。与之前使用封闭的,即已被批准的共识联盟的所有 BFT 技术一样,PBFT 也使用封闭的会员受托人,因此无法大规模扩展以支持无权限区块链。ByzCoin 通过规定其 BFT 受托人用区块链尾部最近赢得的比特币矿工来逐步更新,从而打开 PBFT 的封闭会员资格。标题图显示了此 BFT 结构:当比特币采矿竞争中出现了极其困难的解谜块时,此块被附加到区块链的尾部,该块的矿工被招募到 BFT 受托人组。BFT 小组拥有 w 受托人成员,更新 w 时代让最老的成员退休。ByzCoin 还使用这个新招募的 BFT 受托人作为 BFT 组组长,因为 PBFT 协议 ByzCoin 应用需要一个BFT组长作为协调员。

 

在一些非常罕见的情况下,当比特币挖矿在区分不了先后的时段内输出多个块时,在比特币的案例中,这将有争议地分割比特币网络, ByzCoin,现在可以由 BFT 受托人让他们通过去分叉的共识计算,从分叉的争议者中选择一个。

 

就像Bitcoin-NG的案例一样,ByzCoin使用比特币挖矿是不幸的。比特币挖矿成本非常高,因此比特币矿工可能没有经济利益为ByzCoin挖矿。

 

DaoliCloud使用 ByzCoin 的无权限BFT技术,可以说是流线型简化。由于区块链活性(Liveness)不再是BFT需要解决的问题,简化成为可能。(嘈杂的挖掘使比特币-NGMicroBlocks之间能够平行竞争,保证了 Liveness,见前一篇博文)。使用 BFT ,仅只为基于冗余的可靠性多方计算的子函数,而不是通常 BFT 应用中的一个更困难的问题,共识协议。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.z

传统使用的 BFT 技术是关于一个多个计算机作为冗余副本,以讨论在所有对所有(All-to-All)的通信,并希望达成一个多数共识协议的计算决策。多年的研究积累了丰富的知识。一个共识似乎占了上风:这就是在不完善网络中的节点,要达到多数共识是一个众所周知的难题。任何合成 BFT 技术在无许可区块链中找到应用的情况都是特别的,事实上是没有希望的。在无许可区块链中,似乎没有办法从非完美的网络中辨别出恶意攻击,无论是真实的还是伪装的。这就是为什么到目前为止,在区块链领域里已知的 BFT 应用只在有许可的情况下,例如权益证明( Proof-of-Stake)。ByzCoin案例的尝试始于2016年,在发布这个博客时还没有成功。

 

博文DaoliCloud对比特币-NG的创新应用”解释到,对于DaoliCloud来说维护区块链活性Liveness的重要属性是通过噪声挖掘使得Bitcoin-NG技术中微块之间能够平行竞争来提供的。只要大多数DaoliCloud矿工遵守协议,排好队的准赢者缓冲区里总是会储存大量随时准备好相互竞争的节点,以保持区块链的活跃运行。这种活性Liveness保证措施尤其适用于BFT受托人未输出成共识协议的一些罕见场合。因此,DaoliCloudBFT的使用不再担心共识失败。流线型简化ByzCoin BFT构想第一次成为现实。

 

DaoliCloud简化应用ByzCoin BFT构想中,不需要一个领导者来协调所有对所有的通信。比特币的通讯就像所有矿工之间的广播一样,已经足够了。BFT成员各自独立验证传播块,认证有效块并将其认证广播到P2P网络。请注意,这些BFT成员是被奖励所激励的,因此他们的集体认证通常应该反映整个矿工网络在DBMS维护的正确性和公平性方面的共识。在这种通常情况下,BFT输出了一个唯一的基于多数的多方计算的去叉结果,区块链以良好的顺序把它附加在数据库管理系统的维护的前端。在一个不寻常的情况下,当BFT无法输出这样的结果时,更常见的情况是排好队的准赢家节点,其公钥IDDB中的数据,因而具有参与竞争的资格,这是整个P2P网络的矿工都知道的,这些节点将参与新一轮的噪声和健康的MicroBlock竞争。

 

Copyright © 2020-2021 DaoliCloud Company. All rights reserved.

非许可链的安全性

比特币 — 竞争写DB

比特币挖矿的一个问题:竞争不足

比特币 — 时间戳

全球时钟共识,第1部分:稳定的本地时钟

全球时钟共识,第2部分:本地时钟和全局时钟之间的转换

PoW? 更多是运气而不是苦干

靠运气赚钱,PoL(运气的证明)

运气不撒谎

赚钱不仅靠运气,还可通过销售多余的IT资源

噪杂的传播流量是DaoliCloud挖矿的特色

DBMS正确性的平行比较:无许可区块链的不可或缺

BFT (拜占庭故障容错)

激励引发的合作

I-BFT(激励拜占庭容错)

Bitcoin-NG(比特币下一代)

DaoliCloud对Bitcoin-NG的创新应用

ByzCoin(拜占庭币)

DaoliCloud对ByzCoin的合理化使用