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
ブロックチェーン概論 / Introduction to Blockchain
Search
Kenji Saito
PRO
October 17, 2022
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ブロックチェーン概論 / Introduction to Blockchain
2022年10月17日(月)、慶應義塾大学大学院メディアデザイン研究科「サービスデザインプロジェクト B」2022秋で使用したスライドです。
Kenji Saito
PRO
October 17, 2022
More Decks by Kenji Saito
See All by Kenji Saito
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
65
インシデントレスポンス演習 I / Incident Response Exercise I
ks91
PRO
0
91
責任 2.0/3.0 ∼ 知的創造過程の脱領土化 / Responsibility 2.0/3.0 - The Deterritorialization of the Intellectual Creative Process
ks91
PRO
0
17
エージェント化するAI:現在地とその先に起きる変化 〜 おかわり / AI as Agents: The Current State and the Changes Ahead - a second helping
ks91
PRO
0
32
金融テクノロジーのガバナンス / Governance of Financial Technology
ks91
PRO
0
70
セキュリティの基礎とインシデントレスポンス / Security Fundamentals and Incident Response
ks91
PRO
0
95
やり抜く力を見せるエージェントたち / Agents Who Demonstrate Perseverance
ks91
PRO
0
38
ブロックチェーン / Blockchain
ks91
PRO
0
130
デジタルとコミュニケーション / Digital and Communication
ks91
PRO
0
54
Other Decks in Technology
See All in Technology
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
370
How Timee Delivers Day 1 Production Ready LLM Features
tomoyks
0
230
攻撃者視点で考えるDetection Engineering
cryptopeg
3
1.8k
FDE という解 ― 暗黙知と明示知をつなぐ、伴走型エンジニアリング ―
otanet
0
160
フロンティアAIのゲート化と地政学リスク
nagatsu
0
140
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
140
MCP Appsを作ってみよう
iwamot
PRO
4
640
新しいVibe Codingと”自走”について
watany
6
320
MUSUBI 田中裕一『AIと共に行う「しごとのリデザイン」- スモールバックオフィス編』AI Ops Lab #4
musubi
0
180
RSA暗号を手計算したくなること、ありますよね?? (20260615_orestudy6_rsa)
thousanda
0
410
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
3
210
Disciplined Vibes: Scaling AI-Assisted Engineering
sheharyar
0
140
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
250
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Amusing Abliteration
ianozsvald
1
200
Practical Orchestrator
shlominoach
191
11k
Faster Mobile Websites
deanohume
310
31k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Embracing the Ebb and Flow
colly
88
5.1k
GitHub's CSS Performance
jonrohan
1033
470k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
940
Believing is Seeing
oripsolob
1
140
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Transcript
Service Design, generated by Stable Diffusion B 2022 1 (
) B 2022 — 1 — 2022-10-17 – p.1/63
https://speakerdeck.com/ks91 ( ) ( ) Discord Discord ( / /
) Zoom URL ( ) B 2022 — 1 — 2022-10-17 – p.2/63
( ) 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 2021.12 VR 2022.3 VR 2022.8 → ( ) B 2022 — 1 — 2022-10-17 – p.3/63
(2 ) https://youtu.be/ZHdP9BKuQX8 JCSG2022 — Academy Camp VR Cells VRChat
https://vrchat.com/home/launch?worldId=wrld_2f8602af-a7ea-42a4-833b-789261f55205 Steam and/or Quest 2 Stable Diffusion / MidJourney 3D ( ) B 2022 — 1 — 2022-10-17 – p.4/63
. . . ( ) 2018 1 2 2018 OK
Google, Google ( ) Python ( ) ∈ Alexa, B 2022 — 1 — 2022-10-17 – p.5/63
Alexa, ত࣌ ੈلޙ ࣾձγεςϜ ࣾձڥ ػց ٕज़ ਓؒ ࣗಈγεςϜ ྩ࣌
ੈلલ ిؾ͚ͭͯ ͍ ͍ ిؾ͚ͭͯ ͜ͷ݅ͷͱ͖ ٕज़Ͱ͋Γࣾձڥˠࣗવڥ ਓ ⇒ ( ) Web3 B 2022 — 1 — 2022-10-17 – p.6/63
— ( ) ( ) “FinTech — Financial Innovation and
the Internet” ( ) ( ) ( ) B — (2020 ∼) ( ) → ( ) https://speakerdeck.com/ks91 B 2022 — 1 — 2022-10-17 – p.7/63
(?) (1) 2020 9 60 (2020) : ( ) .
. . = ( ) B 2022 — 1 — 2022-10-17 – p.8/63
(?) (2) (2020) : ( ) B 2022 — 1
— 2022-10-17 – p.9/63
( ) Python 3 Ethereum B 2022 — 1 —
2022-10-17 – p.10/63
B 2022 — 1 — 2022-10-17 – p.11/63
(1/2) — World Wide Web COVID-19 2020 1990 World Wide
Web (← ) End-to-End ( ) ( ) ( ) End-to-End ( ) 2008 B 2022 — 1 — 2022-10-17 – p.12/63
(2/2) — ( web3 ) B 2022 — 1 —
2022-10-17 – p.13/63
← Python Flask (Python ) Ethereum Brownie (Python Ethereum )
BBc-1 ( ) B 2022 — 1 — 2022-10-17 – p.14/63
( 2 ) ( ) Discord miro VR Discord miro
( ) ( : ) . . . : ( ) : DApp ( ) B 2022 — 1 — 2022-10-17 – p.15/63
( ) 25% 25% 20% 30% ( ) B 2022
— 1 — 2022-10-17 – p.16/63
( ) 1 10 17 • 2 10 24 3
10 31 1 4 11 7 2 5 11 14 1 6 11 21 2 7 11 28 8 12 5 Discord B 2022 — 1 — 2022-10-17 – p.17/63
1. 2. Ethereum 3. ↑ B 2022 — 1 —
2022-10-17 – p.18/63
/ STAND ALONE COMPLEX Yes. B 2022 — 1 —
2022-10-17 – p.19/63
( ) ੪౻ 0DVMVT2VFTU खݩͷΩʔϘʔυ ࣮ߦ )%.* #MVFUPPUI #MVFUPPUI खݩͷτϥοΫϘʔϧ
.BD1SP ͷલͷσΟεϓϨΠ എޙͷ..BD#PPL"JS "QQMF 3FNPUF%FTLUPQ 0DVMVT 3FNPUF%FTLUPQ )PSJ[PO8PSLSPPNT VT2VFTU MacBook Air B 2022 — 1 — 2022-10-17 – p.20/63
1. B 2022 — 1 — 2022-10-17 – p.21/63
ެ։ா ެ։Ͱͳ͚ΕͳΒͳ͍ ʜ ຊਓ ɾૹۚه ɾίʔυ ɾσʔλͷมԽ ɾ࣮ߦϩά ݕӾͰ͖Δୈࡾऀ ͜Εɺ
ه͍ͨ͠Μ͚ͩͲ ͋ͳͨ ॻ͍ͨΒμϝ ͜ͷ༰ ॻ͍ͨΒμϝ ॻ͍ͪΌͬͨͷʁ ͜͏ॻ͖͑·͠ΐ͏ ॻ͍ͯͳ͍ͷʁ ͜͏ॻ͔Εͨ͜ͱʹ ͠·͠ΐ͏ ॻ͍ͪΌͬͨͷʁ ফ͠·͠ΐ͏ %P4 ߈ܸͱ͔Ͱ ͯ͠ࢭΊ·͠ΐ͏ B 2022 — 1 — 2022-10-17 – p.22/63
( ) ( ) ( ) ↓ ( ( ))
(BP : Blockchain Property ) BP-1 : ( ) BP-2 : ( ( ) ) BP-3 : ( ) ( ) ( ) B 2022 — 1 — 2022-10-17 – p.23/63
( ) (LIFO : Last In, First Out) ( )
B 2022 — 1 — 2022-10-17 – p.24/63
( ) ( ) ( ) ( ) ( 16
) SHA (Secure Hash Algorithm) ( ) 1bit B 2022 — 1 — 2022-10-17 – p.25/63
( ) ( ) < , > ( ) ←
: < , > : : < , , > : OK ( 1 ) NG ( ) B 2022 — 1 — 2022-10-17 – p.26/63
BP-1 ( ), BP-2 ( ) BBc-1 f : →
BP-3 ( ) ( ) ( ) ← BP-2 ← BP-3 ( ) (BP-2 ) ( ) ← BP-3 (?) + ← BP-{1,2} B 2022 — 1 — 2022-10-17 – p.27/63
[Lamport 1984][Schneider 1990] (1) (2) (3) (4) ( ) ←
↑ B 2022 — 1 — 2022-10-17 – p.28/63
TX : transaction ( 4 TX ) SMRP (State Machine
Replication Problem) SMRP-1 ( ) SMRP-2 : B 2022 — 1 — 2022-10-17 – p.29/63
( ) ( ) ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O
ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O ͍ͪΜهɾॻ͖͑ͷίετ͕ߴ͍ྺ࢙ ࠷վ͟Μ͠ʹ͍͘ྺ࢙ ͕༗ޮ ͻͱͭखલͷϒϩοΫͷ ʮμΠδΣετʯ σδλϧॺ໊͞Εͨ ʮτϥϯβΫγϣϯ औҾ ʯ ϒϩοΫΛ࡞ΔͨΊʹɺͦͷʮμΠδΣετʯ͕͋ΔҎԼͱ͍͏݅Λຬͨͨ͠Γ 1SPPGPG8PSL Ծ௨՟ͷ࣋ͪʹԠͨ͡ݖརΛͬͨථͰউͬͨΓ 1SPPGPG4UBLF ͢Δඞཁ͕͋Δ ίετ͕͔͔Δ ϒϩοΫΛ࡞ΔਓͦͷதʹࣗʹѼͯͨ Ծ௨՟ͰͷใुΛॻ͖ࠐΉ͜ͱ͕Ͱ͖ɺ ͦͷϒϩοΫ͕༗ޮͳྺ࢙ͷதʹ͋Δ߹ʹ ݶΓใु༗ޮͱͳΔ τϥϯβΫγϣϯͷଘࡏΛ֬ೝ͢Δ ͨΊͷޮతͳํ๏͕ఏڙ͞ΕΔ ਖ਼ੑ ଘࡏੑ །Ұੑ Proof of Work ( ) . . . → B 2022 — 1 — 2022-10-17 – p.30/63
(BP-3 ) ( : ) (BP-3 ) ( : )
← NFT BP-{1,2,3} BP-{1, 2} ⇒ B 2022 — 1 — 2022-10-17 – p.31/63
(Confidentiality) BP-{1,2,3} ↑ ( = ) (Integrity) BP-3 (Availability) BP-2
B 2022 — 1 — 2022-10-17 – p.32/63
2009 ↑ 13 ( 5 ) B 2022 — 1
— 2022-10-17 – p.33/63
( ) ADR (Active (space) Debris Removal) : https://doi.org/10.1109/TCSS.2018.2890655 (1930
) ( ) B 2022 — 1 — 2022-10-17 – p.34/63
( ) ( ) ( ) B 2022 — 1
— 2022-10-17 – p.35/63
( ) ( - ) : https://doi.org/10.1016/j.future.2019.05.019 B 2022 —
1 — 2022-10-17 – p.36/63
( ) ( ) ( ) B 2022 — 1
— 2022-10-17 – p.37/63
( ) B 2022 — 1 — 2022-10-17 – p.38/63
/ ( ) ( ) ( ) ( ) B
2022 — 1 — 2022-10-17 – p.39/63
( ) ( ) ( ) B 2022 — 1
— 2022-10-17 – p.40/63
( ) : https://www.lij.jp/html/jli/jli_2017/ 2017summer_p018.pdf B 2022 — 1 —
2022-10-17 – p.41/63
( ) ( ) B 2022 — 1 — 2022-10-17
– p.42/63
B 2022 — 1 — 2022-10-17 – p.43/63
with ( ) ( ) : https://doi.org/10.1016/j.icte.2021.08.012 ( ) B
2022 — 1 — 2022-10-17 – p.44/63
DNS : https://ieeexplore.ieee.org/document/9686409 ( ) IP AS B 2022 —
1 — 2022-10-17 – p.45/63
( ) ( ) : https://ieeexplore.ieee.org/document/9686409 ( ) : https://doi.org/10.1016/j.icte.2021.08.012
(web ) B 2022 — 1 — 2022-10-17 – p.46/63
( ) ( ) ( ) : https://doi.org/10.1016/j.icte.2021.08.012 ( )
( ) ( ) : https://ieeexplore.ieee.org/document/9686409 B 2022 — 1 — 2022-10-17 – p.47/63
( ) ( ) : https://ieeexplore.ieee.org/document/9686409 3D ( ) :
HACCP ( ) B 2022 — 1 — 2022-10-17 – p.48/63
2. Ethereum macOS (Monterey 12.6) + Homebrew Linux (Ubuntu 22.04)
(x86/AMD64 and ARM) Windows 10 + Windows Subsystem for Linux (Ubuntu ) Ethereum solidity brownie B 2022 — 1 — 2022-10-17 – p.49/63
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.16 (9/6 ) $ solc --version brownie py-solc-x solc (dependencies) ( solc py-solc-x ) B 2022 — 1 — 2022-10-17 – p.50/63
Ganache CLI Ethereum RPC npm ( ) macOS https://qiita.com/kyosuke5_20/items/c5f68fc9d89b84c0df09 Linux
https://qiita.com/seibe/items/36cef7df85fe2cefa3ea npm Ganache CLI $ sudo npm install -g ganache-cli B 2022 — 1 — 2022-10-17 – p.51/63
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 B 2022 — 1 — 2022-10-17 – p.52/63
macOS : . . . macOS wget brew dyld: Library
not loaded: /usr/local/opt/gettext/lib/libintl.8.dylib $ brew uninstall --force gettext $ brew install gettext B 2022 — 1 — 2022-10-17 – p.53/63
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 B 2022 — 1 — 2022-10-17 – p.54/63
Brownie Python Ethereum https://eth-brownie.readthedocs.io Brownie $ pip install eth-brownie version
1.19.1 (9/6 ) B 2022 — 1 — 2022-10-17 – p.55/63
$ brownie init ( ERC-20 ) $ brownie bake token
$ cd token B 2022 — 1 — 2022-10-17 – p.56/63
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 B 2022 — 1 — 2022-10-17 – p.57/63
Brownie $ brownie console Python >>> len(accounts) 10 >>> accounts[0].balance()
100000000000000000000 >>> quit() B 2022 — 1 — 2022-10-17 – p.58/63
3. Ethereum Görli B 2022 — 1 — 2022-10-17 –
p.59/63
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 B 2022 — 1 — 2022-10-17 – p.60/63
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/ B 2022 — 1 — 2022-10-17 – p.61/63
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") B 2022 — 1 — 2022-10-17 – p.62/63
B 2022 — 1 — 2022-10-17 – p.63/63