A post from our past: “bitfish’s Official Response To GoS 5”
As we reviewed some of our past content, we uncovered a gem from the past year when the first ever incentivized testnet, the Game of Stakes, was nearing its conclusion. Oh, how the times were different then! stakefish was doing business under bitfish and we had only two validator nodes (counting testnet nodes, we are now operating well over twenty validator nodes). I have not edited anything from that post and hope some people find this helpful.
Hello, world! We are bitfish, organizer of alliance.fish (in case it wasn’t obvious), and finally, the operator of validators on Game of Stakes (GoS). We are here to help accelerate the mainstream adoption of blockchain technology. Cosmos is looking to solve important problems to achieving this, scalability and interoperability, and hence we have been actively contributing to its network. We wanted to give the community, our fellow validators, the Interchain Foundation, and the Cosmos team a proper response and clarification on the insightful blog posts from Certus One and Joe regarding our participation of GoS.
Certus One and Joe blog post
This was some quality work! We are extremely happy with the work that Certus One and Joe have put in on their blog post about the nodes we have operated. While this exposes our position, for the overall health of the Cosmos network, this shows a lot of promise. We can expect a similar level of scrutiny on validators on the mainnet, and this is what will ensure its success.
As participants in the Cosmos ecosystem, we would like to take this moment to continue contributing as much as possible. Information is key, and we will do our best to address or validate some of the claims and also add more details in the hopes that this will level the playing ground for all validators.
Setting up our approach to GoS
Our roots in the blockchain ecosystem are in mining pools. As bitfish, we wanted to provide a similar service for Proof-of-Stake (PoS) blockchains and planned to operate staking pools and provide staking-as-a-service. With this framework in mind, we wanted to experiment our ability to operate multiple validator nodes. We kept a close eye on the announcement of the rules and participation methods for GoS. It was clear that operating multiple validator nodes was perfectly within the bounds of GoS rules (we’ll explain more about this in a later section of this post).
We began asking close friends and family to help us with the registration. We wanted to closely model legitimate staking services and therefore did not spam the KYC process with fake or stolen ID cards. We halted well before attaining 33% of the registrations. While we wanted to stress test various aspects of GoS, we also wanted to make sure we don’t go overboard by having direct control over 33% of the network.
GoS started off with 253 approved submissions, and we had 28% of the network. Our infrastructure team was working overnight during the holidays, trying to make sure we were able to bring all 70+ validators plus many more sentries, relay nodes, and monitoring servers, totaling several hundred machines, online.
Starting off alliance.fish
We were inspired by the creative and trolly nature of steak.zone. We also wanted to invite other validators to join us. We believed through knowledge sharing and collaboration, we could exponentially increase our learning experience. Hence, alliance.fish was born. Our design team got to work and pulled out a cool design within a day. They even had some creative juices left to hide a cool easter egg on the alliance.fish website (hint: try hovering your mouse over the “EMAIL US” button at the bottom of the page).
We had one well-known validator join our cartel, hinting that they were leading another group of validators. Ah, the excitement then. But imagine our surprise, when we, not long after, found out that that validator was leaking information about us to another cartel, whose members are the top and vocal validators within the Cosmos Validator and GoS chatrooms. That really got our blood pumping. The game was already starting and we needed to prepare ourselves to defend against anything, even off-chain social engineering attacks.
From GoS genesis to GoS 3
We were ready for anything once GoS genesis started. We started with 28% of the network and set our goal to successfully defend and maintain our network power.
Our dev team constantly improved the setup for the nodes on GoS, which increased the speed at which we accumulated stakes. Their work also prevented the nodes we operate from being jailed at all, which again contributed to increasing our power. To our surprise, we far exceeded our initial goal and attained over 55% of the network’s power on GoS 3.
Once we gained some confidence in our abilities to defend and manage all nodes we operated, we tried to test our abilities and experimented with some small attacks. We carried out a successful sustained censorship attack against validators that was undiscovered for a while using one of the nodes we operated: “communist”. We didn’t deploy such attack at scale because we were not attempting to harm the entire network.
As we were exploring conducting further experiments and stress tests, Certus One had finally released their blog post that identified the nodes we operated and proposed to conduct an off-chain hard-fork, effectively excluding the nodes we operated. Joe had also released a post that validated Certus One’s findings using a different approach. Multiple validators then started to show support for this hard-fork through Github and GoS Riot channel. Alas, our experiments and stress tests on the network seem to come to an end for now.
Our own takeaways
We learned a lot last month and believe GoS was a successful experience. One way we knew we were on the right track was when other validators started reaching out to us on Riot channels for help on their configuration and setup. We’ve been extremely helpful to them and we believe this in turn contributed to the overall health of the Cosmos ecosystem. Now that we are public, in due time we’ll reach out to give proper introductions of ourselves.
Another way we knew our efforts were paying off can be seen through some hard numbers.
Based on Certus One’s graph of total stakes, we operated 11 of the top 20 nodes. Almost all of the 70+ nodes we operated were within the top 80 nodes.
Based on Hubble’s (Figment Network’s tool) table of total pre-commits, we owned 9 of the top 10 nodes. Only Certus One had more pre-commits than the nodes under our operations. Similarly, almost all of the 70+ nodes we operated were within the top 80 nodes by pre-commit numbers.
Food for thought
Hopefully that provided a good picture of our GoS participation. Now, we wanted to provide some of our perspectives and insights before we end this post.
1. Certus One’s reasons for excluding the nodes we operate are not legitimate.
The only claim with any merit for GoS 5 was that we allegedly broke the rules of registration. We strongly disagree with this allegation.
We asked for help from our friends and family, real people, for the registration process. We wanted to simulate staking pools and staking-as-a-service on GoS, which the Interchain Foundation has not explicitly banned. The only part of the rules we knew we had to pay close attention to was outlined below.
Certus One conveniently excluded the entire text of the rules on registration in their blog post. We highlight this sentence: “[i]f you simply registered accounts for your friends and then delegate or transfer all your STAKE to a single or small number of validators, this will disqualify all the participants.” All the nodes we operated never transferred stakes to one another.
We were aware that Certus One was preparing a blog post exposing the nodes we operated from earlier on. They have admitted that they did not release this earlier because they were trying to get us to attack the network. It’s clear now that they were waiting for legitimate reasons to propose a hard-fork.
We started off with less than 30% of the network and almost doubled our combined stake by diligently optimizing the nodes we have operated. Were we supposed to stop our optimization process before we exceed the 33% mark?
The nodes we operated also evaded any jail time and even accepted other validators’ transactions so that any jailed validators can un-jail. By any objective measure, we were playing nicely and being helpful throughout GoS. Now we are being witch-hunted for being able to organically grow our power from 28% to 55% of the network.
2. The lack of a proper governance process has been abused.
Make no mistake that there is another cartel that exists on GoS. The level of coordination in going from a blog post to GoS 5 hard-fork is a clear indication that a group of vocal validators has been colluding behind the scenes to properly execute the hard-fork proposal despite the lack of legitimate reasons.
Without a proper governance process to put them in check, this group was able to torpedo the process from accusation to execution. Certus One’s blog post was an accusation and a resolution all boiled into one. It didn’t give community members to think and consider next steps independently, and pushed a solution to them right away. Not once throughout this entire process were we contacted. This group led by Certus One has essentially been the judge, juror, and executioner all at the same time. We are now basically marching up to the guillotine rather than the courtroom.
There were other possible solutions than this drastic off-chain hard-fork. For example, we would have been open to voting most of the nodes under our operation out through on-chain governance. We want to ask the community to be wary of those who cry for a hard-fork. It’s a dangerous precedent to set. Amicable resolutions should always be the first choice.
3. The nodes we operated are a realistic possibility of the real-world network distribution.
Focused power by a few whales is a possible outcome of any PoS-based blockchains. It’s also likely that these whales may choose to assign one entity to operate nodes for them. This closely resembles how we have operated on GoS. We have been playing a real possible actor. It’s naive to claim that operators resembling our GoS participation won’t exist in a real-world setting.
4. We did not harm the Cosmos network.
The one thing we would like to make clear is that we have done nothing to harm the Cosmos network. We’ve invested our resources on GoS and have been diligently working to improve our setup, which would only mean our setup for the mainnet will be one of the strongest.
Certus One has validated in their blog post that community members taunted us intentionally to get us to attack. We never considered launching any attacks on a massive scale as we were focused on improving our own capabilities and not on acting maliciously. We did not want to harm or delay the network in any way. Our sole focus is on the Cosmos mainnet and getting prepared for it.
Last words
GoS was a wonderful experience and it has given us full confidence in our abilities to operate a secure validator on the Cosmos mainnet.
We want to thank Zaki for his time and effort in maintaining the GoS. We also thank the Cosmos team for working tirelessly on improving and stabilizing the Cosmos network. We have full confidence in the team to launch their mainnet in the coming weeks. We won’t be participating in GoS 5 (not that we really have a choice in this off-chain censorship :p). We would have loved to further experiment, but we’re still happy with our achievements on GoS.
To our fellow validators, we wish you all the best of luck. We will be cheering you all on to stress test the Cosmos network and we will see you again on the mainnet. We’re happy to share our knowledge on optimizing validator nodes. To the community members who are not part of GoS, feel free to shoot us a message as we’re open to sharing our expertise with future aspiring validators on their setup.
Thank you to our dev team and greater team who have worked tirelessly to stay on top of GoS. Onwards to expanding the ecosystem! So long, and thanks for all the fish fun!
Website: https://stake.fish
Telegram: https://t.me/stakefish
Twitter: https://twitter.com/stakefish
Instagram: https://www.instagram.com/stakedotfish
LinkedIn: https://b.fish/linkedin