-
Notifications
You must be signed in to change notification settings - Fork 6
blockchain and VMs
The blockchain is changing the software stack. How will it effect Virtual Machine and Container vendors and the virtualization in general?
Big thanks for the review and the ideas to Rick Dudley, Simon de la Rouviere, Sam Cassatt, Joe Lubin.
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.
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 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.
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.
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.
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.
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.
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.
- etcd in CoreOS uses the Raft consensus protocol for container orchestration - Raft is not Byzantine consensus and will not work in the presence of bad actors.
- GaloisInc/HaLVM The Haskell Lightweight Virtual Machine (HaLVM): GHC running on Xen
- MirageOS - unikernels provide extreme level of performance.
- Squeak
- paxos, riak and cassandra achieve eventual consensus, may offer ideas
- Google Spanner achieves consensus with the help of atomic clocks and GPS
###Software
###Front end