Cosmos 新激励测试网 GoZ (Game of Zones)即将到来,我们回顾一下去年激励测试网 GoS (Game of Stakes)关于治理垄断的讨论。

原文标题:《Cosmos 往事:激励测试网、节点攻防及「卡特尔」之辩》
撰文:Jun Soo (JK) Kim

Cosmos 新的激励测试网 GoZ (Game of Zones)即将到来,而一年前参与 Cosmos GoS (Game of Stakes)大赛的往事还历历在目。GoS 激励测试网堪称首开先河,无论是其对抗竞赛的形式,还是社区的参与度,都为后来的众多主网上线提供了许多借鉴与启发,几乎成为主网发布前的「规定动作」。

不仅如此,GoS 节点之间不同形式的「对抗竞赛」也充满故事。stakefish 想要分享此前在 GoS 第 5 阶段开始前,也就是那次激励测试网即将接近尾声的时候,回应后来与 stakefish 同为胜出团队的 Certus One 发布的一篇文章,供大家了解一段 Cosmos 往事,感受验证节点的建设热情,也在曾经的那些关于对抗的经历中获取治理的反思与启发。

时间过的真快,当时的 stakefish 以 bitfish 的名义运行包含测试节点在内的两个节点,而如今已经成长为运行 20 多个节点的 Staking 服务运营商。让我们通过回顾这篇一年前发布的「bitfish 对 GoS 第五阶段的官方回应( bitfish’s Official Response To GoS 5)」,闪回到主网上线前的 Cosmos 世界。


Cosmos 激励测试网治理往事:节点攻防与「卡特尔」之辩

大家好,我们是 bitfish,alliance.fish 的组织者,也是 GoS 大赛的节点运营者。我们志在加速区块链技术的主流应用步伐。Cosmos 正在探索解决这个过程中的扩展性、互操作性等主要问题以实现主流应用目标,我们也因此一直在积极的为网络做着贡献。我们现在想要给社区、验证节点伙伴、Interchain 基金会,以及 Cosmos 团队一个适当的回应,澄清 Certus One 和 Joe 关于我们参与 GoS 的一篇深入的文章中提到的问题。

Certus One 和 Joe 的博客文章

文章的质量很高!我们非常高兴看到 Certus One 和 Joe 撰写了关于我们节点运行的高质量的文章。尽管这暴露了我们位置,但是对于整个 Cosmos 网络的健康发展是有益的,也让我们看到了未来网络发展的前景,我们可以期望在主网上线之后也能有对于节点类似级别的细查,确保目标的成功实现。

Cosmos 激励测试网治理往事:节点攻防与「卡特尔」之辩Certus One 和 Joe 的博客文章关于发现「卡特尔(Cartel)」的分析注:卡特尔(Cartel)原指的一种以联盟形式的垄断,在 pBFT 网络中指的是控制 1/3 以上或 2/3 以上节点的情况

作为 Cosmos 生态的参与者,我们希望也能通过这篇回应,为网络发展贡献一些见解。了解更多的信息是关键点,我们将在回应中尽可能提供更多细节,以期为所有节点实现一个更加公平良好的竞争环境。

为 GoS 整装待发

bitfish 在区块链生态的根基发源于矿池,并计划通过 Staking pool 和 Staking 服务,为 PoS 领域作出在 PoW 领域类似的贡献。沿着这个思路,我们想要实验一下如何运行多个节点。我们十分关注 GoS 发布的规则和参与方式,运行多个节点是 GoS 规则所允许的(后文中我们将详细解释)。

于是我们开始向家人和好友寻求帮助,鼓励他们来进行注册。我们希望能够尽量的模拟出符合要求的 Staking 服务,因此也不会用虚假的身份证件来干扰正常的 KYC 流程。当我们的节点快要超过整个数量的 33% 时我们就停止了注册。而且由于我们想要参与 Cosmos 各个方面的压力测试,也并没有想要直接控制 33% 的网络权力。

GoS 最初有 253 份申请通过了批准,我们占其中的 28%。我们的基础设施团队在节假日不间断的工作,确保能够让 70 多个验证节点以及更多的哨兵节点、中继节点和监控服务器(共计数百台机器)正常运行。

开启 alliance.fish

受到 steak.zone 的创意启发,我们当时也想邀请更多的验证节点加入,相信分享与合作可以让我们的知识和经验倍增,于是 alliance.fish 诞生了。设计团队在一天内拿出了一个超棒的作品,甚至还在 alliance.fish 页面里加入了一个复活节彩蛋。

Cosmos 激励测试网治理往事:节点攻防与「卡特尔」之辩

我们在首尔举办的见面会上宣传 alliance.fish 我们邀请到一个著名的验证节点加入这个联盟中,得知他们还引领着另一组验证节点,这相当激动人心。但是不久之后,我们惊讶的发现那个验证节点正在把关于我们的信息泄露给另一个联盟,而那个联盟的成员是 Cosmos 验证节点和 GoS 聊天室中排名居前且频繁发声的验证节点。这着实让我们感到热血沸腾,对抗已经开始,我们需要准备好各种防御工事,甚至要做防御链下社会工程攻击的准备。

从 GoS 开始到第 3 阶段

GoS 开始前我们已经做足了准备工作,以 28% 的占比加入网络,并为守护好我们的网络份额制定了目标。

我们的开发团队持续提升 GoS 的节点性能,加速了我们积累网络奖励的速度,还避免了节点遭受被惩罚情况的发生,这也增加了我们的网络权力占比。令我们惊讶的是,我们远远超过了最初的目标,在 GoS 第 3 阶段上获得了超过 55% 的网络权力。

这增强了我们对攻击防御能力和管理节点能力的信心,随之进一步测试自己的能力并尝试一些小型攻击。我们使用运营的其中一个节点对其他节点进行了一次成功的、持续的「审查攻击」,并在一段时间里没有被发现。我们没有大规模部署这样的攻击,因为我们并不想破坏整个网络。

当我们探索进一步试验和压力测试的时候,Certus One 也发布了他们的博客文章,辨别出并建议通过分叉以移除我们的节点。Joe 的博客中也用另一种方法验证了 Certus One 的发现。随后多个节点开始在 Github 和 GoS 的 Roit 频道上支持这个分叉提议。唉,我们在网络上的试验和压力测试看似要到此为止了。

我们的收获

在过去的一个月我们学到了很多,参加 GoS 是一次成功的经历。当其他验证节点开始通过 Riot 频道向我们寻求设备配置和节点设置方面的帮助时,我们就更加确信走对了这条路。我们给了他们相当多的帮助,相信这能够促进 Cosmos 生态整体健康发展。既然我们已经公开了身份,就会适时的主动介绍自己。

通过一些硬核数据也让我们觉得所做的努力是值得的。

从 Certus One 关于的总代币数的图表中来看,在排名前 20 的节点中,我们运行的有 11 个。我们运行的所有 70 余个节点都排在前 80 名。

Cosmos 激励测试网治理往事:节点攻防与「卡特尔」之辩图中红色部分代表我们运行的节点

基于 Hubble (Figment Networks 开发的工具)关于 pre-commits 的数据,总数前 10 名中我们的节点有 9 个。只有 Certus One 超过了我们节点的数据。类似的,我们的全部 70 余个节点几乎都排在总 pre-commit 数量的前 80 名。

Cosmos 激励测试网治理往事:节点攻防与「卡特尔」之辩pre-commit 数量上 Certus One 的后面有我们 70 多个节点 :) 注:pre-commit 是指验证节点对区块提交签署的投票,数量越多代表节点的表现越稳定

我们的见解

相信上文已经给大家描绘了我们参与 GoS 的一个清晰轮廓。现在,我们想要在此分享一些观点和见解。

Certus One 将我们节点排除在外的理由并不合理

GoS 5 唯一有一些价值的主张是声称我们违反了注册规则,但是我们强烈反对这项指控。

我们让朋友和家人帮忙进行注册流程,是向真实的人寻求的帮助。我们想要在 GoS 的进展中促进 Staking pool 和节点服务的发展,这在 Interchain 基金会的规则中并未禁止。规则中唯一一个需要我们密切关注的部分如下:

Cosmos 激励测试网治理往事:节点攻防与「卡特尔」之辩从如下链接的截图:https://github.com/cosmos/game-of-stakes/blob/master/RULES.md#disqualification

Certus One 博客文章中对于以上这整段注册规则只字未提。我们在这里特地提示这句话「如果你仅仅是简单的为朋友注册账号,然后委托或者转移所有代币到一个或者一小部分节点上,那么所有相关参与者将会被取消资格。」而我们运行的所有节点从未相互转移过任何代币。

我们也曾注意到,Certus One 在更早些时候正准备一篇博客文章以暴露我们中的所有节点。他们承认没有在那时发布是因为他们在等着我们对网络发起攻击。现在事情已经很清楚了,他们一直在等一个「合适的理由」来提议分叉

Cosmos 激励测试网治理往事:节点攻防与「卡特尔」之辩我们早前已经注意到了 Certus One 正在准备相关的文章草稿。给我们的印象很深刻,但是我们觉得应该有一个相比「亚洲卡特尔(Asia Cartel)」更好的名字

我们以少于 30% 的网络权力开始了 GoS 之旅,并通过不断优化节点让网络权力几乎翻倍。我们应该为了卡在 33% 这条线之下而停止优化吗?

我们运行的节点也都避免了任何「禁闭」惩罚,甚至通过接收其他验证节点发来的链上交易的方式帮助他们解除惩罚。以任何客观的标准来讲,我们参与 GoS 的整个过程都表现的很好,且对网络很有帮助。但是现在我们被妖魔化,仅仅因为我们有能力实现网络权力从 28% 到 55% 的有机增长。

缺少恰当流程的治理方式被滥用

毫无疑问,GoS 网络上还存在另一个卡特尔。从一篇文章到 GoS 第 5 阶段分叉的配合程度很清楚的表明,尽管没有合适的理由,有一群「善于发声」的节点已经在幕后串谋,以在「恰当时机」进行分叉。

正因为没有恰当的治理流程来以进行检查,这群节点才得以彻底破坏从指控到执行的过程。Certus One 把指控和决议同时融进了一篇博客文章,并没有给社区成员思考和判断下一步方案的独立时间,而是急于推进一个决定。没有人在这个过程与我们进行过沟通。被 Certus One 领导的这个群体基本上同时扮演了法官、陪审团和行刑者的角色。我们基本上还没有机会走上法庭,就被直接送上了断头台。

相比采用这种「链下」分叉的方式,本来是有其他可能的解决方案的。比如说,我们完全可以用链上的方式,通过投票来解决这个问题。我们想告诉社区的是,要对那些吵着要进行硬分叉 的人保持警惕。他们开了一个不好的先例。友好的方式应该永远是第一选择。

我们运行这些节点的分布方式是现实网络中的一种可能

网络权力集中分布在少部分「鲸鱼」中在 PoS 网络中是有可能的。这些鲸鱼可以指定一个实体来帮他们运行节点。这与我们在 GoS 运行的情况可能非常接近。我们有可能在帮助预演一种可能的情况。认为我们在 GoS 的参与情况在真实世界中不可能存在是有些「天真」的。

我们并未破坏 Cosmos 网络

要说明的一点是,我们没有做任何对 Cosmos 网络有害的事情。我们在 GoS 上投入了许多资源,并且持续的改善设置,这仅仅意味着我们的设置将是主网上最有实力的一个。

Certus One 在他们的博客文章中说,社区成员故意嘲讽我们,好让我们去攻击他们。可是我们从来没有考虑发起任何大规模的攻击,因为我们的注意力都集中在提高自身运营能力上,而非作恶。我们没有想过用任何途径破坏或延迟网络。我们只是专注在 Cosmos 主网,并努力为其做着准备。

写在最后

GoS 是一次美妙的经历,让我们有足够的信心在 Cosmos 主网上运行一个安全的验证节点。

我们想要感谢 Zaki 为维护 GoS 大赛付出的时间和精力。感谢 Cosmos 团队为网络稳定和提升作出的不懈努力。我们对于在几周后运行主网节点信心十足。我们也不会参加 GoS 的第 5 阶段(对于这次链下审查我们也没什么别的选择 :p)。我们很愿意继续进行网络实验,我们对于在 GoS 获得的成绩感到满意。

节点朋友们,希望你们一些顺利。我们将继续为你们在 Cosmos 网络上的压力测试加油鼓劲, 我们将会在主网继续相见。很高兴能分享我们的知识并对节点进行优化。也欢迎没有参加 GoS 的社区成员与我们联系,我们愿意与对未来怀有理想的验证节点分享在节点设置上的专业知识。

感谢我们的开发团队以及所有为我们取得 GoS 领先成绩的团队成员们。请继续探索生态的脚步!再见,感恩与我们在一起的快乐时光!


读起一年前的这段文章,是否依然能让你感受到那时候在激励测试网上的一些「火药味儿」呢?还好,那次只是短暂的离开,stakefish 赢得了认可并在 GoS 大赛胜出。stakefish 在 Cosmos 主网上线后如约与大家见面,并长时间保持节点排名第一的位置。

而 Cosmos 网络在社区的努力之下,已经成功的进行了多次有效的社区治理,生态发展取得了许多进展。就在数周后,Cosmos 也将开始 GoZ (Game of Zones), 为新的重要里程碑 IBC 进行整个网络的第二次激励测试网。我们希望更多社区成员加入网络建设的行列,不懈的建设与改进。

来源链接:mp.weixin.qq.com