A deep dive inside Quarkchain’s design principles
Hello friends from Steemit :)
This week I was reading the Quarkchain whitepaper, and I got very excited about it!
From the beginning, this blockchain project was designed with a very interesting set of principles in mind. Therefore, in this post I want to share with you everything that I learned about each of them:
This information is scattered around all of the whitepaper, so I organized everything inside each of these sections in a simple and easy to understand way. I believe this can be a good way to grasp these key points of the project, in just a few pages!
Let's start!
- Enhancing the scalability while guaranteeing security and decentralization:
Unlike many existing approaches that attempt to address the scalability problem by enhancing existing systems, Quarkchain is designed for scalability from the beginning. Quarkchain believes in the following important values: usability (fast, simple), decentralization (public participation), and safety (reliable).
Part of the strategy for achieving that is to have different layers:
One of them functioning as a ledger, which includes current ledger state, performs transactions, and records results (it’s a data-intensive process, since it needs to maintain both current ledger and transactions details including source, destination, amount, execution code, etc).
The other one focused on security. Therefore, the main function of the second layer is confirmation, which confirms the result of the transactions from ledger and then mines the block to reach desired difficulty (PoW). Approximatly 50% of all the hash power allocation will be on this root chain, and this ensures an attacker is economically inefficient to revert a transaction by mining another fork. Confirmation itself is a computational-intensive task.
Regarding descentralization, instead of every node having to fully validate or reject all blocks, Quarkchain allows multiple honest nodes to form a cluster to run as a super-full node. Running a super-full node alone would be very expensive in a high-throughput blockchain system.
For example, 1M TPS with each transaction being 250 bytes would require 2 GBps network bandwidth, which becomes a huge barrier to many users. In addition, the traffic would generate about 20 Terabytes data per day or 7 Perabytes data per year. The high requirements on CPU, storage, memory, and network bandwidth of super-full node impose a significant barrier, and such requirements may be only acceptable by powerful parties, increasing centralization.
This problem will not happen on Quarkchain, because each node in the cluster only validates a sub-set of chains. As long as the union of their sub-sets cover root blockchain and minor blockchains, they are able to fully validate the whole blockchains without acquiring an expensive machine.
In a Quarkchain system, transactions are classified into two categories:
In-shard transactions, where the input and output addresses of the transaction are in the same shard;
Cross-shard transactions, where the input and output addresses are in different shards.
In-shard transactions are simple, since a shard already contains complete ledger information of the shard. Cross-shard transactions are more difficult because of the synchronization between two shards. The Quarkchain fully supports cross-shard transactions as first-class citizen, in a sense that:
Any user could issue any cross-shard transaction at any time;
Cross-shard transactions can be confirmed in minutes;
The throughput of cross-shard transactions could be scaled linearly as the number of shards increases;
These key features of Quarkchain create a world in which anyone will be able to easily perform any transaction in a cost-effective manner.
Unlike other sharding solutions in which a user may need to create multiple accounts in different shards in order to interact with all users/smart contracts in the network, Quarkchain system greatly simplifies account management - a user only needs to have one account to manage all addresses in all shards and is able to interact with all users seamlessly.
In addition, Quarkchain will create a smart wallet application, which will automatically perform cross-shard or in-shard transactions (including smart contract) for a user, and the user may not be even aware of sharding in the system. Some users may choose advanced way to manage their addresses, e.g., allowing payments always via in-shard transactions, and thus a merchandise is able to receive a payment from all users in seconds.
Since a user can manage all addresses in all shards via a private key, a user will essentially have the same number of addresses as the number of shards. If the number of shards is large (e.g., thousands or tens of thousands), a user may have multiple balances in multiple shards, and thus managing all balance in all shards can be inconvenient. The account management will be further simplified by defining the following two types of accounts:
Primary account: Primary account is the address of the user in a default shard;
Secondary account: Secondary account manages the rest addresses of the user in the rest shards.
To simplify management, most transactions of a user will be initiated from the primary, then temporally move to an address in secondary account if the transaction requires (e.g., smart contract in different shards), and if there is remaining balance in secondary account after the transaction, the balance will be moved back to the primary account.
This ensures that the balance of the user should be in the primary account most of time, and thus the user does not need to manage the balances in the addresses of secondary account. This feature is enabled by smart wallet, which will be provided by Quarkchain team as an open source project.
Quarkchain will support smart contracts via Ethereum virtual machine (EVM). EVM is the most widely used execution engine for smart contracts. Most of the existing dApps built on top of EVM can be directly deployed on Quarkchain platform.
As a peer-to-peer system, using economics means to produce positive feedback to promote the continuous development of the system. QKC will be the reward to motivate the community to make continuous contributions to the system.
In addition, a significant amount of QKC will be allocated as incentives for developers who adopt and build their DApps on Quarkchain.
That’s it!
I hope you understood the details behind these very ambitious goals of the Quarkchain!
If you enjoyed reading it, please stay tuned on my blog for more updates and information on new projects on the blockchain ecosystem!
Quarkchain: the Zilliqa killer :-)
Nice article! Followed!
I like the way you write, crypto girl
Beep bop, this is @pushbot.
I just received a signal from the Mother Ship that you may require a push.
You just got a 9.22% upvote courtesy of @jujuzinha19!
Message from the Mother Ship:
You can earn daily profit by delegating SP to make @pushbot stronger. Delegators receive a share in 95% of the earnings.
10 SP • 20 SP • 50 SP
100 SP • 200 SP • 500 SP
1000 SP • 2000 SP • 5000 SP
Any Other Amount
Congratulations @jujuzinha19! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!