Transparency is one of the blockchain feature where every transactions are stored on-chain and can be viewed by anyone. While this increase trust, traceability and security, it also creates privacy issues. For example, anyone can view all of your past financial activities once they know your wallet address from just transferring tokens or setting up NFT profile picture.
Here is example image from Ethereum blockchain where anyone can view all transaction details freely.
What is Iron Fish
Iron fish is a level-1 blockchain aim to solve this by providing privacy on all blockchain tech layers while solving the ease of access drawback of other existing privacy blockchain.
But implementing privacy on blockchain has a certain problem. How can we still verify the transaction if the validator can’t see it? The answer lies in Zero knowledge proof. A method to proof that something is true without having to reveal the actual data. (I know it’s a bit confusing so here is explanation video)
Iron fish encrypted all of the data on-chain (account balance, transaction detail, etc.) and uses ZK-SNARKs (Succinct Non-Interactive Arguments of Knowledge) in verification process. For example, to proof that a sender possesses the funds they want to transfer without revealing the account balance or attesting the validity of transaction details without revealing transaction amount to the validators.
In order to view the actual data or authorize a transaction on Iron Fish, a secret key is needed. There are different types of secret keys for specific purpose such as spending and viewing, but all of them are derived from a single secret key (think of it as a master key)
With this design, even all of the data are stored on-chain, only those whom you provided a key can see the transaction. This also solve the regulatory issue, since you can provide them with view keys to allow exchange or any financial or government organization to see your transaction history for audit purpose
Like Bitcoin, Iron Fish is a proof-of-work (PoW) blockchain which is censorship resistant, better understood attack vector and easy to setup. With dynamic difficulty adjustment to keep the average block produce time between 55 to 65 seconds.
The specific hashing algorithm of Iron fish is to be determined and development team are working closely with testnet testers (currently using CPU mining)
The Node (or Peer)
Normally, a blockchain node would require a P2P connection which require some technical knowledge for network setup (static IP address, router port forwarding, firewall rules, etc.) Iron Fish node (or peer) solves this problem by using a combination of WebRTC (Web Real-Time Communication) and WebSockets instead. Like browsing website, anyone can now run a node regardless of network technical ability.
In the future, development team intended to make Iron Fish node able to run directly in browser without installation. To achieve this, the data storage mechanism of Iron Fish has two databases. IndexDB for web-browser environment and LevelDB for NodeJS environment with an interface layer in the middle so that the blockchain don’t have to switch between the databases.
How nodes are communicating with others is also interesting since Iron fish enforces privacy on all layers. A certain node will only have knowledge of other nodes for no more than 2 hops. (adjacent and those connected to adjacent node) When running a new node, it will randomly pick a “Bootstrap node” from a defined list and then get the peer list to connect to (again randomly) until the node reached maximum amount of connections (up to 50)
To broadcast the new block and transaction among the nodes, Iron fish uses a “Gossip Protocol” where each node will broadcast a message to their direct peers. And then repeat the same process for all subsequent nodes until the message is fully broadcasted. Node will not repeat or broadcasts the message which they already received to prevent network congestion. The goal of Gossip protocol is to broadcast the message to every node as fast as possible.
Imagine people can simply open their web-browser and able to run an Iron Fish node or start mining without any prerequisite installation or setup. Wouldn’t that be interesting?
Backers and Funding
Iron fish raised $27.6 million in a Series A on November 30, 2021 lead by A16Z. Here is the full list of investors.
- Sequoia Capital
- MetaStable Capital
- Electric Capital
- Nathan McCauley
- Jeff Weiner
- Do Kwon
- Andreessen Horowitz (A16Z)
- Alan Howard
Iron Fish was founded by Elena Nadolinski.
For those interested in joining incentivized testnet program on Iron fish there are several tasks you can participate. For example, you can join the miners group and use your CPU power to mine the block on testnet to test the blockchain stability and determine the best hashing algorithm. Or you can spread a word about Iron fish and share your knowledge to others by writing articles and social media (like this one you’re reading :p)
For every task you complete, you will earn a contribution points (with weekly cap for each category) where these score will be calculated into incentive when Iron Fish token is live. (There is a testnet score leaderboard if you feel competitive 🤣)
You can find more details about incentivized testnet program here.
The IRON Token
The Iron Fish token ticker symbol is $IRON with maximum total supply of 256,970,400 coins and decaying block reward (adjusting annually)
Why the name “IRON FISH”
“Iron Fish” term was used during the World War II to call a submarine as part of a secret communication (Navajo code talker) in the battlefield.
The development team chose this name to “show the power of cryptography where a complex concept can be described with relatively simple words”
For detailed about Iron Fish, you can read the full whitepaper here or join the community below.