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
Scriptless Scriptの仕組みとポテンシャル
Search
shigeyuki azuchi
July 21, 2018
Technology
3
1.5k
Scriptless Scriptの仕組みとポテンシャル
HashHub Conference 2018で発表したScriptless Scriptの仕組みとポテンシャルのスライドです。
shigeyuki azuchi
July 21, 2018
Tweet
Share
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
Shorのアルゴリズム
azuchi
0
13
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
12
Fiat-Shamir変換と注意点
azuchi
0
110
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
22
BIP-374 離散対数の等価性証明
azuchi
0
39
BIP-353 DNS Payment Instructions
azuchi
0
58
OP_CAT and Schnorr Trick
azuchi
0
55
Pay to Anchorと1P1Cリレー
azuchi
0
50
プロアクティブ秘密分散法
azuchi
0
72
Other Decks in Technology
See All in Technology
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
12k
Data Intelligence on Lakehouse Paradigm
scotthsieh825
0
110
コールドスタンバイ構成でCDは可能か
hiramax
0
130
Models vs Bounded Contexts for Domain Modularizati...
ewolff
0
190
AI に「学ばせ、調べさせ、作らせる」。Auth0 開発を加速させる7つの実践的アプローチ
scova0731
0
270
SwiftDataを覗き見る
akidon0000
0
210
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
AWS re:Invent 2025 を振り返る
kazzpapa3
2
120
アウトプットはいいぞ / output_iizo
uhooi
0
110
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
Node vs Deno vs Bun 〜推しランタイムを見つけよう〜
kamekyame
1
480
人工知能のための哲学塾 ニューロフィロソフィ篇 第零夜 「ニューロフィロソフィとは何か?」
miyayou
0
440
Featured
See All Featured
Information Architects: The Missing Link in Design Systems
soysaucechin
0
740
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
44
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
120
Embracing the Ebb and Flow
colly
88
4.9k
Speed Design
sergeychernyshev
33
1.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Scaling GitHub
holman
464
140k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
BBQ
matthewcrist
89
10k
The Curious Case for Waylosing
cassininazir
0
210
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.2k
Transcript
Copyright ©2018 HAW International Inc. all rights reserved. HashHub Conference
2018 Scriptless Scriptの仕組みとポテンシャル 2018/07/21 株式会社ハウインターナショナル 安土 茂亨
Copyright ©2018 HAW International Inc. all rights reserved. 自己紹介 •
株式会社ハウインターナショナル CTO • 株式会社chaintope CTO • BitcoinプロトコルのRuby実装「bitcoinrb」 • Open Assets ProtocolのRuby実装 「openassets-ruby」 • Bech32のRuby実装「bech32rb」 • 共著 「ブロックチェーン・プログラミング 仮想通貨入門」 • ブログ「Develop with pleasure!」 https://techmedia-think.hatenablog.com/
Copyright ©2018 HAW International Inc. all rights reserved. Scriptless Scriptとは?
Script(スマートコントラクト)を書くことなく、 署名技術のみでコントラクトを実現するコンセプト • 2016年 Tom Elvis JedusorがIRCにmimblewimbleというコンセプトを投稿 ◦ Txにインプットとアウトプットを持つがScriptは持たず、署名のみでコント ロールされる新しいブロックチェーンの設計 https://scalingbitcoin.org/papers/mimblewimble.txt ◦ Scriptを持たないままScriptの機能をどう持たせるか? • 2017年 Andrew PoelstraがScriptless Scriptというコンセプトを発表 https://download.wpsoftware.net/bitcoin/wizardry/mw-slides/2017-03-mit-bi tcoin-expo/slides.pdf ◦ スマートコントラクトをデジタル署名にエンコード ▪ マルチシグ ▪ クロスチェーンAtomic Swap ▪ Lightning Networkのコントラクト
Copyright ©2018 HAW International Inc. all rights reserved. Bitcoin Scriptを使ったマルチシグ
Bitcoinを使用する際に複数個の署名を必要とする仕組み 3人のうち2人の署名があればBitcoinを使用できる アリス ボブ キャロル 2 <アリスの公開鍵> <ボブの公開鍵> <キャロルの公開鍵> 3 CHECKMULTISIG 2-of-3のマルチシグスクリプト scriptPubKey 0 <アリスの署名> <キャロルの署名> scriptSig
Copyright ©2018 HAW International Inc. all rights reserved. 前提となるSchnorr 署名
公開鍵と署名の集約特性を持つデジタル署名方式 • 楕円曲線のジェネレータ: G • 秘密鍵: x • 公開鍵: P = xG • ハッシュ関数: H() • メッセージ: m 【署名の生成】 1. ランダムなnonce k を選択 2. kを秘密鍵として楕円曲線上の点R = kGを計算 3. s = k + H(P, R, m)x を計算 4. (R, s)が署名データ 【署名の検証】 sG = R + H(P, R, m)P が成立するか検証 Bitcoinへの導入の提案もスタート https://github.com/sipa/bips/blob/bip-schnorr/bip-schnorr.mediawiki
Copyright ©2018 HAW International Inc. all rights reserved. Schnorr でマルチシグ
• 鍵ペア P1 = x1G • nonce R1 = k1G • 鍵ペア P2 = x2G • nonce R2 = k1G マルチシグの公開鍵 P = P1 + P2 にコインをロック ※Pに対応する秘密鍵は誰も知らない Pにロックされたコインをアンロックする際の署名 (署名に使用する R = R1 + R2) ① s1 = k1 + H(P, R, m)x1 を計 算 ① s2 = k2 + H(P, R, m)x2 を計 算 ② s = s1 + s2 = k1 + k2 + H(P, R, m)(x1 + x2)を計算 署名データは(R, s) ※ 署名は各ユーザーが計算した各 s値の加算することで計算できる ③ sG = R + H(P, R, m)P を検証
Copyright ©2018 HAW International Inc. all rights reserved. Scriptlessマルチシグのメリット •
母数が巨大なマルチシグであっても、ロックスクリプトは 単一の公開鍵になる。 • アンロックする際に必要な署名は、署名者数分の署名は 必要なく、単一の署名のみ。 • ブロックチェーン上のトランザクションを見ても通常の公開 鍵宛の支払いトランザクションに見え、マルチシグを使っ ているかどうかは当事者以外分からない。 ※ Rogue-key攻撃への対応は必要
Copyright ©2018 HAW International Inc. all rights reserved. Bitcoin Scriptを使ったAtomic
Swap HTLC(Hashed Time Lock Contract) シークレットとタイムロックを利用したAtomic Swapプロトコル アリスはLitecoin上でシークレットAを公開してLTCを入手し、 ボブは公開されたAを使ってBTCを入手する。 ※コインを入手する際にスクリプトは公開されブロックチェーンに記録されるため、 HTLCを行ったことは誰もが知ることになる アリスはBitcoinを以下のアンロック条件のスクリプトに送る。 • H(A)のプリイメージ=シークレットAが分かればボブは BTCを入手できる。 • 10日経過したらアリスはBTCを入手できる。 Secret A H(A) ボブはLTCを以下のアンロック条件のコントラクトに送る。 • H(A)のプリイメージ=シークレットAが 分かればアリスはLTCを入手できる。 • 5日経過したらボブはLTCを入手できる。 BTC/LTCを交換
Copyright ©2018 HAW International Inc. all rights reserved. Adaptor Signature
Atomic Swapで必要なハッシュのプリイメージの交換を 代替するのがAdaptor Signature • 通常のSchnorr署名 (R, s) : s = k + H(P, R, m)x • Adaptor Signature (R, s’, T): s’ = k + t + H(P, R, m)x ※いずれもRは同じ値 Adaptor Signature s’ と 署名 s が揃うと t が計算できる s’ - s = t T = tG → tがプリイメージ、Tがハッシュの代替
Copyright ©2018 HAW International Inc. all rights reserved. ③ アリスはランダムなシークレットt
(T = tG)を生成し、マルチシグの 署名を作成するヒントが入ったAdapter Signatureを作ってボブに送る。 ※ 両方のチェーンでそれぞれのPとRを使って同様のことを行う。 このとき同じ t を使用する。 s’ = k1 + t + H(P, R, m)x1 Adaptor Signatureを使ったAtomic Swap BTC/LTCを交換 (R, s', T) ②各チェーンで相手に送金する未署名のTxを作成 T = tG ④ ボブはマルチシグの署名データの一部をアリスに渡す sB = k2 + H(P, R, m)x2 ⑥ ボブはアリスの署名 s を使って t の値を知る。 t = s’ + sB - s t が分かるとマルチシグをアンロックするのに必要な アリス側の署名を計算できる。 sA = s’’ - t これでもう1方のチェーンのコインを入手する。 ⑤アリスはボブから受け取ったsBを使って、マルチシグの署名を完成させる。 s = s’ + sB - t = k1 + k2 + H(P, R, m)(x1 + x2) 署名(R, s)を完成させコインを入手するTxをブロードキャストする。 鍵ペア P1 = x1G nonce R1 = k1G 鍵ペア P2 = x2G nonce R2 = k2G マルチシグ公開鍵 P = P1 + P2 nonce R = R1 + R2 (※ P, R は各チェーンで異なる) ① P 宛にBTCをロック ① P’ 宛にLTCをロック Tx Tx’ sB Tx’ (R, s) t
Copyright ©2018 HAW International Inc. all rights reserved. Scriptless Atomic
Swapのメリット • 各チェーンでAtomic Swapを行うトランザクションは通常 の公開鍵宛の支払いトランザクションにしか見えず、 Atomic Swapが行われたかどうか当事者以外は分から ない。 • スクリプトが無い分トランザクションサイズが若干減少 ※ Rogue-key攻撃への対応は必要 ※ OP_CLTVを使ったタイムロックの制限はできないので、 予めnLocktimeをセットした払い戻しTxの準備が必要。
Copyright ©2018 HAW International Inc. all rights reserved. Scriptless Script
with ECDSA • 2017年にYehuda Lindellが発表した論文 Fast Secure Two-Party ECDSA Signing https://eprint.iacr.org/2017/552.pdf • ↑をベースに2018年にPedro Moreno-Sanchezが ECDSAでScriptless Scriptを実現する論文を発表 Scriptless Scripts with ECDSA https://lists.linuxfoundation.org/pipermail/lightning-dev/a ttachments/20180426/fe978423/attachment-0001.pdf
Copyright ©2018 HAW International Inc. all rights reserved. ECDSA署名 •
秘密鍵: x • 公開鍵: P = xG • メッセージ: m • ハッシュ関数: H() 【署名の生成】 1. ランダムなnonce k を選択。 2. kを秘密鍵とした楕円曲線上の点 R = kGを計算。 3. 点Rのx座標をrとする。 4. を計算 5. 生成した (r, s)がECDSAの署名データ。 【署名の検証】
Copyright ©2018 HAW International Inc. all rights reserved. ECDSAでマルチシグを構成するポイント 署名(r,
s)の内、秘密鍵を使った計算をするのはsの計算↓ 秘密鍵xを2者の秘密鍵から計算する値にすると、署名は単一 だが、有効な署名を生成するためには2者の秘密鍵を必要とす るマルチシグを構成することができる。 x = アリスの秘密鍵 × ボブの秘密鍵 ※両者がお互い自分の秘密鍵を明らかにすることなく、 sを計算できる必要がある
Copyright ©2018 HAW International Inc. all rights reserved. Pにロックされたコインをアンロックするすためには が計算できればいい
ECDSAマルチシグのロック 鍵ペア P1 = x1G nonce R1 = k1G 鍵ペア P2 = x2G nonce R2 = k2G P1, R1, P2, R2を共有 P = x1 ・ P2 を計算 R = k1 ・R2 を計算 P = x2 ・ P1 を計算 R = k2 ・R1 を計算 PとRは同じ点になる P宛にコインを送金するとマルチシグへのロックとなる
Copyright ©2018 HAW International Inc. all rights reserved. 秘密計算で署名値を算出 ①アリスは、Paillier暗号用の鍵ペアを生成(
priv, pub) ※Paillier暗号は加法準同型性がある暗号スキーム ②pubを使ってアリスの秘密鍵 x1を暗号化Enc(x1)し、 pubと一緒にボブに送信 Enc(x1) pub ③ ボブは、以下の計算をして pubで暗号化 Enx(x1)を使って以下を計算 c3 = c1⊕c2を計算して、アリスに送る。 ④ アリスはc3を復号して s’ を計算 ⑤ s’をk1^-1 するとアンロックに必要な署名値 s が手に入る 両者ともに秘密鍵 x1, x2を明らかにすることなく、 マルチシグのアンロックに必要な署名値を計算できる。 1
Copyright ©2018 HAW International Inc. all rights reserved. Scriptless Script
with ECDSA • ECDSA自体にSchnorrのような鍵・署名の集約特性は ないが、準同型性のある暗号を利用した秘密計算を することで、両者の秘密情報を必要とする署名を生成 • マルチシグ以外に、Schnorrと同様、 Adaptor Signatureを使ったAtomic Swapが可能。 • Lightning Networkへの適用も 「Multi-Hop Locks for Secure, Privacy-Preserving and Interoperable Payment-Channel Networks」 https://eprint.iacr.org/2018/472.pdf
Copyright ©2018 HAW International Inc. all rights reserved. Scriptless Scriptのメリット
• Privacy/Fungibility コントラクトの中身が公開されることはなく、ブロックチェーン 上では通常の支払いと区別できない • (ちょっとした)Scalability ◦ トランザクションサイズの削減 ◦ スクリプト評価のコスト削減 • 適用性/互換性 デジタル署名技術をベースにした技術なので、ECDSAや Schnorrが利用可能なブロックチェーンであれば適用可能 (※ ECDSA版であれば各チェーンで今すぐ利用可能)