Skip to content
Liu-Cheng Xu edited this page Apr 20, 2018 · 21 revisions

The blockchain is changing the software stack. How will it effect Virtual Machine and Container vendors and the virtualization in general?

Contributions

Big thanks for the review and the ideas to Rick Dudley, Simon de la Rouviere, Sam Cassatt, Joe Lubin.

Blockchain in the Enterprise

Blockchain is a new data structure designed to work in the wild, constantly under attack. It resilience, immutability, key-less security and other unique attributes offer a radical upgrade for IT infrastructure of any Enterprise, including VM vendors. I wrote separate posts on this subject, see Enterprise and Identity.

VM Vendors already optimize for DB performance

If Blockchain as a data structure is as important as databases for VM vendors (e.g. see VMware Oracle optimizations), then similar optimizations will be required as well.

Blockchain for VM/Container Orchestration

Blockchain can be used as a a more secure, reliable and auditable Registry for identities, devices, services and other enterprise resources and as a persistent wire (as described in #1).

One of the problems with managing large clusters of machines is reaching consensus regarding the state of the distributed system. Various attempts at this have been tried. Notably, CoreOS (an OS based on using docker containers for everything) uses etcd for storing configuration parameters, determining if the correct containers/services are running in the cluster, and then orchestrating and relaunching or healing of cluster components. etcd uses the Raft consensus protocol (https://raftconsensus.github.io/). chef or ansible configuration can be pushed to a blockchain from which the nodes could read. This will be better than Raft consensus as it is not Byzantine, i.e. not designed to work in the presence of bad actors.

In addition, token-based economic incentives can help optimize VM orchestration.

Explosion in a number of VMs

Today bitcoin and Ethereum contracts are executed on-chain (by miner nodes), but it looks like it will be even more common to execute contracts off-chain. This is due to privacy, anonymity, computational complexity, storage needs and other factors. Note the trend in this direction - Counterparty cloning the Ethereum EVM, and Eris's Decerver VM (Eris is executing the code on the user's machine and thus they had to run it in a sandboxing VM. Code is in written in Ate, which is based on JavaScript).

It appears that the number of VMs will grow as the number of nodes connecting to the blockchain increases, i.e. each app will run a VM.

Deterministic execution of contracts

Bitcoin and Ethereum contracts/scripts must be executed deterministically to achieve consensus. Ethereum EVM and ZeroVM are designed for deterministic execution. Founders of Blockstream Adam Back and Gregory Maxwell talk about using a VM for deterministic execution of sidechain consensus rules.

Resource metering

Cost of executing contracts/scripts by the blockchain nodes must be metered with high granularity and scripts exceeding resource reservation must be terminated. Ethereum EVM achieves both goals, other VMs seem to be behind. This feature also protects the host from malicious contracts/scripts. VMs and containers, like Docker need to acquire precise resource measurements and sandboxing to support cooperative distributed networks monetized via new token/coin based micropayment schemes.

Secure code execution

Scalability of executing the same contract/script on every blockchain node, as it is done now, is limited. Secure code execution provides a proof that code was executed faithfully, even on an untrusted host. This will allow to change the topology of the blockchain to achieve high scalability. This will also assure malware free operations, intruder protection, etc. for the most critical Enterprise functions, like forms of governance, rights allocation, software updates, etc. New methods like zk-snarks and others are appearing, and will soon become practical, and they usually rely on a special type of VM. This type of VM will also allow to trust the results of contracts/scripts executed inside apps on mobiles, BYOD devices, IoT devices, etc.

Conclusion

The blockchain is a new IT building block, blockchain affects existing market for VMs and is creating a new VM market with potential growth to billions of units.

Resources

Clone this wiki locally