Honesty of each and every system in this world is totally dependent on it’s proprietor. if proprietor is honest so the system otherwise system is as corrupt as it’s proprietor. Do we have any means to challenge the system?, No, if system(it’s proprietor) is supreme. we are living in an era of blind trust, where we don’t want to trust but we have to because there is no such technology, authority or any trusted auditor. This was till couple of years back, until a Austin, TX based software company proposed and developed a system named FACTOM.
What is Factom?
FACTOM is a protocol as well as first usable blockchain technology which solves real world business problems by providing an un-alterable ledger. which creates a data-layer on top of Bitcoin’s Blockchain. Factom Distributed ledger technology secures millions of records in the blockchain represented by a single hash using cryptographic isolation.
What is Bitcoin?
Bitcoin is a digital currency, created and held electronically. It is first decentralized peer-to-peer payment network that is powered by it’s users with no central authority, neither they are printed on papers, they are produced by people, businesses, running computers all around the world, using software that solves mathematical problems.
It is also first implementation of concept called “cryptocurrency”, which was first described by Wei Dai in 1998.
Behind the curtain’s bitcoins network uses Blockchains as a ledger, a shared public ledger.
Tired of Hearing Blockchains, what is it?
Blockchains are databases, who records each and every transaction ever took place in bitcoins network in ordered and timestamped manner.
So Bitcoins are a chain of block’s in which each block has a reference to the block that preceded it, as keeping the reference of preceding block it turns out quite difficult to recreate the same block once created.
If Bitcoins network is available then why Factom?
No doubt that Bitcoin Blockchains revolutionized the way in which transaction’s were recorded, conventionally there were no permanent, decentralized and trust-less ledger. but there were few shortcomings of the Bitcoins network described below-
1)Speed – Because of decentralized design,proof-of-work consensus method used by bitcoins. 10 minutes confirmation time is required.
2)Cost – Bitcoin’s has volatility and main reason behind is limited amount of bitcoins can be produced and demand for them varies day by day. and the default transaction cost on bitcoin’s is 0.01 mBTC, value of which can vary as the value of bitcoins varies day by day.
3)Bloat – In Bitcoins network size of each block is limited to 1 MB and there can be 7 transaction’s per second. which is not enough.
Factom is a protocol which is designed to address the above stated issue’s of blockchain.
Factom allows application to work beyond currency transactions. it provides a footing for applications to overcome the shortcomings of bitcoins network and run application faster, cheaper, and without bloating bitcoins network.
Factom Cryptocurrencies-
Factom has it’s own currency, of-cource cryptocurrency named as Factoid.
Factoids – are the main scarce token which are used to write entry into factom not directly but by Entry Credits and to reward system actor’s.
Factoids are implemented in much same way Bitcoin is implemented. Factoids transactions are managed on a special Factoid Chain.
This Factoid Chain is handled more restrictively than other Chains. Entries in the Factoid Chain must be valid Factoid transactions, or the Factom Servers will reject the Entries.
Entry Credits – Only Entry Credits have right’s to put entries into factom.Factoids can be converted into Entry Credits but not vice-versa. once a factoids is converted into entry credits it can not be undone, then they can only be used for purpose of writing entries into factom or for voting for Fedrated Servers.
The Factom Ecosystem –
Primary Components in Factom ecosystem is described below-
Once The Application is Setup –
1- Application Owner Buy Factoids
2- Application Owner Charges/purchases Entry Credits With Factoids.
3- Application Records Entries.
4- Factom Servers Creates Entry Blocks and Directory Blocks.
5- Factom secures an anchor(hash of the Directory Block) into blockchain.
Factom Layered Data Structure-
Factom is constructed of hierarchical set of blocks, highest being the Directory Blocks.
They constitute a micro-chain consisting primarily of compact references.
What is Chain?
Chain’s in Factom are logical grouping of entries specific to Application. It depends on application and application owner. In other words “Chains are logical interpretations of data placed inside Directory Blocks and Entry Blocks”.
What is Entry?
Entry is Application specific data, which belongs to the owning application. An entry can be encoded in any cryptical manner or can be kept as plain-text, it is totally up to the application and it’s owner. Factom does not rely on the format,structure or encoding of the entry.
What is Entry Block?
Entry Blocks merely keep references to the entries, means all references to the entries are organized into Entry Blocks.Entry Blocks indicate which Entries have been added to the Chain.
What is Directory Block?
Directory Blocks Organizes Merkle Roots of Entry Blocks.Each Entry Block reference in Directory Block takes up 64 bytes. 32 bytes ChainId and 32 bytes Merkle Root of Entry Block.
Each Directory Block is sealed every minute and then a new Directory Block is created.The Directory Blocks indicate which Chains are updated.
Complete Factom System-
1- Firstly Entries are constructed, they can be secured hash, encrypted data or data in plain text format, it is totally dependent on applicantion requirement factom does not validates entry data.
2- Entries are posted into Chains with some meta-data as required by the Application. So an Entry is basically ChainID, meta-data and data itself.
3- Based on the ChainID of the Entry one of the Factom Server adds the Entry to the appropriate Entry Block for that ChainID (creating one if this is the first Entry for that Entry Block) and broadcasts it to other servers.
4-At end of Each minute all Factom Servers coordinate and confirms the process block height.
5-Directory Block for that minute is constructed from all the Entry Blocks defined by all the servers. So, each server has all Entry Blocks, all Directory Blocks, and all Entries.
6- At completion of 10th Directory Block
a. Create the Merkle roots for the last minute’s Entry Blocks, sorted by ChainID.
b. Create the last minute’s Directory Block, and calculate its Merkle root.
c. Create an anchor out of the Merkle root of the 10 Directory Blocks’ Merkle roots.
d. Put the anchor into bitcoins network for eternity.
One the anchor is placed into bitcoin blockchain network then it can not be altered anymore by anyone due to it’s decentralized nature.
Conclusion-
Above is just an basic overview of Factom system architecture, here we got an overview of how Factom is built as an honest system and how it reduces the risk of forgery of data by any supreme authority.
In future posts i will explain further internal working.
References
1- Bitcoin: A Peer-to-Peer Electronic Cash System
2- FactomProject Github Repository
3- Factom Whitepaper