Senin, 29 Oktober 2018

Smilo describes the Smilo consensus mechanism called the Smilo BFT + protocol


In the 'Smilo explained' series we will explain the technology and choices that define the Smilo Platform in an accessible way. In this article of Smilo explained we are going to collaborate on Smilo’s consensus mechanism called the Smilo BFT + protocol. This protocol ensures fully secure, scalable, quick, and sustainable transactions.

https://smilo.io/

The blockchain core of the Smilo platform contains several features which make it truly unique. These features have been implemented by several advanced techniques and algorithms. One of these algorithms is our consensus mechanism which is based on the popular Byzantine fault tolerance (BFT) protocol.

Before elaborating on Smilo's exclusive and improved consensus mechanism, we will explain why a blockchain needs a consensus mechanism, and we will elaborate on the BFT standard consensus protocol.

Consensus mechanism
Every blockchain has at least is similar aspect known as the distributed ledger. A distributed ledger contains a number of previous transactions that have been conducted on the specific blockchain. It is known as a distributed ledger because it is not stored in one central location. In fact, the ledger is a network of computers around the world. For this system to work, this is the most effective network with the content of the ledger, and this is the job of the consensus mechanism.

The objective of a consensus mechanism is to confirm that the information being added to the ledger is valid. This ensures that the block will always be up to date, which is double spending and other unreasonable behavior.

Byzantine Fault Tolerance
In 1982, Leslie Lamport, Robert Shostak, and Marshall Pease published a paper named 'The Byzantine Generals' Problem. 'This problem' which was first published in 1975.

Two Generals ’Problem
In 1975 Akkoyunlu, Ekanadham and Huber describes where two divisions of the Byzantine scenario are located just outside an enemy city. Each division of the Byzantine army is commanded by its own general, and they can communicate with each other through a messenger. After observing the enemy, they must decide upon a common plan of action.

The generals have to decide whether to attack the enemy, or retreat to their base. One of the generals might want to attack, while other prefer to retreat. However, it is critical that you agree on a common decision, since the separate positions are not enough to attack the enemy on their own. A half hearted attack by one general would be worse than a coordinated attack or a coordinated retreat.

As the intention of one of the generals, they must decide upon the same plan of action.

This Two Generals' Problem has been proven to be unsolvable, until 1982.

The Byzantine Generals ’Problem
In 1982, Leslie Lamport, Robert Shostak, and Marshall Pease published their paper named 'The Byzantine Generals' Problem. In this paper, they changed to include more than two generals. This creates a new complication where one or more generals can act as a traitor in this situation. But how do we solve this problem? Well, first we agreed on generals is appointed as a commander, while the other generals were degraded to lieutenant's.

To achieve consensus, the commander and every lieutenant must agree on the same result, so they either have to attack the enemy, or retreat to their base. It is intended as follows:

A commander has to order to lieutenant meaning that:

- Lieutenant’s loyal all will obey the same order.

- In case of a loyal commander, evert loyal lieutenant will obey the commanders order.

Even if the commander is considered as a traitor, the lieutenant will still have to achieve consensus. This is taking a majority vote, and the consensus will be based on the majority of votes which the lieutenant observes.

Theorem: for any number of m, OM (m) reaches consensus algorithm if there are more than 3m generals and at most 1m traitors.

This implementation of the algorithm can reach consensus as long as 2/3 of the actors are honest. If the traitors are more than 1/3 of the actors, consensus is not reached. As a result of this, the armies did not coordinate their attack and the enemy wins the battle.


Where:
m = 0 → No traitors, each lieutenant is loyal.

m> 0 → Each lieutenant's final choice comes from the majority of all lieutenants' choices


Smilo BFT + with Smilo’s Proof of Resources and Time
Smilo platform faces same challenges, while adding a few extra. Smilo is an open and permissionless platform, every owner's meaning can be either commander or a lieutenant. Considering this, the Smilo network will have thousands of actors, which could all be potential traitors.

As the network size increases, Smilo will have to able to scale proportionally. To accomplish this, we decided to structure our network. Click here to read more about the network.

99.9% consensus
Although we will always need more than 66% consensus with Smilo BFT +, a node will never add a block to the chain when this block has been declined. Moreover, even when more than 66% of the node approves a block, Node A declined the block, Node will not be the block to the chain, nor will the follow-up block add this block to the chain.

All Smilo Clients (like the API, Full Wallets, etcetera) are able to verify both blocks and transactions, providing a two-factor authentication for light clients. Clients can validate if it is connected to "Good actors" or "Bad actors", depending on the blockchain hash, and therefore choose transaction to a Good or Bad actor.

Since Smilo BFT + Blacklists are 'Bad actors', each Bad Actor will become an orphan / bad chain (fork). Besides, considering the fact you need 10,000 Smilo to act as a node, an attack is needed.

This makes Smilo 99.9% secure against sibling attacks. A real attack is therefore only possible with 100% "bad actors".

References
Demicoli, C. (2017, June 10). Byzantine Fault Tolerance. Retrieved on 17 August 2018, from https://blog.cdemi.io/byzantine-fault-tolerance/

Konstantopoulos, G. (2017, 1 december). Understanding Blockchain Fundamentals, Part 1: Byzantine Fault Tolerance. Retrieved on 17 August 2018, from https://medium.com/loom-network/understanding-blockchain-fundamentals-part-1-byzantine-fault-tolerance-245f46fe8419

Schumann, T. (2018, April 5). Consensus Mechanisms Explained: PoW vs. Post. Retrieved on 17 August 2018, from https://hackernoon.com/consensus-mechanisms-explained-pow-vs-pos-89951c66ae10

Be part of the Smilo hybrid blockchain movement!

Join our Telegram, Twitter and follow us on other social media for the latest updates! Medium | LinkedIn | Facebook | Reddit

For more information about the Smilo Platform check out our;

Website: https://smilo.io/
Whitepaper: https://smilo.io/files/Smilo_White_Paper_Latest.pdf
ANN Thread: https://bitcointalk.org/index.php?topic=5039760.0
Twitter: https: // twitter .com / SmiloPlatform
Facebook: https://www.facebook.com/SmiloPlatform/
Telegram: https://t.me/SmiloPlatform

Bitcointalk profile ( assyfa ) https://bitcointalk.org/index.php?action=profile;u=1348503

0xCa53A32ab48cF8bA4eC4A494bA4e95ceC26Fe71d

Tidak ada komentar:

Posting Komentar