Develop with pleasure!

福岡でCloudとかBlockchainとか。

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

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

MuSig2の集約公開鍵からの鍵導出スキームを定義するBIP-328

先日マージされたBIP-328↓は、 https://github.com/bitcoin/bips/blob/master/bip-0328.mediawiki MuSig2の集約公開鍵をベースに新たな子鍵を導出するためのスキームを定義した仕様になる。 MuSig2は、n-of-nのマルチシグに参加する複数の参加者の鍵を1つの…

タイムロック付きのFelidity bondのアドレス導出スキームを定義するBIP-46

最近マージされたBIP-46は、Join Marketで既に展開されているFelidity bondのアドレス導出スキームをBIP化したもの↓ https://github.com/bitcoin/bips/blob/master/bip-0046.mediawiki Fidelity bondとは? 元々の意味は、身元保証で、ある人物の行為によっ…

BIP-21 URIをDNSで解決する仕様の提案BIP-353

Bitcoinで支払いをする場合、その支払先はアドレスという形で提供され、それをURI形式にしたのがBIP-21↓ techmedia-think.hatenablog.com BIP-21のURIは、bitcoin:の後にアドレスやその他の情報がエンコードされる。ただ、アドレスも人が読みやすい/覚えやす…

BitVMX

BitVMXは、少し前にRootstockLabsが発表したBitVMベースの新しい設計↓ https://bitvmx.org/files/bitvmx-whitepaper.pdf BitVMファミリー 最初に発表されたBitVMは、任意の計算処理について回路を構成し、それをTaprootのスクリプトツリーとしてエンコードし…

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

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

OP_CATの再導入の提案BIP-347

TapscriptでOP_CAT opcodeを利用可能にしようという提案のBIPがBIP-347として登録された↓ https://github.com/bitcoin/bips/blob/master/bip-0347.mediawiki OP_CATとは OP_CAT opcodeは、スタックから上位2つの要素をポップし、それらを連結した値をスタッ…

BitcoinのP2Pネットワークにおけるトランザクションパッケージのリレー(BIP-331)

BitcoinのP2Pネットワークにおいて、トランザクションパッケージのリレーをサポートするBIP-331が先日登録された↓ https://github.com/bitcoin/bips/blob/master/bip-0331.mediawiki トランザクションリレーとmempool 現状のBitcoinのトランザクションリレー…

BitVM 2

Bitcoin上で任意のプログラムの検証を可能にするBitVMについて↓ techmedia-think.hatenablog.com この提案では、チャレンジ&レスポンスを行えるのはコントラクトに参加する二者に限定されていたけど、これを マルチパーティ構成に拡張し、 さらに一連のチャ…

Bitcoinのブロック1,983,702 問題

Bitcoin Optechのニュースレター#296で、コンセンサスクリーンアップの提案が再検討されているという話の一部に、ブロック1,983,702問題が取り上げられていたので、その内容について。 BitcoinのUTXOは、そのアウトプットが含まれるトランザクションのTXIDと…

ASMapファイルを作成してみる

Bitcoin Coreはv0.20.0からASMapを利用したアウトバウンドピアの選択をサポートしている↓ Bitcoin Core 0.20.0でASマップを使ったピア選択を有効にする - Develop with pleasure! このASMapを作成して配布するプロセスについて最近投稿されていたので↓ delvi…

Vault用のopcodeの導入を提案するBIP-345

少し前に、BitcoinでVaultを実現するために2つのopcodeを導入するソフトフォークの提案がBIP-345として登録された↓ https://github.com/bitcoin/bips/blob/master/bip-0345.mediawiki Vaultとは? Vault(金庫)は、その名前から分かるようにビットコインを…

Bitcoin Coreに実装された変異ブロックの早期検証

最近Bitcoin Coreにマージされた変異ブロックに対する早期検証ロジック↓ github.com 変異ブロックとは? 変異ブロック(Muted Block)とは、新しく生成された有効なブロックの一部を変更した無効なブロックではあるけど、ハッシュ値が元のブロックと同じブロ…

Ristretto Group

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

v3トランザクションリレー

最近Bitcoin Coreにv3トランザクションリレーポリシーのPRがマージされたので↓ github.com v3トランザクションリレーについてまとめてみた。 トランザクションの手数料引き上げ方法と課題 Bitcoinでブロードキャスト済みのトランザクションの手数料を引き上…

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

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

Bitcoin Core v22.0未満に存在したブロック遅延バグの開示

Optechのニュースレターに掲載されていた、Delving Bitcoinフォーラムで開示されたBitcoin Core v22.0より前のバージョンに存在したブロック遅延攻撃を可能にする脆弱性↓ https://delvingbitcoin.org/t/block-stalling-issue-in-core-prior-to-v22-0/499 脆…

Repairable Threshold Scheme

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

btcdで発見された相対的タイムロックのコンセンサスバグ

先日、Delving Bitcoinで開示された、btcdで発見された相対的タイムロックのコンセンサスバグについて↓ https://delvingbitcoin.org/t/disclosure-btcd-consensus-bugs-due-to-usage-of-signed-transaction-version/455 相対的タイムロック トランザクション…

CLN v23.02〜v23.05.2に影響したDoS脆弱性

Core Lightnig v23.02〜v23.05.2に影響した脆弱性について、最近内容が開示された↓ DoS disclosure: Channel open race in CLN - Implementation - Delving Bitcoin ので、内容を確認してみる。詳細は報告者のブログ記事で説明されている↓ morehouse.github.…

BitcoinのP2P層の通信を暗号化するBIP-324

これまでBitcoinのP2Pレイヤーの通信は暗号化されておらず平文でメッセージがやりとりされている。基本的にBitcoinの場合、ブロックやトランザクションなどのデータは誰もが共有する台帳データで機密性のあるデータではないから。 ただ、リレーされるデータ…

LND v0.14.0とv0.15.0で修正された2つの脆弱性

最近、過去(2021年)のLND実装のサービス拒否の脆弱性が公開されてたので見てみる↓ Denial-of-service bugs in LND's channel update gossip handling - Implementation - Delving Bitcoin (最近は、Delving Bitcoinフォーラムでの議論も増えてるっぽい。…

現在のBitcoinのUTXOセットの内訳

現状のBitcoinのUTXOセットについて、その内訳を調べてみた。 UTXOセットのダンプ Bitcoin Coreを実行すると、chainstateディレクトリ以下のLevelDBのファイルにUTXOセットのデータが格納される。LevelDBは基本的に1つのプロセスしかDBファイルを開けないの…

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とか)、持続可能なインセンティブを持たせるため、…

GG18/20で発見された脆弱性CVE-2023-33241

GG18のプロトコルについて、ざっと確認したので↓ techmedia-think.hatenablog.com 秘密鍵を抽出できるという脆弱性CVE-2023-33241の内容について見ていく。ペーパーは↓ https://eprint.iacr.org/2023/1234.pdf 攻撃を成功するためには、攻撃者は署名プロセス…

閾値ECDSA署名プロトコルGG18

GG18/GG20の脆弱性CVE-2023-33241が今年の夏くらいに公開されていた模様↓ www.fireblocks.com GG18/GG20は閾値ECDSA署名をサポートするMPCプロトコルで、ブロックチェーン界隈のMPC系のウォレット実装でよく利用されているらしい。CVE-2023-33241は、この2つ…

Bitcoin上で任意の計算の検証を可能にするBitVM

ZeroSyncのRobin Linusが、先日、Bitcoinで(現状opcodeとして存在しないような計算を含む)任意のロジックのコントラクトを表現できるようにする提案BitVMを発表した↓ https://bitvm.org/bitvm.pdf BitVMの仕組み 世の中にはたくさんのプログラムが存在する…

Simple Taproot Channel(Part 3)

Simple Taproot Channelの提案について、これまで チャネルの開設フロー↓ techmedia-think.hatenablog.com 支払いの転送フロー↓ techmedia-think.hatenablog.com とみてきたので、最後はチャネルの閉鎖フローの変更点について↓ https://github.com/lightning…

Simple Taproot Channel(Part 2)

前回の記事では、Simple Taproot Channelの開設ステップを見てきたので↓ techmedia-think.hatenablog.com 今回は、支払い(HTLC)の転送の変更点についてみていく。 https://github.com/lightning/bolts/blob/e25132d8de0164224578964fcd3f7328ddfc3281/bolt…