MultiVAC Programming Purple Paper Official Release
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 our 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;
- In our all-dimensional sharding yellow paper, MultiVAC proposes the world’s first blockchain architecture achieving full sharding in all three dimensions of computing, storage, and transmission, allowing for unlimited scalability while effectively reducing miner requirements. We make it easy for ordinary computing devices such as PCs to be miners on MultiVAC and ensure that network control is always in the hands of ordinary users.
- In today’s smart contract programming purple paper, MultiVAC provides effective support for Turing-complete smart contracts on our highly efficient sharded architecture, providing a convenient framework for scalable and robust smart contract development. The model upgrades the blockchain world computer from a single core to a multi-core system which scales with size.
Dr. Ying Xiang, 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 the real challenge facing next-generation blockchain systems which is a full-scale redesign. The vision for blockchains is to be able 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 so that the decentralized system is scalable.
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 allows developers 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 users, 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 first presented in the Bitcoin white paper. This vision was unfortunately 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 time 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.
The release of the Purple Paper means that the major design issues of the MultiVAC infrastructure have been completed, and that team will now gradually shift our efforts towards focusing on developing our 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 the discussion:
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 hold 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 is the first sharding technology built for linear performance expansion. MultiVAC’s asynchronous sharding architecture provides the foundation for building a high TPS blockchain network.
- MultiVAC reduces the equipment threshold for ordinary participants and maintains blockchain’s core value proposition of decentralization. Participants in the MultiVAC network will never require strong hardware requirements, enabling a large and truly decentralized network.
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 must wait forever and can do nothing. It may take a long time for the other party to reply to you, or they may never reply at all (the message is lost). This method greatly limits performance.
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. In this kind of a system, once 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:
In a country far, far away, two male villagers from village A, Lonesome Tiger and Iron Fist, both fell in love with Fragrant Blossom, a girl from village B next door. They both wrote a love letter to Fragrant Blossom, who will accept the first letter she receives. Lonesome Tiger and Iron Fist both put their love letter into mailboxes, and the postman from Village B collects them and sends them to Fragrant Blossom. In a postal system that cannot maintain monotonous consistency, the letter that Fragrant Blossom first receives 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. So, 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 for the kind of consistency that modern computers require.
Flexible selection between these two cross-shard paradigms allows developers to choose the type of data they 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.
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 rebalanced 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 maximum performance on all shards.
3. Turing Complete 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-complete 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.
Follow us for the latest news and project updates
Programming Purple paper: https://www.mtv.ac/assets/file/MultiVAC_Programming_Purplepaper.pdf
Telegram chat link: https://t.me/MTVCommunity
Telegram announcement channel link: https://t.me/MultiVACMTV