The Byzantine Generals Problem – An Intro To Blockchain

A Byzantine fault is any fault presenting different symptoms to different observers. A Byzantine failure is the loss of a system service due to a Byzantine fault in systems that require consensus.

The objective of Byzantine fault tolerance is to be able to defend against failures of system components with or without symptoms that prevent other components of the system from reaching an agreement among themselves, where such an agreement is needed for the correct operation of the system.

Byzantine refers to the Byzantine Generals’ Problem, in which a group of generals, each commanding a portion of the Byzantine army, encircle a city. These generals wish to formulate a plan for attacking the city. In its simplest form, the generals must decide only whether to attack or retreat. Some generals may prefer to attack, while others prefer to retreat. The important thing is that every general agree on a common decision, for a halfhearted attack by a few generals would become a rout, and would be worse than either a coordinated attack or a coordinated retreat.

The problem is complicated by the presence of treacherous generals who may not only cast a vote for a suboptimal strategy, they may do so selectively. For instance, if nine generals are voting, four of whom support attacking while four others are in favor of retreat, the ninth general may send a vote of retreat to those generals in favor of retreat, and a vote of attack to the rest. Those who received a retreat vote from the ninth general will retreat, while the rest will attack (which may not go well for the attackers). The problem is complicated further by the generals being physically separated and having to send their votes via messengers who may fail to deliver votes or may forge false votes.

The typical mapping of this story onto computer systems is that the computers are the generals and their digital communication system links are the messengers.

Byzantine fault tolerance can be achieved if the loyal (non-faulty) generals have a majority agreement on their strategy. There can be a default vote value given to missing messages. For example, missing messages can be given the value . Further, if the agreement is that the votes are in the majority, a pre-assigned default strategy can be used (e.g., retreat).

Byzantine fault tolerance is the dependability of a fault-tolerant computer system, particularly distributed computing systems, where components may fail and there is imperfect information on whether a component has failed. In a “Byzantine failure”, a component such as a server can inconsistently appear both failed and functioning to failure-detection systems, presenting different symptoms to different observers.

It is difficult for the other components to declare it failed and shut it out of the network, because they need to first reach a consensus regarding which component has failed in the first place. The term is derived from the Byzantine Generals’ Problem, where actors must agree on a concerted strategy to avoid catastrophic system failure, but some of the actors are unreliable. Byzantine fault tolerance has been also referred to with the phrases interactive consistency or source congruency, error avalanche, Byzantine agreement problem, Byzantine generals problem, and Byzantine failure.

A Blockchain Voting Example

This Amazon Web Services video provides a simple example of voting on an immutably distributed ledger: blockchain. This year, the ideal of having a truly secure, transparent, auditable and yet anonymous voting system took a step closer to becoming reality.

On November 15, 2018, The Secretary of State of West Virginia, Mac Warner, reported a successful first instance of remote blockchain voting.

He stated that in the 2018 midterm elections, 144 military personnel stationed overseas from 24 counties were able to cast their ballots on a mobile, blockchain-based platform.

Warner stated that “This is a first-in-the-nation project that allowed uniformed services members and overseas citizens to use a mobile application to cast a ballot secured by blockchain technology.”

As positive as this was in terms of approaching the ideal noted above, there is still a necessity for security improvement in terms of mobile device usage.

Why Blockchain: Daniel Larimer at Virginia Tech

https://youtu.be/qlfmPoHzjCg

Daniel Larimer created the cryptocurrency platform BitShares in 2014, was co-founder of the blockchain social platform Steemit in 2016, and is CTO of Block.one, a private company that was the original developer of EOS in 2017.

In this presentation, Larimer describes EOSIO as designed to make blockchain development easier.  He states it’s now one of the largest blockchain companies. Further, he states that it’s the fastest, general-purpose blockchain, with lots of users and no transaction fees.

Following are some additional notes from his talk.

When people think of blockchain they think of tokens, proof of work and wasting energy.  That’s not necessary. 

If you have a database, it should be on a blockchain.  It can be a private blockchain.

Blockchain will give you security, auditability and accountability of the system compared to a non-blockchain database.

With blockchain you can manage your own security and as a company you can mitigate legal issues since every action can be audited.  A blockchain is not modified; it’s append only. The data is not on one server.  It’s only one of many on a network that all verify the data. No one can change it.

Blockchain helps businesses automate compliance with regulators. 

Blockchain is faster.  It eliminates human points of contact that have been implemented to reduce fraud.

Blockchain is a better infrastructure for designing software.

Blockchain will become required as a best practice.  It will be ubiquitous and invisible.


Blockchain and the Role of Open Source Software

https://youtu.be/Y9kX64ZmUcs

Arnaud Le Hors, Senior Technical Staff Member of Web & Blockchain Open Technologies at IBM, speaks about blockchain and the role of open source software at Money20/20, Europe 2017.

Open source is a term denoting that a product includes permission to use its source code, design documents, or content. It most commonly refers to the open-source model, in which open-source software or other products are released under an open-source license as part of the open-source-software movement. Use of the term originated with software, but has expanded beyond the software sector to cover other open content and forms of open collaboration.

Le Hors notes that open source provides a richer community, with more input from many backgrounds, knowledge and experience.

It’s important from a security perspective to have many eyes viewing the technology to ensure bugs are found and remedied.

As a network, blockchain benefits from many developers.

Additionally, open source gives those who inspect the code confidence that it can perform as intended.

IBM decided to create an open blockchain and looked for partners. They were comfortable with the Linux Foundation and decided to create the Hyperledger project under them by contributing code, but there are other good projects, as well. The growth of members has been tremendous.

Introducing HyperLedger Project

This 20min video was published by The Linux Foundation in early 2017 as a keynote address by Brian Behlendorf, Executive Director of Hyperledger Project, formally introducing the project.

The Hyperledger Project is a collaborative effort created to advance blockchain technology by identifying and addressing important features for a cross-industry, open standard for distributed ledgers that can transform the way business transactions are conducted globally. The Project is a Linux Foundation Collaborative Project and implements many open source best practices familiar to other leading projects.

HYPERLEDGER PROJECT GOALS

The goals of the project are delineated as such:

Build an open source, developer-focused community of communities to benefit an ecosystem of Hyperledger-based solution providers and users, focused on blockchain-related use cases that will work across a variety of industry sectors.

Through this, create a family of enterprise grade, open source blockchain frameworks, platforms and libraries, upon which anyone can build and run their own applications to meet real business needs.

Involve developers, service providers, solution providers and end users in the development and promotion of the software, using the best practices of multi-stakeholder open source community.

Host the collaboration environment for the community, establishing a neutral home for community infrastructure and technical governance of Hyperledger.

MANY BLOCKCHAINS

There will not be only one blockchain or a chain-of-all-chains.

There will be many public chains and millions of private chains, potentially each with a different consensus mechanisms, preferred smart contract language/mechanism and other characteristics.

The more common code underlying these chains, the better for everyone.

This is still early days – perhaps like 1994 and the web.

COMMUNITY OF MULTIPLE COMMUNITIES

The idea of Hyperledger is modeled after the Linux Foundation and Apache Foundation projects.

A Hyperledger project involves:

  • A team of volunteer developers
  • Building code in the open
  • Managing their own roadmap and release schedule
  • Responsible for following HL policies and requirements
  • Encouraged but not required to align their code with other projects

Across projects, we have:

  • Common software license
  • Common IP Framework
  • Common collaboration tools
  • Promotion and branding as an equal to other projects
  • Security processes and practices

TWO FLAGSHIP PROJECTS

Fabric: Uses Practical Byzantine Fault Tolerance, which was originally developed by IBM, who contributed to this project along with Digital Asset others.

Hyperledger Fabric is a blockchain framework implementation and one of the Hyperledger projects hosted by The Linux Foundation. Intended as a foundation for developing applications or solutions with a modular architecture, Hyperledger Fabric allows components, such as consensus and membership services, to be plug-and-play. Hyperledger Fabric leverages container technology to host smart contracts called “chaincode” that comprise the application logic of the system.

Sawtooth Lake: Like of Proof of work without requiring the same processing power. Hyperledger Sawtooth is a modular platform for building, deploying, and running distributed ledgers. Distributed ledgers provide a digital record (such as asset ownership) that is maintained without a central authority or implementation.

About Brian Behlendorf
Brian Behlendorf is a technology adviser and entrepreneur who has held founding and executive board positions in firms and non-profits focused on open systems, open standards and open source. Behlendorf organized and served as the Founding President of the Apache Software Foundation, a 501c3 non-profit that organizes volunteer software development projects around key Internet technologies, helping ensure an open and free marketplace. Behlendorf also founded and served as Chief Technology Officer of CollabNet, a company focused on bringing open source collaborative software development tools and methodologies into enterprise environments. Behlendorf currently serves on the Board of the Mozilla Foundation, the single largest open source project by user base, revenue and funded core headcount. Since retiring as Chief Technology Officer of CollabNet in 2007, he has focused on advising corporations, start-ups, investors, governments and NGOs on open source strategies.

Amazon Managed Blockchain


Jonathan Fritz presents a “Deep Dive on Amazon Managed Blockchain.” Before getting into the details of Amazon’s service, he addresses some of the basic concepts regarding blockchain.

Many business networks rely on central authorities, which can be inefficient, expensive and require time-consuming auditing.

An alternative would be a consortium, which could achieve better outcomes by sharing information.  However, they may not agree on how data can be secured and fairly shared.  

Multiple organizations need to independently verify transaction histories and need a single, up-to-date, accurate view of data.

Business logic among multiple organization could be simplified through automation.

Asset transfers require an expensive and inefficient escrow.

A public network needs a way to maintain a tamper-proof history of transactions and global state.

Blockchain resolves these points and eliminates the need for a central authority in business networks.

THREE MAIN BLOCKCHAIN COMPONENTS:

1) Distributed ledger (bottom layer)
2) Consensus mechanism
3) “Smart Contract” execution environment (top layer)

LEDGER DATABASE

The journal is the essence of a blockchain. The journal records an immutable log of all transactions and is maintained by nodes in the blockchain network.

CONSENSUS MECHANISM

This is how the network assures what data goes into the ledger and the data that it’s in their stays correct.

SMART CONTRACTS

Where the applications function and interact.

PUBLIC AND PERMISSIONED NETWORKS

Public networks allow anyone to participate. Members are incentivized to maintain the network.

Permissioned networks limit the members to known entities.

They both have applications in the world.

AMAZON MANAGED BLOCKCHAIN

AMB is a fully managed service that makes it easy to create and manage scalable blockchain networks using open source frameworks: Hyperledger Fabric and Ethereum.

This is a decentralized network and is not owned by Amazon and is low cost: you only pay for what you use.

HYPERLEDGER FABRIC (available now)

Creates permissioned networks with channels to limit the transactions on the ledger each member can see.

Has smart contracts, called Chaincode.

Validation policy for executing Chaincode and is configurable.

Has no native cryptocurrency.

ETHEREUM (coming soon)

Create smart contracts using the Solidity language that runs across nodes in the network.

Very scalable.

Create permissioned networks or use public Ethereum network.

Configured to use Proof-of-Work consensus algorithm for public networks and Proof-of-Authority for private networks.

Anyone who can access the network can see all data on the ledger.

IN BRIEF

Amazon Managed Blockchain is a fully managed blockchain service that makes it easy for customers to create and manage scalable blockchain-based transaction networks using the open source blockchain frameworks Hyperledger Fabric and Ethereum.

Blockchain technologies enable groups of organizations to securely transact, run application code and share data without a trusted central authority.

What is a Merkle Tree?

https://youtu.be/YIc6MNfv5iQ

Merkle trees allows efficient data verification across a network.

In cryptography and computer science, a hash tree or Merkle tree is a tree in which every leaf node is labelled with the hash of a data block and every non-leaf node is labelled with the cryptographic hash of the labels of its child nodes.

Decentralized networks operate without relying on a central source of truth, and instead rely on group coordination in order to establish a shared state. Trust is distributed among participants, so to have confidence that each participant is telling the truth, there must be a mechanism for guaranteeing that participants have not accidentally corrupted or intentionally tampered with the system’s state.

Hence, the Merkle tree: a data structure that was patented in 1979, and because of its unique content validating and performance qualities, has since become the backbone of decentralized software like Git, BitTorrent, ZFS, and Ethereum.

Hash trees can be used to verify any kind of data stored, handled and transferred in and between computers. They can help ensure that data blocks received from other peers in a peer-to-peer network are received undamaged and unaltered, and even to check that the other peers do not lie and send fake blocks.

“Devvio Has Solved Blockchain’s Biggest Challenges”

There are no shortage of bold claims and blatant hype in the blockchain industry.  And that’s not even including the crypto universe.

Enter Devv.io, which states it “Has solved blockchain’s biggest challenges.” Now, if you’ve been in the space a little while, it would be easy to dismiss this as just another hopeful promise and pay it no mind. 

But the reality is, someone ‘will’ solve blockchain’s biggest challenges. Technology moves forward.  Challenges ‘are’ solved. It’s an inevitability. In other words, regardless of how jaded one might become, in time blockchain’s current challenges will become little discussed history.

In the following linked article by John Koetsier, he interviews Devv.io CEO, Tom Anderson, who states: “We have the fastest blockchain in the world. We have the least expensive smart contract system. We have a solution for fraud, theft, and loss. We have a privacy solution that will work within government regulation. We have a stable coin that can be implemented within KYC and AML constraints. It is not until one has solved ALL of these problems that blockchain can truly fulfill its potential and become a world changing technology.”

Let me assure you, I, like so many others, wish to see this as demonstrable truth. The world is waiting.

Insolar: Open-Source Blockchain

The blockchain space continues to expand. Many blockchain entities will likely not survive in the next few years.  Yet some of them will become dominant.

It’s too early to determine which will be the winners.  It’s even possible that the future’s largest blockchains have yet to be established.

If we look to the internet and the worldwide web as a potential frame of reference, we might cite WordPress as an example of success for websites.  The internet has its roots in the 1960’s and gained massive adoption in the 1990’s with the introduction of the worldwide web.  WordPress is a web hosting platform that was established in 2003 as an open-source and free online software solution, which has since become the dominant website platform on the web.

It’s not inconceivable that an open-source blockchain could follow a similar trajectory, although such is not guaranteed, since there are a number of factors that can bring about massive adoption, not the least among them being ease of execution, security and cost.

Hence, it’s interesting to see Insolar describe itself as “building an open-source enterprise-grade blockchain platform to enable seamless interactions between companies and new growth opportunities powered by distributed trust.”

Insolar further states that “its code is open source and its research is freely shared; it supports the most popular enterprise languages (Golang and Java); and it allows 3rd party microservices, dApps, and smart contracts.”

Additionally, “Insolar doesn’t require expensive upfront investments in IT labor and infrastructure to deploy; it can be run on the cloud, securely and scalably.”

In this article, Insolar is launching a new blockchain-as-a-service platform, the company outlines their “fourth generation” technology as “an open-source, enterprise-grade blockchain platform and ecosystem that helps companies rapidly and affordably deploy distributed business networks.”

I will be interested to see if Insolar , or some other open-source blockchain, can make a name for itself in the space.

EOS Update from Brendan Blumer

Brendan Blumer, Block.one Co-Founder and CEO, speaks about their 4 billion investment, creating a new internet infrastructure and allowing people to take control of their privacy.

Block.one is the company behind EOS.IO, which is a blockchain protocol powered by its native cryptocurrency EOS.

EOSIO operates as a smart contract platform and decentralized operating system intended for the deployment of industrial-scale decentralized applications through a decentralized autonomous corporation model. The smart contract platform claims to eliminate transaction fees and also conduct millions of transactions per second.

In the video interview, Blumer describes blockchain as a secure way to store and transfer data. Whereas, the internet was a fundamentally insecure way.

He notes that there won’t be one blockchain for all purposes. Different types of governance will tailor to different types of industries.

Blumer also touches upon blockchain’s innate ability to create transparency, even in Force majeure circumstances.