Ask Datarella: What is a Security Model

Ask Datarella: What is a Security Model

When people start talking about blockchain they often mix up the security models with consensus algorithms. If you’ve ever scratched your head when these terms start getting thrown, around this post is for you.

Every IT system has some type of security model. Security models answer the question, “how will this system grant access to “good” actors and limit the damage that “bad” actors can do”. In the traditional world of networked computing, this is often achieved through a role-based access control (RBAC) model. Typically these systems rely on establishing shared communal trust in a trusted certificate authority and X.509 certificates. 

The internet domain name system is somewhat more complex but follows this basic paradigm with the Internet Corporation for Assigned Names and Numbers (ICANN) being responsible for the central issuance of certificates that enable your browser to resolve human-readable internet addresses. As with Blockchain systems here, governance is key to the functioning of the security model. There are many other types of centralized security which are regularly used for military command and control systems as well as access control for civilian infrastructure.

Common Centralized Security Models:

As you can see, these are large categories that describe how access control is organized and how computer systems in the system arrive at their individual or collective states.  These models do not however stipulate the specific technologies or algorithms to be used. Proof-of-Work, Proof-of-Stake, and Proof-of-Authority are types of security models, not actually consensus algorithms.

Consensus Algorithms Enabling Blockchains with a Proof-of-Work Security Model:

There are at least half a dozen popular implementations of consensus algorithms that utilize a PoW model. Check out this post from Jan Vermuelen to learn more about the varieties of PoW algorithms. The main thing that changes between these algorithms is the Hashing algorithm that they rely upon. Usually, the algorithms are named after the hashing algorithm they employ.

Consensus Algorithms Enabling Blockchains with a Proof-of-Stake Security Model:

Consensus Algorithms Enabling Blockchains with a Proof-of-Authority Security Model:

Although PoS, PoW, and PoA are the primary security models in the blockchain space there’s no limit on the type of security models that is possible and each of the security models has dozens of different implementations (and hybrids).

Ask Datarella: What is Byzantine Fault Tolerance?

Ask Datarella: What is Byzantine Fault Tolerance?

People in the blockchain space often throw around the words Byzantine Fault Tolerant (BFT) as though it was self-explanatory. Additionally, BFT often pops up in discussions about consensus mechanisms.  If you look closer, in the consensus algorithm space there are lots of variants.  there’s pBFT, Tendermint BFT, BFT Raft, IBFT, and Lisk BFT to name just a few. This short post seeks to clear up the confusion.

Let’s start with what BFT isn’t. BFT, or Byzantine Fault Tolerance is not a consensus method.  It is not a security model.  It is not a specific technology. It is not exclusive to blockchain or exclusively useful in blockchain systems.

A system can be described as Byzantine Fault Tolerant if it provides a method for solving the byzantine general’s problem. This is a problem in computer science wherein, the system handles malfunctioning or unreliable components that give conflicting information to different parts of the system.

Lamport, Shostak and Pease described it in a Microsoft research paper in 1982 thusly:

This situation can be expressed abstractly in terms of a group of generals of the Byzantine army camped with their troops around an enemy city. Communicating only by messenger, the generals must agree upon a common battle plan. However, one or more of them may be traitors who will try to confuse the others. The problem is to find an algorithm to ensure that the loyal generals will reach agreement.

Byzantine Fault Tolerant, is at its core, a term that works as an adjective, and which as we have seen is often integrated into the names of various technologies to describe what they do. Any technology or system that has mechanisms for disregarding unreliable inputs from dishonest participants and reliably agreeing on a global state with only valid inputs from honest players can be seen as Byzantine Fault Tolerant. As such there are many security models and consensus algorithms that can be said to be Byzantine Fault Tolerant.

Additionally, underlining the fact that BFT isn’t a security model or blockchain specific consensus algorithm, BFT architectures are commonly used in military command and control as well as spaceflight and aircraft control systems. Two prominent real-life examples of BFT systems outside the blockchain space include the ARINC 659 SAFEbus network used for flight control on the Boeing 777 and 787 aircraft and SpaceX Dragon Capsule systems for approaching the International Space Station in case of multiple computer failures.