Iron Fish: The Private Cryptocurrency

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:

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.

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

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. 

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 

Security Issues in Blockchain Technology

What are Security Issues with Blockchain?

In this article, you will learn what are the major security issues in blockchain technology and is blockchain really that safe?

The main purpose to use blockchain is to let people be able to share data in a secure, tamperproof way, with people they don't trust.

Blockchain secures information by means of distributing data, or in most cases ledger, over many computers called nodes. It uses cryptography and consensus mechanism in order to make a blockchain immutable and secure. However, even the best-designed blockchain systems can not be protected where advanced mathematics and software laws come into touch with people, who are competent cheaters, where things get chaotic.

Blockchain builds up a secure environment for us, but it too comes with its own security issues as well. These might not look as risky as common systems are but in the long term, they can cause issues. So let's start with discussing security issues in blockchain technology.

Eclipse Attack:

Eclipse attack mainly focuses on isolating and taking command over a specific node in a decentralized network rather than attacking the complete network. If the attacker succeeds, he is able to isolate the host machine from receiving any true picture of data from a real network.

As we know, nodes in a blockchain are in constant communication with one another. In this network, Nodes compare and validate data to implement consensus mechanism. If an attacker manages to take control of one of the node's communication, it can fool that node into accepting false information and wasting system resources. He can even pretend that data is coming from rest of the network to confirm fake transactions.

How Eclipse Attack works?

In a decentralized network, nodes are not allowed to connect to all other nodes in a network simultaneously. Rather, they are connected in a group.  A malicious actor would seek to hide these links. The effort needed to accomplish this is different depending on the design, size and nature of a network, but in general, a botnet of host nodes (each having their own IP address), and the nearby nodes of a planned victim, mainly through trial and error, should be monitored by an attacker. The attacker has a great opportunity of controlling all contacts with the victim the next time the victim node logs away and then joins the network (resetting their contacts and forcing them to discover a fresh set of nodes to connect).

51% Attack- Probable Issue with Blockchain:

51 per cent attack refers to the attack by miners who own more than 50 percent of control over network's mining or computing power–generally bitcoin, for which such attack is still hypothetical. Although, it is extremely difficult to own such a huge portion of the network, theoretically, there is a possibility. If this does happen in future, where blockchain-based applications will be ruling each industry, It will be a disaster and will affect a lot of people and businesses.

If someday some single company or entity does own 50% of the network then it will be able to do the following:

Social Engineering Attacks:

Let's understand what social engineering is, in simple words:

Social engineering is a vector for attacks that rely highly on human interaction and often requires individuals to break ordinary safety processes and good practices in order to obtain access. So simply, you are getting tricked into doing something attacker wants you to do in order to provide him access.

In the year 2018, $3 million were lost by social engineering attacks.

Blockchain security also comes with social engineering issues as well. You might get tricked into giving away your wallet details or private keys which are required to control your money. Phishing is the most common approach used by attackers in social engineering. They'll approach you pretending to be a legitimate website or even through email and ask you for your credentials somehow with their cheesy lines.

Exchange Hack - Stealing Cryptocurrencies:

Not blockchain itself but currencies based on blockchain are very vulnerable to these hacks. Exchange websites fall prey to these attackers due to their poor security practices. Many exchange websites, who are offering coin trading services,  are hacked each year.

Just in 2014 approximately 850,000 BTC (~$473 million) from Mt. Gox hack

It's best for a business to go for decentralized exchange websites (DEX) rather than centralized platforms. DEX allows you to directly trade your coins from your wallet.

Malware - Victim Computer Miners:

Blockchain security is effected by malware too. A node connected with blockchain network can be affected by malicious crypto mining software. Start this by understanding Cryptojacking.

Cryptojacking is mainly associated with blockchain and cryptocurrency. When Bitcoin was on a hype, cryptojacking was also a good source of income for hackers. In Cryptojacking, hackers install a script or software which utilizes victim's computer resources to mine cryptocurrency. You will experience a great blow to your computer performance if your effected bu cryptojacking. Hacker here is not directly stealing any money from you but he sure is taking away your computer performance.

Recommended to Read

Understanding Blockchain Essentials

Applications of Blockchain Technology