Slide 1

Slide 1 text

Ethereumͷ͜Ε͔Βͷ࿩ The future of Ethereum CTO - Shogo Ochiai

Slide 2

Slide 2 text

͜ͷൃද͸ݸਓͷओ؍Ͱ͋Γɺ ౤ࢿॿݴͰ͸͋Γ·ͤΜ This talk is my individual opinion, and not advising investment

Slide 3

Slide 3 text

EthereumϓϩτίϧϨΠϠʔͷ࠷৽৘ใʹ৮Ε͍ͨ ͕ɺٕज़తഎܠ͕ബ͘Θ͔Γ΍͍͢આ໌ΛٻΊ͍ͯΔ ํʹ޲͚ͯͷൃදͰ͢ɻ࣭ٙԠ౴ͷ࣌ؒΛ௕ΊʹऔΓ ·͢ͷͰɺΘ͔Βͳ͍఺͸ϝϞΛऔͬͯɺԕྀͤͣʹ ࣭໰͍ͯͩ͘͠͞ɻ This talk is for the person who 1) want to know latest protocol layer of Ethereum 2) doesn’t have enough time and knowledge to digest whitepapers and articles. I plan to take some longer Q&A session so that please take memo and ask me without hesitation :)

Slide 4

Slide 4 text

ࠓ೔͸ʮ໰͍ʯ͔Β࢝Ί·͠ΐ͏ I’d like start this talk with questions

Slide 5

Slide 5 text

#1 ༷ʑͳεέʔϦϯάιϦϡʔγϣϯ͕ग़ ͯ͘Δ͕ɺզʑ͸Solidity͚ͩΛ΍ͬͯ ͍Ε͹ྑ͍ͷͩΖ͏͔ʁ Several scaling solutions suggested though, can we just stick to the Solidity as our development tool?

Slide 6

Slide 6 text

#Sharding SolidityΛ࢖͑Δ͕͋Δछͷॲཧ͸ԸܙΛड͚ΒΕͳ͍ You can use Solidity directly but some sort of computation cannot be fully faster. #Plasma SolidityΛ࢖͏ͱηΩϡϦςΟ͕མͪΔ If you manage to use Solidity, security guarantee would be harmed in many cases #GeneralStateChannel Updateؔ਺Λ༻͍ͨϩδοΫઃܭͰɺSolidityͷϊ΢ϋ ΢ͱ͸ผͷ΋ͷ͕ඞཁ It requires you to deal with “update” function. And that requires you to learn new paradigm.

Slide 7

Slide 7 text

#Sharding - 1 Ethereum2.0(Shasper)͕CasperͱSharding͓Αͼͦͷ ଞͷཁૉٕज़Λ੝ΓࠐΜͩ΋ͷͱͯ͠։ൃ͞Ε͍ͯΔɻ Hotel&Train Problemͱ͍͏ShardΛ·͍ͨͩҰׅTx͕ ҰॠͰࡁ·ͤΒΕͳ͍͜ͱͰɺ֎෦ίϯτϥΫτݺͼग़ ͠ͳͲ͸࠷େੑೳ͕ग़ͤͳͦ͞͏ͱͷ͜ͱɻ (PrysmaticLab Mori͞Μͱͷٞ࿦ΑΓ) Ethereum2.0(Shasper) involves Casper, Sharding, and other modules. Hotel&Train Problem bridges two shards and the Tx isn’t to be maximally fast. External Contract call would be slower (via the talk with Mori from PrysmaticLab)

Slide 8

Slide 8 text

#Sharding - 2 ੑೳ: 13,000tps ϒϩοΫλΠϜ8ඵͰ1024Shardsઃఆʹ͓͚Δཧ࿦஋ Performance: 13,000tps Blocktime 8sec, 1024Shards theoretical assumption https://medium.com/@eric.conner/ethereum-network-throughput-under-shasper-390e219ec2b5

Slide 9

Slide 9 text

EVM͕࢖͑ΔPlasma͸ɺ͓ۚΛҾ͖ग़ͦ͏ͱ͢ΔTxΛ ڐՄ͍͍ͯ͠΋ͷ͔֬ೝ͢Δίετ͕ߴ͘ͳΔͨΊʹج ຊతʹPlasmaͷܗଶΛͱΕͣɺParity BridgeͳͲͰ Federation(10ਓఔ౓ͷAuthorityʹΑΔڐՄ)ͰҾ͖ग़͠ Λ࣮૷͢ΔɻΑͬͯEthereumͱؔ܎ͳ͍EVMΛ࢖ͬͨ ผνΣʔϯ͕τϥετϑϧʹ͓ۚΛҠಈͰ͖Δ͚ͩͱ͍ ͏࿩ʹͳΔɻ #Plasma - 1 EVM PlasmaͱηΩϡϦςΟ EVM Plasma’s exit is expensive so that you must use Parity Bridge. It is EVM applied Ethereum- independent chain with trustful interchain transfer.

Slide 10

Slide 10 text

#Plasma - 2 PlasmaLeapͱηΩϡϦςΟ PlasmaLeap͸EVMͷ࢖͑ΔExitՄೳͳPlasmaͰ͋Δɻ ͔͠͠TruebitΛࢀߟʹͨ͠ʮશһͰߴՁͳExitΛͤͣ୭ ͔1ਓʹใुͷ୅ΘΓʹݕূͤ͞Α͏ʯͱ͍͏࢓૊Έ ͸ɺҾ͖ग़͠ͷ҆શੑΛ͓ۚͰങ͏༨஍Λੜͤ͡͞Δͨ ΊʹEthereumͷηΩϡϦςΟΛͦͷ··आΓΕ͍ͯΔ ͱ͸ݴ͍͕͍ͨɻ PlasmaLeap is EVM available excitable Plasma proposal. Its “verify by a person instead of all nodes” economics enabled that cheap exit but it inject another attack vector to 2nd layer, and Ethereum security inheritance is not enough as Plasma.

Slide 11

Slide 11 text

ϚʔΫϧπϦʔͱ͍͏ߏ଄Ͱʮ࢒ߴϦετʯͷΑ͏ ͳߏ଄Λ࡞Γɺ࢒ߴͷߋ৽ʹؔͯ͠PlasmaࢠνΣʔ ϯͷγϯάϧϊʔυΛ؅ཧ͢ΔOperator͕ෆਖ਼Λ ߦ͍ͬͯͳ͍͜ͱͷূ໌Λɺzk-SNARKsͷSNARK ProofΛ༻͍ͯߦ͏࣮૷ɻTinyRAMͱ͍͏zk- SNARKsͷճ࿏ઃܭπʔϧΛ༻͍Δͱɺෳࡶͳίϯ τϥΫτ΋ѻ͍͏Δ͕ɺຖϒϩοΫͷProofੜ੒࣌ؒ ΋ෳࡶ͞ʹൺྫͯ͠৳ͼΔͷͰɺੑೳվળ͕ඞཁɻ #Plasma - 3 Plasma snapp Use SNARK Proof as MerkleProof-unchanged proof. TinyRAM may enable the complex contract, but proof generation time defines block time and it’s so slow for now. Performance tuning is needed.

Slide 12

Slide 12 text

#Plasma - 4 PlasmaCashͰͷεϚʔτίϯτϥΫτͷ։ൃํ๏ PlasmaCash is completely inherited the fund security property from Ethereum. And adding multisig is possible. But the logic woudn’t be written by Solidity, and you need PlasmaResearchers. PlasmaCash͸Ethereum͔Βࢿ࢈อશʹؔ͢ΔηΩϡ ϦςΟΛ׬શʹҾ͖ܧ͍͛ͯΔઃܭͰɺ͔ͭϚϧνγ ά΍DEXͷΑ͏ͳॲཧΛຒΊࠐΊΔɻ͔ͦ͠͠Ε͸ SolidityͰॻ͚ΔϩδοΫͰ͸ͳ͍ɻdappsͻͱͭͻͱ ͭʹPlasmaResearcher͕ඞཁʹͳΓɺdapps։ൃ νʔϜ͕େֻ͔ΓʹͳΔɻ

Slide 13

Slide 13 text

#Plasma - 5 Plasma GeneratorͱIvy-lang So building generator framework of PlasmaCash- based app could be secure and useful. Chain Inc.’s Ivy-lang is quiet good example how to write Solidity- like human readable UTXO smart-contract. This would be best match with Plasma Generator. PlasmaCashʹdappΛຒΊࠐΜͩ΋ͷΛɺੜ੒͢Δϑ ϨʔϜϫʔΫͷՄೳੑ͕ࣔࠦ͞Ε͍ͯΔɻIvy-langͱ ͍͏”UTXOϕʔεͷίϯτϥΫτ”ʹ޲͍ͨݴޠ͕૬ ੑ͕Α͘ɺͦͯ͠Solidityʹॻ͖৺஍͕ࣅ͍ͯΔͷͰɺ Plasma Solidityͱݴ͑ͦ͏ͳײ͕͢͡Δɻ

Slide 14

Slide 14 text

#2 ΢ΥϨοτଆͷ։ൃऀ͸৽͍ٕ͠ज़ʹͲ ͏ରԠͨ͠ΒΑ͍ͷ͔ʁ How the wallet developers should deal with Plasma or other new technology?

Slide 15

Slide 15 text

΢ΥϨοτʢϥΠτΫϥΠΞϯτʣ͸࠷΋ηΩϡΞͳ Plasma࣮૷Ͱ͋ΔPlasmaCashͰ͸ɺྫ͑ΔͳΒຖϒ ϩοΫ͝ͱεϚϗʹͦΕͧΕͷ͓ࡳ͕࢖ΘΕ͔ͨ࢖Θ Εͯͳ͍͔ͷূ໌(ཤྺ)Λอଘ͠ɺ͓ࡳΛड͚औΔͨͼ ʹِࡳ(ෆਖ਼ཤྺ)͡Όͳ͍͔֬ೝ͢Δ੹຿͕͋Δɻ In PlasmaCash as the most secure Plasma flavor, the Wallet(Light Client) must store your bucks’ history whether it is used or not, for every block. And the wallet must check counterfeit money by scanning all that history when you are sent a buck to you, before accept it.

Slide 16

Slide 16 text

BitcoinͰ΋VtalikΒʹΑΓఏҊ͞Ε͍ͯΔ99%߈ܸ଱ੑ ͷఏҊʹ͓͍ͯ͸ɺϥΠτΫϥΠΞϯτ͸ϝοηʔδΛ సૹ͢Δ੹຿͕͋Δɻ΢ΥϨοτ͕ߴ଎Խ΍ηΩϡΞԽ ͷͨΊͷηΩϡϦςΟϞσϧʹ૊Έࠐ·Ε͓ͯΓɺઃܭ ΍࣮૷͕ϒϩοΫνΣʔϯ͝ͱʹҟͳͬͯ͘Δ͜ͱ͕༧ ૝͞ΕΔɻ The wallet must forward message in the 99% fault tolerance proposal which is suggested in Scaling Bitcoin, with Vitalik. This means the wallet is the part of security model to gain tps or security. And this kind of change would be inevitable if the blockchain doesn’t compromise any trade-off.

Slide 17

Slide 17 text

#1 #2 ·ͱΊ ShardingͰ҆Ձʹҡ࣋Ͱ͖ΔPlasmaGeneratorʹPlasma SolidityͰॻ͍ͨίϯτϥΫτΛσϓϩΠͯ͠ɺWalletଆ͸ PlasmaCashϕʔεͷ΋ͷΛྲྀ༻͢Δ͜ͱͰϋΠεϧʔϓοτ dappΛ࣮ݱ͢ΔɻPlasmaαʔόʔࣗମͷҡ͕࣋dappsΤϯδ χΞͱͯ͠͸໘౗ʹͳΓɺPlasma as a Service͕ग़͖ͯͨΓ ͢Δɻ Sharding makes the Plasma cheap, the programming language is to be Plasma Solidity like one. It’ll be deployed via Plasma Generator. The wallet devs use PlasmaCash based repos. Plasma server maintenance would be helped by Plasma as a Service.

Slide 18

Slide 18 text

#3 EthereumͷScaling͕΋͏গ͔͔͠Γͦ ͏ͳͷͰɺEOS΍ࣗલΦϑνΣʔϯʹಀ ͛ͪΌͬͯྑ͍ͷͩΖ͏͔ Ethereum’s scaling would take a bit more so that can we flee to EOS or home-brewed off-chain server?

Slide 19

Slide 19 text

EOS, ZIL, TEZ, NEM, NEO — ͳͲ தԝूݖ੍΍දݱྗ΍ίϯτϥΫτͷΠ σΟΦϜͷ੔͍ํ͕ͦΕͧΕେ͖͘ҟͳ Δ Ethereum’s scaling would take a bit more so that can we flee to EOS or home-brewed off-chain server?

Slide 20

Slide 20 text

ETH EOS ZIL TEZ NEM NEO ϊʔυ਺
 Nodes 12,881
 [1] 21-100 3600
 (testnet) 450 (37% foundation al) [2] 502
 [3] 7-120 TPS 15 ~5000 2000 [4] 30 4142 [6] 2444 [5] NFT 
 ࢖͑Δʁ
 NFT available? YES YES NOT YET Maybe don’t like even ERC-20 Possible by Mosaic hack NOT YET ։ൃจԽ
 Culture of Dev Community αΠϑΝʔ ύΫɺτϥ ετϨεɺ Cypherpun k, Trustless ͳΔ΂͘ߴ଎ Ͱɺதԝूݖ΍ Ήͳ͠ Chase fastest, semi-public chain ίϯτϥΫτ Λ੍ݶͯ͠ઢ ܗSharding Linear sharding and limited contract ܗࣜॺ໊Մೳ ͳίϯτϥΫ τɺ༧ଌࢢ৔ ʹΑΔΨόφ ϯε
 Formal Verification and Governance Leverage Trust by easy contract Foundation Driven [4] https://cryptobriefing.com/zilliqa-closes-in-on-visas-8000-tps/ If wrong tell me @_sgtn [1]ethernodes.org [2] tzscan.io [3]nemnodes.org [5] https://www.reddit.com/r/NEO/comments/8tym0c/tps_of_neo_blockchain/ [6] https://jp.techcrunch.com/2016/12/20/mijins-next-generation-core-catapult-records-4142-tps/

Slide 21

Slide 21 text

๏ਓҊ݅ͰɺࣗࣾͰ͓٬͞Μͷ͓ۚΛ؅ ཧͨ͘͠ͳ͍ͱ͔ɺύϒϦοΫνΣʔϯ Λ࢖͍͍ͨͱݴ͏͝ཁ๬͕͋ͬͨΒʁ If your customer said they don’t want to maintain money safety but they want to use Public Chain. => EOS and/or home-brewed off-chain

Slide 22

Slide 22 text

τϥετϨεͰ؆୯ͳήʔϜ΍ۚ༥ܥͷ ࢓૊ΈΛ࡞Γͨͯ͘ɺදݱͰ͖Δ΋ͷ͸ গ͠গͳͯ͘΋Α͘ɺϝΠϯωοτϩʔ ϯν·Ͱ଴ͯΔ৔߹ What you can build would be a bit few, but you can launch trustless contract soon after mainnet comes. And you can go 700ktps theoretically. => ZIL

Slide 23

Slide 23 text

νϡʔϦϯά׬શͳεϚίϯݴޠɺ͔ͭ ϋʔυϑΥʔΫ͕গͳ͘౤ථํࣜ͢Βม ͑ΒΕΔ௕ظࢹ఺ͳ΋ͷɻBig blockͰε έʔϦϯά͢Δɻ Turing complete smart contract, and Hardfork-less voting method is important when you think. => TEZ

Slide 24

Slide 24 text

#3 ·ͱΊ ୹ظతʹαΠϑΝʔύϯΫ͡Όͳ͍࢖͍ํΛ͍ͨ͠νʔϜ͸ETHҎ ֎Ͱ͍͍͠ΦϑνΣʔϯͰશવ͍͍͠ɺͦ͏͠ͳ͍ͱ͖͍ͭɻETH ͸αΠϑΝʔύϯΫͳεέʔϦϯάʹಛԽ͍ͯ͠ΔɻΦʔϓϯͰ௵ ͤͳͯ҆͘ՁʹӡӦͰ͖Δdappsʹ౤ࢿ͕͋ͭ·Γɺ͞ΒʹΦʔϓ ϯιʔεʹࢿ࢈͕஝ੵ͢Δͷ͕decentralizedͳ··ͷύϒϦοΫ νΣʔϯಛԽͷྑ͞ɻ͋ͱ͸௵͞Εʹ͘͞ͱ͔εέʔϦϯάख๏ͷ downsideͱ͔දݱྗͰબͿɻ If you’re cypherpunk, Plasma scaling maybe currently earliest decentralized way. For non Etherean, please choose Public Chain anyway. Because the investment you got would be redistributed to Open Source community if you make you source code open :)

Slide 25

Slide 25 text

શମ·ͱΊ ա౉తʹ༷ʑͳνΣʔϯʹ։ൃऀ͕෼ࢄ͍ͯ͘͜͠ͱ ͕ߟ͑ΒΕΔɻຊ౰ʹ෼ࢄੑ͕ඞཁͳϓϩδΣΫτ Λ΍͍ͬͯΔͷ͔Scaling໰୊ʹΑͬͯ๫͔ΕΔ೥ʹ ͳΔɻEthereumͷະདྷ͚ͩͰͳ͘ɺϒϩοΫνΣʔ ϯʹΑΔεϚʔτίϯτϥΫτ։ൃࣗମ͕Solidityͩ ͚Ͱ׬݁͢Δ΋ͷͰ͸ͳ͘ͳ͖͍ͬͯͯΔɻ Marginally, developers would move to various chains. This year everyone would ask myself “Do you really need decentralization for my project?”.