MultiVAC Programming Purple Paper Was Official Released

Dear MultiVAC community,

MultiVAC today officially released its Smart Contract design in our Programming Purple Paper: Flexible Sharding Supporting Turing-Complete Smart Contracts.

This paper is the third large-scale technical document from MultiVAC’s Core Algorithms Team, following the release of our technical white paper and technical yellow paper in 2018:

  • In our flexible computing technical white paper, MultiVAC pioneered the flexible computing sharding model, transforming the impossible triangle of blockchain into a flexible architecture. Developers are free to define and choose security, decentralization, and scalability according to their demands on MultiVAC’s flexible sharded blockchain;

Dr. Shawn Ying, the CTO of MultiVAC, pointed out that:

“Many sharding projects are based on a shallow understanding of our Blockchain 2.0 Era, dividing the hierarchy of blockchain sharding into network sharding, transaction sharding and state sharding, ignoring that the real challenge faced by next-generation blockchain systems is a full-scale redesign. The vision for blockchains is to provide a shared worldwide computing resource and redefine the traditional von Neumann computing system. To achieve this, the core issues of the day are dealing with low throughput and redesigning storage and data flow for the scalable decentralized system.

This is why MultiVAC designed a full-scale parallel sharding architecture to upgrade the blockchain from single core to multi-core, addressing critical throughput bottlenecks. MultiVAC’s data processing philosophy is to make distributed data streams interactive and verifiable, enabling a level of security which allows for a groundbreaking modularization of storage and data control. On top of this, we provide an asynchronous shard development model and LLVM development platform to allow developers to enjoy flexibility in developing various programming logic within our multi-core distributed backbone.

MultiVAC’s vision is to achieve realized decentralization. We believe that any large-scale blockchain system must be both practically scalable and also hold fast to blockchain’s original vision of decentralization. For this reason, we resolutely maintain low hardware requirements for the full-participation of ordinary miners, ensuring that the world computer is never controllable by any single individual or shut down.

In 2008, Satoshi Nakamoto introduced the “One-CPU-One-Vote” concept, an original vision for a robust blockchain community which was first presented in the Bitcoin white paper. This vision was unfortunately and ruthlessly destroyed by ASIC mining machines and centralized mining pools in the last half decade, but we believe that we will rebuild it, stronger than ever.”

Since the MultiVAC algorithm team launched the design of our smart contract programming architecture last October to the release of our Purple Paper in May, our team has worked tirelessly on architectural design, development, and verification.

MultiVAC Purple paper Iterative Record

The release of the Purple Paper means that the major design issues of the MultiVAC infrastructure have been completed, and that team will gradually put our efforts into economic model and developer platform.

To explicate our design and to update our followers on our developments, the MultiVAC Foundation will hold a series of discussion and communication activities in the Chinese and English communities to which everyone is welcome to participate.

Below is a summary of key contents from the Purple Paper. We welcome all technology enthusiasts and community fans to discuss:

The overall design of MultiVAC can be generalized as follows:

MultiVAC carefully divides the blockchain into functional modules with clearly delineated duties. In terms of consensus, power is evenly distributed amongst execution nodes, and the principle of equality is firmly enforced. The consensus module holds decision-making power but has low hardware requirements for full participation. In terms of smart contract execution, outputs are always consistent despite the difficulties in network transmission. Smart contracts of any type are always executed reliably without the user ever worrying about synchronization across shards. With regards to storage, network storage pressure is transferred to the storage module, reducing the burden required from ordinary miners. The storage module is given no power for consensus and decision-making and so poses no centralization risk. Every module is cross-validated cryptographically by other nodes so that no module can misbehave and continue to operate in the network. On top of this backbone, MultiVAC allows developers the flexibility to implement their own applications according to their development needs and optimize their performance.

The core of the MultiVAC system are as follows:

  • MultiVAC is a Turing-complete blockchain sharding solution based on Proof-of-Stake. MultiVAC provides developers with a flexible development framework to build complex applications just as they would on a normal computer.
MultiVAC General Architecture Diagram

Several highlights from MultiVAC’s smart contract design include:

1. UTXO/Account Double Model + Asynchronous Programming

— — Ensuring consistency of cross-shard interactions

Ensuring the consistency of cross-shard data transmission is the central question in blockchain sharding. Existing sharding schemes mainly use a mixture of methods to achieve this. A stronger consistency requirement requires receipts from other shards whenever sending a cross-shard transaction. Before the receipt is received, the data sent is locked, similar to sending a message to someone via Facebook. If the other person doesn’t reply, you have to wait and can do nothing. It may take a long time to get the answer, or they may never reply at all (the message is lost). The system performance is greatly limited by this.

Another method is to split the cross-shard transaction into multiple sub-operations. For example, if a transaction is sent from shard A to shard B, after the transaction amount is deducted in shard A, a remittance will be executed in shard B. As long as the transaction volume increases, it will be hard to maintain monotonic consistency, consistent order of execution in shard A and B.

Let’s take an example:

There are two men from village A, Tiger and Fist, both fell in love with Blossom, a girl from village B which is far, far away from village A. They both wrote a love letter to Blossom, who will accept the man whose letter came first. Tiger and Fist both put their love letter into mailboxes, and the postman from Village B collects them and sends them to Blossom. In a postal system that cannot maintain monotonous consistency, the letter that first arrives depends on the postman, who may reorder the letters as he pleases. In the MultiVAC system, the postman guarantees that the order of receipt is the same as the order in which the letters are sent.

In a system that cannot guarantee monotonic consistency, all cross-shard operations are required to be exchangeable, that is, their order doesn’t matter. However, it is impossible to host a computing platform in which all computations are possible (Turing-completeness) in a system which requires computational exchangeability. Therefore, many public chain projects guarantee the exchangeability operations by constraining the system, giving up Turing completeness, meaning that many types of application logic can never be developed.

MultiVAC divides cross-shard operations into two categories:

For operations which are exchangeable, MultiVAC allows for rapid, cheap, low-cost data update without ordering the operations.

However, for operations which require monotonic consistency, MultiVAC is able to achieve Turing-completeness by strictly enforcing the delivery order at the protocol level. This requires a slightly higher cost but allows the consistency that modern computers require.

Flexible selection between these two cross-shard paradigms allows developers to choose various data they want to use according to their consistency, performance and cost demands.

MultiVAC miners send inter-shard transactions asynchronously. After each transmission is completed, the miner can immediately participate in the next block round without waiting for shard receipts. By not locking data in cross-shard communication, MultiVAC avoids data locking performance bottlenecks caused by the lock.

Shard asynchronous send block confirmation message flow chart

2. Global Data Decentralized Design + Multi-Account Model

— — Improving Piecewise Parallel Performance

The purpose of sharding a blockchain is to improve network performance. However, sharding is parallelization, and in parallelized systems, it is impossible to share all data across shards. Data that must be shared between shards is global data, and dealing with global data is a difficult problem.

For example, suppose there are 10 items in an e-commerce smart contract. The total number of items left in stock is referred to by all shards and should be global data, but if was just recorded in one place and referred to by every shard that piece of data would become a throughput bottleneck. Global data should be used only when absolutely necessary and provisions for local handing of data should be provided.

In view of the above, MultiVAC splits universal global data into shard-level global data, allowing each shard to manage a part of a global variable that all together comprises the global state. Thus, the total quantity of goods is put down on the shard, with each shard allocated a merchandise quota. When the transaction occurs, the smart contract only reads and writes the corresponding quota on the shard, which only needs to be distributed in a very small minority of cases. In addition, we allow users to operate on any shard, so if one shard is depleted faster than another, they may immediately move to another shard, enabling the maximum performance on all shards.

Interaction flow between miner node and storage node

3. Turing-completeness Virtual Machine + High-Level Programming Language Compatibility (C/C++)

— — Achieve a high degree of freedom development

As mentioned in the Purple Paper, many public blockchain solutions abandon Turing-completeness in order to simplify the data processing design, unfortunately introducing many inconveniences and limitations to developers. Other public blockchains developed specialized development languages which introduce high learning costs and may dispense with advanced development frameworks.

MultiVAC adheres to a high standard of design and does not impose limits on developers in terms of programming language or paradigm. We provide a full Turing-completeness virtual machine that is able to adapt to a variety of mature programming languages including C/C++, providing developers with a flexible development framework to build complex applications.

LLVM front-end compiler and MultiVAC back-end virtual machine



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store

All-dimensional Sharding Flexible Blockchain, known as multi-core Ethereum with parallel processing.