Function X: January Hash Out
Welcome to the first issue of Hash Out! Hash Out covers all things related to Function X, especially the technology and progress to give you a better understanding of what Function X is and follow our development.
The January issue discusses the basis of the Function X ecosystem, including cross-chain architecture, practical Byzantine Fault Tolerance (pBFT), Proof of Stake (PoS), Proof of Service and inter-blockchain communication protocol.
Function X is cross-chain
Function X will enable all sorts of data transmission on the blockchain. We have designed it to be a cross-chain architecture based on pBFT and PoS. Cross-chain, as the name implies, allows multiple chains to be part of Function X.
Below is a high level overview.
As you can see, F(x) hub is the parent chain, which is what we commonly call the Function X public chain. It is the backbone of communication between different blockchains operating in the ecosystem.
Update: F(x) hub is now officially called FXCore after a voting by the community, you will still see F(x) hub and FXCore used interchangeably at times.
Different chains will be able to talk to each other via the hub. Chains are able to send a variety of things, such as text messages, voice calls and digital assets to other chains. As F(x) is the underlying platform, F(x) Coin will be the base utility token for cross-chain communications.
From the image, Chains A, B and C are public or private blockchains with their own ecosystem and digital assets sitting on top of F(x). Just like how MakerDao, Omisego and Digix are individual ecosystems sitting on top of Ethereum. Function X hub connects these (oftentimes unrelated) ecosystems together. These projects can proceed to exchange coins/tokens, SMS, calls, apps, images, or protocols.
With the exchanges we will be able to build an ecosystem whereby different chains can call others via the Blok-on-Blok (aka BOB) blockchain smartphone, or send tokens natively from one chain to another (not just atomic swap), and other exciting things.
Timeline: We expect Function X hub testnet to be live in H1 2020.
Update: Testnet 1.0 was launched on 11th June 2020.
Consensus: pBFT, Proof of Stake (PoS)
pBFT is widely regarded as a secure and fair consensus method. It does not create overhead cost like mining in Proof-of-Work (PoW). For more on how pBFT works, Blockonomi has a good writeup here: how pBFT works.
So how is Function X’s pBFT different? We strive to ensure that our pBFT is the generic implementation of pBFT. This is because it has already been implemented, researched and tested extensively. pBFT is being used by flight systems and spacecraft systems; other blockchain projects that use pBFT are HyperLedger, Zilliqa and Cosmos.
Our model is differentiated by how devices can be nodes. We will have node participation rules, which we also want you to get involved in discussing. The rules include how nodes are invalidated and what the voting power of each node is, etc.
More about Function X nodes will be discussed in later product roadmap articles. Another difference is that with the help of Pundi X, we are able to introduce trusted nodes via XPOS and potentially BOB. Each device is potentially a node.
What’s the difference between Proof of Stake (PoS) and Function X’s Proof of Service?
Proof of Stake (together with pBFT) is the consensus used for block creation (aka block staking/mining) in Function X, miners earn FX coins via verifying new blocks.
Proof of Service refers to the services provided in the Function X ecosystem. Service providers can earn FX coins by proving that a service is offered.
For example, Decentralized Ride Hailing app or blockchain calls are all services. We will discuss more about Proof of Service in future Hash Out articles.
Inter Blockchain Communication Protocol (IBC)
How do two blockchains talk to each other?
Take human communication for example. A Chinese speaker communicating with a German speaker would need a “protocol” to understand each other; in today’s world, English would likely be that protocol. The way chains talk to each other is via the Inter Blockchain Communication (IBC) protocol.
IBC was first coined by the Cosmos team and has since received considerable traction. We envisage that our implementation will be interoperable with Cosmos’ as will Cosmos’ be interoperable with ours.
IBC is akin to TCP/IP. TCP/IP was coined by Vince Cerf, and later jointly developed by many corporations and governments, including the Internet Engineering Task Force (IETF), the governing body that keeps TCP/IP interoperable so the Internet can function.
IBC is not the same as atomic swaps. Atomic swaps are contractual agreements that lock up tokens in one chain, while creating a variant on another chain. IBC allows the actual movement of one token from one chain to another. Think of ETH really on the Bitcoin blockchain or vice versa — that is the ultimate goal of IBC.
We are now currently implementing IBC on the F(x) chain.
Any feedback or questions? Join the Function X Reddit to discuss.
[*] Function X: Hash Out is a monthly article that focuses on product discussion and, to a lesser degree, technical implementation. The products discussed in the article are all Works in Progress hence final implementation may vary.
[**] Function X chain and F(x) chain are used interchangeably to refer to the blockchain of Function X.