Blockchain Decrypted: The Block Lattice - In Depth

in #blockchain7 years ago (edited)

Abstract-blue-lights-header 850x105 - chapter 8 - block lattice - 2 in depth.png

Part 2, in this blog we look at the block lattice more in-depth, what makes it tick, how does it validate transactions, and so much more.

Index

Basic Principles

Nano has introduced a brand new block-lattice architecture in which accounts individually have their own blockchain that creates the lattice and achieves consensus by Proof of Stake (PoS) voting. Transactions are instant, with no fees, and Nano has no limit in terms of scalability, making Nano a very good candidate for peer-to-peer transactions. There is (virtually) no mining, and the amount of power required is minuscule making every day transactions for consumers a reality.

Unlike other cryptocurrencies Nano assigns every user their own blockchain or account-chain that records the accounts transaction and balance history. Only the account owner may update their chain. A transfer will require two transactions, one to send an amount, and the other to receive.

Inner workings (Block Lattice)

The block lattice isn't one single long blockchain, it is in effect a database of blockchains where each user (node) gets their own blockchain that only they can add onto.

Users send funds by creating two blocks: one send block on their personal blockchain and one receive block on the recipients blockchain. Users receive funds by "pocketing" any outstanding receive blocks into their personal blockchain (this works automated upon log-in).

This means users do not need to be online to receive funds, whenever a user decides to access their funds, the wallet itself will automatically "pocket" any outstanding receive blocks onto their blockchain. Pocketing funds essentially means signing the receive block with your private key, so that it can be added to your personal blockchain.

Confirmation procedure:

  • Once a node has accepted a "receiving" transaction, it runs the confirmation protocol
  • It subsequently digitally signs the transaction after confirming it
  • It then adds the block into its ledger (status pending)
  • It then broadcasts the block out to the network to announce the block it has observed.
  • The node then waits and observes incoming publish and confirm messages to see if any conflicting blocks are published.
  • Non-voting nodes will transmit unsigned public blocks
  • Voting nodes will sign the block with their voting key and publish a confirm message
  • A message / transaction is considered confirmed if there are no conflicting blocks and when a 50% vote quorum has been reached
  • If there is a conflicting block the node will wait 4 voting periods (15 secs per voting period, 1 minute total) and confirm the winning block, rejecting the losing block.
  • If the node that was waiting receives the rejection, it will reject the block from its chain.

Asynchronous Transactions

The network operates asynchronously, I.e. it isn't necessary for any user to be online to receive the double-entry "receiving" transactions, the individual blockchain will synchronise upon the next log-in and the pending receiving transactions will be cleared then (either manually or automated). The transactions will run through the confirmation procedure at this point and the node then waits for the confirmation messages.

asynchronous lattice.png

Visual representation of asynchronous transactions in the block lattice, for more information see chapter 5, block lattice visualisation.

Network Flooding

Nano works around a principle of Network flooding, I.e. it expects all nodes to be aware of all transactions when they occur, in order to do so, a node broadcasts a block it hasn't seen before to all other nodes in the network that it is aware of.

The nodes receiving it do the same (if they hadn't seen the block previously), etc. until the entire network is aware of the transaction. This gives the greatest probability of all nodes receiving a copy of all transactions; or at least a probability high enough that 100% does not need to be achieved.

Network flooding.png

Visual representation of network flooding, see chapter 6 for more information.

Network Echo Period

In an ideal situation, each node will receive a duplicate copy of the same transaction at some point (through network flooding), the time between receiving this new transaction the first time and receiving of the last duplicate copy is referred to as the network echo period.

This gives a complete view of transactions accepted by all other nodes on the network and this period is probabilistically based on the network latency between nodes.

A node can establish a reasonably bound for itself for the duration of its own network echo.

Network echo1.png

Visual representation of network echo, see chapter 7 for more information.

Specific to Nano

The following is specific to how Nano operates, depending on how you’d set up your own version of the block lattice, you may or may not use all of the below.

Consensus Algorithm

In Nano, there is a different confirmation system based on “representatives”. In general, all that is needed is your cryptographic signature on your “send” and “receive” blocks. When the node syncs, it runs through the ledger to ensure that the signatures are authentic (remember that all of this is done in a matter of seconds).

In order to prevent double-spend attacks, Nano has a “representative system”. A representative in the system is basically an address with a lot of money. The representative acts as the arbiter of which double spent block to go through and propagate through the system. I’ll elaborate a lot more on potential attack vectors in chapter 4.

Incentive for Running Full Nodes

A very common question for Nano is, who is going to pay for running the full nodes, in most crypto currencies there is an incentive for miners to run full nodes because they can collect mining fees (coins and transaction fees); there is no mining in Nano however.

Clarification:

A node is basically a computer that facilitates transactions across the global network. Nodes may be added or removed at any time by anyone on the internet and the cryptocurrency, as a whole, will continue to function. Cryptocurrencies tend to need a minimum number of nodes to prevent attacks on the network, but that’s another topic (see chapter 4 on attacks).

Use Case for Nodes

Every exchange needs to host their own nodes as a point of withdrawals and deposits. Let’s assume every exchange needs 5 nodes on average for load balancing purposes and upgrades. (They will need more or less than that, depending on traffic, but 5 is a nice little conservative estimate.) Now let’s figure that once these coins become popular, they will be available on roughly 100 exchanges around the world. Again, a conservative estimate, as there are hundreds of popular exchanges around the world, with new ones popping up all the time. This gives us 500 nodes for exchanges, once Nano is widely adopted in the exchange industry.

There is also a commercial need to run nodes. Businesses small and large are joining the cryptocurrency space, and they need to host nodes to provide for our services. Let’s suppose there are thrice as many online stores, marketplaces, and services than exchanges.

I think this is pretty conservative, given that there are way more online stores than there are online exchanges on the internet. Let’s assume they will need an average of only three nodes each, since they will probably have less traffic than a highly popular exchange. This gives us a total of 900 nodes in the commercial space.

We will also have many smart devices in our future. Forbes references a paper that predicts 75 billion IoT devices by 2025. Let’s say that just 0.001% of these devices will need to run full nodes in order to achieve a high quality of service. That gives an additional 750 thousand full nodes running on the network in due time.

So with all these industries combined, there will surely be a strong baseline of nodes at any given time. I predict that Nano will gradually and naturally ramp up their node numbers over the coming years, as they gain more and more popularity.

Conclusion

I believe the block lattice to be a next step in blockchain technology, vastly embracing and dramatically improving on what Bitcoin and The Blockchain has offered to the world. This technology has the potential to become a very big part of everyone’s daily lives, depending on the use cases that are being developed based on the block lattice, I for one can think of a myriad (and I'm working on a few at BlockchainLabs.ai).

My thanks to the Nano / Raiblocks / XRB / Block lattice team for giving us such a fantastic piece of technology!

Acknowledgements / References

Artwork:

• Title page “Intelligent Solutions” courtesy of http://www.hloom.com/cover-pages/
• Page header / footer “Abstract blue lights” created by Kotkoa - Freepik.com

Other references:

Contact me

You can contact me here with any questions, suggestions and / or to discuss the topic of this document:

LinkedIn: https://www.linkedin.com/in/iwanspillebeen/
Email: iwan@blockchainlabs.ai
CryptoPub/ToshiTimes: https://thecrypto.pub/u/iwan.spillebeen

Sponsoring

I write these papers to - hopefully - help make blockchain more accessible to people new to the technology, I don't get paid, nor sponsored to write these papers. If you absolutely feel inclined to donate something to the writing of this document, you can do so at the following addresses:

  • Ethereum / Ether: 0x6E2a1f9baD495B894A2c6F8240918620F899f4E2
  • Nano / XRB: xrb_1xxzi1o9ywinusod35dcun6ku385i33bohhh8hpap76fh67fgnxg1m3qm9mb

Disclaimer

Blockchain – Decrypted is written as a series of chapters, aimed at demystifying the various workings of blockchain technology. Where appropriate I use examples from existing or to-be cryptocurrencies, these examples are just that, examples, and do not aim at promoting or otherwise endorsing any given cryptocurrency.

This document does not constitute legal or financial advice and I do not make any guarantees or promises as to any results that may be obtained from using my content. No one should make any investment decisions without first consulting his or her own financial advisor and conducting his or her own research and due diligence. I disclaim any and all liability in the event any information, commentary, analysis, opinions, advice and/or recommendations prove to be inaccurate, incomplete or unreliable, or result in any investment or other losses.

Abstract-blue-lights-footer 850x105 - with copyright.png

Sort:  

What is a 'vote quorum' ?

A quorum in traditional systems is a minimum number of members in an assembly necessary to conduct the business of that group. In Nano / block lattice, this is the minimum number of nodes that need to cast a vote a positive vote on a transaction, in order for the network to accept that transaction as valid.

In order for a transaction to be accepted and finalised, it needs a minimum of 50% vote quorum from the network (I.e. 50% of the nodes in the network need to agree on the transactions' validity.

I hope that answers the question? I not, feel free to let me know.

ah ok, I think I got it.

Is the positive vote just means that the transaction is valid, meaning it is signed with the proper digital signatures?

I think I'm confused because of there is also representatives, which also vote. But they vote on different things?

Correct, if the vote is positive (50% quorum from the network) means the transaction is valid and accepted.

The representatives kick in when there is no quorum from the network, they vote in case of disputes on transactions, which according to the Nano team is about 1% of the time.

Each round of voting takes approximately 15 seconds, and the maximum rounds of voting is set to 4 (1 minute) at which time the chain takes on transaction and accepts it as true while rejecting the other (only in case of disputes).

Chapter 3 is now available: (https://steemit.com/blockchain/@iwan.spillebeen/blockchain-decrypted-the-block-lattice-adaptability) in which we discuss adaptability, scalability and long term adoption.

Chapter 6 is now available (https://steemit.com/blockchain/@iwan.spillebeen/blockchain-decrypted-the-block-lattice-network-flooding) in which we discuss network flooding and network echo.