Uncategorized

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 https://blog.factomprotocol.org/factom-in-regulated-industries/

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!