Blockchain Learning, Proof of Stake

Cosmos’s Approach to Decentralization

Note: This is the fourth installment of a series detailing the approaches that different blockchain networks have taken to decentralize their network. Part 1 introduced the concept of decentralization at a high level, the role it plays in crypto networks and some of the different factors inherent to a protocol that influence how decentralization will propagate at scale and influence participation. Parts 2 & 3 then provided in-depth looks at Bitcoin and the Factom Protocol in addition to their approaches to decentralization. If you missed any of these articles and would like a refresher before we dive into the decentralization of Cosmos, you may do so here, here, & here respectively.

Hello everyone and thanks for joining! Over the last few weeks, we have talked quite a bit about decentralization and the different mechanisms that blockchain networks use to influence participation and dispersion of their network participants. We took a nice trip down memory lane to examine Bitcoin’s approach over the last decade, followed by fellow veteran protocol Factom. In this week’s article, we’ll dive into Cosmos, the first Proof-of-Stake (POS) protocol in our series. While conceptualized as a white paper since 2016, Cosmos was just launched on March 13, 2019. The full history leading up to this event is too long to recount in this article, but I highly recommend checking it out here, as it involves some cool blockchain history. For example, one of the organizations behind the Cosmos Network, the Interchain Foundation (ICF), raised nearly $17 million in 30 minutes for the project via an ICO and it is regarded as one of the most successful fundraising events for a blockchain-related project ever. Cosmos may be slightly less than a year in age, but it is certainly one of the most ambitious blockchain projects to emerge thus far. Cosmos is creating what many have termed the ‘Internet of Blockchains’ or ‘Blockchain 3.0’, which is an ecosystem of interconnected blockchain protocols that are interoperable and can seamlessly communicate with one another. 

What is Cosmos and How Does it Work?

Beginning with Ethereum in 2014, developers started experimenting with ways to implement Bitcoin’s underlying blockchain technology into other applications outside of digital money. Specifically, many were interested in using blockchain for stateful applications that could handle more robust computer logic rather than a stateless ledger. This led to innovations like smart contracts and gave rise to the notion of decentralized applications (dApps). As developers started exploring new uses for blockchain technology an explosion of new, highly-specific crypto networks ensued. Consequently, people began to realize that one of two things was going to happen if the decentralized web was going to work: One school of thought was that everything would resolve to one or a handful of ‘fat protocols’ capable of handling all the compute needs of the different applications built on top of them with universally agreeable tokenomics. The opposing view was that there would be a myriad of different blockchains, some application-specific and others comprehensive, that would be interoperable with one another so people could transact across them as needed. 

Cosmos was birthed out of the latter ideology and is essentially applying a microservices architecture to create a base-layer network that connects an ecosystem of application-specific blockchains. To achieve this goal, the teams working on Cosmos decouple the different components of blockchain networks (consensus, networking, & the application) and provide them piecewise in a ‘plug-n-play’ fashion to the protocols building their blockchains on top of Cosmos. Hence, Cosmos, while a blockchain protocol in-itself, acts as a platform wherein other blockchains can be built using a suite of customizable, shared technologies and Cosmos handles properly managing state and transactions across the different sub-networks.

The first component that makes this possible is the Tendermint  BFT Consensus Engine. Tendermint BFT is an open-source technology that combines the networking and consensus layers of blockchains into a generic byzantine fault-tolerant ‘consensus engine’ that can easily be plugged into any application to create a proof-of-stake blockchain. Being byzantine fault tolerant means that up to ⅓  of the nodes in the network can arbitrarily fail or be overcome by a malicious actor, yet it will still operate as intended. If you would like more information regarding byzantine fault-tolerance or the byzantine generals problem, the original paper on the topic is available here. Proof-of-stake is an alternative consensus mechanism to proof-of-work that replaces mining with the notion of skin in the game via stake, or the amount of a network’s cryptocurrency a user owns and invests into the protocol. The larger a participant’s stake, the more likely that participant is to be elected to produce blocks and be rewarded. This is analogous to the relationship between a Bitcoin miner’s investment in computing power and his or her likelihood of mining a block, but requires significantly fewer computational resources and allows for faster transaction times. Tendermint founder Jae Kwon was actually the first person to prove and demonstrate that byzantine fault tolerance worked for proof-of-stake networks, so for more information, I invite you to check out the paper he released on the matter here.

Tendermint BFT allows developers to save time and effort setting up the networking and consensus components of their proof-of-stake networks so that they can instead focus almost singularly on the application layer. Moreover, Tendermint BFT is language agnostic and has clients in Golang, Javascript, Rust, & other popular programming languages, allowing developers to build their blockchain on top of Cosmos with ease. The engine then communicates with the application layer through a socket protocol known as the Application Blockchain Interface (ABCI) as may be viewed below.

Cosmos also provides blockchains building on top of it with a generalized application development framework (the Cosmos SDK), that makes building secure applications on top of Tendermint BFT using ABCI much easier and quicker. The SDK comes with a set of pre-built modules that allow developers to build applications without having to code everything from scratch with built-in security and separation of concerns. Hence, they simply use the components they need and can accelerate the time it takes for them to launch their blockchain. 

Once a developer has launched their application-specific blockchain, he or she can then communicate and transact with other blockchains in the Cosmos ecosystem via the Inter-Blockchain Communication Protocol (IBC). Each chain in the Cosmos ecosystem is heterogeneous, meaning that they all have fast-finality consensus provided by Tendermint BFT and their own set of Validators, differing only in how they implement these components. Validators are the node operators in Proof-of-Stake networks, like Cosmos, who are responsible for participating in consensus, producing blocks, and governing the network. Anyone can set up a validator and compete to be in the active set or subset, of validators selected to participate in consensus. Before launch, a proof-of-stake network will determine how large it wants its active set to be and then validators fill that set based on the magnitude of their stake after launch. Cosmos’s consensus mechanism then selects participants probabilistically based on the amount of stake they have relative to the other validators to solve blocks and be rewarded. Validators can also suggest and vote on governance proposals for the network. Users on the network who lack the funds or stake required to be in the active set may instead stake their funds with a validator in the active set and receive a share of the rewards that a validator receives proportional to the amount they have staked minus a fee cut from the validator.

Each application-specific blockchain represents a zone, which then connects to a hub (in this case Cosmos) via IBC connections. The Cosmos Hub is specifically designed to serve as the connection point for all of the applications, or zones, built within its ecosystem and carry out seamless transfers between them via the IBC, as seen below:

Cosmos has designed its ecosystem such that there can eventually be multiple hubs connected via IBC so that the network can continue to operate at thousands of transactions per second at scale. Additionally, they plan to incorporate Peg Zones, or blockchains, whose sole responsibility is to track the state of another chain. This Peg Zone will serve as a bridge to other non-Tendermint networks like Ethereum or Bitcoin and allow them to communicate with Cosmos via IBC. Hence, the end vision for Cosmos is an ecosystem of interconnected blockchains that looks as follows:

Governance on Cosmos

Cosmos was designed with a tiered governance structure that is open to the entire community but leaves ultimate voting responsibility within the hands of those supporting the network (i.e the validators). There is a constitution that states how Cosmos is governed and how proposals for network updates are to be made. Anyone holding the network’s native currency (the Atom) is eligible to make a governance proposal and submit it for voting. The proposals can range in focus and magnitude and cover everything from changing how governance occurs on the network to overhauling aspects of the networks codebase that modifies functionality.

The one caveat is that at least 512 Atoms must be deposited toward the proposal by either the member who submitted it or the community broadly. At the end of two weeks, the proposal is either dismissed if it does not receive sufficient backing or enters into a new two week voting period where the community discusses its implications and submit a vote of either “yes”, “no”, “no with a veto”, or choose to “abstain”. Only staked Atoms count towards governance and the relative weight of a participant’s vote is based on their stake in the network. Hence, Validators with larger stakes hold more voting power. Atom holders who choose not to run a validator can stake their Atoms to any validator they feel represents their interest and inherit their vote. A proposal will only be accepted if over 40% of staked Atoms participate in the vote, over 50% of the vote is in favor of the proposal, and less than a third elected to veto the proposal. If successful, the proposal is integrated into the software that runs the network by the core developer team and the validators must coordinate an update to reflect the changes.

More on the finer details of how the governance process works can be found in the Cosmos white paper here, or in this article written by fellow Cosmos Validator Chorus One. It is also important to note that each zone built on Cosmos has its own separate constitution and governance process. Therefore, governance decisions made on the Cosmos Hub do not necessarily dictate how other zones operate. However, if any changes are made to either Tendermint BFT or the Cosmos SDK as a result of the governance update, zones will likely need to update their own networks if they are using either of these technologies.

So How Decentralized is Cosmos?

Cosmos Hub 1 (version 1 of the mainnet)  launched on March 13, 2019, and was one of the first proof-of-stake networks to successfully carry out a fully decentralized launch. This is in contrast to other successful proof-of-stake network launches, like Tezos, which had a group of Foundation Validators who controlled the initial mainnet. The initial active set was capped at 100 possible validators, and 75 of these slots were filled at genesis. This meant that there were 75 different groups distributed around the world working together to coordinate the launch of the network and start actively validating transactions. However, while Cosmos may have had an impressive initial degree of decentralization based on the number of unique validators, the true magnitude of that decentralization was far more nuanced.

Within the first week after the launch of the Cosmos mainnet, the top 5 Validators controlled nearly 50% of the staked Atoms on the network. Moreover, many of these participants had been significant buyers in the Cosmos coin offering. This illustrated that, while Cosmos may have been decentralized in terms of the number of validators, the actual distribution of power and resources within the network told a far different, more centralized story. For the next three months, 15 or fewer validators controlled ⅔ of the staked atoms on the entire network at any given time (per In October 2019, Gavin Birch, community analyst at Figment Networks, released a report detailing the negative repercussions that coupling governance with the validator role was having on Cosmos, which may be found here. In summary, the report revealed that validators were exploiting the Cosmos incentive structure to gain undue influence over network governance at the expense of other validators. Some validators were running with zero fees, meaning that 100% of the rewards they received would be distributed to those staking with them. Naturally, these zero-fee validators received a disproportionate amount of the stake as atom holders sought to maximize their returns. This forced some validators to shut down, due to their inability to continue competitively and earn rewards sufficient enough to offset the cost of their infrastructure.

Many community members grew concerned over what this meant for the future of Cosmos, as this behavior posed a major security vulnerability to the network. If validators continued to exploit the network in this fashion, it would drive away those that could no longer afford to run a validator and decrease the level of physical decentralization across the network. Thus, it would be easier for malicious actors to overtake the network. Thus, on December 11, Cosmos Hub 3 was launched based on a governance proposal that aimed to reconcile some of the alignment issues between network governance and incentives. The first major change was that the active set of validators was expanded from 100 to 125 validators, allowing for more participation in the network. The second major change was a redefining of the entire governance structure. Prior to the upgrade, voting was only a signaling mechanism. The result of a vote would have no immediate consequences other than telling the core development team what changes needed to be made to the network based on the proposal. The core developers would then release a software update, all of the validators would coordinate when to perform, and the new network would be restarted (a process known as a hard fork). With the release of Cosmos Hub 3, the network now features on-chain governance. This means that the result of a vote will automatically elicit changes to the codebase to the appropriate parameters and alter how the network behaves without having to perform a hard fork.

Instituting on-chain governance drastically shifts the incentives for network participants to vote and provides a mechanism by which delegators (those staking to other validators) can more actively participate in governance. While they still have the option to inherit the vote of the validator they are staked to, delegators can also elect to instead override that vote with their own if they disagree with how the network should proceed. This helps galvanize nominators to play a more active role in governance which helps balance the economic and governance incentives of the network while maintaining a relatively stable degree of physical decentralization. Additionally, there has been a proposal made to fund a governance working group to work alongside protocol development and help address emerging governance issues. There were several other major updates in Cosmos Hub 3, like the introduction of a rewards pool from which network participants can vote on proposals to fund projects that enhance the ecosystem. The full proposal may be found here.

It is still too early to say if expanding the active set of validators and introducing on-chain governance was the right answer to solving the centralization of power and economics on Cosmos. Figment Networks’ December Cosmos update revealed that the voting power of the bottom 90% of validators on the network had increased 3% from November. However, it also found that the top 10 validators on the network controlled 46% of the voting and consensus power. This analysis was only done between the top 100 validators in December to maintain consistency from November, so this month’s analysis will better reflect the impact that increasing the validator set to 125 had on the decentralization of the network. And who knows, with Cosmos slated to conduct Game of Zones in the coming months to refine their inter- blockchain communication module, a slew of major updates are likely to happen this year that will fundamentally change how the network operates. Thanks for reading and join me next week as we dissect the decentralization of one of the fastest growing networks in South Korea and a zone within the Cosmos ecosystem, Terra!

Blockchain Learning

Factom’s Approach to Decentralization

By Connor Smith

Note: This is the third installment of a multi-part series detailing the approaches that different blockchain networks are taking towards decentralization. Part 1 introduced the concept of decentralization at a high level, the role it plays in crypto networks, and some of the different factors inherent to a protocol that influence how decentralization will propagate at scale and influence participation. Part 2 then provided an indepth look at Bitcoin and its approach to decentralization. If you missed either of these articles and would like a refresher before we dive into the decentralization of the Factom, you can do so here and here respectively.

Hello again and I hope everyone’s 2020 is off to a good start! In this week’s article, I will be diving into how Factom has approached decentralization. Conceptualized in 2014 and released the following year, Factom is one of the more veteran protocols still in use today. After observing the speed, cost, & bloat limitations developers experienced when building applications on top of Bitcoin, Factom was released as a developer friendly way to secure information into the Bitcoin and Ethereum Blockchains without having to transact with those networks directly. Factom is designed to help ensure data integrity and has been used to secure data to the blockchain for the likes of the Department of Energy, Department of Homeland Security, and the Bill and Melinda Gates Foundation to name a few. Most recently, Factom has seen use as the base layer network for PegNet, a decentralized CPU-minable stablecoin network that allows users to convert between a network of pegged assets (crypto and real world) for less than one-tenth of a cent. So without further ado, let’s get into nuts and bolts of how Factom works!

Factom Overview:

Factom is essentially a collection of blockchains that immutably record any form of data in a very structured, accessible way. A user simply creates a chain for a topic and then writes data to that chain, where it is recorded as transactions in its blocks. This data is then secured to the Factom blockchain to leverage the power of the overall network. Factom is composed of several layers of data structures that are hierarchical in nature. The highest layer data structure is called the Directory Layer, which organizes the Merkle Roots of the Entry Blocks. Basically, this layer is just a hash generated from all of the entry blocks plus their corresponding Chain IDs. The next layer down is the Entry Block Layer itself which holds reference pointers to all of the entries with a particular Chain ID that arrived within a given time. Underneath the Entry Block Layer comes the Entries themselves, which are the raw application data written to Factom. Lastly, come chains, which are a grouping of entries for a particular application or topic in an application. An image of how all of these different layers interact may be viewed below. In short, application data is organized into chains, which are added to entry blocks and hashed into the Directory Layer to be secured by Bitcoin and Ethereum.

Image from the Factom White Paper

Factom is designed to be extremely developer friendly. Instead of requiring developers to use a protocol native language like Etheruem does with Solidity, Factom offers a collection of client libraries accessible through APIs for the following commonly used programming languages: Javascript, Python, C#/.Net, GO, Java, and Rust. As mentioned above, Factom is anchored to the Bitcoin and Ethereum networks, so every time a block is added to the Factom blockchain, the data is also immutably recorded on those networks. 

Image from

Factom utilizes a two token model in which there is the token associated with the protocol (the Factoid) and another token used to submit entries to the network known as the entry credit. The Factoid, like other cryptocurrencies, is price sensitive and varies with the market over time. The entry credit, by contrast, maintains a fixed price of a tenth of a cent and may only be used to submit entries to Factom. This allows developers and enterprises to interact with the Factom blockchain at a stable, predictable price while still leveraging the hash power of more price volatile networks like Bitcoin and Ethereum. To transact on the network, developers use Factoids to purchase entry credits that are in turn used to submit application data to the blockchain. The application then records an entry to the Factom blockchain and Factom servers will create appropriate entry and directory blocks. Factom then secures an anchor, or hash of the directory block, to Bitcoin and Ethereum. An overview of the architecture of how this process looks in practice may be viewed below.

Image from the Factom White Paper

Factom Network Architecture, Governance, & Incentives:

Nodes on the Factom Network are split into two classes of servers in an attempt to decouple the two rolls that Bitcoin Miners essentially play: recording entries in a final order and auditing the validity of entries. Hence, there are federated Factom servers and auditing servers. Federated servers are those responsible for accepting entries to a chain on Factom, assembling them into blocks, and then fixing the order of all of the entries across the network. Roughly every 10 minutes a block for all entries on the network is recorded to the Factom Blockchain by the Federated servers and a hash of the data is then inserted into the anchors on to Bitcoin and Ethereum. Auditing Servers, by contrast, simply audit all entries made on the network. The verification of all entries is done client side, enabling audit servers to perform their job in either a trusted or trustless manner depending on the client’s needs and level of trust a priori. 

Managing all of the chains on the Factom Network is no simple task. Since any application can have as many independent chains as needed to secure different data sources, there are thousands of chains and entries that must be validated, written to the Factom blockchain, and then propagated to Bitcoin and Ethereum. A network of independent, globally distributed Authority Nodes bear this responsibility on the Factom Protocol. These Authority Servers are the set of federated and audit servers that essentially operate Factom. The federated servers in the Authority Set are responsible for ordering entries made to the network, and the audit servers in this set duplicate the work of the Federated servers and will take over in the event a federated server fails. To ensure no one party in the authority set has too much power, each server is only responsible for a small part of the system, servers double check the work of other servers, and servers cycle responsibilities every minute or so. Only a small group of trusted, community elected parties are permitted to run Authority Servers, so the network is able to record entries quickly using a variant of a Proof-of-Authority Consensus Mechanism.

Those running Authority Servers are known as Authority Node Operators (ANOs), and are the network participants who benefit economically in the Factom Ecosystem. They are also the parties responsible for governing Factom, and thus hold considerable power within the Factom ecosystem. Unlike Bitcoin, however, where anyone can mine and increase their relative economic power by investing in more infrastructure, ANOs must be elected by the community of existing ANOs. This process is done typically once per year and there will only ever be 65. All governance decisions made by the ANOs are done off-chain. A thorough explanation of Factom’s governance process may be found here, but is generally as follows:  The community will draft a document for any change it is considering making to the network. A ‘Major Timed Discussion’ is then opened on Factomize, the community’s forum channel, and members have 8 days to voice their opinions or concerns over the proposal. At the end of the discussion, a vote is made by the ANOs on whether to implement the change or not. If the vote passes it will be sent to the democratically elected legal committee for review, and then added to the governance documents.

In exchange for running the infrastructure that supports the network and playing an active role in governance, ANOs are compensated in Factoids. They are rewarded 2246 FCT per month minus their efficiency. Efficiency refers to the percentage of their FCT that ANOs forego to the community grant pool and is related to the amount of work an ANO contributes to Factom outside of infrastructure services. A full breakdown of how ANOs are compensated with examples may be found here, but tends to take the following form: An ANO only providing infrastructure and governance services is expected to operate at around a 60% efficiency, meaning they contribute ~60% of their total possible rewards to the grant pool to fund core protocol work, marketing, or other projects that use or promote Factom. Conversely, if an ANO intends on providing these types of services to the network in addition to other responsibilities, they can set a lower efficiency and be compensated more for their efforts.

So How Decentralized is Factom?

There are currently 28 independent Authority Node Operators who are supporting the Factom Protocol and participating in its governance. While primarily located within the U.S or Europe, the different firms serving as ANOs are distributed around the globe and are comprised of a mix of Factom-specific companies and ledger-agnostic entities. The parties acting as ANOs represent a host of different interests and skill sets ranging from the protocol associated corporation that primarily maintains the core codebase, Factom Inc., to consulting and investment firms like VBIF, and everything in between. (We at Consensus Networks are ANOs for Factom as well!) From this network of ANOs, there are 5 Guides who were elected by the broader Factom community to help implement a governance framework and ensure it runs efficiently. Guides do not inherently possess any greater power or influence, but rather help ensure that ANOs are up-to-date on what governance matters need to be attended to and that all there are democratic, efficient procedures in place for ANOs to use to do so. 

While 28 nodes itself is not a large number of authority nodes when compared to thousands of nodes on networks like Bitcoin and Ethereum, it has proven sufficient for the needs of a data layer protocol like Factom in terms of network uptime and speed. It is also important to note that even though only 28 nodes are maintaining the network, the utility of the Factom Protocol is still accessible to anyone. For example, a group of ANOs provide and maintain an Open Node that any developer around the world can utilize to interact with the Factom Protocol via an API endpoint. The most recent network update for Factom revealed that in excess of 150 million requests had been made to this node during the one month period from Nov. 13 – December 13. Additionally, anyone, ANO or not, is eligible to apply for grants to fund their Factom based projects. Seeing as ANO elections tend to occur roughly every 6-12 months, it is reasonable to suspect that there will likely be another election round sometime during 2020. The exact number of ANOs onboarded varies from round to round, but would likely fall somewhere between 4-6 new operators based off of the number of new ANOs brought on each of the last two rounds. 

Despite the small cohort of ANOs governing the protocol, they represent quite a diverse range of interests and have varying opinions about what constitutes proper ANO activities and the future direction of the protocol. If you go through nearly any of the major timed discussions on Factomize, you will see healthy discourse over various proposals with multiple viewpoints represented across the different ANOs. To better incentivize ANOs to act in the long-term interests of the network, increase their activity within the community, and prevent them from ‘free-riding’ if elected into the group of 65 ANOs, procedures for ANO promotion and demotion were recently instituted into the governance documents of the network. Hence, the community can better voice their approval or disapproval of an ANOs performance and now has mechanisms in place to punish poor ANO performance. If the community collectively decides that an ANO is not carrying out their responsibilities effectively for two quarters, they can elect to demote them from being an ANO. Ultimately this provides another layer of checks and balances into the power structure of network participants. 

Only time will tell if Factom’s open approach to decentralization where no single community member is inherently more powerful than another and all decisions relating to the protocol are made via a democratic process and voted on by all ANOs is successful. With PegNet recently being listed on exchanges and Factom seeing use in the US HOA industry by Avanta Risk Management and for expediting Banking Regulatory Compliance in the UK by Knabu, 2020 is looking to be a bright year for this veteran protocol. I hope you have enjoyed this article and found it informative! If you have any questions or comments please feel free to leave them below. Next week I will be continuing this series and diving into Cosmos, an ambitious project attempting to create the ‘Internet of Blockchains’ so stay tuned and thanks for reading!

Blockchain Learning

Bitcoin’s Approach to Decentralization

By Connor Smith

Note: This is the second part of a multi-part series in which I will examine the approaches that different blockchain networks are taking towards decentralization. Part 1 introduced the concept of decentralization at a high level, the role it plays in crypto networks, and some of the different factors inherent to a protocol that influence how decentralization will propagate at scale and influence participation. If you missed that article or would like a refresher before we dive into decentralization of the Bitcoin Network, you can do so here

With 2019 having just come to a close along with the decade, it seems like an apt time to be reflecting on Bitcoin’s approach to decentralization and how it has played out. Having entered the decade as little more than a whitepaper and an open source protocol with a handful of users and contributors, Bitcoin enters the 2020s as the best performing asset of the 2010s. Bitcoin was the first true cryptocurrency and blockchain network, and hence the longest lived. There was no blueprint for Bitcoin to follow, or generally accepted framework for launching a blockchain protocol back in 2009. The Bitcoin network we see today is a true first stab at a decentralized network for transacting value and serves as the longest running experiment for us to learn from. All blockchain protocols that have come since have been influenced by Bitcoin, mimicking certain aspects of it and trying to improve upon others. Hence, Bitcoin serves as a great foundational network to begin our examination of decentralization, as it will help you to better understand why the other networks we will explore have made the choices they did.

An Overview of How the Bitcoin Network Works

One of the most important things to understand about Bitcoin, and most commonly overlooked, is that none of the base technologies used in the creation of Bitcoin were inherently novel.  Elliptic curve cryptography, distributed systems, and the idea of proof-of-work had been well established well before Bitcoin. Even the concept of digital cash had been tried as early as the 1990s with David Chaum’s DigiCash. What was novel about Bitcoin’s design was how it combined all of these elements to solve the Double Spend Problem and built an incentive structure around it that allowed digitally native value to be securely transacted across a peer to peer network in a way that was agreed upon through a Proof-of-Work Consensus Algorithm. For those of you who might be new to crypto, I will provide a brief overview. However, I highly recommend reading the Bitcoin Whitepaper if you want a more in-depth explanation.

In short, Bitcoin’s Proof-of-Work Mechanism works as follows. Each block created on the Bitcoin Blockchain has a cryptographic hash associated with it that is generated from its index, timestamp, the block data (Bitcoin transactions), the hash of the previous block, and what is known as a nonce. The nonce is some value that will always ensure that the leading bits of the block hash will always be zeros. There is no way for miners to know what the nonce will be a priori, so they compete to solve it and ultimately the block hash. Moreover, as the compute, or hashing, power on the network increases, so does the difficulty of guessing the correct value. The hash difficulty of the network is periodically adjusted to take 10 minutes on average and once the correct nonce is computed it is broadcast to the network, the miner who calculated it is rewarded, and consensus is reached.

Image from

As you can see, miners play a very critical role in the Bitcoin ecosystem. They’re the ones responsible for adding blocks to the Bitcoin blockchain and are compensated for contributing their compute power and helping secure the network. Yet, miners are just one actor within the Bitcoin protocol. Network participants also have the option to run either a full node or a light node on the network. Full nodes are responsible for hosting a copy of the entire Bitcoin ledger and verifying the authenticity of its transaction history all the way back to the genesis block. They simply maintain and distribute the most trusted version of the blockchain to other nodes on the network, thus not requiring the same computational resources as miners. Light nodes play a similar role to full nodes, but instead of keeping a full version of the ledger, they download the block headers to validate the authenticity of transactions. They are often peered to full nodes to further decentralize the network or can be used to help restore a full node if it is corrupted.

Aligning Incentives: Governance and Reward Structures

Let’s examine how Bitcoin attempted to balance the economics and power of stakeholders while decentralizing the network. Using the tiered network architecture described above, Bitcoin sought to create a bifurcation between how network participants are rewarded and how governance occurs. When Bitcoin was first released and blocks were CPU minable anyone could run a miner and be rewarded for contributing their compute power to secure the network while also running a full node. Given the grassroot beginnings of Bitcoin, it made sense that the small group of early adopters should be rewarded economically and have the responsibility of participating in governance. However, as the difficulty of solving blocks increased, miners started utilizing computationally superior ASICs. This made the barrier to profitable mining much steeper as just one top of the line miner cost in excess of $1000, leaving only a small subset of network participants willing to make the necessary capital investment. This high barrier to entry looks like it will continue to manifest and reduce the number of individual and decentralized miners participating on the network.

Without all network participants being able to truly compete in the mining process, there is some inherent risk of a 51% attack. This is where an individual or group of participants are able to take control of the majority of the network hashing, or computing, power to prevent transactions and determine what blocks are added to the blockchain. While in control of the economics of network, miners do not inherently hold any special authority, nor are they required to participate in governance responsibilities. Seeing as Bitcoin is an open source project, anyone running a node on the network can theoretically propose changes to the codebase that alter how transactions are validated, arrive at consensus, etc. A more thorough examination of how Bitcoin governance works may be found here, but the process is generally as follows: A user conducts research to solve some problem with Bitcoin. Once they have a solution they notify all other protocol developers, typically via a Bitcoin Improvement Proposal (BIP). After the proposal has been made, other interested protocol developers begin implementing and testing it to give a formal peer review. If the change is well received and approved it will be implemented into the node software and then node operators, exchanges, and other community members must be convinced to update the software. As long as the majority of the community finds it reasonable the network will be updated and the new rules or functionality are put into place.

So How Has Decentralization Played Out for Bitcoin?

As of writing this article there are just shy of 9000 full nodes supporting the Bitcoin network. 25.30% of these nodes reside in the U.S, 20.76% in Germany, and the remaining 53.94% are dispersed across the rest of the world, largely in Europe and Asia as can be seen below.

Image from

It is worth noting that some, like Bitcoin Core Developer Luke Dashjr, speculate the true number of nodes on the network to be closer to 100,000. This estimate allegedly accounts for all nodes on the network and not just nodes in “listening mode” that node monitoring services use when calculating the number of nodes on the network. Regardless, this expansive, global network of nodes is what makes Bitcoin generally regarded as the most secure distributed network. If an individual wanted to undermine the network or rewrite the transaction history, he or she would have to have enough computing power to simultaneously rewrite the ledger on a majority of the nodes, which is nearly impossible (what about quantum computing?). 

Where Bitcoin is more centralized, however, is in the concentration of the mining power on the network. As of the writing of this article, the top 4 mining pools (AntPool,, Poolin, & F2Pool) control 59.8% of the hashing power on the network, as can be viewed below. Mining pools exist to pool hashing power into groups, increasing the likelihood of receiving a Bitcoin block reward. With the amount of hashpower on the Bitcoin network today, it is practically impossible for an individual to mine Bitcoin on their own.

Image from

All of the aforementioned pools operate in China which means that those managing the majority of hashing power on the network are highly consolidated within one region. Some view this as problematic, believing it makes it easier for a 51% attack to occur. With so few parties managing a disproportionate amount of the hashing power in the same geographic region, it would be easier for them to collude and align interests if they decided to try such an attack. However, since individual miners are free to join whichever pools they please, so if they disagree with how the pool is operating they can join a new pool. Additionally, nodes on the network can fork the network if they disagree with how the mining pools are controlling the transaction history. In addition to the majority of hashing power passing through China, the majority of the Bitcoin mining industry is powered by hardware built by Chinese manufacturer Bitmain. Bitmain is projected to have somewhere around 65% market share of the bitcoin mining hardware industry and operates both Antpool and Accordingly, the majority of hash power on the network is touched by Bitmain in some way, placing a considerable amount of power in their hands.

Many are concerned about the future of Bitcoin if mining power is to remain centrally concentrated within the hands of a few mining pools. If four mining pools control most of the hashing power, don’t they essentially control the future of the network? I can’t say for certain how Bitcoin will evolve in the future, but there is evidence from Bitcoin’s past to suggest that miners will not dictate how the network changes. In November of 2017, Bitcoin was slated to undergo a massive hard fork known as SegWit2x that was designed to upgrade its block size limit from 1MB to 2MB. The true motives for the update remain a heatedly debated topic. Allegedly, the intent of the upgrade was to overcome the scalability problems associated with Bitcoin and allow faster payments. However, many believed that it was a move by miners and large Bitcoin operations to subvert the network and profit by collecting more fees and selling more expensive equipment. Prior to the fork the majority of miners signaled supported the update, but there was no support from Bitcoin Core Developers and little from the community broadly. The Bitcoin community pushed for UASF (User Activated Soft Fork) which was designed to activate SegWit (Segregated Witness) without the condition of SegWit2x that block size must increase. With such low support from the community, SegWit2x failed and UASF (or BIP-148) passed – a major victory for node operators and currency hodlers.

Only time will tell if the approach Satoshi took will prove the most optimal in the long run, but so far his assumptions have been well supported. The network has been self-regulating and the incentives have been so well aligned that it has continued to gain adoption and use for over a decade. In the next article, I will explore how another veteran protocol, Factom, has approached decentralization and draw on some of the lessons to be learned. Until then, Happy New Year!

Blockchain Learning

Six Degrees of Decentralization: Approaches to Decentralized Network Architectures, Incentive Structures, and Lessons Learned

This is Part I of a multi part series in which I will take an in-depth look at the role decentralization plays in Crypto Networks. In this article I will explore the tradeoffs between decentralized and centralized networks and the role decentralization plays in blockchain protocols. I will also highlight some of the key factors that influence how distributed a network is in both number of participants and power. The remaining parts of the series will be a collection of 6 case studies of existing protocols that explores the different strategies they have employed to decentralize their networks, how that has influenced the behavior of network participants, and some of the pros and cons of these decisions. Now let us get into Decentralization!

Decentralization is the essence of blockchain technology. Ever since the release of the Bitcoin whitepaper in 2008, the idea of a decentralized, peer-to-peer network for exchanging digital value has been the cornerstone upon which all other subsequent protocols have been built. However, it seems that  the reasons why Bitcoin had to be decentralized from the start and what decentralization actually accomplishes are consistently overlooked. Instead, decentralization has become inherently associated with ‘good’ and centralization has become analogous with ‘bad’. Yet, decentralization is not binary, nor simply a state of being. It is a far more nuanced concept that comes with varying degrees and serves as a tool to meet a network’s needs. 

Decentralization, and the degree thereof, influences everything from a blockchain protocol’s architecture and physical distribution, to how consensus is reached, and how network governance decisions (i.e what is updated and when, how incentives are aligned, etc.) is managed. ( A great breakdown of these different components of decentralization can be found here). Seeing as decentralization touches every aspect of a blockchain network, it is understandable why this is such a hotly debated topic. It is still far too early to tell which approach, or approaches to decentralization will prove the most optimal in the long-run, but there are a plethora of lessons to be learned from the strategies different networks have tried and the outcomes (culturealley, technically, and economically) of their decisions. 

In an effort to provide a comprehensive overview of the ways protocols are approaching decentralization, I will present case studies on several blockchain networks and assess the strategies used to decentralize their network, the implications of these decisions economically, technically, and politically, and extrapolate some lessons learned. In sum I will explore the role of decentralization in the following six networks: Bitcoin, Factom, Cosmos, Celo, Terra, & Kusama (Polkadot’s experimental ‘Canary’ network). However, before we dive into the different shades and hues of decentralization, its first important to understand the goal of decentralization and the different factors that it influences in a blockchain protocol.

The Goal of Decentralization: A System’s Level Perspective

Systems are put in place to create a reproducible set of outcomes with constraints that optimize for certain criteria. Hence, when building a system, it is critical to identify the desired end goal and then what optimizations are needed. From this perspective, centralized systems and their distributed counterparts are simply different system designs optimizing for different criteria. 

Consider the outcome that most crypto networks are designed for at the most fundamental level: recording digital transactions. Is this not the same outcome that more centralized payment processors seek as well? Both of these methodologies strive to maintain accurate accounts of all transactions they process. The difference, however, is in the design of these systems and what they are trying to optimize for. Centralized payment processors are designed to record as many transactions as possible, in the least amount of time, and do so by assuming total control of the process and responsibility for the data and its security. In short, these systems are optimized for speed and control. Decentralized systems, on the other hand, are meant to optimize for trust, immutability, and uncensorable transactions by giving participants sovereignty over their own data. The process of signing transactions, verifying they are legitimate, and arriving at consensus takes time. However, because of this, all transactions have finality, the ledger is immutable, and people have full control over their funds and what is done with them through their private key. Centralized systems like Visa can process over 60,000 transactions per second at peak demands, but take days to clear and they have the ability to freeze funds, move them, or edit the transaction history if they suspect fraud or otherwise. Hence, it is less a question of if centralization is bad or good, but rather one of the value of complete participation in a system by all participants and their ability to control their own funds.

Factors Influencing Decentralization 

As you can see, decentralization is not simply a yes or no decision, but a design choice for a blockchain protocol that determines how the network will behave as it records transactions. So how do protocols factor decentralization into their network design? As we said earlier, decentralization touches every part of a crypto network and fundamentally shapes how it operates at scale. Consequently, it is important to understand a few of the key mechanisms by which protocols attempt to engineer and control the decentralization of their networks before we dive into an in-depth examination of the decentralization strategies of the six networks mentioned earlier.


Governance is perhaps one of, if not the strongest shaping forces in a blockchain network for how decentralization will propagate at scale. At a high level, governance refers to how network participants decide on what changes are made to the network and what needs to be done across the broader community. Governance decisions often result in changes to the code base for the network and consequently correlate with major updates, or hard forks. A network must decide if it will have on chain or off chain governance. If they elect for the former, they must decide on factors like how voting power is distributed, if all participants are included, and how proposals are made by network participants for network updates. This also brings with it a sizable technical investment as all of this logic must be programmed into the network itself. All proposals are written in code and broadcast to the broader community to vote on over a particular time horizon. If they elect for an off chain governance model they must determine what is made transparent to the community broadly, if they should include community members in decisions, or if only core devs should be included in the discussions on updates and product roadmap. 

Economics/Financial Incentives

The financial incentives structure for how network participants are rewarded is another one of the strongest forces for shaping the decentralization of a crypto network. How a network rewards its participants defines how the network will perpetuate. One of Bitcoin’s innovations was creating an incentive structure for miners to ‘play by the rules’ this allowed the network to grow to the strength it is today. There are other factors to consider as well; are all participants rewarded evenly or is it only advantageous for a small handful? Are the largest investors in a protocol or top technical contributors the most rewarded (Think Proof of Stake or Proof of Work)? Are developer efforts rewarded in the community, or are only the core devs compensated? How a network answers these questions determines how wide a reach the network will have, how many different parties run their software, and the motivations behind the participants running their software. It also determines what kinds of technical contributions are made to the protocol and signals what types of projects or community members are valued.

Tiered Architectures

Lastly, a network must decide if all of its participants operate at equal levels or if there are tiered classes of participants. For example, many Proof-of-Stake Networks have different layers of network participants that come with different levels of responsibilities, requirements, and rewards. Validators are rewarded for participating in consensus, investing in high quality infrastructure to support the network, ensuring network uptime, and handling updates and governance. Others, however, can still be rewarded by trusting their funds with a Validator and being proportionally compensated for the amount they ‘stake’. This provides the network with decentralization though may consolidate the majority of the economic and political power in a smaller cohort of participants. In other, typically proof of work, protocols participants are divided between miners and node operators. Miners are rewarded for their donated computing power and while node operators are not directly compensated, they chose what version or fork of the software to follow and thus can control the outcomes of software updates (see BIP 91 and SegWit2x). If miners want to increase their economic rewards, they must invest into more of the same infrastructure, but this seldom comes with added responsibilities like governance as is seen in a more tiered infrastructure like the proof of stake model. Instead any committees or pseudo governance structure tend to be a self-formed group of motivated participants who work together on upgrading and evangelizing the protocol.

As you can see, there is much for a network to consider as it attempts to engineer decentralization into its network, and this is just scratching the surface. In the next article, I will start diving into the case studies surrounding different networks’ approaches to decentralization. I’ll go back to where it all began with the Bitcoin network, and assess how the network decentralized over time, what approaches it took, and how that has translated to the network being what it is today. 


What Blockchain Should and Shouldn’t be to Healthcare: Part 1

By Connor R. Smith, Originally Published March 14th, 2019

Blockchain saw significant interest from major corporations in 2018. IBM began deploying initial proof-of-concept solutions to do things like sourcing food throughout Walmart’s supply chain. Many other enterprise use cases were speculated on and announced for Blockchain technology, and the year culminated with Amazon Web Services announcing it would be deploying business-ready blockchain solutions. While juggernauts like IBM and Amazon making strides in the space may be a strong indicator for the future of blockchain, with the “Crypto Winter” in full stride, one cannot help but look back with 2018 with some disappointment. Blockchain was supposed to change the fabric of how modern society does business, but very few proofs-of-concept actually made it past a whitepaper. Healthcare should be undergoing a total transformation because of the Blockchain, but we instead received niche, unneeded solutions, such as a cryptocurrency for dentists. People were more focused on creating a killer dApp or cryptocurrency than focusing on developing solutions for the actual problems that healthcare faces. An examination of the alignment between what the potential uses for blockchain are in healthcare versus the immediate needs healthcare has for blockchain is warranted if the technology is to see growth in this sector. Before considering what healthcare could do to healthcare, let’s look back and assess what has not worked in healthcare so far.

What Blockchain Should Not be for Healthcare:

A Cryptocurrency for Medical Professionals

New altcoins keep popping up every day. There are literally thousands of cryptocurrencies, each claiming to be “highly scalable”, “more secure”, and “the fastest”! To make matters worse many of these have very specific use cases, that are oftentimes laughable like WhopperCoin or HempCoin. Obviously, not all altcoins are created equal and many are intentionally memes or get rich quick scams that will die out over time. However, when ‘legitimate industries’ create their own cryptocurrency for a solution that doesn’t need it, it has major implications for the crypto and blockchain communities if they wish to be taken seriously and see adoption. In healthcare, the most glaring example of this is DentaCoin.

Many of DentaCoin’s goals are fantastic. They want to shift dental care to a patient-centric model and make care preventative as opposed to corrective by providing continuous care, access to a dentist, and good dental hygiene tips through a mobile platform powered by DentaCoin. If successful they could significantly drive down the cost of dentistry and maybe improve a few smiles along the way. But can someone legitimately tell me why the platform needs its own cryptocurrency associated with it? Their use of blockchain and smart contracts is to track payments and establish financial incentives for both the patient and dentist is legitimate, but there is no reason it needs its own cryptocurrency. 

Projects like DentaCoin with a native cryptocurrency will only harm blockchain-enabled healthcare solutions in the long run. It is just shortcutting systemic issues like interoperability and regulation. There are already projects that are optimized for financial transactions like Bitcoin and Stellar, as well as conventional fiat payment systems. Each service we use does not need its own cryptocurrency with it. Are consumers really going to keep track of and maintain the wallets of tens or hundreds of cryptocurrencies? I don’t think so. For a more in-depth article on blockchain projects not needing their own cryptocurrency click here.

A Way of Storing Medical Records

Does the U.S healthcare system need to continue to improve its storage and management of patients’ medical records in pace with technological growth? Absolutely. Medical records are the number one target for hackers to sell for identity theft purposes. A single medical record can go anywhere from $10 – $800/record on the black market depending on the record compared to just $1/record for stolen info from a credit card. Is storing medical records on the blockchain the way to fix this problem? Absolutely not.

Regardless of the encryption and identity protections used to preserve anonymity on the record, if so much as one item could lead to a network member to identifying a patient, Health and Human Services would be all over you for violating HIPAA privacy and security standards for handling patient information. If you live in Europe, GDPR restrictions are even more restrictive for health data, as computer IP addresses classify as health information identifiers. Just because you can do something doesn’t mean you should. Yes, HIPAA can make sharing medical records difficult, but it’s important to remember too that these regulations exist to protect and ensure the rights of the patient. Violating these isn’t only going to get you fined, but is doing a disservice to the patient’s rights to their data.

Moreover, storing medical records on a blockchain just doesn’t make sense. Blockchain was never meant to fully replace databases. Electronic medical records can range anywhere from 1 MB to over 3 GB of data depending on the file. This automatically eliminates secure, proof-of-work networks like Bitcoin with block size limitations from being contenders. Even protocols like Ethereum and Storj that don’t have any block size limitations would be impractical choices. Yes, you could theoretically do it, but the sheer computational power and operating costs to do so would be entirely impractical. The U.S Healthcare system, which costs over 18% of the United States’ GDP ($3.5 Billion), is not going to pay even more money for sophisticated mining equipment so it can hash and store medical records on a blockchain.

Improving Electronic Medical Records’ (EMR) security and access isn’t going to be done by hashing medical records to a blockchain. It’s going to be done by innovating at endpoints of the system and improving secure IT infrastructure to reduce the likelihood of a malicious actor accessing the records. Yes, improved cryptography and distributed databases may play a hand in accomplishing this, but that is distinctly different then hashing records to a blockchain.

Wrap Up:

Blockchain can really have a transformative impact on healthcare, but tokenizing medical services and storing EMRs on a blockchain are not going to be the solutions that have a lasting impact. Blockchain will revolutionize healthcare by creating things like audit trails and digital identities for credentialing and care tracking. I will be following up in a future article on these blockchain use cases and more that could provide significant value to healthcare. Thanks for reading!

(Part II Coming Soon!)