Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Ethereum: State of Knowledge and Research
Perspectives
Sergei Tikhomirov
SnT, University of Luxembourg
24 October 2017 LORIA, Nancy, France
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Outline
Motivation
Technical overview
Open problems Cryptography Consensus Scalability Privacy
Contract programming Other issues
Conclusion
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Why give this talk?
I Ethereum is a fascinating research topic
I Intersection of cryptography, distributed systems, programming languages, privacy, game theory, ...
I Interesting problems of highest practical relevance
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Bitcoin
I A fully decentralized digital currency [Nakamoto 2008]
I Combines cryptography and economics to prevent double spending without a trusted third party
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Ethereum: generalized blockchain
I A blockchain-based application platform [Buterin 2014]
I Key feature: Turing complete programming
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Ethereum features
I Accounts controlled by key or by code (smart contracts)
I Developers write contracts in high-level languages that compile to Ethereum Virtual Machine (EVM) bytecode
I Users interact with contracts via transactions (e.g., send ether, perform computation)
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Ethereum security is hard
I New software stack
I Unfamiliar execution paradigm
I Very limited ability to patch contracts
I Anonymous financially motivated attackers
I Rapid pace of development
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Outline
Motivation
Technical overview
Open problems Cryptography Consensus Scalability Privacy
Contract programming Other issues
Conclusion
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Cryptography
I Signatures: ECDSA
I Hash for id’s: Keccak-256
I Hash for proof-of-work: Ethash
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Ethash
I A new memory-hard cryptographic hash function
I Developed in 2013–2015, no academic cryptanalysis
I Claims of weaknesses in early versions
I (Ethereum plans to abandon proof-of-work altogether)
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Outline
Motivation
Technical overview
Open problems Cryptography Consensus Scalability Privacy
Contract programming Other issues
Conclusion
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Consensus: proof-of-work
I Nodes (miners) compete to produce the next block
I Find nonce s. t. hash(nonce|blockheader ) < target
I The first miner to construct a block gets a reward
I Probability of success is proportional to hashing power
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Drawbacks of proof-of-work
I Energy consumption (Bitcoin: #70 ”country”)
I Centralization (benefits from economies of scale)
I Game-theoretic attacks (selfish mining)
These problems are less obvious in Ethereum than in Bitcoin.
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Proof-of-stake as ”virtual mining”
Validators chosen proportionally to stake. Known issues:
I Nothing-at-stake (incentive to mine on all chains)
I Choosing validators (security of randomness source)
I Long-range attacks (finality guarantees)
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Independent evaluation required!
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Outline
Motivation
Technical overview
Open problems Cryptography Consensus Scalability Privacy
Contract programming Other issues
Conclusion
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Scalability
I Ethereum: 10 tx/sec (Visa: 45k tx/sec)
I Proposed solution: payment channels
I Exchange partially signed tx’s off-chain, settle on-chain
I Payment channel network Raiden is in development
I Related: sharding, fast synchronization
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Outline
Motivation
Technical overview
Open problems Cryptography Consensus Scalability Privacy
Contract programming Other issues
Conclusion
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Privacy
I All transactions in plaintext, history stored forever
I Blockchain analysis, deanonymization (mostly Bitcoin)
I Possible solution: ZKP / ZkSNARKs (used in ZCash)
I Introduced in Ethereum on 16 October 2017
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Outline
Motivation
Technical overview
Open problems Cryptography Consensus Scalability Privacy
Contract programming Other issues
Conclusion
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Contract programming in Solidity
Solidity is the most mature high-level contract language.
Example of a simple program:
1 p r a g m a s o l i d i t y 0 . 4 . 1 7 ;
2 c o n t r a c t S t r i n g S t o r a g e C o n t r a c t {
3 s t r i n g p r i v a t e str = " Hello , w o r l d ! ";
4 f u n c t i o n g e t S t r i n g () p u b l i c c o n s t a n t 5 r e t u r n s (s t r i n g) {
6 r e t u r n str ;
7 }
8 f u n c t i o n s e t S t r i n g (s t r i n g _ s t r ) p u b l i c {
9 str = _ s t r ;
10 }
11 }
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Improving code quality
I Summarizing good and bad practices
I Developer tools: code analysis, bug detection
I Formal verification, formalization of EVM
I Safer paradigms, languages, frameworks
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Outline
Motivation
Technical overview
Open problems Cryptography Consensus Scalability Privacy
Contract programming Other issues
Conclusion
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Other issues
I Governance: who determines Ethereum’s future?
I Usability: friendly dApps for broader audience
I Ethical: what is responsible disclosure in blockchain?
I Legal: how do cryptocurrencies fit in legal systems?
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Conclusion
I Blockchain is still a new technology
I Ethereum poses many research challenges
I Potential is enormous
I Security issues are inevitable
Researchers are welcome!
Ethereum: State of Knowledge and
Research Perspectives Sergei Tikhomirov
Motivation Technical overview
Open problems Cryptography Consensus Scalability Privacy Contract programming Other issues Conclusion
Questions?
I
cryptolux.org
I