Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web3 の実像 / The Real World of Web3

Web3 の実像 / The Real World of Web3

2023年7月26日(水)、ブロックチェーンハブ主催のブロックチェーンアカデミーにて使用したスライドです。

Kenji Saito

July 26, 2023
Tweet

More Decks by Kenji Saito

Other Decks in Technology

Transcript

  1. ( ) SFC ( ) CSO (Chief Science Officer) 1993

    ( ) 2006 ( ) SFC 22 P2P (Peer-to-Peer) 2011 ( ) 2018 2019 VR 2021.9 & VR 2022.3 2023 AI VR 2023.2-3 “POWER TO THE PEOPLE” VR&RPG 2023.5 “Don’t Be So Serious” VOXEL 2023.7 DAZE → ( ) Web3 — — 2023-07-26 – p.3/25
  2. Web3 ( Ethereum Web ) Web 3.0 Web 2.0 Web

    Web 2.0 Web 3.0 Web3 NFT ( ) DAO ( ) Web Web3 — — 2023-07-26 – p.4/25
  3. Web 1-2-3 ͍ΘΏΔ 8FC 8FC ໰୊ͷۚ༥Խ Ϣʔβࣗ਎͕ʮ؆୯ʹʯσʔλͷੜ࢈ऀʹ ΋͏ͻͱͭ ͷࢭ༲ ࢭ༲

    4FNBOUJD8FC  l8FCzॳग़   8FC ˠ8FC           8FC ૊৫ʹ ؅ཧͤͣ͞ɺ σʔλΛϢʔβͷ खʹऔΓ໭ͦ͏ ͢΂ͯͷ໰୊͸ ͢΂ͯΛ ۚ༥τʔΫϯԽͯ͠ ղܾ͠Α͏ #FSOFST-FF ͷ #FSOFST-FF ͷ 0` 3FJMMZ ͷ 8PPE ͷ #JUDPJO ε ϊ ồ σ ϯ ࣄ ݅ Ϧ ồ Ϛ ϯ ɾ γ ἀ ỽ Ϋ Π ϯ λ ồ ω ỽ τ ঎ ༻ Խ &UIFSFVN 4PMJE ϓϩδΣΫτ΁ Ϣʔβࣗ਎ͱ ެӹͷͨΊʹ σʔλ͸ࣗ༝ʹ ׆༻Ͱ͖͍ͯΔ͔ʁ Web3 — — 2023-07-26 – p.6/25
  4. Web 3.0 Web3 Web 1.0 (Berners-Lee) : Read × Write

    → Web 2.0 (O’Reilly) : Read × Write ← (Web 1.0 ) Web 3.0 (Berners-Lee) → Solid (Social linked data) Web 3.0 → Web3 (Wood) Ethereum ← web3.js, web3.py Web3 (Dixon) : Read × Write × Own (Bloomberg) Web3 — — 2023-07-26 – p.7/25
  5. python 3.10.6 solc 0.8.21 ( ) (Solidity ( ) )

    node v18.15.0 ganache v7.7.7 (Ethereum RPC + ) eth-brownie 1.19.3 (Python Ethereum ) web3 5.31.3 (Python Ethereum ) py-solc-x 1.1.1 (Solidity Python + ) Linux (Ubuntu 22.04) Web3 — — 2023-07-26 – p.8/25
  6. Python3 eth-brownie . . . $ python3 -m venv demoenv

    $ source demoenv/bin/activate $ pip install -U pip $ pip install eth-brownie web3.py Web3 — — 2023-07-26 – p.9/25
  7. : Bitcoin . . . : ( : ) (

    ) : : : ⇒ Web3 — — 2023-07-26 – p.11/25
  8. Ethereum        ߹ҙ͞Εͨཤྺ ϩʔΧϧʹෳ੡Λҡ࣋

    ϒϩοΫ εϩοτ  ඵִؒ  εϩοτͰ  ΤϙοΫ ҉߸ֶతμΠδΣετ ϒϩοΫνΣʔϯͷҡ࣋ࢀՃऀ͕ϩʔΧϧʹ؅ཧ͢Δσʔλۭؒ ࣌ؒ ΑΓ৽͍͠ه࿥ ΦϒδΣΫτ τʔΫϯγεςϜ౳ͷεϚʔτίϯτϥΫτ ֤Ϣʔβͷ ࢒ߴ౳ͷঢ়ଶ ঢ়ଶ` ঢ়ଶ`` τϥϯβΫγϣϯ ΦϒδΣΫτͷੜ੒ ·ͨ͸ঢ়ଶભҠͷࢦࣔ ແޮͳཤྺ ω ỽ τ ϫ ồ Ϋ Λ ௨ ͠ ͯ ૹ ड ৴ ͞ Ε Δ ϩ ồ Χ ϧ ʹ ࣋ ͭ ܨ͙ͨΊʹ͸&5) Ͱͷσϙδοτͱ σϙδοτ૯ֹͷ ♤ ૬౰ͷϢʔβʹΑΔ ΤϙοΫ΁ͷূݴ͕ඞཁ શΦϒδΣΫτͷભҠޙͷঢ়ଶ ͕ϋογϡ໦˞ʹू໿͞Ε ͦͷ ϧʔτ஋͕ϒϩοΫʹॻ͔ΕΔ ঢ়ଶભҠ ˞ϋογϡ໦σʔλ܈ͷ҉߸ֶతμΠδΣετ ϋογϡ ɹΛ໦ߏ଄ʹදݱͨ͠΋ͷͰ ෆ੔߹ͷݕग़ʹ༻͍ΒΕΔ . . . ETH ETH Web3 — — 2023-07-26 – p.12/25
  9. Ethereum Ethereum $ brownie console # eth-brownie (Python ) #

    ↓ Python >>> network.disconnect() # ( ) >>> network.connect(’mainnet’) # Ethereum >>> web3.eth.block_number # >>> web3.eth.get_block( ) # >>> web3.eth.get_block( ).get(’timestamp’) # >>> import datetime >>> dt = datetime.datetime.fromtimestamp( ) >>> print(dt) # Web3 — — 2023-07-26 – p.13/25
  10. &UIFSFVNωοτϫʔΫ  &7. &0" &5) ࢒ߴ &5) (BT εϚʔτ ίϯτϥΫτ

    ϝοηʔδʹΑΔ ݺͼग़͠ τϥϯβ Ϋγϣϯ ॺ໊ͯ͠ ౤ೖ ϒϩοΫʹ ૊ΈࠐΈˠ όϦσʔλ Ϣʔβ ॲ ཧ ˞(BT ͸ܭࢉࢿݯͷྔΛද͢ ˞(BT ࢖༻ྉΛ &5) Ͱࢧ෷͏Ϣʔβ͕τϥϯβΫγϣϯΛ౤ೖ͠ͳ͍ݶΓ ɹεϚʔτίϯτϥΫτ͸ಈ࡞͠ͳ͍ . . . Ethereum (EVM) ETH ↑ DAO Web3 — — 2023-07-26 – p.14/25
  11. $ brownie bake nft nft ( ) contracts SimpleCollectible.sol ERC-721

    NFT $ cd nft # nft $ brownie console # eth-brownie (Python ) >>> network.disconnect() # >>> network.connect(’goerli’) # Ethereum >>> accounts.add( ) # >>> collectible = SimpleCollectible.deploy({’from’: accounts[0]}) # NFT 1,834,415 Gas Web3 — — 2023-07-26 – p.15/25
  12. NFT (Non-Fungible Token) 1 → ( ) → ( )

    ( ) ( ) NFT NFT Web3 — — 2023-07-26 – p.16/25
  13. ERC-721 NFT τʔΫϯ *% ൪߸ 63- ΞυϨε 63- /'5 Ұҙ

    Ұҙʁ Ұҙʁ Ұҙ ࣄ্࣮ Ұҙ ެ։伴ͷ μΠδΣετ ϝλσʔλ ίϯτϥΫτͱ͍͏ఆٛҬ ˞ͦͷίϯτϥΫτͱ͍͏ఆٛҬͷதͰ ࣮ઢ໼ҹͰࣔͨ͠ҰҙੑΛอূ͢Δʹա͗ͳ͍ ˞ഁઢ໼ҹͰࣔͨ͠Ұҙੑ͸ ࣮૷ɾӡ༻ͷ޻෉࣍ୈͰอূͰ͖Δ ɹྫ͑͹ 63- ʹͦΕ͕ࢦ͢Ϧιʔεͷ҉߸ֶతμΠδΣετΛؚΊΔ͜ͱ ྫ *1'4 ͷར༻ ʹΑΓ ɹ ʮ63-ˠσʔλʯͷҰҙੑΛอͯΔ ͦͷ৔߹Ͱ΋ʮσʔλˠ63-ʯͷҰҙੑ͸ແ͍ ର৅σʔλ ը૾౳ ॴ༗ऀ ϝλσʔλ 63- ର৅σʔλ 63- ൿີ伴 Ұҙ Ұҙʁ Ϣʔβ Ұҙʁ Web3 — — 2023-07-26 – p.17/25
  14. NFT URL NFT >>> collectible.createCollectible( URL) # NFT URL NFT

    NFT >>> network.disconnect() # >>> network.connect(’mainnet’) # Ethereum >>> collectible = SimpleCollectible.at(’ ’) # >>> collectible.ownerOf(OpenSea NFT ID) # >>> collectible.tokenURI(OpenSea NFT ID) # Web3 — — 2023-07-26 – p.18/25
  15. NFT σʔλ " ϒϩοΫνΣʔϯ #⒩ ʜ ʜ ϒϩοΫνΣʔϯ #⒪ ʜ

    ʜ εϚʔτίϯτϥΫτ $⒩ εϚʔτίϯτϥΫτ $⒪ ಛఆͷετϨʔδ ˞Ͳ͜ʹஔ͔ΕΑ͏ͱ΋ ɹ౳͍͠σʔλ͸ಉ͡΋ͷ ϒϩοΫνΣʔϯ͕ಉ͡Ͱ΋ҟͳͬͯ ͍ͯ΋ εϚʔτίϯτϥΫτ͕ҟͳ ΔΠϯελϯεͳΒఆٛҬ͸ผͱͳΔ ଟ͘ͷ৔߹ ې͡ΒΕͳ͍ ېࢭͰ͖ͳ͍ ˞/'5 ͕σʔλΛࢦ͢ํࣜͱσʔλΛ֨ೲ͢Δํࣜ͸ σʔλͷՄ༻ੑ͸ҟͳΔͱͯ͠΋ҰҙੑʹؔΘΔੑ࣭͸มΘΒͳ͍ ಉҰ εϚʔτίϯτϥΫτ $⒫ εϚʔτίϯτϥΫτ $⒬ /'5⒩ /'5⒪ /'5⒫ /'5⒬ /'5⒮ /'5⒭ σʔλ "  ېͣΔΑ͏ͳ ઃܭ͸ίετߴ ېࢭͰ͖ͳ͍ Web3 — — 2023-07-26 – p.19/25
  16. NFT NFT NFT >>> collectible.ownerOf( NFT ID) # >>> collectible.ownerOf(

    NFT ID) # NFT Ethereum Ethereum NFT NFT Ethereum Lazy Minting (?) ( ) (Gas ) Web3 — — 2023-07-26 – p.20/25
  17. DAO ಺෦ࢿຊˢ͋Δ ɹɹɹɹˣͳ͍ தԝʹࣗಈ ɹɹɹɹɹWT ɹɹɹɹɹɹதԝʹਓؒ ׬શͳ "* σʔϞϯ˞ ϑΥʔϥϜ˞

    XFC αʔϏε ϩϘοτΛ࢖໾ %"0 %"QQ˞ ݹయత૊৫ ɹɹɹɹɹपลʹਓؒ ɹɹɹɹWT पลʹࣗಈ ˞%"QQεϚʔτίϯτϥΫτʹΑΔΞϓϦέʔγϣϯ %FDFOUSBMJ[FE"QQ ˞ϑΥʔϥϜਓʑ͕ಛఆͷ࿩୊ʹ͍ͭͯٞ࿦ͨ͠Γ৘ใΛަ׵ͨ͠Γ͢Δ৔ ˞σʔϞϯόοΫάϥ΢ϯυͰՔಇ͠ ΠϕϯτʹࣗಈతʹରԠ͢ΔϓϩάϥϜ . . . Buterin DAO (2014) Web3 — — 2023-07-26 – p.22/25
  18. DAO Bitcoin DAO → DAO Ethereum DAO → . .

    . DAO ( ) ( ) DAO → . . . ( ) ↑ ( ) ← Web3 — — 2023-07-26 – p.23/25
  19. ( . . . ) · DAO Web 2.0 .

    . . Web3 — — 2023-07-26 – p.24/25