Date post: | 17-Aug-2014 |
Category: |
Economy & Finance |
Upload: | mediabistro |
View: | 115 times |
Download: | 0 times |
State of EthereumAnd Mining
● People want features○ Issue coins○ Decentralized exchange○ Financial contracts
● Solution: feature coins● Problem: what if people want to do
more?
Cryptocurrency in 2013
● Generalized cryptoledger ● Built-in programming language● Create any feature that you want● Also supports DACs/DAOs/DAs
Ethereum
● Special type of account● Has:
○ Code○ Ether○ Storage (key/value database)
Contracts
● Idea: when a message is sent to a contract, code executes
● Code can:○ Read/write storage○ Send ether○ Send other messages (ie. recursive VM)
Contracts
Name registry: Currency:
Examples
The Ethereum Blockchain
Ethereum in 2014
● Decentralized applications (Đapps)● More than just money
● HTML/JS webpage, ETH JS API
Đapps: contracts with GUIs
● Whitepaper● Protocol fully implemented● 4 clients (Go, C++, Py, Java)● 2 clients compatible for 1900 blocks● Serpent, LLL, Mutan● Basic browser● Fully functional third-party dapps
Progress so far (technical)
● Financial○ Kickstarter (38 LoC)○ Denny’s Lotto
● Academic Publishing○ CryptoSwartz
● Governance○ People’s Republic of ĐOUG○ Project Eris○ BitVote
Third-Party Development
Progress so far (non-technical)● CCRG prelim (Toronto, Waterloo, Texas,
Nicosia)● Regulatory (Swiss, almost US)● Sale website, cold storage policy
(almost)● 40+ meetup groups
What needs to be done (technical)
● EtherBrowser○ Likely Chromium-based
● Efficiency upgrades○ JIT compilation
● Security audits● Light client implementation● Mobile implementation
What needs to be done (non-technical)
● Finalize pre-sale tasks● CCRG formal setup● Education resources● Translation● 960 more meetup groups?
Conclusion
● Ethereum at halfway point● Current version theoretically near-
viable but buggy (eg. 2009 BTC)● “Hard” work still remains
(we’re only half-done…)
Decentralization, n. The security assumption that a nineteen year old in Hangzhou and someone maybe in the UK, and maybe not, have not yet decided to collude with each other.
Mining
● I have 100 BTC○ Tx 1 sends 100 BTC to A○ Tx 2 sends 100 BTC to B
● Both are published, which one confirms?● Correct answer: the one that appears
first● Problem: need distributed timestamp● Solution: blockchain
Blockchain
Mining
● Miners attempt to produce blocks● Each block references previous block● Block making function 1/1020 success rate● One random miner succeeds every 10 min● Longest blockchain (one with most PoW)
wins
51% Attacks
● Problem: one entity has >50% hashpower● Attack 1: reverse transactions● Attack 2: exclude others, monopolize
○ Weaker version at 25%: selfish-mining● Attack 3: censor transactions
Pools
● Mining is a lottery● One ASIC has 15% chance of success● Pools: mine for me, I pay you 0.00025 BTC
per block● Problem: pool centralization
Pools
● Bad argument: no, majority miner has aligned incentives
● Better argument: users can quit pools○ Unknown: will they?
Is centralization bad?
● Problem: centralized pools allow mining without validation
● Idea: protocol requires blockchain accesses
● Goal: make P2Pool economically viable
Solution 1: force blockchain storage
● Problem: small pools have high variance● Idea: users mine into multiple pools
simultaneously● Goal: allow even small pools to fully
absorb variance
Solution 2: Multi-PPS
● Original intent: mining decentralized, democratic
● Problem: specialized hardware● Now: mining hardware all produced by a
few centralized firms
ASICs
● 25% of hashpower made in one factory in Shenzhen● First floor: 25% of Litecoin hashpower
How bad?
● Argument: CPU production very centralized too
● Counterpoint: CPU usage and control still local
● ASIC production now centralized, usage still decentralized
● Will this change?
Is this a problem?
The First Grand Equation
● Centralized maintenance, storage cheaper● Decentralized energy free… up to a point
ASIC Decentralization: The Argument
● 2011: Scrypt○ Problem: memory-hard to verify
● 2013 Oct: Momentum○ Problem: Pollard cycle finding algo
● 2013 Dec: Dagger○ Problem: shared memory
● Now: Cuckoo (length-42 cycles)
Anti-ASIC 1: Memory-Hardness
● Strategy: randomly generate a mining function every block
● Idea: optimal ASIC for “any function” IS a CPU
● Problem: how● Problem 2: some specialization always
possible○ But: does that matter?
Anti-ASIC 2: Generalized Computation
The Second Grand Equation● Idea: use of computer hardware free… up
to a point
End