Bitcoin CashにおけるRabin Signatures

2018.09.25

BCHNews編集部

こんにちは、BCHNews編集部です。

 

ブロックチェーンの研究開発を手がけるnChain社は、9/13、「Rabin Signatures in Bitcoin Cash(BitcoinCashにおけるRabin署名)」と題するブログを公開し、その詳細を説明しました。

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編集部です。
日々更新される暗号通貨関連のニュースを読者の皆様にお届けします。

関連記事

bookchain – BCHのブロックチェーンを利用した書籍保存サービスを紹介します

2018.11.28

by BCHNews編集部

11月のBitcoinCashのハードフォークについて 〜 Bitcoin SV 〜

2018.10.02

by BCHNews編集部

Tokenshuffle – BitcoinCashを匿名化する新しいプロトコルを解説します

2018.10.24

by BCHNews編集部

Bitcoin Unlimitedの開発者、Bitcoinスクリプトの拡張を提案

2018.11.21

by BCHNews編集部