Iron Fish: The Private Cryptocurrency

Okereke Innocent   |   

Oct 30, 2021

Oct 30, 2021

Several blockchains have tried to address several issues that face decentralized transactions but none of them have completely addressed the issue. Only one of these blockchains is close to solving this once and for all. This blockchain is the Iron Fish blockchain.

The Iron Fish blockchain is a layer 1 decentralized blockchain platform that offers top-notch privacy security to users. It helps in overcoming the challenges of creating P2P connections in a node by eliminating any barriers that may be present. Also, it has been able to create connections in any browser and any CLI environment. 

Surprisingly, the Iron Fish project has so many other benefits it offers its users. In this article, we'll be discussing the benefits, networking mechanism as well as unique features of the Iron Fish blockchain. 

What is the Iron Fish Blockchain?

The Iron Fish project is a layer 1 privacy blockchain that offers users strong privacy transactions and wide expansion to the use of cryptocurrency. As a decentralized Proof-of-Work(POW) blockchain, Iron Fish offers users full-private transactions and supports WebRTC. By supporting WebRTC with WebSockets, it reduces the challenge of creating P2P connections. 

The Iron Fish aims to run a full node directly without future iterations in browsers or CLI environments. By doing this, it makes it easy for any person to create a node and join a node. It does so by lowering barriers to entry. 

Like other blockchains, Iron Fish has six ingredients:

Networking

The Networking component of the Iron Fish gives a run of basic networking startups, stacks, messages types, and sequences. Networking provides information about Iron Fish gossip protocol implementation.

Iron Fish Blockchain has a networking system that enables it to perform its unique functions as a blockchain. 

These functions enable it to carry out functions like node interaction, layers transportation, and nodal gossiping.

In building a decentralized blockchain system, creators have not successfully addressed the network address translation {NAT}. It is with the NAT that users can effectively communicate without firewalls and routers. However, by creating sharp accessibility with a combination of Web Sockets and WebRTC, the Iron Fish blockchain has completely addressed the NAT issue.

Asides from the combined action of the Web Sockets and WebRTC, Iron Fish uses an array of techniques to ensure that users connect freely irrespective of their browser and CLI environment. In other words, Iron Fish solves the problem of connection interjection due to technical faults.

That said, once a node is created, there has to be another node ready to connect to the former node. The latter node is known as Bootstrap which, once connected, connects the former node to another peer to form a network. Below, we discuss how nodes form a network in the Iron Fish blockchain.

Startup sequence

Before a network is set up, there has to be a node that initiates a connection or startup. Once the node initiates the startup, the following happens:

  • The startup node haphazardly connects with another bootstrap node by opening a Web Socket connection. However, users can have specific nodes to connect to. To do this, users can open a command line or use the configuration file.
  • Once the former node connects to the bootstrap node, the bootstrap node sends a peer list broadcast to other nodes.
  • From that list, peer nodes decide on which peer to connect with.
  • You can repeat the third step till the nodal connection is fully saturated. That is, the maximum number of peers in a connection is attained.

Peer connections lifestyle

During a connection, a node maintains a complete knowledge of its peers and other peers connected to it. They do this by occasionally checking for changes in the nodal connections. With that already said, let’s discuss the modality of nodal communication.

Nodal messaging

A nodal message is a unique format member of a group sends messages in a node connection. These messages are usually agreed upon and only peers in a network understand them.

There are different types of messaging with different styles of messaging.

  • Identity: An identity message helps peers to identify themselves
  • Peer list: A peer list message contains a list of peers that are actively connected to a node
  • Signal: A signal message indicates the real-time connection between peers
  • Cannot satisfy request: Pops up whenever a problem occurs

Nodal messaging styles

Gossip

Gossips occur within networks, sending messages from one node to another. Once a node receives gossip, it forwards it to the nearest connected node. The essence of gossip is to propagate changes that occur in a nodal connection.

Direct RPC

This style of messaging helps to send messages to a specifically connected peer and awaits a response. It does this by its Remote Procedure Call {RPC} stream that comprises a request stream and a response stream.

Fire and Forget

The fire and forget style allows users to send messages to connected peers without any confirmation of receipt. This style of messaging is often useful if users need not worry about the recipient receiving the message.

Global RPC

Messages sent here are sent to specific users and other users in the same network. Global RPC resends the message if there are any errors in the message or if the sender doesn’t get a response. However, this style of message favors known peers over unknown peers.

Mining

The mining section in the Iron Fish blockchain describes how the blockchains construct new blocks for their users. In constructing new blocks, they do this randomly for the sake of proof of work and the miners' reward calculation.

Mining in the Iron Fish blockchain is defined by rules that guide the creation of blocks and verification of peers in an incoming block. While on the other hand, miners are nodes that add new blocks to the blockchain. We say a new block is added if a miner finds a hash of a blocker header below a target.

To prevent block accumulation, the Iron Fish block adjusts the difficulty of mining by 15 seconds. This is done if observed blocks are coming in faster or slower.

To mine on the Iron Fish blockchain, your node must know global data structures and must be familiar with the two most recent blocks.

Storage

The storage section helps users understand the basic structures and models of the Iron Fish. Also, it helps users how this layer is accessible in both browser full nodes and CLI.

In discussing an Iron Fish storage system, we’ll be looking at what the system stores and how the system stores.

What does the system store?

Note

A note is a spendable representation of the payment form. It is quite similar to the UTXO of bitcoin. Nodes are referenced privately and are only referenced publicly on two occasions. The first occasion is when the note is severe as an output for a transaction. The second is when the note is in a hashed form. More importantly, notes are always private.

Nullifier

A nullifier is different from a note and it is unlinkable to a note. A nullifier is a distinct identifier to a note and can only be spent if exposed as part of a transaction.

Once exposed, the nullifier is saved on Iron Fish data structures. These data structures help to keep track of all nodes on the Iron Fish blockchain. And there are two of these data structures

Merkel tree notes

The Merkel tree note as an accumulator data structure presents several elements with a tiny identifier. A Merkel note consists of the following

  • Value commitment: A Pedersen commitment of a note's value
  • Note commitment: A windowed Pedersen commitment that hashes the contents of a Merkel note.
  • Public key: A public key is created after the creation of an associated note. A public key helps the recipient spend and decrypt notes in the nearest future. This is done by using the Diffie Hellman key exchange.
  • Encrypted note: An encrypted note can be decrypted using a public key.
  • Note encryption keys: A note encryption key holds all the info necessary to encrypt a note for transaction sake.

Merkel nullifiers

The Merkel tree of nullifiers functions like the Merkel tree of notes in that it accumulates too but it accumulates are nullifiers. Although, unlike the Merkel note, it accumulates notes in a series of nullifiers.

Also, the Merkel nullifier is used to track all Merkel notes spent and accompanying notes.

How then does the iron fish store data?

In storing data Iron Fish uses a storage layer that works as a Command Line Interface(CLI) tool and a browser.

Account creation

Just like other blockchain accounts, users can create an account on the iron fish blockchain using a Sapling protocol. To better understand how this and other components are necessary for account creation, going through the account creation layer will do.

All transactions on the Iron Fish blockchain are influenced by the Sapling protocol. This section explains the key components of an account.

Secret key

The secret key is necessary for constructing one's wallet and it's a 32-byte random number.

Spending key

The spending is a direct derivation of the secret key. The spending key is used by users to spend notes associated with accounts. The spending key comes in pairs:

Spending authorization key(ask): This private key in this pair is derived by using the modifier Blake2b and placing hands on a secret key. After this, the key is converted into a scalar for the jubjub curve.

Authorization key(ak): The authorization key is a derivation of the public key by the multiplication of the spending authorization key. 

Nullifier keys

The nullifier keys are derived from the secret keys and are necessary for creating nullifiers and spending a note. The nullifiers' keys are into pairs:

The proof authorization key(NSK): The proof of authorization key is the private component on the pair and it's derived by using the modifier Blake2b and placing hands on a secret key. After this, the key is converted into a scalar for the jubjub curve.

The nullifier deriving key: This key is a derivation of the public key by the multiplication of the spending authorization key. 

View key pair

The view key pair comes in two and are:

Outgoing view key(ovk): This key is responsible for the decryption of outgoing transactions. 

Incoming view keys (ivk): The incoming view key allows your decryption of incoming transactions.

Transaction creation

This layer gives a run-through on the applications of zero-knowledge in the Iron Fish blockchain alongside its transaction in conjunction with the Sapling method. Also, it gives a run-through on how to validate and balance existing transactions.

Verification and consensus

This final section simplifies the rules on accepting new block transactions. Oftentimes, this is the layer several users visit the most.

Before now, we discussed how nodes are created but didn't discuss why they're created that way. Nodes are created following the blockchain consensus rules.

The blockchain consensus is a verification layer that sets rules on how nodes accept blocks. This consensus layer is what the Iron Fish blockchain operates on. 

Moving on, the Iron Fish block will be accepted if it has a valid header and body. At high levels, verifying headers will confirm the amount of work behind a header. To confirm the amount of work behind a header, the system checks for a hash numerically lower than the target. 

Moving on, the Iron Fish block will be accepted if it has a valid header and body. At high levels, verifying headers will confirm the amount of work behind a header. To confirm the amount of work behind a header, the system checks for a hash numerically lower than the target. 

Validating a block header

To validate a block header, a receiving block header checks all of the following correctly. 

  • sequence
  • noteCommitment
  • previous block hash
  • timestamp
  • target
  • randomness
  • minersFee
  • nullifierCommitment

Validating a block body

To validate a block body, the system validates all transactions in the block. This is done by checking the validity of each transaction.

Iron Fish Gossip Protocol

The Iron Fish gossip protocol broadcasts new transactions and blocks to every peer in a network. To do this, nodes in a network verify incoming transactions, then send them to other peers. After broadcasting the transactions, the nodes validate the incoming blocks before signaling the node’s transaction ledger. The essence of a peer broadcast is that every peer receives messages quickly.

Iron Fish Zero-Knowledge Proof

A Zero-Knowledge proof refers to cryptographic techniques that verify and proof statements without exposing their underlying data. For the Iron Fish blockchain, it can do this by using zk-SNARKs. Essentially, zk-SNARKs shields Iron Fish users’ identities and balances. Because of this, you successfully hide your identity and transaction details.

Unlike bitcoins and ethereum, Iron Fish blockchain transactions are not in the permanent ledger. Instead of this, Iron Fish users can transact without it revealing their balance or their identity. Experts even say the Iron Fish blockchain creates platforms for developers to carry out their work. Most especially, this platform will favor developers who have no foreknowledge of cryptocurrency.

The Iron Fish network uses the sapling protocol created by Zcash to verify transactions on its blockchain. In verifying transactions, they protect their clients and offer better services. 

Not only are they important to developers, but they're also important to cryptographers and enthusiasts in the field. For cryptographers, they can create Rust Coding coinage for their work and other systems. 

To Wrap It Up

The Iron Fish blockchain offers several benefits to its users. One of these is the ease of accessibility into networks for node creation. Another one is the advanced level of its decentralized privacy transactions. 

So, don't be caught in the traps of archaic systems that disallow you from using effective software. It's with effective software that developers develop interesting and mind-blowing software for blockchains as well as platforms related to blockchains. Ensure to update yourself on all of these and enjoy advanced technological solutions. 

Also read: Digital Identification on the Blockchain with Microsoft’s ION 

Written by

Similar Articles

January 9, 2021
Author: Zainab Hasan
January 28, 2021
Author: Zainab Hasan
March 15, 2021
Author: Zainab Hasan
1 2 3 16

Get notified on our latest Web3 researches and catch Xord at a glance.

    By checking this box , I agree to receive email communication from Xord.