$30 off During Our Annual Pro Sale. View Details »
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
0
160
ブロックチェーン概論 / Introduction to Blockchain
2022年10月17日(月)、慶應義塾大学大学院メディアデザイン研究科「サービスデザインプロジェクト B」2022秋で使用したスライドです。
Kenji Saito
PRO
October 17, 2022
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
成果 / Achievements
ks91
PRO
0
4
意思決定 / Decision-Making
ks91
PRO
0
8
ファンディングとデジタル市民社会 / Funding and Digital Civil Society
ks91
PRO
0
14
生成AI による論文執筆サポート・ワークショップ 論文執筆・推敲編 / Generative AI-Assisted Paper Writing Support Workshop: Drafting and Revision Edition
ks91
PRO
0
25
私たちの前提は揺るがないのか / Are Our Premises Unshakeable?
ks91
PRO
0
21
貨幣無き世界への過程 / The Process Towards a World without Money
ks91
PRO
0
9
ファンディング / Funding
ks91
PRO
0
7
デジタル市民社会 / Digital Civil Society
ks91
PRO
0
10
発表と総括 / Presentations and Summary
ks91
PRO
0
5
Other Decks in Technology
See All in Technology
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
今からでも間に合う!速習Devin入門とその活用方法
ismk
1
670
手動から自動へ、そしてその先へ
moritamasami
0
300
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.3k
世界最速級 memcached 互換サーバー作った
yasukata
0
340
OCI Oracle Database Services新機能アップデート(2025/09-2025/11)
oracle4engineer
PRO
1
110
モダンデータスタック (MDS) の話とデータ分析が起こすビジネス変革
sutotakeshi
0
470
AWS CLIの新しい認証情報設定方法aws loginコマンドの実態
wkm2
6
710
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
480
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
310
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
460
チーリンについて
hirotomotaguchi
6
1.9k
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Done Done
chrislema
186
16k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Raft: Consensus for Rubyists
vanstee
141
7.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
YesSQL, Process and Tooling at Scale
rocio
174
15k
How STYLIGHT went responsive
nonsquared
100
6k
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