1. 中国矿工公会首页
  2. 山寨动态

Ravencoin漏洞-WTF发生了?

图片发布

发生了什么?

Ravencoin的共识代码中发现了一个漏洞。可以想象,Ravencoin中有很多新代码可以处理消息,资产,标签,资产命名等。有一种特殊的代码可以接受或拒绝交易,称为共识代码,因为所有节点都应达成共识。 (或双方同意)。由于资产层的原因,Ravencoin中的复杂性要比比特币中的复杂得多。这是允许的管理规则。它是保镖和保安员。它分为两个级别。一级保护内存池。内存池是事务等待放入块的地方。不同的节点在其内存池中可能具有不同的内容。另一个级别是允许进入块的级别。这是双花的地方。但是对于Ravencoin,它还在此处检查以确保新创建的资产具有唯一名称,并在其中检查是否将500 RVN发送到特定的刻录地址以创建资产。有很多这样的规则。

对于此故事而言,重要的是要检查任何资产交易的规则,确保RVN输出为0。如最初所写,该规则适用于任何资产交易。引入了代码更改,该代码更改为使用非零RVN的资产创建提供了一条消息,并为使用非零RVN的资产转移提供了不同的错误,并且由于不存在重新发行资产的情况,因此允许使用RVN进行输出。看来这是故意引入的。

WindowsCryptoDev

我们有一个理由认为该漏洞不是错误,而是有意引入的。首先,创建WindowsCryptoDev的GitHub帐户仅用于提交此请求请求。是的,我能听到读者说:“那您为什么要让PR进入?”。有两个原因。首先,这些更改看起来是无害的,并且被伪装成自定义错误消息的格式更改。第二,我们一直要求更多的开发人员为该项目做出贡献。我们希望该项目分散进行,有很多想法和很多开发人员支持。很高兴看到有人加入。注意:我们确实有大量的开发人员支持,但大多数都在核心代码外部。

对于那些不是开发人员的人,发生的事情是,将关键检查从条件(if语句)外部移到了两个同时覆盖两种情况(新资产和转让资产)的if语句。问题在于存在三种情况(新资产,转让资产和重新发行资产)。没有检查重新发行的资产,因此可以在重新发行上创建RVN输出,并且共识代码可以让它通过。

那么这可能是一个没有经验的开发人员偶然的错误吗?当然,一切皆有可能,但有证据表明,精心策划的攻击是有可能的。在此PR后两天创建了一种资产,可以通过分析区块链和所涉及的地址将其链接到攻击者。直到5月9日,自动攻击才开始,并且似乎被设计为隐藏起来。

保持隐藏

由于多种原因,攻击活动一直处于隐藏状态。它旨在保持隐藏。它需要资产,然后重新发行资产。创建了许多具有不同名称的资产,并将其转移到周围。据我们所知,这样做只是为了掩盖资产的重新发行。如果您考虑一下,那么继续重新发行相同资产似乎很可疑,可能有人已经调查了原因。经过一堆转移后,将重新发行GLD_PRXY_4C9AE之类的资产,在该资产中,交易利用了该漏洞并铸造了多余的RVN。

资产重新发行和铸造新RVN的过程是完全自动化的。实际上,此操作的转移部分一直持续到今天。漏洞已停止两天。我们没有理由继续转让这些资产,但这种情况仍在继续。

发现

在为RVN构建资产感知浏览器时,正是CryptoScope的团队看到了RVN的输出。该资源管理器很棒,您可以在https://rvn.cryptoscope.io上进行尝试。CryptoScope已发布有关此漏洞及其发现方式公开帖子

他们向我们询问了这些产出,对他们来说,它们看起来像非法供应。他们是对的。这些RVN是漏洞利用的结果,该漏洞会重新发行资产,输入RVN为0,而输出RVN就是漏洞利用者想要的东西。

因为如果您访问以下链接,该漏洞就很明显:https ://rvn.cryptoscope.io/address/?address = Illegal%20Supply,我们要求CryptoScope删除链接到非法供应页面的链接。CryptoScope表示,他们可以暂时将其保留在未发布的域上,并暂停已发布的域。那帮了很多忙。一些开发人员担心他们会隐藏此内容,如果这是一项“内部工作”,这意味着我们,那么他们正在保护犯罪者。因此,我们允许他们就我们正在做的事情进行更多的内部对话,并让他们知道我们会让所有人知道他们的帮助。他们非常有帮助。我们也感谢他们为Ravencoin构建资产感知浏览器。

代码修复

这是我生命中最长的一周之一。在找到它之后,我们需要追踪如何。通过CryptoScope资源管理器显示的信息,无需花费太多时间就可以找出漏洞。该代码修补程序很快完成,但是我们无法将其发布到主存储库中,因为它会发现漏洞,并使各地的RVN持有人处​​于危险之中。

我们意识到,由于这是对规则的严格规定(不允许重新发行RVN,因此可以将其作为软分叉来完成)。这意味着仅需要挖掘的节点才需要更新。这是一组较小的节点。最后,有一些事情对我们不利。但是存在两个大风险。风险之一是链条分裂,其中不清楚网络是哪一个真正的Ravencoin区块链,而未打补丁的节点愿意接受具有被利用交易的链条。因此,我们需要占主导地位的散列能力。如何占主导地位?好吧,这取决于我们要确保自己不会产生不同的,同样灾难性的结果。51%不会削减它。60%怎么样?也许吧,但是如果看起来精明的攻击者决定进行一次“尼斯哈希”战斗,并让非固定代码继续发挥作用,

我们选择了70%,这比我们通常使用的要少得多,因为其他30%最终会变成孤立的块,但是在这些紧急情况下,这并不是主要问题。实际上,看到孤立的块是我们希望将未知的采矿池快速转换为新代码的目的。

不向攻击者发出信号

我们知道,一旦攻击者看到代码更改或企图杀死他们的金鹅,就有可能使Ravencoin网络面临更大的风险。

我们为公共开源代码创建诱饵更改。这是一个很小的更改,它修复了与消息传递功能相关的rpc调用之一的JSON编码。我们将其放入master并更新了公共诱饵和私有repo漏洞修复程序的版本号。现在,我知道你们中有些人可能会说:“但是,如果邪恶的团队想溜走恶意代码,那就是邪恶的团队。” 是的,我们明白了。发给矿工的消息让他们知道了更新,并提议为他们提供从源头构建的私有仓库。诱饵就是这样,如果攻击者正在监视更新,他们将看到rpc呼叫有很小的变化,而不会认为自己的金鹅正在节流。

在本周初的这一点上,我们认为我们可以悄悄地让采矿池更新,并在以后告知所有人已修复的漏洞。我们错了。

部署中

Ravencoin非常分散,因此不可能仅将固定代码“推送”到采矿池。我们可以要求更新采矿池,但是已知池会开采48%到57%的采矿池。另一个是未知的,这意味着我们根本无法在没有公开披露的情况下与他们联系。是的,我们可以在采矿聊天室等中进行有限的公开曝光,但这看起来像我们在隐藏一个漏洞,并且在可以传播的加密社区中,因为尽管有良好的意图,但它看起来是邪恶的。

我们决定要更新采矿池并确保Ravencoin的安全,我们需要对此问题公开。

我们还感到不得不在公告之前通知交易所,并建议他们关闭存款,并酌情决定甚至暂停交易和提款。我们不想完全停止市场。收到坏消息后就不能卖出,这似乎是不对的,对于那些具有高风险承受能力并想购买坏消息的人来说,阻止它们也不是正确的选择。那么为什么要停止存款呢?因为作案者创建非凡数量的RVN的可能性不为零,所以RVN社区别无选择,只能重新启动和回滚发行,这将损害接收该RVN的交易所。

我们向已知的所有采矿池发送了单独的消息。他们中的大多数人都非常了解我们,但是我们为他们提供了从源代码构建的选项,这意味着将修复漏洞的代码发送给他们,以便他们可以自己构建它并查看正在引入的任何代码更改。这需要相互信任。此处的激励措施已得到适当调整,因为只有在被开采的硬币具有价值的情况下,采矿池才会受益,因此没有任何损害网络的激励措施。

采矿池更新的时间具有挑战性,因为它们遍布世界各地,因此发出的消息可能再过十四个小时才能看到。对于某些人来说,我们是通过他们的支持电子邮件进行通信,而不是直接与可以采取快速行动的人通信。

在用新代码挖掘了70%的块后,BIP9激活了新代码。但不仅有70%的街区。实际上是2016年区块的1411个。其中一些代码是从比特币继承的,比特币的2016年区块周期为两周。Ravencoin的运行速度更快,因此它是2016年的区块,每分钟只有一个区块,仅为1.4天。通常,在锁定激活后,它还会等待另一个2016年块。这给其他矿工(少数派)留出了时间,让他们加入多数派或被甩在后面。在这种情况下,由于问题的紧急性质,我们选择覆盖该额外的等待时间。

起跑枪

我们已经为此工作了好几天,试图思考其他处理方法。我们可以在肇事者不知情的情况下将其滑入采矿池吗?我们能否说服足够的哈希能力来更新?还有其他方法可以与未知池进行通信,而不会出现偷偷摸摸的情况,或更糟的情况是不会使攻击者丧生。

由于担心这些问题,我在星期二和星期三睡得很少,到星期四,我的大脑已经闷闷不乐了。我写下了要发送给交易所的消息,然后是发给矿池的消息,最后是给其他所有人的消息。我们知道,一旦将任何东西发送到交易所或矿池,起始手枪便会被开火,这一切都需要很快发生。新闻将传播开来,肇事者将意识到他的金鹅被杀死了。有人问我是否准备好出发了,但我没有。我当时正在喝第三杯咖啡,但大脑却运转不佳-嗡嗡作响。我们讨论了推迟到星期一举行,但考虑得更好。如果我可以休息几个小时,我就准备好了。我小睡了一会儿,午饭后,在星期四,我们整理了一份清单,列出谁来做。我们请求了一些最受信任的Ravencoin社区成员的帮助,并且我们开始从采矿池开始向全世界通报,并迅速转向交易所。我们知道并非所有交易所都会立即收到消息并暂停存款,但是我们认为有必要在告知其他人之前通知他们,这将使肇事者受到关注。

指定一个人监视过多的发行,或者说在2个小时的周期中进行任何更改,以创建500,000 RVN,自动将其拆分为几部分,然后将其发送到交易所以进行出售。

我们使用共享的Google电子表格来标记我们联系或发送消息的每次交换。当我们通过电子邮件,Discord,Telegram,支持网站等发送消息时,我们都在Zoom中链接在一起,以评论如果仅绑定了基于加密的消息传递系统将有多大的潜力一个令牌,当然是关于Ravencoin内置的消息传递系统的。

一旦通知了大多数交易所,就该让所有人知道Ravencoin存在问题,并向所有人发送消息了。现在,我知道有人争辩说,除了原始比特币外,其他所有东西都是狗屎币并且是集中式的。但这不是真的。Ravencoin Discord组有多个,但没有一个由任何开发人员拥有,运营或管理。一些开发人员在那里增加了帐户。我们从在我的Medium帐户上发布开始,在那里我写了很多有关Ravencoin和其他与加密相关的主题的文章,然后在我的个人@tronblack上发布了帐户。从那里被Ravencoin社区捡起,这个词很快传播开来。我还能够发布到博客上,然后将其发布在社区运行的各种Telegram和Discord频道上。该ravencoin.org网站有一个邮件列表,我们送出去给那些订户。

种族

现在是确保网络安全和稳定的竞赛。我们选择了一个很好的开始时间。偶然地,2016年区块周期才刚刚开始。我们花了一段时间才看到新代码挖掘的第一个块。有一个不同的版本,因此BIP9代码可以区分由易受攻击的代码开采的块和由固定代码开采的块。我们还让固定代码拒绝不良交易,甚至在它们进入内存池之前。事实证明,这对我们有所帮助。

知道您已经拥护并投入精力的这个惊人的网络很容易受到攻击,这是一种非常无助的感觉,并且您只能待在旁观,观察网络变得越来越安全,而破坏者正在逐步摧毁它。我们知道,如果网络每两个小时保持在500,000 RVN,则网络可以吸收几天的超额发行量,但是我们也知道,它不能承受大规模的通货膨胀事件。我们不知道发行什么规模是无法生存的,但是当我们看到它时就会知道。

每隔两个小时,就会看到另外一次发行,但仍为50万张。我们看着它分成不同的大小,然后发送到我们认为在Binance的某个地址。今天是星期四晚上。我们明天明天正式在7月4日放假,但我知道我必须保持警惕,直到解决了这个问题,否则我们将继续执行B计划。我无能为力,所以我查看了Twitter,发现不堪重负多年来,由于这个项目,我结识了许多如此了不起的人。

我决定试着入睡,并设置一个每两个小时响起一次的闹钟,以便我可以检查发布情况,并对其进行设置,这样我就可以收到来自团队的轻松消息。睡眠不起作用,所以我起床监视网络,看来自上次发行以来已经快四个小时了。凌晨3:18,我放松了团队,让他们知道没有发出通知,已经过去了240个街区(价值4个小时),我们希望大约每两个小时就过去一次。它停止了吗?我一直在等待下一笔交易,但交易没有来。现在,我充满了肾上腺素的想法,认为犯罪者知道网络已经修复,我正在等待大规模的通货膨胀事件。

我在笔记本电脑上安装了新的raven-qt,以便可以监视BIP9激活的进度。到上午8点,我们的赔率为613,为385,大约占62%,但它正在攀升。我们需要1411个2016区块。看起来有可能在一个周期内执行此操作。那是最好的情况,到了这个时候,自动脚本不再发行,也没有大规模的通货膨胀事件。这可能有效。我开始认为提及执法可能会吓倒肇事者。也许他以为自己已经放弃了该脚本,已经停止了脚本,并且正在运行。从那时起,我们了解到交易是由更新的软件创建,提交和拒绝的,并且没有进入未打补丁的采矿池进入一个区块。该脚本仍在运行并提交,

我休息了一会儿,但是睡眠并不轻松,因为我的思想还在加速。我考虑我可能做的事。我起床并发布推文,告诉您如何通过挖掘已更新的池来帮助Ravencoin。从未打补丁的矿池切换到打补丁的矿池的任何哈希能力,在将百分比提高的过程中都占了两倍。我不想在泳池中打出最爱,也不想说服任何人离开更新的泳池,所以我要求所有更新的泳池列出自己。

大约二十分钟后,我发现正在发布有关资产发行的Twitter帖子。我考虑我们已经发布的内容,并意识到可以通过几个线程来找出漏洞。太好了,现在我担心会有更多的攻击者。我不太担心有人会仔细研究代码并找到它。如果我们没有抓住它,其他人不太可能会偶然发现它。但是,如果他们让CryptoSpace资源管理器显示非法发行,那么在哪里可以看到,因为它显示了额外的输出,并且所有交易都是资产的重新发行。我在思想上踢自己,让CryptoSpace URL保留在向所有人公开的消息中。

我看到一些Twitter帖子问我代码在哪里导致了漏洞。我不理them他们。一旦网络安全,我很高兴向大家展示甚至解释一切,但是之前没有。

到周五中午,我们已经达到66.9%,并且还在上升。这意味着我们必须至少拥有一个未知池,否则矿工已经将其钻机转移到了已知的良好池中。看起来很可能我们会在一个2016年区块周期内实现这一目标。

在2:30,我们几乎达到了70%,我变得更加自信,我们将在这个周期内实现这一目标。现在,周期何时结束?我做数学,这很容易。只需取走周期中剩余的数据块,由于每个数据块都是大约一分钟,因此我估计网络将在上午5:10左右安全。我会检查是否有新的发行,因此没有,因此,如果成立,则会增加297,000,002.63128620 RVN。我估计它会得到修复,没有大量发行,或者没有更改作案者的自动脚本,大约为3.15亿,所以这令人鼓舞。

我吃了一些午餐,我们取消了Zoom会议,因为除了闲暇之余,没有什么可以讨论的了,只能等待。

我在CoinDesk上看到Nathan发出的LinkedIn请求。他在询问联系执法部门的原因。他要回答的问题的要点是,施暴者是否在从事违法行为。公平的问题,但当时我不准备讨论。在这一点上,在我看来,犯罪者很害怕并且已经停止了脚本。我幻想着他(或她)在拐角处畏缩,害怕触摸计算机,以免留下更多的数字足迹,等待敲门。现在看来,他(或她)可能已经忘记了他的脚本正在运行。

我看着Twitter,再一次让支持社区和许多人的美好愿望感到惊讶。然后,我看到Tone Vays和Jimmy Song的YouTube视频链接。我喜欢这两个家伙,但他们都是著名的比特币极简主义者,当将比特币与“ shitcoins”(以当地语言)进行比较时,他们一见倾心。我还是看 是的,正如我所期望的那样,解释了为什么比特币永远不会发生这种情况,因为yada,yada,yada。Vays和Song完全忽略了2018年8月比特币已经发生过同样的事情,但该漏洞在被利用之前就已被发现。但是,比特币长期以来一直处于脆弱状态。实际上,由于该漏洞至少自2017年10月以来就存在于比特币中,因此Ravencoin开发人员必须在该漏洞公开披露后在Ravencoin项目中进行相同的修复。我认为这将是有益的,因此我将我们的处理方式与比特币核心开发人员的处理方式进行了比较,并在下面进行了介绍。有很多相似之处,也有一些有趣的区别。

我再次检查了CryptoScope Explorer,首先,由于有新的发行,它似乎已经开始备份自动脚本。但这是不同的。一百万RVN,而不是50万。我认为起初他会加大发行量以弥补损失的时间,但这没有任何意义,因为交易数量或RVN的数量实际上没有限制。我看一下重新发行的资产。这不一样。重新发行的资产是两年前的资产。我可以追溯到其他攻击者的最早资产是2020年1月17日。这是一名新攻击者。在星期五晚上11:19,我跳上Slack并通知团队。但是还有另一个区别,RVN仍然在输出地址中。他们尚未转移到交易所。也许这只是一个实验。也,我希望两年前参与RVN的人可能对该项目很友好。我认为也许他们会“回馈” RVN。

星期六早上2:04,我收到关于Slack的消息。“还有另一个。” 我检查了CryptoScope,并确定还有另外一百万。那是两百万。好的,他们回馈的可能性较小。我很累,但是现在我想可能会进行勒索尝试,例如“给我X或我创建数十亿RVN”。我检查了来自Discord,Telegram,Twitter,几封电子邮件和Signal的私人消息。没什么好注意的。

我等待更多的超额发行,然后发现Discord中我们非常信任的社区成员之一已经在研究新交易。他们已经弄清楚了6969资产与名为OVERSTOCK.COM的资产之间的关联,该资产在几年前发行后曾有人试图出售给Overstock。最后,我将它与我们使用Ravencoin平台上的第一个RVN-for-asset原子交换获得的OVERSTOCK资产混淆了。但是,我们确实找到了该新犯罪者的姓名和联系信息。

现在是凌晨四点,我再次进行数学运算,看来在网络安全之前它将接近7:15。我在Slack中发布信息,但没有调出名称或@channel,因此不会唤醒任何人。

凌晨5:20,我们到达了2016年的1411个区块,因此肯定会激活此修复程序,但要等到2016年的区块消失之后才能启动。再过两个小时。两名潜在的攻击者活跃于知识和技术砍伐中,以摧毁RVN。

在6:06,我发现了另一笔交易。我的心沉没了。我看金额。RVN增加了280万。可以生存,但是请等待重新发行链接到另一个令牌-最近创建的XODUS。哦,不,XODUS(出埃及记?)听起来像一条消息。这个人是否正在发送消息,并打算通过大规模的通货膨胀事件来破坏该项目。而且,现在有第三位攻击者。

刚过去一个多小时。我正在刷新CryptoScope页面,以查看是否有新发行,并希望它们足够低,以使项目可以继续运行而无需重启,这涉及到一系列全新的挑战。我在想,如果不是2020年,可能会有机会,但是今年的发展方向,我不喜欢我们的赔率。

我正在观察每个区块,通过重新计算良好区块的百分比来打发时间,并刷新超额发行交易的列表。7:15来来去去。为什么块比一分钟慢?看过的锅永远不会添加新的方块吗?好的,我在混合隐喻,但是可以说这是一个很长的时间。

上午7:26:27,完成2016年区块周期所需的最后一个区块。我检查了CryptoScope,没有更多的利用交易。网络是安全的,但我还是看它。我想确保仍在添加块,并且已测试过但从未在testnet上激活过的代码按预期运行。

来自一名开发人员的消息通过Slack传入。“ Ravencoin现在已被锁定,无法再利用”。我们对此表示赞赏。

我检查了BIP9激活的状态,它说是“已锁定”,但没有“激活”,通常是激活功能。我很担心。如果未激活怎么办?如果它在其他2016年区块中很脆弱怎么办?我认为我不会幸免于难。如果白发已经变白了,那么在高压力下白发会变成什么样的颜色?我检查代码及其编写方式,状态为锁定状态,但是当询问是否已激活时,它将变为锁定状态或已激活状态变为已激活。我呼吸容易一些。

结束了。网络是安全的。

我担心马上要公开地说出来。如果不是,那该怎么办?我还没睡过,也没想清楚。我让团队知道我们将在一个小时左右的时间内观察网络,然后给出清晰的信息。我问是否有人知道Ravencoin分叉,并通知RVC存在漏洞。然后在1月15日之前意识到它是分叉的。我去睡觉。

上午11:36,我在推特上发布了该代码修复程序,并提供了有关超额发行范围的一些常规信息。我看到大量支持,然后我知道Ravencoin将生存并变得更加强大。

我开始撰写Ravencoin — Emergency Ended,这是48个小时前的Ravencoin — Emergency Update中篇文章的书尾中篇文章。我在下午4:08发出推文,睡了两个小时,然后和我的家人一起度过7月4日剩下的时间。

风险

有很多风险。正如我们所知,最大的风险是,犯罪者将通过创建210亿个RVN,并将其发送到各种交易所并将其混合到Ravencoin生态系统中,炸毁Ravencoin。这是最坏的情况。这将需要全面披露发生的情况,并重新启动Ravencoin作为Ravencoin-Phoenix,在此之前,区块链在大规模利用之前在区块重新启动。在这种情况下,交易所会受到伤害,因为交易发生在大规模通货膨胀事件发生与停止一切交易之间,即交易所正在交易并允许撤消DOGE,DASH或BTC。当大规模的RVN通货膨胀交易消失时,那些RVN及其下游交易也消失。

这是一个生存危机。我们知道这可能是结局,剩下的就是为了资产而修复并重新启动。使区块链如此强大的原因之一是,每个人都拥有分类账的副本,并且从发生到失败的每笔交易都可以在任何灾难性事件发生时随处使用。重新启动后,由于将区块与哈希链接在一起的性质,分类帐如果被篡改,则无法使用。区块链实际上是防篡改的,因为从创始到每个人都知道并验证的检查点可以检测到任何篡改。计划B是重新启动,但是除了请求交易所暂停存款以保护自己之外,我们没有在此上花费太多时间,因此我们一直在观察大规模的发行事件以启动全面止损。

另一个风险是链条分裂,这使我们将百分比提高,从而触发了更新的共识规则。我们选择了70%,这远远低于我们用于其他升级的90%和85%。BIP9的工作方式是,一旦有足够的矿工运行升级后的代码,它将激活。这对于升级非常有用,因为它允许选择,而不是强制升级,并且如果没有足够高的支持,那么升级将无法进行。当然,我们通常会建议您进行任何升级,否则,我们将不会花费时间来构建和测试它,但是我们无能为力。它是自愿运行代码和共识规则的矿池。在这种情况下,我们做了两件事。我们将阈值降低到70%。低于70%,我们冒着链条分裂的风险,也许要与资金雄厚的对手进行采矿斗争。

非法?

提出了有效的批评。为什么要联系执法部门?规则不是仅由代码执行吗?这是一个有效的问题,我会给您我的想法,而且我敢肯定,即使是与我合作的人也可能会不同意。该漏洞的利用者可能没有违反任何法律。在我看来,这相当于走进一家快餐店,带着所有餐巾纸,所有的番茄酱,所有的调味品,所有的吸管,所有的杯子和盖子,以及所有的塑料叉子和勺子出去逛逛。它们是免费的,并且没有每个客户的法律。它违反了所有社会规范,似乎是不道德的,并且显然超出了餐厅提供这些物品的意图。那么,如果有人每天这样做,会发生什么?你会怎么做?

如果有人将胶带贴在门闩上然后又做了同样的事情,但他们也从柜台后面拿走了所有东西,该怎么办?他们无视侵入法律,创造了条件,超出了餐厅免费物品的意图。

可能没有针对此类漏洞利用的联邦法律,而且我不建议这样做。必须分配资源,还有其他鱼可以炒,如卖意大利面配肉丸和酱料的鱼,而无需显着宣称酱料的存在

让我们看看为什么在向所有人发送有关该漏洞的消息中留下了“执法”。以及为什么我认为即使执法机构告诉我们砸沙子也应该在信息中出现。顺便说一下,我们联系的特定执法机构非常专业,拥有加密和网络印章,很感兴趣,并且正在学习很多有关开源项目的知识。但是暂时忽略这一点,从博弈论的角度来看,对肇事者施加一定压力是可行的。如果没有被发现和捕获的威胁,那么过度发行可能会造成更多损失。请记住,我们是从接近零的对手知识开始工作的。

公开消息中没有什么?

我们选择省略有关漏洞利用的详细信息。我们没有透露这与重新发行有关。我们没有指出允许该漏洞的公共仓库中的区域。根据他们的要求,我们没有透露正在与之交谈的执法机构。我们还选择了RVN的确切数字,但给出了一个大致数字,事实证明,该数字有些过高。我们不知道脚本是否或何时停止创建多余的RVN,因为无法知道攻击何时停止或停止。

修复后

网络稳定后,我写了一篇快速中级文章《 Ravencoin-Emergency Ended》,让交易所知道恢复交易。

我们已将临时私人回购公开。

https://github.com/RavenProject/Ravencoin-critical-fix

我们正在将提交内容移至公共仓库,并在代码与二进制文件匹配的地方构建二进制文件。

我也开始记下关于上周事件的想法。这些想法都包含在此更新中。

为什么要求交易所暂停?

最大的风险之一是大规模的项目结束,通货膨胀事件。在此漏洞期间,许多精通区块链的人可能已经弄清楚该漏洞并恶意创建了所有RVN。正如我在公开披露中所暗示的那样,这将需要一站式服务,并在X-1区块重新启动RVN,其中X是包含大规模通胀事件的区块。通过开放交易所,可以出售和交易那些RVN,重新启动将伤害交易所或孤立RVN的最后持有者。通过要求交易所至少停止存款,它减少了这种潜在的影响。

我们讨论了要求交易所也暂停交易和提款的问题,但锁定市场似乎是错误的。感觉就像NMS市场上的断路器一样,我认为那是一个错误。不允许人们就当下的动荡事件进行交易,就是要夺走很多交易内容,那就是价格发现。一个全天候的24×7全天候市场使每个人都可以发现当前以及在这些潜在不利条件下的供需交叉点。

我们可能会做些不同的事情

我并不是说知道最终结果会做些什么。那是20/20的事后洞察力,或者是星期一早上的四分卫。我说的是,如果我们花更多的时间分析情况,我们可能会做得更好。

一件事是发布更少的面包屑,从而导致该漏洞的根本原因。当我们(暂时)将修补程序移至私有存储库时,我们没有讨论漏洞的原因,但确实提供了可以显示该漏洞的浏览器链接,并提到漏洞创建代码是由社区提交的会员。这些都是面包屑,可能有助于为另外两个攻击者发布更多RVN指明方向。

我们可能使用了BIP9以外的其他方式进行激活,这将允许在达到70%时立即进行激活,而不是等待2016年区块周期的完成。使用BIP9的优点是它曾经被使用过,因此代码是已知的并经过测试。同样,任何块百分比测试都需要计算一定数量的块。

去中心化?

Ravencoin是分散的吗?答案是肯定的。这是我们如何解决此漏洞的因素。如果我们能像2018年9月的比特币核心开发人员那样让矿工知道,那么在让世界知道之前,这可能已经完全解决了。

我们无法与两个大小合适的未知池或几个较小的未知池进行通信的事实使我们几乎零概率获得了安全数量的运行良好代码的挖掘哈希。由于缺乏联系这些未知矿池的能力,而持续的攻击仍在继续,因此通过静静地联系矿池,消除了最有效的更新方法之一。

通货膨胀

这种被利用的脆弱性的本质是通货膨胀。RVN和Ravencoin资产无法被窃取或转移,但是新的RVN可以在每区块币基交易预期的5000笔交易之外铸造。

通过该漏洞,额外301,804,400.51605642被铸造超越常规RVN coinbase。从那时起,最后一个漏洞利用者燃烧了他们的2803988.94326435,第二个漏洞利用者恰好燃烧了1098000 RVN

这样总共剩下297,902,411.57279207 RVN作为额外发行。

那么如何处理呢?我们或Ravencoin社区提出了以下三个选项。

  1. 随它去吧。最终将存在21,297,902,411.57279207,而不是接近210亿。

加密货币的供应是神圣不可侵犯的。这不是@#$%!美国联邦储备。

我的偏好是使供应回到预期的供应。我的偏好是选项2,但我愿意接受其他建议。如果剩下的两个仍未归还的作案者又有更多的RVN被烧毁,我们可以相应地调整这些数字。

这些讨论可以立即开始。由社区决定,我们可以为BIP9的采用编写解决方案。这确实影响了矿工,因为它与采矿奖励有关,因此通过对采用该更改的矿区进行计数来启用矿工似乎非常合适。如果未进行任何更改,则选项1为默认选项。

经济学

正如您所期望的那样,随着过量发行被出售到加密货币市场,它影响了价格。似乎多余的RVN已发送到交换机。我们假设它被换成了别的东西,也许是DOGE或BTC。

如您所料,RVN的价格开始回升(2020-07-07)。考虑到漏洞的性质和风险,在整个紧急情况下,价格保持出乎意料的稳定。我将其归因于Ravencoin社区,他们认识到该项目的价值并能够克服暂时的供应中断。

我确信在紧急情况下没有任何核心开发人员出售。

比较比特币和Ravencoin方法

触发警告: 如果您是比特币的最高主义者,请出于自己的理智而跳过此部分。我在看着你。😉

我将比较采用的方法与两个不同的比特币漏洞,它们与挑战我们的漏洞的类型相同。

2010年– 184亿多BTC通胀 -软叉解决方案。这被利用了,但是在比特币的增长周期还很早,可以很容易地加以补救。联系了有限的矿工,并在矿工或矿池级别应用了修复程序。我之所以只提出这一点,是因为如果不加以固定,发行规模将破坏比特币经济。这样做是作为一个安静的修复程序。

2018年(8月)-比特币通货膨胀漏洞-像软叉一样潜入矿工手中。通过掩盖实际修复程序的本质并仅讨论DDOS修复程序来完成此临时修复程序。由于挖掘的分散性,我们无法采用此方法,因为未知池收集了约44%的挖掘哈希功率,并且知道威胁参与者会看到此更新。从2016年11月1日2018年9月17 似乎存在比特币漏洞。值得庆幸的是,因为我真的很喜欢比特币并持有一些,所以友好的开发人员在比特币漏洞被利用之前就抓住了它。那么,如何在大多数人不知道的情况下解决此问题?类似于我们的方法,通过保持真实的修复程序秘密并将此比特币漏洞修复为低端漏洞,并以主要针对DDOS漏洞的修复为幌子,静静联系足够多的矿池以运行它。Ravencoin团队采取了不将修补程序发布到公共GitHub的方法,这将揭示该漏洞的详细信息。为了获得大部分挖掘哈希能力,它必须公开声明并公开,以将关键更新通知未知的挖掘池哈希能力。与比特币一样,由每个单独的矿池决定是否更新,由每个单独的矿工决定是否更新,

悄悄部署BTC漏洞修复程序之后,该信息便公开了。在部署到足够的挖掘节点之前,它一直处于秘密状态。一些山寨币开发者,包括Ravencoin的开发者,在他们自己的代币的源代码中迅速修复了相同的,现在公开的漏洞。大约有14种其他的alt-硬币做得不够快,并且被夸大了。这些硬币中的一些在爆炸前的地块上重新发射,并能在今天生存,而有些则被损坏得无法复原。这是确定BTC的团队负责任的做法吗?我对此有不同的感觉,因为在BTC修复后,但在漏洞信息广泛发布之前,我本想进行一次单挑。这就提出了一个问题,即加密空间中的开发人员应该对其他项目表现出什么责任或礼貌。比特币最大化主义者对加密空间和其他项目的价值持有非常狭窄的看法。

Tone Vays和Jimmy Song播放了一个视频,知道了现在的知识后,您就可以自己判断了。https://www.youtube.com/watch?v=VdmnXQB33_c

结论

我们试图找出如何减轻最坏情况的影响,同时进行代码更改和公开以快速解决问题。最终结果很好,但是不能保证取得成功。我对它的效果和效果感到满意。我也对Ravencoin社区的绝大多数积极响应感到敬畏。仅仅因为加密空间的运作方式和激烈辩论的好处,我期望对我们的方法提出批评。这不是完美的,但结局不错。

常问问题

是否应该更多地关注代码?

是。这是一个开源项目。除两次(针对紧急修复程序)外,该代码是公开的,并且在变为母版之前以及在构建为可下载的二进制文件之前都是公开的。任何人都可以查看代码,但很少有人可以查看。大多数开源项目都是如此。关于社区资助第三方审核的说法,我会支持。

正在采取什么措施来防止这种情况再次发生?

对共识代码的额外审查是显而易见的低挂果。插入了此漏洞,但是可能存在其他漏洞,或者由于编码错误而意外引入了其他漏洞。我认为编码错误更常见,因此将更多注意力放在常规提交上是另一种变化。我们也在制定一项计划,以更好地审查未知的贡献者。

发布人:RvnFans;如若转载,请注明出处:https://www.nahan.org/5122.html

免责声明:本文不构成投资建议,请谨慎对待。

发表评论

登录后才能评论
公会群

矿工公会群:672485346

新人交流群:719226412

硬件信息群:885853725

分享本页
返回顶部