Delving into the FUSUS — The data structure that will transform the world

Jura Protocol Media
4 min readAug 17, 2018

As we are seeing an increasing interest in integrating Blockchain technology into our daily business operations, we see a parallel need to create a system that is scalable, reliable, and fast.

To fulfil this unmet need, Jura has invented the FUSUS, a data structure that is a multiple inheritance of blockchain, block lattice, and directed acyclic graph (DAG) technology. The FUSUS is a flexible, practical, and scalable data structure that provides us with the ability to achieve scalability, fast transactions, lightweight, and instant confirmation all at once.

Before we move onto introduce the concept in more depth. There are two main underlying concepts that we need to understand: the FUSUS account, as well as the transactions themselves

1. Accounts

An account is the public-key portion of a cryptographic signature key-pair. The address is derived from the public key, which is shared with the entire P2P network, while the private key is only known to the account holder. In traditional blockchain technology, an account can create a transaction and send the transaction to the target address, but does not store its own history. This leads to several problems:

- Error-prone account balance

- Lower security, especially increasing the risk of Sybil attacks

In Jura’s FUSUS data structure, each account is allowed to hold, store, and keep track of its own transactions. It helps to keeping track of the balance in each account that not only guarantees faster offline retrieval, but also makes the balance less prone to error. Because each account is initiated with a genesis block with a non-zero balance, the system is significantly more resistant to Sybil attacks. Any changes to the FUSUS on each account will require the account’s private key, thus adding additional layer of security.

2. Transactions

A transaction is any transfer of value from one address to another. In traditional blockchain, a transaction is viewed from a relatively high level and is considered as one single action from A to B. What differentiates JURA from traditional blockchain is the separate treatment of sending and receiving transactions. In the JURA protocol, sending and receiving transactions are treated differently due to their different processing time requirements. Sending transactions (ST) have a sense of urgency in them, since there must be sufficient balance in the account to make that transaction happen. Receiving transactions (RT) on the other hand do not have time urgency, and it is possible to have multiple RTs at the same time, whereas many incoming ST’s will cause a strain on the system. Treating these two transactions separately will help us be more efficient and achieve a higher level of transactions per second, or TPS.

FUSUS — Data Structure that will transform the world

Now that we have the basics down, let’s delve into the FUSUS itself. The FUSUS is essentially a DAG-lattice. This essentially means that the transaction histories of accounts form the lattice, and the history of each account is constructed by the DAG. In simple words, when the traffic volume is low, the DAG is effectively reduced to a blockchain structure, but when the traffic volume is high, the RTs form a DAG, and every ST plays the role of a new genesis block.

The process of formation is fairly simple:

1. Genesis block records the initial balance

2. Receiving block comes in either low or high traffic conditions, creating a narrow or a wide FUSUS

3. The initiation of every ST rehashes the FUSUS transaction history into a single node. This takes into account all of the confirmed receiving blocks and calculates the net balance after accounting for the balances in the receiving blocks

4. The send block is then inserted into the receiving DAG as a new genesis block. The number of confirmations of existing receiving blocks remains unchanged

5. The unconfirmed receiving blocks will keep growing the DAG and the process continues

What if there are no STs to initiate the formation of new genesis blocks? In the occasion should no STs be initiated within a certain timeframe (customizable to different applications), a new genesis block will be created for the user account, and all prior receiving blocks rehashed as usual.

In summary, the FUSUS gets us a whole range of benefits that we can leverage.

1. Transactions are attached algorithmically according to traffic volume, thus making the entire process highly efficient

2. Pruning of transaction histories helps save storage and increase lookup efficiency

3. Scalability is enhanced with unmeasurable potential peak

4. High TPS levels can be achieved without putting significant strain on the system

The Jura Team

Telegram: https://t.me/juranetwork
Twitter:
@juraprotocol

Jura is defining the future of blockchain and we want you to be a part of it
So share this article and don’t forget to follow us on our social media to stay updated!

--

--

Jura Protocol Media

Redefining how blockchain protocols work from the ground up