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 11, 2021
Technology
0
190
ブロックチェーン概論 / Introduction to Blockchain
2021年10月11日(月)、慶應義塾大学大学院メディアデザイン研究科「サービスデザインプロジェクト B」2021秋 第1回で使用されたスライドです。
Kenji Saito
PRO
October 11, 2021
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
ロール・ツール群の開発 / Development of Roles and Tools
ks91
PRO
0
130
ワールドカフェ再び、そしてロール・ツール群の開発 / World Café Again, and the Development of a Suite of Roles and Tools
ks91
PRO
0
120
01 を動かす〜音声で対話できる自動化されたアシスタント / Running 01 - Automated Assistant with Voice Interaction
ks91
PRO
0
32
AGI (Artificial General Intelligence) の論点 / AGI (Artificial General Intelligence) Issues
ks91
PRO
0
30
Open Interpreter を動かす 〜 自動化されたアシスタントの誕生 / Running Open Interpreter - The Birth of an Automated Assistant
ks91
PRO
0
31
Linux 仮想マシンを動かす(Windows 編)(Mac 編) / Running a Linux Virtual Machine (Windows Edition) (Mac Edition)
ks91
PRO
0
39
(メタ・) ネイチャーポジティブと物質・エネルギーの循環経済 / Being (Meta-)Nature Positive and the Circular Economy of Materials and Energy
ks91
PRO
0
7
対話による知の拡張 / Extending Knowledge Through Dialogue
ks91
PRO
0
49
プロンプトに対する攻撃と対策 / Attacks Against Prompts and Countermeasures
ks91
PRO
0
52
Other Decks in Technology
See All in Technology
Machine Intelligence for Vision, Language, and Actions
keio_smilab
PRO
0
390
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
24k
技術書典18結果報告
mutsumix
1
150
会社員しながら本を書いてきた知見の共有
sat
PRO
3
670
AIエージェントデザインパターンの選び方
almondo_event
0
120
大事なのは、AIの精度だけじゃない!〜1円のズレも許されない経理領域とAI〜
jun_nemoto
9
4.9k
KMP導⼊において、マネジャーとして考えた事
sansantech
PRO
1
180
AIオンボーディングとAIプロセスマイニング
nrryuya
5
1.2k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
8
65k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
初めてのGoogle Cloud by AWS出身者
harukasakihara
1
720
LT:組込み屋さんのオシロが壊れた!
windy_pon
0
180
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Speed Design
sergeychernyshev
30
960
4 Signs Your Business is Dying
shpigford
183
22k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
The Pragmatic Product Professional
lauravandoore
34
6.7k
Unsuck your backbone
ammeep
671
58k
Building Applications with DynamoDB
mza
95
6.4k
Typedesign – Prime Four
hannesfritz
41
2.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Transcript
B 2021 1 ( ) B 2021 — 1 —
2021-10-11 – p.1/69
https://speakerdeck.com/ks91 ( ) ( ) Discord Discord ( / /
) Zoom URL ( ) B 2021 — 1 — 2021-10-11 – p.2/69
( ) SFC ( ) CSO (Chief Science Officer) 1993
( ) 2006 ( ) SFC 21 P2P (Peer-to-Peer) 2011 2018 2019 VR 2021.7 , VR 2021.8 “ALL THESE WORLDS ARE YOURS”, VR 2021.9 & ( (VR) ) → ( ) B 2021 — 1 — 2021-10-11 – p.3/69
VR VR B 2021 — 1 — 2021-10-11 – p.4/69
VR 2021.7 (2030 ) B 2021 — 1 — 2021-10-11
– p.5/69
VR 2021.8 “ALL THESE WORLDS ARE YOURS” 2040 2 .
. . B 2021 — 1 — 2021-10-11 – p.6/69
VR 2021.8 “ALL THESE WORLDS ARE YOURS” 2 . .
. (VRChat COMMUNITY LABS “Europa” ) B 2021 — 1 — 2021-10-11 – p.7/69
VR 2021.9 & 6 B 2021 — 1 — 2021-10-11
– p.8/69
DNA (1) Ԙج σΦΩγ ϦϘʔε 5’ 3’ 5’ 5’ 3’
4’ 3’ 2’ 1’ Ϧϯࢎ $ $ $ " " " 5 5 5 ( ( ( DNA = ( + ( ) + )* ( ) ( ) ′ ( ) DNA CG https://youtu.be/7Hk9jct2ozY?t=147 DNA/RNA (3′ → 5′ ) 5′ → 3′ ( ) 5′ → 3′ 3′ → 5′ B 2021 — 1 — 2021-10-11 – p.9/69
DNA (2) ` ` ` ` ` ` ` `
ͷૹΓํ ઌߦ͢Δ ΕΔ ͷૹΓํ ෳϑΥʔΫ %/" ϙϦϝϥʔθ సࣸث Ԭ࡚ϑϥάϝϯτ ʹ༧͞Ε ʹൃݟ ᶃ ᶄ ᶅ %/" ϙϦϝϥʔθ సࣸث ( 100 ) B 2021 — 1 — 2021-10-11 – p.10/69
VR 2021.9 & DNA RNA DNA 3D B 2021 —
1 — 2021-10-11 – p.11/69
. . . ( ) 2018 1 2 2018 OK
Google, Google ( ) Python (2020 ) ( ) ∈ Alexa, B 2021 — 1 — 2021-10-11 – p.12/69
Alexa, ত࣌ ੈلޙ ࣾձγεςϜ ࣾձڥ ػց ٕज़ ਓؒ ࣗಈγεςϜ ྩ࣌
ੈلલ ిؾ͚ͭͯ ͍ ͍ ిؾ͚ͭͯ ͜ͷ݅ͷͱ͖ ٕज़Ͱ͋Γࣾձڥˠࣗવڥ ਓ ⇒ ( ) B 2021 — 1 — 2021-10-11 – p.13/69
— ( ) ( ) “FinTech — Financial Innovation and
the Internet” ( ) ( ) ( ) B — (2020 ∼) ( ) → ( ) https://speakerdeck.com/ks91 B 2021 — 1 — 2021-10-11 – p.14/69
(1) 2020 9 60 (2020) : ( ) . .
. = ( ) B 2021 — 1 — 2021-10-11 – p.15/69
(2) (2020) : ( ) B 2021 — 1 —
2021-10-11 – p.16/69
Python 3 Ethereum B 2021 — 1 — 2021-10-11 –
p.17/69
B 2021 — 1 — 2021-10-11 – p.18/69
(1/2) — World Wide Web SARS-CoV-2 COVID-19 2020 1990 World
Wide Web End-to-End ( ) ( ) ( ) End-to-End ( ) 2008 B 2021 — 1 — 2021-10-11 – p.19/69
(2/2) — 2020 ( ) B 2021 — 1 —
2021-10-11 – p.20/69
← Python Flask (Python ) Ethereum Brownie (Python Ethereum )
BBc-1 ( ) B 2021 — 1 — 2021-10-11 – p.21/69
( 2 ) ( ) Discord miro VR Discord miro
( ) ( : ) . . . : ( ) : DApp ( ) B 2021 — 1 — 2021-10-11 – p.22/69
( ) 25% 25% 20% 30% ( ) B 2021
— 1 — 2021-10-11 – p.23/69
( ) 1 10 11 • 2 10 18 3
10 25 1 4 11 1 2 5 11 8 1 6 11 15 2 7 11 22 8 11 29 11/22 ← KMD Discord B 2021 — 1 — 2021-10-11 – p.24/69
1. 2. Ethereum 3. ↑ B 2021 — 1 —
2021-10-11 – p.25/69
/ STAND ALONE COMPLEX Yes. B 2021 — 1 —
2021-10-11 – p.26/69
( ) ੪౻ 0DVMVT2VFTU खݩͷΩʔϘʔυ ࣮ߦ )%.* #MVFUPPUI #MVFUPPUI खݩͷτϥοΫϘʔϧ
.BD1SP ͷલͷσΟεϓϨΠ എޙͷ..BD#PPL"JS "QQMF 3FNPUF%FTLUPQ 0DVMVT 3FNPUF%FTLUPQ )PSJ[PO8PSLSPPNT VT2VFTU MacBook Air B 2021 — 1 — 2021-10-11 – p.27/69
1. B 2021 — 1 — 2021-10-11 – p.28/69
( ) ( ) ( ) ↓ ( ( ))
(BP : Blockchain Property ) BP-1 : ( ) BP-2 : ( ( ) ) BP-3 : ( ) ( ) ( ) B 2021 — 1 — 2021-10-11 – p.29/69
( ) (LIFO : Last In, First Out) ( )
B 2021 — 1 — 2021-10-11 – p.30/69
( ) ( ) ( ) ( ) ( 16
) SHA (Secure Hash Algorithm) ( ) 1bit B 2021 — 1 — 2021-10-11 – p.31/69
( ) ( ) < , > ( ) ←
: < , > : : < , , > : OK ( 1 ) NG ( ) B 2021 — 1 — 2021-10-11 – p.32/69
BP-1 ( ), BP-2 ( ) BBc-1 f : →
BP-3 ( ) ( ) ( ) ← BP-2 ← BP-3 ( ) (BP-2 ) ( ) ← BP-3 (?) + ← BP-{1,2} B 2021 — 1 — 2021-10-11 – p.33/69
[Lamport 1984][Schneider 1990] (1) (2) (3) (4) ( ) ←
↑ B 2021 — 1 — 2021-10-11 – p.34/69
TX : transaction ( 4 TX ) SMRP (State Machine
Replication Problem) SMRP-1 ( ) SMRP-2 : B 2021 — 1 — 2021-10-11 – p.35/69
( ) ( ) ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O
ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O ϒϩοΫ൪߸O ͍ͪΜهɾॻ͖͑ͷίετ͕ߴ͍ྺ࢙ ࠷վ͟Μ͠ʹ͍͘ྺ࢙ ͕༗ޮ ͻͱͭखલͷϒϩοΫͷ ʮμΠδΣετʯ σδλϧॺ໊͞Εͨ ʮτϥϯβΫγϣϯ औҾ ʯ ϒϩοΫΛ࡞ΔͨΊʹɺͦͷʮμΠδΣετʯ͕͋ΔҎԼͱ͍͏݅Λຬͨͨ͠Γ 1SPPGPG8PSL Ծ௨՟ͷ࣋ͪʹԠͨ͡ݖརΛͬͨථͰউͬͨΓ 1SPPGPG4UBLF ͢Δඞཁ͕͋Δ ίετ͕͔͔Δ ϒϩοΫΛ࡞ΔਓͦͷதʹࣗʹѼͯͨ Ծ௨՟ͰͷใुΛॻ͖ࠐΉ͜ͱ͕Ͱ͖ɺ ͦͷϒϩοΫ͕༗ޮͳྺ࢙ͷதʹ͋Δ߹ʹ ݶΓใु༗ޮͱͳΔ τϥϯβΫγϣϯͷଘࡏΛ֬ೝ͢Δ ͨΊͷޮతͳํ๏͕ఏڙ͞ΕΔ ਖ਼ੑ ଘࡏੑ །Ұੑ Proof of Work ( ) . . . → B 2021 — 1 — 2021-10-11 – p.36/69
(BP-3 ) ( : ) (BP-3 ) ( : )
← NFT BP-{1,2,3} BP-{1, 2} ⇒ B 2021 — 1 — 2021-10-11 – p.37/69
(Confidentiality) BP-{1,2,3} ↑ ( = ) (Integrity) BP-3 (Availability) BP-2
B 2021 — 1 — 2021-10-11 – p.38/69
2009 ↑ 12 ( 5 ) B 2021 — 1
— 2021-10-11 – p.39/69
( ) ADR (Active (space) Debris Removal) : https://doi.org/10.1109/TCSS.2018.2890655 (1930
) ( ) B 2021 — 1 — 2021-10-11 – p.40/69
( ) ( ) ( ) B 2021 — 1
— 2021-10-11 – p.41/69
( ) ( - ) : https://doi.org/10.1016/j.future.2019.05.019 B 2021 —
1 — 2021-10-11 – p.42/69
( ) ( ) ( ) B 2021 — 1
— 2021-10-11 – p.43/69
( ) B 2021 — 1 — 2021-10-11 – p.44/69
/ ( ) ( ) ( ) ( ) B
2021 — 1 — 2021-10-11 – p.45/69
( ) ( ) ( ) B 2021 — 1
— 2021-10-11 – p.46/69
( ) : https://www.lij.jp/html/jli/jli_2017/ 2017summer_p018.pdf B 2021 — 1 —
2021-10-11 – p.47/69
( ) ( ) B 2021 — 1 — 2021-10-11
– p.48/69
B 2021 — 1 — 2021-10-11 – p.49/69
with ( ) ( ) : https://doi.org/10.1016/j.icte.2021.08.012 ( ) B
2021 — 1 — 2021-10-11 – p.50/69
DNS : https://arxiv.org/abs/2011.05442 ( ) IP AS B 2021 —
1 — 2021-10-11 – p.51/69
( ) ( ) : https://arxiv.org/abs/2011.05442 ( ) : https://doi.org/10.1016/j.icte.2021.08.012
(web ) B 2021 — 1 — 2021-10-11 – p.52/69
( ) ( ) ( ) : https://doi.org/10.1016/j.icte.2021.08.012 ( )
( ) ( ) : https://arxiv.org/abs/2011.05442 B 2021 — 1 — 2021-10-11 – p.53/69
( ) ( ) : https://arxiv.org/abs/2011.05442 3D HACCP ( )
B 2021 — 1 — 2021-10-11 – p.54/69
2. Ethereum macOS (Big Sur 11.6) + Homebrew Linux (Ubuntu
20.04.3) (x86/AMD64 and ARM) Windows 10 + Windows Subsystem for Linux (Ubuntu ) Ethereum solidity brownie B 2021 — 1 — 2021-10-11 – p.55/69
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.9 (10/6 ) $ solc --version brownie py-solc-x solc (dependencies) ( solc py-solc-x ) B 2021 — 1 — 2021-10-11 – p.56/69
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 2021 — 1 — 2021-10-11 – p.57/69
Python3 macOS $ brew install python@3.8 python3 python 3.9 (12/2
) 3.9 3.8 3.9 $ brew uninstall --ignore-dependencies python@3.9 $ brew install python@3.8 /usr/local/opt/python@3.8/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 2021 — 1 — 2021-10-11 – p.58/69
macOS : . . . macOS wget brew dyld: Library
not loaded: /usr/local/opt/gettext/lib/libintl.8.dylib $ brew uninstall --force gettext $ brew install gettext B 2021 — 1 — 2021-10-11 – p.59/69
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 2021 — 1 — 2021-10-11 – p.60/69
Brownie Python Ethereum https://eth-brownie.readthedocs.io Brownie $ pip install eth-brownie version
1.16.4 (10/6 ) B 2021 — 1 — 2021-10-11 – p.61/69
$ brownie init ( ERC-20 ) $ brownie bake token
$ cd token B 2021 — 1 — 2021-10-11 – p.62/69
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 2021 — 1 — 2021-10-11 – p.63/69
Brownie $ brownie console Python >>> len(accounts) 10 >>> accounts[0].balance()
100000000000000000000 >>> quit() B 2021 — 1 — 2021-10-11 – p.64/69
3. Ethereum ropsten B 2021 — 1 — 2021-10-11 –
p.65/69
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 2021 — 1 — 2021-10-11 – p.66/69
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 Testnet ETH Faucet 5.0ETH https://faucet.dimensions.network/ ( ) https://metamask.io/ B 2021 — 1 — 2021-10-11 – p.67/69
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() ETH >>> accounts[0].transfer(accounts[1], "1 ether") B 2021 — 1 — 2021-10-11 – p.68/69
B 2021 — 1 — 2021-10-11 – p.69/69