The CEO of Radix DLT, Piers Ridyard, recently conducted two Q&A sessions with leading Chinese Telegram crypto communities, Golden Finance and MXC Exchange. Piers was asked some excellent questions around Cerberus, Radix’s next-generation consensus mechanism, general design approaches to the network, and general industry questions.
As there is some overlap between the two interviews we have combine them together for ease of access.
If you have any follow up questions please join our Telegram and ask using #AMA
Hello Piers! Would you like to say hello and introduce yourself?
Hey guys, I am Piers Ridyard, CEO of Radix. I have spent the last 5 years deep in the cryptocurrency space, going from mining on the genesis block of Ethereum in early 2015 to building and exiting a YCombinator company that built decentralised deal-room software for insurance companies in 2017. My background includes finance, law, electronics and mathematics. I have two degrees, one in Chinese and Business and a second in Law, as well as having done the first level of the Chartered Financial Analyst exams.
I love all things crypto and finance
What is Radix? Can you share with us more in detail?
Radix is the Smart Money Protocol, a next generation layer 1 platform that does not have the limitations of current layer 1 platforms. Radix has demonstrated 1.4 million TPS in 2018. This is the world record still today. Our new consensus algorithm ‘Cerberus’ is able to theoretically scale infinitely. We will deliver this capability in 3 steps: from 50 TPS to thousands of TPS, to unlimited TPS. We have a strong team with backgrounds at ConsenSys, Microsoft, Nvidia and Y-Combinator who are experienced in delivering complex products. All of our last milestones were delivering ahead of time.
A big focus for us are developers. With Radix, developers can build fast without the massive security and exploit risks on Ethereum. Some information around this is already public, such as the Component Catalogue and Blueprints. We are excited to share more information soon. Also we think that we are incentivizing the right people in our network, the developers for creating valuable components and the validators for securing the network. Scalability is important of course, on Radix dApps will be able to scale to millions of users without friction because we don’t have a built-in TPS limit thanks to our innovative technology.
At Radix we have big goals, we want to fundamentally change the current financial system, because we think it is not a fair system. It is time to build a new financial system and Radix wants to be the platform on which the new decentralized financial system is built. To help with this, Radix has founded the GoodFi Alliance (GoodFi.com). The goal is to bundle the industry’s resources to educate and onboard the next 100 million people from the traditional financial system to DeFi. Many big players have joined us, like Aave, Chainlink, mStable and dozens of others. We are very thankful and are confidently looking into the future. We have 3 major milestones coming up with our Cassandra research network, our Betanet at the end of April and our mainnet by end of Q2. Exciting times at Radix!
What triggers you to launch Radix? What are some of the real-world problems / pain points that Radix aims to solve?
Today, the Ethereum ecosystem has three huge issues.
Firstly, it is extremely difficult to build bug-free code, and where complexity is punished due to risk. The number of hacks and exploits we hear about every week is growing and hundreds of millions have already been lost. This creates fear in the developer community, and it means that developers today spend 90% (!!!) of their time securing code rather than building new apps.
Radix solves this problem by allowing everyone to build fast and without breaking things.
We do that with a purpose built DeFi programming environment that enables fast AND secure development. By building a language specifically for building DeFi and starting with security and speed and the most important characteristics, we accelerate both time to production, and the scope for innovation on Radix.
Secondly, it takes a community to build a billion-dollar application, yet only the most successful dAapps are rewarded, incremental improvement is not rewarded. If you are an individual developer and you create a breakthrough innovation for Ethereum, you see none of the reward unless you go all the way to building an application. Contributing code gets you nothing.
Radix solves this problem by rewarding everyone who makes the platform better. This is achieved through our system of on-ledger royalties that rewards those that contribute code to the ecosystem. If you build a great new component for the Radix ecosystem and a dApp uses that component to make their great new application, the component developer gets a royalty fee every time that dApp is used. This makes sure that code contributors as well as dApp builders get incentivised to build and contribute to the Radix ecosystem.
Thirdly, gas fees are killing Ethereum. Ethereum 2.0 unfortunately kills DeFi composibility, which is critical to making DeFi work in the liquid low friction it does today. There are no technical fixes that address this for Ethereum, or Polkadot, or Avalanche, or Near – they are all equally flawed in this important respect.
Radix allows all DeFi applications to scale without adding friction, and without breaking atomic composibility. Indeed, it is the only public network that has been able to demonstrate this.
What are some of the challenges that Radix currently face? How do you aim to solve them?
Ecosystem is always the hardest challenge. How do you build an ecosystem from scratch when your network has just launched?
However, gas costs are killing the usability of the Ethereum ledger. Solidity is a nightmare for DeFi developers. Right now, most of the Ethereum ecosystem is actively looking for ways to mitigate the scalability issues, and every single project is constantly trying to mitigate the security issues of solidity. Layer 2s break the composability that is so critical to DeFi, and projects like Polkadot, Avalanche and Ethereum 2.0 do no better on this front.
To ease the transition from Solidity to Scrypto, one of our partners, Noether, is creating a system that allows people to migrate their Solidity code across to the Radix network: https://www.radixdlt.com/post/object-computing-and-noether-dlt-develop-ethereum-based-smart-contract-platform-for-the-radix-ledger/
In addition to this, Radix recently launched the GoodFi initiative with some of the leaders in the DeFi space to help bring 100m users into DeFi by 2025: https://www.radixdlt.com/post/radix-launches-goodfi-alliance-with-chainlink-aave-messari-mstable-more/
No single thing builds an ecosystem. But a great place to start is by building something that actually gives DeFi the chance to break into the mainstream by solving a lot of the issues that are holding it back.
How many fragments will the entire network have?
The sharded Radix public network will have 2^256 shards (or fragments), which is roughly comparable to the total number of atoms in the known universe.
What kind of computing device does the sharding run on?
Because the network is broken down into so many fragments, the minimum computing power required for a computer to serve part of the network will be very low. Once the fully sharded version of the Radix network is deployed, it is expected that even a Raspberry Pi could serve a few or even a single shard in the network.
It is important to note however that this low computing requirement for nodes will only be available from our Xi'an release; our releases this year (Olympia and Alexandria) are unsharded, and so there will be a minimum computing requirement per node until the Xi'an release in 2023.
How many chains will these shards make up?
There is no real concept of “chains” on Radix – each shard is an independent “state” ledger of transactions and smart contract interactions that touch that shard. They are not chained together in the way you would normally think of a blockchain; instead you can think about them more as entries in a sharded database with a hash reference to make indexing easy.
After the Radix mainnet is launched, do all the shards need to be up and running?
The Radix mainnet Olympia (launch end of Q2 2021) is prepared and designed for sharding but uses blocks for a secure launch and rollout which are served by all nodes (unsharded Cerberus). Babylon (2022) introduces state-sharded Cerberus with all nodes serving all shards. Finally, the full scalability upgrade Xi'an (2023) is expected to deliver fully sharded Cerberus with unlimited scalability.
Does it depend on the number of validators to determine how many shards are in the validator's computing device?
Any validator node can choose to serve either the entire shard space or just a small part of it; this is governed by both how much computing power that node has and how much bandwidth it has. As consensus operations on Radix are not in blocks, and are instead run in parallel on non-conflicting transactions and smart contract interactions, a node can be validating thousands or tens of thousands of events simultaneously.
If a node is not powerful enough to do that volume it simply reduces the number of shards it is operating across until the computing power the node has matches the throughput on the shards it is operating.
Regarding the issue of the consistency of the entire network's ledger, what kind of nodes are in the network to synchronize the latest state?
Radix is highly decentralized and therefore only has validator nodes which secure and run the network. There will also be the possibility to run nodes which do not participate in consensus, but these are purely optional and not relevant to ensure a working and robust network.
How do these nodes work?
Since Radix has a nearly infinite number of shards, cross-shard transactions are the default case in Radix. The assignment of transactions to shards is deterministic, therefore a client knows to which validator it needs to send the transaction. Validators are organized into validator sets and these serve shard groups.
After different shards process different transactions, who will package and broadcast the transactions?
Cerberus, the Radix consensus algorithm, is a cross-shard consensus algorithm. This means that inherently to how it functions it is working across multiple shards, rather inside a single shard only. The idea of first processing and then packaging and broadcasting as separate functions only applies to non-cross shard consensus algorithms.
To explain – let’s say that there is a transaction that touches three shards in the network (as the shard space is SO large, all transactions will always touch at least two shards). Because all transactions are deterministic, the submitting node can see which three shards the transaction is touching. Because validators are deterministically mapped to the shard space and must report what shards they are servicing as part of their staking process, the submitting node also know ALL the validators that are involved for the transaction to be confirmed.
Note: a submitting node is just a full node that the user happened to have connected to as the entry point into the ledger to submit a transaction. Submitting nodes are not a special node type in the network, and any full node can be selected as a submitting node by the user.
The submitting node broadcasts the transaction to the relevant validator nodes for those three shards. Next Cerberus consensus is applied to the transaction. This consensus operation checks that the relevant transaction is valid across all three shards before all nodes in the validator set commit the transaction. If the transaction fails on one shard, then it fails on all shards.
This is how Cerberus ensures atomicity between shards for complex transactions like flash loans or other DeFi native operations.
Crucially – as this is NOT a blockchain, any other transactions that also touch these validators do not have to wait for this consensus operation to be finished. Validators can process hundreds or thousands of consensus events in parallel, meaning that these cross shard operations do not intrinsically slow down the network as a whole.
In addition, sharding is a dynamic processing task, taking into account the need to allocate tasks to shards, and communication between shards to confirm the overall status. Is the processing time for a single transaction fast?
Yes. Finality is expected to be achieved within 3-5 seconds.
Even though Radix's network, sharding technology, "components", etc. can support dapp operations very efficiently, why do dapps on other chains such as Ethereum migrate to Radix?
Radix believes in enabling developers to build fast without breaking things. This is not what is happening today. Every month millions of dollars of user funds are being stolen/hacked/lost, and developers are spending 90% of their time debugging and security testing rather than building. This is the legacy of Solidity based development.
Fundamentally decentralized finance is dealing with people’s money. When you are dealing with people’s money it is really important that the system is secure. The Radix development environment, Scrypto, allows the developer to create programmable state machines (the same secure systems that is used in traffic light controls or nuclear power stations) that are much safer and faster than Turing based solidity smart contracts.
These finite state machines are pushed onto the Radix ledger as “Components” and can be used to create anything from simple tokens to full decentralized autonomous lending markets like Aave or Compound.
Once a component has been created, it can be re-used by any developer, short cutting development time from weeks to hours, and creating an ever-growing library of secure financial building blocks. This moves from every developer needing to deploy huge smart contracts, to developers only needing to develop the small pieces of extra functionality that makes their project special. This is already how must professional software development is done – open-source libraries form the bedrock of most commercial applications today!
Lastly, we firmly believe that the financial system of the future should reward those that make it better. Every time a component is re-used by a developer, the Radix component system allows a royalty to flow to the developer that originally created that component, making sure that components are more than just a great system for building dApps quickly: it is also an entire system of royalties that rewards great developers for their hard work in improving an ecosystem.
How does Radix make the defi dapp on Ethereum migrate to the Radix network?
Gas costs are killing the usability of the Ethereum ledger. Solidity is a nightmare for DeFi developers. Right now, most of the Ethereum ecosystem is actively looking for ways to mitigate the scalability issues, and every single project is constantly trying to mitigate the security issues of solidity. Layer 2s break the composability that is so critical to DeFi, and projects like Polkadot, Avalanche and Ethereum 2.0 do no better on this front.
To ease the transition from Solidity to Scrypto, one of our partners, Noether, is creating a system that allows people to migrate their Solidity code across to the Radix network: https://www.radixdlt.com/post/object-computing-and-noether-dlt-develop-ethereum-based-smart-contract-platform-for-the-radix-ledger/
In addition to this, Radix recently launched the GoodFi initiative with some of the leaders in the DeFi space to help bring 100m users into DeFi by 2025: https://www.radixdlt.com/post/radix-launches-goodfi-alliance-with-chainlink-aave-messari-mstable-more/
Will the Ethereum node be built to be compatible with EVM, solidity, ERC20 asset cross-chain operations?
We are building a number of bridges between the Ethereum and Radix ecosystem, including supporting the renVM for decentralized bridging services, and services such as Copper to bring many more assets across to the Radix ecosystem from Ethereum ERC20s and beyond:
https://www.radixdlt.com/post/radix-partners-with-ren-protocol-to-bring-fully-decentralized-wrapping-to-the-radix-defi-ecosystem/ https://www.radixdlt.com/post/radix-and-copper-bring-a-tokenized-world-to-the-radix-network/
If many layer2 expansion projects connect networks to each other and use the same protocol, is there hope to achieve a breakthrough in combination and processing efficiency?
A layer 2 project is another network, built on top of a layer 1 network, with its own competing validators, liquidity providers, and token economic systems. It is not a solution, merely a sticking plaster to a fundamentally broken system.
For example, developers need to decide which layer 2 they want to use, smart contracts will be more complex to develop and seamless communication between layer 2 does not really exist yet. Besides that, someone needs to run and secure these layer 2 networks.
Normal users would need to manage their funds in multiple different layer 2 with different security guarantees and need to regularly take care that their layer 2 is still alive and not abandoned soon.
That is why Radix is built from the ground up as layer 1 distributed ledger, there is no layer 2 solution necessary for scaling. Radix already delivers linear scaling without breaking atomic composability which mean there is no bottleneck in Radix, the transaction throughput grows with a growing network (more nodes = more TPS) and finality times will always be low at 3-5 seconds.
If the Cerberus consensus is applied to networks such as Ethereum and Polkadot, what changes will happen?
You would be building Radix. Radix is not *just* a consensus system – the consensus system informs the data architecture (not a blockchain), and also informs the execution environment (state sharded programmable finite state machines, rather than Solidity VM).
To apply Cerberus to Ethereum or Polkadot you would have to remove blockchains, change to a deterministically sharded data structure, and change from Solidity VM to the Radix Engine V2. This would basically be throwing the entire project of Ethereum and Polkadot away and starting from scratch.
This is what we did to create Radix. We do not expect Ethereum or Polkadot to do that any time soon!
Does Radix hope to solve the "flash loan attack" problem?
No. A flash loan attack is generally a market attack rather than anything inherently wrong with the code. This makes a “flash loan attack” an oracle problem, not a smart contract problem. It is an issue around design of DeFi applications and not a root problem to either a layer 1 or a smart contract language.
Fundamentally, if you make your DeFi application provide asset prices based on a market price set outside of your app and not secured against short term market manipulation, you are going to end up with a “flash loan attack” regardless of how secure your code is.
The combination of "components" is used to replace the combination of smart contracts, but how can "components" meet diversified requirements?
Any developer can develop a new component using Scrypto. Developers are not limited by what components are available – if they need new ones they can simply build them.
The only limit to Scrypto is you cannot build a non-deterministic system. If you need to use randomness in your application there will be several tools provided; but the output of an application must be deterministic, even if the input is random. This is an inherent property to building using finite state machines and is massively important in helping to ensure security and safety at runtime, as well as state sharding to enable cross-shard atomicity.
In addition to the current defi products such as lending, DEX, and mining on Ethereum, what defi products does Radix look at?
We think futures, options, synthetic insturments and other derivatives are going to be a massive growth area for DeFi. We also think fixed rate products are going to start growing in popularity as more work is done around funding rate optimisations. These are all areas we watch with interest.
How many defi projects do you think will appear, what functions do these projects perform, and what value do they have?
Radix is a layer 1 distributed ledger especially built for DeFi and supports any use case within finance. As a result every financial product that exists today could be made into a dapp that runs on Radix.
Fundamentally the global financial system has one job: efficient capital allocation. This is achieved via a huge range of financial products. Decentralized Finance is in the process of re-thinking every single one of these products to create a decentralized version of what is currently being used in the standard financial industry today.
I expect everything in finance to eventually become a DeFi project. The question is not if, but when.