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
暗号技術のリテラシー / Cryptography Literacy
Search
Kenji Saito
PRO
February 17, 2017
Technology
3
370
暗号技術のリテラシー / Cryptography Literacy
ブロックチェーンハブ主催で開催している連続講義 (通算第3期) ブロックチェーン基盤技術 第3回「暗号技術のリテラシー」のスライドです。2017年2月17日(金) に使用しました。
Kenji Saito
PRO
February 17, 2017
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
120
LLM とプロンプトエンジニアリング/チューターをビルドする / LLM and Prompt Engineering and Building Tutors
ks91
PRO
0
250
講師自己紹介 / Lecturer's Self-Introduction
ks91
PRO
0
82
講師研究紹介 / Lecturer's Research Introduction
ks91
PRO
0
67
Discord とビルダー&チャットボットの使い方 / How to use Discord and Builder & Chatbots
ks91
PRO
0
160
研究って何だっけ / What's Research?
ks91
PRO
0
27
ブロックチェーンと分散ファイナンス概論 / Introduction to Blockchain and Decentralized Finance
ks91
PRO
0
18
招き猫コマロ— ネットワーク贈答経済のエージェント / Manekineko Komaro - Network Gift Economy Agent
ks91
PRO
0
17
Implementation of Blockchain Ecosystems
ks91
PRO
0
12
Other Decks in Technology
See All in Technology
Compose Compiler Metricsを使った実践的なコードレビュー
tomorrowkey
1
220
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
2
900
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
2.1k
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
260
反実仮想機械学習とは何か
usaito
PRO
11
4.7k
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
390
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
250
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
200
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
350
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
770
MLOpsの「壁」を乗り越える、LINEヤフーの Data Quality as Code
lycorptech_jp
PRO
5
530
20分で完全に理解するGrafanaダッシュボード
hamadakoji
3
680
Featured
See All Featured
Visualization
eitanlees
136
14k
A designer walks into a library…
pauljervisheath
200
23k
Design by the Numbers
sachag
274
18k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
How STYLIGHT went responsive
nonsquared
92
4.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
355
18k
Being A Developer After 40
akosma
57
580k
Navigating Team Friction
lara
178
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
[RailsConf 2023] Rails as a piece of cake
palkan
23
4k
Raft: Consensus for Rubyists
vanstee
132
6.3k
Transcript
3 SFC / CSO
[email protected]
— 3 — 2017-02-17 –
p.1/38
Bitcoin (2014-06-02) http://www.slideshare.net/kenjiurushima/20140602-bitcoin1-201406031222 — 3 — 2017-02-17 – p.2/38
1. 2. 3. — 3 — 2017-02-17 – p.3/38
1. – – — 3 — 2017-02-17 – p.4/38
(1) — 3 — 2017-02-17 – p.5/38
(2) H m H(m) = H(m′) m′ (m′ = m)
H(m) m m′ — 3 — 2017-02-17 – p.6/38
(+ ID) TX ID (+ Merkle ) ( ) —
3 — 2017-02-17 – p.7/38
SHA-256 × SHA-256 SHA-256 × RIPEMD-160 scrypt ( ) Ethash
(Dagger-Hashimoto ) DAG : Directed Acyclic Graph ( ) — 3 — 2017-02-17 – p.8/38
— 3 — 2017-02-17 – p.9/38
(RSA) RSA ECDSA ( DSA : Digital Signature Algorithm) —
3 — 2017-02-17 – p.10/38
: < , > : : < , , >
: OK NG — 3 — 2017-02-17 – p.11/38
( ) — 3 — 2017-02-17 – p.12/38
M A 60BTC — 3 — 2017-02-17 – p.13/38
: y2 = x3 + ax + b 3 X
A + B = D A + A + . . . = nA A B C D — 3 — 2017-02-17 – p.14/38
(EC) DSA G(x, y), p, a, b nG G, p,
a, b n (n ) k(0 ≤ k ≤ n) kG, n nG — 3 — 2017-02-17 – p.15/38
ECDSA secp256k1 Certicom : 256 : 512 160 — 3
— 2017-02-17 – p.16/38
( )
[email protected]
( ) ( )
[email protected]
( )
(SFC) — 3 — 2017-02-17 – p.17/38
Base58Check 1. SHA-256 × RIPEMD-160 2. ( = 0) 3.
SHA-256 × SHA-256 4. 4 2. ( ) 5. base58 base58 10 + 26×2 - 4 (l,I,O,0) = 58 58 — 3 — 2017-02-17 – p.18/38
( ) → (malleability) — 3 — 2017-02-17 – p.19/38
2. – – (malleability) — 3 — 2017-02-17 – p.20/38
Script (General) Output: OP_DUP OP_HASH160 OP_PUSHDATA* <Public-key digest> OP_EQUALVERIFY OP_CHECKSIG
Input: OP_PUSHDATA* <Signature> OP_PUSHDATA* <Public key> TX output addressed to a public-key digest and referring input — 3 — 2017-02-17 – p.21/38
Script Processing Concatinates scripts: input → output Stack-based processing —
3 — 2017-02-17 – p.22/38
(malleability) ⇒ SegWit . . . ( 2.0 ) —
3 — 2017-02-17 – p.23/38
(1) — 3 — 2017-02-17 – p.24/38
(2) — 3 — 2017-02-17 – p.25/38
— 3 — 2017-02-17 – p.26/38
(= ) — 3 — 2017-02-17 – p.27/38
256 256 ↓ acfedf64beb9d4c1670d1d0890e3231f5effc72fc8e54c3e31035196f86ae1f0 — 3 — 2017-02-17 – p.28/38
m n OK : OP_2 <A> <B> <C> OP_3 OP_CHECKMULTISIG
: OP_DUP OP_HASH160 < > OP_EQUALVERIFY OP_EVAL : < A> < A> < C> < C> < > — 3 — 2017-02-17 – p.29/38
— 3 — 2017-02-17 – p.30/38
50% 253 50% 23 OK n 2n 2 160 80
— 3 — 2017-02-17 – p.31/38
— 3 — 2017-02-17 – p.32/38
3. – – Web of Trust — 3 — 2017-02-17
– p.33/38
( ) . . . — 3 — 2017-02-17 –
p.34/38
( ) — 3 — 2017-02-17 – p.35/38
( ) A B SA SB SA ∩ SB —
3 — 2017-02-17 – p.36/38
Web of Trust ( ) — 3 — 2017-02-17 –
p.37/38
— 3 — 2017-02-17 – p.38/38