paint-brush
What is a Multi-Dimensional Distributed Ledger?by@akatsuki1995
684 reads
684 reads

What is a Multi-Dimensional Distributed Ledger?

by Hakam KoubaaSeptember 26th, 2021
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

A Multi-Dimensional Distributed Ledger is a way to deal with scalability, limit transparency, and deal with energy consumption. The idea might be the next revolution in the blockchain industry, but at the same time it might be an idea that is only good on paper, something that will be near impossible to achieve. This is MY vision of a real decentralized, widely used distributed ledger, further studies are a must! Any additional information, upgrades, studies, comments that YOU can provide are more than welcome.

Company Mentioned

Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - What is a Multi-Dimensional Distributed Ledger?
Hakam Koubaa HackerNoon profile picture


Photo by Javier Miranda on Unsplash


Distributed Ledgers are not exclusively blockchains, but blockchains are the most widely used distributed Ledgers.


So for the sake of simplicity, we will take the traditional Blockchain architecture as an example and build our new Distributed Ledger on top of it.


This Idea might be the next revolution in the blockchain industry, a way to deal with scalability, limit Transparency, deal with energy consumption since we can use any consensus mechanism.


At the same time, it might be an idea that is only good on paper, something that will be near impossible to achieve. This is MY vision of a real decentralized, widely-used distributed ledger; further studies are a must!


Any additional information, upgrades, studies, comments that YOU can provide are more than welcome. As they say :


it takes two to tango


Anyway, let’s jump right into it :


What is a Multi-Dimensional Distributed Ledger?


To understand this concept, imagine a normal blockchain of 4 blocks; each block has a header and a body; the header usually contains:


  • Block number
  • Hash of the previous block
  • Merkel Root or hash of this block’s data
  • A nonce (Proof-of-work case)
  • Timestamp


The body contains data. This data can vary widely from simple transactions to smart contracts to any kind of data that we want to store in our chain.


This is the typical structure we are talking about :


Blockchain Structure

Each block is chained with the previous block since it’s storing its hash with the exception of the first block.


Since it’s the first block created, it cannot have a previous hash, so by default, it's usually made up of zeros. This is called the genesis block.


But wait, what if each block is a genesis block for a new blockchain? Is that even possible, I hear you ask.


The short answer is yes, but in order to achieve this, we need to answer a lot of questions, add some features to our blocks, and set some rules. Even then, this technology might still have a lot of flaws.


What are the Dimensions You are Talking About?


A new dimension is a new blockchain out of the last block of an already existing blockchain.


Basically, what this means is that when a new block is mined, instead of adding one new block, we add two, one that follows the same blockchain, and the other one is the first block in our new blockchain.


We will add to our blockchain structure a new section called a portal. A portal can be part of the data or an independent unit, like the header and the body.


  • The main blockchain will be called dimension 0; the new blockchain will be called dimension 1.
  • Each new blockchain out of dimension 0 is called dimension 1.
  • Likewise, Each new blockchain out of dimension 1 is called dimension 2, and so on.


In theory, We can have an infinite number of dimensions.


Why Would I Expand a Block into a New Blockchain?


  1. By expanding a block and transforming it into the genesis block of a new blockchain, the amount of data stored in a blockchain can greatly increase without worrying about the whole chain being oversaturated.


  2. We can use different Proofs in our new dimensions instead of relying on one.


  3. The new dimension can be private to protect personal information, professional secrets, Sensible Data, etc.


  4. By having multiple dimensions, each independent and at the same time attached to the main chain, we can have a new way of communication between different blockchains, a portal to be exact.


Is it possible to Access all of the Data in Different Dimensions?


It really depends on the use cases of our dimensions and how flexible we want the dimensions to be.


Our data can be transparent, and at the same time private, we can verify the integrity of our data and make sure that no one is able to change it, and at the same time, we can save our data off-chain since our portal is already on-chain.


Is it Possible to Code this Solution?


I am working on a prototype; it’s called a prototype because, well, it’s a small version of a huge potential change in the industry (at least that’s what I think).


As I said, any additional information, upgrades, studies, comments that you want to provide are greatly appreciated!


Possible Use Cases of Multi-Dimensional Distributed Ledger


  1. This can be particularly useful in medical use cases, we might not want the public to have access to the data, but at the same time, we want the doctors too.


    A doctor can verify that the data is not tampered with since he can store the hash of the next block, so when needed, as a patient, I can present my private chain with my personal information without the need of making it public.


  2. We can also use this architecture to store a huge amount of data; we could use data fragmentation techniques and split our data into different blocks, forming a new blockchain.


The Features we Need to Add :

Instead of mining one block, we will mine two blocks.


One that goes with the current dimension, and follows its rules, While the second one will follow the rules of the new dimension.


In case we decide to add a new dimension :


  1. We will add a portal to our block that will allow us to access the new dimension; each portal has :


  • Gate Number which is equal to:


                    Gate Number = “Block Number” . “Dimension number”
    


A Gate Number is unique; it’s a way to define different portals in our system.


So if we will open a portal in the second block in our main blockchain ( Dimension 0 ), our gate number will be 2.0


  • Portal Hash is equal to the hash of all the data in our current block.

  • P_Previous Hash equal to zeroes.

  • Timestamp


If we use PoW for our new dimension, a nonce is needed as well.


This is an example of the structure of our new Multi-Dimension blockchain:


Multi-Dimension blockchain Exemple

The Rules we Need to Set :


I want to set some rules, first of all, because my resources are limited, and creating a huge Multidimensional blockchain is out of the question for me.


Secondly, to avoid some bugs in the system, and lastly, well, because it’s funny to create something and set your own rules for it!


  1. If a block has a hash ( In the header or in the P_Previous Hash ) of zeroes, it may not expand its dimension anymore.


  2. Each dimension is independent and can be removed from the chain if needed; however, this may cause some problems, and tempering with the data in our new private chain is not impossible; one way to deal with this is :


    • Storing the hash of the sum of the hashes of all the blocks removed in a new variable in our portal.


  3. Each dimension’s PoW, if it exists, is harder than the previous dimension by a number of zeroes. I set this rule to prevent abusing PoW.

    Save our planet ! Use less electricity!


  4. How new dimensions are created is up to your imagination, on request, random, or when some conditions are met, etc.

Optimization and Next Steps :


This architecture is nowhere near perfect. But I think it’s a good approach if we want to really achieve a perfect distributed ledger.


To summarize, imagine if any kind of blockchain you are currently looking at is a 2D point of view of a 3D-shaped blockchain.


Instead of using block number and gate number, we can use one variable that defines which block we are in and which dimension our current blockchain is situated in.


Instead of adding new features to our block, our data could be the portal itself; this particular case could be useful to store large amounts of data on-chain.


The next step is to code this prototype, which will be my next story; if you find this interesting, or you can contribute to this, or you want to discuss anything with me, feel free to reach out!