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
Ethereum 演習 III / Ethereum Exercise III
Search
Kenji Saito
PRO
September 13, 2023
Technology
0
110
Ethereum 演習 III / Ethereum Exercise III
2023年9月13日(水)、ブロックチェーンハブ主催のブロックチェーンアカデミーにて使用したスライドです。
Kenji Saito
PRO
September 13, 2023
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
FinTech 5-6 : The World of Apps
ks91
PRO
0
21
生成AI による論文執筆サポート・ワークショップ ─ サーベイ/リサーチクエスチョン編 / Workshop on AI-Assisted Paper Writing Support: Survey/Research Question Edition
ks91
PRO
0
57
ブロックチェーン概論とインストール大会 / Introduction to Blockchain and Installation Workshop
ks91
PRO
0
2
FinTech 3-4 : Internet Technology and Governance
ks91
PRO
0
69
民主主義と博愛(Humanitarianism) / Democracy and Humanitarianism
ks91
PRO
0
4
ブロックチェーン概論 / Introduction to Blockchain
ks91
PRO
0
10
ブロックチェーンと分散ファイナンス概論 / Introduction to Blockchain and Decentralized Finance
ks91
PRO
0
61
Proof of Authenticity of General IoT Information with Tamper-Evident Sensors and Blockchain
ks91
PRO
0
7
FinTech 1-2 : Overview of FinTech
ks91
PRO
0
21
Other Decks in Technology
See All in Technology
自動テストのコストと向き合ってみた
qa
1
220
GoでもGUIアプリを作りたい!
kworkdev
PRO
0
130
AIAgentの限界を超え、 現場を動かすWorkflowAgentの設計と実践
miyatakoji
1
170
AWS Control Tower に学ぶ! IAM Identity Center 権限設計の第一歩 / IAM Identity Center with Control Tower
y___u
0
140
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
11
80k
プロポーザルのコツ ~ Kaigi on Rails 2025 初参加で3名の登壇を実現 ~
naro143
1
210
社内お問い合わせBotの仕組みと学び
nish01
1
570
Developer Advocate / Community Managerなるには?
tsho
0
130
【Kaigi on Rails 事後勉強会LT】MeはどうしてGirlsに? 私とRubyを繋いだRail(s)
joyfrommasara
0
230
後進育成のしくじり〜任せるスキルとリーダーシップの両立〜
matsu0228
7
3.3k
『バイトル』CTOが語る! AIネイティブ世代と切り拓くモノづくり組織
dip_tech
PRO
1
120
CoRL 2025 Survey
harukiabe
0
150
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.8k
A designer walks into a library…
pauljervisheath
209
24k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Writing Fast Ruby
sferik
629
62k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
970
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
The Cost Of JavaScript in 2023
addyosmani
54
9k
A Tale of Four Properties
chriscoyier
161
23k
For a Future-Friendly Web
brad_frost
180
9.9k
GraphQLとの向き合い方2022年版
quramy
49
14k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Transcript
4 Ethereum III CSO /
[email protected]
— 4 Ethereum III
— 2023-09-13 – p.1/28
https://speakerdeck.com/ks91 — 4 Ethereum III — 2023-09-13 – p.2/28
( ) 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&RPG 2023.5 “Don’t Be So Serious” VOXEL 2023.7 DAZE 2023 → ( ) — 4 Ethereum III — 2023-09-13 – p.3/28
web3 4 web3 NFT (Non-Fungible Token) DAO (Decentralized Autonomous Organization)
— 4 Ethereum III — 2023-09-13 – p.4/28
1. NFT DAO 2. : NFT 3. : DAO 4.
— 4 Ethereum III — 2023-09-13 – p.5/28
NFT DAO DeFi ( ) — 4 Ethereum III —
2023-09-13 – p.6/28
( ) = = : . . . ( :
) ( ) . . . . . . . . . . . . — 4 Ethereum III — 2023-09-13 – p.7/28
⇒ ( ) . . . . . . —
4 Ethereum III — 2023-09-13 – p.8/28
DeFi ( ) DeFi : Decentralized Finace . . .
( ) DeFi DAO — 4 Ethereum III — 2023-09-13 – p.9/28
NFT ( ) NFT : Non-Fungible Token ( ) (1
) → fungible token ( ) → NFT — 4 Ethereum III — 2023-09-13 – p.10/28
ERC-721 ERC (Ethereum Request for Comments) 721 EIP (Ethereum Improvement
Proposal) https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md interface ERC721 { function balanceOf(address _owner) external view returns (uint256); function ownerOf(uint256 _tokenId) external view returns (address); function safeTransferFrom(address _from, address _to, uint256 _tokenId, . . .) external payable; : } interface ERC721TokenReceiver { function onERC721Received(.. ., uint256 _tokenId, . . .) external returns(bytes4); } interface ERC721Metadata { function name() external view returns (string _name); function symbol() external view returns (string _symbol); function tokenURI(uint256 _tokenId) external view returns (string); } tokenURI URL ( ) ( ) — 4 Ethereum III — 2023-09-13 – p.11/28
ERC-721 NFT τʔΫϯ *% ൪߸ 63- ΞυϨε 63- /'5 Ұҙ
Ұҙʁ Ұҙʁ Ұҙ ࣄ্࣮ Ұҙ ެ։伴ͷ μΠδΣετ ϝλσʔλ ίϯτϥΫτͱ͍͏ఆٛҬ ˞ͦͷίϯτϥΫτͱ͍͏ఆٛҬͷதͰ ࣮ઢҹͰࣔͨ͠ҰҙੑΛอূ͢Δʹա͗ͳ͍ ˞ഁઢҹͰࣔͨ͠Ұҙੑ ࣮ɾӡ༻ͷ࣍ୈͰอূͰ͖Δ ɹྫ͑ 63- ʹͦΕ͕ࢦ͢Ϧιʔεͷ҉߸ֶతμΠδΣετΛؚΊΔ͜ͱ ྫ *1'4 ͷར༻ ʹΑΓ ɹ ʮ63-ˠσʔλʯͷҰҙੑΛอͯΔ ͦͷ߹Ͱʮσʔλˠ63-ʯͷҰҙੑແ͍ ରσʔλ ը૾ ॴ༗ऀ ϝλσʔλ 63- ରσʔλ 63- ൿີ伴 Ұҙ Ұҙʁ Ϣʔβ Ұҙʁ — 4 Ethereum III — 2023-09-13 – p.12/28
NFT NFT URL Marlinspike, M.: My first impressions of web3
(2022) Web3 . . . URL ↑ NFT → → NFT NFT ↔ NFT — 4 Ethereum III — 2023-09-13 – p.13/28
DAO ( ) DAO : Decentralized Autonomous Organization Vitalik Buterin
(Ethereum ) https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide/ (1) (2) ( ) (3) DAO . . . / — 4 Ethereum III — 2023-09-13 – p.14/28
: NFT — 4 Ethereum III — 2023-09-13 – p.15/28
NFT Linux (Ubuntu 22.04) Python3 + eth-brownie 1.19.3 (Python Ethereum
) $ brownie bake nft nft ( ) contracts SimpleCollectible.sol ERC-721 — 4 Ethereum III — 2023-09-13 – p.16/28
NFT (1) NFT NFT $ cd nft # nft $
brownie console # eth-brownie (Python ) # ↓ Python >>> network.disconnect() # ( ) >>> network.connect(’mainnet’) # Ethereum >>> collectible = SimpleCollectible.at(’ ’) # >>> collectible.ownerOf(OpenSea NFT ID) # >>> collectible.tokenURI(OpenSea NFT ID) # URL URL URL ( ) — 4 Ethereum III — 2023-09-13 – p.17/28
NFT (2) NFT(?) NFT >>> collectible.ownerOf( NFT ID) # >>>
collectible.ownerOf( NFT ID) # NFT Ethereum Ethereum NFT NFT Ethereum Lazy Minting (?) ( ) ( ) NFT — 4 Ethereum III — 2023-09-13 – p.18/28
NFT < , ID> ERC-721 OK NFT . . .
ID → NFT ID NFT NFT URL . . . URL . . . →NFT — 4 Ethereum III — 2023-09-13 – p.19/28
NFT σʔλ " ϒϩοΫνΣʔϯ #⒩ ʜ ʜ ϒϩοΫνΣʔϯ #⒪ ʜ
ʜ εϚʔτίϯτϥΫτ $⒩ εϚʔτίϯτϥΫτ $⒪ ಛఆͷετϨʔδ ˞Ͳ͜ʹஔ͔ΕΑ͏ͱ ɹ͍͠σʔλಉ͡ͷ ϒϩοΫνΣʔϯ͕ಉ͡Ͱҟͳͬͯ ͍ͯ εϚʔτίϯτϥΫτ͕ҟͳ ΔΠϯελϯεͳΒఆٛҬผͱͳΔ ଟ͘ͷ߹ ې͡ΒΕͳ͍ ېࢭͰ͖ͳ͍ ˞/'5 ͕σʔλΛࢦ͢ํࣜͱσʔλΛ֨ೲ͢Δํࣜ σʔλͷՄ༻ੑҟͳΔͱͯ͠ҰҙੑʹؔΘΔੑ࣭มΘΒͳ͍ ಉҰ εϚʔτίϯτϥΫτ $⒫ εϚʔτίϯτϥΫτ $⒬ /'5⒩ /'5⒪ /'5⒫ /'5⒬ /'5⒮ /'5⒭ σʔλ " ېͣΔΑ͏ͳ ઃܭίετߴ ېࢭͰ͖ͳ͍ — 4 Ethereum III — 2023-09-13 – p.20/28
NFT NFT . . . NFT ( ) ↑ ID
. . . — 4 Ethereum III — 2023-09-13 – p.21/28
NFT NFT >>> network.disconnect() # >>> network.connect(’goerli’) # Ethereum >>>
accounts.add( ) # >>> collectible = SimpleCollectible.deploy({’from’: accounts[0]}) # NFT >>> collectible.createCollectible( ) # NFT goerli / ( ) “Gas used” Gas Gwei ERC-721a ID 1 — 4 Ethereum III — 2023-09-13 – p.22/28
NFT : ERC-721 NFT NFT (ID) NFT → URI NFT
( NFT ) (ID) (URI) → NFT ( ) URI → ( ) → ( ) NFT NFT NFT — 4 Ethereum III — 2023-09-13 – p.23/28
: DAO — 4 Ethereum III — 2023-09-13 – p.24/28
DAO (1) ( ) (2) (3) . . . (a)
( ) (b) ( ) https://medium.com/coinmonks/beanstalk-exploit-a-simplified-post-mortem-analysis-92e6cdb17ace — 4 Ethereum III — 2023-09-13 – p.25/28
MakerDAO https://docs.makerdao.com/smart-contract-modules/governance-module plot ( ) drop ( ) plot eta
( ) exec ( ) https://github.com/dapphub/ds-chief/blob/master/src/chief.sol https://github.com/dapphub/ds-auth/blob/master/src/auth.sol https://github.com/dapphub/ds-pause/blob/master/src/pause.sol — 4 Ethereum III — 2023-09-13 – p.26/28
— 4 Ethereum III — 2023-09-13 – p.27/28
— 4 Ethereum III — 2023-09-13 – p.28/28