-
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?
##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 run it 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.
##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.
- MirageOS - unikernels provide extreme level of performance.
- Squeak
- etcd in CoreOS uses the Raft consensus protocol - Raft is not Byzantine consensus and will not work in the presence of bad actors.
- 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