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
ブロックチェーン連続講義 第2-4回 暗号技術のリテラシー / Cryptography Li...
Search
Kenji Saito
PRO
August 12, 2016
Technology
2
630
ブロックチェーン連続講義 第2-4回 暗号技術のリテラシー / Cryptography Literacy
ブロックチェーンハブ主催で開催している第2期ブロックチェーン連続講義の第4回「暗号技術のリテラシー」のスライドです。2016年8月12日(金) に使用しました。
Kenji Saito
PRO
August 12, 2016
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
デジタルトランスフォーメーションと民主主義 / Digital Transformation and Democracy
ks91
PRO
0
5
We Never Took the Kobayashi Maru Test Until Now. What Do You Think of Our Solutions? — Journeys of the Mind Through a No-Win Game
ks91
PRO
0
17
思いつきが武器になる:研究というゲームを始めよう / Ideas Are Your Equipments : Let the Game of Research Begin!
ks91
PRO
0
75
ロボットを雰囲気(ヴァイブ)でプログラミングするこどもたち / Children Vibe-Programming Robots
ks91
PRO
0
22
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 3
ks91
PRO
0
31
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 2
ks91
PRO
0
33
アカデミーキャンプ 2025 SuuuuuuMMeR「燃えろ!!ロボコン」 / Academy Camp 2025 SuuuuuuMMeR "Burn the Spirit, Robocon!!" DAY 1
ks91
PRO
0
160
未来へのフォワードキャスト / Forward Cast to the Future
ks91
PRO
0
88
発表と総括 / Presentations and Summary
ks91
PRO
0
62
Other Decks in Technology
See All in Technology
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
110
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
560
Automating Web Accessibility Testing with AI Agents
maminami373
0
1.3k
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.1k
人工衛星のファームウェアをRustで書く理由
koba789
15
7.9k
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
850
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
930
Android Audio: Beyond Winning On It
atsushieno
0
300
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
450
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
430
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
220
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Side Projects
sachag
455
43k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Docker and Python
trallard
45
3.6k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Faster Mobile Websites
deanohume
309
31k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Designing for Performance
lara
610
69k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Transcript
2 4 SFC / CSO
[email protected]
— 2016-08-12 – p.1/38
Bitcoin (2014-06-02) http://www.slideshare.net/kenjiurushima/20140602-bitcoin1-201406031222 — 2016-08-12 – p.2/38
1. 2. 3. — 2016-08-12 – p.3/38
1. – – — 2016-08-12 – p.4/38
(1) — 2016-08-12 – p.5/38
(2) H m H(m) = H(m′) m′ (m′ = m)
H(m) m m′ — 2016-08-12 – p.6/38
(+ ID) TX ID (+ Merkle ) ( ) —
2016-08-12 – p.7/38
SHA-256 × SHA-256 SHA-256 × RIPEMD-160 scrypt ( ) Ethash
(Dagger-Hashimoto ) DAG : Directed Acyclic Graph ( ) — 2016-08-12 – p.8/38
— 2016-08-12 – p.9/38
(RSA) RSA — 2016-08-12 – p.10/38
: < , > : : < , , >
: OK NG — 2016-08-12 – p.11/38
— 2016-08-12 – p.12/38
M A 60BTC — 2016-08-12 – p.13/38
: y2 = x3 + ax + b 3 X
A + B = D A + A + . . . = nA A B C D — 2016-08-12 – 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 — 2016-08-12 – p.15/38
ECDSA secp256k1 Certicom : 256 : 512 160 — 2016-08-12
– p.16/38
( )
[email protected]
( ) ( )
[email protected]
( )
(SFC) — 2016-08-12 – 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 — 2016-08-12 – p.18/38
( ) — 2016-08-12 – p.19/38
2. – – (malleability) — 2016-08-12 – 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 — 2016-08-12 – p.21/38
Script Processing Concatinates scripts: input → output Stack-based processing —
2016-08-12 – p.22/38
(malleability) — 2016-08-12 – p.23/38
(1) — 2016-08-12 – p.24/38
(2) — 2016-08-12 – p.25/38
— 2016-08-12 – p.26/38
(= ) — 2016-08-12 – p.27/38
256 256 ↓ acfedf64beb9d4c1670d1d0890e3231f5effc72fc8e54c3e31035196f86ae1f0 — 2016-08-12 – 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> < > — 2016-08-12 – p.29/38
— 2016-08-12 – p.30/38
50% 253 50% 23 OK n 2n 2 160 80
— 2016-08-12 – p.31/38
— 2016-08-12 – p.32/38
3. – – Web of Trust — 2016-08-12 – p.33/38
( ) . . . — 2016-08-12 – p.34/38
( ) — 2016-08-12 – p.35/38
( ) A B SA SB SA ∩ SB —
2016-08-12 – p.36/38
Web of Trust — 2016-08-12 – p.37/38
— 2016-08-12 – p.38/38