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
76
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
シリアスゲームとしての RPG / RPG as a Serious Game
ks91
PRO
0
11
"September 12th" ゲームのプロンプトの構造 / Prompt Structure of "September 12th" Game
ks91
PRO
0
8
コードや知識を組み込む / Incorporate Code and knowledge
ks91
PRO
0
110
大規模言語モデルの原理と使いこなしの原則 / Principles of Large Language Models and Their Use
ks91
PRO
0
25
自然言語の扱いと翻訳のためのプロンプト / Natural Language Handling and Prompts for Translation
ks91
PRO
0
22
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
140
LLM とプロンプトエンジニアリング/チューターをビルドする / LLM and Prompt Engineering and Building Tutors
ks91
PRO
0
260
講師自己紹介 / Lecturer's Self-Introduction
ks91
PRO
0
84
講師研究紹介 / Lecturer's Research Introduction
ks91
PRO
0
71
Other Decks in Technology
See All in Technology
Google Cloud Next '24 Recap(Cloud Run/k8s)
mokocm
0
280
TechFeed Experts Night#27 〜 フロントエンドフレームワーク最前線 (Svelte)
baseballyama
1
570
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
140
20分で完全に理解するGrafanaダッシュボード
hamadakoji
4
820
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1.1k
MixIT 2024 - Pulumi : Gérer son infra avec son langage de programmation préféré
ju_hnny5
1
110
いいたいことちゃんという
tkengo
0
130
開発パフォーマンスを最大化するための開発体制
ham0215
2
490
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
4
600
Building Dashboards as a Hobby
egmc
0
330
2024春 注目のWeb系 OSS & SaaS 3選
makies
0
160
地理空間データ可視化・解析・活用ソリューション Pacific Spatial Solutions (PSS)
pacificspatialsolutions
0
320
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
290
19k
Product Roadmaps are Hard
iamctodd
45
9.7k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
4
3.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Testing 201, or: Great Expectations
jmmastey
29
6.4k
Become a Pro
speakerdeck
PRO
12
4.6k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.2k
In The Pink: A Labor of Love
frogandcode
138
21k
Gamification - CAS2011
davidbonilla
76
4.6k
Writing Fast Ruby
sferik
622
60k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
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