Develop with pleasure!

福岡でCloudとかBlockchainとか。

Cryptography

AADPベースのWitness Encryption

先日Delving Bitcoinに投稿されたBitcoin PIPEs v2↓ delvingbitcoin.org これは、Witness Encryptionを使ってBitcoinの署名鍵へのアクセスに条件を付けることで、オンチェーンでは単一のSchnorr署名の検証をするだけだけど、その署名を生成するために必要な…

BitVMのストレージ要件を劇的に改善する提案Argo

先日書いたBitVM 3sは↓ techmedia-think.hatenablog.com SNARK証明の検証をFraud proofベースで行う仕組み。 SNARKの検証というのは、具体的にはGroth16とかであれば楕円曲線を用いたペアリングの演算を行うことになる。EthereumではBN254やBLS12-381で動作…

Garbled Circuitを利用した効率的なSNARK検証を提案するBitVM 3s

BitVM 3について、以前以下の記事を書いたけど↓ techmedia-think.hatenablog.com このRSAベースのガーブリングスキームには安全性の仮定に誤りがあり取り下げられ、その後BitVM 3sという改訂版が公開された↓ https://bitvm.org/bitvm3.pdf 3sの名前は、Secur…

ブラインドMuSig2

MuSig2は、n-of-nのマルチシグを暗号技術のみで構成するSchnorrベースのスクリプトレスなマルチシグスキーム↓ techmedia-think.hatenablog.com そのブラインド版がブラインドMuSig2↓ https://github.com/halseth/ephemeral-signing-service/blob/main/doc/ge…

NTTを必要としない既存のNIST曲線を用いたゼロ知識証明

昨年Googleが公開したECDSAを利用した匿名認証のペーパーで↓、P-256などの既存のNIST曲線で動作するゼロ知識証明の仕組みが面白そうだったので読んでみた eprint.iacr.org VCと匿名性とリンク不能性 ここ数年、VC(Verifiable Credential)の活用の提案が活…

数論変換(NTT)

最近の主要なゼロ知識証明システムで、多数の多項式の演算が必要になる。多項式の加算であれば、単に同じ次数の係数同士を加算するだけなので、必要な演算回数は係数の個数分。n-1次の多項式であればO(n)の加算で済む。一方、多項式の乗算の場合、その結果の…

格子ベースのデジタル署名スキームFALCON

PQデジタル署名スキームとして、これまでSQISign、SPHINCS+、HPPK DSと見てきたので、今回は格子ベースの署名スキームFALCONについて。 格子暗号 FALCONのベースになっているのは格子暗号。格子は空間内の規則的な点の集まりを表す数学的構造で、2次元だと方…

準同型多項式公開鍵暗号ベースのデジタル署名スキーム

準同型多項式公開鍵(Homomorphic polynomial public key = HPPK)暗号は、量子耐性を持つ新しい暗号方式で、もともとは鍵カプセル化方式(KEM)として提案されたものが、その後デジタル署名に拡張されたもの↓ www.academia.edu HPPK DS HPPK DSでは、内部…

ハッシュベースのステートレスなデジタル署名スキームSPHINCS+

以前のW-OTS+の記事で少し触れたけど↓ techmedia-think.hatenablog.com NISTのポスト量子暗号の1つであるハッシュベースのデジタル署名アルゴリズムSPHINCS+は、 (↑の)W-OTS+ ハイパーツリー FORS(Forest of Random Subsets) を組み合わせてステートレス…

オンチェーンフットプリントを劇的に削減するBitVM 3

BitVM 0、BitVM 1、BitVM 2、BitVM Xに続いて、最近新たにBitVM 3が提案された↓ https://bitvm.org/bitvm3-rsa.pdf (2025.07.17追記:その後、セキュリティ仮定に誤りがあることが報告され、この論文は廃止され、RSAベースのガーブリングに代わる新たなBitV…

Garbled Circuitを利用してBitVMのオンチェーンゲート実行をオフロードするDelbrag

最近公開されたBitVM 3のヒントとなったJeremy Rubinによるドラフト論文Delbrag↓ https://rubin.io/public/pdfs/delbrag.pdf この論文では、Garbled Circuitを利用して、Bitcoin上で任意の計算の検証を可能にするBitVMを効率的に実現する方法を提案している…

3ラウンドのECDSA閾値署名プロトコルDKLS23

ECDSAベースの閾値署名というと、GG18/20あたりが有名↓ techmedia-think.hatenablog.com これらのプロトコルは加法準同型性のある暗号化方式であるPaillier暗号に依存しており、署名の生成に6ラウンドの通信を必要とする。 その後提案されたDKLS23という署名…

紛失通信とVOLE

3ラウンドECDSA閾値署名プロトコルDKLS23について調べてたいたら、そこで登場する構成要素についてまず理解しておく必要があったので、署名プロトコルにいく前に、まず紛失通信(Oblivious Transfer)とVOLE(Vector Oblivious Linear Evaluation)について…

ゼロ知識証明プロトコルLigero

Ligeroは、証明者が秘密の値を知っていることを、その秘密の値を明らかにすることなく検証者に納得させるゼロ知識証明プロトコルの一種↓ eprint.iacr.org スキームの仕組みについて、SHA-256のプリイメージを知っていることを証明するユースケースで見ていく…

Sumcheckプロトコル

今回は、zk-SNARKs/STARKsなどゼロ知識証明系のプロトコルでよく登場するSumcheckプロトコルについて。 Sumcheckプロトコルは1992年に発表された多変数多項式を利用したプロトコル。多変数多項式は複数の変数で構成される多項式で、例えば2つの変数xとyで構…

楕円曲線の点に対する部分群のメンバーシップチェック

先日Besuに存在していたBN254曲線上の点の検証ロジックのバグが開示された↓ blog.ethereum.org このバグの内容とは直接関係ないけど*1、解説の中に登場していた楕円曲線上の点が部分群に属しているかどうかのメンバーシップチェックの方法がいろいろあるよう…

単一のSchnorr署名と同サイズの集約署名を可能にするDahLIAS

少し前に発表された集約署名の新しいスキームDahLIAS↓ eprint.iacr.org 自分も異なる文脈で集約署名という言葉を使ってるので紛らわしいけど、↑の集約署名というのは、MuSigやFROSTのように複数の署名者(公開鍵)が同じメッセージに署名するマルチシグの集…

離散対数の等価性の証明の生成/検証プロトコルを定義するBIP-374

先日マージされたBIP-374↓は、楕円曲線のベースポイントGともう1つの点Bを基に、それぞれに同じスカラー値aを乗算した点A = aGと点C = aBが同じ、同じスカラー値(離散対数)aによって導出された点であることをaの値を明かすことなく証明する=離散対数の等…

Great Script RestorationとWinternitz OTS+

Great Script Restoration Great Script Restoration(GSR)は、2010年にBitcoinで無効化されたopcode群に対して、重みベースのバジェットを付与して再導入するRusty Russellの提案↓ https://github.com/rustyrussell/bips/blob/890656f624e03ebbd31560f6511…

現状のBitcoinでコベナンツを可能にするColliderScript

2010年にOP_CATを含む複数のopcodeがBitcoinで無効になり、その後の研究でこの時無効になったopcodeがあれば、実はBitcoinでコベナンツを実現できることが判明するも、無効化された現状のBitcoinでコベナンツを実現する方法はこれまでなかった。ところが最近…

ツーショットアダプター署名

アダプター署名と言えば、HTLCに代わるPTLCや、スクリプトレスなAtomic Swapを行う際に利用される暗号プリミティブ。簡単にSchnorr署名の例で説明すると*1、 鍵ペアをP = xG(P:公開鍵、x:秘密鍵、G:ベースポイント)として、メッセージmに署名する場合、…

FROST用の分散鍵生成プロトコルChillDKG

少し前に、Schnorrベースの閾値署名スキームFROST用にChillDKGという分散鍵生成スキームのBIPドラフトが発表された↓ https://github.com/BlockstreamResearch/bip-frost-dkg FROSTはShcnorrベースの閾値(t-of-n)のマルチシグに対応した署名スキームだけど…

鍵流出攻撃Dark Skippy

ハードウェアウォレットからマスターシードを流出させるDark Skippyという新しい攻撃手法が最近公開された↓ https://darkskippy.com/ 悪意ある署名デバイスによる攻撃 Dark Skippyも、ハードウェアウォレットのような署名デバイスで悪意あるファームウェアが…

量子耐性のある署名アルゴリズムSQIsign

少し前に量子耐性のある署名アルゴリズムを用いたBitcoinのアドレスフォーマットを提案するBIPドラフトが提案された↓ https://github.com/cryptoquick/bips/blob/p2qrh/bip-p2qrh.mediawiki この中で量子耐性のある署名アルゴリズムとして紹介されていたSQIs…

ECDSA署名のサイズに対するランポート署名

先月Bitcoin-Devメーリングリストに投稿されたBitcoinにランポート署名を導入する提案↓ Signing a Bitcoin Transaction with Lamport Signatures (no changes needed) 以前、OP_CATを利用した提案はあったけど↓、↑はOP_CATを必要とせず現状のBitcoinで動作す…

Ristretto Group

最近、よく見かけるRistrettoについて調べてみた↓ https://ristretto.group/ Ristrettoが解決すること Ristrettoは、楕円曲線の内、曲線上の有効な点の総数(位数)が素数ではない楕円曲線から、位数が素数となる群を構築する抽象化レイヤーを提供するための…

FROSTを利用したマルチシグの設定変更

FROSTはSchnorrベースの閾値署名方式で、プロトコルの内容については過去の記事↓やGBEC動画参照。 techmedia-think.hatenablog.com このFROSTを利用してBitcoinでマルチシグウォレットの開発を進めているFrostsnapというプロジェクト↓ https://frostsnap.com…

Repairable Threshold Scheme

最近、Schnorrベースの閾値署名スキームFROSTをベースにして、暗号技術だけでt-of-nのマルチシグの設定を動的に調整可能にする提案が行われている。その中で、母数nの数を増やす際に利用されているのが、RTS(Repairable Threshold Scheme)。 RTSは、シャミ…

IPAを利用した多項式コミットメントスキーム

Inner Product Argument(IPA)は、内積の関係を証明するプリミティブで、いくつかの証明システムに組み込まれて使用されている。IPAの解説については、GBEC動画 or 過去記事参照↓ goblockchain.network techmedia-think.hatenablog.com IPAは、多項式コミッ…

コンテンツを復号可能な鍵をアトミックに交換できるBitStream

BitVMやZeroSyncの開発者であるRobin Linusが先日公開したBitStreamのペーパー↓ https://robinlinus.com/bitstream.pdf 分散型のコンテンツホスティングネットワークに対して(最近ユーザーが増えてるNostrとか)、持続可能なインセンティブを持たせるため、…