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
Adaptor Signatureを利用した Atomic Swap - ECDSA 版 -
Search
shigeyuki azuchi
January 24, 2019
Technology
240
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Adaptor Signatureを利用した Atomic Swap - ECDSA 版 -
GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2019/01/adaptor_signature-ecdsa/
shigeyuki azuchi
January 24, 2019
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
SLH-DSA (SPHINCS+)
azuchi
0
19
Hyper Tree
azuchi
0
22
FORS
azuchi
0
35
クラスターmempool
azuchi
0
44
W-OTS+
azuchi
0
50
Shorのアルゴリズム
azuchi
0
72
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
58
Fiat-Shamir変換と注意点
azuchi
0
270
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
72
Other Decks in Technology
See All in Technology
Rust で関数型ドメインモデリング
takonda
0
170
AI駆動で「他アプリの音を加工できる」アプリを作った
satomasahiro2005
0
180
1つのリクエストを追って理解する - llm-dのP/D分離
akhino
1
170
専門領域のAIをどう評価するか
bengo4com
2
300
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
370
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
2
150
大型犬好きによるPugの紹介
yamanoku
1
160
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
170
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
8
3.1k
エンタメ企業のM&Aを支えるデータ基盤 ― 統合から店舗のリアルタイム分析まで / Data Engineering Summit 2026
genda
0
200
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
840
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Evolving SEO for Evolving Search Engines
ryanjones
0
330
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
560
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
53
4k
Six Lessons from altMBA
skipperchong
29
4.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Transcript
Adaptor Signatureを利用した Atomic Swap - ECDSA 版 -
1 Scriptless Scripts with ECDSA 2018年4月にPedro Moreno-Sanchezらが ホワイトペーパーを公開 https://lists.linuxfoundation.org/pipermail/lightning-dev/attac hments/20180426/fe978423/attachment-0001.pdf
• 前提知識 ◦ Adaptor Signatureを利用したAtomic Swap - Schnorr版 - https://goblockchain.network/2018/12/adaptor_signature/ ◦ 高速で安全な2者間のECDSA署名 https://goblockchain.network/2018/10/ecdsa_2-of-2_multisig/
2 ECDSA署名 • 楕円曲線の生成点:G • 秘密鍵:x、公開鍵:P = xG • 暗号学的ハッシュ関数:
H • メッセージダイジェスト: m 【署名の生成】 • ランダムなnonce kを選択する。 • R = kGを計算する(Rは楕円曲線上の点)。 • 点Rのx座標をrとする。 • • (r, s)が署名データ 【署名の検証】 秘密鍵 x の情報を知らなければ、 この式を満たす s は導出できない。 を計算し、その点のx座標がrと 一致するか検証する。 sの構成上、Schnorr署名のような 線形性がないため、署名の集約 スキームは持たない。 を計算する。
3 Scriptless Multisig with ECDSA 鍵ペア P1 = x1G nonce
R1 = k1G Pにロックされたコインをアンロックするすためには が計算できればいい 鍵ペア P2 = x2G nonce R2 = k2G P1, R1, P2, R2を共有 P = x1 ・ P2 を計算 R = k1 ・R2 を計算 P = x2 ・ P1 を計算 R = k2 ・R1 を計算 計算した点Pと点Rはそれぞれ同じ点になる P宛にコインを送金するとマルチシグへのロックとなる
4 Adaptor Signature with Schnorr Adaptor SignatureはAtomic Swapで必要な ハッシュのプリイメージとコインの交換を代替する署名テクニック •
通常のSchnorr署名 (R, s): R = kG、s = k + H(P, R, m) x • Adaptor Signature (R, s’, T): R = kG, s’ = k + t + H(P, R, m) x, T = tG ※ Rは同じ値 t がハッシュのプリイメージの代替でランダムに選択した数値 Tはtを秘密鍵とした楕円曲線上の点=公開鍵でハッシュの役割をする Adaptor Signature s’とsが揃うとそこからtを計算できる。 t = s’ - s
5 Adaptor Signature with ECDSA ECDSAの署名データには線形性は無いので Rにシークレットの値を加味して、Atomic Swapを実現する • 通常のECDSA署名
(R, s’): R = kG、 • Adaptor Signature 署名生成時に選択するnonceにシークレットaを含める。 (R, s): R = akG, s’とsが揃うとそこからaを計算できる。 a = s’/ s
6 Adaptor Signatureを使ったAtomic Swap Bitcoin Litecoin • 鍵ペア P1 =
x1G • nonce R1 = k1G • Paillier暗号の鍵ペア (Priv, Pub) • 鍵ペア P2 = x2G • nonce R2 = k2G • 鍵ペア P4 = x4G • nonce R4 = k4G • 鍵ペア P3 = x3G • nonce R3 = k3G P = x1P2 = x2P1 ① 1 BTCをロック P’ = x3P4 = x4P3 ② 10 LTCをロック ③ ボブはランダムなシークレット aを選択し、 A = aGを計算し、アリスに送る。 ⑥ R'を使って R = k1R’ を計算する。 ⑥ ボブも R = (a * k2)R1を計算する。 Rのx座標をrとする。 ⑧ を計算し、 を計算し、C3をアリスに送る。 ④ Paillier暗号の公開鍵Pubでx1を 暗号化したckey = Enc(x1)を ボブに送る。 ⑤ R' = k2Aを計算してアリスに送る。 R ④ Paillier暗号の公開鍵Pubでx4を 暗号化したckey’ = Enc(x4)を ボブに送る。 ⑤ T’ = k3Aを計算してアリスに送る。 ⑥ T'を使って T = k4T’ を計算する。 ⑥ ボブも T = (a * k3)R4を計算する。 Tのx座標をtとする。 T C3 Tx(m) ⑦ BTCをボブに送るTxから 署名対象のメッセージ mを生成し共有 ⑦ LTCをアリスに送るTxから 署名対象のメッセージ m’を生成し共有 Tx(m’) ※ この時、R'、T'がAから算出されていることを 証明するゼロ知識証明を必要とする。 ※ RもTも同じシークレット aが使われていることが重要 有効な署名をそれぞれのチェーンで構成するにあたって aの知識が必要となる。
⑫ アリスはボブがブロードキャストした トランザクションから sの値が分かるので、 それとs’’を使ってシークレット aを計算する。 7 Adaptor Signatureを使ったAtomic Swap
Bitcoin Litecoin ⑪ s’’とシークレットaを使ってsを計算する。 算出した(r, s)がボブがBitcoinを受け取る トランザクションの有効な署名になる。 ボブはTx(m)をブロードキャストし、 BTCを手に入れる。 ⑩ C3を復号し、s’を得る。 s’とk1を使ってs’’を計算し、 ボブに送る。 ⑬ アリスはu’’とaを使って、アリスが Litecoinを受け取るトランザクションの 有効な署名を完成させる。 Tx(m) (r, s) a ⑨ を計算し、 を計算し、C3’をアリスに送る。 Tx(m’) (t, u) ⑩ C3’を復号し、u’を得る。 u’とk4を使ってu’’を計算する。 C3’
8 まとめ • Adaptor Signatureはハッシュのプリイメージの交換を 代替する署名エンコード • タイムロックの仕組みはないので、予めnLocktimeを セットした払い戻し用のトランザクションを準備しておく 必要がある。
• オンチェーン上では、単純なアドレス(P2PKHのような) 宛の送金トランザクションに見えるだけで、 Atomic Swapが行われたことは当事者以外分からない。 • スクリプトのサイズ分手数料が安価に。 • ECDSAで現時点で利用可能