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,122