Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Web3 技術のリアリティ(デモンストレーション) / The Reality of Web3...
Search
Kenji Saito
PRO
June 16, 2023
Technology
0
76
Web3 技術のリアリティ(デモンストレーション) / The Reality of Web3 Technology (Demonstration)
2023年6月16日(金)、幕張メッセで開催された Interop Tokyo 2023 カンファレンスでの講演に使用したスライドです。
Kenji Saito
PRO
June 16, 2023
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
スマートコントラクトプログラミング / Smart Contract Programming
ks91
PRO
0
13
パット(PAT) : 論文アシスタント(Paper Authoring Tutor) 研究者’s マニュアル / PAT : Paper Authoring Tutor - Researcher's Manual
ks91
PRO
0
6
FinTech 5-6 : The World of Apps
ks91
PRO
0
38
ブロックチェーン概論とインストール大会 / Blockchain Overview and Installation
ks91
PRO
0
13
FinTech 3-4 : Internet Technology and Governance
ks91
PRO
0
72
身体を持つ生成AI と製品トレーサビリティー / Bodily Generative AI and Product Traceability
ks91
PRO
0
15
ブロックチェーン概論 / Introduction to Blockchain
ks91
PRO
0
19
FinTech Lecture 1-2 : Overview of FinTech
ks91
PRO
0
99
ブロックチェーンと分散ファイナンス概論 / Introduction to Blockchain and Decentralized Finance
ks91
PRO
0
32
Other Decks in Technology
See All in Technology
マルチテナントのサービスインフラに大きなテナントを受け入れるまで
7474
0
720
まだ間に合う! 生成AIトレンド一挙おさらい & AWSのBedrockに入門しよう
minorun365
PRO
4
220
AWS DDKを利用したDataOps事始め
beex
1
170
多数のWebサービスをECS/Fargate構成で効率よく構築・運用するなら copilot-cli
interu
2
170
生成AI入門
shukob
0
150
エンジニア向け会社紹介資料
caddi_eng
14
270k
XSS攻撃から考察するAWS設定不備の恐怖/20241012 Hironobu Otaki
shift_evolve
0
130
外部カンファレンスで登壇しよう! 〜「強い」エンジニアへの一歩を踏み出す〜
logica0419
4
130
40代後半で開発エンジニアからクラウドインフラエンジニアにキャリアチェンジし、生き残れる自信がようやく持てた話
iwamot
9
8.1k
組織デバイスのための効率的なアプリケーション更新戦略
kenchan0130
0
460
暴カワでビデオシンセサイザーを導入する技術
yuchi
2
120
運営11年目タイトルを守る最強の盾の有効性と活用法
mixi_engineers
PRO
2
120
Featured
See All Featured
Teambox: Starting and Learning
jrom
132
8.7k
The Cost Of JavaScript in 2023
addyosmani
43
5.9k
Designing for Performance
lara
604
68k
GraphQLの誤解/rethinking-graphql
sonatard
66
9.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
Scaling GitHub
holman
458
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.5k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Why You Should Never Use an ORM
jnunemaker
PRO
53
9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
Transcript
Web3 ( ) Web3 — 2023-06-16 – p.1/22
Web3 Web 3.0 World Wide Web Web 2.0 “web3.py” Python
Ethereum NFT( ) Web3 Web3 — 2023-06-16 – p.2/22
Web3 Web3 Web3 — 2023-06-16 – p.3/22
Web 1-2-3 ͍ΘΏΔ 8FC 8FC ͷۚ༥Խ Ϣʔβ͕ࣗʮ؆୯ʹʯσʔλͷੜ࢈ऀʹ ͏ͻͱͭ ͷࢭ༲ ࢭ༲
4FNBOUJD8FC l8FCzॳग़ 8FC ˠ8FC 8FC ৫ʹ ཧͤͣ͞ɺ σʔλΛϢʔβͷ खʹऔΓͦ͏ ͯ͢ͷ ͯ͢Λ ۚ༥τʔΫϯԽͯ͠ ղܾ͠Α͏ #FSOFST-FF ͷ #FSOFST-FF ͷ 0` 3FJMMZ ͷ 8PPE ͷ #JUDPJO ε ϊ ồ σ ϯ ࣄ ݅ Ϧ ồ Ϛ ϯ ɾ γ ἀ ỽ Ϋ Π ϯ λ ồ ω ỽ τ ༻ Խ &UIFSFVN 4PMJE ϓϩδΣΫτ Ϣʔβࣗͱ ެӹͷͨΊʹ σʔλࣗ༝ʹ ׆༻Ͱ͖͍ͯΔ͔ʁ Web3 — 2023-06-16 – p.4/22
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-06-16 – p.5/22
python 3.10.7 solc 0.8.19 ( ) (Solidity ( ) )
node v20.2.0 ganache v7.8.0 (Ethereum RPC + ) eth-brownie 1.19.3 (Python Ethereum ) web3 5.31.3 (Python Ethereum ) py-solc-x 1.1.1 (Solidity Python + ) macOS Monterey 12.6.6 Web3 — 2023-06-16 – p.6/22
Python3 eth-brownie . . . $ python3 -m venv demoenv
$ source demoenv/bin/activate $ pip install -U pip $ pip install wheel $ pip install eth-brownie web3.py Web3 — 2023-06-16 – p.7/22
Ethereum Python NFT Web3 — 2023-06-16 – p.8/22
: Bitcoin . . . : ( : ) (
) : : : ⇒ Web3 — 2023-06-16 – p.9/22
Ethereum ߹ҙ͞Εͨཤྺ ϩʔΧϧʹෳΛҡ࣋
ϒϩοΫ εϩοτ ඵִؒ εϩοτͰ ΤϙοΫ ҉߸ֶతμΠδΣετ ϒϩοΫνΣʔϯͷҡ࣋ࢀՃऀ͕ϩʔΧϧʹཧ͢Δσʔλۭؒ ࣌ؒ ΑΓ৽͍͠ه ΦϒδΣΫτ τʔΫϯγεςϜͷεϚʔτίϯτϥΫτ ֤Ϣʔβͷ ߴͷঢ়ଶ ঢ়ଶ` ঢ়ଶ`` τϥϯβΫγϣϯ ΦϒδΣΫτͷੜ ·ͨঢ়ଶભҠͷࢦࣔ ແޮͳཤྺ ω ỽ τ ϫ ồ Ϋ Λ ௨ ͠ ͯ ૹ ड ৴ ͞ Ε Δ ϩ ồ Χ ϧ ʹ ࣋ ͭ ܨ͙ͨΊʹ&5) Ͱͷσϙδοτͱ σϙδοτ૯ֹͷ ♤ ૬ͷϢʔβʹΑΔ ΤϙοΫͷূݴ͕ඞཁ શΦϒδΣΫτͷભҠޙͷঢ়ଶ ͕ϋογϡ˞ʹू͞Ε ͦͷ ϧʔτ͕ϒϩοΫʹॻ͔ΕΔ ঢ়ଶભҠ ˞ϋογϡσʔλ܈ͷ҉߸ֶతμΠδΣετ ϋογϡ ɹΛߏʹදݱͨ͠ͷͰ ෆ߹ͷݕग़ʹ༻͍ΒΕΔ . . . ETH ETH Web3 — 2023-06-16 – p.10/22
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-06-16 – p.11/22
&UIFSFVNωοτϫʔΫ &7. &0" &5) ߴ &5) (BT εϚʔτ ίϯτϥΫτ
ϝοηʔδʹΑΔ ݺͼग़͠ τϥϯβ Ϋγϣϯ ॺ໊ͯ͠ ೖ ϒϩοΫʹ ΈࠐΈˠ όϦσʔλ Ϣʔβ ॲ ཧ ˞(BT ܭࢉࢿݯͷྔΛද͢ ˞(BT ༻ྉΛ &5) Ͱࢧ͏Ϣʔβ͕τϥϯβΫγϣϯΛೖ͠ͳ͍ݶΓ ɹεϚʔτίϯτϥΫτಈ࡞͠ͳ͍ . . . Ethereum (EVM) ETH ↑ DAO Web3 — 2023-06-16 – p.12/22
$ 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-06-16 – p.13/22
NFT (Non-Fungible Token) 1 → ( ) → ( )
( ) ( ) NFT NFT Web3 — 2023-06-16 – p.14/22
ERC-721 NFT τʔΫϯ *% ൪߸ 63- ΞυϨε 63- /'5 Ұҙ
Ұҙʁ Ұҙʁ Ұҙ ࣄ্࣮ Ұҙ ެ։伴ͷ μΠδΣετ ϝλσʔλ ίϯτϥΫτͱ͍͏ఆٛҬ ˞ͦͷίϯτϥΫτͱ͍͏ఆٛҬͷதͰ ࣮ઢҹͰࣔͨ͠ҰҙੑΛอূ͢Δʹա͗ͳ͍ ˞ഁઢҹͰࣔͨ͠Ұҙੑ ࣮ɾӡ༻ͷ࣍ୈͰอূͰ͖Δ ɹྫ͑ 63- ʹͦΕ͕ࢦ͢Ϧιʔεͷ҉߸ֶతμΠδΣετΛؚΊΔ͜ͱ ྫ *1'4 ͷར༻ ʹΑΓ ɹ ʮ63-ˠσʔλʯͷҰҙੑΛอͯΔ ͦͷ߹Ͱʮσʔλˠ63-ʯͷҰҙੑແ͍ ରσʔλ ը૾ ॴ༗ऀ ϝλσʔλ 63- ରσʔλ 63- ൿີ伴 Ұҙ Ұҙʁ Ϣʔβ Ұҙʁ Web3 — 2023-06-16 – p.15/22
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-06-16 – p.16/22
NFT σʔλ " ϒϩοΫνΣʔϯ #⒩ ʜ ʜ ϒϩοΫνΣʔϯ #⒪ ʜ
ʜ εϚʔτίϯτϥΫτ $⒩ εϚʔτίϯτϥΫτ $⒪ ಛఆͷετϨʔδ ˞Ͳ͜ʹஔ͔ΕΑ͏ͱ ɹ͍͠σʔλಉ͡ͷ ϒϩοΫνΣʔϯ͕ಉ͡Ͱҟͳͬͯ ͍ͯ εϚʔτίϯτϥΫτ͕ҟͳ ΔΠϯελϯεͳΒఆٛҬผͱͳΔ ଟ͘ͷ߹ ې͡ΒΕͳ͍ ېࢭͰ͖ͳ͍ ˞/'5 ͕σʔλΛࢦ͢ํࣜͱσʔλΛ֨ೲ͢Δํࣜ σʔλͷՄ༻ੑҟͳΔͱͯ͠ҰҙੑʹؔΘΔੑ࣭มΘΒͳ͍ ಉҰ εϚʔτίϯτϥΫτ $⒫ εϚʔτίϯτϥΫτ $⒬ /'5⒩ /'5⒪ /'5⒫ /'5⒬ /'5⒮ /'5⒭ σʔλ " ېͣΔΑ͏ͳ ઃܭίετߴ ېࢭͰ͖ͳ͍ Web3 — 2023-06-16 – p.17/22
NFT NFT NFT >>> collectible.ownerOf( NFT ID) # >>> collectible.ownerOf(
NFT ID) # NFT Ethereum Ethereum NFT NFT Ethereum Lazy Minting (?) ( ) (Gas ) Web3 — 2023-06-16 – p.18/22
DAO (Decentralized Autonomous Organization) Web3 — 2023-06-16 – p.19/22
DAO ෦ࢿຊˢ͋Δ ɹɹɹɹˣͳ͍ தԝʹࣗಈ ɹɹɹɹɹWT ɹɹɹɹɹɹதԝʹਓؒ શͳ "* σʔϞϯ˞ ϑΥʔϥϜ˞
XFC αʔϏε ϩϘοτΛ %"0 %"QQ˞ ݹయత৫ ɹɹɹɹɹपลʹਓؒ ɹɹɹɹWT पลʹࣗಈ ˞%"QQεϚʔτίϯτϥΫτʹΑΔΞϓϦέʔγϣϯ %FDFOUSBMJ[FE"QQ ˞ϑΥʔϥϜਓʑ͕ಛఆͷʹ͍ͭͯٞͨ͠ΓใΛަͨ͠Γ͢Δ ˞σʔϞϯόοΫάϥϯυͰՔಇ͠ ΠϕϯτʹࣗಈతʹରԠ͢ΔϓϩάϥϜ . . . Buterin DAO (2014) Web3 — 2023-06-16 – p.20/22
DAO Bitcoin DAO → DAO Ethereum DAO → . .
. DAO ( ) ( ) DAO → . . . ( ) ↑ ( ) ← Web3 — 2023-06-16 – p.21/22
( . . . ) · DAO Web 2.0 .
. . Web3 — 2023-06-16 – p.22/22