An incomplete comparison of cryptosystems
and the consequences for distributed applications
Max Kaye
http://xk.io
Oct 2014
Looking At
- Bitcoin
 - Ethereum
 - Meta-coins
 - Augmented Bitcoin
 
Bitcoin
Apps
- money
 
Bitcoin
| blockchain | 
			 yes  | 
		
| programmable | A bit.. | 
| scalability | average | 
| authenticated | yes | 
| public consensus | yes | 
| existence => validity | yes | 
| detectable existence | no | 
Blockchain
Basic platform for decentralised ordering
- distributed non-controversial ordering
 - authenticated (somewhat)
 - validated (optional in general)
 
Bitcoin
Programmable
User designed scripts & functions
- Limited operations
 - Runs in a virtual machine
 - Low cost, sometimes free
 
Bitcoin
Scalability
Performance when under load (users) or aged
- Size - grows with transactions and time
 - Single chain
 - Global requirements - grows with size and users
	
- everyone knows everything
 
 - Over all - Average (after block size hard-fork)
 
Bitcoin
Authenticated
There is proof data is allowed to be included
- Proof of work
 - Rate limiting (via PoW)
 - Requires valid data structure
 - Aids SPV
 
Bitcoin
Public Concensus
Everyone knows when consensus breaks
- Mutually incompatible forks
	
- easily detected
 
 - Provides confidence, security
 
Bitcoin
Existence => Validity
If a transaction exists, then it is valid
- Only valid transactions allowed into chain
 - Allows validity testing through existence testing
 - Enables functional SPV, trustless mobile clients
 
Bitcoin
Detectable Existence
Easy and efficient way to check for transactions (and other things) trustlessly
- Need to search the whole blockchain
 - Incompatible with SPV
 
Bitcoin
Ethereum
Apps:
- Anything (well, most things)
 - Everything?
 
Ethereum
| blockchain | yes | 
| programmable | Turing complete | 
| scalability | above average | 
| authenticated | yes | 
| public consensus | yes | 
| existence => validity | yes | 
| detectable existence | ½ | 
Blockchain
- Yes, Ethereum has one
 - Microchains?
 
Ethereum
Programmability
- Turing Complete
 - Compulsory Fee
 - Dapps not created equal
 
Ethereum
Dapp limitations
Non-standard crypto (I.E. no dedicated operations) is required to be run inside the VM which is expensive and slow.
This means it is unlikely non-standard crypto will ever be used.
Ethereum can run anything,
but will never run everything.
Scalability
- Microchains
	
- Allows for future expansion
 - Can allow raw data to be stored off chain till needed
 
 - Single chain (currently -- microchains allow for later expansion)
 - Computational burden may hinder dapps
 
Ethereum
Authenticated
- Like Bitcoin - PoW, etc
 
Ethereum
Public Consensus
- Like Bitcoin, yes
 
Ethereum
Existence => Validity
- Yes, data struct is authenticated, like Bitcoin
 
Ethereum
Detectable Existence
- 
	
½ (sort of)
 - Account balances can be looked up
 - Cannot disprove a tx took place
 - Cannot prove all txs associated with an account
 
Ethereum
I could be wrong on these if things have changed recently.
Metacoins
Apps
- Arbitrary local asset ledger
 - 'distributed' exchange
 - Money
 
Metacoins are:
- Hosted on other blockchains
 - Usually involved in arbitrary asset issuance, management, and trading
 - E.G. Mastercoin, Counterparty, Open Assets (coloured coins)
 
Metacoins cont.
- Transactions are embedded in host transactions
 - Probably requires full validation of host chain
 - Currently requires full validation of metacoin ledger
 
Metacoins
Metacoins
| blockchain | no (hosted) | 
| programmable | no (but possible) | 
| scalability | bad | 
| authenticated | no | 
| public consensus | no | 
| existence => validity | no | 
| detectable existence | no | 
Metacoins
Blockchain
- Hosted on another blockchain
 - Have to fit within host's validation rules
 
Metacoins
Programmable
- Not currently
 - Possible
	
- Dubious utility
 
 
Metacoins
Scalability
- Strictly worse than host chain currently
 - All the regular problems and more
 - On the whole: Bad
 
Metacoins
Authenticated
- Not at all
 - Host chain used like notice board
 
Metacoins
Public Concensus
- Undetectable
 
Metacoins
Existence => Validity
- Validity not assured
 
Metacoins
Detectable Existence
- None currently, but possible
 
Metacoins
Augmented Bitcoin
Apps
- Anything
 - Everything
 
Note: Ethereum can be augmented in the same way
Augmentations
- Sidechains
 - Ultimate Blockchain Compression
 
Augmented Bitcoin
| blockchain | yes | 
| programmable | yes | 
| scalability | high | 
| authenticated | yes | 
| public consensus | yes | 
| existence => validity | yes | 
| detectable existence | yes | 
Blockchain
- Similar to Bitcoin
 - Sidechains
	
- Less secure than main chain
 
 
Aug. Bitcoin
Programmable
- Create arbitrary networks
 - Practically limitless
 
Aug. Bitcoin
Scalability
- Medium-High scalability
 - Can move coins between chains
 - Miners have to validate any mined chains
 - Half parallel-isation
 
Aug. Bitcoin
Authenticated
- Yes, like Bitcoin
 - Sidechains authenticated in the same way
 
Aug. Bitcoin
Public Consensus
- Yes, like Bitcoin
 
Aug. Bitcoin
Existence => Validity
- Yes, like Bitcoin
 
Aug. Bitcoin
Detectable Existence
- Yes, through ultimate blockchain compression
 - Merged mined chain holds the unspent outputs by address
	
- Not a sidechain: no 1:1 peg or coin interaction
 
 
Aug. Bitcoin
Applications & Suitability
Voting
Simple:
- Only need to cast vote publically
 - Essentially need just a notice board
 - Any blockchain
 - Metacoin
 
Complex:
- Transferable, live voting
 - Need to validate votes and transfers
 - Need to process zero conf and revocation
 - Ethereum
 
Distributed Exchange
- Lots of weird crypto operations for SPV
	
- Expensive if scripted in a VM
 - Better to use dedicated chain
 
 - On a dedicated chain only users wanting to trade with that currency execute the code
	
- Means it can be free or near-free
 
 - Sidechain or dedicated network
 
Custom Assets + Exchange
Shares
- rarely transferred
 - long term (high security desired)
 - Metacoin
 
Reward Points
- Often transferred, short term
 - Small, low security transactions
 - Mobile clients
 - Ethereum
 
Thanks
Questions?
Max Kaye, m@xk.io
cryptosystem comparisons
By Max Kaye
cryptosystem comparisons
- 1,401