Sunday, June 12, 2016

Blockchain

  • Design by contract

Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach to designing software.
It prescribes that software designers should define formal, precise and verifiable interface specifications for software components, which extend the ordinary definition of abstract data types with preconditions, postconditions, and invariants.

These specifications are referred to as "contracts", in accordance with a conceptual metaphor with the conditions and obligations of business contracts.
The DbC approach assumes all client components that invoke an operation on a server component will meet the preconditions specified as required for that operation. Where this assumption is considered too risky (as in multi-channel client-server or distributed computing) the opposite "defensive design" approach is taken, meaning that a server component tests (before or while processing a client's request) that all relevant preconditions hold true, and replies with a suitable error message if not.

The central idea of DbC is a metaphor on how elements of a software system collaborate with each other on the basis of mutual obligations and benefits. The metaphor comes from business life, where a "client" and a "supplier" agree on a "contract" that defines, for example, that:

    The supplier must provide a certain product (obligation) and is entitled to expect that the client has paid its fee (benefit).
    The client must pay the fee (obligation) and is entitled to get the product (benefit).
    Both parties must satisfy certain obligations, such as laws and regulations, applying to all contracts.


https://en.wikipedia.org/wiki/Design_by_contract



  • Cryptocurrency Tutorial


Cryptocurrency is a digital currency that functions as a medium of exchange, utilizing the process of cryptography enables users to transact securely using these digital coins.
Cryptocurrencies operate on a distributed ledger called a blockchain, where all transactions using a cryptocurrency is made public and permanently recorded.
Units of a cryptocurrency are produced through a process known as mining, where special computer software is used to solve mathematical problems in exchange for a unit or more of that cryptocurrency.
Due to the decentralized technology on which cryptocurrencies operate, the supply of a cryptocurrency is not subject to the control of a central authority; the total supply of a cryptocurrency is normally predetermined, which is made clear to all users.

Blockchain Technology
A blockchain is a public ledger of all cryptocurrency transactions.
Each group of transactions is referred to as a block, with each block then being combined chronologically into a chain.
Information that exists on the blockchain is shared and the public, therefore, every node connected to the network, possesses a copy of the blockchain.
Each node will be able to have access to all transactions that have ever taken place, or will take place on the blockchain.
The distributed nature of blockchain technology also means that the database cannot be controlled by a single entity, nor can it easily be hacked as there is not one single point of failure

Cryptocurrency Mining
Cryptocurrency mining is a process by which new coins are introduced into the existing circulating supply, as well as a process used to secure the network that the coins operate on.
The people who mine a coin, are known as miners.
Therefore, instead of having a central authority that produces and secures the money supply, this is spread out across the network.

The Mining Process
Transactions that occur on the network such as, “Alice sends 10 Bitcoins to Bob”, are collected by a miner and bundled up into a block.
The miner then verifies that all transactions in the block are valid.
If a miner attempts to submit a block with an invalid transaction, the block will be rejected.
An example of an invalid transaction would be, Alice, sending 10 Bitcoins to Bob, even though she does not have 10 Bitcoins to send.
After the miner has successfully verified that all transaction in the block is valid, he must then compute a cryptographic hash.
It is necessary for miners to perform this computation in-order to prevent just anyone from being able to create blocks, this, therefore, secures the network against fraudulent blocks.
Computing a cryptographic hash requires a large amount of computing power, as hundreds of millions of calculations are needed to be performed each second.
This process is known as proof-of-work.
Once the miner successfully solves the hash, the block is then relayed to the network to be checked against the consensus rules.
Once accepted, the block is then added to the blockchain network and the miner is rewarded with a set amount of the cryptocurrency.

Decentralized Applications
Typically associated with the Ethereum project, a decentralized application, or DApp, is an application that runs on a peer-to-peer network of computers, as opposed to a single computer.
The key benefit of this is, users of the network do not depend on a central computer in order to send and receive information.
let us consider some examples of centralized applications such as Facebook, Twitter, and YouTube. These are all examples of centralized applications because, in order to use them, the user is dependent on a network owned and operated by a central entity. This is in contrast with a decentralized application, where the user is not dependent on a central entity to send and receive information.
Even though a DApp does not necessarily require a blockchain from which to operate on top of, most DApps harness the power of blockchain technology using what is known as, smart contracts.
Smart contracts are self-executing contracts designed to enforce the terms of an agreement.
For example, if you want to purchase a house, this process would involve multiple third parties such as estate agents and lawyers, who would settle the purchase for you.
However, with the use of a smart contract, the process need only involve the buyer and the seller.

DApps rely on smart contracts in-order to access the blockchain and operate, much in the same way centralized applications rely on centralized servers to operate.

some common requirements of an application before it can be truly considered decentralized:
    The application must be open-source
    Application’s data must be stored on a decentralized blockchain
    The application must use a cryptographic token e.g. Bitcoin or one inherent to the application
    The application must generate tokens via a cryptographic algorithm, e.g. Proof-of-work

Smart Contracts
A smart contract is a self-executing contract that is designed to enforce the terms of an agreement created between two parties.
A well-known use of smart contracts can be found on the Ethereum blockchain, where they are integrated into decentralized applications (DApps).
The trustless and self-executing nature of smart contracts means that the operation of DApps need not depend on a centralized network.
However, the use of smart contracts does not come without risk. The code included in a smart contract may contain bugs and security holes that are exploitable.
This was the case when, in June of 2016, approximately $50 million worth of ETH was stolen from the Decentralized Autonomous Organization (DAO), due to an exploitable security hole in its smart contract

Initial Coin Offering (ICO)
An initial coin offering (ICO) is a means by which a start-up can raise capital by selling cryptocurrency inherent to their project, in exchange for a more valuable cryptocurrency, such as Bitcoin or Ethereum

The Whitepaper
In the cryptocurrency space, a whitepaper is a document presented by a start-up with the intention of informing and encouraging investors to participate in the start-up’s ICO.
A whitepaper contains more technical and in-depth discussions on the project that the start-up is building. This could include The consensus algorithm the project decides to use, how the nodes that operate on project’s platform would function, and the token system.

Hard Fork & Soft Fork
Hard Fork
A hard fork is a permanent divergence from the previous version of a blockchain; a new set of consensus rules are introduced into the network that is not compatible with the older network.
Under a hard fork, blocks (transactions) that are confirmed by nodes that are not yet upgraded to the latest version of the protocol software will be invalid. Nodes running the older version of the software will have to follow the new set of consensus rules for their blocks to be valid on the forked network
A hard fork can take place to augment the functionality of a blockchain, increase the security of operating on the network, or even to reverse transactions on the blockchain. With the latter scenario occurring for the Ethereum blockchain, where a hard fork was implemented in order to reverse transactions following a hack on the DAO (Decentralized Autonomous Organization).
Soft Fork
A soft fork is a backward compatible method of upgrading a blockchain. Soft forks do not require old nodes to upgrade to maintain consensus, because all blocks on the softforked blockchain follow the old set of consensus rules as well as their new ones. However, blocks produced by nodes conforming to the old set of consensus rules will violate the new set of consensus rules, and as a result, will likely be made stale by the upgrading mining majority. This is because for a soft fork to work, a majority of miners need to recognize and enforce the new set of consensus rules. If this majority is reached, then the older network will fall into disuse, with the newer blockchain gaining recognition as the ‘true’ blockchain

Proof-Of-Work & Proof-Of-Stake
Proof of Work
Proof-of-work (PoW) is a requirement that must be performed by a miner in order to add a block to the blockchain. PoW occurs in the mining process when a miner successfully solves a complex mathematical puzzle on the network. Answers to the problem are known as a hash; the hash that is produced must be valid, in that it must be lower than the target hash. A target hash is simply the hash value that has been determined by the network. A hash that is above the target hash will be invalid, and the puzzle will not be solved. As more of these puzzles are solved, the network will automatically increase its difficulty. What this means is that the target hash value will be lowered, so that the number of valid hash values capable of being produced is also lowered. This correspondingly makes it much more difficult for a miner to generate a valid hash and solve the network’s mathematical puzzle
PoW also serves as a security measure, it deters denial of service (DoS) attacks because the network requires the attacker to commit significant processing power to generate a valid hash value, which can be an extremely expensive process
Proof of Stake
A limitation to the PoW model is that a significant amount of electrical energy is wasted generating random guesses.
Proof-of-stake (PoS) aims to solve this energy problem by requiring miners to put up a stake or lock up a certain amount of their funds to validate a block, instead of having to generate hash values.
PoS miners are limited to mining a percentage of transactions that are reflective of their stake in the cryptocurrency.
For example, a miner who owns 5% of Bitcoin available may only mine 5% of blocks on the network.
Furthermore, there is no block reward in the PoS system, instead, miners are rewarded with transaction fees for the verification of a block.

https://www.mycryptopedia.com/cryptocurrency-tutorial/

  • Cryptocurrency
A cryptocurrency is a medium of exchange designed around securely exchanging information which is a process made possible by certain principles of cryptography.
Fundamentally, cryptocurrencies are specifications regarding the use of currency which seek to incorporate principles of cryptography to implement a distributed, decentralized and secure information economy.

Hundreds of cryptocurrency specifications now exist; most are similar to and derived from the first fully implemented cryptocurrency protocol, Bitcoin

cryptocurrency vs fiat money
When comparing cryptocurrencies to fiat money, the most notable difference is in how no group or individual may accelerate, stunt or in any other way significantly abuse the production of money
Instead, only a certain amount of cryptocurrency is produced by the entire cryptocurrency system collectively, at a rate which is bounded by a value both prior defined and publicly known

 In centralized economic systems such as the Federal Reserve System governments regulate the value of currency by simply printing units of fiat money or demanding additions to digital banking ledgers

 However, governments cannot produce units of cryptocurrency and as such, governments cannot provide backing for firms, banks or corporate entities which hold asset value measured in a decentralized cryptocurrency

 The underlying technical system upon which all cryptocurrencies are now based was created by the anonymous group or individual known as Satoshi Nakamoto for the purpose of creating an economy within which the practice of fractional reserve banking would be fundamentally impossible

 Within cryptocurrency systems the safety, integrity and balance of all ledgers is maintained by a swarm of mutually distrustful parties referred to as miners who are usually members of the public handling cryptocurrency transactions for a small fee

 Miners use resource-intensive computer software to help secure a particular cryptocurrencys network by increasing that networks ability to solve mathematic equations which the network directly uses to impede fraudulence.

 Subverting the underlying security of a cryptocurrency is mathematically possible, but the cost may be unfeasibly high
 Against Bitcoin's proof-of-work based system, an attacker would need computational power greater than that controlled by the entire swarm of miners in order to even have 1 / (2^(# authentication rounds for this cryptocurrency) - 1) of a chance

 Most cryptocurrencies are designed to gradually introduce new units of currency, placing an ultimate cap on the total amount of currency that will ever be in circulation. This is done both to mimic the scarcity (and value) of precious metals and to avoid hyperinflation.

 As a result, such cryptocurrencies tend to experience hyperdeflation as they grow in popularity and the amount of the currency in circulation approaches this finite cap.

 Compared with ordinary currencies held by financial institutions or kept as cash on hand, cryptocurrencies are less susceptible to seizure by law enforcement


 The first cryptocurrency, Bitcoin, was created in 2009 by pseudonymous developer Satoshi Nakamoto. It used SHA-256, a cryptographic hash function, as its proof-of-work scheme.
 Litecoin was released. It was the first cryptocurrency to use scrypt as its hash function instead of SHA-256
 Peercoin was the first to use a proof-of-work/proof-of-stake hybrid

http://en.wikipedia.org/wiki/Cryptocurrency

  • Cryptocurrency Storage

Hardware Wallets
These are special devices designed to hold a user’s private keys.
the cryptographic keys are stored in a special section of the device’s microcontroller
They feature a double-tiered protection system that comprises a PIN number and a password (seed).
The only drawback to these devices is that if you either lose it or forget both the PIN number and seed, there is no way to recover the funds held in the wallet.

Desktop Wallets
A desktop wallet is a software program
This implies that you can only access it from the computer on which it is installed. In most cases, a desktop wallet will only work with one cryptocurrency
However, they usually require a full install of the digital currency’s blockchain in order to function. The immobility of desktops and laptops also limit their functionality. And in case of a malware attack on the hard drive, your stored coins might be lost forever.

Paper Wallets
A paper wallet is one of the most secure storage options and is also referred to as cold storage.
It entails printing your private and public keys on paper for offline storage. These keys are then used for future access of your wallet using a specified software.
A paper wallet is impossible to attack using any digital tools because it is a physical storage option.
It is one of the best options for long-term storage and makes it easy to transfer cryptocurrency assets physically by simply handing over the paper.

Mobile Wallets
These are comparable to desktop wallets in that they require users to download and install an app only this time, it’s on a mobile device.

Online Wallets
An online wallet is one that is accessed by means of a web browser. It runs on the cloud which means that you can access it using any device in the world for as long as it has computing capabilities.
https://bitbounce.com/blog/types-cryptocurrency-storage-explained/


  • An initial coin offering (ICO) or initial currency offering is a type of funding using cryptocurrencies

In an ICO, a quantity of cryptocurrency is sold in the form of "tokens" ("coins") to speculators or investors, in exchange for legal tender or other cryptocurrencies such as Bitcoin or Ethereum
The tokens sold are promoted as future functional units of currency if or when the ICO's funding goal is met and the project launches.
In some cases like Ethereum the tokens are required to use the system for its purposes
An ICO can be a source of capital for startup companies
ICOs can allow startups to avoid regulatory compliance and intermediaries such as venture capitalists, banks and stock exchanges.
https://en.wikipedia.org/wiki/Initial_coin_offering



  • What is An Initial Coin Offering

The idea to presale coins of a cryptocurrency or token of a blockchain project has evolved in a crazy successful instrument to raise funds for the development of a new application
With the success of Ethereum ICO are more and more used to fund the development of a crypto project by releasing token which is somehow integrated into the project.

Maybe the first cryptocurrency distributed by an ICO was Ripple. In early 2013 Ripple Labs started to develop the Ripple called payment system and created around 100 billion XRP token. The company sold these token to fund the development of the Ripple platform.
https://blockgeeks.com/guides/initial-coin-offering/

  • Proof-of-stake
Proof-of-stake is a method of securing a cryptocurrency network through requesting users to show ownership of a certain amount of currency.
It is different from proof-of-work systems that run hashing algorithms to validate electronic transactions.
It is most commonly used as a supplement to proof-of-work in Peercoin

Peercoin's proof-of-stake system is based around the concept of "coin age," a measure of the product of the currency amount held times the amount of time it has been held for.

When generating a proof-of-stake block, the user sends some money to themselves, consuming their coin age in exchange for a preset reward.
This minting transaction becomes more likely to succeed over time until a valid block is found, generating a new block on the blockchain and a payout for the proving user.
This process secures the network and gradually produces new coins over time without consuming significant computational power
http://en.wikipedia.org/wiki/Proof-of-stake
  • BGX has made a mark in the market of decentralization. They are a multifunctional organization providing a processing platform in the mobile gaming field

They stand out because they are backing games and software with artificial intelligence
BGX developed a blockchain algorithm which enables them to process almost up to 100,000 transactions/second.
These transactions although high in volume, are operated at a small cost, while at the same time maintaining at the same time unparallel security.
BGX’S algorithm works ideally for building a platform for financial processing.

Weak points:
   There is a loophole where they have no clue what to do when users use separate tokens to buy games and benefit from it
https://icoshock.com/bgx-ico-review-ai-powdered-mobile-gaming-platform/


  • a smart contract, or simply contract, as a piece of code created by a blockchain user and executed by a blockchain node. A smart contract language (SCL) is a programming language that is either used to write a smart contract directly or is compiled to it.

https://github.com/s-tikhomirov/smart-contract-languages



  • Eth-Tweet

Eth-Tweet is a decentralized blogging platform that provides functionality similar to Twitter. However, because Eth-Tweet operates on top of the decentralized Ethereum blockchain, no centralized entity can control what a user decides to publish.
decentralization means there is no company or central authority in control of what is being published
The system is censorship resistant in the sense that once a message is published, it can only be removed by the publisher.
All accounts can receive donations in Ethereum's Ether cryptocurrency. Being able to receive donations can be an incentive to run a decentralized microblogging feed.
If you want to edit the source files, you can use Ethereum's Mix IDE which can be found here.
https://github.com/yep/eth-tweet





  • Top 5 Blockchain Programming Languages –

There are several programming languages that can help you create applications for blockchain
    C++
    Java
    Python
    Simplicity
    Solidity

C++
This blockchain programming language allows for effective management of resources and offers greater control over memory. Blockchain requires many users and miners to interact and operate both systematically and simultaneously.
C++ creates applications that can not only coordinate between numerous endpoints but also process their interactions quickly. It’s why blockchain projects like Bitcoin, Ethereum, and Ripple were all written in C++.

Java
It is also now useful in making simple and immutable blockchains. Immutability makes it impossible for anyone to change the contents in a block after it has been verified or “hashed”.
Every new block, which is added to a blockchain includes the hash of the previous block along with a new hash for the new block. Once hashed, any change in its content will produce a new “previousHash”, which will deter the new block from being added to the chain till its contents match with the contents of the previous block, thereby maintaining immutability.

Python
His goal was to create a simple and minimalistic programming language. The syntax and logic of this blockchain programming language uses reflects this very ambition of the creator

Simplicity
Simplicity is a blockchain programming language that was designed for smart contracts.
Solidity is an attempt to improve basic cryptocurrency languages like Bitcoin Script and Ethereum Virtual Machine (EVM). It uses static analysis – a technique that enables a universal algorithm to determine the cost of running any Simplicity program – to prevent programs from “running out of gas” during analysis.

Solidity
This blockchain programming language is high-level and contract-based. Its script is similar to scripts of some of the languages listed above like Java, and it borrows concepts like variables, functions, and classes from them.

Conclusion
The blockchain is revolutionizing the way data and assets are traded.
A Blockchain Developer must know one of the modern programming languages like Java or C++. These languages don’t just help create applications for blockchain, but also help learn contract-based or blockchain-based languages like Simplicity or Solidity.
https://acadgild.com/blog/best-blockchain-programming-languages


  • What Are the Top Five Blockchain Programming Languages? 

Taking into consideration the name "blockchain," it can be defined as the block that contains digital information and does not allow the hackers to extract this information in any way possible.
The blockchain pattern was designed to keep Bitcoins data safe in every aspect of the word

C++
It basically packs the data in the form of objects and sends it across to the user only to be opened at their end. Since the principle use of blockchain is in a similar format, it is one of the most coveted languages for working this out in the blockchain

Java
Creating the relationship between the data and sending it across to the user is quite simple with the use of Java language.it can run on almost any format of computers with a small installation of JRE or the Java runtime environment.

Python
you can perform many tasks with a single command in this language. It makes the work of building the block with the relevant information and linking them together with a much easier one to accomplish.

Ruby
enables you to use a heady mix of languages to create the required blockchain

Solidity
Solidity is a contract-based language that is primarily used to enhance the use of EVM machines.
One of the reasons why programmers prefer using this language to build the blockchain is the fact that it can catch hold of any iteration at the time of coding
It saves you a lot of time while creating the message to send across to another user.


https://dzone.com/articles/what-are-the-top-5-blockchain-programming-language


  • Solidity Tutorials

Solidity is a high-level language whose syntax is similar to that of JavaScript and it is designed to compile to code for the Ethereum Virtual Machine.
You can start using Solidity in your browser, with no need to download or compile anything. This application only supports compilation - if you want to run the code or inject it into the blockchain, you have to use a client like AlethZero.

https://ethereumbuilders.gitbooks.io/guide/content/en/solidity_tutorials.html



  • Solidity is a statically typed, contract-oriented, high-level language for implementing smart contracts on the Ethereum platform.

To get started with Solidity, you can use Remix, which is a browser-based IDE. Here are some example contracts:
Solidity is a statically-typed curly-braces programming language designed for developing smart contracts that run on the Ethereum Virtual Machine. Smart contracts are programs that are executed inside a peer-to-peer network where nobody has special authority over the execution and thus they allow to implement tokens of value, ownership, voting and other kinds of logic.
When deploying contracts, you should use the latest released version of Solidity. This is because breaking changes, as well as new features and bug fixes, are introduced regularly
https://github.com/ethereum/solidity



  • Solidity is a statically typed, contract-oriented, high-level language for implementing smart contracts on the Ethereum platform.

Solidity is an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs which govern the behavior of accounts within the Ethereum state.
Solidity was influenced by C++, Python, and JavaScript and is designed to target the Ethereum Virtual Machine (EVM).
Solidity is statically typed, supports inheritance, libraries and complex user-defined types among other features.
https://solidity.readthedocs.io/en/v0.5.3/


  • Solidity lets you program on Ethereum, a blockchain-based virtual machine that allows the creation and execution of smart contracts, without requiring centralized or trusted parties.

Solidity is a statically typed, contract programming language that has similarities to Javascript and C. Like objects in OOP, each contract contains state variables, functions, and common data types. Contract-specific features include modifier (guard) clauses, event notifiers for listeners, and custom global variables

Some Ethereum contract examples include crowdfunding, voting, and blind auctions.

https://learnxinyminutes.com/docs/solidity/


  • Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third-party interference

These apps run on a custom built blockchain, an enormously powerful shared global infrastructure that can move value around and represent the ownership of property.

Smart money, smart wallet
The Ethereum Wallet is a gateway to decentralized applications on the Ethereum blockchain. It allows you to hold and secure ether and other crypto-assets built on Ethereum, as well as write, deploy and use smart contracts.

Build a new kind of decentralized application
Could your business be enhanced by operating on a cryptographically secure, decentralized, tamper-proof network?

https://ethereum.org/
  • Using Blockchain Technology for Secure Data Encryption

Similar to Bitcoin, Enigma removes the need for a trusted third party, enabling autonomous control of personal data. For the first time, users are able to share their data with cryptographic guarantees regarding their privacy.
http://www.newsbtc.com/2015/07/23/using-blockchain-technology-for-secure-data-encryption/

The blockchain is a way of storing all kinds of valuable data (like money and medical records) in the form of encrypted blocks, which are shared between thousands of random computers connected into a peer-to-peer network. Once recorded, the data in a block cannot be modified without altering the whole blockchain at once. With no centralized storage, corrupting Blockchain becomes literally impossible, since the only way to override the network is to get physical access to every computer in it.

https://expertise.jetruby.com/blockchain-technology-explained-1a07da48c187


Byzantine Fault Tolerance(BFT) algorithms
Understanding Blockchain Fundamentals, Part 1: Byzantine Fault Tolerance
Whenever a new transaction gets broadcasted to the network, nodes have the option to include that transaction to their copy of their ledger or to ignore it
When the majority of the actors which comprise the network decide on a single state, consensus is achieved.

A fundamental problem in distributed computing and multi-agent systems is to achieve overall system reliability in the presence of a number of faulty processes. This often requires processes to agree on some data value that is needed during computation

In order to create a secure consensus protocol, it must be fault tolerant.
the unsolvable Two Generals Problem.
the Byzantine Generals’ Problem
Byzantine Fault Tolerance

The Two generals Problem
describes a scenario where two generals are attacking a common enemy7
General 1 is considered the leader and the other is considered the follower.
Each general’s army on its own is not enough to defeat the enemy army successfully, thus they need to cooperate and attack at the same time
The Two Generals Problem has been proven to be unsolvable.

The Byzantine Generals Problem
a generalized version of the Two Generals Problem
describes the same scenario, where instead more than two generals need to agree on a time to attack their common enemy.
The leader-follower paradigm described in the Two Generals Problem is transformed to a commander-lieutenant setup.
In order to achieve consensus here, the commander and every lieutenant must agree on the same decision
if the commander is a traitor, consensus must still be achieved. As a result, all lieutenants take the majority vote.
The algorithm to reach consensus in this case is based on the value of majority of the decisions a lieutenant observes.

Theorem: For any m, Algorithm OM(m) reaches consensus if there are more than 3m generals and at most m traitors.
This implies that the algorithm can reach consensus as long as 2/3 of the actors are honest.
If the traitors are more than 1/3, consensus is not reached, the armies do not coordinate their attack and the enemy wins.

The important thing to remember is that the goal is for the majority of the lieutenants to choose the same decision, not a specific one.

Byzantine Fault Tolerance
Byzantine Fault Tolerance is the characteristic which defines a system that tolerates the class of failures that belong to the Byzantine Generals’ Problem.
The algorithm mentioned in the previous section is Byzantine Fault Tolerant as long as the number of traitors do not exceed one third of the generals.

How does this all relate to blockchain?
Blockchains are decentralized ledgers which, by definition, are not controlled by a central authority.
Due to the value stored in these ledgers, bad actors have huge economic incentives to try and cause faults.
Byzantine Fault Tolerance, and thus a solution to the Byzantine Generals’ Problem for blockchains is much needed.
In the absence of BFT, a peer is able to transmit and post false transactions effectively nullifying the blockchain’s reliability
To make things worse, there is no central authority to take over and repair the damage.

The big breakthrough when Bitcoin was invented, was the use of Proof-of-Work as a probabilistic solution to the Byzantine Generals Problem


https://medium.com/loom-network/understanding-blockchain-fundamentals-part-1-byzantine-fault-tolerance-245f46fe8419


  • Ethereum/Quorum

Quorum is an Ethereum-based distributed ledger protocol with transaction/contract privacy and new consensus mechanisms.
https://github.com/jpmorganchase/quorum


  • What is Quorum Blockchain?

The functioning of Quorum is similar to Ethereum but with a few differences. Here is how Quorum is different from Ethereum blockchain :

Network and peer permissions management
Enhanced transaction and contract privacy
Voting-based consensus mechanisms
Better performance
https://www.blockchain-council.org/blockchain/what-is-quorum-how-is-it-different-from-other-blockchain/


  • Hyperledger is an open source collaborative effort created to advance cross-industry blockchain technologies. It is a global collaboration, hosted by The Linux Foundation, including leaders in finance, banking, IoT, supply chain, manufacturing and technology.

https://www.hyperledger.org/


  • Interledger is an open protocol suite for sending payments across different ledgers. Like routers on the Internet, connectors route packets of money across independent payment networks. The open architecture and minimal protocol enable interoperability for any value transfer system. Interledger is not tied to any one company, blockchain, or currency. 

https://interledger.org/

No comments:

Post a Comment