DaoliCloud: Decentralized Autonomy of Lineup Cloud Servers

博客

目录

非许可链的安全性

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

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

比特币 -- 竞争写DB

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

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

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

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

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

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

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

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

单击“编辑”按钮以更改该文本.