Bitcoin上でNFTを取引可能にするOrdinalのDEX「OpenOrdex」がリリースされてたのでみてみる↓ github.com Dockerfileが提供されてるので、ビルドして実行するとローカル環境にOrdinalのDEXが起動する↓ Inscriptionの取得 Inscriptionは、Inscription numberを…
先日書いたCodex32について↓ techmedia-think.hatenablog.com 手計算可能と書いたけど、チェックサムの生成や、シェアの正しさの検証、追加シェアの導出やシェアを使ったリカバリーが本当に手計算可能なのか?実際にやってみる。やり方は、この冊子にまとめ…
Bitcoinの主要ウォレットはBIP-32 HDウォレットをサポートしており、単一のマスターシードから、支払いや受け取りに使用するすべての鍵を導出するようになっている。オンチェーンの資金は、基本的にこのマスターシードだけ保持していれば、そこからリカバリ…
多項式コミットメントの1つであるKZG commitmentについて↓ techmedia-think.hatenablog.com より詳しく理解するためにRubyで実装してみた↓ https://github.com/azuchi/kzg/ セットアップ KZG commitmentはまず最初に公開パラメーターを生成する。これは基本…
先日、Bitcoinのウォレットからラベルをエクスポートしたりインポートするためのフォーマットを定義したBIP-329が公開されたので見ておく↓ https://github.com/bitcoin/bips/blob/master/bip-0329.mediawiki BIP-32のHDウォレットやBIP-39のようなニーモニッ…
楕円曲線を使用したPedersen CommitmentやBLS署名など、誰もその離散対数を知らない点を利用する暗号プロトコルを最近よく見かける。ただ、プロトコルの説明では、そのような点の導出方法があまり詳しく書かれていなかったりすることもあり、アルゴリズムの…
Bitcoinで新しいトランザクションリレープロトコルの提案Erlayをサポートするために必要な、新しいP2Pメッセージを定義したBIP-330が公開されてたので見てみる↓ https://github.com/bitcoin/bips/blob/master/bip-0330.mediawiki BIP-330では、以下の5つの新…
少し間が空いたけど、 techmedia-think.hatenablog.com の障害からそんなに間を開けずに、再度LNDでチェーン同期ができなくなる障害が発生したので、その内容をまとめておく。 障害の原因 障害のトリガーとなったは、500,142 byte(125,109 vbyte)のこのト…
Bitcoinの新しいトランザクションリレープロトコルの提案Erlay↓ techmedia-think.hatenablog.com のコアとなる実装の1つがMinisketch。 Minisketchは、2つの集合の対称差を求めるアルゴリズムPinsketchを実装したライブラリ。つまりAとBという2つの集合があ…
techmedia-think.hatenablog.com ↑のアセットの新規発行に続いて、アセットを送付しようと思ったけど、その前にアセットを受け取る際に必要になるTaroのオンチェーンアドレス仕様について見ておく。 Taroアドレス Taroのアセットを受け取る際のアドレスは既…
前回の記事でTaroのアセットツリーの構造を確認したので↓ techmedia-think.hatenablog.com 今回は、Taroでのアセット発行の仕組みをRubyで実装しながらみていく。 tarocliを使ったアセットの発行 tarocliのassets mintコマンドを利用するとアセットを新規発…
lnd v0.15.1-beta以下で発生したlndでチェーンの同期ができなくなる不具合↓についてまとめておく。 github.com 正確には、btcdの不具合↓ github.com 障害の内容 今回発生した障害は、lndでブロックチェーンの同期ができなくなるというもの。そのため、その間…
検証可能なwitness encryptionという新しい暗号プリミティブを利用してDLCを構成する新しい提案のペーパーが発表されてたので↓ https://eprint.iacr.org/2022/499.pdf 「II. TECHNICAL OVERVIEW」の内容を見てみた(まだ一部よく分かってない)。 BLS署名 ペ…
ちょっと前のBitcoin Optechのニュースレターでx-only public keyの課題とその回避策について取り上げられていたので、詳しく調べてみた。 x-only public keyとは? Bitcoinに導入されたTaprootでは、署名検証に使用する公開鍵に32バイトのx-only public key…
techmedia-think.hatenablog.com techmedia-think.hatenablog.com ときたので、残りのRecoverおよびDeactivate操作をアンカリングしてみる。 Recover操作 Recoverは、Update Keyの更新とRecovery Key自体の更新および、DID State Patcheで定義したDID Docume…
前回の記事でIONのDIDを登録したので↓ techmedia-think.hatenablog.com 今回は、登録したDIDの鍵を更新するUpdate操作をアンカリングしてみる。 Update操作 Update操作は、現在DIDに紐付けられているUpdate Keyを使ってDID Documentの更新(署名鍵やservice…
前回は、IONのDIDを生成した↓ techmedia-think.hatenablog.com ↑では、DID Documentを生成し、IONのプロトコルに沿って識別子であるDIDを計算したけど、実際にこれだけだとローカルで計算してるだけなので、続いて、このDIDをCAS(Content Addressable Stora…
先日、Blockstreamのブログ記事↓で、非対話型のSchnorrの署名集約スキームについて知ったので、 medium.com ↑にリンクされているドラフトBIPに記載されていた↓のペーパーを斜め読みしてみた。 https://eprint.iacr.org/2022/222.pdf Schnorr署名の集約と言え…
IONはMSが中心になって開発したDIDのプロトコルの1つ(did:ion)。実体は、アンカリング先のブロックチェーンにBitcoin、Content-Addressed Storage System(CAS)ノードにIPFSを用いたSidetreeプロトコルになる。この他にアンカリング先をEthereumにしてSid…
Bitcoin Coreでは、User-space Statically Defined Tracing(USDT、※Tetherではない)ベースのトレースポイントが提供されており、Linux環境で動作するBitcoin Coreでは、このトレースポイントを使って、内部のデータにアクセスできるようになっている。 Bit…
前回、MWEBチェーンへのペグインまで行ったので↓ techmedia-think.hatenablog.com 今回は、MWEBチェーン上でMWトランザクションを使った送金をしてみる。 MWEB上での送金 新しいmwebタイプのアドレスを作成し、そこに送金する↓ $ ./litecoin-cli sendtoaddre…
LitecoinはExtension Blockという手法を使ってMimblewimbleを導入し(MWEB)、mainnetで2022年5月22日にアクティベートされた。今回はそんなMimblewimbleを試してみる(mainnetじゃなくtestnetだけど)。 トランザクション構造が全く異なるMimblewimbleをソ…
Lightning Labsが発表したBitcoin上の新しいアセットプロトコルTaroについて、今回はTaroのアセットツリー周りのデータ構造/表現についてみていく。 Taroのアセットツリー Taroは、Taprootを利用したアセットのオーバーレイプロトコルになる(Taprootベース…
最近公開された、Fiat-Shamir変換を正しく適用できていないプロトコルや実装において、証明システムの偽造が可能になる脆弱性「Frozen Heart」について↓ blog.trailofbits.com Fiat-Shamir変換とは? Fiat-Shamir変換は、証明システムを非対話型にするために…
Bitcoinのウォレットなどが、単一のマスターシードから多数の鍵ペアを決定論的に導出する仕様を定義したのがBIP-32↓ techmedia-think.hatenablog.com これは、Bitcoinが採用している楕円曲線secp256k1とECDSAを前提に作られた仕様になる。 これに対して、EdD…
先日、Olaoluwa Osuntokunが発表したTaprootを利用したアセットオーバーレイプロトコルTaro↓ https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-April/020196.html 今回はその構成要素の1つであるMerkle Sum Sparse Merkle Tree(MS-SMT)の仕…
Lightning Networkなどの現在主流のペイメントチャネルプロトコルはいずれも2人で1つのUTXOの所有権を管理するプロトコルだけど、N(N > 2)人で1つのUTXOの所有権を管理できるようにするプロトコルがCoinPoolで、少し前にホワイトペーパーが公開された↓ので…
最近オフチェーンプロトコルのプライバシーを向上させるために、オンチェーンウォレットで実装が推奨されるポリシーが、BIP-326として定義された↓ https://github.com/bitcoin/bips/blob/master/bip-0326.mediawiki Informational BIPなのでコンセンサスに影…
SMART Health Cardは、COVID-19のワクチン接種や検査結果を検証可能な方法で提示できることを直近の目標としたヘルスカードのフレームワーク。長期的には予防接種やその他の健康情報なんかもサポートする計画らしい。これらの証明について、組織や国を超えて…
TaprootのアクティベートによりBitcoinでもSchnorr署名が利用可能になったけど、Schnorr署名をメリットの1つはマルチシグの署名を単一の署名に集約できる集約特性があることで、この恩恵を受けるためにはこのようなマルチシグを扱うウォレットの開発が必要に…