Bitcoin CashにおけるRabin Signatures
2018.09.25
BCHNews編集部
こんにちは、BCHNews編集部です。
ブロックチェーンの研究開発を手がけるnChain社は、9/13、「Rabin Signatures in Bitcoin Cash(BitcoinCashにおけるRabin署名)」と題するブログを公開し、その詳細を説明しました。
No need to add OP_DATASIGVERIFY/OP_CHECKDATASIG. Rabin signatures provide alternative way to sign & verify messages (even from outside #BCH blockchain) – in #BitcoinCash script. Restore the original #Bitcoin protocol and keep it stable. https://t.co/ufvj5rPHN3
— nChain (@nChainGlobal) 2018年9月13日
Rabin署名とは
Rabin署名(Rabin Digital Signature = RDS)アルゴリズムは、1979年にMichael Rabin氏によって開発されたデジタル署名方式の一つであり、その安全性は、モジュラー平方根を計算することが素因数分解と同じくらい困難であるという重要な観察に依存しています。
The Rabin Digital Signature (RDS) algorithm is a relatively unknown early example of a digital signature scheme developed by Michael Rabin in 1979 [1]. Its security relies on the key observation that calculating a modular square-root is as hard as integer factorisation.
引用元:https://nchain.com/app/uploads/2018/09/Rabin-Signatures-in-Bitcoin-Cash.pdf
特徴は以下の3つです。
- 署名生成にかかる計算コストは高いが、署名検証にかかる計算コストは低い。
- 署名の安全性は素因数分解の硬度にのみ依存するため、Rabin署名は、RSAとは違って存在的偽造不可である。
- ハッシュ関数Hは、公開鍵nと同様の大きさでなければならない。
a) Signature generation is computationally expensive, whereas verification of the signature is computationally cheap.
b) The security of the signature relies only on the hardness of integer factorisation.
As a result, Rabin signatures are existentially unforgeable (unlike RSA).
c) The hash function H must be of a similar magnitude to the public key n引用元:https://nchain.com/app/uploads/2018/09/Rabin-Signatures-in-Bitcoin-Cash.pdf
Rabin署名の技術的な詳細については解説が容易ではないため、興味のある方は引用元をご一読ください。
本記事では、Rabin署名が提案されるまでの経緯を紹介したいと思います。
経緯
BitcoinCashは昨年の8/1にBitcoinからハードフォークして産まれた後、アップグレードのために2017/11、2018/5とさらに2度のハードフォークが既に実施されており、2018/11にもハードフォークすることがアナウンスされています。
引用元:https://www.bitcoincash.org/
2018/11のアップグレードの内容ですが、複数存在するBitcoinCashの実装の内最もシェアの大きいBitcoinABCは、以下の3点の変更が行われると発表しています。
- OP_CHECKDATASIGと呼ばれる新しいOPコードを追加。
- Canonical Transaction Orderingの導入。
- その他修正および改善。
- A new opcode called OP_CHECKDATASIG that improves the BCH scripting language to permit the validation of messages from outside the blockchain. This will enable uses such as the use of oracles and cross-chain atomic contracts.
- The introduction of canonical transaction ordering. This is a technical building block that lays the foundation for massive scaling improvements in the future.
- Several minor technical fixes and improvements.
引用元:https://www.bitcoinabc.org/2018-08-20-announcing-bitcoin-abc-0-18-0/
しかし、これらのアップグレードに関して、ブロックチェーンの研究・開発を手掛けるnChain社のチーフサイエンティストであるCraig Wright氏は、「Satoshi Nakamotoのビジョンに反する」として反発しており、独自のプロトコルを実装したBitcoinSVをリリースすると発表していました。
そんな中、OP_CHECKDATASIGの代替手段として発表されたのがRabin署名です。
nChain社が公開したブログ記事によれば、Rabin署名を利用すれば、OP_CHECKDATASIG(=OP_DATASIGVERIFY)といった新しいOPコードを追加することなく、OP_CHECKDATASIG導入の目的であった、ブロックチェーン外から取得したメッセージの検証が行えるとのことです。
In this article we show how arbitrary messages can be signed and verified directly in Bitcoin Cash script without introducing new opcodes (such as the proposed OP_CHECKDATASIG (also known as OP_DATASIGVERIFY)). By utilising the simple algebraic structure of Rabin signatures, any piece of data placed in a transaction can be signed – even if it originates from outside the Bitcoin Cash blockchain.
引用元:https://nchain.com/app/uploads/2018/09/Rabin-Signatures-in-Bitcoin-Cash.pdf
また、nChainの方針に賛同していたCOINGEEKは、「OP_CHECKDATASIG(=OP_DATASIGVERIFY)は、オリジナルのBitcoinプロトコルの一部ではない。」と述べ、BitcoinCashのスクリプト内で直接任意のメッセージを署名する方法としてRabin署名を紹介しています。
The problem is this: the two opcodes are not part of the original Bitcoin protocol. As Reddit user moosapor pointed out, OP_CHECKDATASIG “is an almost exact line-by-line copy of a little-known, yet fairly mature opcode called OP_CHECKSIGFROMSTACK” that was implemented in Blockstream’s Elements project. OP_DATASIGVERIFY may look like “an independent development” from BU, but its function is fundamentally the same.
引用元:https://coingeek.com/use-rabin-signatures-sign-verify-messages-bitcoin-bch-script/
さいごに
今回は、Rabin署名が提案されるまでの経緯を紹介しました。
今後気になる動きがあれば、またお伝えします。
最新情報はこちら
BCHNewsでは公式のTwitterアカウント(@bchnews_jp)を開設しました。
更新情報を配信しておりますので、よろしければフォローしていただけると嬉しいです。
この記事のカテゴリ
この記事のタグ
BCHNews編集部
BCHNews編集部です。
日々更新される暗号通貨関連のニュースを読者の皆様にお届けします。