​「シュノア署名って最近よく聞くけど知っておいた方がいいのかな?でも難しそう...」

あなたはいま、そう考えているのではないでしょうか?

たしかに、一見すると「シュノア署名」って難しそうで調べるのが億劫になりますよね。

しかし、実は、シュノア署名は誰でも簡単に理解することができます!

シュノア署名という署名技術がビットコインにまもなく実装されるかもしれないので、今のうちに絶対に理解しておきたい内容です。

この記事では、​そもそもビットコインにおいて署名とはどんな意味を持つのか、シュノア署名の概要やメリット・デメリットについて解説します。

シュノア署名をしっかり理解して、ビットコインに関する知識をさらに深めていきましょう!

ビットコインにおける署名とは​

​シュノア署名とは、その名の通り署名に関する技術です。

そもそも電子署名とは単なる署名と違ってどういうものなのか、そして現在のビットコインの取引で採用されているECDSAという署名方式について解説します。

ここをしっかり理解しておけば、後で説明するシュノア署名についての理解もグッと深まります!

そもそも電子署名とは

まず、署名とは何でしょうか?国語辞典でその意味を確認してみると

本人が自分の名を書類などに書くこと。また、その書かれたもの。

とあります。

ですので、電子署名は簡単に言えば「紙の署名ではなく、インターネット上の署名」です。

現代は、あらゆる場面においてインターネットは欠かせませんね。

普段あまり意識していないかもしれませんが、​インターネット上では、

  • 取引する相手は誰なのか
  • 別人がなりすましている可能性はないのか
  • 契約内容は信用できるのか

といった懸念があります。

電子署名は、このようなリスクを防止するための有効な技術です。電子署名のおかげで、インターネット上でも安心して取引をすることができます。​

上の図は電子署名の仕組みを表しています。

署名者とは電子文書を作成し、そこに署名する人です。まず、署名者の立場から説明します。

①まず、ハッシュ関数を用いて、電子文書のハッシュ関数を計算します。

ハッシュ関数とは、あるデータが与えられたときにそのデータを代表するような値を返す関数のことです。この時、同じハッシュ値を持つようなデータは存在せず、ハッシュ値から元のデータを推測することはできません。)

②そして、ハッシュ値を秘密鍵を用いて暗号化し、電子署名を作成します。

秘密鍵とは、署名者だけが持ち、厳重に管理される暗号鍵です。

③作成した電子署名を電子文書に添付します。

では、次に署名検証者の立場から見てみましょう。

④電子署名が添付された電子文書が署名検証者のもとへと送信されます。

⑤ハッシュ関数を用いて電子文書のハッシュ値を計算します。これは①と全く同じです。

⑥次に、電子署名を署名者の公開鍵を使用して復号します。すると、ハッシュ値が出てきます。

⑦最後に、⑤で求めたハッシュ値と⑥で求めたハッシュ値を比較します。

ここで二つのハッシュ値が一致すれば、電子文書が公開鍵に対応した秘密鍵の持ち主により作成されたことが判明します。

以上のように、電子署名は、「ハッシュ関数」と「公開鍵・暗号鍵」という2つの技術を組み合わせることで成り立っています。

従来の署名方式「ECDSA」とは

​ビットコイン等のブロックチェーンネットワークにおいても電子署名は非常に重要です。

ここでは、ビットコインのトランザクションにおいて現在採用されている「ECDSA」という署名方式を軽く説明します。

ECDSAとは"Eliptic Curve Digital Signature Algorithm"の略語で、楕円曲線DSAとも呼ばれます。

楕円曲線上の離散対数問題の難しさ」を利用して、ハッシュ関数のような一方向性を作ることで、「秘密鍵から公開鍵を生成するのは簡単だが、公開鍵から秘密鍵を求めることは極限に難しい」という状況を生み出しています。

上で説明したところの「ハッシュ関数」に、楕円曲線が数学的に絡んでいる!ということです。

シュノア署名とは 

​現在、ビットコインの署名方式は上で説明したECDSAですが、新しい「シュノア署名」へと変更されようとしています。

電子署名について、理解が深まったところで、これから本題の「シュノア署名」という技術について説明していきます。

1989年にC.P.Schnorr氏が発明 

シュノア署名は上で説明したような電子署名の一つとして、1989年頃にC.P.Schnorr氏により発明されました。そしてその署名方式は、他のどの電子署名方式よりも計算が単純でわかりやすく、セキュリティも強固だといわれています。

しかしながら、昔からあったはずのシュノア署名はビットコインにはまだ実装されていません。そこには、政治的な理由技術的な理由が絡んでいます。

上でも述べた通り、シュノア署名は1989年頃に発明されていますが、ほぼ同じタイミングでアメリカ国立技術標準研究所(NIST)という大きな研究団体がDSAという電子署名方式を提唱したことや、2008年までシュノア氏自身が取得した特許によりシュノア署名が保護されていたという政治的な理由でシュノア署名という技術自体があまり利用されてきませんでした。

それに加えて、ビットコインにシュノア署名が今まで実装されていないのには技術的な理由もあります。ビットコインの署名方式をECDSAからシュノア署名に変更するということは、トランザクションごとに署名データが保存されているという状態を変更することになります。この技術仕様の変更には、ビットコインのハードフォークが必要です。しかし、2018年8月にSegwitという新たなプロトコルがビットコインに実装されました。このSegwitを非常に簡単に説明すると、「トランザクションデータに占める割合の多い署名データを、witnessという他の領域に移動させて保存する」というプロトコルです。Segwitが実装されたことで、署名方式の変更はソフトフォークによるwitnessのマイナーチェンジだけで済みます。Segwitの実装に伴って、シュノア署名の実装が次なるビットコインのアップデートとして注目を集めるようになったのです。

ビットコインコア開発者が論文を発表

​2018年の1月15日、4名のビットコインコア開発者(注)が論文を発表しました。

この論文では、シュノア署名がビットコインのブロックチェーンのスケーラビリティ問題をいかに解決するか、が述べられています。

シュノア署名とは、「マルチ署名データをひとつに統合して、データサイズを削減する技術」であるとし、「ビットコインにおいてパーフォーマンスとプライバシーの両方を改善することは可能か」という議論に焦点が当てられています。

 

(注)4名のビットコインコア開発者

論文を発表したコア開発者はグレッグ・マックスウェル氏、アンドリュー・ポエル氏、ヤニック・セウリン氏、ピーター・ウエレ氏の4名です。

そもそも、ビットコインは「サトシナカモト」と呼ばれる謎の人物により、開発されたといわれています。ビットコインコア開発者とはサトシナカモト氏のビットコイン設計書をもとに2008年からビットコインの開発を行ってきた有志のエンジニア、ということです。ビットコインのプログラミングコードは公開されており、誰でも見ることができます。そのコードを現在も書いているのが「ビットコインコア開発者」です。

シュノア署名とECDSAの違い​

上の図では、ECDSAとシュノア署名の両方の場合において、複数の送信者から単独の受信者へと電子文書(ビットコインの場合は「送金」となります)を送るというシチュエーションを考えています。

​従来のECDSAでは、「送信者1人から受信者1人」というトランザクションごとに署名が必要でした。上の図では、3つの署名(✔)が必要です。

それに対して、シュノア署名では、トランザクション毎ではなく、受信者が単独なのでたった1つの署名(✔)で済まされています。

これが、ECDSAとシュノア署名の最大の違いです。要するに、シュノア署名では署名データのサイズを削減することができて、結果としてスケーラビリティ問題の解決につながります。

 

シュノア署名のメリット

​マルチシグ送金の署名データを1つにしスケーラビリティ問題を解決 

​「ECDSAとシュノア署名の違い」でも説明したように、シュノア署名では受信者が同一な複数のトランザクションの署名をひとつにまとめることで、署名データサイズを削減することができます。上の図からもわかるように同じトランザクションでもECDSAからシュノア署名にすることで、署名の数が3分の1で済んでいます。

これは、マルチシグ送金においてもっとも大きなメリットとなります。すでにご存じの方もいるか思いますが、マルチシグとはマルチシグネチャの略称で「トランザクションの署名に複数の秘密鍵を必要とする技術」です。例えば、公開鍵は3つ登録されていてそのうちの2つの秘密鍵があればトランザクションができるものは2of3のマルチシグといいます。この2of3のマルチシグの場合、従来のECDSAならば2つの署名が必要ですが、シュノア署名ならば、署名データを1つにまとめることができます。

最近ビットコインのスケーラビリティ問題が懸念されていますが、もしもシュノア署名が実装されれば署名データが大幅に削減されて、問題は解決に向かいます。現状のブロックサイズのままで、より多くのトランザクションを処理できるようになるのです。

「速い・安い」取引が実現

​シュノア署名はトランザクションに必要な署名の数が大幅に減るので、従来よりも素早く署名を集めることができ、取引スピードが向上します。

また、必要な署名の数が減るということは、署名データを圧縮することになり、取引にかかる手数料も安くなります

以上より、シュノア署名はビットコインに「速い・安い」取引をもたらすと言えます。

CoinJoinを使うインセンティブになりプライバシーを強化

CoinJoinとは、複数の送金を一つにまとめることで、送信者と受信者のアドレスを第三者から見られないようにする技術です。

プライバシーを強化する素晴らしい技術なのですが、あまり使われていません。現在はまだCoinJoinは利用者が少ないので、同じタイミングでまとめることができるほどのトランザクションがないので、効果的に機能しません。

皆さんはもうお気づきかと思いますが、CoinJoinは「送金を一つにまとめる」という点で非常にシュノア署名と相性のいい技術です。シュノア署名が実装されれば、CoinJoinを使う大きなインセンティブになります。その結果、取引の匿名性が増す、すなわちプライバシーが向上します。

 以下の記事の最後の方で、CoinJoinに関する記述があるので、興味のある方は是非ご覧ください!

「ニュース記事やTwitterなどのSNSで、たまに見かけるファンジビリティの意味が分からない」そんな人が多いのではないでしょうか。そんなあなたに、CoinPartnerがファンジビリティの意味やその具体的な例などをわかりやすく解説いたします!ファンジビリティを考える良い事例​として、時価約580億円相当のネムが不正送金されたハッキング事件を紹介しており、この記事を読めば、ファンジビリティの意味が分かるだけじゃなく、ビットコインなどの暗号資産(仮想通貨)に関する一歩踏み込んだ議論ができるようになること間違いなしでしょう。目次​ファンジビリティ(Fungibility​・代替性)の意味とは?暗号資産(仮想通貨)におけるファンジビリティ ファンジビリティを極めて高める暗号資産(仮想通貨)の匿名技術ファンジビリティまとめ​ファンジビリティ(Fungibility​・代替性)の意味とは?​ファンジビリティ(fungibility)とは日本語で「代替性」や「代替可能性」などと訳される経済用語です。かなり噛み砕いていうと、ある同種のモノ同士を交換したとしても、全く同じ効果や満足度を持つことができる性質のことをファンジビリティと呼ぶということです。更に具体的な例を出してみます。一番身近にあるfungible(代替可能)なものと言えば、法定通貨である日本円です。何らかの理由で1万円以上のプレミアがついている1万円札や破れた1万円札などの​例外は除外しますが、​日常生活において、あなたが今持っている1万円札とその他の人が持っている1万円札は常に同価値であり、「この1万円札は使えるけど、その1万円札は使えない」ということや、「この1万円札は過去に盗まれたことがあるから使えない」ということは起こりません。「過去に犯罪に使われたことがあるから、この1万円札は7000円分しか使えないよ」なんて言われて価値が目減りしたらたまったものじゃない上に、そもそも価値保存ができておらず、通貨として破綻しています。法定通貨にはファンジビリティがあるため、こういったことは起こらないのです。ファンジビリティを持つ他の例としては、大量生産された全く同じ機能を持つ同じ種類の家電や車、化学的に非常に安定している金や白金などが挙げられます。暗号資産(仮想通貨)におけるファンジビリティ 

 

シュノア署名のデメリット

Segwitが普及しないと導入できない

​2018年の8月にアップデートされたSegwitですが、導入率はいまだにネットワーク全体の4割弱だといわれています。先ほど説明したとおり、シュノア署名を実装するためには、あらかじめSegwitが実装されている必要があります。これはシュノア署名自体のデメリットではありませんが、実装はそう簡単なことではないということです。

そもそも非中央集権ネットワークでのアップグレードが難しい

​こちらもシュノア署名自体のデメリットではありません。Segwitの導入により、ビットコインのコミュニティ分裂などのリスクのあるハードフォークではなくソフトフォークによってシュノア署名が実装できるようになりました。しかし、ソフトフォークによる実装も簡単ではありません。そもそも、ビットコインのブロックチェーンのような非中央主権のネットワークにおいてアップグレードを行うには、開発者だけでなく、マイナーや企業といったすべてのユーザーが仕様変更に合意する必要があります。2018年1月にビットコインのコア開発者が論文を発表していますが、シュノア署名を実装するためには更なるネットワークテストとビットコインのコミュニティへの技術解説が求められます。

 

シュノア署名 まとめ

​​いかがでしたか?

今回は、シュノア署名について解説しました。

現在はまだビットコインに実装されていないシュノア署名ですが、まもなく実装されるかもしれません

ビットコインのニュースから目が離せませんね!

シュノア署名の特徴まとめ

  • マルチ署名データを一つに統合して、データサイズを削減する技術
  • ビットコインへの実装が検討中(現在はECDSA)​
  • スケーラビリティ問題を解決
  • プライバシーを強化

​ランポート署名(Lamport Signature)は、量子コンピュータにも有効であるといわれる仕組みです。5年後に実用化するとの予測もある量子コンピュータは、スーパーコンピュータの約1億倍の処理能力があるとされ、AI(人工知能)やIoT(モノのインターネット)と組み合わせ人々の生活を豊かにすることが期待されています。その一方で、その計算能力・処理能力の高さから、暗号資産(仮想通貨)の秘密鍵を解読してしまい暗号資産(仮想通貨)のセキュリティを脅かすとの懸念もあります。そんな量子コンピュータへの耐性を持つのがランポート署名という仕組みです。この記事ではランポート署名の仕組みについて詳しく解説します!目次​ランポート署名とは?ランポート署名のメリットランポート署名の仕組みランポート署名まとめ​ランポート署名とは?​安全性の高い電子署名​量子コンピュータへの対策の一つとしてあげられるのがランポート署名(Lamport Signature)です。乱数とハッシュを複雑に組み合わせて作られていて、従来の署名方法よりも安全性の高い署名方法だとされています。秘密鍵・公開鍵の作成、署名、署名の検証という大きく分けて3つの仕組みで成り立っています。ランポート署名のメリット​量子コンピュータの悪用に耐えうる近年話題になっている量子コンピュータは、IoT(モノのインターネット)やAI(人工知能)の応用と組み合わせることで、生活の利便性を何倍にも向上させるとされています。事実、量子コンピュータの処理速度は、今の時点で最速の計算速度をもつスーパーコンピュータの約1億倍ともいわれています。人間の生活を豊かにする量子コンピュータですが、その処理能力・計算速度が悪用された際は、甚大な被害をもたらします。量子コンピュータの処理能力だと、インターネット上の取引で使われる暗号も解読されてしまうのではという懸念もあります。しかし、従来の署名方法よりも安全なランポート署名は複雑に組み合わされて作られているので、量子耐性があるといわれています。暗号資産(仮想通貨)の量子耐性のために使われる​​​量子コンピュータが登場すると、その計算能力により暗号資産(仮想通貨)の秘密鍵も解読される危険もあります。量子コンピュータが悪用された際、つまり量子コンピュータによるハッキングが行われた際に、セキュリティを守れることを量子耐性といいます。5年後には実用化されるともいわ