Ravencoin – 建立免疫系统

Ravencoin网络在2018年9月13日至14日遭遇了几次攻击。在几天内遭到道德破产的攻击者进行了双重攻击。

加密货币的一个已知漏洞是51%的双重支出攻击。任何采矿池或可以比网络其他部分编制更多采矿能力的个人都可以篡改网络。他们不能花费你的资金,因为这需要你的私钥,但他们可以花费自己的资金 – 两次。

这次攻击是怎么做到的?

  1. 在交易中发送资金。在这种情况下,RVN被送到交易所。
  2. 获得价值。在这种情况下,他们为BTC交换了RVN并撤回了BTC。
  3. 通过租用哈希电源开辟一条新的连锁店,从一个块上方开始。
  4. 通过DDOS攻击诚实的采矿池减少诚实的挖掘哈希能力。
  5. 双倍将相同的资金返还给攻击者,以使原始存款无效。如果链条有更多工作,这将取代原来的支出。
  6. 一旦假冒散列功率较大,则提交链,擦除原始RVN事务。

细节

请参阅下面的附录。

怎么会发生这种情况?

这在比特币或任何其他UTXO硬币上一直是可能的。这在比特币上仍然是可能的,但是由于相对于可出租的散列能量的数量而言极其诚实的采矿能力,这种可能性要小得多。较小的硬币没有受到保护,在过去的几个月中,较小的硬币发生了几次51%的攻击。

可出租的散列能量已成为许多硬币的问题。在RVN的早期阶段,这不是问题,因为x16r是新的,并且算法无法租用。随着RVN变得越来越流行,对x16r哈希算法的需求导致主要的哈希租赁公司支持x16r。这开辟了一个新的攻击载体,直到最近才存在。

这不是由Ravencoin中的缺陷或错误引起的,而是UTXO硬币的固有风险,其中安全性始终是概率性的。有了足够的挖掘能力,可以重写任意数量的块。

这与最近的DGW(难度调整)算法有关吗?

它似乎不是。我们分析了孤立的块,并将难度与替换块的难度进行了比较。DGW按预期工作,将攻击者的难度提高了一小部分,因为他们略微领先于主链的工作。

这是资产的问题吗?

是的,这个攻击向量必须针对资产进行处理,因为随着Ravencoin链上存储的资产价值的增加,激励RVN中矿工的块奖励可能不会以保证网络所需的速率上升。

有哪些可能的解决方案?

有几种可能的解决方案。一些可能适用于其他硬币的解决方案与Ravencoin完全分散的理念不兼容。

可能解决方案

  • 在交易被视为“已接受”之前,只需增加所需的确认数量即可。
  • 问题:攻击者可能能够编组额外的哈希能力来重组更多的块。

可能解决方案

  • 定期在服务器上创建具有块高度和散列的检查点。
  • 节点在接受链之前验证检查点。
  • 问题:与Ravencoin的分散性质不相容。
  • 问题:对集中式节点的DDOS攻击可能会中断集中式服务器与其他节点之间的连接。

可能解决方案

  • 把所有的黑客扔进火湖。
  • 问题:不确定我们能找到它们。
  • 问题:采购火湖。

可能解决方案

  • 使用像KMD – Komodo平台这样的平台定期锚定哈希值。
  • 问题:与Ravencoin的分散性质不相容,需要付款。

可能解决方案

  • Anchor Ravencoin像比特币一样融入分散的安全链。
  • 问题:需要支付和某人或某个服务器(集中)来保存私钥以支付锚定费用。

可能解决方案

  • 使用特权开发人员私钥创建检查点。
  • 问题:与Ravencoin的分散性质不相容。将责任和信任置于集中实体中。

可能解决方案

  • 在X块之后不允许链重组。
  • 问题:可以阻止有效的链重新集成,从而阻止可能的网络拆分。

可能解决方案

  • 不允许在X块之后进行链重组,但仅在完全同步并且与节点连接良好时才允许。
  • 可以阻止有效的链重新集成,从而阻止可能的网络分裂,但仅限于特殊情况。

这是一个持续的问题吗?

是。最好的解决方案是拥有足够的诚实哈希能力,在需要足够的确认的情况下攻击是不可能的。直到那一天,Ravencoin区块链面临道德破产的攻击者双重攻击的风险。

可以做些什么?

所选择的防止未来双重花费攻击的选项是具有特定节点条件的默认最大重组深度。这已经被其他区块链开发者讨论过,并且已经在一些利益证明硬币中实施。Ravencoin正在将此更改整合到未来版本的代码中。

为RVN选择的默认最大重组深度为55个块。在块的预计时间为1分钟时,这将近一个小时。在等待时间内,它与比特币区块链上使用的6个10分钟区块相当。

这将允许交换,将其确认设置为60个街区(约一小时),并且合理地确定区块链将不会重新组织并孤立(“蒸发”)存款。

该解决方案的一个缺点是流氓节点可以向另一个节点发送55个块,然后该节点将停止侦听更大的诚实区块链。出于这个原因,在节点忽略其他更大的,可能欺诈性的“惊喜”区块链之前,还必须满足一些其他条件。它必须连接到足够的节点,因此不会欺骗接受55个块的虚假链,此时它将停止接受来自诚实链的块。它必须“赶上”区块链,因为我们只是制作了这个reorg异常,以防止实时意外的自私挖掘双重攻击。

对于Gavin Andresen关于这个解决方案的“半生不熟的想法”(他的话,不是我的):https//gist.github.com/gavinandresen/630d4a6c24ac6144482a

谢谢Gavin。

可以将数字设置得更低,但过多地降低数字会带来一些风险。如果存在太多块的有效链式分支,则网络将不会一起返回,并且将存在两个不同的Ravencoin链。这在55个区块中是不太可能的,并且在Ravencoin的短暂历史中没有发生过。22块重组是Ravencoin主网经历的最大重组,这是近期攻击的结果。随着更多的数据,并仔细评估其工作情况,可以降低最大重组默认值。数量较少的优点是能够减少安全接受RVN或Ravencoin托管资产所需的确认数量。

这是一个硬叉吗?

不,它不是共识规则的一部分,可以改变。但是,它可以导致区块链分叉,但只有当有55+块意外的自私采矿攻击时。使用新的默认最大重组深度的任何人都不会接受使55个或更多块无效的意外链。这是一个改进,因为Ravencoin节点不会接受意外的,自私的私人开采块。虽然原始软件将切换到更大的工作证明,但可能是一个欺骗性的自私开采的区块链。

此更改将包含在具有资产功能的软件(可能是2.1版)中,但会在安装后立即激活,而不是BIP9激活资产的一部分。

使用命令行设置的节点可以更改最大重组深度设置,但如果您知道自己在做什么,或者您的节点错误地停止与诚实的区块链同步,则建议您这样做。

建立Ravencoin的免疫系统

比特币被比作具有防弹免疫系统的下水道老鼠。如果您还没有看过Andreas谈论比特币经历的改编,您应该观看此视频:https//www.youtube.com/watch?v = 810aKcfM__Q(如果您的时间不够,跳至12:57这种攻击是Ravencoin需要免疫反应的病毒。该代码将使Ravencoin更强大,并且能够更好地安全地运送资产。

开放供讨论

此更改已完成代码。如果您了解这些问题,我们非常乐意您对此更改的好处和潜在缺陷提出反馈:https//github.com/RavenProject/Ravencoin/pull/295

附录

示例交易:

用双倍花费取代200,000 RVN

8143d279f8d6b84c1da62cc75c9ccbf822e6a102355df18ebab824d054f0d1da

在Ravencoin块探险家:

https://ravencoin.network/tx/8143d279f8d6b84c1da62cc75c9ccbf822e6a102355df18ebab824d054f0d1da

孤儿块:000000000001e961c1071198e5d7832384f211c1bc0c1f2c64d0bac45b2e828c

在10块自私采矿攻击结束时

孤儿块360036 00000000000281f0636942053bc55169c4e0fa125b187271559bba297b9fae22

差异:25643.80719237

更换块360036 0000000000019ff5c62bba554037d9e4442c5d0da6df1be043b0fa67947805fc

差异:26078.86234053

DGW难度差异:攻击者+ 1.7%

完成了几次多块替换,最长的是22块。

免责声明:本文转载自特隆布莱克,不代表呐喊推文立场,且不构成投资建议,请谨慎对待。

版权声明:作者保留权利,不代表呐喊推文立场。

(2)
RvnFans的头像RvnFans
上一篇 2018年9月17日
下一篇 2018年9月22日

相关推荐

  • Ravencoin 资产系统-资产创建

    BBT Carter通过Ravencoin资产层,基本钱包设置拍摄了一个过程,将钱包设置为使用CPU进行测试网络硬币并最终在testnet上创建资产。 此外,还有一些关于资产系统潜…

    技术知识 2018年9月13日
    3.3K1
  • RAVENCOIN白皮书 中文版

    渡鸦币:一种点对点进行资产创建和转移的电子系统 Bruce FentonTron Blackwww.ravencoin.org2018 年 4 月 3 日 英文原版 https:/…

    2018年8月20日
    3.0K0
  • Ravencoin漏洞-WTF发生了?

    发生了什么? 在Ravencoin的共识代码中发现了一个漏洞。可以想象,Ravencoin中有很多新代码可以处理消息,资产,标签,资产命名等。有一种特殊的代码可以接受或拒绝交易,称…

    2020年7月8日
    1.3K2
QQ交流群

① 热锅蚂蚁群:672485346

分享本页
返回顶部