はじめに

QRLのアドバイザーになった,Counterpartyプロジェクトの共同設立者,Robby Dermody氏によるブログ更新記事の日本語訳になります。

日本語訳

 私は正式にQRLプロジェクトに助言し,支援することができてうれしく思います。2013年後半に,私はCounterpartyプロジェクトを共同設立しました。Counterpartyは,最初の分散型取引技術をはじめ,初期のブロックチェーンベースの金融契約のいくつかを開拓し,最初のイニシャル・コイン・オファリング(ICO)の多くを主催しました。私はまた,QRLのプレセールの投資家であり,私の初期投資から一つのquantaも売却していません。
(※quantaはQRLの通貨の単位です)

以前のQRLチームとのインタビューで述べたように,このプロジェクトは数多くの理由で私は関心がありました。比較的低い(すなわち正当な)資金調達額上限設定,技術的なホワイトペーパー,チームの爽やかな正直さ,斬新でギークな技術アプリケーション,そしてそれらのいくつかのユニークな価値命題です。そこにはたくさんのお金と通り道があったので,予定されたICOでこの特性の組み合わせを見ていたのは爽やかでした。

この記事では,CounterpartyやQRLのような,あまり知られていない高品質のプロジェクトでのマーケティングについて少し話をしたかったのです。私がCounterpartyでこの面で学んだ主なことの一つは,ほとんどの人がこの技術を理解していないということでした。特に強気な市場では,人々は外見,ほかの人の口コミ,そしてできるだけ早くお金を稼ぐということに基づいて投資します。これは,全体的な市場の合理性を信じて,人々が当然堅実な技術の価値が分かっていると思っている,若くて理想的な市場自身のかなり失望的なものでした。実際には,わずかな割合しか実際に機能していませんが,しかし,QRLで起こったように,これらの人々が私たちのコミュニティの不可欠な核を形成しました。

この気づきは,Counterpartyの全盛期(2014-2015)にも当てはまりました。そして,暗号通貨がメインストリームの聴衆から得ている関心が高まっているため,現在ではもっと真実味があります。私はこれは読者にとっては驚くことではないと確信していますが,残念ながら,QRLの素晴らしい技術的な仕事のすべてが大部分の人々にとってレーダーの下にあるということです。実際のファンダメンタルズは,私たちが最近経験したような双曲線の強気市場ではほとんど問題にはならないかもしれませんが,私たちが今市場のトーンが素早く変わることを目にしており,市場は,ファンダ的に堅実なプロジェクトとそれらのプロジェクトの投資家の両方に,長期的に報いる自然な方法を持っています。

これは言及したように,より大規模なコミュニティの中でそれらに対する気づきがほとんどない場合,ファンダメンタルズの影響は大幅に減少します。私からしてみると,この気づきの種を植えるためにもっと早く働けば働くほど,それは良くなると思っています。プロジェクトが現在を含む(メインネットより前に)いつでも実行できる最高の"マーケティング"は,本当のマーケティングでは全くありません。単純に耐量子とそれが何を意味しているのか,それについてQRLが何をしているかについての意識を高めるだけです。 斬新な技術,定期的なコードの更新,素晴らしいチーム,そして膨大な価値提案についての意識を高めることです。何か誤解を招くような宣伝は必要ありません。-それは"それを手に入れる"人々のコミュニティを成長させるためだけに機能することであり,そうするためには,まず初めにプロジェクトに気づく必要があります。

したがって,マーケティングはおべんちゃらを言う必要はなく,その性質上誤解を招くこともありません。今可能であることについて誠実な宣言に基づいて,あるいは,すぐに実現可能で検証可能なソフトウェア開発のためにすぐに可能になるであろうことに基づいて,それはアドボカシーと意識向上としてよりよく考えられます。私はCounterpartyでこれをもっとよく理解してもらいたいです。それは常識のように見えるかもしれませんが,技術者としての見方では,私は暗黙のうちに見ていたすべての誤解を招く「PRとマーケティング」に対して感情的な嫌悪感を抱かせてくれました。

より適用されたレベルでは,これは,私たちのコミュニティが,より大きな暗号通貨コミュニティを気づかせていくことを意味し,QRL以外のReddit,bitcointalk,slack/telegram/discord chatなどの場所で,それは主に投機的な価格のチャットではない設定で,QRLを言及する努力をもう少ししていることを意味します。可能ならば,価格の話を避け,プロジェクトの中核的価値提案に焦点を当ててください。重要な進行中のコード更新で最新の状態に保ってください。一攫千金的な大部分に興味を示すのをやめて,少なくとも合理的かつ先見的な人材を集めて,少なくともプロジェクトをチェックしてください。これは,より大きなQRL専用コミュニティの拡大と,より大きな暗号通貨コミュニティにおけるQRLの高品質なインプットと表現の向上に役立つことでしょう。

これはいくつかの人にとって「客寄せ」であるかもしれませんが,技術,開発されたコード,そして事実に基づいており,カルト性や感情的アピールおよび価格の投機予測に基づいていないので,それを恥らずにできます。ほとんどの人は何度も何度も何度も聞いてからチェックしてみてください。この情報過負荷環境では特にそうです。スマートで永続的に,また迷惑にはならないようにしてください。また,新しいスレッドやメッセージを見ていない人たちにスパムするのではなく,情報が有用で価値がある機会を探してください。コンテンツを氾濫させるよりも,説得力のある人と人を引き付ける友人が重要です。

真のボトムアップの耐量子というQRLの主な主張に対して意識しておかなければならないのは,今日でも「耐量子」として宣伝されているコインがいくつかあることです。私が持っている主な懸念は,上述した暗号技術の知識のギャップのために,ノイズが(技術的に不正確な)単語をより広げるため,このケースではノイズが信号よりも用意に重大になることです。これは間違ったプロジェクトが一つであれば問題にはならないかもしれません。しかしながら,量子計算が引き続き誇大宣伝を生み出すので,そのQRの主張は,(例えば,「QRを追加することは容易である」,「私たちはそれに取り組んでいる」)Vaporware(例えば,Nexusの主張など)の極限に近づいているにも関わらず,中規模及び大規模なプロジェクトがますます増えてその誇大宣伝を活用しようとしています。

簡単に言うと,これに対処するには積極的に対応する必要があります。実際の数学と技術に基づいて十分な人々が,「誤解を解かない」場合,デフォルトでは95%以上の人々が,ベストを尽くして一番声高く話した者を信じるでしょう。しかし,永続的で意識的な意識向上が流れを変えるでしょう。その一例として,Moneroが匿名通貨の主張で行ったことを目にしてください。何年もの間,彼らはDashやBitcoinの混合として一纏めにされていました。独自のプライバシー保護技術と十分に広く知識のあるコミュニティの十分な意識を養うだけで,このプロジェクトの流れが変わったようで,2017年以降,メインストリームのニュースやRedditなどで匿名を促進する主要な通貨としてMoneroが頻繁に言及されています。しかしその話はそこでは終わりません。この証拠に基づく伝道は,比較的無教練の初心者の入場や,Vergeのような技術的ではない匿名プロジェクトからの忌まわしい誇大宣言に直面して維持されなければなりません。

プレスフロントでは,ボランティア,社内の社内PRチーム,プロのPR組織と協力して仕事をしていました。Counterpartyでは,Wired,New York Times,Venture Beat,International Business Times,Coindeskなどの出版物で言及されました。プロのPRチームは必要ではありませんが,プレスとの強い既存のつながりを持っているという点で有用でした。時間内にQRLチームはこれらのコネクションを獲得するでしょうが,それを有効にするには,チームは最初に開発の仕方やフレーズを取り巻く状況を把握しておく必要があります。なぜなら,下層のビットコイン・プレスはより多くの「インサイドベースボール」の部分をとるかもしれませんが,上位の出版物は一般的にそうではなく,実際に物語を伝える方法で表現できる情報で作業したく,原型に訴え,そして/または競合を示します。これは,読者に興奮と魅力をもたらし,クリック数と収益として解釈されます。

今後数か月にわたって,ジャーナリストによって価値がより簡単に(正確に伝えられる)ように,私はチームと協力してコンテンツを事前に消化するのを手伝っていきたいと思います。これは,一般に人員が不足しており,低品質のコンテンツと魅力があふれている暗号通貨プレスでは特に便利です。

この情報のいくつかが役に立てばいいなと思います。QRLチームとQRLコミュニティと協力して,この偉大な通貨について語るのを楽しみにしています。そして,多くの皆さんとDiscordで話をすることを楽しみにしています!

おわりに

今回の翻訳は以上になります。ここまで読んでくださってありがとうございました。

コメント・シェア

先週,私はRobbyと膝を交えて,QRLコミュニティに紹介するのにいくつかの質問をしました。私たちは,顧問的な役割でプロジェクトにRobbyが加わることに非常に興奮しており,暗号通貨界隈における豊富な経験から学ぶことを非常に楽しみにしています。Robbyは彼の洞察力を私たちに提供してくれ,また,彼が経験してきたこともふまえて私たちを助けてくれます。

QRL:Robby,バックグラウンドはなんでしょうか?何の出身でしょうか?

Robby:えっと,私は起業家としての専門的な背景がありますが,職業的にはソフトウェア開発者です。私はエンタープライズソフトウェア,VoIP(Voice Over Internet Protocol,ボイップ)ソリューション,デジタル信号処理に携わっていました。

QRL:ソフトウェア開発者としての自分をどのように見出しましたか?

Robby:私は計算機科学の学校に行きましたが,私は主に独学のコーダーです。私は9歳ごろからプログラミングを始めましたので,私の生涯にわたる情熱なものでした。

QRL:9歳から?本当に?

Robby:ええ,私は第4学年で"Bring a Book to School Day(学校での読書)"のためにMS-DOSのマニュアルを持ってきたギークな子供でした。成長すると,コンピュータはしばしば私の同僚よりも意味のあるものでした。

QRL:おお,確かにあなたはテクノロジーの人生のために運命づけられたようですね。暗号通貨/ブロックチェーンについて,どうやって知ったのでしょうか?

Robby:私がブロックチェーンと暗号通貨を知ったのは2012年でした。私の興味をそそる多くのことがあり,私が調査を始めたとき,情報過負荷に陥ってしまったので,まず最初にFeathercoinのマイニングを始めました。それが機能レベルでどのように機能しているかを見て楽しみました。

QRL:何があなたを次のステップに踏み出させたんでしょうか?

Robby:2013年8月上旬,私はMaster Coinに関するCoinDeskの記事を読みました。Bitcoinのブロックチェーンにデータを埋め込むという新しい概念について,彼らはその機能を拡張することについて話していましたが,すぐに興味深いと思いました。Mastercoinは事実上初めてのICOでしたが,「ICO」という用語は当時使用されていませんでした。Mastercoinは私の想像力を燃やしてしまい,すぐにMastercoinコミュニティの活発な部分に自分自身がいることに気づきました。実際に,CounterPartyを設立した2人の他の人は,私自身と一緒に,Mastercoinの初期投資家とコミュニティメンバーでした。

QRL:Mastercoinへの投資から数か月後に,どのようにしてCounterPartyで独自の暗号通貨の開発を始めたのでしょうか?

Robby:私たち(他のCounterParty創設者と私)は,Mastercoinには変更や改良ができると思っていましたが,結局のところ,ほかの多くの人たちと同じように,この欲望を明かしたいと思っていました。カウンターパーティのXCPトークンをコミュニティに配布するために,Proof-of-Burn方式を使用することは,今日ではほとんど非現実的な,イデオロギー的な姿勢をとっていました。

Proof of Burnでは,人々は自分のBTCを復旧不能なアドレスに送信し,プロトコルはそれを確認して,対応する量のトークンが与えられます。この方法で,2,000BTC以上が失われ,約260万XCPが生成されました。明らかな欠点はすべてをブートストラップしなければならなかったことです。しかし,それはまた,小さく非常に効率的なコアチームととても専門的なコアコミュニティであることを意味します。また,2014年1月2日のローンチ日に,基本的に完全に機能するすべてのソフトウェアをリリースしました。約束や事前告知は必要ありませんでした。このうちのいくつかは,多くの人々が振り返ってみれば奇妙に思えるかもしれませんが,非常に面白い実験であり,多くの楽しみでもあります。

QRL:少しだけ巻きましょう。どうやってQRLと出会ったのでしょうか?

Robby:QRLと無関係のスレッドをbitcointalkで見ていたのですが,QRLに言及するコメントを目にしました—量子計算と暗号についての問題に取り組んでいるというコメントでした。だから私はホワイトペーパーを見ました,4月ごろだと思います。実行可能な量子コンピュータは,まだ先の話ですが,その分野には多額の資金と関心があります。そして実質的にすべての暗号化通信で使用される暗号化署名方式を含め,今日取り上げられている技術の多くを脅かす可能性のある,急進的な突破口の可能性が常にあります。

だから私は部分的にエキサイティングなヘッジとしてプロジェクトを見ました。私はプロジェクトの3つの重要な要素が好きです—1つ目は,ファンダメンタルです。このホワイトペーパーは,実際にプロジェクトを支える技術的/数学的問題の多くを扱っていました。2つ目は,合理的なAskです。基本的なアプリケーションを作るために1億ドルも求めていませんでした。これは400万ドルで,合理的な人件費と営業支出に則していました。3つ目は,私がPeterとJPに直接接触して,彼らとやり取りしたとき,私は彼らが誠実で本気であるとわかりました。それはプレセール中の2017年5月頃でした。

QRL:プロジェクトの寿命に関して何らかの最初の懸念はありましたか?

Robby:私が最初にQRLを知ったとき,チームはまだ小さかったです。おそらく,チームがあまりにも急速に拡大するか,あるいは十分に急速に拡大しないであろうし,獲得した才能が目の前の作業負荷を処理できない可能性があることを心配しました。PeterとJPは医師であり,職業的には起業家やソフトウェア開発者ではありませんでした。しかし,彼らは非常に賢明で意欲的であるように思えました。そしてチームメンバーの数が増え,開発の進展が見られたので,これらの懸念が緩和されました。

QRL:私たちのコミュニティに何かコメントはあるでしょうか?

Robby:このような長期的な焦点を当てた技術に興味を持つコミュニティを見ることは本当に素晴らしいことです。選択した道のりに自信を持ってください。成功のために最も重要な要素は,チーム,ビジョン,コード,そしてこのプロジェクトが目指す方向にすでに存在しています。

それらを背景に,QRLはプロフェッショナルでナンセンスではないプロジェクトとして,すでに少しの評判を得ています。これは,暗号通貨界隈が成熟し続けており,実際にはそれほど価値のないプロジェクトが明らかになっていくため,今後数か月数年間でQRLに対してうまく機能することでしょう。最後にコミュニティに私を大手を拡げて歓迎してくれてありがとうと言いたいと思います!のちに私はDiscordにいることになりましたが,そこでの議論や交流の質は素晴らしいです。

※翻訳は以上になります。

コメント・シェア

この記事は,論文のうち,必要な部分を抜粋し和訳したものです。

The Winternitz One-Time Signature Scheme

このセクションではW-OTS\(^+\)について書きます。W-OTSのコアとなるアイデアは,ランダムな入力から始まる特定の数の関数の連鎖を使用することです。これらのランダムな入力は秘密鍵です。公開鍵は連鎖の最終の出力,つまり,連鎖の最後から構成されます。署名は,メッセージを各関数チェーンの一つの中間地にマッピングすることにより計算されます。以前のW-OTSのすべての変種は,単に使用される関数を反復した関数の連鎖([BDE+11]の場合は関数族)によって構築されています。それとは対照的に,W-OTS\(^+\)では,使用されているハッシュ関数族に衝突耐性を要求することなく厳密なセキュリティ証明を可能にする,特別な反復モードを使用しています。いくつかの準備から始めます。そのあとW-OTS\(^+\)について話します。

Signature Scheme

ここで,いくつかの表記法を固め,適応型選択メッセージ攻撃のもとでデジタル署名方式と存在的偽造不可能性を定義します(EU-CMA)。 この論文では,\(x\)が一様分布を用いて集合\(\mathcal{X}\)からランダムに選択されるとき,\(x \overset{\$}{\gets} \mathcal{X}\)と書く。さらに log は \(\text{log}_2\)とします。

Digital Signature schmes.\(\,\,\,\,\,\) \(\mathcal{M}\)をメッセージ空間とします。デジタル署名方式Dss=(Kg, Sign, Vf)は,確率的多項式アルゴリズムの3つです。

  • Kg(1\(^n\)) セキュリティパラメータ\(1^n\)が入力されると,秘密署名鍵skと公開検証鍵pkを出力する。

  • Sign(sk, \(M\)) \(M \in \mathcal{M}\)ならば,\(M\)に対してskの下で署名\(\sigma\)を出力する。

  • Vf(pk, \(\sigma\), \(M\)) \(\sigma\)pkの下で\(M\)の有効な署名ならば1を出力する。

次のようになります。 \(\forall\) (pk, sk) \(\gets\) Kg(1\(^n\)) \(\,\,\),\(\,\,\) \(\forall\) (\(M\in \mathcal{M}\)) \(\,\,\):\(\,\,\) Vf(pkSign(sk,\(M\)),\(M\))=1。

EU-CMA Security.\(\,\,\,\,\,\) デジタル署名方式の標準的なセキュリティの考え方は,適応型選択メッセージ攻撃(EU-CMA)の下での存在的偽造不可能性(EU-CMA)であり,以下の思考実験を使用して定義されます。DSS(1\(^n\))とは,セキュリティパラメータ\(n\)を持つ署名方式を意味します。

Experiment.\(\,\,\,\,\,\) \(\text{Exp}^{\text{EU-CMA}}_{\text{Dss}(1^n)}(\mathcal{A})\)
   (sk,pk) \(\,\,\gets\,\,\) Kg(1\(^n\))
   (\(M\), \(\sigma\)) \(\,\,\gets\,\,\) \(\mathcal{A}^{\text{Sign(sk,}\cdot)} (\textbf{pk})\)
   \(\{(M_i,\sigma_i) \}^q_1\)を(,\(\cdot\))の問い合わせ/回答ペアとする
   (,\(M*\),\(\sigma\)*)=1かつ\(M^{*} \notin \{M_i\}^q_1\)ならば1を返す

上記の思考実験における攻撃者\(\mathcal{A}\)の成功確率については,次のように書きます。 \[ \text{Succ}^{\text{EU-CMA}}_{\text{Dss}(1^n)}(\mathcal{A}) = \text{Pr} \left[\textbf{Exp}^{\text{EU-CMA}}_{\text{Dss}(1^n)}(\mathcal{A})=1 \right] \] これを使用して,次のようにEU-CMAを定義します。

Definition 1 (EU-CMA).\(\,\,\,\,\,\) \(n,t,p \in \mathbb{N}\)\(q=\text{poly}(n)\),Dssをデジタル署名方式とする。 DssがEU-CMA安全とは,上記思考実験でSign\(q\)個の問い合わせをして,時間\(t\)以内に, 考えられるすべての攻撃者\(\mathcal{A}\)のうち,最大の成功確率\(\textbf{InSec}^{\text{EU-CMA}}(\text{Dss}(1^n);t,q)\)\(n\)において無視できるとすると, \[ \text{InSec}^{\text{EU-CMA}}(\text{DSS}(1^n);t,q) \overset{def}{=} \underset{\mathcal{A}}{\text{max}} \{ \text{Succ}^{\text{EU-CMA}}_{\text{Dss}(1^n)}(\mathcal{A}) \} = negl(n) \] EU-CMA安全なワンタイム署名方式(OTS)は, 攻撃者のオラクルへの問い合わせの数が1に制限されている限り,すなわち\(q=1\)である限りEU-CMA安全なDssです。

W-OTS+

さてW-OTS\(^+\)について紹介します。以前のすべてのW-OTSの変種と同じように, W-OTS\(^+\)はセキュリティパラメータ\(n\in\mathbb{N}\),メッセージ長\(m\),そして時間とメモリのトレードオフを決定するWinternitzパラメータ\(w \in \mathbb{N}, w > 1\)によってパラメタライズされます。最後の2個のパラメータは次のものを計算するのに使用されます。 \[ l_1 = \left\lceil \frac{m}{\text{log}(w)} \right\rceil, \,\,\, l_2 = \left\lfloor \frac{\text{log}(l_1(w-1))}{\text{log}(w)} \right\rfloor + 1, \,\,\, l = l_1 + l_2 \] さらに,W-OTS\(^+\)は鍵空間\(\mathcal{K}_n\)で関数の族\(\mathcal{F}_n\,\,\{f_k:\{0,1\}^n \to \{0,1\}^n| k\in \mathbb{K}_n \}\)を使用します。読者は,圧縮無しの暗号学的なハッシュ関数だと考えてもらって大丈夫です。 \(\mathcal{F}_n\)を使って,次の連鎖関数を定義します。

\(c^i_k(x,\textbf{r})\):入力値\(x\in \{0,1\}^n\),イテレーションカウンタ\(i\in \mathbb{N}\),鍵\(k\in \mathcal{K}\),ランダム化要素\(\textbf{r}=(r_1,...,r_j)\in \{0,1 \}^{n\times j}(j\geq i)\)とすると, 連鎖関数は次のように働きます。\(i=0\)のとき,\(c\)\(x\)を返します(\(c^0_k(x,\textbf{r})=x\))。\(i>0\)のとき,再帰的に定義します。 \[ c^i_k(x,\textbf{r}) = f_k(c^{i-1}_k(x,\textbf{r})\oplus r_i) \] つまり,各ラウンドで,関数は最初に中間値とビットマスク\(r\)のビットごとのXORをとり, その結果に対して\(f_k\)を評価します。の部分集合\(r_a,...,r_b\)として,\(\textbf{r}_a,b\)を書きます。\(b<a\)の場合\(\textbf{r}_{a,b}\)をからの文字列と定義します。パラメータ\(m\)\(w\),そして関数の族\(\mathcal{F}_n\)は既知であると仮定します。さて,W-OTS\(^+\)の三つのアルゴリズムについて記載します:

- \(\textit{鍵生成アルゴリズム}\,\,\,\,\,\) (Kg(\(1^n\))):
単項のセキュリティパラメータ\(n\)を入力として,鍵生成アルゴリズムは\(l+w-1\)個の\(n\)ビットの文字列をランダムに一様に選択します。秘密鍵\(\textbf{sk}=(\text{sk}_1,...,\text{sk}_l)\)は,最初の\(l\)個のランダムなビット列から構成されています。残りの\(w-1\)個のビット列は,\(c\)のためのランダム化要素\(\textbf{r}=(r_1,...,r_{w-1})\)として使用されます。次に,\(\text{Kg}\)はランダムに一様にファンクションキー\(k \overset{\$}{\gets} \mathcal{K}\)を選択します。公開検証鍵\(\textbf{pk}\)は次のように計算されます。 \[ \text{pk} = (\text{pk}_0,\text{pk}_1,...,\text{pk}_l) = ( (\textbf{r},k), c^{w-1}_k (\text{sk}_1,\textbf{r}) , \cdots,c^{w-1}_k (\text{sk}_l,\textbf{r}) ). \]

- \(\textit{署名アルゴリズム}\,\,\,\,\,\) (Sign(\(M\),sk,)):
\(m\)ビットのメッセージ\(M\),秘密署名鍵\(\textbf{sk}\)およびランダム化要素\(\textbf{r}\)を入力として,署名アルゴリズムはまず,\(M\)\(w\)基底表現を計算します:\(M=(M_1...M_{l_1}) \,\,,\,\, M_i \in \{0,...,w-1 \}\)。したがって,\(M\)は自然数\(x\)のバイナリ表現として扱われ,次に\(x\)\(w\)変数表現が計算されます。
次にチェックサムを以下のように計算します。 \[ C = \sum^{l_1}_{i=1}(w-1-M_i) \] そして,その\(w\)基底表現\(C=(C_1,...,C_{l_2})\)を計算します。\(C \leq l_1(w-1)\)より,\(C\)\(w\)基底表現は,たかだか\(l_2\)です。 \(M\)\(C\)\(w\)基底表現の連結である\(B=(b_1,...,b_l)=M\,\,||\,\,C\)を設定します。 署名は次のように計算されます。 \[ \sigma = (\sigma_1,...,\sigma_l) = (c^{b_1}_k(\text{sk}_1,\textbf{r}),...,c^{b_l}_k(\text{sk}_l,\textbf{r})). \] チェックサムは,ある一つのメッセージに対応した\(b_i,0 < i \leq l\)が与えられたとき, 任意の他のメッセージに対応する\(b'_{i} < b_i\)が少なくとも一つあることを保証することに留意してください。

- \(\textit{検証アルゴリズム}\,\,\,\,\,\) (Vf(\(1^n\),\(M\),\(\sigma\),)):
バイナリ長\(m\)のメッセージ\(M\),署名\(\sigma\),そして公開検証鍵\(\textbf{pk}\)を入力として, 検証アルゴリズムは,上述したようにまず\(b_i,1\leq i \leq l\)を計算します。 それから以下のように比較されます。 \[\begin{align} \textbf{pk} & = (\textbf{pk}_0,\textbf{pk}_1,...,\textbf{pk}_l) \nonumber \\ & \overset{?}{=} ( (\textbf{r},k), c^{w-1-b_1}_k(\sigma_1, \textbf{r}_{b_1 + 1,w-1}),...,c^{w-1-b_l}_k(\sigma_l, \textbf{r}_{b_l + 1,w-1}) ) \nonumber \end{align}\]

比較が成立する場合はtrueを返し,そうでない場合はfalseを返します。
3つのアルゴリズムすべての実行時間は,\(f_k\)\(lw\)個の評価によって決まります。 署名と秘密鍵のサイズは,\(|\sigma|=|\textbf{sk}|=ln\)ビットです。 公開鍵のサイズは\((l+w-1)n+|k|\)ビットで,ここで\(|k|\)\(\mathcal{K}\)の任意の要素を表すために必要なビット数です。

参考文献

  • W-OTS+ — Shorter Signatures for Hash-Based Signature Schemes
  • [BDE$^+$11]:
    Johannes Buchmann, Erik Dahmen, Sarah Ereth, Andreas Hulsing, and Markus Ruckert. On the security of the Winternitz one-time signature scheme. In A. Nitaj and D. Pointcheval, editors, Africacrypt 2011, volume 6737 of Lecture Notes in Computer Science, pages 363-378. Springer Berlin / Heidelberg, 2011.

コメント・シェア

前回までの記事(1)~(3)を踏まえて,実際にの署名方式を見ていきます。

PQCrypto耐量子として推奨される署名方式についてリリースしています。 二つの耐量子アルゴリズムは,XMSSSPHINCSです。 以下,引用です。

  1. Public-key signatures

    Similar to encryption, currently used signatures are based on problems that become easy to solve with a quantum computer. Signatures use cryptographic hash functions in order to hash the message and then sign the hash. Hash-based signatures use nothing but such a hash function and thus assume the minimum requirement necessary to build signatures. PQCRYPTO recommends the following two hash-based systems to achieve \(2^{128}\) post-quantum security:

  • XMSS [7] with any of the parameters specified in [11]. XMSS requires maintaining a state.

  • SPHINCS-256 [5]. SPHINCS is stateless.

Example of another choice under evaluation: the HFEv- [15] multivariate-quadratic signature system.

XMSSはステートフル署名方式,SPHINCSはステートレス署名方式です。

XMSS

XMSS(eXtended Merkle Signature Scheme)は2011年に発表され,インターネット上のドラフトは2015年にできました。

いくつかの点を除いて,Merkle木のような構成になっています。XMSS木には,親ノードがハッシングされる前に子ノードへXORされるマスクがあります。全てのノードでマスクは異なります。

二つ目の特徴は,XMSS木の葉がOTS署名公開鍵のハッシュではなく,L木と呼ばれる別の木のルートであることです。

L木の葉の中には,WOTS+公開鍵の要素が格納されています。 WOTS+公開鍵をなぜ木に格納するのかはHuelsingが論文内で書いてあるので引用します。

The tree is not used to store a WOTS public key but to hash it in a way that we can prove that a second-preimage resistant hash function suffices (instead of a collision resistant one).
意訳:この木はWOTS公開鍵を格納するために使用されるのではなく,(衝突耐性の代わりに)第二原像攻撃耐性のあるハッシュ関数が十分であることを証明できるようにハッシングするために使われます。

SPHINCS

SPHINCSはステートフル署名です。PHINCSは多くの木で構成されています。

  • 各ノードは一つ前のノードとレベルビットマスクを連結しXORしたハッシュです。

  • 公開鍵はビットマスクされたルートハッシュです。

  • 木の葉は,WOTS+ L木の圧縮された公開鍵です。

ビットマスク部分は,SPHINCSのハッシュ木(レベルごとに一意のマスク)のように見える点を除いて,前述のXMSS L-treeと同じです。

1つのWOTSを含む葉は,もう一つの木に署名することが可能です。 4つのSPHINCS木の2番目のレイヤーは,WOTS+公開鍵を自分の葉に含んでいます。 最初に設定したパラメータの通りに進んでいき,最後のレイヤー0に到達すると,WOTS+署名はほかのSPHINCS木ではなくて,HORS木に署名します。

HORST木やHORS木はL木と同様ですが,今回はWOTSの代わりにHORS FTSが含まれています。もし同じHORS鍵を使ってメッセージに署名しても問題ないので,それらを使ってメッセージに署名し,これが署名方式のセキュリティを向上させます。

以下は,WOTS+ L木のイメージ図(次のSPHINCS木への署名としてそれらを描くもの)で,メッセージへのパスを一つだけ示したものです。SPHINCSの論文から引用します。

メッセージMに署名するときには,最初にMと"ランダムな"インデックスで"ランダム化された"ハッシュを作成します(PHINCSのすべてが確定的にPRFで計算されるので,ランダムを強調して書いています)。インデックスは,Mのランダム化されたハッシュに署名するために,HORSTが何を選択するかを示しています。これがステートフルではなくなる方法です:メッセージに従って決定論的にインデックスを選ぶことによります。同じメッセージに再度署名する場合は,同じHORSTを使用する必要があります。異なる2つのメッセージに署名するには,2つの異なるHORSTを使用する必要があります。

コメント・シェア

前回までにOTSとFTSを見てきました。 次は,ハッシュ関数に基づいた実用的な署名体系はどのようにして構築されるかを見ていきたいと思います。 多くの回数使うことが出来て,理想的には何回も使うことができる署名方式です。

Dumb木

最初に考えられるのはOTSを束にして使うことです(OTSは自分が使いたいもの)。 初めて署名する場合は,最初のOTS鍵ペアを使用し,二度とと使ってはいけません。二回目に何かに署名したい場合は,二番目のOTS鍵ペアを使用し,それもまた二度と使ってはいけません。これを繰り返すと最終的にどうなるかはよくわかると思います。公開鍵はすべてのOTS公開鍵で構成されるため,とても悪いことになるでしょう(その署名方式をたくさん使用することにしたい場合,かなり多くのOTS公開鍵を持つことになります)。

秘密鍵の記憶量を減らす一つの方法は,秘密鍵を生成するための疑似乱数生成器でシードをしようすることです。この方法では,秘密鍵を保存する必要はなく,必要なのはシードのみです。

しかしこれでも,公開鍵が大きくなりすぎるので実用的ではありません。

Merkle木

OTS公開鍵すべてを,一つのメインの公開鍵にリンクする非常に簡単な方法が一つあります。それはMerkle木を利用することです。これはMerkleによって1979年に考案された解決策で,発表はその10年後でした。

簡単に定義すると次のようになります。 Merkle木は,すべてのノードがその子ノードのハッシュであり,ルートが公開鍵であり,葉がOTS公開鍵のハッシュである基本的な2分木です。

最初にこの木を使って何かに署名するとしましょう。 最初のOTS公開鍵(A)を使用し,それを二度と使いません。次にBのOTS公開鍵,次にCの,最後にDのOTS公開鍵を使用します。したがってこの木では,合計4つのメッセージに署名することができます。木が大きければ,より多くのメッセージに署名することができるのがわかりますね。

これの良いところは,公開鍵が木のルートのみで構成されていて,何かに署名するたびにその署名が少数のハッシュで構成されていることです。これが認証パスとなります。

この例では,OTS鍵(A)による署名は(\(1\),署名,公開鍵A,認証パス)となります。

  • 1は署名の葉の\({\it 番号}\)です。繰り返して覚えておかなければいけないことは,葉のOTSを二度と使ってはいけないことです。このことが署名方式をステーフルにします。
  • \({\it 署名}\)はOTSの公開された秘密鍵です。
  • \({\it 公開鍵}\)は,署名を検証するためのOTS公開鍵です。
  • \({\it 認証パス}\)は,ルート(主となる公開鍵)を再計算することを可能にするノードのリスト(ハッシュのリスト)です。

認証パスについて考えてみます。 前の例を取り上げると,最初のOTS鍵(A)で何かを署名した後の認証パスがハイライトされています。

OTS公開鍵と二つのハッシュ(Aの葉からルートまでの経路にあるすべての隣接ノード)とで,主となる公開鍵を計算できることが分かります。したがって,これが実際に,その主となる公開鍵に由来する署名であることを検証することができます。

このテクニックのおかげで,私たちは,主となる公開鍵を検証するために全てのOTS公開鍵を知る必要はありません。これにより,空間も時間も節約されることになります。

以上がMerkleの署名方式の簡単なイメージです。

コメント・シェア

同一の公開鍵,秘密鍵から1つ以上の署名をするにはどうすればいいでしょうか。

この記事では,ハッシュベース署名方式がどのように構築されるか確認するのが最終目標です。

One-time Signatures(OTS)だけでなくFew-times signatures(FTS)でも可能です。

HORS

HORSは,2002年にReyzin親子によって発表されたBiba(Bins and Balls)を更新したものから作られています。

まず初めに,OTSのように一方向性関数に基づいて秘密鍵となる整数のリストを生成します。そしてそのあとそれぞれについてハッシングし,公開鍵を生成します。

ただし,署名するとき,メッセージ\(m\)に対応したインデックスのリストを与えるための選択関数\(S\)が必要となります。

次の例では,パラメータ\(t=5\)\(k=2\)として進めます。 このとき,メッセージ\(m\)の小数値が10より小さくなるように署名できます。 また,(選択関数\(S\)は2つのインデックスを出力するので)秘密鍵の長さは5であり,署名の長さは2となります。

良い関数(全単射関数)\(S\)を使用すると,秘密鍵から生成される同一の要素で二つのメッセージに署名することは不可能です。しかし,その2つの署名のあとは,新しいものを偽造するのはかなり簡単なはずです。2個目に構築するのはHORS署名方式と呼ばれるものです。これは,一方向性関数の代わりに"サブセット・レジリエント"関数に基づいています。選択関数\(S\)は,\(H(m_2) \subseteq H(m_1)\)となるような2つのメッセージ\(m_1\)\(m_2\)を見つけることが不可能である関数\(H\)に置き換えることができます。

それよりも,複数回署名可能な方式にしたい場合,署名者が\(r\)個の署名を与えたとき,\(H(m') \subseteq H(m_1) \cup \cdots \cup H(m_r)\)となるメッセージ\(m'\)を見つけることは不可能であるべきです。これが,実際には"サブセット・レジリエント"の定義となります。

選択関数\(H\)は,攻撃者が多項式時間で,前の式を確認できる\(r+1\)個のメッセージの集合を(たとえ小さな確率であっても)見つけられない場合,r-サブセット・レジリエントです。 定義に関する部分をそのまま引用します。

Let \(\mathcal{H}=\{H_{i,t,k} \}\) be a family of functions, where \(\{H_{i,t,k} \}\) maps an input of arbitrary length to a subset of size at most \(k\) of the set \(\{0,1,\cdots,t-1 \}\).(Note that for each \(t\) and \(k\), contains a number of fuctions, which are indexed by \(i\)). Moreover, assume that there is a polynomial-time algorithm that, given \(i, 1^t,1^k\) and \(M\), compute \(H_{i,t,k}(M)\).

Definition 1. We say that \(\mathcal{H}\) is \(\it{r-subset-resilient}\) if, for every probablistic polynominal-time adversary A,
\[ \underset{i}{\text{Pr}} [ (M_1,M_2,...,M_{r+1}) \gets A(i,1^t,1^k) \\ \text{s.t.} \,\, H_{i,t,k}(M_{r+1})\subseteq \underset{j=1}{\overset{r}{\cup}} H_{i,t,k}(M_j) ] < negl(t,k). \] Fix a distribution \(D\) on the space of all inputs to \(H\) (i.e., on the space of messages).

しかし,ここでは選択関数は全単射ではないので,元に戻すのは難しいのです。 したがってメッセージの一つ前の署名を知っていても,どのメッセージがそれらのインデックスを使用するのかわかりません。

これは,理論上はランダムなオラクルを使用して,実際にはハッシュ関数を使用して行われます。これが,HORS(=Hash to Obtain Random Subset)と呼ばれる所以です。

他にも選択関数はあります。 メッセージ\(m\)を署名するために,次の手順をふみます。

  1. \(h=Hash(m)\)
  2. \(h\)\(h_1,...,h_k\)に分割する
  3. それぞれの\(h_j\)を整数\(i_j\)と解釈する
  4. 署名は\(sk_{i_1},...,sk_{i_k}\)となる

コメント・シェア

Lamport

1979年の10月18日にLeslie Lamportによってワンタイム署名のコンセプトが発表された。

ほとんどの署名スキームはそのセキュリティの証明に,部分的に一方向性関数,典型的なハッシュ関数に頼っています。ランポート署名の美しさは,この署名がこれらの一方向性関数のセキュリティにだけ頼っているところ。

公開鍵 $ h(x)|h(y)$
秘密鍵 $ (x,y) $

とても単純なスキームとして,\(x\)\(y\)を整数とすると,単一のビットへの署名は,
- もし0なら,\(x\)を公開する
- もし1なら,\(y\)を公開する

それを2度と署名に使わないこと。 もし複数のビットに署名したい場合はどうすればいいか? できることは,署名したいメッセージを固定長の出力となるようにハッシング することです。例えば,SHA-256など。

そのとき,256個の秘密鍵のペアが必要になって,次のようになる。

公開鍵 $ h(x_0)|h(x_0), h(x_1)|h(x_2),...,h(x_{255}) | h(y_{255})$
秘密鍵 $ (x_0,y_0),(x_1,y_1),...,(x_{255},y_{255}) $

そしてもし,\(100110_2....\)に署名したい場合は,\((y_0,x_1,x_2,y_3,y_4,x_5,...)\)というように公開する。

詳細は,Qiitaにも取り上げられているので,そちらに譲る。

Winternitz OTS (WOTS)

Lamportの発表から数か月あと,スタンフォードの数学学科のRobert Winternitzが,\(h(x)|h(y)\)の公開の代わりに\(h^w(x)\)を公開することを提案した。

例えば,\(w=16\)として\(h^{16}(x)\)を公開鍵として公開する場合,\(x\)は秘密鍵。次のバイナリ\(1101_2\)に署名したい場合,\(h^9(x)\)を公開すればいい。

問題は,悪意のある人間が\(h^{10}(x)\)を検索するために,この署名とハッシュを見られることで,それゆえ有効な署名を偽造しうること。

これはメッセージの後ろに短いチェックサム(同様に署名する必要がある)を追加することで回避可能。

Variant of Winternitz OTS

長い長い年月のあと,2011年に,Buchmann et alがWinternitz OTSのアップデートを公開して,鍵でパラメータ化された族を利用して新しいWOTSの変種を紹介した。MACと呼ばれている。

MACで使用される鍵のリストが秘密鍵で,メッセージは何度MACを反復するかを指定することになる。以前の出力が鍵を置き換えるため固有の反復であり,常に同じ公開された入力を使用する。

メッセージ\(M=1011_2\)があり,WOTSの変種が3を基底とするメッセージとして動作するとする(実際には任意の基底\(w\)でも大丈夫)。\(M=(M_0,M_1,M_2)=(1,0,2)\)\(102_3\)を表すとする。

これを署名するには,\((f^1_{sk_1}(x)=f_{sk_1}(x),\, f^0_{sk_2}(x)=sk_2 ,\, f^2_{sk_3}(x)=f_{\{f^1_{sk_3(x)}\}}(x) )\)を公開すればいい。

まだメッセージに署名が必要なチェックサムが適用されるが,詳細割愛。 チェックサムにより,公開鍵の中で\(M_2=2\)と知られていても関係がない。

直感的に,連鎖していくことで公開鍵により良いセキュリティを提供することになる。

Winternitz OTS+(WOTS+)

変種の発表の2年後,Hulsingだけで,署名サイズを短くし,以前のスキームのセキュリティを向上させるアップグレード版を公開した。これは,鍵付き関数族に加えて,連鎖関数を使用する。今度は,鍵は常に同じで,それは一つ前の出力が入力となる。また,一方向性関数が適用される前にランダム値(またはマスク)がXORされる。

入力\(x \in \{0, 1\}^n\),反復カウンタ\(i\in \mathbb{N}\),ランダム要素\(\bf{r}\)\(=(r_1,...,r_j) \in \{0,1\}^{n\times j}(j\geq i)\)とすると,連鎖関数は次のように働く。
\(i=0\)のとき,連鎖関数\(c\)\(x\)を返す\((c_k^0(x,\textbf{r})=x)\)
\(i>0\)のとき,連鎖関数\(c\)は再帰的に次のようになる。 \[ c_k^i(x,\textbf{r}) = f_k(c_k^{i-1}(x,\textbf{r}) \oplus r_i) \] \(f_k\)について,鍵空間\({\cal K}_n\)とすると,関数族\({\cal F}_n:\{f_k : \{0,1\}^{n} \to \{0,1\}^{n} | \,\, k\in {\cal K}_n \}\)を満たす。
要は,圧縮なしの暗号学的なハッシュ関数。

その他のOTSについて

他にもいろいろ提案されている。
- 1994,The Bleichenbacher-Maurer OTS
- 2001,The BiBa OTS
- 2002,HORS
- 2014,HORST, SPHINCS

PQCRYPTO ICT-645622によると,耐量子として,公開鍵署名に推奨されているものは,XMSSとSPHINCS-256。
(XMSSはステートフル署名,SPHINCSはステートレス署名)

コメント・シェア

※追加コメント等は赤字で記載いたします

暗号通貨のエコシステムにとっては何という年でしょう!価格については無視してプロジェクトに集中しようとしていましたが,暗号通貨全体が今年で約0.6兆ドルにまで拡大したことは見過ごせません。何年も前に気づいたことを世界の人々が納得するまで我慢強く待っていたので,2012・2013年からその現場にいた私たちにとってはとても信じられないことです。このような空間の革新と成長は畏敬の念をおこすものです。資産とインターネットのペイメント層としての暗号通貨は,本当の本当にやってきました。

 

このブログは長くなるので,最初に大きなこと―ローンチのタイミングと詳細をお届けします!

 

ロードマップの変更 ー メインネットローンチは Q1 2018

できるだけ早くローンチするため,ロードマップを大きく変更しました。

プロジェクトをよく知っている人は,パブリックテストネットで数か月間Proof of Stakeのプロトコルを徹底的に繰り返しテストしていたことをよく知っています。

大きな進歩を遂げましたが,私たちの現在のプロトコルで低電力デバイス(Pi3以上)を投入する計画は挑戦的であり,ここ数週間でメインネットのリリースを押し戻してきました。

私たちはプロトコルにいくつかの変更を加える必要があり,これらをさらに広範にテストし,それを査読(ピアレビュー)に公開する必要があります。これは,商用レベルで適切に完了するために,少なくとも4~6か月かかるでしょう。

セキュリティはQRLのすべてです。私たちは,アカウントとトランザクションを保護するためにポスト量子として推奨されるXMSSを使用しています。私たちのプロジェクトが現在どれほどの価値を持っているかを考えると,未成熟のPoSプロトコルを使用してローンチし妥協することはできません。

また,QRLとの統合を希望する将来のパートナーがチェーンを必要とし,私たちが#1として立ち上げることが重要であるため,ローンチをさらに遅らせないことが肝心です。

このことを念頭に置いて,今月初めにMenero/XMRで使用されるcryptonightを一時的なPoWアルゴリズムとしてローンチし,さらにQ3 2018にPoSへとハードフォークする,という大きな決断を下しました。

PoWは2009年から何度も試されているアルゴリズムであり,非常に簡単に統合できます。私たちはすでにプライベートデベロッパーテストネットでqrlcoreをPoWに完全に適合させており,mid Q1 2018にローンチすることを目指していて,内ではカウントダウンはすでに始まっています。機能はすでに固まっています。私たちは外部監査(コード監査)の準備をしています。

トークンの移行

ユーザーがERC20トークンの残高をBurnアドレスに移動し,メインネットのローンチ時に自動的に残高が含まれるというトークンの移行は,来月開始される予定です。そのプロセスの詳細を説明するブログ記事が新年の少し後にあります。メインネットローンチ時に移行しないユーザーは,もちろん,のちに安全にコインをアンロックするオプションがあります。
※トークンの移行は,現在のERC20トークンをユーザーがBurnアドレスに送信しまずBurnします。その時に①Burn用のアドレスと②QRLメインネットのアドレスが紐づけられるようです。メインネットローンチ時Genesis Block内に,Burnした残高に1:1対応して数値が反映されることになります。

取引所との協議は進行中ですー私たちは,今は何も新しいことを表にすることはできません!

Proof-of-stakeへの移行

2018年を通して私たちは3つのQRLを維持することになります。

  1. Mainnet-PoW.
  2. Testnet-PoW.
  3. Testnet-PoS.

2018年を通してフルタイムの開発とプロトコルのテストは継続(実際,拡大)されます。ハードフォークのスケジュールとして,Q3 2018に純粋にPoSにハードフォークします。

QRLの排出スケジュールは,PoSへの移行やステーキングの前に採掘されると予想される2399544.94(利用可能な供給量の3.54%,総供給量の2.18%)と変わらないままです

エフェメラルメッセージ

私たちのブロックチェーンの上に置くメッセージング層は,もうコードベースに統合されていますーDilithiumKyberを実装しています。私たちは今,QRLに組み込まれた3つの異なるポスト量子セキュアな暗号システムを持っていることになります。

これにより,エキサイティングなレイヤーの2つの機能の多くがオンラインになりました!

チームの拡大は2018年も続きます

UX,モバイル,およびコア開発者として働く追加のチームの3人のフルタイム開発メンバーをまもなく発表する予定です。これについてはもっと詳しく近日中に。QRLのリモートオフィスは忙しい場所になりつつあります。

さらに,アドバイザーとしてRobby Dermodyをチームに加えることをとても嬉しく思います。彼はCounterpartyプロジェクトのFounderであり,私たちの成長するプロジェクトにすでに優れた付加価値を立証してくれています。

2018年のカンファレンス

(画像は省略)
QRLチームは英国,米国,カナダからオランダ,インド,オーストラリアと世界中に分散しています。

私たちは屋外に出向いて,次の会議に出席して,2018年上半期にプロジェクトの概要を公開する予定です。ーBlock Delhi,APAC Australia,CryptoValley,そしてBlockchain Global Expoです。 また潜在的にさらに多くの会議に出席し(例えばConsensus 2018),2018年の後半にはさらにもっとあるでしょう!

これらのイベントで多くの方々にお会いし,私たちのプロジェクトについて広めていただければ幸いです。青/紫のQRLロゴのTシャツを探しましょう!

メインネットローンチ時のフィーチャーセット

Q1 2018に次のフィーチャーセットをお届けします。

  1. マルチプラットフォームのqrlcoreノードのリリース

  2. QRL(XMSS)の100%PQセキュアなアドレス空間

  3. cryptonight PoWアルゴリズム,ブロック時間間隔1分,既存ソフトウェアを使用した既存プールでのマイニング

  4. エフェメラル・メッセージング層機能(KyberおよびDilithiumを利用するPQ-secure端末間データチャンネル機能)

  5. ユニバーサルなgRPC APIによってノードを通過するすべてのウォレットベースのリクエストと,完全に分離されたウォレットとノードの機能性

  6. スレーブXMSS木署名機能を使用して秘密鍵をオフラインに保つ安全なマイニングを可能にします

  7. GUIベースのウェブウォレットとフルブロックエクスプローラ機能

  8. PQトークン作成機能ーQRLチェーン上にトークンを作成・送信することができます

  9. PQセキュア・データスタンプ機能

さらに,Ledger Nano上で完全なXMSS署名を実装するために非常に努力しています。そして,私たちはエフェメラル機能を早期に発揮するために,Mainnetのローンチ時にプロトタイプとしてWhatsApp形式のPQ-secureメッセージングアプリを利用できると期待しています。

TDLR

  1. QRLはmid Q1 2018に利用可能になり,Q3 2018のハードフォークによってPoWからPoSへ移行します

  2. ERC20トークンからQRLトークンへの移行は来月開始します

  3. チームは新しいメンバーと新しいアドバイザーを加え成長します

十分なポスト量子セキュアなブロックチェーンへのカウントダウンが開始されました。

Adam,Aidan,Andrew,Burke,Elliott,Jack,JP,Juan,Kaushal,Leon,Michael,Scott,そして私自身、QRLチームの皆さんにおめでとう!



翻訳を終えて

今回の翻訳は以上になります。 最後に発行数等の情報を以下に記載します。

  • 通貨名:Quantum Resistant Ledger (QRL)
  • 最終供給量: 105,000,000 QRL
  • 最大供給量: 65,000,000 QRL
  • 市場流通量: 52,000,000 QRL
  • アルゴリズム:PoW(cryptonight),後にカスタムPoS(Testnetで開発中)
  • 使用署名方式:XMSS(=eXtended Merkle Signature Scheme)
    ※OTS(One-Time Signature) SchemeはWinternitz OTS+
  • エフェメラル・メッセージ層で使用される暗号鍵:DilithiumKyber

読んでいただきありがとうございました。

コメント・シェア

※赤字は追加で解説,資料等記載します。

ステートフルとセキュリティ

QRLはステートフルなアカウントを保護するため,非常に珍しい署名方式であるXMSSを採用しています。
(論文は次を参照ください。https://eprint.iacr.org/2011/484.pdf )

トランザクションがQRLのアドレスから署名されるたびに,Winternitz OTS+ワンタイム署名がXMSSウォレットで使用されます。

同一のワンタイム署名から再度署名(=同一のXMSS木のインデックスを再利用)し,有効な署名でトランザクションを作成することは可能です。一方で,ブロックが追加されたときルーチンの状態検証中にワンタイム署名の再利用を禁止するため,QRLのネットワークではこのトランザクションを拒否します。

しかしながら,同一のワンタイム署名のインデックスを再利用しつづける場合,XMSSのセキュリティは徐々に低下します。

理論的には,同一の木のインデックスから複数の署名と十分な時間があれば,ワンタイム署名の秘密鍵を推測することが可能です。

署名が2つの場合は234,3つの場合223,4つの場合218のハッシュが必要になります。

明らかに,XMSSのこのステートフルなセキュリティの側面は,安全に使用できる実際の状況がほとんどないことを意味しています。その理由は,署名者(ウォレット)が同一のインデックスに繰り返し署名し,ウォレットのXMSS木の秘密鍵を危険にさらすことを許容することが絶対に致命的であるからです。

それゆえに,新しい状態とインクリメントされた木のインデックスを反映させるために,各々の署名のあとにウォレットファイルは更新されなければなりません。ウォレットが同一のインデックスから署名してる限りは,すべて問題ありません。

QRLのウェブウォレット

シンプルです。ウォレットファイルでqrlcoreを利用している場合や,のちにすべてを安全に保存するためにLedger Nanoを使用する場合は,すべてが自動的に処理されます。

しかし,古いウォレットファイルをバックアップから復元するとどうなるでしょうか?またはウォレットファイル無しのウォレットがある場合は?

私たちのウェブウォレットは現在機能しており( https://wallet.qrlexplorer.info/ ),これはニーモニックフレーズまたはhexseedで開かれます。
(2017/12/20時点で,これはTestnet用のウェブウォレットです。BittrexでトレードされているQRLトークンはERC20トークンでありますので,このウェブウォレットは利用できません。メインネットをお待ちください)

1つのオプションとしては,各セッションの後にユーザーに対してウォレット・インデックス番号を覚えてもらうことを頼むことです。 しかし,これはユーザーが覚えた後で思い出すことに依存するので,問題が発生しやすくなります。 自分のウェブウォレットにアクセスすることがまれである場合,または単にウォレット・インデックスを忘れた場合,システムは失敗します。

しかし私たちは運がいいです。QRLのブロックチェーンは助けてくれます。

すでにチェーン内にあるXMSSインデックスはバーンされたと考えることができます。潜在的に,有効なXMSSインデックスは,まだトランザクションを署名するために使用されていないものです。ウェブウォレットがQRLのネットワークに接続すると,QRLのアドレスのトランザクション履歴をロードし,送信されたトランザクション数を使用して現在のXMSS木インデックスを計算します。
(XMSSの構造上ウォレットファイルは更新され続けなければなりません。それが何らかの破損をしても救助できるということであり,ウォレットのニーモニックフレーズ自体はしっかり保存してください)

ウェブウォレットブラウザのインスタンスとQRLのP2Pネットワーク間で中間者攻撃をしようとする悪意のあるノードによって,ウェブウォレットが欺かれることがあるでしょうか?

ウェブウォレットは,自分のアドレスの履歴にある各トランザクションを簡単に検証できます。悪意のあるノードが行うことができるのは,ウェブウォレットが正しくない誤った低いインデックスで署名するよう混乱させるために,極めて少ないトランザクションを送信させることくらいです。そのインデックス位置でのワンタイム署名がすでにQRLネットワークでブラックリスト化されますので,これは何も達成することができません。悪意のあるノードは,期待より高いインデックスから署名させるようウェブウォレットを欺くトランザクションを偽造することはできません。そうする正当な署名を生成することができないからです。

ここまでは順調ですね。

現在のインデックスから秘密鍵を危険にさらすのに十分な回数署名するよう,ウェブウオレットを欺くため,悪意のあるノードが意図的にトランザクションを伝播できないようにすることは可能でしょうか?

私たちのウェブウォレットは,トランザクションを複数のノードに伝播することによってこの可能性を緩和します。 さらに,別のランダムなノードからメモリプール・ブロック内のtxを見るまで,再びアクティブセッションで再度署名することはありません。

NIST

しばらくの間,プレースホルダーのエフェメラルメッセージルーチンがin-situで実行されました。 私たちのend-endポスト量子セキュア・データ・チャネルは,両端に2つの公開鍵を含むEPHトランザクションによってリンクされています。これを分散格子公開鍵サーバと考えてください。 現在,それらはECC公開鍵であり,一つは署名用でもう一つは暗号化用です。 しかし,NISTがリリース(そう長くない)するとすぐに,私たちは署名用のdilithium鍵と、エフェメラルなトラフィックを格子暗号化するためのkyber鍵を用意します。
(dilithiumの論文: https://eprint.iacr.org/2017/633.pdf
kyberの論文: https://eprint.iacr.org/2017/634.pdf )

お知らせ

今月下旬に発表する新しいメンバー変更と,ロードマップとタイムラインの両方に(とても興奮する)大きな変化があります!

以上,翻訳でした。
(個人的な予想ですが,おそらくお知らせはパブリックテストネットの段階から次の段階へ移行する旨の発表ではないのかなと考えています)

コメント・シェア

  • page 1 of 1

Owl

新しいもの好きなフクロウです


モノ作り


Japan