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 入門 / Introduction to Ethereum
Search
Kenji Saito
PRO
April 05, 2023
Technology
0
160
Ethereum 入門 / Introduction to Ethereum
2023年4月5日(水)、ブロックチェーンハブ主催のブロックチェーンアカデミーにて使用したスライドです。
Kenji Saito
PRO
April 05, 2023
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
We Never Took the Kobayashi Maru Test Until Now. What Do You Think of Our Solutions? — Journeys of the Mind Through a No-Win Game
ks91
PRO
0
12
思いつきが武器になる:研究というゲームを始めよう / Ideas Are Your Equipments : Let the Game of Research Begin!
ks91
PRO
0
65
ロボットを雰囲気(ヴァイブ)でプログラミングするこどもたち / Children Vibe-Programming Robots
ks91
PRO
0
21
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 3
ks91
PRO
0
30
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 2
ks91
PRO
0
32
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 1
ks91
PRO
0
160
未来へのフォワードキャスト / Forward Cast to the Future
ks91
PRO
0
86
発表と総括 / Presentations and Summary
ks91
PRO
0
61
サイバーフィジカル社会、金融の未来とアイデアソン / Cyber Physical Society, Future of Finance, and Ideathon
ks91
PRO
0
78
Other Decks in Technology
See All in Technology
Nstockの一人目エンジニアが 3年間かけて向き合ってきた セキュリティのこととこれから〜あれから半年〜
yo41sawada
0
160
Oracle Cloud Infrastructure:2025年8月度サービス・アップデート
oracle4engineer
PRO
0
170
Flutterでキャッチしないエラーはどこに行く
taiju59
0
210
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
240
Jaws-ug名古屋_LT資料_20250829
azoo2024
3
210
サポートエンジニアから見たRancher運用の現場
masap
0
110
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
250
実践アプリケーション設計 ①データモデルとドメインモデル
recruitengineers
PRO
5
1.4k
AIエージェントの活用に重要な「MCP (Model Context Protocol)」とは何か
masayamoriofficial
0
250
AWSで推進するデータマネジメント
kawanago
0
770
JavaScript 研修
recruitengineers
PRO
6
1.4k
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
110
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Making Projects Easy
brettharned
117
6.4k
Speed Design
sergeychernyshev
32
1.1k
How GitHub (no longer) Works
holman
315
140k
Docker and Python
trallard
45
3.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Why Our Code Smells
bkeepers
PRO
339
57k
Transcript
1 Ethereum CSO /
[email protected]
— 1 Ethereum — 2023-04-05
– p.1/33
https://speakerdeck.com/ks91 — 1 Ethereum — 2023-04-05 – p.2/33
( ) SFC ( ) CSO (Chief Science Officer) 1993
( ) 2006 ( ) SFC 22 P2P (Peer-to-Peer) 2011 ( ) 2018 2019 VR 2021.7 VR 2021.8 “ALL THESE WORLDS ARE YOURS” VR 2021.9 & VR 2022.3 2023 AI VR 2023.2-3 “POWER TO THE PEOPLE” → ( ) — 1 Ethereum — 2023-04-05 – p.3/33
1 Ethereum BBc (Beyond Blockchain) — 1 Ethereum — 2023-04-05
– p.4/33
1. Ethereum 2. Ethereum 3. Ethereum 4. — 1 Ethereum
— 2023-04-05 – p.5/33
1. Ethereum — 1 Ethereum — 2023-04-05 – p.6/33
Ethereum Vitalik Buterin, “Ethereum White Paper: A NEXT GENERATION SMART
CONTRACT & DECENTRALIZED APPLICATION PLATFORM” 12 ( 12 ) (= ) = ⇒ → Dapps ( / / ) — 1 Ethereum — 2023-04-05 – p.7/33
2. Ethereum macOS (Big Sur 11.6.4, Monterey 12.6.3) + Homebrew
Linux (Ubuntu 22.04) (x86/AMD64 and ARM) Windows 10 + Windows Subsystem for Linux (Ubuntu ) Ethereum solidity brownie — 1 Ethereum — 2023-04-05 – p.8/33
Solidity Ethereum ( ) http://solidity.readthedocs.io/en/latest/installing-solidity.html Linux (on Windows) “sudo apt”,
macOS “brew” Linux ARM git clone dependencies solc 0.8.19 (4/5 ) $ solc --version brownie py-solc-x solc (dependencies) ( solc py-solc-x ) — 1 Ethereum — 2023-04-05 – p.9/33
Ganache Ethereum RPC npm ( ) macOS https://qiita.com/kyosuke5_20/items/c5f68fc9d89b84c0df09 Linux https://qiita.com/seibe/items/36cef7df85fe2cefa3ea
npm Ganache $ sudo npm install -g ganache — 1 Ethereum — 2023-04-05 – p.10/33
Python3 macOS $ brew install python3 Python 3.8 Homebrew $
brew uninstall --ignore-dependencies
[email protected]
$ brew install
[email protected]
/usr/local/opt/
[email protected]
/bin/python3 Linux $ sudo apt update $ sudo apt install python3.8 python3.8-dev python3.8-venv python3.8-tk 16.10 python3(.8) apt (PPA ) python3 python3-dev python3-venv python3-tk — 1 Ethereum — 2023-04-05 – p.11/33
macOS : . . . macOS wget brew dyld: Library
not loaded: /usr/local/opt/gettext/lib/libintl.8.dylib $ brew uninstall --force gettext $ brew install gettext — 1 Ethereum — 2023-04-05 – p.12/33
Python (venv) macOS (Linux python3 ) ‘python3.8’ ‘python3’ $ python3.8
-m venv bbc1env $ source bbc1env/bin/activate (bbc1env) $ pip install -U pip (bbc1env) $ pip install wheel bbc1env ( BBc-1(?) ) ( ) (bbc1env) $ deactivate — 1 Ethereum — 2023-04-05 – p.13/33
Brownie Python Ethereum https://eth-brownie.readthedocs.io Brownie $ pip install eth-brownie version
1.19.3 (4/5 ) — 1 Ethereum — 2023-04-05 – p.14/33
$ brownie init ( ERC-20 ) $ brownie bake token
$ cd token — 1 Ethereum — 2023-04-05 – p.15/33
contracts (macOS Linux (x86/AMD64) ) $ brownie compile Linux (ARM)
(AMD64 ) $ python # >>> import solcx >>> solcx.compile_solc(’0.6.12’) # >>> quit() /tmp ∼/.solcx/solc-v0.6.12 ( ) $ pytest tests — 1 Ethereum — 2023-04-05 – p.16/33
Brownie $ brownie console Python >>> len(accounts) 10 >>> accounts[0].balance()
100000000000000000000 >>> quit() — 1 Ethereum — 2023-04-05 – p.17/33
3. Ethereum — 1 Ethereum — 2023-04-05 – p.18/33
( ) — 1 Ethereum — 2023-04-05 – p.19/33
. . . — 1 Ethereum — 2023-04-05 – p.20/33
vs. — 1 Ethereum — 2023-04-05 – p.21/33
= ( ) run ( ) — 1 Ethereum —
2023-04-05 – p.22/33
Ether Ethereum EOA : Externally-Owned Account ( ) Ether EVM
EVM — 1 Ethereum — 2023-04-05 – p.23/33
EVM : Ethereum Virtual Machine ঢ়ଶ ֎෦ΞΫλʔ ΞΧϯτ &7. ίʔυ
&UIFSˠ(BT ىಈ ίϯτϥΫτ ϝοηʔδ͔ɺ৽͍ࣗ͠ಈΦϒδΣΫτ ΞΧϯτؒͰΓऔΓ͞ΕΔσʔλ&UIFS ετϨʔδ ঢ়ଶ` τϥϯβΫγϣϯ ηοτ σδλϧॺ໊ &7. ਓؒͱ͔ ࣗಈ ΦϒδΣΫτ Gas Gas ETH (Gas ) (burn ) ETH ( . . .) — 1 Ethereum — 2023-04-05 – p.24/33
EVM : : ← : Solidity — JavaScript LLL —
Lisp Vyper — Python Fe — Vyper Rust ← NEW! Solidity Vyper Python — 1 Ethereum — 2023-04-05 – p.25/33
Solidity ( ) pragma solidityˆ0.7.0; contract IndivisibleAsset { /* */
string public _name; string public _symbol; uint256 public _quantity; address public _owner; constructor(string memory name, string memory symbol, uint256 quantity) public { _name = name; _symbol = symbol; _quantity = quantity; _owner = msg.sender; } function transfer(address to) public returns (bool) { require (_owner == msg.sender); _owner = to; return true; } } — 1 Ethereum — 2023-04-05 – p.26/33
( , ) (constructor) (deploy) = ( ) ( )
ETH Trusted Actor Model — 1 Ethereum — 2023-04-05 – p.27/33
Ethereum — 1 Ethereum — 2023-04-05 – p.28/33
4. Ethereum Görli — 1 Ethereum — 2023-04-05 – p.29/33
infura.io Brownie https://infura.io SIGN UP PROJECT ID infura Ethereum API
infura . . . infura.io PROJECT ID WEB3_INFURA_PROJECT_ID PROJECT ID (∼/.bash_profile ) $ export WEB3_INFURA_PROJECT_ID= PROJECT ID — 1 Ethereum — 2023-04-05 – p.30/33
G¨ orli ETH brownie console Görli >>> network.disconnect() >>> network.connect(’goerli’)
>>> len(accounts) 0 >>> accounts.add() <LocalAccount object ’ 16 ’> >>> accounts[0].private_key 16 >>> quit() Görli Testnet ETH Faucet ETH https://goerlifaucet.com ( ) ( ) https://metamask.io/ — 1 Ethereum — 2023-04-05 – p.31/33
G¨ orli ETH brownie console Görli ETH >>> network.disconnect() >>>
network.connect(’goerli’) >>> len(accounts) 0 >>> accounts.add( 16 ) <LocalAccount object ’ 16 ’> >>> accounts[0].balace() ETH >>> quit() ETH >>> accounts[0].transfer(accounts[1], "0.01 ether") — 1 Ethereum — 2023-04-05 – p.32/33
2 Ethereum I : ERC-20 — 1 Ethereum — 2023-04-05
– p.33/33