Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サービスデザインプロジェクトB 第1回「ブロックチェーン概論」 / Overview of B...
Search
Kenji Saito
PRO
October 12, 2020
Technology
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サービスデザインプロジェクトB 第1回「ブロックチェーン概論」 / Overview of Blockchain
2020年10月12日、慶應義塾大学大学院メディアデザイン研究科の「サービスデザインプロジェクトB (2020 秋)」第1回にて使用したスライドです。
Kenji Saito
PRO
October 12, 2020
More Decks by Kenji Saito
See All by Kenji Saito
FinTech 7-8 : Blockchain
ks91
PRO
0
54
Fall 2026: A Guide & Workshop on Using AI for Academic Paper Writing
ks91
PRO
0
55
FinTech 5-6 : The World of Apps
ks91
PRO
0
61
終わらない幼年期とそのための下部構造・社会資本 / The Never-Ending Childhood and the Infrastructure and Social Capital Needed to Support It
ks91
PRO
0
31
FinTech 3-4 : Internet Technology and Governance
ks91
PRO
0
78
2026 秋 生成AI を活用した論文執筆ガイド/ワークショップ / Fall 2026: Guide and Workshop on Writing Papers Using Generative AI
ks91
PRO
0
150
AIとビジネス・メガトレンド 〜 サイバネティクス的経営観 / AI and Business Megatrends: A Cybernetic Perspective on Management
ks91
PRO
0
47
FinTech 1-2 : Overview of FinTech
ks91
PRO
0
170
アカデミーキャンプ 2026秋「位置ゲーに秀でよ!ウチらとヤツらのゲーム・デザイン」DAY 4 / Academy Camp 2026 Fall - Excel at Location-Based Games! Our and Their Game Design DAY 4
ks91
PRO
0
65
Other Decks in Technology
See All in Technology
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
220
From Developer Experience to Agentic Experience: The Next Evolution of APIs
benjagm
0
120
freeeにおける AI を用いた ブラウザ動作確認の自動化の取り組み
freee
PRO
0
170
20261017福岡devIO 「AIは"良いダッシュボード"を作れるか?
jtakeda
0
250
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
360
AI × アーキテクト 第1・2章|生成AIの課題とアーキテクトの素養
daidaidai
1
240
「Learning Outcome」を書きたくない私が、Learning Outcomeと折り合いをつけるまで
mhlyc
0
150
Claude Code on Bedrock で統制をかける小ネタ集/claude-code-bedrock-governance-tips
emiki
1
520
「私が一番顧客に詳しい」を捨てる~ 全員が一次情報に精通する開発チームをつくり、PMが次のボトルネックへ染み出すまで
kaminashi
3
1.7k
Turning Repos into the Product Second Brain with an LLM Wiki
linedevth
0
150
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
290
僕のハーネスを紹介します
watany
5
1.5k
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
530
The Pragmatic Product Professional
lauravandoore
37
7.5k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
740
Producing Creativity
orderedlist
PRO
348
41k
Speed Design
sergeychernyshev
33
2.2k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
580
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
Transcript
B 2020 1 ( ) B 2020 — 1 —
2020-10-12 – p.1/56
https://speakerdeck.com/ks91 ( ) ( . . . ) Discord Discord
( / / ) Zoom URL ( ) B 2020 — 1 — 2020-10-12 – p.2/56
( ) SFC ( ) CSO (Chief Science Officer) 1993
( ) 2006 ( ) SFC 20 P2P (Peer-to-Peer) ( 9 ) 2011 2018 2019 2019 2020 2020 → ( ) B 2020 — 1 — 2020-10-12 – p.3/56
2020 9 60 (2020) : . . . ( )
. . . B 2020 — 1 — 2020-10-12 – p.4/56
. . . ( ) 2018 1 2 2018 OK
Google, Google ( ) Python (2020 ) ( ) ∈ Alexa, B 2020 — 1 — 2020-10-12 – p.5/56
Alexa, ত࣌ ੈلޙ ࣾձγεςϜ ࣾձڥ ػց ٕज़ ਓؒ ࣗಈγεςϜ ྩ࣌
ੈلલ ిؾ͚ͭͯ ͍ ͍ ిؾ͚ͭͯ ͜ͷ݅ͷͱ͖ ٕज़Ͱ͋Γࣾձڥˠࣗવڥ ਓ ⇒ ( ) B 2020 — 1 — 2020-10-12 – p.6/56
Python 3 Ethereum B 2020 — 1 — 2020-10-12 –
p.7/56
B 2020 — 1 — 2020-10-12 – p.8/56
(1/2) — World Wide Web SARS-CoV-2 COVID-19 2020 1990 World
Wide Web End-to-End ( ) ( ) ( ) End-to-End ( ) 2008 B 2020 — 1 — 2020-10-12 – p.9/56
(2/2) — 2020 ( ) B 2020 — 1 —
2020-10-12 – p.10/56
← Python Flask (Python ) Ethereum Brownie (Python Ethereum )
BBc-1 ( ) B 2020 — 1 — 2020-10-12 – p.11/56
( 2 ) ( ) Discord ( ) ( :
) . . . : ( ) : DApp ( ) B 2020 — 1 — 2020-10-12 – p.12/56
( ) 25% 25% 20% 30% ( ) B 2020
— 1 — 2020-10-12 – p.13/56
( ) 1 10 12 • 2 10 19 3
10 26 1 4 11 2 2 5 11 9 1 6 11 16 2 7 11 30 8 12 7 B 2020 — 1 — 2020-10-12 – p.14/56
1. 2. Ethereum 3. B 2020 — 1 — 2020-10-12
– p.15/56
1. B 2020 — 1 — 2020-10-12 – p.16/56
( ) ( ) ( ) (BP : Blockchain Property
) BP-1 : BP-2 : BP-3 : ( ) ( ) B 2020 — 1 — 2020-10-12 – p.17/56
( ) (LIFO : Last In, First Out) ( )
B 2020 — 1 — 2020-10-12 – p.18/56
( ) ( ) ( ) ( ) ( 16
) SHA (Secure Hash Algorithm) ( ) 1bit B 2020 — 1 — 2020-10-12 – p.19/56
( ) ( ) < , > ( ) ←
: < , > : : < , , > : OK ( 1 ) NG ( ) B 2020 — 1 — 2020-10-12 – p.20/56
BP-1 ( ), BP-2 ( ) BBc-1 f : →
BP-3 ( ) ( ) ( ) ← BP-2 ← BP-3 ( ) ← BP-3 + ← BP-{1,2} B 2020 — 1 — 2020-10-12 – p.21/56
[Lamport 1984][Schneider 1990] (1) (2) (3) (4) ( ) ←
↑ B 2020 — 1 — 2020-10-12 – p.22/56
TX : transaction ( 4 TX ) SMRP (State Machine
Replication Problem) SMRP-1 ( ) SMRP-2 : B 2020 — 1 — 2020-10-12 – p.23/56
( ) ( ) ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O
ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O ͍ͪΜهɾॻ͖͑ͷίετ͕ߴ͍ྺ࢙ ࠷վ͟Μ͠ʹ͍͘ྺ࢙ ͕༗ޮ ͻͱͭखલͷϒϩοΫͷ ʮμΠδΣετʯ σδλϧॺ໊͞Εͨ ʮτϥϯβΫγϣϯ औҾ ʯ ϒϩοΫΛ࡞ΔͨΊʹɺͦͷʮμΠδΣετʯ͕͋ΔҎԼͱ͍͏݅Λຬͨͨ͠Γ 1SPPGPG8PSL Ծ௨՟ͷ࣋ͪʹԠͨ͡ݖརΛͬͨථͰউͬͨΓ 1SPPGPG4UBLF ͢Δඞཁ͕͋Δ ίετ͕͔͔Δ ϒϩοΫΛ࡞ΔਓͦͷதʹࣗʹѼͯͨ Ծ௨՟ͰͷใुΛॻ͖ࠐΉ͜ͱ͕Ͱ͖ɺ ͦͷϒϩοΫ͕༗ޮͳྺ࢙ͷதʹ͋Δ߹ʹ ݶΓใु༗ޮͱͳΔ τϥϯβΫγϣϯͷଘࡏΛ֬ೝ͢Δ ͨΊͷޮతͳํ๏͕ఏڙ͞ΕΔ ਖ਼ੑ ଘࡏੑ །Ұੑ Proof of Work ( ) . . . → B 2020 — 1 — 2020-10-12 – p.24/56
(BP-3 ) ( : ) (BP-3 ) ( : )
BP-{1,2,3} BP-{1, 2} ⇒ B 2020 — 1 — 2020-10-12 – p.25/56
(Confidentiality) BP-{1,2,3} ↑ ( = ) (Integrity) BP-3 (Availability) BP-2
B 2020 — 1 — 2020-10-12 – p.26/56
2009 ↑ 11 B 2020 — 1 — 2020-10-12 –
p.27/56
( ) ADR (Active (space) Debris Removal) : https://doi.org/10.1109/TCSS.2018.2890655 (1930
) ( ) B 2020 — 1 — 2020-10-12 – p.28/56
( ) ( ) ( ) B 2020 — 1
— 2020-10-12 – p.29/56
( ) ( - ) : https://doi.org/10.1016/j.future.2019.05.019 B 2020 —
1 — 2020-10-12 – p.30/56
( ) ( ) ( ) B 2020 — 1
— 2020-10-12 – p.31/56
( ) B 2020 — 1 — 2020-10-12 – p.32/56
/ ( ) ( ) ( ) ( ) B
2020 — 1 — 2020-10-12 – p.33/56
( ) ( ) ( ) B 2020 — 1
— 2020-10-12 – p.34/56
( ) B 2020 — 1 — 2020-10-12 – p.35/56
( ) ( ) B 2020 — 1 — 2020-10-12
– p.36/56
B 2020 — 1 — 2020-10-12 – p.37/56
with ( ) ( ) ( ) B 2020 —
1 — 2020-10-12 – p.38/56
DNS IP AS B 2020 — 1 — 2020-10-12 –
p.39/56
( ) ( ) (web ) B 2020 — 1
— 2020-10-12 – p.40/56
( ) ( ) ( ) ( ) ( )
( ) B 2020 — 1 — 2020-10-12 – p.41/56
( ) ( ) 3D B 2020 — 1 —
2020-10-12 – p.42/56
2. Ethereum macOS (Catalina 10.15.7) + Homebrew Linux (Ubuntu 18.04)
Windows 10 + Windows Subsystem for Linux (Ubuntu 18.04 ) Ethereum solidity brownie B 2020 — 1 — 2020-10-12 – p.43/56
Solidity Ethereum http://solidity.readthedocs.io/en/latest/installing-solidity.html Linux (on Windows) “sudo apt”, macOS “brew”
solc 0.7.3 (10/10 ) $ solc --version brownie py-solc-x solc (dependencies) ( solc py-solc-x ) B 2020 — 1 — 2020-10-12 – p.44/56
Python3 macOS $ brew install python3 Linux $ sudo add-apt-repository
ppa:deadsnakes/ppa $ sudo apt update $ sudo apt install python3.7 python3.7-dev python3.7-venv python3.7-tk 16.10 python3(.7) apt python3.8 B 2020 — 1 — 2020-10-12 – p.45/56
macOS : . . . macOS wget brew dyld: Library
not loaded: /usr/local/opt/gettext/lib/libintl.8.dylib $ brew uninstall --force gettext $ brew install gettext B 2020 — 1 — 2020-10-12 – p.46/56
Python (venv) macOS ‘python3.7’ ‘python3’ $ python3.7 -m venv bbc1env
$ source bbc1env/bin/activate (bbc1env) $ pip install -U pip (bbc1env) $ pip install wheel bbc1env ( BBc-1 ) ( ) (bbc1env) $ deactivate B 2020 — 1 — 2020-10-12 – p.47/56
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 2020 — 1 — 2020-10-12 – p.48/56
Brownie Python Ethereum https://eth-brownie.readthedocs.io Brownie $ pip install eth-brownie version
1.8.4 (5/13 ) B 2020 — 1 — 2020-10-12 – p.49/56
$ brownie init ( ERC-20 ) $ brownie bake token
$ cd token ( ) $ brownie compile ( ) $ pytest tests B 2020 — 1 — 2020-10-12 – p.50/56
Brownie $ brownie console Python >>> len(accounts) 10 >>> accounts[0].balance()
100000000000000000000 >>> quit() B 2020 — 1 — 2020-10-12 – p.51/56
3. Ethereum ropsten B 2020 — 1 — 2020-10-12 –
p.52/56
infura.io Brownie https://infura.io SIGN UP PROJECT ID infura Ethereum API
infura . . . infura.io PROJECT ID Brownie “brownie-config.yaml” . . . YAML WEB3_INFURA_PROJECT_ID PROJECT ID (∼/.bash_profile ) $ export WEB3_INFURA_PROJECT_ID= PROJECT ID B 2020 — 1 — 2020-10-12 – p.53/56
ropsten ETH brownie console ropsten >>> network.disconnect() >>> network.connect(’ropsten’) >>>
len(accounts) 0 >>> accounts.add() <LocalAccount object ’ 16 ’> >>> accounts[0].private_key 16 >>> quit() Ropsten Ethereum Faucet 1.0ETH https://faucet.ropsten.be ( ) https://metamask.io/ B 2020 — 1 — 2020-10-12 – p.54/56
ropsten ETH brownie console ropsten ETH >>> network.disconnect() >>> network.connect(’ropsten’)
>>> len(accounts) 0 >>> accounts.add( 16 ) <LocalAccount object ’ 16 ’> >>> accounts[0].balace() ETH >>> quit() B 2020 — 1 — 2020-10-12 – p.55/56
B 2020 — 1 — 2020-10-12 – p.56/56