Iron Fish: A Privacy Project Named After the WWII Codeword "Submarine"
Author: zZ
If we categorize the projects in the blockchain field based on their different uses, then the "privacy" sector may be one of the less favored sectors in the market recently.
From a usage perspective, the privacy field has moved beyond the stage where tokens like XMR are needed to avoid tracking and scrutiny. At the same time, the narrative of blockchain no longer requires the dark web for supplementation. On the other hand, regulatory frameworks for the crypto world are becoming more refined in various countries, and mainstream capital and hot money will inevitably consider participation risks when entering the privacy sector.
For all these reasons, few projects have been able to achieve success in both privacy and convenience. This also means that sacrificing convenience to develop privacy to the extreme may gain market recognition.
Iron Fish is a privacy project that has wrapped itself in secrecy from the concept proposal to the underlying design, and now has launched an incentivized testnet.
Submarine
Iron Fish, translated into Chinese as 铁鱼 (Iron Fish). During World War II, "Iron Fish" was a term used by the U.S. military for encrypted transmission "submarine." Iron Fish founder Elena Nadolinski stated that the reason for using this name is that this history showcases the power of cryptography and also includes two tradable commodities: "Iron" and "Fish."
When discussing privacy, we must first define it. In blockchain, privacy is mainly divided into two categories: "identity privacy" and "transaction privacy."
Identity privacy primarily refers to the relationship between user identity and blockchain addresses. Most projects on the market, such as mixing pools and on-chain tracking by security agencies, are dedicated to re-encrypting or unraveling identity privacy. Most projects exploring identity privacy rely on transaction characteristics and patterns, and even combine some social engineering databases for analysis and comparison.
Due to the characteristics of blockchain accounting, transaction privacy involves extracting valuable information based on on-chain data. Currently, most well-known graph database projects in the industry, including Dune Analytics, Nansen, Glassnode, etc., collect publicly available on-chain data and output valuable information after cleaning it through algorithms or certain rules.
Of course, some believe that the information publicly available on-chain is not private information. However, is there a new protocol or technology that can hide all this information?
Iron Fish's idea is just that, with transaction information, mining information, and wallet information all hidden. Except for the private key owner, no second party can view it. To achieve this goal, Iron Fish uses a PoW consensus mechanism and zero-knowledge proofs (Zcash's Sapling Protocol). Furthermore, Iron Fish states that in the future, the network layer will support WebRTC and WebSockets, meaning that a complete Iron Fish node can run directly through a browser.
Token Economics
According to the setup, the total supply of Iron Fish Token is approximately 256,970,400 tokens, with an initial supply of about 4.2 million tokens. After the mainnet launch, in the first year, each block will reward 20 tokens, and subsequently, the block rewards will decrease according to a decay function each year.
The release quantity and time variation are as follows:
In the incentivized testnet before the mainnet launch, Iron Fish also prepared a total of 420,000 tokens to reward users. The method mainly relies on accumulating points, which can be obtained through mining in the incentivized testnet, finding bugs, or modifying comments (Pull Requests) on GitHub. Each category of points earned has a weekly accumulation limit of 1,000 points. Additionally, each mined block accumulates 100 points, meaning the maximum points earned from mining in the incentivized testnet per week is 10 blocks.
How to Participate in Mining
1. Register an Account
Before starting the node, you need to register an account on the official website (https://testnet.ironfish.network/leaderboard). Interestingly, Iron Fish uses Magic Link for registration, which also employs zero-knowledge proofs to protect privacy. (If interested, you can read: “Magic: Why Your Next Password Doesn’t Have to Be a Password | Project Introduction”)
It is important to note that graffiti is the only identifier for participating in Iron Fish, which will be used for proof of work recognition in the incentivized testnet.
2. Install Iron Fish
After completing the registration, start the node. The simplest way to start the node currently is to use Docker containers for installation, which is suitable for all platforms. However, some users have tested that using Docker for mining has about 15% lower computing power than other methods, so this article will focus more on using the macOS package management system Homebrew.
2.1. Docker
Download the corresponding version from the Docker official website, then open the system terminal (PowerShell for Windows, terminal for macOS).
Then, enter:
Windows:
docker run --rm --tty --interactive --network host --volume %USERPROFILE%/.ironfish:/root/.ironfish ghcr.io/iron-fish/ironfish:latest
Other platforms:
docker run --rm --tty --interactive --network host --volume $HOME/.ironfish:/root/.ironfish ghcr.io/iron-fish/ironfish:latest
The first installation takes a long time, and some users may need to install some necessary environments for Iron Fish during the first installation.
For subsequent software updates, open PowerShell/terminal and enter:
docker pull ghcr.io/iron-fish/ironfish:latest
After waiting for a while, Iron Fish installation is complete.
2.2. macOS
On macOS, you need to use the package management system Homebrew. Open the terminal and enter:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Most domestic users may encounter various installation errors at this step, so it is recommended to use a VPN or domestic mirrors.
After completing the Homebrew installation, enter the following in the terminal:
brew tap iron-fish/brew && brew install ironfish
After waiting for a while, Iron Fish installation is complete.
3. Start Mining
Before starting mining, you need to start the node and synchronize the entire network data.
In Docker, click Images and select run the latest software. For macOS, enter in the terminal:
ironfish start
Once the node has started, the most important step is to mark your unique identifier in the network. In Docker, click CLI, and for macOS, open a new terminal window and enter (replace zZH with the graffiti you entered during registration):
ironfish config:set blockGraffiti "zZH"
After modifying the graffiti and completing node synchronization, you can start mining. If you want to do some other work while mining, you can enter:
ironfish miners:start
If you want to fully utilize the CPU, you can try entering:
ironfish miners:start -t -1
Regarding the mining work of the incentivized testnet, only the CPU is used, which does not affect the GPU's work. After nearly a week of testing, under the current difficulty, the AMD 2600X with 6 cores and 12 threads using Docker has a computing power fluctuating around 700 KH/s, averaging one block mined every two days; the Intel i7 4870HQ with 4 cores and 8 threads on macOS has a computing power of about 270 KH/s (with significant fluctuations), and after a week, no blocks have been mined. Therefore, it is not recommended for older laptops to participate in the test.
After successfully mining a block, we can check it on the block explorer (where the block's miner can only be identified by graffiti) or locally.
In addition, operations such as transfers, faucets, and checking node status can all be found in the official documentation, and the operation method is to click CLI or create a new terminal interface and enter the code.
Project Financing Situation
On March 6, 2021, Iron Fish announced the completion of a $5.3 million financing round, with investors including Electric Capital, Elad Gil, Metastable, A Capital, Slow Ventures, Dylan Field, John Lilly, Jack Abraham, Juan Benet, Jack Chou, Balaji Srinivasan, Lemniscap, James Prestwich, and Linda Xie.
On November 30, A16Z announced leading a $27.6 million Series A financing round for Iron Fish, with other investors including Sequoia Capital, Electric Capital, Metastable, Arrington XRP Capital, Do Kwon, Matt Luongo, and Nathan McCauley.
In fact, A16Z's focus on the privacy sector and investment in Iron Fish is not surprising. As early as November 18, when A16Z announced its investment in the privacy project Nym, it revealed that projects including Iron Fish are addressing privacy issues at the application layer.
From the launch of Iron Fish's testnet to the current incentivized testnet, it can be seen that Iron Fish is continuously iterating, but its network still has many issues, such as frequent block congestion, disconnection between the block explorer and on-chain information, inconsistent faucet availability, and disconnections and memory overflow when using Docker, etc. Hopefully, all these issues can be resolved before the mainnet arrives.