CryptoNote v2.0

著 Nicolas van Saberhagen · 2013

ここに掲載されている論文は、Nicolas van Saberhagen(2013年)によるCryptoNote v2.0ホワイトペーパーであり、Moneroの基盤となる暗号的基礎を説明しています。これはMonero固有のホワイトペーパーではありません。Moneroは2014年にCryptoNoteのリファレンス実装(Bytecoin)のフォークとしてローンチされ、それ以来オリジナルプロトコルから大幅に発展しています。

導入

「Bitcoin」 [1] は、p2p 電子キャッシュの概念の実装に成功しました。両方 専門家も一般の人々も、これらの便利な組み合わせを高く評価するようになりました。 パブリック トランザクションと信頼モデルとしての proof-of-work。現在、電子マネーのユーザーベースは 着実なペースで成長しています。顧客は低料金と匿名性の提供に魅力を感じています 電子現金によるものであり、加盟店は予測された分散型排出量を重視しています。 Bitcoin は 電子マネーは紙幣と同じくらい簡単で、紙幣と同じくらい便利であることが効果的に証明されました。 クレジットカード。 残念ながら、Bitcoin にはいくつかの欠陥があります。たとえば、システムの分散型 性質は柔軟性が高く、ほぼすべてのネットワーク ユーザーがクライアントを更新するまで新しい機能を実装できません。修正できないいくつかの重大な欠陥は、Bitcoin の攻撃を迅速に阻止します。 広範な伝播。このような柔軟性のないモデルでは、新しいプロジェクトを展開する方が効率的です。 元のプロジェクトを永続的に修正するのではなく、 この文書では、Bitcoin の主な欠陥に対する解決策を研究し、提案します。私たちは信じています 私たちが提案するソリューションを考慮したシステムが健全な競争につながることを保証します さまざまな電子マネー システム間で。独自の電子マネー「CryptoNote」も提案しています。 電子マネーの次の進歩を強調する名前です。

Einführung

„Bitcoin“ [1] ist eine erfolgreiche Umsetzung des Konzepts des P2P-E-Cash. Beides Fachleute und die breite Öffentlichkeit haben die praktische Kombination von zu schätzen gelernt öffentliche Transaktionen und proof-of-work als Vertrauensmodell. Heute ist die Benutzerbasis von elektronischem Bargeld wächst stetig; Kunden werden von niedrigen Gebühren und der gebotenen Anonymität angezogen durch elektronisches Bargeld und Händler schätzen seine vorhergesagte und dezentrale Ausgabe. Bitcoin hat hat effektiv bewiesen, dass elektronisches Bargeld so einfach wie Papiergeld und so bequem sein kann Kreditkarten. Leider weist Bitcoin mehrere Mängel auf. Beispielsweise ist das System verteilt Die Natur ist unflexibel und verhindert die Implementierung neuer Funktionen, bis fast alle Netzwerkbenutzer ihre Clients aktualisieren. Einige kritische Mängel, die nicht schnell behoben werden können, schrecken Bitcoin ab weite Verbreitung. In solchen unflexiblen Modellen ist es effizienter, ein neues Projekt umzusetzen anstatt das ursprüngliche Projekt ständig zu reparieren. In diesem Artikel untersuchen und schlagen wir Lösungen für die Hauptmängel von Bitcoin vor. Wir glauben dass ein System, das die von uns vorgeschlagenen Lösungen berücksichtigt, zu einem gesunden Wettbewerb führen wird zwischen verschiedenen elektronischen Geldsystemen. Wir bieten auch unser eigenes elektronisches Bargeld „CryptoNote“ an. ein Name, der den nächsten Durchbruch im Bereich des elektronischen Geldes unterstreicht.

Bitcoin 欠点と考えられる解決策

2 Bitcoin の欠点と考えられる解決策 2.1 取引のトレーサビリティ プライバシーと匿名性は、電子マネーの最も重要な側面です。ピアツーピア支払い 第三者の目から隠蔽されるよう努めますが、これは従来の方法と比較した場合の明らかな違いです。 銀行業。特に、T.okamoto と K.Ohta は、理想的な電子マネーの 6 つの基準を説明しました。 これには「プライバシー: ユーザーとその購入との関係は追跡不可能でなければなりません」が含まれます。 誰でも」[30]。それらの説明から、完全に匿名である 2 つのプロパティを導き出しました。 岡本氏が概説した要件に準拠するには、電子現金モデルが満たさなければなりません そして太田: 追跡不可能性: 受信トランザクションごとに、考えられるすべての送信者が等しい確率で存在します。 リンク不可能性: 2 つの送信トランザクションについて、それらが送信されたことを証明することは不可能です。 同じ人です。 残念ながら、Bitcoin は追跡不可能な要件を満たしていません。ネットワークの参加者間で行われるトランザクションはすべて公開されるため、あらゆるトランザクションが公開される可能性があります。 1 クリプトノート v 2.0 ニコラス・ファン・セイバーハーゲン 2013 年 10 月 17 日 1 はじめに 「Bitcoin」 [1] は、p2p 電子キャッシュの概念の実装に成功しました。両方 専門家も一般の人々も、これらの便利な組み合わせを高く評価するようになりました。 パブリック トランザクションと信頼モデルとしての proof-of-work。現在、電子マネーのユーザーベースは 着実なペースで成長しています。顧客は低料金と匿名性の提供に魅力を感じています 電子現金によるものであり、加盟店は予測された分散型排出量を重視しています。 Bitcoin は 電子マネーは紙幣と同じくらい簡単で、紙幣と同じくらい便利であることが効果的に証明されました。 クレジットカード。 残念ながら、Bitcoin にはいくつかの欠陥があります。たとえば、システムの分散型 性質は柔軟性が高く、ほぼすべてのネットワーク ユーザーがクライアントを更新するまで新しい機能を実装できません。修正できないいくつかの重大な欠陥により、Bitcoin の攻撃が阻止されます 広範な伝播。このような柔軟性のないモデルでは、新しいプロジェクトを展開する方が効率的です。 元のプロジェクトを永続的に修正するのではなく、 この文書では、Bitcoin の主な欠陥に対する解決策を研究し、提案します。私たちは信じています 私たちが提案するソリューションを考慮したシステムが健全な競争につながることを保証します さまざまな電子マネー システム間で。独自の電子マネー「CryptoNote」も提案しています。 電子マネーの次の進歩を強調する名前です。 2 Bitcoin の欠点と考えられる解決策 2.1 取引のトレーサビリティ プライバシーと匿名性は、電子マネーの最も重要な側面です。ピアツーピア支払い 第三者の目から隠蔽されるよう努めますが、これは従来の方法と比較した場合の明らかな違いです。 銀行業。特に、T.okamoto と K.Ohta は、理想的な電子マネーの 6 つの基準を説明しました。 これには「プライバシー: ユーザーとその購入との関係は追跡不可能でなければなりません」が含まれます。 誰でも」[30]。それらの説明から、完全に匿名である 2 つのプロパティを導き出しました。 岡本氏が概説した要件に準拠するには、電子現金モデルが満たさなければなりません そして太田: 追跡不可能性: 受信トランザクションごとに、考えられるすべての送信者が等しい確率で存在します。 リンク不可能性: 2 つの送信トランザクションについて、それらが送信されたことを証明することは不可能です。 同じ人です。 残念ながら、Bitcoin は追跡不可能な要件を満たしていません。ネットワークの参加者間で行われるトランザクションはすべて公開されるため、あらゆるトランザクションが公開される可能性があります。 1 3 Bitcoin は間違いなく「追跡不能」に失敗します。 BTCを送信する場合、送信元のウォレット blockchain には取り消し不能のスタンプが押されています。誰がその資金を送ったかについては疑問の余地はありませんが、 なぜなら、秘密鍵を知っている人だけが秘密鍵を送信できるからです。一意の発信元と最終受信者まで明確に追跡されます。参加者2人が交換しても 間接的な方法で資金を調達する場合、適切に設計された経路探索手法により、その出所が明らかになり、 最終的な受取人。 また、Bitcoin が 2 番目の特性を満たしていない可能性もあります。 一部の研究者 は ([33, 35, 29, 31])、慎重な blockchain 分析により、 Bitcoin ネットワークのユーザーとそのトランザクション。方法はいくつかありますが、 [25] では、多くの隠された個人情報が抽出される可能性があると疑われています。 パブリックデータベース。 Bitcoin は上記の 2 つの特性を満たしていないため、次のような結論に達します。 匿名ではなく、擬似匿名の電子現金システムです。ユーザーの開発は迅速でした この欠点を回避するためのソリューション。 2 つの直接的な解決策は、「ロンダリング サービス」[2] と 分散手法の開発 [3、4]。どちらのソリューションも、混合するという考えに基づいています。 いくつかのパブリック トランザクションと、それらを何らかの中間アドレス経由で送信する。それは順番に 信頼できる第三者を必要とするという欠点があります。 最近、より創造的なスキームが I. Miers らによって提案されました。 [28]: 「ゼロコイン」。ゼロコイン 暗号化された一方向アキュムレータとゼロ知識証明を利用して、ユーザーは次のことを行うことができます。 ビットコインをゼロコインに「変換」し、代わりに匿名の所有権証明を使用してそれらを使用します。 明示的な公開キーベースのデジタル署名。ただし、そのような知識証明には定数があります。 しかし、サイズが不便 - 約 30kb (今日の Bitcoin 制限に基づく) という提案が行われます。 非実用的。著者らは、このプロトコルが大多数の人たちに受け入れられる可能性は低いことを認めています。 Bitcoin ユーザー [5]。 2.2 proof-of-work 関数 Bitcoin の作成者であるサトシ ナカモトは、多数決の意思決定アルゴリズムを「1CPU 1 票」と表現し、proof-of-work では CPU に依存した価格設定関数 (SHA-256 の 2 倍) を使用しました。 スキーム。ユーザーは単一の取引履歴注文 [1] に投票するため、合理性と このプロセスの一貫性は、システム全体にとって重要な条件です。 このモデルのセキュリティには 2 つの欠点があります。まず、ネットワークの 51% が必要です。 マイニングパワーは誠実なユーザーの管理下に置かれます。第二に、システムの進歩(バグ修正、 セキュリティ修正など...) を実現するには、圧倒的多数のユーザーがサポートし、同意する必要があります。 変更 (これはユーザーがウォレット ソフトウェアを更新するときに発生します) [6].最後にこれと同じ投票が行われます このメカニズムは、一部の機能 [7] の実装に関する集団投票にも使用されます。 これにより、proof-of-work が満たさなければならない特性を推測することができます。 価格設定機能。 このような機能により、ネットワーク参加者が重大な問題を引き起こす可能性があってはなりません。 他の参加者よりも有利。一般的なハードウェアと高度なハードウェアの間のパリティが必要です。 カスタムデバイスのコスト。最近の例 [8] から、SHA-256 関数が使用されていることがわかります。 Bitcoin アーキテクチャでは、マイニングの効率が向上するため、このプロパティはありません。 ハイエンド CPU と比較した場合の GPU および ASIC デバイス。 したがって、Bitcoin は、 GPU と ASIC の所有者が所有しているため、「1 CPU 1 票」の原則に違反するため、参加者は除外されます。 CPU 所有者と比較すると、はるかに大きな投票力を持ちます。それは古典的な例です システム参加者の 20% が投票の 80% 以上を支配するパレートの法則。 ネットワークのセキュリティは問題ではないため、そのような不平等はネットワークのセキュリティとは関係がないと主張する人もいるでしょう。 少数の参加者が投票の大部分を支配しているが、これらの参加者の誠実さ 大切な参加者たち。しかし、このような議論には多少の欠陥があります。 参加者の誠実さよりも、安価な専用ハードウェアが登場する可能性 脅威をもたらします。これを実証するために、次の例を見てみましょう。悪意のある人がいると仮定します 個人は、安価な方法で自分のマイニングファームを作成することで、大幅なマイニングパワーを獲得します。 2 一意の発信元と最終受信者まで明確に追跡されます。参加者2人が交換しても 間接的な方法で資金を調達する場合、適切に設計された経路探索手法により、その出所が明らかになり、 最終的な受取人。 また、Bitcoin が 2 番目の特性を満たしていない可能性もあります。 一部の研究者 は ([33, 35, 29, 31])、慎重な blockchain 分析により、 Bitcoin ネットワークのユーザーとそのトランザクション。方法はいくつかありますが、 d[25] と疑われており、隠された個人情報が大量に抽出される可能性があると疑われています。 パブリックデータベース。 Bitcoin は上記の 2 つの特性を満たしていないため、次のような結論に達します。 匿名ではなく、擬似匿名の電子現金システムです。ユーザーの開発は迅速でした この欠点を回避するためのソリューション。 2 つの直接的な解決策は、「ロンダリング サービス」[2] と 分散手法の開発 [3、4]。どちらのソリューションも、混合するという考えに基づいています。 いくつかのパブリック トランザクションと、それらを何らかの中間アドレス経由で送信する。それは順番に 信頼できる第三者を必要とするという欠点があります。 最近、より創造的なスキームが I. Miers らによって提案されました。 [28]: 「ゼロコイン」。ゼロコイン 暗号化された一方向アキュムレータとゼロ知識証明を利用して、ユーザーは次のことを行うことができます。 ビットコインをゼロコインに「変換」し、代わりに匿名の所有権証明を使用してそれらを使用します。 明示的な公開キーベースのデジタル署名。ただし、そのような知識証明には定数があります。 しかし、サイズが約 30kb (今日の Bitcoin 制限に基づく) という不便なサイズであるため、この提案が行われます。 非実用的。著者らは、このプロトコルが大多数の人たちに受け入れられる可能性は低いことを認めています。 Bitcoin ユーザー [5]。 2.2 proof-of-work 関数 Bitcoin の作成者であるサトシ ナカモトは、多数決の意思決定アルゴリズムを「1CPU 1 票」と表現し、proof-of-work では CPU に依存した価格設定関数 (SHA-256 の 2 倍) を使用しました。 スキーム。ユーザーは単一の取引履歴注文 [1] に投票するため、合理性と このプロセスの一貫性は、システム全体にとって重要な条件です。 このモデルのセキュリティには 2 つの欠点があります。まず、ネットワークの 51% が必要です。 マイニングパワーは誠実なユーザーの管理下に置かれます。第二に、システムの進歩(バグ修正、 セキュリティ修正など...) を実現するには、圧倒的多数のユーザーがサポートし、同意する必要があります。 変更 (これはユーザーがウォレット ソフトウェアを更新するときに発生します) [6]。最後にこれと同じ投票が行われます。 このメカニズムは、一部の機能 [7] の実装に関する集団投票にも使用されます。 これにより、proof-of-work が満たさなければならない特性を推測することができます。 価格設定機能。 このような機能により、ネットワーク参加者が重大な問題を引き起こす可能性があってはなりません。 他の参加者よりも有利。一般的なハードウェアと高度なハードウェアの間のパリティが必要です。 カスタムデバイスのコスト。最近の例 [8] から、SHA-256 関数が使用されていることがわかります。 Bitcoin アーキテクチャでは、マイニングの効率が向上するため、このプロパティはありません。 ハイエンド CPU と比較した場合の GPU および ASIC デバイス。 したがって、Bitcoin は、 GPU と ASIC の所有者が所有しているため、「1 CPU 1 票」の原則に違反するため、参加者は除外されます。 CPU 所有者と比較すると、はるかに大きな投票力を持ちます。それは古典的な例です システム参加者の 20% が投票の 80% 以上を支配するパレートの法則。 ネットワークのセキュリティは問題ではないため、そのような不平等はネットワークのセキュリティとは関係がないと主張する人もいるでしょう。 少数の参加者が投票の大部分を支配しているが、これらの参加者の誠実さ 大切な参加者たち。しかし、このような議論には多少の欠陥があります。 参加者の誠実さよりも、安価な専用ハードウェアが登場する可能性 脅威をもたらします。これを実証するために、次の例を見てみましょう。悪意のある人がいると仮定します 個人は、安価な方法で自分のマイニングファームを作成することで、大幅なマイニングパワーを獲得します。 2 4 おそらく、すべてのユーザーが常に新しいアドレスを生成することで自分自身の匿名性を保っているとしたら、 受け取ったすべての支払いに対して(これはばかげていますが、技術的には「正しい」方法です)、 そして、すべてのユーザーが決して資金を送金しないと主張して、他のユーザーの匿名性を助けたとしたら 同じBTCアドレスに2回送信した場合、Bitcoinは依然として状況的にのみ渡されます 非リンク性テスト。 なぜ?消費者データを使用すると、人々に関する驚くべき量の情報を常に把握できます。 たとえば、http://www.applieddatalabs.com/content/target-knows-it-shows を参照してください。 さて、これが 20 年後の未来であると想像してください。さらに、ターゲットが単に知っていたわけではないと想像してください。 Target でのあなたの購入習慣についてですが、彼らはすべての商品について blockchain をマイニングしていました 過去の Coinbase ウォレットでの個人購入 12年。 彼らはこう言うだろう、「ねえ、今夜は咳止め薬を買いたいかもしれないけど、そんなことはないよ」 明日は気分がいいよ。」 マルチパーティの並べ替えが正しく利用されている場合は、これは当てはまらない可能性があります。たとえば、これを参照してくださいブログ投稿: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ 私はその計算に完全に納得しているわけではありませんが、一度に 1 つの論文ですよね? 引用が必要です。 Zerocoin プロトコル (スタンドアロン) では不十分かもしれませんが、Zerocash このプロトコルは 1kb サイズのトランザクションを実装しているようです。そのプロジェクトを支援しているのは、 もちろん、アメリカ軍とイスラエル軍もそうなので、その堅牢性については誰にも分かりません。一方では 軍隊ほど、監視なしに資金を支出できることを望んでいる人はいないでしょう。 http://zerocash-project.org/ 納得できません...たとえば、http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf を参照してください。 暗号ノート開発者モーリス・プランク氏(おそらく仮名)の暗号ノートからの引用 フォーラム: 「ゼロコイン、ゼロキャッシュ。 これは最先端のテクノロジーであると認めざるを得ません。 はい、引用です 上記は、プロトコルの以前のバージョンの分析からのものです。私の知る限り、そうではありません 288 バイトですが 384 バイトですが、いずれにせよ、これは良いニュースです。 彼らは SNARK と呼ばれるまったく新しい技術を使用しましたが、これにはいくつかの欠点がありました。 署名の作成に必要な公開パラメーターの大規模な初期データベース (1 GB 以上) トランザクションの作成にかなりの時間がかかります (1 分以上)。最後に、彼らは 若い暗号通貨、これは議論の余地があるアイデアであると述べました: https://forum.cryptonote.org/viewtopic.php?f= " - モーリス・P. 2014年4月3日(木)午後7時56分 CPU で実行され、GPU、FPGA、または ASIC には適さない機能 計算。 proof-of-work で使用される「パズル」は、価格設定関数、コスト関数、または パズル機能。

一意の発信元と最終受信者まで明確に追跡されます。参加者2人が交換しても 間接的な方法で資金を調達する場合、適切に設計された経路探索手法により、その出所が明らかになり、 最終的な受取人。 また、Bitcoin が 2 番目の特性を満たしていない可能性もあります。 一部の研究者 は ([33, 35, 29, 31])、慎重な blockchain 分析により、 Bitcoin ネットワークのユーザーとそのトランザクション。方法はいくつかありますが、 [25] では、多くの隠された個人情報が抽出される可能性があると疑われています。 パブリックデータベース。 Bitcoin は上記の 2 つの特性を満たしていないため、次のような結論に達します。 匿名ではなく、擬似匿名の電子現金システムです。ユーザーの開発は迅速でした この欠点を回避するためのソリューション。 2 つの直接的な解決策は、「ロンダリング サービス」[2] と 分散手法の開発 [3、4]。どちらのソリューションも、混合するという考えに基づいています。 いくつかのパブリック トランザクションと、それらを何らかの中間アドレス経由で送信する。それは順番に 信頼できる第三者を必要とするという欠点があります。 最近、より創造的なスキームが I. Miers らによって提案されました。 [28]: 「ゼロコイン」。ゼロコイン 暗号化された一方向アキュムレータとゼロ知識証明を利用して、ユーザーは次のことを行うことができます。 ビットコインをゼロコインに「変換」し、代わりに匿名の所有権証明を使用してそれらを使用します。 明示的な公開キーベースのデジタル署名。ただし、そのような知識証明には定数があります。 しかし、サイズが不便 - 約 30kb (今日の Bitcoin 制限に基づく) という提案が行われます。 非実用的。著者らは、このプロトコルが大多数の人たちに受け入れられる可能性は低いことを認めています。 Bitcoin ユーザー [5]。 2.2 proof-of-work 関数 Bitcoin の作成者であるサトシ ナカモトは、多数決の意思決定アルゴリズムを「1CPU 1 票」と表現し、proof-of-work では CPU に依存した価格設定関数 (SHA-256 の 2 倍) を使用しました。 スキーム。ユーザーは単一の取引履歴注文 [1] に投票するため、合理性と このプロセスの一貫性は、システム全体にとって重要な条件です。 このモデルのセキュリティには 2 つの欠点があります。まず、ネットワークの 51% が必要です。 マイニングパワーは誠実なユーザーの管理下に置かれます。第二に、システムの進歩(バグ修正、 セキュリティ修正など...) を実現するには、圧倒的多数のユーザーがサポートし、同意する必要があります。 変更 (これはユーザーがウォレット ソフトウェアを更新するときに発生します) [6].最後に同じ投票が行われます このメカニズムは、一部の機能 [7] の実装に関する集団投票にも使用されます。 これにより、proof-of-work が満たさなければならない特性を推測することができます。 価格設定機能。 このような機能により、ネットワーク参加者が重大な問題を引き起こす可能性があってはなりません。 他の参加者よりも有利。一般的なハードウェアと高度なハードウェアの間のパリティが必要です。 カスタムデバイスのコスト。最近の例 [8] から、SHA-256 関数が使用されていることがわかります。 Bitcoin アーキテクチャでは、マイニングの効率が向上するため、このプロパティはありません。 ハイエンド CPU と比較した場合の GPU および ASIC デバイス。 したがって、Bitcoin は、 GPU と ASIC の所有者が所有しているため、「1 CPU 1 票」の原則に違反するため、参加者は除外されます。 CPU 所有者と比較すると、はるかに大きな投票力を持ちます。それは古典的な例です システム参加者の 20% が投票の 80% 以上を支配するパレートの法則。 ネットワークのセキュリティは問題ではないため、そのような不平等はネットワークのセキュリティとは関係がないと主張する人もいるでしょう。 少数の参加者が投票の大部分を支配しているが、これらの参加者の誠実さ 大切な参加者たち。しかし、このような議論には多少の欠陥があります。 参加者の誠実さよりも、安価な専用ハードウェアが登場する可能性 脅威をもたらします。これを実証するために、次の例を見てみましょう。悪意のある人がいると仮定します 個人は、安価な方法で自分のマイニングファームを作成することで、大幅なマイニングパワーを獲得します。 2 一意の発信元と最終受信者まで明確に追跡されます。参加者2人が交換しても 間接的な方法で資金を調達する場合、適切に設計された経路探索手法により、その出所が明らかになり、 最終的な受取人。 また、Bitcoin が 2 番目の特性を満たしていない可能性もあります。 一部の研究者 は ([33, 35, 29, 31])、慎重な blockchain 分析により、 Bitcoin ネットワークのユーザーとそのトランザクション。方法はいくつかありますが、 d[25] と疑われており、隠された個人情報が大量に抽出される可能性があると疑われています。 パブリックデータベース。 Bitcoin は上記の 2 つの特性を満たしていないため、次のような結論に達します。 匿名ではなく、擬似匿名の電子現金システムです。ユーザーの開発は迅速でした この欠点を回避するためのソリューション。 2 つの直接的な解決策は、「ロンダリング サービス」[2] と 分散手法の開発 [3、4]。どちらのソリューションも、混合するという考えに基づいています。 いくつかのパブリック トランザクションと、それらを何らかの中間アドレス経由で送信する。それは順番に 信頼できる第三者を必要とするという欠点があります。 最近、より創造的なスキームが I. Miers らによって提案されました。 [28]: 「ゼロコイン」。ゼロコイン 暗号化された一方向アキュムレータとゼロ知識証明を利用して、ユーザーは次のことを行うことができます。 ビットコインをゼロコインに「変換」し、代わりに匿名の所有権証明を使用してそれらを使用します。 明示的な公開キーベースのデジタル署名。ただし、そのような知識証明には定数があります。 しかし、サイズが不便 - 約 30kb (今日の Bitcoin 制限に基づく) という提案が行われます。 非実用的。著者らは、このプロトコルが大多数の人たちに受け入れられる可能性は低いことを認めています。 Bitcoin ユーザー [5]。 2.2 proof-of-work 関数 Bitcoin の作成者であるサトシ ナカモトは、多数決の意思決定アルゴリズムを「1CPU 1 票」と表現し、proof-of-work では CPU に依存した価格設定関数 (SHA-256 の 2 倍) を使用しました。 スキーム。ユーザーは単一の取引履歴注文 [1] に投票するため、合理性と このプロセスの一貫性は、システム全体にとって重要な条件です。 このモデルのセキュリティには 2 つの欠点があります。まず、ネットワークの 51% が必要です。 マイニングパワーは誠実なユーザーの管理下に置かれます。第二に、システムの進歩(バグ修正、 セキュリティ修正など...) を実現するには、圧倒的多数のユーザーがサポートし、同意する必要があります。 変更 (これはユーザーがウォレット ソフトウェアを更新するときに発生します) [6].最後に同じ投票が行われます このメカニズムは、一部の機能 [7] の実装に関する集団投票にも使用されます。 これにより、proof-of-work が満たさなければならない特性を推測することができます。 価格設定機能。 このような機能により、ネットワーク参加者が重大な問題を引き起こす可能性があってはなりません。 他の参加者よりも有利。一般的なハードウェアと高度なハードウェアの間のパリティが必要です。 カスタムデバイスのコスト。最近の例 [8] から、SHA-256 関数が使用されていることがわかります。 Bitcoin アーキテクチャでは、マイニングの効率が向上するため、このプロパティはありません。 ハイエンド CPU と比較した場合の GPU および ASIC デバイス。 したがって、Bitcoin は、 GPU と ASIC の所有者が所有しているため、「1 CPU 1 票」の原則に違反するため、参加者は除外されます。 CPU 所有者と比較すると、はるかに大きな投票力を持ちます。それは古典的な例です システム参加者の 20% が投票の 80% 以上を支配するパレートの法則。 ネットワークのセキュリティは問題ではないため、そのような不平等はネットワークのセキュリティとは関係がないと主張する人もいるでしょう。 少数の参加者が投票の大部分を支配しているが、これらの参加者の誠実さ 大切な参加者たち。しかし、このような議論には多少の欠陥があります。 参加者の誠実さよりも、安価な専用ハードウェアが登場する可能性 脅威をもたらします。これを実証するために、次の例を見てみましょう。悪意のある人がいると仮定します 個人は、安価な方法で自分のマイニングファームを作成することで、大幅なマイニングパワーを獲得します。 2 2ページ目のコメント

Bitcoin Nachteile und mögliche Lösungen

2 Bitcoin Nachteile und einige mögliche Lösungen 2.1 Rückverfolgbarkeit von Transaktionen Privatsphäre und Anonymität sind die wichtigsten Aspekte von elektronischem Bargeld. Peer-to-Peer-Zahlungen Sie streben danach, vor der Sicht Dritter verborgen zu bleiben, was einen deutlichen Unterschied zu herkömmlichen Verfahren darstellt Bankwesen. Insbesondere beschrieben T. Okamoto und K. Ohta sechs Kriterien für ideales elektronisches Bargeld: Dazu gehörte „Datenschutz: Die Beziehung zwischen dem Benutzer und seinen Einkäufen muss nicht nachvollziehbar sein.“ von irgendjemandem“ [30]. Aus ihrer Beschreibung haben wir zwei Eigenschaften abgeleitet, die völlig anonym sind Das elektronische Bargeldmodell muss den von Okamoto dargelegten Anforderungen genügen und Ohta: Unverfolgbarkeit: Für jede eingehende Transaktion sind alle möglichen Absender gleichwahrscheinlich. Unverknüpfbarkeit: Für zwei beliebige ausgehende Transaktionen lässt sich nicht nachweisen, dass sie an sie gesendet wurden die gleiche Person. Leider erfüllt Bitcoin nicht die Anforderung der Unauffindbarkeit. Da alle Transaktionen, die zwischen den Netzwerkteilnehmern stattfinden, öffentlich sind, kann jede Transaktion öffentlich sein 1 CryptoNote v 2.0 Nicolas van Saberhagen 17. Oktober 2013 1 Einführung „Bitcoin“ [1] ist eine erfolgreiche Umsetzung des Konzepts des P2P-E-Cash. Beides Fachleute und die breite Öffentlichkeit haben die praktische Kombination von zu schätzen gelernt öffentliche Transaktionen und proof-of-work als Vertrauensmodell. Heute ist die Benutzerbasis von elektronischem Bargeld wächst stetig; Kunden werden von niedrigen Gebühren und der gebotenen Anonymität angezogen durch elektronisches Bargeld und Händler schätzen seine vorhergesagte und dezentrale Ausgabe. Bitcoin hat hat effektiv bewiesen, dass elektronisches Bargeld so einfach wie Papiergeld und so bequem sein kann Kreditkarten. Leider weist Bitcoin mehrere Mängel auf. Beispielsweise ist das System verteilt Die Natur ist unflexibel und verhindert die Implementierung neuer Funktionen, bis fast alle Netzwerkbenutzer ihre Clients aktualisieren. Einige kritische Mängel, die nicht schnell behoben werden können, schrecken Bitcoin ab weite Verbreitung. In solchen unflexiblen Modellen ist es effizienter, ein neues Projekt umzusetzen anstatt das ursprüngliche Projekt ständig zu reparieren. In diesem Artikel untersuchen und schlagen wir Lösungen für die Hauptmängel von Bitcoin vor. Wir glauben dass ein System, das die von uns vorgeschlagenen Lösungen berücksichtigt, zu einem gesunden Wettbewerb führen wird zwischen verschiedenen elektronischen Geldsystemen. Wir bieten auch unser eigenes elektronisches Bargeld „CryptoNote“ an. ein Name, der den nächsten Durchbruch im Bereich des elektronischen Geldes unterstreicht. 2 Bitcoin Nachteile und einige mögliche Lösungen 2.1 Rückverfolgbarkeit von Transaktionen Privatsphäre und Anonymität sind die wichtigsten Aspekte von elektronischem Bargeld. Peer-to-Peer-Zahlungen Sie streben danach, vor der Sicht Dritter verborgen zu bleiben, was einen deutlichen Unterschied zu herkömmlichen Verfahren darstellt Bankwesen. Insbesondere beschrieben T. Okamoto und K. Ohta sechs Kriterien für ideales elektronisches Bargeld: Dazu gehörte „Datenschutz: Die Beziehung zwischen dem Benutzer und seinen Einkäufen muss nicht nachvollziehbar sein.“ von irgendjemandem“ [30]. Aus ihrer Beschreibung haben wir zwei Eigenschaften abgeleitet, die völlig anonym sind Das elektronische Bargeldmodell muss den von Okamoto dargelegten Anforderungen genügen und Ohta: Unverfolgbarkeit: Für jede eingehende Transaktion sind alle möglichen Absender gleichwahrscheinlich. Unverknüpfbarkeit: Für zwei beliebige ausgehende Transaktionen lässt sich nicht nachweisen, dass sie an sie gesendet wurden die gleiche Person. Leider erfüllt Bitcoin nicht die Anforderung der Unauffindbarkeit. Da alle Transaktionen, die zwischen den Netzwerkteilnehmern stattfinden, öffentlich sind, kann jede Transaktion öffentlich sein 1 3 Bitcoin scheitert definitiv an der „Unauffindbarkeit“. Wenn ich Ihnen BTC sende, das Wallet, von dem es gesendet wird ist unwiderruflich auf blockchain gestempelt. Es besteht kein Zweifel darüber, wer diese Gelder geschickt hat. denn nur wer die privaten Schlüssel kennt, kann sie versenden.eindeutig auf einen eindeutigen Ursprung und Endempfänger zurückgeführt werden. Auch wenn sich zwei Teilnehmer austauschen Mittel auf indirektem Weg, eine richtig entwickelte Wegfindungsmethode wird den Ursprung aufdecken und Endempfänger. Es besteht außerdem der Verdacht, dass Bitcoin die zweite Eigenschaft nicht erfüllt. Einige Forscher gab an ([33, 35, 29, 31]), dass eine sorgfältige blockchain-Analyse einen Zusammenhang zwischen aufdecken könnte die Benutzer des Netzwerks Bitcoin und ihre Transaktionen. Obwohl es eine Reihe von Methoden gibt umstritten [25], es besteht der Verdacht, dass viele versteckte persönliche Informationen daraus extrahiert werden können öffentliche Datenbank. Dass Bitcoin die beiden oben genannten Eigenschaften nicht erfüllt, lässt uns zu dem Schluss kommen, dass dies der Fall ist kein anonymes, sondern ein pseudoanonymes elektronisches Bargeldsystem. Die Benutzer entwickelten sich schnell Lösungen, um diesen Mangel zu umgehen. Zwei direkte Lösungen waren „Wäschedienste“ [2] und die Entwicklung verteilter Methoden [3, 4]. Beide Lösungen basieren auf der Idee des Mischens mehrere öffentliche Transaktionen und deren Versand über eine Zwischenadresse; was wiederum hat den Nachteil, dass eine vertrauenswürdige dritte Partei erforderlich ist. Kürzlich wurde von I. Miers et al. ein kreativeres Schema vorgeschlagen. [28]: „Zerocoin“. Zerocoin verwendet kryptografische Einwegakkumulatoren und wissensfreie Beweise, die es Benutzern ermöglichen „Umwandeln“ Sie Bitcoins in Zerocoins und geben Sie sie stattdessen mit einem anonymen Eigentumsnachweis aus explizite, auf öffentlichen Schlüsseln basierende digitale Signaturen. Allerdings haben solche Wissensbeweise eine Konstante aber unpraktische Größe – etwa 30 KB (basierend auf den heutigen Bitcoin-Grenzwerten), was den Vorschlag ausmacht unpraktisch. Die Autoren geben zu, dass das Protokoll wahrscheinlich nie von der Mehrheit akzeptiert werden wird Bitcoin Benutzer [5]. 2.2 Die Funktion proof-of-work Der Erfinder von Bitcoin, Satoshi Nakamoto, beschrieb den Mehrheitsentscheidungsalgorithmus als „oneCPU-one-vote“ und verwendete für seinen proof-of-work eine CPU-gebundene Preisfunktion (double SHA-256). Schema. Da Benutzer für die einzelne Historie der Transaktionsreihenfolge [1] stimmen, ist die Angemessenheit und Konsistenz dieses Prozesses sind kritische Bedingungen für das gesamte System. Die Sicherheit dieses Modells leidet unter zwei Nachteilen. Erstens benötigt es 51 % des Netzwerks Die Mining-Leistung muss unter der Kontrolle ehrlicher Benutzer stehen. Zweitens der Fortschritt des Systems (Fehlerbehebungen, Sicherheitsupdates usw.) erfordern, dass die überwältigende Mehrheit der Benutzer dies unterstützt und ihnen zustimmt Änderungen (dies geschieht, wenn die Benutzer ihre Wallet-Software aktualisieren) [6].Endlich die gleiche Abstimmung Der Mechanismus wird auch für kollektive Umfragen zur Implementierung einiger Funktionen verwendet [7]. Dies ermöglicht es uns, die Eigenschaften zu vermuten, die von proof-of-work erfüllt werden müssen. Preisfunktion. Eine solche Funktion darf es einem Netzwerkteilnehmer nicht ermöglichen, eine signifikante Bedeutung zu erlangen Vorteil gegenüber einem anderen Teilnehmer; es erfordert eine Parität zwischen gemeinsamer Hardware und hoher Hardware Kosten für kundenspezifische Geräte. Aus den aktuellen Beispielen [8] können wir ersehen, dass die Funktion SHA-256 verwendet wird in der Bitcoin-Architektur besitzt diese Eigenschaft nicht, da der Bergbau effizienter wird GPUs und ASIC-Geräte im Vergleich zu High-End-CPUs. Daher schafft Bitcoin günstige Bedingungen für eine große Lücke zwischen der Stimmmacht von Teilnehmer, da dies gegen das „Eine-CPU-eine-Stimme“-Prinzip verstößt, da GPU- und ASIC-Besitzer Eigentümer sind eine viel größere Stimmmacht im Vergleich zu CPU-Besitzern. Es ist ein klassisches Beispiel dafür Pareto-Prinzip, bei dem 20 % der Teilnehmer eines Systems mehr als 80 % der Stimmen kontrollieren. Man könnte argumentieren, dass eine solche Ungleichheit für die Sicherheit des Netzwerks nicht relevant ist, da dies nicht der Fall ist Die geringe Anzahl der Teilnehmer kontrolliert die Mehrheit der Stimmen, aber die Ehrlichkeit dieser Stimmen Teilnehmer, worauf es ankommt. Dieses Argument ist jedoch etwas fehlerhaft, da es eher das ist Möglichkeit, dass billige Spezialhardware auftaucht, und nicht die Ehrlichkeit der Teilnehmer stellt eine Bedrohung dar. Um dies zu demonstrieren, nehmen wir das folgende Beispiel. Angenommen, ein Böswilliger Der Einzelne erlangt beträchtliche Mining-Power, indem er billig seine eigene Mining-Farm gründet 2 eindeutig auf einen eindeutigen Ursprung und Endempfänger zurückgeführt werden. Auch wenn sich zwei Teilnehmer austauschen Mittel auf indirektem Weg, eine richtig entwickelte Wegfindungsmethode wird den Ursprung aufdecken und Endempfänger. Es wird außerdem vermutet, dass Bitcoin die zweite Eigenschaft nicht erfüllt. Einige Forscher gab an ([33, 35, 29, 31]), dass eine sorgfältige blockchain-Analyse einen Zusammenhang zwischen aufdecken könnte die Benutzer des Netzwerks Bitcoin und ihre Transaktionen. Obwohl es eine Reihe von Methoden gibt dMit der Bezeichnung [25] besteht der Verdacht, dass viele versteckte persönliche Informationen daraus extrahiert werden können öffentliche Datenbank. Dass Bitcoin die beiden oben genannten Eigenschaften nicht erfüllt, lässt uns zu dem Schluss kommen, dass dies der Fall ist kein anonymes, sondern ein pseudoanonymes elektronisches Bargeldsystem. Die Benutzer entwickelten sich schnell Lösungen, um diesen Mangel zu umgehen. Zwei direkte Lösungen waren „Wäschedienste“ [2] und die Entwicklung verteilter Methoden [3, 4]. Beide Lösungen basieren auf der Idee des Mischens mehrere öffentliche Transaktionen und deren Versand über eine Zwischenadresse; was wiederum hat den Nachteil, dass eine vertrauenswürdige dritte Partei erforderlich ist. Kürzlich wurde von I. Miers et al. ein kreativeres Schema vorgeschlagen. [28]: „Zerocoin“. Zerocoin verwendet kryptografische Einwegakkumulatoren und wissensfreie Beweise, die es Benutzern ermöglichen „Umwandeln“ Sie Bitcoins in Zerocoins und geben Sie sie stattdessen mit einem anonymen Eigentumsnachweis aus explizite, auf öffentlichen Schlüsseln basierende digitale Signaturen. Allerdings haben solche Wissensbeweise eine Konstante aber unpraktische Größe – etwa 30 KB (basierend auf den heutigen Bitcoin-Grenzwerten), was den Vorschlag ausmacht unpraktisch. Die Autoren geben zu, dass das Protokoll wahrscheinlich nie von der Mehrheit akzeptiert werden wird Bitcoin Benutzer [5]. 2.2 Die Funktion proof-of-work Der Erfinder von Bitcoin, Satoshi Nakamoto, beschrieb den Mehrheitsentscheidungsalgorithmus als „oneCPU-one-vote“ und verwendete für seinen proof-of-work eine CPU-gebundene Preisfunktion (double SHA-256). Schema. Da Benutzer für die einzelne Transaktionsverlaufsreihenfolge [1] stimmen, ist die Angemessenheit und Konsistenz dieses Prozesses sind kritische Bedingungen für das gesamte System. Die Sicherheit dieses Modells leidet unter zwei Nachteilen. Erstens benötigt es 51 % des Netzwerks Die Mining-Leistung muss unter der Kontrolle ehrlicher Benutzer stehen. Zweitens der Fortschritt des Systems (Fehlerbehebungen, Sicherheitsupdates usw.) erfordern, dass die überwältigende Mehrheit der Benutzer dies unterstützt und ihnen zustimmt Änderungen (dies geschieht, wenn die Benutzer ihre Wallet-Software aktualisieren) [6].Endlich die gleiche Abstimmung Der Mechanismus wird auch für kollektive Umfragen zur Implementierung einiger Funktionen verwendet [7]. Dies ermöglicht es uns, die Eigenschaften zu vermuten, die von proof-of-work erfüllt werden müssen. Preisfunktion. Eine solche Funktion darf es einem Netzwerkteilnehmer nicht ermöglichen, eine signifikante Bedeutung zu erlangen Vorteil gegenüber einem anderen Teilnehmer; es erfordert eine Parität zwischen gemeinsamer Hardware und hoher Hardware Kosten für kundenspezifische Geräte. Aus den aktuellen Beispielen [8] können wir ersehen, dass die Funktion SHA-256 verwendet wird in der Bitcoin-Architektur besitzt diese Eigenschaft nicht, da der Bergbau effizienter wird GPUs und ASIC-Geräte im Vergleich zu High-End-CPUs. Daher schafft Bitcoin günstige Bedingungen für eine große Kluft zwischen der Stimmmacht von Teilnehmer, da dies gegen das „Eine-CPU-eine-Stimme“-Prinzip verstößt, da GPU- und ASIC-Besitzer Eigentümer sind eine viel größere Stimmmacht im Vergleich zu CPU-Besitzern. Es ist ein klassisches Beispiel dafür Pareto-Prinzip, bei dem 20 % der Teilnehmer eines Systems mehr als 80 % der Stimmen kontrollieren. Man könnte argumentieren, dass eine solche Ungleichheit für die Sicherheit des Netzwerks nicht relevant ist, da dies nicht der Fall ist Die geringe Anzahl der Teilnehmer kontrolliert die Mehrheit der Stimmen, aber die Ehrlichkeit dieser Stimmen Teilnehmer, worauf es ankommt. Dieses Argument ist jedoch etwas fehlerhaft, da es eher das ist Möglichkeit, dass billige Spezialhardware auftaucht, und nicht die Ehrlichkeit der Teilnehmer stellt eine Bedrohung dar. Um dies zu demonstrieren, nehmen wir das folgende Beispiel. Angenommen, ein Böswilliger Der Einzelne erlangt beträchtliche Mining-Power, indem er billig seine eigene Mining-Farm gründet 2 4 Vermutlich, wenn jeder Nutzer seiner eigenen Anonymität dadurch gerecht wird, dass er immer eine neue Adresse generiert für JEDE erhaltene Zahlung (was absurd, aber technisch gesehen die „richtige“ Vorgehensweise ist), und wenn jeder Benutzer die Anonymität aller anderen dadurch schützen würde, dass er darauf besteht, niemals Geld zu senden zweimal an dieselbe BTC-Adresse senden, dann würde Bitcoin immer noch nur umständlich das übergeben Unverknüpfbarkeitstest. Warum? Verbraucherdaten können genutzt werden, um jederzeit erstaunlich viel über Menschen herauszufinden. Siehe zum Beispiel http://www.applieddatalabs.com/content/target-knows-it-shows Stellen Sie sich nun vor, dass dies 20 Jahre in der Zukunft liegt, und stellen Sie sich außerdem vor, dass Target es nicht einfach wusste über Ihre Kaufgewohnheiten bei Target, aber sie haben die blockchain für ALLES durchsucht IHRE PERSÖNLICHEN EINKÄUFE MIT IHREM COINBASE WALLET FÜR DIE VERGANGENHEIT ZWÖLF JAHRE. Sie werden sagen: „Hey Kumpel, vielleicht möchtest du dir heute Abend ein Hustenmittel besorgen, das wirst du nicht.“ Fühlen Sie sich morgen gut. Dies ist möglicherweise nicht der Fall, wenn die Mehrparteiensortierung korrekt ausgenutzt wird. Siehe zum Beispiel diesBlogbeitrag: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ Ich bin von der Rechnung nicht ganz überzeugt, aber ... ein Papier nach dem anderen, oder? Zitat erforderlich. Während das Zerocoin-Protokoll (Standalone) möglicherweise unzureichend ist, ist das Zerocash Das Protokoll scheint Transaktionen mit einer Größe von 1 KB implementiert zu haben. Dieses Projekt wird unterstützt von natürlich die US-amerikanischen und israelischen Streitkräfte, also wer weiß schon, wie robust es ist. Auf der anderen Seite Andererseits möchte niemand mehr Geld ohne Aufsicht ausgeben können als das Militär. http://zerocash-project.org/ Ich bin nicht überzeugt... siehe zum Beispiel http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf Zitat eines Cryptonote-Entwicklers Maurice Planck (vermutlich ein Pseudonym) aus der Cryptonote Foren: „Zerocoin, Zerocash. Das ist die fortschrittlichste Technologie, das muss ich zugeben. Ja, das Zitat Das Obige stammt aus der Analyse der vorherigen Version des Protokolls. Meines Wissens nach ist das nicht der Fall 288, aber 384 Bytes, aber das sind trotzdem gute Nachrichten. Sie nutzten eine brandneue Technik namens SNARK, die gewisse Nachteile hat: zum Beispiel große anfängliche Datenbank öffentlicher Parameter, die zum Erstellen einer Signatur erforderlich sind (mehr als 1 GB) und Erheblicher Zeitaufwand für die Erstellung einer Transaktion (mehr als eine Minute). Schließlich verwenden sie a junge Krypto, die ich als umstrittene Idee erwähnt habe: https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. Do 3. April 2014 19:56 Uhr Eine Funktion, die in der CPU ausgeführt wird und nicht für GPU, FPGA oder ASIC geeignet ist Berechnung. Das in proof-of-work verwendete „Puzzle“ wird als Preisfunktion, Kostenfunktion oder bezeichnet Puzzle-Funktion.

eindeutig auf einen eindeutigen Ursprung und Endempfänger zurückgeführt werden. Auch wenn sich zwei Teilnehmer austauschen Mittel auf indirektem Weg, eine richtig entwickelte Wegfindungsmethode wird den Ursprung aufdecken und Endempfänger. Es wird auch vermutet, dass Bitcoin die zweite Eigenschaft nicht erfüllt. Einige Forscher gab an ([33, 35, 29, 31]), dass eine sorgfältige blockchain-Analyse einen Zusammenhang zwischen aufdecken könnte die Benutzer des Netzwerks Bitcoin und ihre Transaktionen. Obwohl es eine Reihe von Methoden gibt umstritten [25], es besteht der Verdacht, dass viele versteckte persönliche Informationen daraus extrahiert werden können öffentliche Datenbank. Dass Bitcoin die beiden oben genannten Eigenschaften nicht erfüllt, lässt uns zu dem Schluss kommen, dass dies der Fall ist kein anonymes, sondern ein pseudoanonymes elektronisches Bargeldsystem. Die Benutzer entwickelten sich schnell Lösungen, um diesen Mangel zu umgehen. Zwei direkte Lösungen waren „Wäschedienste“ [2] und die Entwicklung verteilter Methoden [3, 4]. Beide Lösungen basieren auf der Idee des Mischens mehrere öffentliche Transaktionen und deren Versand über eine Zwischenadresse; was wiederum hat den Nachteil, dass eine vertrauenswürdige dritte Partei erforderlich ist. Kürzlich wurde von I. Miers et al. ein kreativeres Schema vorgeschlagen. [28]: „Zerocoin“. Zerocoin verwendet kryptografische Einwegakkumulatoren und wissensfreie Beweise, die es Benutzern ermöglichen „Umwandeln“ Sie Bitcoins in Zerocoins und geben Sie sie stattdessen mit einem anonymen Eigentumsnachweis aus explizite, auf öffentlichen Schlüsseln basierende digitale Signaturen. Allerdings haben solche Wissensbeweise eine Konstante aber unpraktische Größe – etwa 30 KB (basierend auf den heutigen Bitcoin-Grenzwerten), was den Vorschlag ausmacht unpraktisch. Die Autoren geben zu, dass das Protokoll wahrscheinlich nie von der Mehrheit akzeptiert werden wird Bitcoin Benutzer [5]. 2.2 Die Funktion proof-of-work Der Erfinder von Bitcoin, Satoshi Nakamoto, beschrieb den Mehrheitsentscheidungsalgorithmus als „oneCPU-one-vote“ und verwendete für seinen proof-of-work eine CPU-gebundene Preisfunktion (double SHA-256). Schema. Da Benutzer für die einzelne Transaktionsverlaufsreihenfolge [1] stimmen, ist die Angemessenheit und Konsistenz dieses Prozesses sind kritische Bedingungen für das gesamte System. Die Sicherheit dieses Modells leidet unter zwei Nachteilen. Erstens benötigt es 51 % des Netzwerks Die Mining-Leistung muss unter der Kontrolle ehrlicher Benutzer stehen. Zweitens der Fortschritt des Systems (Fehlerbehebungen, Sicherheitsupdates usw.) erfordern, dass die überwältigende Mehrheit der Benutzer dies unterstützt und ihnen zustimmt Änderungen (dies geschieht, wenn die Benutzer ihre Wallet-Software aktualisieren) [6]. Endlich die gleiche Abstimmung Der Mechanismus wird auch für kollektive Umfragen zur Implementierung einiger Funktionen verwendet [7]. Dies ermöglicht es uns, die Eigenschaften zu vermuten, die von proof-of-work erfüllt werden müssen. Preisfunktion. Eine solche Funktion darf es einem Netzwerkteilnehmer nicht ermöglichen, eine signifikante Bedeutung zu erlangen Vorteil gegenüber einem anderen Teilnehmer; es erfordert eine Parität zwischen gemeinsamer Hardware und hoher Hardware Kosten für kundenspezifische Geräte. Aus den aktuellen Beispielen [8] können wir ersehen, dass die Funktion SHA-256 verwendet wird in der Bitcoin-Architektur besitzt diese Eigenschaft nicht, da der Bergbau effizienter wird GPUs und ASIC-Geräte im Vergleich zu High-End-CPUs. Daher schafft Bitcoin günstige Bedingungen für eine große Kluft zwischen der Stimmmacht von Teilnehmer, da dies gegen das „Eine-CPU-eine-Stimme“-Prinzip verstößt, da GPU- und ASIC-Besitzer Eigentümer sind eine viel größere Stimmmacht im Vergleich zu CPU-Besitzern. Es ist ein klassisches Beispiel dafür Pareto-Prinzip, bei dem 20 % der Teilnehmer eines Systems mehr als 80 % der Stimmen kontrollieren. Man könnte argumentieren, dass eine solche Ungleichheit für die Sicherheit des Netzwerks nicht relevant ist, da dies nicht der Fall ist Die geringe Anzahl der Teilnehmer kontrolliert die Mehrheit der Stimmen, aber die Ehrlichkeit dieser Stimmen Teilnehmer, worauf es ankommt. Dieses Argument ist jedoch etwas fehlerhaft, da es eher das ist Möglichkeit, dass billige Spezialhardware auftaucht, und nicht die Ehrlichkeit der Teilnehmer stellt eine Bedrohung dar. Um dies zu demonstrieren, nehmen wir das folgende Beispiel. Angenommen, ein Böswilliger Der Einzelne erlangt beträchtliche Mining-Power, indem er billig seine eigene Mining-Farm gründet 2 eindeutig auf einen eindeutigen Ursprung und Endempfänger zurückgeführt werden. Auch wenn sich zwei Teilnehmer austauschen Mittel auf indirektem Weg, eine richtig entwickelte Wegfindungsmethode wird den Ursprung aufdecken und Endempfänger. Es wird auch vermutet, dass Bitcoin die zweite Eigenschaft nicht erfüllt. Einige Forscher gab an ([33, 35, 29, 31]), dass eine sorgfältige blockchain-Analyse einen Zusammenhang zwischen aufdecken könnte die Benutzer des Netzwerks Bitcoin und ihre Transaktionen. Obwohl es eine Reihe von Methoden gibt dMit der Bezeichnung [25] besteht der Verdacht, dass viele versteckte persönliche Informationen daraus extrahiert werden können öffentliche Datenbank. Dass Bitcoin die beiden oben genannten Eigenschaften nicht erfüllt, lässt uns zu dem Schluss kommen, dass dies der Fall ist kein anonymes, sondern ein pseudoanonymes elektronisches Bargeldsystem. Die Benutzer entwickelten sich schnell Lösungen, um diesen Mangel zu umgehen. Zwei direkte Lösungen waren „Wäschedienste“ [2] und die Entwicklung verteilter Methoden [3, 4]. Beide Lösungen basieren auf der Idee des Mischens mehrere öffentliche Transaktionen und deren Versand über eine Zwischenadresse; was wiederum hat den Nachteil, dass eine vertrauenswürdige dritte Partei erforderlich ist. Kürzlich wurde von I. Miers et al. ein kreativeres Schema vorgeschlagen. [28]: „Zerocoin“. Zerocoin verwendet kryptografische Einwegakkumulatoren und wissensfreie Beweise, die es Benutzern ermöglichen „Umwandeln“ Sie Bitcoins in Zerocoins und geben Sie sie stattdessen mit einem anonymen Eigentumsnachweis aus explizite, auf öffentlichen Schlüsseln basierende digitale Signaturen. Allerdings haben solche Wissensbeweise eine Konstante aber unpraktische Größe – etwa 30 KB (basierend auf den heutigen Bitcoin-Grenzwerten), was den Vorschlag ausmacht unpraktisch. Die Autoren geben zu, dass das Protokoll wahrscheinlich nie von der Mehrheit akzeptiert werden wird Bitcoin Benutzer [5]. 2.2 Die Funktion proof-of-work Der Erfinder von Bitcoin, Satoshi Nakamoto, beschrieb den Mehrheitsentscheidungsalgorithmus als „oneCPU-one-vote“ und verwendete für seinen proof-of-work eine CPU-gebundene Preisfunktion (double SHA-256). Schema. Da Benutzer für die einzelne Historie der Transaktionsreihenfolge [1] stimmen, ist die Angemessenheit und Konsistenz dieses Prozesses sind kritische Bedingungen für das gesamte System. Die Sicherheit dieses Modells leidet unter zwei Nachteilen. Erstens benötigt es 51 % des Netzwerks Die Mining-Leistung muss unter der Kontrolle ehrlicher Benutzer stehen. Zweitens der Fortschritt des Systems (Fehlerbehebungen, Sicherheitsupdates usw.) erfordern, dass die überwältigende Mehrheit der Benutzer dies unterstützt und ihnen zustimmt Änderungen (dies geschieht, wenn die Benutzer ihre Wallet-Software aktualisieren) [6].Endlich die gleiche Abstimmung Der Mechanismus wird auch für kollektive Umfragen zur Implementierung einiger Funktionen verwendet [7]. Dies ermöglicht es uns, die Eigenschaften zu vermuten, die von proof-of-work erfüllt werden müssen. Preisfunktion. Eine solche Funktion darf es einem Netzwerkteilnehmer nicht ermöglichen, eine signifikante Bedeutung zu erlangen Vorteil gegenüber einem anderen Teilnehmer; es erfordert eine Parität zwischen gemeinsamer Hardware und hoher Hardware Kosten für kundenspezifische Geräte. Aus den aktuellen Beispielen [8] können wir ersehen, dass die Funktion SHA-256 verwendet wird in der Bitcoin-Architektur besitzt diese Eigenschaft nicht, da der Bergbau effizienter wird GPUs und ASIC-Geräte im Vergleich zu High-End-CPUs. Daher schafft Bitcoin günstige Bedingungen für eine große Kluft zwischen der Stimmmacht von Teilnehmer, da dies gegen das „Eine-CPU-eine-Stimme“-Prinzip verstößt, da GPU- und ASIC-Besitzer Eigentümer sind eine viel größere Stimmmacht im Vergleich zu CPU-Besitzern. Es ist ein klassisches Beispiel dafür Pareto-Prinzip, bei dem 20 % der Teilnehmer eines Systems mehr als 80 % der Stimmen kontrollieren. Man könnte argumentieren, dass eine solche Ungleichheit für die Sicherheit des Netzwerks nicht relevant ist, da dies nicht der Fall ist Die geringe Anzahl der Teilnehmer kontrolliert die Mehrheit der Stimmen, aber die Ehrlichkeit dieser Stimmen Teilnehmer, worauf es ankommt. Dieses Argument ist jedoch etwas fehlerhaft, da es eher das ist Möglichkeit, dass billige Spezialhardware auftaucht, und nicht die Ehrlichkeit der Teilnehmer stellt eine Bedrohung dar. Um dies zu demonstrieren, nehmen wir das folgende Beispiel. Angenommen, ein Böswilliger Der Einzelne erlangt beträchtliche Mining-Power, indem er billig seine eigene Mining-Farm gründet 2 Kommentare auf Seite 2

クリプトノートテクノロジー

Bitcoin テクノロジーの制限について説明したので、次は次の点に集中します。 CryptoNoteの機能を紹介します。

Die CryptoNote-Technologie

Nachdem wir uns nun mit den Einschränkungen der Bitcoin-Technologie befasst haben, konzentrieren wir uns auf Vorstellung der Funktionen von CryptoNote.

追跡できない取引

このセクションでは、追跡不可能性と追跡不可能性の両方を満たす完全匿名トランザクションのスキームを提案します。 そしてリンク解除条件。私たちのソリューションの重要な特徴は、送信側の自律性です。 取引を行うために他のユーザーまたは信頼できる第三者と協力する必要はありません。 したがって、各参加者は独立してカバー トラフィックを生成します。 4.1 文献レビュー 私たちのスキームは、グループ署名と呼ばれる暗号化プリミティブに依存しています。最初に提示されたのは D. Chaum と E. van Heyst [19] を使用すると、ユーザーがグループを代表して自分のメッセージに署名できるようになります。 メッセージに署名した後、ユーザーは自分自身の単一の公開情報ではなく (検証目的で) 提供します。 1これはいわゆる「ソフトリミット」、つまり新しいブロックを作成するための参照クライアント制限です。ハード最大値 可能なブロックサイズは 1 MB でした 4 必要に応じてそれらを使用すると、主な欠点が生じます。残念ながら、いつ起こるかを予測するのは困難です。 定数の変更が必要になる場合があり、定数を置き換えるとひどい結果につながる可能性があります。 悲惨な結果をもたらすハードコードされた制限変更の好例は、次のブロックです。 サイズ制限は 250kb1 に設定されています。この制限は、約 10000 件の標準トランザクションを保持するには十分です。で 2013 年の初めには、この制限にほぼ達していたので、上限を増やすことで合意に達しました。 限界。この変更はウォレットバージョン0.8で実装され、24ブロックのチェーン分割で終了しました。 そして二重支出攻撃[9]が成功しました。バグは Bitcoin プロトコルにはありませんでしたが、 むしろデータベース エンジンに問題があった場合、単純なストレス テストで簡単に検出できたはずです。 人為的に導入されたブロック サイズ制限はありません。 定数は、一元化ポイントの形式としても機能します。 ピアツーピアの性質にもかかわらず、 Bitcoin、圧倒的多数のノードは、によって開発された公式リファレンス クライアント [10] を使用しています。 少人数のグループ。このグループは、プロトコルへの変更を実装する決定を下します。 そしてほとんどの人は、その「正しさ」に関係なく、こうした変化を受け入れます。いくつかの決定が引き起こした 白熱した議論が行われ、ボイコット [11] さえ呼び掛けられています。これは、コミュニティと 開発者はいくつかの重要な点で意見が異なる場合があります。したがって、プロトコルを持つことは論理的であると思われます これらの問題を回避する可能な方法として、ユーザーが構成可能で自己調整可能な変数を使用します。 2.5 かさばるスクリプト Bitcoin のスクリプト システムは、重くて複雑な機能です。それは潜在的に人が作成することを可能にします 洗練されたトランザクション [12] ですが、セキュリティ上の懸念から一部の機能が無効になっています。 [13] は一度も使用されていないものもあります。スクリプト (送信側と受信側の両方の部分を含む) Bitcoin で最も人気のあるトランザクションは次のようになります。 OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG。 スクリプトの長さは 164 バイトですが、その唯一の目的は、受信者が 彼の署名を検証するために必要な秘密鍵。 3 クリプトノートテクノロジー Bitcoin テクノロジーの制限について説明したので、次は次の点に集中します。 CryptoNoteの機能を紹介します。 4 追跡できない取引 このセクションでは、追跡不可能性と追跡不可能性の両方を満たす完全匿名トランザクションのスキームを提案します。 そしてリンク解除条件。私たちのソリューションの重要な特徴は、送信側の自律性です。 取引を行うために他のユーザーまたは信頼できる第三者と協力する必要はありません。 したがって、各参加者は独立してカバー トラフィックを生成します。 4.1 文献レビュー 私たちのスキームは、グループ署名と呼ばれる暗号化プリミティブに依存しています。最初に提示されたのは D. Chaum と E. van Heyst [19] では、ユーザーがグループを代表して自分のメッセージに署名できるようになります。 メッセージに署名した後、ユーザーは自分自身の単一の公開情報ではなく (検証目的で) 提供します。 1これはいわゆる「ソフトリミット」、つまり新しいブロックを作成するための参照クライアント制限です。ハード最大値 可能なブロックサイズは 1 MB でした 4 7 振り返ってみると、コード内でブロック サイズを固定制限にしたのは大きな間違いだったようです。 Visa と Mastercard は、数十万とは言わないまでも、数千の取引を処理できます 毎秒。ただし、トランザクションは確率的なプロセスで発生し、場合によっては大規模なバーストで発生します。 時には何時間も静かに過ごすこともあります。ビットコイン交換の量を考えてみましょう。 必要に応じてブロックサイズを動的に増加させるシステムを設計するという壮大なアイデアのように思えます トランザクション トラフィックの増加に対応し、必要に応じて動的にトラフィックを削減します。 帯域幅効率が向上します。 次に、その概念をすべてのシステム パラメーターに適用します。そして、私たちがそれを保つように注意している限り、 システムが制御不能になるのを防ぎます、これはうまくいくかもしれない。 https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki 前述したように、変数が自動調整される場合は、いくつかの制御を課す必要があります。 システムが制御不能になって暴走するのを防ぎます。それについては説明します。 これがウィキペディアの記事であれば、「STUB」というラベルが付けられます。確かにその中にいますが、 「Bitcoin の問題」を紹介するセクションで、ここでもう少し詳しく説明したいと思います。なぜですか 単純な「秘密鍵のチェック」タスクに 164 バイトは受け入れられませんか?どれくらい小さくできるか 合理的なスクリプト言語でしょうか?ただし、私はコンピューター科学者ではありません。 http://download.springer.com/static/pdf/412/chp%253A10.1007%252F3-540-46416-6_22.pdf?auth66=140 説明したように、グループ署名にはグループ マネージャーが必要です。 グループマネージャーは有能です 署名者の匿名性を取り消すこと。したがって、グループ内には集中化が組み込まれています。 署名スキーム。

キーですが、彼のグループのすべてのユーザーのキーです。検証者は、本物の署名者が グループのメンバーですが、署名者を排他的に特定することはできません。 元のプロトコルでは、信頼できる第三者 (グループ マネージャーと呼ばれる) が必要であり、彼は 署名者を追跡できる唯一の人。リングシグネチャと呼ばれる次のバージョンが導入されました リベストらによる。 [34] では、グループ マネージャーや匿名性のない自律的なスキームでした 取り消し。このスキームのさまざまな修正が後に現れました: リンク可能なリング署名 [26, 27, 17] 2 つの署名が同じグループ メンバーによって作成されたかどうかを判断でき、追跡可能 指輪の署名 [24, 23] は、署名者を追跡する可能性を提供することで過度の匿名性を制限しました。 同じメタ情報 ([24] の用語では「タグ」) に関する 2 つのメッセージ。 同様の暗号構造は、アドホック グループ署名としても知られています [16、38]。それ は、任意のグループ形成を強調しますが、グループ/リング署名スキームはむしろ、 メンバーの固定セット。 私たちのソリューションの大部分は、E. Fujisaki の著作「Traceable Ring Signature」に基づいています。 および K. スズキ [24]。元のアルゴリズムと変更を区別するために、 後者をワンタイム呼び出し署名と呼び、ユーザーが有効な呼び出し音を 1 つだけ作成できることを強調します。 彼の秘密鍵の下にある署名。トレーサビリティ性を弱め、リンク性を維持 ワンタイム性を提供するためだけに: 公開鍵は多くの外部検証セットに現れる可能性があり、 秘密キーは、一意の匿名署名を生成するために使用できます。二重支払いの場合 これら 2 つの署名はリンクされますが、署名者を明らかにする必要はありません。 私たちの目的のために。 4.2 定義 4.2.1 楕円曲線パラメータ 基本署名アルゴリズムとして、高速スキーム EdDSA を使用することを選択しました。 DJによって実装されました。バーンスタインら。 [18]。 Bitcoin の ECDSA と同様、楕円曲線に基づいています 離散対数問題なので、私たちのスキームは将来 Bitcoin にも適用される可能性があります。 共通パラメータは次のとおりです。 q:素数。 q = 2255 -19; d:Fqの要素。 d = −121665/121666; E:楕円曲線方程式。 −x2 + y2 = 1 + dx2y2; G:基点。 G = (x, −4/5); l: 基点の素数順序。 l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 暗号 hash 関数 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 決定論的 hash 関数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 用語 プライバシーを強化するには、Bitcoin エンティティと混同しないようにするための新しい用語が必要です。 private ec-key は標準の楕円曲線秘密鍵です: 数値 \(a \in [1, l - 1]\)。 public ec-key は標準の楕円曲線公開鍵です: 点 A = aG; ワンタイム キー ペアは、秘密 EC キーと公開 EC キーのペアです。 5 キーですが、彼のグループのすべてのユーザーのキーです。検証者は、本物の署名者が グループのメンバーですが、署名者を排他的に特定することはできません。 元のプロトコルでは、信頼できる第三者 (グループ マネージャーと呼ばれる) が必要であり、彼は 署名者を追跡できる唯一の人。リングシグネチャと呼ばれる次のバージョンが導入されました リベストらによる。 [34] では、グループ マネージャーや匿名性のない自律的なスキームでした 取り消し。このスキームのさまざまな修正が後に現れました: リンク可能なリング署名 [26, 27, 17] 2 つの署名が同じグループ メンバーによって作成されたかどうかを判断でき、追跡可能 指輪の署名 [24, 23] は、署名者を追跡する可能性を提供することで過度の匿名性を制限しました。 同じメタ情報 ([24] の用語では「タグ」) に関する 2 つのメッセージ。 同様の暗号構造は、アドホック グループ署名としても知られています [16、38]。それ は、任意のグループ形成を強調しますが、グループ/リング署名スキームはむしろ、 メンバーの固定セット。 私たちのソリューションの大部分は、E. Fujisaki の著作「Traceable Ring Signature」に基づいています。 および K. スズキ [24]。元のアルゴリズムと変更を区別するために、 後者をワンタイム呼び出し署名と呼び、ユーザーが有効な呼び出し音を 1 つだけ作成できることを強調します。 彼の秘密鍵の下にある署名。トレーサビリティ性を弱め、リンク性を維持 ワンタイム性を提供するためだけに: 公開キーは多くの外部検証セットに現れる可能性があり、 秘密キーは、一意の匿名署名を生成するために使用できます。二重支払いの場合 これら 2 つの署名はリンクされますが、署名者を明らかにする必要はありません。 私たちの目的のために。 4.2 定義 4.2.1 楕円曲線パラメータ 基本的な署名アルゴリズムとして、e 開発された高速スキーム EdDSA を使用します。 DJによって実装されました。バーンスタインら。 [18]。 Bitcoin の ECDSA と同様、楕円曲線に基づいています 離散対数問題なので、私たちのスキームは将来 Bitcoin にも適用される可能性があります。 共通パラメータは次のとおりです。 q:素数。 q = 2255 -19; d:Fqの要素。 d = −121665/121666; E:楕円曲線方程式。 −x2 + y2 = 1 + dx2y2; G:基点。 G = (x, −4/5); l: 基点の素数順序。 l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 暗号 hash 関数 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 決定論的 hash 関数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 用語 プライバシーを強化するには、Bitcoin エンティティと混同しないようにするための新しい用語が必要です。 private ec-key は標準の楕円曲線秘密鍵です: 数値 \(a \in [1, l - 1]\)。 public ec-key は標準の楕円曲線公開鍵です: 点 A = aG; ワンタイム キー ペアは、秘密 EC キーと公開 EC キーのペアです。 5 8 指輪の署名は次のように機能します。アレックスは、雇用主に関するメッセージをウィキリークスにリークしたいと考えています。彼女の会社のすべての従業員は、秘密鍵と公開鍵のペア (Ri、Ui) を持っています。彼女は作曲します 彼女のメッセージとして設定された入力を含む彼女の署名、m、秘密鍵、Ri、および全員の 公開鍵、(Ui;i=1...n)。誰でも (秘密鍵を知らなくても) 簡単に検証できます。 何らかのペア (Rj, Uj) が署名の構築に使用されたに違いありません...働いている人 アレックスの雇用主の場合...しかし、それがどれであるかを理解するのは基本的にランダムな推測です。 http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 ここで説明するリンク可能なリング署名は、「リンク不可能」の反対のようなものであることに注意してください。 上で説明した。ここでは 2 つのメッセージを傍受し、同じメッセージかどうかを判断できます。 当事者がそれらを送信しましたが、その当事者が誰であるかをまだ特定できないはずです。 の Cryptonote の構築に使用される「リンク不可能」の定義は、次のいずれかを判断できないことを意味します。 同じ当事者がそれらを受信しています。 したがって、ここで実際に起こっているのは 4 つのことです。 システムはリンク可能であることも、 送信者であるかどうかを判断できるかどうかに応じて、リンク不可 2 つのメッセージは同じです (匿名性を取り消す必要があるかどうかに関係なく)。 そして システムは、次のことが可能かどうかに応じて、リンク不能または非リンク可能になります。 2 つのメッセージの受信者が同じかどうかを判断します (かどうかに関係なく) これには匿名性を取り消す必要があります)。 このひどい用語のせいで私を責めないでください。 グラフ理論家はおそらくそうあるべきです 満足です。 「送信者リンク可能」よりも「受信者リンク可能」の方が使いやすい人もいるかもしれません。 http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 これを読んだとき、これはばかげた機能のように思えました。それから、それが次の機能である可能性があることを読みました 電子投票、それは理にかなっているように思えました。そういう観点から見ると、ちょっとクールですね。でも私は 追跡可能なリング署名を意図的に実装するかどうかは完全にはわかりません。 http://search.ieice.org/bin/summary.php?id=e95-a_1_151

キーですが、彼のグループのすべてのユーザーのキーです。検証者は、本物の署名者が グループのメンバーですが、署名者を排他的に特定することはできません。 元のプロトコルでは、信頼できる第三者 (グループ マネージャーと呼ばれる) が必要であり、彼は 署名者を追跡できる唯一の人。リングシグネチャと呼ばれる次のバージョンが導入されました リベストらによる。 [34] では、グループ マネージャーや匿名性のない自律的なスキームでした 取り消し。このスキームのさまざまな修正が後に現れました: リンク可能なリング署名 [26, 27, 17] 2 つの署名が同じグループ メンバーによって作成されたかどうかを判断でき、追跡可能 指輪の署名 [24, 23] は、署名者を追跡する可能性を提供することで過度の匿名性を制限しました。 同じメタ情報 ([24] の用語では「タグ」) に関する 2 つのメッセージ。 同様の暗号構造は、アドホック グループ署名としても知られています [16、38]。それ は、任意のグループ形成を強調しますが、グループ/リング署名スキームはむしろ、 メンバーの固定セット。 私たちのソリューションの大部分は、E. Fujisaki の著作「Traceable Ring Signature」に基づいています。 および K. スズキ [24]。元のアルゴリズムと変更を区別するために、 後者をワンタイム呼び出し署名と呼び、ユーザーが有効な呼び出し音を 1 つだけ作成できることを強調します。 彼の秘密鍵の下にある署名。トレーサビリティ性を弱め、リンク性を維持 ワンタイム性を提供するためだけに: 公開キーは多くの外部検証セットに現れる可能性があり、 秘密キーは、一意の匿名署名を生成するために使用できます。二重支払いの場合 これら 2 つの署名はリンクされますが、署名者を明らかにする必要はありません。 私たちの目的のために。 4.2 定義 4.2.1 楕円曲線パラメータ 基本署名アルゴリズムとして、高速スキーム EdDSA を使用することを選択しました。 DJによって実装されました。バーンスタインら。 [18]。 Bitcoin の ECDSA と同様、楕円曲線に基づいています 離散対数問題なので、私たちのスキームは将来 Bitcoin にも適用される可能性があります。 共通パラメータは次のとおりです。 q:素数。 q = 2255 -19; d:Fqの要素。 d = −121665/121666; E:楕円曲線方程式。 −x2 + y2 = 1 + dx2y2; G:基点。 G = (x, −4/5); l: 基点の素数順序。 l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 暗号 hash 関数 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 決定論的 hash 関数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 用語 プライバシーを強化するには、Bitcoin エンティティと混同しないようにするための新しい用語が必要です。 private ec-key は標準の楕円曲線秘密鍵です: 数値 \(a \in [1, l - 1]\)。 public ec-key は標準の楕円曲線公開鍵です: 点 A = aG; ワンタイム キー ペアは、秘密 EC キーと公開 EC キーのペアです。 5 キーですが、彼のグループのすべてのユーザーのキーです。検証者は、本物の署名者が グループのメンバーですが、署名者を排他的に特定することはできません。 元のプロトコルでは、信頼できる第三者 (グループ マネージャーと呼ばれる) が必要であり、彼は 署名者を追跡できる唯一の人。リングシグネチャと呼ばれる次のバージョンが導入されました リベストらによる。 [34] では、グループ マネージャーや匿名性のない自律的なスキームでした 取り消し。このスキームのさまざまな修正が後に現れました: リンク可能なリング署名 [26, 27, 17] 2 つの署名が同じグループ メンバーによって作成されたかどうかを判断でき、追跡可能 指輪の署名 [24, 23] は、署名者を追跡する可能性を提供することで過度の匿名性を制限しました。 同じメタ情報 ([24] の用語では「タグ」) に関する 2 つのメッセージ。 同様の暗号構造は、アドホック グループ署名としても知られています [16、38]。それ は、任意のグループ形成を強調しますが、グループ/リング署名スキームはむしろ、 メンバーの固定セット。 私たちのソリューションの大部分は、E. Fujisaki の著作「Traceable Ring Signature」に基づいています。 および K. スズキ [24]。元のアルゴリズムと変更を区別するために、 後者をワンタイム呼び出し署名と呼び、ユーザーが有効な呼び出し音を 1 つだけ作成できることを強調します。 彼の秘密鍵の下にある署名。トレーサビリティ性を弱め、リンク性を維持 ワンタイム性を提供するためだけに: 公開キーは多くの外部検証セットに現れる可能性があり、 秘密キーは、一意の匿名署名を生成するために使用できます。二重支払いの場合 これら 2 つの署名はリンクされますが、署名者を明らかにする必要はありません。 私たちの目的のために。 4.2 定義 4.2.1 楕円曲線パラメータ 基本的な署名アルゴリズムとして、e 開発された高速スキーム EdDSA を使用します。 DJによって実装されました。バーンスタインら。 [18]。 Bitcoin の ECDSA と同様、楕円曲線に基づいています 離散対数問題なので、私たちのスキームは将来 Bitcoin にも適用される可能性があります。 共通パラメータは次のとおりです。 q:素数。 q = 2255 -19; d:Fqの要素。 d = −121665/121666; E:楕円曲線方程式。 −x2 + y2 = 1 + dx2y2; G:基点。 G = (x, −4/5); l: 基点の素数順序。 l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 暗号 hash 関数 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 決定論的 hash 関数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 用語 プライバシーを強化するには、Bitcoin エンティティと混同しないようにするための新しい用語が必要です。 private ec-key は標準の楕円曲線秘密鍵です: 数値 \(a \in [1, l - 1]\)。 public ec-key は標準の楕円曲線公開鍵です: 点 A = aG; ワンタイム キー ペアは、秘密 EC キーと公開 EC キーのペアです。 5 9 ああ、このホワイトペーパーの著者なら、これをもっと適切に表現できたはずです。たとえば、 従業員所有の会社は、特定の新規企業を買収するかどうかについて投票を行いたいと考えています アレックスとブレンダは両方とも従業員です。会社は従業員一人ひとりに 「提案 A に賛成票を投じます!」のようなメッセージメタ情報「問題」を持つ [PROP A] そして、その提案を支持する場合は、追跡可能な指輪の署名で署名するように求めます。 従来のリング署名を使用すると、不正な従業員がメッセージに何度も署名する可能性があります。 おそらく、好きなだけ投票するために、さまざまな nonce を使用しているのでしょう。一方では 追跡可能なリング署名スキームで、アレックスは投票に行き、彼女の秘密鍵は 問題 [PROP A] で使用されました。アレックスが「私、ブレンダは賛成します」のようなメッセージに署名しようとすると、 提案A!」ブレンダを「フレーム化」して二重投票する場合、この新しいメッセージにも問題が発生します [プロップA]。 Alex の秘密鍵はすでに [PROP A] 問題を解決しているため、Alex の身元は すぐに詐欺だと判明します。 正直言って、これはかなりクールです!暗号化により投票の平等が強制されました。 http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 この論文は興味深いもので、基本的にはアドホックなリング署名を作成しますが、 他の参加者の同意。署名の構造は異なる場合があります。掘ってないよ 深くて安全かどうかはわかりません。 https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai アドホック グループ署名は次のとおりです。 リング署名。グループのないグループ署名です。 マネージャ、一元化はありませんが、アドホック グループのメンバーが次のことを証明できるように主張できます。 グループを代表して匿名の署名を発行したことはありません(発行していません)。 http://link.springer.com/chapter/10.1007/11908739_9 私の理解では、これは完全に正しくありません。そして私の理解はおそらく次のように変わるでしょう このプロジェクトにさらに深く関わっていきます。しかし、私の理解では、階層は次のようになります。 グループ署名: グループ マネージャーはトレーサビリティとメンバーの追加または削除の機能を制御します。 署名者であることから。 Ring sigs: グループマネージャーのいない任意のグループ形成。匿名性の取り消しはありません。 特定の署名を拒否する方法はありません。追跡可能でリンク可能なリング付き 署名、匿名性はある程度拡張可能です。 アドホック グループ署名: リング署名と似ていますが、メンバーは自分が作成したものではないことを証明できます。 特定の署名。これは、グループ内の誰もが署名を作成できる場合に重要です。 http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 藤崎と鈴木のアルゴリズムは、一度限りのものを提供するために作者によって後で調整されます。それで 藤崎氏と鈴木氏のアルゴリズムを新しいアルゴリズムと並行して分析します。 ここでそれを検討するよりも。

キーですが、彼のグループのすべてのユーザーのキーです。検証者は、本物の署名者が グループのメンバーですが、署名者を排他的に特定することはできません。 元のプロトコルでは、信頼できる第三者 (グループ マネージャーと呼ばれる) が必要であり、彼は 署名者を追跡できる唯一の人。リングシグネチャと呼ばれる次のバージョンが導入されました リベストらによる。 [34] では、グループ マネージャーや匿名性のない自律的なスキームでした 取り消し。このスキームのさまざまな修正が後に現れました: リンク可能なリング署名 [26, 27, 17] 2 つの署名が同じグループ メンバーによって作成されたかどうかを判断でき、追跡可能 指輪の署名 [24, 23] は、署名者を追跡する可能性を提供することで過度の匿名性を制限しました。 同じメタ情報 ([24] の用語では「タグ」) に関する 2 つのメッセージ。 同様の暗号構造は、アドホック グループ署名としても知られています [16、38]。それ は、任意のグループ形成を強調しますが、グループ/リング署名スキームはむしろ、 メンバーの固定セット。 私たちのソリューションの大部分は、E. Fujisaki の著作「Traceable Ring Signature」に基づいています。 および K. スズキ [24]。元のアルゴリズムと変更を区別するために、 後者をワンタイム呼び出し署名と呼び、ユーザーが有効な呼び出し音を 1 つだけ作成できることを強調します。 彼の秘密鍵の下にある署名。トレーサビリティ性を弱め、リンク性を維持 ワンタイム性を提供するためだけに: 公開キーは多くの外部検証セットに現れる可能性があり、 秘密キーは、一意の匿名署名を生成するために使用できます。二重支払いの場合 これら 2 つの署名はリンクされますが、署名者を明らかにする必要はありません。 私たちの目的のために。 4.2 定義 4.2.1 楕円曲線パラメータ 基本署名アルゴリズムとして、高速スキーム EdDSA を使用することを選択しました。 DJによって実装されました。バーンスタインら。 [18]。 Bitcoin の ECDSA と同様、楕円曲線に基づいています 離散対数問題なので、私たちのスキームは将来 Bitcoin にも適用される可能性があります。 共通パラメータは次のとおりです。 q:素数。 q = 2255 -19; d:Fqの要素。 d = −121665/121666; E:楕円曲線方程式。 −x2 + y2 = 1 + dx2y2; G:基点。 G = (x, −4/5); l: 基点の素数順序。 l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 暗号 hash 関数 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 決定論的 hash 関数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 用語 プライバシーを強化するには、Bitcoin エンティティと混同しないようにするための新しい用語が必要です。 private ec-key は標準の楕円曲線秘密鍵です: 数値 \(a \in [1, l - 1]\)。 public ec-key は標準の楕円曲線公開鍵です: 点 A = aG; ワンタイム キー ペアは、秘密 EC キーと公開 EC キーのペアです。 5 キーですが、彼のグループのすべてのユーザーのキーです。検証者は、本物の署名者が グループのメンバーですが、署名者を排他的に特定することはできません。 元のプロトコルでは、信頼できる第三者 (グループ マネージャーと呼ばれる) が必要であり、彼は 署名者を追跡できる唯一の人。リングシグネチャと呼ばれる次のバージョンが導入されました リベストらによる。 [34] では、グループ マネージャーや匿名性のない自律的なスキームでした 取り消し。このスキームのさまざまな修正が後に現れました: リンク可能なリング署名 [26, 27, 17] 2 つの署名が同じグループ メンバーによって作成されたかどうかを判断でき、追跡可能 指輪の署名 [24, 23] は、署名者を追跡する可能性を提供することで過度の匿名性を制限しました。 同じメタ情報 ([24] の用語では「タグ」) に関する 2 つのメッセージ。 同様の暗号構造は、アドホック グループ署名としても知られています [16、38]。それ は、任意のグループ形成を強調しますが、グループ/リング署名スキームはむしろ、 メンバーの固定セット。 私たちのソリューションの大部分は、E. Fujisaki の著作「Traceable Ring Signature」に基づいています。 および K. スズキ [24]。元のアルゴリズムと変更を区別するために、 後者をワンタイム呼び出し署名と呼び、ユーザーが有効な呼び出し音を 1 つだけ作成できることを強調します。 彼の秘密鍵の下にある署名。トレーサビリティ性を弱め、リンク性を維持 ワンタイム性を提供するためだけに: 公開キーは多くの外部検証セットに現れる可能性があり、 秘密キーは、一意の匿名署名を生成するために使用できます。二重支払いの場合 これら 2 つの署名はリンクされますが、署名者を明らかにする必要はありません。 私たちの目的のために。 4.2 定義 4.2.1 楕円曲線パラメータ 基本的な署名アルゴリズムとして、e 開発された高速スキーム EdDSA を使用します。 DJによって実装されました。バーンスタインら。 [18]。 Bitcoin の ECDSA と同様、楕円曲線に基づいています 離散対数問題なので、私たちのスキームは将来 Bitcoin にも適用される可能性があります。 共通パラメータは次のとおりです。 q:素数。 q = 2255 -19; d:Fqの要素。 d = −121665/121666; E:楕円曲線方程式。 −x2 + y2 = 1 + dx2y2; G:基点。 G = (x, −4/5); l: 基点の素数順序。 l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 暗号 hash 関数 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 決定論的 hash 関数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 用語 プライバシーを強化するには、Bitcoin エンティティと混同しないようにするための新しい用語が必要です。 private ec-key は標準の楕円曲線秘密鍵です: 数値 \(a \in [1, l - 1]\)。 public ec-key は標準の楕円曲線公開鍵です: 点 A = aG; ワンタイム キー ペアは、秘密 EC キーと公開 EC キーのペアです。 5 10 「リンク可能なリング署名」という意味でのリンク可能性とは、ソースが誰であるかを明らかにすることなく、2 つの発信トランザクションが同じソースからのものであるかどうかを判断できることを意味します。作者は弱体化した (a) プライバシーを維持しながら、(b) 秘密キーを使用してトランザクションを特定するためのリンク性 2回目は無効です。 さて、これは順序立てての質問です。 次のシナリオを考えてみましょう。 私の採掘 コンピュータには現在の blockchain があり、それが呼び出す独自のトランザクション ブロックがあります。 正当な場合、proof-of-work パズルのそのブロックで動作し、 次のブロックに追加される保留中のトランザクションのリスト。新作も発信していきます トランザクションを保留中のトランザクションのプールに追加します。 次のブロックを解かなければ、 他の人がそうすれば、blockchain の更新されたコピーを入手できます。私が取り組んでいたブロックと 私の保留中のトランザクションのリストには、どちらにも現在組み込まれているトランザクションが含まれている可能性があります blockchain に入力します。 保留中のブロックを解明し、それを保留中のトランザクションのリストと組み合わせて、それを呼び出します 私の保留中のトランザクションのプール。現在正式に blockchain に含まれているものはすべて削除してください。 さて、どうすればいいでしょうか?まず「二重支出をすべて削除する」必要がありますか?一方では リストを検索して、各秘密鍵がまだ作成されていないことを確認する必要がありますか? 使用済みであり、リスト内ですでに使用されている場合は、最初のコピーを先に受け取ったため、 それ以上のコピーは違法です。したがって、最初のインスタンスの後のすべてのインスタンスを単純に削除します。 同じ秘密鍵の。 代数幾何学は私の得意分野ではありませんでした。 http://en.wikipedia.org/wiki/EdDSA このスピード、すごいですね。これは勝利のための代数幾何学です。何もわかるわけじゃないけど それについて。 問題があるかどうかにかかわらず、離散ログは非常に高速になっています。そして量子コンピューターはそれらを食べる 朝食に。 http://link.springer.com/article/10.1007/s13389-012-0027-1 これは非常に重要な数字になりますが、それがどのように行われるかについての説明や引用はありません。 が選ばれました。既知の大きな素数を 1 つ選択するだけなら問題ありませんが、既知の素数が存在する場合は、 この大きな素数に関する事実は、私たちの選択に影響を与える可能性があります。暗号通貨のさまざまな亜種 異なる値を選択することもできます まあ、しかし、それがどのようにして起こるかについては、この文書では議論されていません。 選択は、5 ページにリストされている他のグローバル パラメーターの選択に影響します。 この文書には、パラメーター値の選択に関するセクションが必要です。

ユーザー秘密キーは、2 つの異なる秘密 EC キーのペア (a、b) です。 追跡キーは秘密鍵と公開 EC 鍵のペア (a, B) です (B = bG および a ̸= b)。 公開ユーザー鍵は、(a, b) から派生した 2 つの公開 EC 鍵のペア (A, B) です。 標準アドレスは、人間にわかりやすい文字列で与えられた公開ユーザー キーの表現です。 エラー訂正あり。 切り詰められたアドレスは、指定された公開ユーザー キーの後半 (ポイント B) を表します。 エラー修正を行って人間に優しい文字列に変換します。 トランザクション構造は Bitcoin の構造と同様であり、すべてのユーザーが選択できます。 複数の独立した入金 (トランザクション出力) に対応する署名を付けます。 秘密鍵を取得して別の宛先に送信します。 ユーザーが一意の秘密鍵と公開鍵を所有する Bitcoin のモデルとは対照的に、 提案されたモデルでは、送信者は受信者のアドレスに基づいてワンタイム公開鍵を生成し、 ランダムなデータ。この意味で、同じ受信者に対する受信トランザクションは、 ワンタイム公開キー (一意のアドレスに直接ではない) であり、受信者のみがそのキーを回復できます。 彼の資金を償還するための対応するプライベート部分(彼の一意の秘密キーを使用)。受信者は次のことができます 指輪の署名を使用して資金を使い、所有権と実際の支出を匿名にします。 プロトコルの詳細については、次のサブセクションで説明します。 4.3 リンクできない支払い 従来の Bitcoin アドレスは、公開されると、受信者の明確な識別子になります。 支払いをリンクし、受取人の仮名に結び付ける。誰かがそうしたいなら 「結合されていない」トランザクションを受け取った場合、プライベート チャネルで自分のアドレスを送信者に伝える必要があります。 同じ所有者に属することが証明できない異なるトランザクションを受け取りたい場合 彼はさまざまなアドレスをすべて生成し、決して自分のペンネームで公開すべきではありません。 公共 プライベート アリス キャロル ボブのアドレス 1 ボブのアドレス 2 ボブの鍵 1 ボブの鍵 2 ボブ 図 2. 従来の Bitcoin キー/トランザクション モデル。 ユーザーが単一のアドレスを公開し、無条件で受信できるソリューションを提案します。 リンクできない支払い。各 CryptoNote 出力の宛先 (デフォルト) は公開キーです。 受信者のアドレスと送信者のランダムなデータから導き出されます。 Bitcoin に対する主な利点 すべての宛先キーはデフォルトで一意であるということです (送信者が各宛先キーに同じデータを使用しない限り) 同じ受信者に対する彼のトランザクションの内容)。したがって、「アドレスの再利用」などの問題は発生しません。 設計上、トランザクションが特定のアドレスまたはリンクに送信されたかどうかを監視者は判断できません。 2 つのアドレスを一緒にします。 6 ユーザー秘密キーは、2 つの異なる秘密 EC キーのペア (a、b) です。 追跡キーは秘密鍵と公開 EC 鍵のペア (a, B) です (B = bG および a ̸= b)。 公開ユーザー鍵は、(a, b) から派生した 2 つの公開 EC 鍵のペア (A, B) です。 標準アドレスは、人間にわかりやすい文字列で与えられた公開ユーザー キーの表現です。 エラー訂正あり。 切り詰められたアドレスは、指定された公開ユーザー キーの後半 (ポイント B) を表します。 エラー修正を行って人間に優しい文字列に変換します。 トランザクション構造は Bitcoin の構造と同様のままです。すべてのユーザーが選択できます。 複数の独立した入金 (トランザクション出力) に対応する署名を付けます。 秘密鍵を取得して別の宛先に送信します。 ユーザーが一意の秘密鍵と公開鍵を所有する Bitcoin のモデルとは対照的に、 提案されたモデルでは、送信者は受信者のアドレスに基づいてワンタイム公開鍵を生成し、 ランダムなデータ。この意味で、同じ受信者に対する受信トランザクションは、 ワンタイム公開キー (一意のアドレスに直接ではない) であり、受信者のみがそのキーを回復できます。 彼の資金を償還するための対応するプライベート部分(彼の一意の秘密キーを使用)。受信者は次のことができます 指輪の署名を使用して資金を使い、所有権と実際の支出を匿名にします。 プロトコルの詳細については、次のサブセクションで説明します。 4.3 リンクできない支払い 従来の Bitcoin アドレスは、公開されると、受信者の明確な識別子になります。 支払いをリンクし、受取人の仮名に結び付ける。誰かがそうしたいなら 「結合されていない」トランザクションを受け取った場合、プライベート チャネルで自分のアドレスを送信者に伝える必要があります。 同じ所有者に属することが証明できない異なるトランザクションを受け取りたい場合 彼はさまざまなアドレスをすべて生成し、決して自分のペンネームで公開すべきではありません。 公共 プライベート アリス キャロル ボブのアドレス 1 ボブのアドレス 2 ボブの鍵 1 ボブの鍵 2 ボブ 図 2. 従来の Bitcoin キー/トランザクション modエル。 ユーザーが単一のアドレスを公開し、無条件で受信できるソリューションを提案します。 リンクできない支払い。各 CryptoNote 出力の宛先 (デフォルト) は公開キーです。 受信者のアドレスと送信者のランダムなデータから導き出されます。 Bitcoin に対する主な利点 すべての宛先キーはデフォルトで一意であるということです (送信者が各宛先キーに同じデータを使用しない限り) 同じ受信者に対する彼のトランザクションの内容)。したがって、「アドレスの再利用」などの問題は発生しません。 設計上、トランザクションが特定のアドレスまたはリンクに送信されたかどうかを監視者は判断できません。 2 つのアドレスを一緒にします。 6 11 つまり、これは Bitcoin に似ていますが、無限の匿名私書箱があり、受取人のみが引き換えることができます。 リング署名と同じくらい匿名性の高い秘密キーを生成します。 Bitcoin はこのように機能します。 アレックスがフランクから受け取ったばかりの財布に 0.112 Bitcoin が入っている場合、彼女は本当に署名を持っています。 メッセージ「私、[FRANK]、0.112 Bitcoin を [alex] + H0 + N0 に送信します」 ここで、1) フランクは メッセージに秘密鍵 [FRANK] を使用、2) フランクはアレックスの公開鍵でメッセージに署名しました key、[alex]、3) Frank にはビットコインの歴史の何らかの形式が含まれています、H0、および 4) Frank nonce、N0 と呼ばれるランダムなデータ ビットが含まれています。 アレックスが 0.011 Bitcoin をシャーリーンに送信したい場合、彼女はフランクのメッセージを受け取ります。 これを H1 に設定し、2 つのメッセージに署名します。1 つはトランザクション用、もう 1 つは変更用です。 H1= "私、[FRANK]、0.112 Bitcoin を [alex] に送信 + H0 + N" "私、[ALEX]、0.011 Bitcoin を [alex] に送信 [charlene] + H1 + N1" 「私、[ALEX]、[alex] + H1 + N2 への変更として 0.101 Bitcoin を送信します。」 ここで、Alex は両方のメッセージに彼女の秘密鍵 [ALEX] で署名し、最初のメッセージは Charlene の秘密鍵で署名します。 公開鍵 [charlene]、Alex の公開鍵 [alex] を含む 2 番目のメッセージ、および 履歴と、ランダムに生成されたいくつかの nonce N1 および N2 が適切に保存されます。 Cryptonote は次のように機能します。 アレックスがフランクから受け取ったばかりの 0.112 暗号通貨を財布の中に持っている場合、彼女は本当に署名された暗号を持っています。 メッセージ「私、[アドホック グループの誰か] は、[ワンタイム アドレス] + H0 に 0.112 暗号ノートを送信します +N0。」アレックスは、自分の秘密鍵 [ALEX] を照合して、これが自分のお金であることを発見しました。 通過するすべてのメッセージに対する [ワンタイム アドレス]。彼女がそれを使いたい場合は、 次の方法で。 彼女はお金の受取人を選択します。おそらくシャーリーンはドローン攻撃に投票し始めたので、 アレックスは代わりにブレンダに送金したいと考えています。そこで、アレックスはブレンダの公開鍵 [brenda] を調べます。 そして、彼女自身の秘密鍵 [ALEX] を使用して、ワンタイム アドレス [ALEX+brenda] を生成します。彼女 次に、暗号通貨ユーザーのネットワークから任意のコレクション C を選択し、次のように構築します。 このアドホック グループからのリング署名。 履歴を前のメッセージとして設定し、追加します nonces、通常どおり続行しますか? H1 = 「私、[アドホック グループの誰か]、0.112 暗号通貨を [ワンタイム アドレス] + H0 に送信します +N0。」 「私、[コレクション C の誰か] は、[ALEX+brenda から作成した 1 回限りのアドレス] + H1 + N1 に 0.011 暗号通貨を送信します」 「私、[コレクション C の誰か] は、[ALEX+alex から作成したワンタイム アドレス] + H1 + N2 への変更として 0.101 暗号通貨を送信します。」 現在、Alex と Brenda は両方とも、すべての受信メッセージをスキャンして、ワンタイム アドレスがないかどうかを確認します。 キーを使用して作成されます。 何かを見つけた場合、そのメッセージは彼ら自身の真新しいものになります。 暗号ノート! それでも、トランザクションは依然として blockchain に達します。そのアドレスにコインが入った場合 犯罪者、政治献金者、または委員会やアカウントから送信されたことが知られている 予算が厳しい場合(横領など)、またはこれらのコインの新しい所有者が間違いを犯した場合 そして、これらのコインを、彼が所有していることが知られているコイン、つまり匿名ジグと共通のアドレスに送信します。 ビットコインが上がっています。

ユーザー秘密キーは、2 つの異なる秘密 EC キーのペア (a、b) です。 追跡キーは秘密鍵と公開 EC 鍵のペア (a, B) です (B = bG および a ̸= b)。 公開ユーザー鍵は、(a, b) から派生した 2 つの公開 EC 鍵のペア (A, B) です。 標準アドレスは、人間にわかりやすい文字列で与えられた公開ユーザー キーの表現です。 エラー訂正あり。 切り詰められたアドレスは、指定された公開ユーザー キーの後半 (ポイント B) を表します。 エラー修正を行って人間に優しい文字列に変換します。 トランザクション構造は Bitcoin の構造と同様であり、すべてのユーザーが選択できます。 複数の独立した入金 (トランザクション出力) に対応する署名を付けます。 秘密鍵を取得して別の宛先に送信します。 ユーザーが一意の秘密鍵と公開鍵を所有する Bitcoin のモデルとは対照的に、 提案されたモデルでは、送信者は受信者のアドレスに基づいてワンタイム公開鍵を生成し、 ランダムなデータ。この意味で、同じ受信者に対する受信トランザクションは、 ワンタイム公開キー (一意のアドレスに直接ではない) であり、受信者のみがそのキーを回復できます。 彼の資金を償還するための対応するプライベート部分(彼の一意の秘密キーを使用)。受信者は次のことができます 指輪の署名を使用して資金を使い、所有権と実際の支出を匿名にします。 プロトコルの詳細については、次のサブセクションで説明します。 4.3 リンクできない支払い 従来の Bitcoin アドレスは、公開されると、受信者の明確な識別子になります。 支払いをリンクし、受取人の仮名に結び付ける。誰かがそうしたいなら 「結合されていない」トランザクションを受け取った場合、プライベート チャネルで自分のアドレスを送信者に伝える必要があります。 同じ所有者に属することが証明できない異なるトランザクションを受け取りたい場合 彼はさまざまなアドレスをすべて生成し、決して自分のペンネームで公開すべきではありません。 公共 プライベート アリス キャロル ボブのアドレス 1 ボブのアドレス 2 ボブの鍵 1 ボブの鍵 2 ボブ 図 2. 従来の Bitcoin キー/トランザクション モデル。 ユーザーが単一のアドレスを公開し、無条件で受信できるソリューションを提案します。 リンクできない支払い。各 CryptoNote 出力の宛先 (デフォルト) は公開キーです。 受信者のアドレスと送信者のランダムなデータから導き出されます。 Bitcoin に対する主な利点 すべての宛先キーはデフォルトで一意であるということです (送信者が各宛先キーに同じデータを使用しない限り) 同じ受信者に対する彼のトランザクションの内容)。したがって、「アドレスの再利用」などの問題は発生しません。 設計上、トランザクションが特定のアドレスまたはリンクに送信されたかどうかを監視者は判断できません。 2 つのアドレスを一緒にします。 6 ユーザー秘密キーは、2 つの異なる秘密 EC キーのペア (a、b) です。 追跡キーは秘密鍵と公開 EC 鍵のペア (a, B) です (B = bG および a ̸= b)。 公開ユーザー鍵は、(a, b) から派生した 2 つの公開 EC 鍵のペア (A, B) です。 標準アドレスは、人間にわかりやすい文字列で与えられた公開ユーザー キーの表現です。 エラー訂正あり。 切り詰められたアドレスは、指定された公開ユーザー キーの後半 (ポイント B) を表します。 エラー修正を行って人間に優しい文字列に変換します。 トランザクション構造は Bitcoin の構造と同様であり、すべてのユーザーが選択できます。 複数の独立した入金 (トランザクション出力) に対応する署名を付けます。 秘密鍵を取得して別の宛先に送信します。 ユーザーが一意の秘密鍵と公開鍵を所有する Bitcoin のモデルとは対照的に、 提案されたモデルでは、送信者は受信者のアドレスに基づいてワンタイム公開鍵を生成し、 ランダムなデータ。この意味で、同じ受信者に対する受信トランザクションは、 ワンタイム公開キー (一意のアドレスに直接ではない) であり、受信者のみがそのキーを回復できます。 彼の資金を償還するための対応するプライベート部分(彼の一意の秘密キーを使用)。受信者は次のことができます 指輪の署名を使用して資金を使い、所有権と実際の支出を匿名にします。 プロトコルの詳細については、次のサブセクションで説明します。 4.3 リンクできない支払い 従来の Bitcoin アドレスは、公開されると、受信者の明確な識別子になります。 支払いをリンクし、受取人の仮名に結び付ける。誰かがそうしたいなら 「結合されていない」トランザクションを受け取った場合、プライベート チャネルで自分のアドレスを送信者に伝える必要があります。 同じ所有者に属することが証明できない異なるトランザクションを受け取りたい場合 彼はさまざまなアドレスをすべて生成し、決して自分のペンネームで公開すべきではありません。 公共 プライベート アリス キャロル ボブのアドレス 1 ボブのアドレス 2 ボブの鍵 1 ボブの鍵 2 ボブ 図 2. 従来の Bitcoin キー/トランザクション modエル。 ユーザーが単一のアドレスを公開し、無条件で受信できるソリューションを提案します。 リンクできない支払い。各 CryptoNote 出力の宛先 (デフォルト) は公開キーです。 受信者のアドレスと送信者のランダムなデータから導き出されます。 Bitcoin に対する主な利点 すべての宛先キーはデフォルトで一意であるということです (送信者が各宛先キーに同じデータを使用しない限り) 同じ受信者に対する彼のトランザクションの内容)。したがって、「アドレスの再利用」などの問題は発生しません。 設計上、トランザクションが特定のアドレスまたはリンクに送信されたかどうかを監視者は判断できません。 2 つのアドレスを一緒にします。 6 12 したがって、ユーザーがアドレス(実際には公開鍵)からアドレスにコインを送信するのではなく、 (別の公開鍵) 秘密鍵を使用して、ユーザーはワンタイム私書箱からコインを送信します (友人の公開キーを使用して生成) を使用して (同様に) ワンタイム私書箱に送信します。 自分の秘密鍵。 ある意味、私たちは「わかった、みんなお金が動いている間は手を離してください」と言っているのです。 転勤しました!私たちの鍵があの箱を開けることができるということを知るだけで十分です。 私たちは箱の中にどれだけのお金が入っているかを知っています。 私書箱や郵便ポストには決して指紋を付けないでください。 実際に使ってみると、現金が入った箱そのものを取引するだけです。そうすれば誰が送ったか分からなくなります しかし、これらの公開演説の内容は依然として摩擦がなく、代替可能で、分割可能であり、 ビットコインのような、私たちが望むお金の他のすべての優れた性質をまだ持っています。」 私書箱の無限のセット。 あなたはアドレスを公開しています、私は秘密鍵を持っています。私は私の秘密鍵とあなたのアドレスを使用します、そして 公開鍵を生成するためのランダムなデータ。アルゴリズムは次のように設計されています。 アドレスは公開キーの生成に使用されました。あなたの秘密キーのみがロックを解除するために機能します。 メッセージ。 オブザーバーのイブは、あなたがアドレスを公開しているのを見て、私が発表した公開鍵を見ます。ただし、 彼女は、私があなたのアドレスに基づいて私の公開鍵を発表したのか、彼女のアドレスに基づいて発表したのか、それともブレンダのアドレスに基づいて発表したのか知りません。 シャーリーンのものでも、誰のものでも。彼女は私が発表した公開鍵と自分の秘密鍵を照合します そしてそれがうまくいかないことがわかります。それは彼女のお金ではありません。彼女は他人の秘密鍵を知りません。 メッセージの受信者だけがメッセージのロックを解除できる秘密キーを持っています。だから誰もいない 盗聴するだけで、誰がお金を受け取ったのかを特定することができ、ましてやお金を受け取ることはできません。

公共 プライベート アリス キャロル ワンタイムキー ワンタイムキー ワンタイムキー ボブ ボブの鍵 ボブの住所 図 3. CryptoNote のキー/トランザクション モデル。 まず、送信者はディフィー・ヘルマン交換を実行してデータから共有秘密を取得し、 受信者の住所の半分。次に、共有されたキーを使用して、ワンタイム宛先キーを計算します。 秘密とアドレスの後半。受信者には 2 つの異なる EC キーが必要です これら 2 つのステップのため、標準の CryptoNote アドレスは Bitcoin ウォレットのほぼ 2 倍の大きさになります。 住所。 受信者はまた、ディフィー・ヘルマン交換を実行して、対応するデータを回復します。 秘密鍵。 標準的なトランザクション シーケンスは次のようになります。 1. アリスは、標準住所を公開しているボブに支払いを送金したいと考えています。 彼女 アドレスを解凍し、ボブの公開鍵 (A、B) を取得します。 2. アリスはランダムな \(r \in [1, l - 1]\) を生成し、ワンタイム公開鍵 \(P = H_s(rA)G +\) を計算します。 B. 3. アリスは、出力の宛先キーとして P を使用し、値 R = rG も (一部として) パックします。 Diffie-Hellman 交換の) トランザクションのどこかに。彼女は作成できることに注意してください 一意の公開鍵を含む他の出力: 異なる受信者の鍵 (Ai、Bi) は異なる Pi を意味します 同じrでも。 トランザクション 送信公開鍵 送信出力 金額 宛先キー R = rG P = Hs(rA)G + B 受信者の 公開鍵 送信者のランダムデータ r (A、B) 図 4. 標準的なトランザクション構造。 4. アリスはトランザクションを送信します。 5. ボブは、通過するすべてのトランザクションを自分の秘密鍵 (a, b) でチェックし、P ' = を計算します。 Hs(aR)G + B. ボブを受取人とするアリスの取引がその中にあったとしたら、 この場合、aR = arG = rA および P ' = P となります。 7 公共 プライベート アリス キャロル ワンタイムキー ワンタイムキー ワンタイムキー ボブ ボブの鍵 ボブの住所 図 3. CryptoNote のキー/トランザクション モデル。 まず、送信者はディフィー・ヘルマン交換を実行してデータから共有秘密を取得し、 受信者の住所の半分。次に、共有されたキーを使用して、ワンタイム宛先キーを計算します。 秘密とアドレスの後半。受信者には 2 つの異なる EC キーが必要です これら 2 つのステップのため、標準の CryptoNote アドレスは Bitcoin ウォレットのほぼ 2 倍の大きさになります。 住所。 受信者はまた、ディフィー・ヘルマン交換を実行して、対応するデータを回復します。 秘密鍵。 標準的なトランザクション シーケンスは次のようになります。 1. アリスは、標準住所を公開しているボブに支払いを送金したいと考えています。 彼女 アドレスを解凍し、ボブの公開鍵 (A、B) を取得します。 2. アリスはランダムな \(r \in [1, l - 1]\) を生成し、ワンタイム公開鍵 \(P = H_s(rA)G +\) を計算します。 B. 3. アリスは、出力の宛先キーとして P を使用し、値 R = rG も (一部として) パックします。 Diffie-Hellman 交換の) トランザクションのどこかに。彼女は作成できることに注意してください 一意の公開鍵を含む他の出力: 異なる受信者の鍵 (Ai、Bi) は異なる Pi を意味します 同じrでも。 トランザクション 送信公開鍵 送信出力 金額 宛先キー R = rG P = Hs(rA)G + B 受信者の 公開鍵 送信者のランダムデータ r (A、B) 図 4. 標準的なトランザクション構造。 4. アリスはトランザクションを送信します。 5. ボブは、通過するすべてのトランザクションを自分の秘密鍵 (a, b) でチェックし、P ' = を計算します。 Hs(aR)G + B. ボブを受取人とするアリスの取引がその中にあったとしたら、 この場合、aR = arG = rA および P ' = P となります。 7 13 暗号化の 選択 を実装するのは、どれほど面倒なことだろうか スキーム。楕円形でもそれ以外でも。したがって、将来何らかの計画が破られた場合、通貨は切り替わります 心配することなく。おそらく大きなお尻の痛みでしょう。 さて、これはまさに前のコメントで説明したことです。ディフィー・ヘルマンタイプ 交換はニートです。アレックスとブレンダはそれぞれ秘密の番号 A と B、そして数字を持っているとします。 彼らは秘密を守ることを気にしません、aとb。彼らは、共有シークレットを生成することを望んでいます。 それを発見したエヴァ。ディフィーとヘルマンは、アレックスとブレンダが情報を共有する方法を考え出しました。 公開番号 a と b を使用しますが、非公開番号 A と B は使用せず、共有秘密を生成します。 K. この共有秘密 K を使用すると、Eva がリッスンすることなく、同じものを生成できます。 K、アレックス、ブレンダは、K を秘密暗号化キーとして使用し、秘密メッセージを送り返すことができるようになりました。 そして先へ。 100 よりもはるかに大きな数値でも動作するはずですが、可能な動作は次のとおりです。 100 を使用するのは、100 を法とする整数を処理することは「すべてを破棄する」ことと同じであるためです。 ただし、数字の下 2 桁です。」 アレックスとブレンダはそれぞれ A、a、B、b を選択します。彼らはAとBを秘密にします。 アレックスはブレンダにモジュロ 100 の値 (下 2 桁だけ) を伝え、ブレンダはアレックスに伝えます。 彼女の b モジュロ 100 の値。今、エヴァは (a,b) モジュロ 100 を知っています。しかし、アレックスは (a,b,A) を知っているので、彼女は x=abA モジュロ 100 を計算できます。アレックスは仕事中なので最後の一桁を除いて全部切ります 再び 100 を法とする整数の下で計算します。同様に、ブレンダは (a,b,B) を知っているので計算できます。 y=abB modulo 100。Alex は x を公開し、Brenda は y を公開できるようになりました。 しかし、現在、Alex は yA = abBA modulo 100 を計算でき、Brenda は xB を計算できます。 = abBA モジュロ 100。 二人とも同じ番号を知っています! しかし、エヴァが聞いたのは次のことだけだ (a、b、abA、abB)。彼女には abA*B を計算する簡単な方法がありません。 さて、これは Diffie-Hellman 交換に関する最も簡単で最も安全性の低い考え方です。 より安全なバージョンが存在します。ただし、ほとんどのバージョンは整数因数分解と離散化により動作します。 対数は難しいですが、それらの問題は両方とも量子コンピューターによって簡単に解決されます。 量子に耐性のあるバージョンが存在するかどうか調べてみます。 http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange ここにリストされている「標準 txn シーケンス」には、SIGNATURES などの一連のステップが欠落しています。 ここではそれらは当然のこととして受け入れられています。これは本当に悪いことです。 署名内容、署名メッセージに含まれる情報など...これらすべてが非常に重要です プロトコルにとって重要です。 「 「標準トランザクション シーケンス」は、システム全体のセキュリティに疑問を投げかける可能性があります。 さらに、この論文の後半で示される証明は、次のような場合には十分に厳密ではない可能性があります。 それらが動作するフレームワークは、このセクションと同様に大まかに定義されています。

公共 プライベート アリス キャロル ワンタイムキー ワンタイムキー ワンタイムキー ボブ ボブの鍵 ボブの住所 図 3. CryptoNote のキー/トランザクション モデル。 まず、送信者はディフィー・ヘルマン交換を実行してデータから共有秘密を取得し、 受信者の住所の半分。次に、共有されたキーを使用して、ワンタイム宛先キーを計算します。 秘密とアドレスの後半。受信者には 2 つの異なる EC キーが必要です これら 2 つのステップのため、標準の CryptoNote アドレスは Bitcoin ウォレットのほぼ 2 倍の大きさになります。 住所。 受信者はまた、ディフィー・ヘルマン交換を実行して、対応するデータを回復します。 秘密鍵。 標準的なトランザクション シーケンスは次のようになります。 1. アリスは、標準住所を公開しているボブに支払いを送金したいと考えています。 彼女 アドレスを解凍し、ボブの公開鍵 (A、B) を取得します。 2. アリスはランダムな \(r \in [1, l - 1]\) を生成し、ワンタイム公開鍵 \(P = H_s(rA)G +\) を計算します。 B. 3. アリスは、出力の宛先キーとして P を使用し、値 R = rG も (一部として) パックします。 Diffie-Hellman 交換の) トランザクションのどこかに。彼女は作成できることに注意してください 一意の公開鍵を含む他の出力: 異なる受信者の鍵 (Ai、Bi) は異なる Pi を意味します 同じrでも。 トランザクション 送信公開鍵 送信出力 金額 宛先キー R = rG P = Hs(rA)G + B 受信者の 公開鍵 送信者のランダムデータ r (A、B) 図 4. 標準的なトランザクション構造。 4. アリスはトランザクションを送信します。 5. ボブは、通過するすべてのトランザクションを自分の秘密鍵 (a, b) でチェックし、P ' = を計算します。 Hs(aR)G + B. ボブを受取人とするアリスの取引がその中にあったとしたら、 この場合、aR = arG = rA および P ' = P となります。 7 公共 プライベート アリス キャロル ワンタイムキー ワンタイムキー ワンタイムキー ボブ ボブの鍵 ボブの住所 図 3. CryptoNote のキー/トランザクション モデル。 まず、送信者はディフィー・ヘルマン交換を実行してデータから共有秘密を取得し、 受信者の住所の半分。次に、共有されたキーを使用して、ワンタイム宛先キーを計算します。 秘密とアドレスの後半。受信者には 2 つの異なる EC キーが必要です これら 2 つのステップのため、標準の CryptoNote アドレスは Bitcoin ウォレットのほぼ 2 倍の大きさになります。 住所。 受信者はまた、ディフィー・ヘルマン交換を実行して、対応するデータを回復します。 秘密鍵。 標準的なトランザクション シーケンスは次のようになります。 1. アリスは、標準住所を公開しているボブに支払いを送金したいと考えています。 彼女 アドレスを解凍し、ボブの公開鍵 (A、B) を取得します。 2. アリスはランダムな \(r \in [1, l - 1]\) を生成し、ワンタイム公開鍵 \(P = H_s(rA)G +\) を計算します。 B. 3. アリスは、出力の宛先キーとして P を使用し、値 R = rG も (一部として) パックします。 Diffie-Hellman 交換の) トランザクションのどこかに。彼女は作成できることに注意してください 一意の公開鍵を含む他の出力: 異なる受信者の鍵 (Ai、Bi) は異なる Pi を意味します 同じrでも。 トランザクション 送信公開鍵 送信出力 金額 宛先キー R = rG P = Hs(rA)G + B 受信者の 公開鍵 送信者のランダムデータ r (A、B) 図 4. 標準的なトランザクション構造。 4. アリスはトランザクションを送信します。 5. ボブは、通過するすべてのトランザクションを自分の秘密鍵 (a, b) でチェックし、P ' = を計算します。 Hs(aR)G + B. ボブを受取人とするアリスの取引がその中にあったとしたら、 この場合、aR = arG = rA および P ' = P となります。 7 14 著者は、用語を一貫して正確に保つというひどい仕事をしていることに注意してください。 本文もそうですが、特に次の部分で。この文書の次回の発行は必ず次のとおりです。 はるかに厳格です。 本文中では、P をワンタイム公開鍵と呼んでいます。図では、R を次のように呼んでいます。 「送信公開キー」と「宛先キー」としての P。これをもう一度書くとしたら、 これらのセクションについて説明する前に、いくつかの用語を非常に具体的に説明します。 このエルは巨大です。 5 ページを参照してください。 エルを選ぶのは誰ですか? 図は、トランザクション公開キー R = rG (ランダムに選択される) を示しています。 送信者によるものであり、Tx 出力の一部ではありません。複数で同じになる可能性があるためです 複数の人へのトランザクションであり、「後で」使用されることはありません。新しい R が生成される 新しい CryptoNote トランザクションをブロードキャストするたびに。なお、Rはのみ使用されます あなたが取引の受取人であるかどうかを確認します。ジャンクデータではありませんが、誰にとってもジャンクです (A,B) に関連付けられた秘密キーなし。 一方、Destination キー、P = Hs(rA)G + B は Tx 出力の一部です。みんな 通過するすべてのトランザクションのデータをざっと調べて、独自に生成された P* を照合する必要があります。 この P を使用して、この通過トランザクションを所有しているかどうかを確認します。未使用のトランザクション出力がある人 (UTXO) には、大量の P が金額とともに転がっているでしょう。過ごすためにd、彼らは P を含む新しいメッセージに署名します。 アリスは、未使用のトランザクション出力の宛先キーに関連付けられたワンタイム秘密キーを使用して、このトランザクションに署名する必要があります。アリスが所有する各宛先キーが装備されています ワンタイム秘密鍵も (おそらく) アリスが所有しているものです。アリスが望むたびに 宛先キーの内容を私、またはボブ、ブレンダ、チャーリー、またはシャーリーンに送ってください、彼女は 彼女の秘密鍵を使用してトランザクションに署名します。取引を受領次第、新しいものを受け取ります 送信公開キー、新しい宛先公開キー、そして新しいワンタイム秘密キー x を回復できるようになります。ワンタイム秘密キー x と新しいトランザクションの公開宛先を組み合わせる key(s) は新しいトランザクションの送信方法です

  1. ボブは、対応するワンタイム秘密キーを復元できます: x = Hs(aR) + b、つまり P = xG。 x でトランザクションに署名することで、いつでもこの出力を使用できます。 トランザクション 送信公開鍵 送信出力 金額 宛先キー P ' = Hs(aR)G + bG ワンタイム公開鍵 x = Hs(aR) + b ワンタイム秘密鍵 受信者の 秘密鍵 (a、b) R P' ?= P 図 5. 受信トランザクションのチェック。 その結果、ボブは、ワンタイム公開鍵に関連付けられた支払いを受け取ります。 観客にとってはリンク不可能です。追加の注意事項: • ボブが自分のトランザクションを「認識」したとき (ステップ 5 を参照)、実際にはトランザクションの半分しか使用しません。 個人情報: (a、B)。このペアは追跡キーとも呼ばれ、渡すことができます。 第三者(キャロル)に。ボブは彼女に新しいトランザクションの処理を委任できます。ボブ キャロルはワンタイム秘密鍵 p を回復できないため、明示的に信頼する必要はありません。 ボブの完全な秘密鍵 (a、b) はありません。このアプローチは、Bob に帯域幅がない場合に役立ちます。 または計算能力(スマートフォン、ハードウェアウォレットなど)。 • アリスがボブのアドレスにトランザクションを送信したことを証明したい場合は、次のいずれかを開示することができます。 または、あらゆる種類のゼロ知識プロトコルを使用して、彼女が r を知っていることを証明します(たとえば、署名することによって) rとのトランザクション)。 • ボブが、すべての受信トランザクションが保存される監査互換アドレスを取得したい場合。 リンク可能であれば、追跡キーを公開するか、切り捨てられたアドレスを使用することができます。その住所 1 つの公開 EC キー B のみを表し、プロトコルで必要な残りの部分は次のとおりです。 そこから次のように導出されます: a = Hs(B) および A = Hs(B)G。どちらの場合でも、すべての人は ボブの受信トランザクションをすべて「認識」することはできますが、もちろん、誰もそのトランザクションを費やすことはできません。 秘密鍵のない資金がその中に封入されているb. 4.4 ワンタイムリングサイン ワンタイムリング署名に基づくプロトコルにより、ユーザーは無条件のリンク解除を実現できます。 残念ながら、通常のタイプの暗号署名では、トランザクションを追跡することができます。 それぞれの送信者と受信者。この欠陥に対する私たちの解決策は、別の署名を使用することにあります。 現在電子マネーシステムで使用されているものよりも優れたタイプです。 まず、明示的な言及はせずに、アルゴリズムの一般的な説明を行います。 電子現金。 ワンタイム リング署名には 4 つのアルゴリズム (GEN、SIG、VER、LNK) が含まれています。 GEN: 公開パラメータを受け取り、ec-pair (P, x) と公開鍵 I を出力します。 SIG: メッセージ m、公開鍵の集合 \(S'\) {Pi}i̸=s、ペア (Ps, xs) を受け取り、署名 \(\sigma\) を出力します。 集合 \(S = \)S'\( \cup \{P_s\}\)。 8
  2. ボブは、対応するワンタイム秘密キーを復元できます: x = Hs(aR) + b、つまり P = xG。 x でトランザクションに署名することで、いつでもこの出力を使用できます。 トランザクション 送信公開鍵 送信出力 金額 宛先キー P ' = Hs(aR)G + bG ワンタイム公開鍵 x = Hs(aR) + b ワンタイム秘密鍵 受信者の 秘密鍵 (a、b) R P' ?= P 図 5. 受信トランザクションのチェック。 その結果、ボブは、ワンタイム公開鍵に関連付けられた支払いを受け取ります。 観客にとってはリンク不可能です。追加の注意事項: • ボブが自分のトランザクションを「認識」したとき (ステップ 5 を参照)、実際にはトランザクションの半分しか使用しません。 個人情報: (a、B)。このペアは追跡キーとも呼ばれ、渡すことができます。 第三者(キャロル)に。ボブは彼女に新しいトランザクションの処理を委任できます。ボブ キャロルはワンタイム秘密鍵 p を回復できないため、明示的に信頼する必要はありません。 ボブの完全な秘密鍵 (a、b) はありません。このアプローチは、Bob に帯域幅がない場合に役立ちます。 または計算能力(スマートフォン、ハードウェアウォレットなど)。 • アリスがボブのアドレスにトランザクションを送信したことを証明したい場合は、次のいずれかを開示することができます。 または、あらゆる種類のゼロ知識プロトコルを使用して、彼女が r を知っていることを証明します(たとえば、署名することによって) rとのトランザクション)。 • ボブが、すべての受信トランザクションが保存される監査互換アドレスを取得したい場合。 リンク可能であれば、追跡キーを公開するか、切り捨てられたアドレスを使用することができます。その住所 1 つの公開 EC キー B のみを表し、プロトコルで必要な残りの部分は次のとおりです。 そこから次のように導出されます: a = Hs(B) および A = Hs(B)G。どちらの場合でも、すべての人は ボブの受信トランザクションをすべて「認識」することはできますが、もちろん、誰もそのトランザクションを費やすことはできません。 秘密鍵のない資金がその中に封入されているb. 4.4 ワンタイムリングサイン ワンタイムリング署名に基づくプロトコルにより、ユーザーは無条件のリンク解除を実現できます。 残念ながら、通常のタイプの暗号署名では、トランザクションを追跡することができます。 それぞれの送信者と受信者。この欠陥に対する私たちの解決策は、別の署名を使用することにあります。 現在電子マネーシステムで使用されているものよりも優れたタイプです。 まずジェネレーターを提供します明示的な言及のないアルゴリズムの説明 電子現金。 ワンタイム リング署名には 4 つのアルゴリズム (GEN、SIG、VER、LNK) が含まれています。 GEN: 公開パラメータを受け取り、ec-pair (P, x) と公開鍵 I を出力します。 SIG: メッセージ m、公開鍵の集合 \(S'\) {Pi}i̸=s、ペア (Ps, xs) を受け取り、署名 \(\sigma\) を出力します。 集合 \(S = \)S'\( \cup \{P_s\}\)。 8 15 未使用のトランザクション出力はどのようになりますか?この図は、トランザクション出力が金額と宛先キーの 2 つのデータ ポイントのみで構成されていることを示しています。しかし、これはそうではありません この「アウトプット」を使おうとするとき、やはり R=rG を知る必要があるので、これで十分です。 r は送信者によって選択され、R は a) 受信した暗号通貨をあなたのものとして認識するために使用されることを覚えておいてください。 b) 暗号ノートを「要求」するために使用されるワンタイム秘密キーの生成に使用されます。 これについて私が理解できない部分は何ですか? 理論的には「よし、これはある」 署名とトランザクションをプログラミングの世界にやり取りします。 「それでは、個人 UTXO を具体的に構成する情報は何ですか?」 この質問に答える最善の方法は、完全にコメントされていないコードの本体を詳しく調べることです。 頑張れ、バイトコインチーム。 思い出してください: リンク可能性とは、「同じ人が送信したか?」ということを意味します。リンク解除可能性は、「同じことをした」ことを意味します 人は受け取りますか?」したがって、システムはリンク可能または非リンク可能、またはリンク可能または非リンク可能です。 迷惑です、私は知っています。 したがって、ニック・ヴァン・セイバーハーゲンがここで「...受信した支払いは1回限りの支払いに関連付けられています」と言うと、 観客にとってリンクできない公開鍵」という言葉が何を意味するのか見てみましょう。 まず、アリスが同じトランザクションから 2 つの別々のトランザクションをボブに送信する状況を考えてみましょう。 同じアドレスに送信します。 Bitcoin の世界では、アリスはすでに間違いを犯しています 同じアドレスから送信したため、取引は制限付きでの私たちの希望に応えられませんでした。 リンク可能性。しかも彼女は同じ住所に送金したので、我々の望みは裏切られたことになる。 リンク解除不可のため。このビットコイントランザクションは、(完全に) リンク可能であり、リンク解除不可能でもありました。 一方、暗号ノートの世界では、アリスがボブに暗号ノートを送ったとします。 ボブの公開アドレスを使用します。彼女は、難読化する公開鍵のセットとして、既知の公開鍵をすべて選択します。 ワシントン DC メトロエリアのキー。 Alex は自分の独自の公開鍵を使用してワンタイム公開鍵を生成します 情報とボブの公開情報。彼女はお金を送金します、そして、観察者は誰でもそうします 収集できるのは「ワシントン DC 都市圏の誰かが 2.3 枚の暗号通貨を送信した」 1 回限りのパブリック アドレス XYZ123。」 ここではリンク可能性を確率的に制御できるため、これを「ほぼリンク不可能」と呼びます。 また、送金先の 1 回限りの公開鍵のみが表示されます。たとえ受信者を疑っても はボブでした。私たちは彼の秘密鍵を持っていないので、トランザクションが成功したかどうかをテストできません 暗号通貨を引き換えるためのワンタイム秘密鍵を生成することは言うまでもなく、ボブのものです。それでこれ 実際、完全に「リンク不可能」です。 したがって、これはすべての中で最も巧妙なトリックです。他のMtGoxを本当に信頼したい人がいるでしょうか?私たちはそうかもしれない Coinbase にある程度の BTC を保管するのは快適ですが、ビットコインの究極のセキュリティは 物理的な財布。それは不便です。 この場合、あなたの秘密鍵の半分を信頼性を損なうことなく渡すことができます。 自分自身のお金の使い方の能力。 これを行うとき、あなたがしていることは、リンク解除を解除する方法を誰かに伝えることだけです。もう一つは 二重支出に対する証拠など、通貨のように機能する CN の特性は維持されます。 何でも。

  3. ボブは、対応するワンタイム秘密キーを復元できます: x = Hs(aR) + b、つまり P = xG。 x でトランザクションに署名することで、いつでもこの出力を使用できます。 トランザクション 送信公開鍵 送信出力 金額 宛先キー P ' = Hs(aR)G + bG ワンタイム公開鍵 x = Hs(aR) + b ワンタイム秘密鍵 受信者の 秘密鍵 (a、b) R P' ?= P 図 5. 受信トランザクションのチェック。 その結果、ボブは、ワンタイム公開鍵に関連付けられた支払いを受け取ります。 観客にとってはリンク不可能です。追加の注意事項: • ボブが自分のトランザクションを「認識」したとき (ステップ 5 を参照)、実際にはトランザクションの半分しか使用しません。 個人情報: (a、B)。このペアは追跡キーとも呼ばれ、渡すことができます。 第三者(キャロル)に。ボブは彼女に新しいトランザクションの処理を委任できます。ボブ キャロルはワンタイム秘密鍵 p を回復できないため、明示的に信頼する必要はありません。 ボブの完全な秘密鍵 (a、b) はありません。このアプローチは、Bob に帯域幅がない場合に役立ちます。 または計算能力(スマートフォン、ハードウェアウォレットなど)。 • アリスがボブのアドレスにトランザクションを送信したことを証明したい場合は、次のいずれかを開示することができます。 または、あらゆる種類のゼロ知識プロトコルを使用して、彼女が r を知っていることを証明します(たとえば、署名することによって) rとのトランザクション)。 • ボブが、すべての受信トランザクションが保存される監査互換アドレスを取得したい場合。 リンク可能であれば、追跡キーを公開するか、切り捨てられたアドレスを使用することができます。その住所 1 つの公開 EC キー B のみを表し、プロトコルで必要な残りの部分は次のとおりです。 そこから次のように導出されます: a = Hs(B) および A = Hs(B)G。どちらの場合でも、すべての人は ボブの受信トランザクションをすべて「認識」することはできますが、もちろん、誰もそのトランザクションを費やすことはできません。 秘密鍵のない資金がその中に封入されているb. 4.4 ワンタイムリングサイン ワンタイムリング署名に基づくプロトコルにより、ユーザーは無条件のリンク解除を実現できます。 残念ながら、通常のタイプの暗号署名では、トランザクションを追跡することができます。 それぞれの送信者と受信者。この欠陥に対する私たちの解決策は、別の署名を使用することにあります。 現在電子マネーシステムで使用されているものよりも優れたタイプです。 まず、明示的な言及はせずに、アルゴリズムの一般的な説明を行います。 電子現金。 ワンタイム リング署名には 4 つのアルゴリズム (GEN、SIG、VER、LNK) が含まれています。 GEN: 公開パラメータを受け取り、ec-pair (P, x) と公開鍵 I を出力します。 SIG: メッセージ m、公開鍵の集合 \(S'\) {Pi}i̸=s、ペア (Ps, xs) を受け取り、署名 \(\sigma\) を出力します。 集合 \(S = \)S'\( \cup \{P_s\}\)。 8

  4. ボブは、対応するワンタイム秘密キーを復元できます: x = Hs(aR) + b、つまり P = xG。 x でトランザクションに署名することで、いつでもこの出力を使用できます。 トランザクション 送信公開鍵 送信出力 金額 宛先キー P ' = Hs(aR)G + bG ワンタイム公開鍵 x = Hs(aR) + b ワンタイム秘密鍵 受信者の 秘密鍵 (a、b) R P' ?= P 図 5. 受信トランザクションのチェック。 その結果、ボブは、ワンタイム公開鍵に関連付けられた支払いを受け取ります。 観客にとってはリンク不可能です。追加の注意事項: • ボブが自分のトランザクションを「認識」したとき (ステップ 5 を参照)、実際にはトランザクションの半分しか使用しません。 個人情報: (a、B)。このペアは追跡キーとも呼ばれ、渡すことができます。 第三者(キャロル)に。ボブは彼女に新しいトランザクションの処理を委任できます。ボブ キャロルはワンタイム秘密鍵 p を回復できないため、明示的に信頼する必要はありません。 ボブの完全な秘密鍵 (a、b) はありません。このアプローチは、Bob に帯域幅がない場合に役立ちます。 または計算能力(スマートフォン、ハードウェアウォレットなど)。 • アリスがボブのアドレスにトランザクションを送信したことを証明したい場合は、次のいずれかを開示することができます。 または、あらゆる種類のゼロ知識プロトコルを使用して、彼女が r を知っていることを証明します(たとえば、署名することによって) rとのトランザクション)。 • ボブが、すべての受信トランザクションが保存される監査互換アドレスを取得したい場合。 リンク可能であれば、追跡キーを公開するか、切り捨てられたアドレスを使用することができます。その住所 1 つの公開 EC キー B のみを表し、プロトコルで必要な残りの部分は次のとおりです。 そこから次のように導出されます: a = Hs(B) および A = Hs(B)G。どちらの場合でも、すべての人は ボブの受信トランザクションをすべて「認識」することはできますが、もちろん、誰もそのトランザクションを費やすことはできません。 秘密鍵のない資金がその中に封入されているb. 4.4 ワンタイムリングサイン ワンタイムリング署名に基づくプロトコルにより、ユーザーは無条件のリンク解除を実現できます。 残念ながら、通常のタイプの暗号署名では、トランザクションを追跡することができます。 それぞれの送信者と受信者。この欠陥に対する私たちの解決策は、別の署名を使用することにあります。 現在電子マネーシステムで使用されているものよりも優れたタイプです。 まずジェネレーターを提供します明示的な言及のないアルゴリズムの説明 電子現金。 ワンタイム リング署名には 4 つのアルゴリズム (GEN、SIG、VER、LNK) が含まれています。 GEN: 公開パラメータを受け取り、ec-pair (P, x) と公開鍵 I を出力します。 SIG: メッセージ m、公開鍵の集合 \(S'\) {Pi}i̸=s、ペア (Ps, xs) を受け取り、署名 \(\sigma\) を出力します。 集合 \(S = \)S'\( \cup \{P_s\}\)。 8 16 はい、これで、a) 支払いアドレスと b) 支払い ID が得られました。 批評家は、「本当にこれを行う必要があるのでしょうか? 結局のところ、販売者が 112.00678952 を受信した場合、 CN、まさにそれが私の注文で、スクリーンショットか領収書か何かを持っています。 非常識な精度で十分ですか?」答えは「おそらく、日常生活ではほとんどの場合、 対面取引です。」 ただし、より一般的な状況 (特にデジタルの世界) は次のとおりです。 それぞれに固定価格が設定されたオブジェクトのセット。オブジェクト A が 0.001 CN、オブジェクト B が 0.01 CN であるとします。 オブジェクト C は 0.1 CN です。さて、販売者が 1.618 CN の注文を受け取った場合、多くの 顧客に合わせて注文を手配する方法(たくさんあります!)。したがって、何らかの支払い ID がなければ、 顧客のいわゆる「ユニークな」注文を、その顧客のいわゆる「ユニークな」コストで識別する 注文不可となります。さらに面白いのは、オンライン ストアのすべての価格がちょうど 1.0 である場合です。 CN、1 日に 1000 人の顧客が来るのですか?そして、正確に 3 つのオブジェクトを購入したことを証明したいとします。 2週間前?支払い ID をお持ちでない場合は、頑張れ、相棒。 簡単に言うと、ボブが支払い住所を公開すると、最終的には 支払い ID も同様です (たとえば、Poloniex XMR デポジットを参照)。これは説明されているものとは異なります ここのテキストでは、Alice が支払い ID を生成します。 ボブが支払い ID を生成する何らかの方法も必要です。 (a、B) 追跡キー (a、B) は公開できることを思い出してください。 「a」の値の秘密が失われると、 自分の支出能力を侵害したり、他人があなたから盗むことを許可したりしないでください(そうすればよいと思います...) 証明される必要があります)、これにより、ユーザーは受信したすべてのトランザクションを確認できるようになります。 この段落で説明されているように、切り捨てられたアドレスは、単にキーの「プライベート」部分を取得します。 そしてそれを「パブリック」部分から生成します。 「a」の値を明らかにすると、リンク不可能性が解消されます ただし、残りのトランザクションは保存されます。 リンク不可能とは受信者を指し、リンク可能なものはリンク可能であるため、著者は「リンク不可能ではない」ことを意味します。 送信者を指します。 また、作成者が、リンク可能性には 2 つの異なる側面があることに気づいていなかったことも明らかです。 結局のところ、トランザクションはグラフ上の有向オブジェクトであるため、次の 2 つの質問があります。 「これら 2 つの取引は同じ人物に行われますか?」そして、「これら 2 つのトランザクションは来ますか?」 同じ人からですか?」 これは、CryptoNote の非リンク性プロパティが適用される「後戻り禁止」ポリシーです。 条件付き。つまり、ボブは受信トランザクションをリンク解除不可にしないように選択できます。 このポリシーを使用して。 これは彼らがランダムオラクルモデルに基づいて証明した主張です。それについてはこれから説明します。ランダム オラクルには長所と短所があります。

VER: メッセージ m、集合 S、署名 \(\sigma\) を受け取り、「true」または「false」を出力します。 LNK: 集合 I = {Ii}、署名 \(\sigma\) を受け取り、「linked」または「indep」を出力します。 プロトコルの背後にある考え方は非常に単純です。ユーザーは署名を作成します。 一意の公開キーではなく、一連の公開キーによってチェックされます。署名者の身元は、 所有者が作成するまで、公開鍵がセットに含まれている他のユーザーと区別できません。 同じ鍵ペアを使用した 2 番目の署名。 秘密鍵 \(\times\)0 \(\cdots\) 西 \(\cdots\) xn 公開鍵 P0 \(\cdots\) 円周率 \(\cdots\) Pn リング 署名 サイン 検証する 図 6. リング署名の匿名性。 GEN: 署名者はランダムな秘密鍵 \(x \in [1, l - 1]\) を選択し、対応する鍵を計算します。 公開鍵 P = xG。さらに、別の公開鍵 I = xHp(P) を計算します。 これを「キー画像」と呼びます。 SIG: 署名者は、非対話型のゼロ知識を使用してワンタイム リング署名を生成します。 [21] のテクニックを使用して証明します。彼は、他のユーザーのデータから n のランダムなサブセット \(S'\) を選択します。 公開鍵 Pi、彼自身の鍵ペア (x、P)、および鍵イメージ I。\(0 \leq s \leq n\) を署名者の秘密インデックスとします。 S にあります (つまり、彼の公開鍵は Ps になります)。 彼はランダムに {qi | を選びます。 i = 0 。 。 。 n} と {wi | i = 0 。 。 。 n, i ̸= s} (1 . . . l) から次の式を適用します。 次の変換: 李= ( キグ、 i = s の場合 qiG + wiPi、 私が ̸= s の場合 リ= ( qiHp(Pi)、 i = s の場合 qiHp(Pi) + wiI、 私が ̸= s の場合 次のステップは、非インタラクティブなチャレンジを取得することです。 c = Hs(m, L1, ..., Ln, R1, ..., Rn) 最後に、署名者は応答を計算します。 ci =    ウィ、 私が ̸= s の場合 c − nP i=0 シ モジュール l、 i = s の場合 り= ( 気、 私が ̸= s の場合 qs -csx モジュール l、 i = s の場合 結果の署名は \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\) です。 9 VER: メッセージ m、集合 S、署名 \(\sigma\) を受け取り、「true」または「false」を出力します。 LNK: 集合 I = {Ii}、署名 \(\sigma\) を受け取り、「linked」または「indep」を出力します。 プロトコルの背後にある考え方は非常に単純です。ユーザーは署名を作成します。 一意の公開キーではなく、一連の公開キーによってチェックされます。署名者の身元は、 所有者が作成するまで、公開鍵がセットに含まれている他のユーザーと区別できません。 同じ鍵ペアを使用した 2 番目の署名。 秘密鍵 \(\times\)0 \(\cdots\) 西 \(\cdots\) xn 公開鍵 P0 \(\cdots\) 円周率 \(\cdots\) Pn リング 署名 サイン 検証する 図 6. リング署名の匿名性。 GEN: 署名者はランダムな秘密鍵 \(x \in [1, l - 1]\) を選択し、対応する鍵を計算します。 公開鍵 P = xG。さらに、別の公開鍵 I = xHp(P) を計算します。 これを「キー画像」と呼びます。 SIG: 署名者は、非対話型のゼロ知識を使用してワンタイム リング署名を生成します。 [21] のテクニックを使用して証明します。彼は、他のユーザーのデータから n のランダムなサブセット \(S'\) を選択します。 公開鍵 Pi、彼自身の鍵ペア (x、P)、および鍵イメージ I。\(0 \leq s \leq n\) を署名者の秘密インデックスとします。 S にあります (つまり、彼の公開鍵は Ps になります)。 彼はランダムに {qi | を選びます。 i = 0 。 。 。 n} と {wi | i = 0 。 。 。 n, i ̸= s} (1 . . . l) から次の式を適用します。 次の変換: 李= ( キグ、 i = s の場合 qiG + wiPi、 私が ̸= s の場合 リ= ( qiHp(Pi)、 i = s の場合 qiHp(Pi) + wiI、 私が ̸= s の場合 次のステップは、非インタラクティブなチャレンジを取得することです。 c = Hs(m, L1, ..., Ln, R1, ..., Rn) 最後に、署名者は応答を計算します。 ci =    ウィ、 私が ̸= s の場合 c − nP i=0 シ モジュール l、 i = s の場合 り= ( 気、 私が ̸= s の場合 qs -csx モジュール l、 i = s の場合 結果の署名は \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\) です。 9 17 おそらくこれは愚かなことですが、S と P_ を結合するときは注意が必要です。単に追加する場合は、 最後の公開鍵を最後まで保持すると、通過するトランザクションを誰かがチェックするため、リンク不可能になります。 各トランザクションとブームにリストされている最後の公開キーを確認するだけです。それが公開鍵です 送信者に関連付けられています。したがって、結合後、擬似乱数生成器は次のようにする必要があります。 選択した公開鍵を並べ替えるのに使用されます。 「...所有者が同じ鍵ペアを使用して 2 番目の署名を作成するまで。」著者(たち?)にお願いします これについて詳しく説明します。 これは、「難読化する公開鍵のセットを選択するたびに、 つまり、同じキーが 2 つもないまったく新しいセットを選択することになります。」 リンク解除の際に課されるかなり強力な条件。おそらく、「次から新しいランダムなセットを選択します」 すべての可能なキー」を前提として、自明ではない交差は避けられないものの、 起こりますが、頻繁には起こりません。 いずれにせよ、この発言をさらに深く掘り下げる必要があります。 これはリング署名を生成しています。 ゼロ知識証明は素晴らしいです。あなたが秘密を知っていることを証明してください。 秘密を明かさずに。たとえば、ドーナツ型の洞窟の入り口にいるとします。 そして洞窟の奥(入り口からは見えないところ)には、あなたが向かう一方通行のドア あなたが鍵を持っていると主張します。一方向に行けば必ず通してもらえますが、一方の方向に行けば、 他の方向にはキーが必要です。でもあなたは私に鍵さえ見せたくありません、ましてや それがドアを開けることを見せてください。でもあなたは私に、その扉を開ける方法を知っていることを証明したいのですね。 ドア。 インタラクティブな設定では、コインを投げます。 表が左、裏が右、そしてあなたは下に進みます コインがどの方向に進んでも、ドーナツの形をした洞窟に行くことができます。視界の向こうの奥にはあなたが ドアを開けて反対側に戻ります。コイン投げの実験を繰り返す あなたが鍵を持っていることに満足するまで。 しかし、それは明らかに INTERACTIVE のゼロ知識の証明です。あなたと私がコミュニケーションする必要がない非対話型バージョンもあります。こうすることで、盗聴者が妨害することはできなくなります。 http://en.wikipedia.org/wiki/Zero-knowledge_proof これは前の定義とは逆になります。

VER: メッセージ m、集合 S、署名 \(\sigma\) を受け取り、「true」または「false」を出力します。 LNK: 集合 I = {Ii}、署名 \(\sigma\) を受け取り、「linked」または「indep」を出力します。 プロトコルの背後にある考え方は非常に単純です。ユーザーは署名を作成します。 一意の公開キーではなく、一連の公開キーによってチェックされます。署名者の身元は、 所有者が作成するまで、公開鍵がセットに含まれている他のユーザーと区別できません。 同じ鍵ペアを使用した 2 番目の署名。 秘密鍵 \(\times\)0 \(\cdots\) 西 \(\cdots\) xn 公開鍵 P0 \(\cdots\) 円周率 \(\cdots\) Pn リング 署名 サイン 検証する 図 6. リング署名の匿名性。 GEN: 署名者はランダムな秘密鍵 \(x \in [1, l - 1]\) を選択し、対応する鍵を計算します。 公開鍵 P = xG。さらに、別の公開鍵 I = xHp(P) を計算します。 これを「キー画像」と呼びます。 SIG: 署名者は、非対話型のゼロ知識を使用してワンタイム リング署名を生成します。 [21] のテクニックを使用して証明します。彼は、他のユーザーのデータから n のランダムなサブセット \(S'\) を選択します。 公開鍵 Pi、彼自身の鍵ペア (x、P)、および鍵イメージ I。\(0 \leq s \leq n\) を署名者の秘密インデックスとします。 S にあります (つまり、彼の公開鍵は Ps になります)。 彼はランダムに {qi | を選びます。 i = 0 。 。 。 n} と {wi | i = 0 。 。 。 n, i ̸= s} (1 . . . l) から次の式を適用します。 次の変換: 李= ( キグ、 i = s の場合 qiG + wiPi、 私が ̸= s の場合 リ= ( qiHp(Pi)、 i = s の場合 qiHp(Pi) + wiI、 私が ̸= s の場合 次のステップは、非インタラクティブなチャレンジを取得することです。 c = Hs(m, L1, ..., Ln, R1, ..., Rn) 最後に、署名者は応答を計算します。 ci =    ウィ、 私が ̸= s の場合 c − nP i=0 シ モジュール l、 i = s の場合 り= ( 気、 私が ̸= s の場合 qs -csx モジュール l、 i = s の場合 結果の署名は \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\) です。 9 VER: メッセージ m、集合 S、署名 \(\sigma\) を受け取り、「true」または「false」を出力します。 LNK: 集合 I = {Ii}、署名 \(\sigma\) を受け取り、「linked」または「indep」を出力します。 プロトコルの背後にある考え方は非常に単純です。ユーザーは署名を作成します。 一意の公開キーではなく、一連の公開キーによってチェックされます。署名者の身元は、 所有者が作成するまで、公開鍵がセットに含まれている他のユーザーと区別できません。 同じ鍵ペアを使用した 2 番目の署名。 秘密鍵 \(\times\)0 \(\cdots\) 西 \(\cdots\) xn 公開鍵 P0 \(\cdots\) 円周率 \(\cdots\) Pn リング 署名 サイン 検証する 図 6. リング署名の匿名性。 GEN: 署名者はランダムな秘密鍵 \(x \in [1, l - 1]\) を選択し、対応する鍵を計算します。 公開鍵 P = xG。さらに、別の公開鍵 I = xHp(P) を計算します。 これを「キー画像」と呼びます。 SIG: 署名者は、非対話型のゼロ知識を使用してワンタイム リング署名を生成します。 [21] のテクニックを使用して証明します。彼は、他のユーザーのデータから n のランダムなサブセット \(S'\) を選択します。 公開鍵 Pi、彼自身の鍵ペア (x、P)、および鍵イメージ I。\(0 \leq s \leq n\) を署名者の秘密インデックスとします。 S にあります (つまり、彼の公開鍵は Ps になります)。 彼はランダムに {qi | を選びます。 i = 0 。 。 。 n} と {wi | i = 0 。 。 。 n, i ̸= s} (1 . . . l) から次の式を適用します。 次の変換: 李= ( キグ、 i = s の場合 qiG + wiPi、 私が ̸= s の場合 リ= ( qiHp(Pi)、 i = s の場合 qiHp(Pi) + wiI、 私が ̸= s の場合 次のステップは、非インタラクティブなチャレンジを取得することです。 c = Hs(m, L1, ..., Ln, R1, ..., Rn) 最後に、署名者は応答を計算します。 ci =    ウィ、 私が ̸= s の場合 c − nP i=0 シ モジュール l、 i = s の場合 り= ( 気、 私が ̸= s の場合 qs -csx モジュール l、 i = s の場合 結果の署名は \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\) です。 9 18 この領域全体は暗号通貨にとらわれず、単にリング署名アルゴリズムを説明するだけです。 通貨への言及。一部の表記は論文の残りの部分と一致していると思いますが、 でも。たとえば、x は GEN で選択された「ランダムな」秘密鍵であり、公開鍵 P が得られます。 この x の値は、パート 6 の 8 ページでボブが計算した値です。つまり、これは次のようになります。 前の説明からの混乱の一部が解消され始めています。 これはちょっとクールですね。お金は「アリスの公開アドレスからボブの公開アドレスに送金されていない」 ワンタイムアドレスからワンタイムアドレスに転送されます。 つまり、ある意味、これが物事の仕組みです。もしアレックスが誰かのせいで暗号通貨を持っているとしたら それらを彼女に送信したということは、彼女がボブにそれらを送信するために必要な秘密鍵を持っていることを意味します。彼女は使っています ボブの公開情報を使用して新しいワンタイムアドレスを生成するディフィー・ヘルマン交換 そして暗号通貨はそのアドレスに転送されます。 さて、(おそらく安全な) DH 交換が新しいワンタイム アドレスの生成に使用されたため、 アレックスが自分の CN を送信した宛先に、ボブは、このメッセージを繰り返すために必要な秘密鍵を持っている唯一の人物です。 上。さて、ボブはアレックスです。 http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation 合計は i ではなく j にインデックス付けされる必要があります。各 c_i はランダムなジャンクです (w_i はランダムなので) c_iのお尻を除いてこの署名に含まれる実際のキーで割り当てられます。 cの値は 前の情報の hash。 ただし、これにはインデックス「i」を再利用するよりも悪いタイプミスが含まれている可能性があると思います。 明示的ではなく暗黙的に定義されます。 実際、この方程式を信仰に基づいて当てはめると、c_s = (1/2)c - (1/2) となります。 sum_i neq s c_i.つまり、hash から大量の乱数を引いたものになります。 一方、この合計を読み取ることを目的としている場合は、「c_s = (c - sum_j neq s c_j) mod」となります。 l" の場合、以前の情報の hash を取得し、大量の乱数を生成します。 hash からこれらの乱数をすべて減算すると、c_s が得られます。これはそうです 私の直感からすると何が起こっている「はず」であり、10 ページの検証ステップと一致します。 しかし、直感は数学ではありません。これについてさらに詳しく掘り下げていきます。 以前と同じ。実際の製品に関連するものを除いて、これらはすべてランダムなジャンクになります。 署名者の公開鍵 x。今回を除いて、これは私が構造から期待するものです。 r_i は i!=s に対してランダムであり、r_s は秘密 x と s インデックス付きの値によってのみ決定されます。 q_iとc_i。

VER: 検証者は逆変換を適用して署名をチェックします。 ( L' i = リグ + ciPi R' i = riHp(Pi) + ciI 最後に、検証者は次のことを確認します。 nP i=0 シ ?= Hs(m, L' 0、. 。 。 、L' n、R' 0、. 。 。 、R' n) mod l この等価性が正しい場合、検証者はアルゴリズム LNK を実行します。それ以外の場合、検証者は拒否します 署名。 LNK: 検証者は、I が過去の署名で使用されているかどうかを確認します (これらの値は、 セットI)。複数の使用は、2 つの署名が同じ秘密鍵の下で生成されたことを意味します。 プロトコルの意味: L 変換を適用することで、署名者は自分が知っていることを証明します。 少なくとも 1 つの Pi = xG となる x です。この証明を再現不可能にするために、キー画像を導入します。 I = xHp(P) となります。署名者は、同じ係数 (ri、ci) を使用して、ほぼ同じステートメントを証明します。 彼は、少なくとも 1 つの \(H_p(P_i) = I \cdot x^{-1}\) となるような x を知っています。 マッピング \(x \to I\) が注入の場合: 1. 誰も鍵イメージから公開鍵を回復して署名者を特定することはできません。 2. 署名者は、異なる I と同じ x を使用して 2 つの署名を行うことはできません。 完全なセキュリティ分析は付録 A に記載されています。 4.5 標準の CryptoNote トランザクション 両方の方法 (リンク不可能な公開鍵と追跡不可能なリング署名) を組み合わせることで、ボブは次のことを達成しました。 元の Bitcoin スキームと比較して、新しいレベルのプライバシー。それは彼にただ保管することだけを要求します 1 つの秘密キー (a、b) と公開 (A、B) を実行して、匿名トランザクションの送受信を開始します。 各トランザクションを検証する際、ボブはさらに、出力ごとに 2 つの楕円曲線乗算と 1 つの加算だけを実行して、トランザクションが自分のものであるかどうかを確認します。彼のすべてのために 出力 ボブはワンタイム キーペア (pi, Pi) を回復し、それをウォレットに保存します。任意の入力が可能です 単一のトランザクションに出現した場合にのみ、同じ所有者であることが状況的に証明されます。で 実際、一度きりの指輪の署名のせいで、この関係を確立するのははるかに困難です。 リング署名を使用すると、ボブはすべての入力を他の人の入力の中に効果的に隠すことができます。あらゆる可能性 前の所有者 (アリス) でさえ、それ以上の情報を持っていません。 どの観察者でも。 トランザクションに署名するとき、ボブは自分のトランザクションと同じ金額の n 個の外国産出物を指定します。 他のユーザーの参加なしにそれらすべてを混合して出力します。ボブ自身(そして 他の人)これらの支払いのいずれかが使用されたかどうかはわかりません。出力は使用できます。 何千もの署名では曖昧さの要因として扱われ、決して隠蔽の対象としては扱われません。ダブル 支出チェックは、使用されているキー イメージ セットに対してチェックするときに、LNK フェーズで行われます。 ボブは曖昧さの度合いを自分で選択できます。n = 1 は、ボブが持つ確率を意味します。 出力が消費される確率は 50%、n = 99 では 1% になります。生成される署名のサイズが大きくなる O(n+1) として直線的に増加するため、匿名性の向上により、Bob には追加のトランザクション手数料がかかります。彼もできます n = 0 に設定し、指輪の署名を 1 つの要素だけで構成しますが、これは即座に 彼が浪費家であることを明らかにします。 10 VER: 検証者は逆変換を適用して署名をチェックします。 ( L' i = リグ + ciPi R' i = riHp(Pi) + ciI 最後に、検証者は次のことを確認します。 nP i=0 シ ?= Hs(m, L' 0、. 。 。 、L' n、R' 0、. 。 。 、R' n) mod l この等価性が正しい場合、検証者はアルゴリズム LNK を実行します。それ以外の場合、検証者は拒否します 署名。 LNK: 検証者は、I が過去の署名で使用されているかどうかを確認します (これらの値は、 セットI)。複数の使用は、2 つの署名が同じ秘密鍵の下で生成されたことを意味します。 プロトコルの意味: L 変換を適用することで、署名者は自分が知っていることを証明します。 少なくとも 1 つの Pi = xG となる x です。この証明を再現不可能にするために、キー画像を導入します。 I = xHp(P) となります。署名者は、同じ係数 (ri、ci) を使用して、ほぼ同じステートメントを証明します。 彼は、少なくとも 1 つの \(H_p(P_i) = I \cdot x^{-1}\) となるような x を知っています。 マッピング \(x \to I\) が注入の場合: 1. 誰も鍵イメージから公開鍵を回復して署名者を特定することはできません。 2. 署名者は、異なる I と同じ x を使用して 2 つの署名を行うことはできません。 完全なセキュリティ分析は付録 A に記載されています。 4.5 標準の CryptoNote トランザクション 両方の方法 (リンク不可能な公開鍵と追跡不可能なリング署名) を組み合わせることで、ボブは次のことを達成しました。 元の Bitcoin スキームと比較して、新しいレベルのプライバシー。それは彼にただ保管することだけを要求します 1 つの秘密キー (a、b) と公開 (A、B) を実行して、匿名トランザクションの送受信を開始します。 各トランザクションを検証する際、ボブはさらに、出力ごとに 2 つの楕円曲線乗算と 1 つの加算だけを実行して、トランザクションが自分のものであるかどうかを確認します。彼のすべてのために 出力 Bob はワンタイム キーペア (pi, Pi) を回復し、st彼の財布の中にそれが入っています。任意の入力が可能です 単一のトランザクションに出現した場合にのみ、同じ所有者であることが状況的に証明されます。で 実際、一度きりの指輪の署名のせいで、この関係を確立するのははるかに困難です。 リング署名を使用すると、ボブはすべての入力を他の人の入力の中に効果的に隠すことができます。あらゆる可能性 前の所有者 (アリス) でさえ、それ以上の情報を持っていません。 どの観察者でも。 トランザクションに署名するとき、ボブは自分のトランザクションと同じ金額の n 個の外国産出物を指定します。 他のユーザーの参加なしにそれらすべてを混合して出力します。ボブ自身(そして 他の人)これらの支払いのいずれかが使用されたかどうかはわかりません。出力は使用できます。 何千もの署名では曖昧さの要因として扱われ、決して隠蔽の対象としては扱われません。ダブル 支出チェックは、使用されているキー イメージ セットに対してチェックするときに、LNK フェーズで行われます。 ボブは曖昧さの度合いを自分で選択できます。n = 1 は、ボブが持つ確率を意味します。 出力が消費される確率は 50%、n = 99 では 1% になります。生成される署名のサイズが大きくなる O(n+1) として直線的に増加するため、匿名性の向上により、Bob には追加のトランザクション手数料がかかります。彼もできます n = 0 に設定し、指輪の署名を 1 つの要素だけで構成しますが、これは即座に 彼が浪費家であることを明らかにします。 10 19 この時点で、私はひどく混乱しています。 Alex は、署名 (I,c_1, ..., c_n, r_1, ..., r_n) と公開リスト付きのメッセージ M を受信します。 S キーを押すと、VER が実行されます。これにより、L_i’ と R_i’ が計算されます これは、前のページの c_s = c - sum_i が s c_i であることを検証します。 最初はとても(笑)混乱しました。 L_i’ と R_i’ は誰でも計算できます。実際、各 r_i と c_i が署名で公開されました シグマと I の値。セット S = すべての公開鍵の P_i も公開されています。シグマとそのセットを見た人は誰でも キー S = P_i は L_i’ と R_i’ に同じ値を取得するため、署名をチェックします。 しかし、このセクションは単に署名アルゴリズムについて説明しているだけであり、「チェック」ではないことを思い出しました。 署名されている場合は、私に送られてきたかどうかを確認し、送られてきた場合は、お金を使いましょう。」これは単純に、 ゲームの特徴的な部分。 最終的に付録 A に到達したら、ぜひ読んでみたいと思っています。 Cryptonote と Bitcoin のオペレーションごとの本格的な比較を見てみたいと思います。 また、電力/持続可能性。 ここで「入力」を構成するアルゴリズムは何ですか? トランザクション入力は、金額と、合計が金額よりも大きい UTXO のセットであると思います。 金額。 これは不明です。 「潜伏対象?」これについて数分間考えましたが、まだ考えていません それが何を意味するのか、最も曖昧な考え。 二重支出攻撃は、ノードが認識した使用済みキーを操作することによってのみ実行できます。 画像は \(I\) に設定されています。 「あいまいさの度合い」 = n ですが、トランザクションに含まれる公開鍵の総数は n+1。つまり、曖昧度は「他に何人欲しいですか?」 群衆は?」 おそらくデフォルトでは、答えは「できるだけ多く」となるでしょう。

VER: 検証者は逆変換を適用して署名をチェックします。 ( L' i = リグ + ciPi R' i = riHp(Pi) + ciI 最後に、検証者は次のことを確認します。 nP i=0 シ ?= Hs(m, L' 0、. 。 。 、L' n、R' 0、. 。 。 、R' n) mod l この等価性が正しい場合、検証者はアルゴリズム LNK を実行します。それ以外の場合、検証者は拒否します 署名。 LNK: 検証者は、I が過去の署名で使用されているかどうかを確認します (これらの値は、 セットI)。複数の使用は、2 つの署名が同じ秘密鍵の下で生成されたことを意味します。 プロトコルの意味: L 変換を適用することで、署名者は自分が知っていることを証明します。 少なくとも 1 つの Pi = xG となる x です。この証明を再現不可能にするために、キー画像を導入します。 I = xHp(P) となります。署名者は、同じ係数 (ri、ci) を使用して、ほぼ同じステートメントを証明します。 彼は、少なくとも 1 つの \(H_p(P_i) = I \cdot x^{-1}\) となるような x を知っています。 マッピング \(x \to I\) が注入の場合: 1. 誰も鍵イメージから公開鍵を回復して署名者を特定することはできません。 2. 署名者は、異なる I と同じ x を使用して 2 つの署名を行うことはできません。 完全なセキュリティ分析は付録 A に記載されています。 4.5 標準の CryptoNote トランザクション 両方の方法 (リンク不可能な公開鍵と追跡不可能なリング署名) を組み合わせることで、ボブは次のことを達成しました。 元の Bitcoin スキームと比較して、新しいレベルのプライバシー。それは彼にただ保管することだけを要求します 1 つの秘密キー (a、b) と公開 (A、B) を実行して、匿名トランザクションの送受信を開始します。 各トランザクションを検証する際、ボブはさらに、出力ごとに 2 つの楕円曲線乗算と 1 つの加算だけを実行して、トランザクションが自分のものであるかどうかを確認します。彼のすべてのために 出力 ボブはワンタイム キーペア (pi, Pi) を回復し、それをウォレットに保存します。任意の入力が可能です 単一のトランザクションに出現した場合にのみ、同じ所有者であることが状況的に証明されます。で 実際、一度きりの指輪の署名のせいで、この関係を確立するのははるかに困難です。 リング署名を使用すると、ボブはすべての入力を他の人の入力の中に効果的に隠すことができます。あらゆる可能性 前の所有者 (アリス) でさえ、それ以上の情報を持っていません。 どの観察者でも。 トランザクションに署名するとき、ボブは自分のトランザクションと同じ金額の n 個の外国産出物を指定します。 他のユーザーの参加なしにそれらすべてを混合して出力します。ボブ自身(そして 他の人)これらの支払いのいずれかが使用されたかどうかはわかりません。出力は使用できます。 何千もの署名では曖昧さの要因として扱われ、決して隠蔽の対象としては扱われません。ダブル 支出チェックは、使用されているキー イメージ セットに対してチェックするときに、LNK フェーズで行われます。 ボブは曖昧さの度合いを自分で選択できます。n = 1 は、ボブが持つ確率を意味します。 出力が消費される確率は 50%、n = 99 では 1% になります。生成される署名のサイズが大きくなる O(n+1) として直線的に増加するため、匿名性の向上により、Bob には追加のトランザクション手数料がかかります。彼もできます n = 0 に設定し、指輪の署名を 1 つの要素だけで構成しますが、これは即座に 彼が浪費家であることを明らかにします。 10 VER: 検証者は逆変換を適用して署名をチェックします。 ( L' i = リグ + ciPi R' i = riHp(Pi) + ciI 最後に、検証者は次のことを確認します。 nP i=0 シ ?= Hs(m, L' 0、. 。 。 、L' n、R' 0、. 。 。 、R' n) mod l この等価性が正しい場合、検証者はアルゴリズム LNK を実行します。それ以外の場合、検証者は拒否します 署名。 LNK: 検証者は、I が過去の署名で使用されているかどうかを確認します (これらの値は、 セットI)。複数の使用は、2 つの署名が同じ秘密鍵の下で生成されたことを意味します。 プロトコルの意味: L 変換を適用することで、署名者は自分が知っていることを証明します。 少なくとも 1 つの Pi = xG となる x です。この証明を再現不可能にするために、キー画像を導入します。 I = xHp(P) となります。署名者は、同じ係数 (ri、ci) を使用して、ほぼ同じステートメントを証明します。 彼は、少なくとも 1 つの \(H_p(P_i) = I \cdot x^{-1}\) となるような x を知っています。 マッピング \(x \to I\) が注入の場合: 1. 誰も鍵イメージから公開鍵を回復して署名者を特定することはできません。 2. 署名者は、異なる I と同じ x を使用して 2 つの署名を行うことはできません。 完全なセキュリティ分析は付録 A に記載されています。 4.5 標準の CryptoNote トランザクション 両方の方法 (リンク不可能な公開鍵と追跡不可能なリング署名) を組み合わせることで、ボブは次のことを達成しました。 元の Bitcoin スキームと比較して、新しいレベルのプライバシー。それは彼にただ保管することだけを要求します 1 つの秘密キー (a、b) と公開 (A、B) を実行して、匿名トランザクションの送受信を開始します。 各トランザクションを検証する際、ボブはさらに、出力ごとに 2 つの楕円曲線乗算と 1 つの加算だけを実行して、トランザクションが自分のものであるかどうかを確認します。彼のすべてのために 出力 Bob はワンタイム キーペア (pi, Pi) を回復し、st彼の財布の中にそれが入っています。任意の入力が可能です 単一のトランザクションに出現した場合にのみ、同じ所有者であることが状況的に証明されます。で 実際、一度きりの指輪の署名のせいで、この関係を確立するのははるかに困難です。 リング署名を使用すると、ボブはすべての入力を他の人の入力の中に効果的に隠すことができます。あらゆる可能性 前の所有者 (アリス) でさえ、それ以上の情報を持っていません。 どの観察者でも。 トランザクションに署名するとき、ボブは自分のトランザクションと同じ金額の n 個の外国産出物を指定します。 他のユーザーの参加なしにそれらすべてを混合して出力します。ボブ自身(そして 他の人)これらの支払いのいずれかが使用されたかどうかはわかりません。出力は使用できます。 何千もの署名では曖昧さの要因として扱われ、決して隠蔽の対象としては扱われません。ダブル 支出チェックは、使用されているキー イメージ セットに対してチェックするときに、LNK フェーズで行われます。 ボブは曖昧さの度合いを自分で選択できます。n = 1 は、ボブが持つ確率を意味します。 出力が消費される確率は 50%、n = 99 では 1% になります。生成される署名のサイズが大きくなる O(n+1) として直線的に増加するため、匿名性の向上により、Bob には追加のトランザクション手数料がかかります。彼もできます n = 0 に設定し、指輪の署名を 1 つの要素だけで構成しますが、これは即座に 彼が浪費家であることを明らかにします。 10 20 これは興味深いですね。先ほど、受信者であるボブがすべての受信を受信できるようにする方法を提供しました。 秘密鍵の半分を決定論的に選択するか、 彼の秘密鍵の半分を公開鍵として公開します。これは後戻りできない一種の政策です。ここでわかります。 送信者アレックスが単一の送信トランザクションをリンク可能として選択する方法ですが、実際にはこれ アレックスがネットワーク全体への送信者であることを明らかにします。これは後戻りできない政策ではありません。 これはトランザクションごとです。 3番目のポリシーはありますか?受取人であるボブは、アレックスに固有の支払い ID を生成できますか? おそらくディフィー・ヘルマン交換を使用して変更されることはありませんか? 誰かがその支払いを含めた場合 ID はボブのアドレスへの取引のどこかにバンドルされており、アレックスから送られたものに違いありません。 このようにして、アレックスは特定のリンクを選択することでネットワーク全体に自分自身を明らかにする必要がなくなります。 取引が終了しても、彼女は送金先の相手に自分自身を特定することができます。 これがポロニエックスのやっていることではないでしょうか?

トランザクション 送信入力 出力0 。 。 。 出力 。 。 。 出力 キー画像 署名 リングサイン 宛先キー 出力1 宛先キー 出力 外国取引 送信者の出力 宛先キー ワンタイムキーペア ワンタイム 秘密鍵 I = xHp(P) P、\(\times\) 図 7. 標準トランザクションにおけるリング署名の生成。 5 平等主義的証明 このセクションでは、新しい proof-of-work アルゴリズムを提案し、基礎にします。 私たちの主な目標 CPU (多数派) マイナーと GPU/FPGA/ASIC (少数派) マイナーの間のギャップを埋めることです。それは 一部のユーザーが他のユーザーよりも一定の利点を持つことは適切ですが、その投資は 電力に応じて少なくとも直線的に増加するはずです。より一般的には、特殊用途のデバイスの製造 利益はできるだけ少なくする必要があります。 5.1 関連作品 元の Bitcoin proof-of-work プロトコルは、CPU を大量に使用する価格設定関数 SHA-256 を使用します。 主に基本的な論理演算子で構成され、演算速度のみに依存します。 したがって、マルチコア/コンベアの実装に最適です。 ただし、現代のコンピューターは 1 秒あたりの操作数だけによって制限されるわけではありません。 メモリサイズによっても異なります。一部のプロセッサは他のプロセッサよりも大幅に高速になる可能性があります[8]、 メモリ サイズはマシン間で異なる可能性が低くなります。 メモリバウンド価格関数は、Abadi らによって最初に導入され、次のように定義されました。 「メモリへのアクセスに費やされる時間によって計算時間が支配される関数」 [15]。 主なアイデアは、大きなデータ ブロック (「スクラッチパッド」) を割り当てるアルゴリズムを構築することです。 比較的ゆっくりとアクセスできるメモリ (RAM など) 内で、「 その中には予測不可能な場所の連続があります。ブロックは保存するのに十分な大きさでなければなりません データは、アクセスごとに再計算するよりも有利です。アルゴリズムはまた、 内部並列処理を防ぐため、N 個の同時スレッドには N 倍のメモリが必要になります すぐに。 Dwork ら [22] は、このアプローチを調査して形式化し、別のアプローチを提案しました。 価格設定関数のバリエーション:「Mbound」。 もう 1 つの作品は F. Coelho [20] のものです。 11 トランザクション 送信入力 出力0 。 。 。 出力 。 。 。 出力 キー画像 署名 リングサイン 宛先キー 出力1 宛先キー 出力 外国取引 送信者の出力 宛先キー ワンタイムキーペア ワンタイム 秘密鍵 I = xHp(P) P、\(\times\) 図 7. 標準トランザクションにおけるリング署名の生成。 5 平等主義的証明 このセクションでは、新しい proof-of-work アルゴリズムを提案し、基礎にします。 私たちの主な目標 CPU (多数派) マイナーと GPU/FPGA/ASIC (少数派) マイナーの間のギャップを埋めることです。それは 一部のユーザーが他のユーザーよりも一定の利点を持つことは適切ですが、その投資は 電力に応じて少なくとも直線的に増加するはずです。より一般的には、特殊用途のデバイスの製造 利益はできるだけ少なくする必要があります。 5.1 関連作品 元の Bitcoin proof-of-work プロトコルは、CPU を大量に使用する価格設定関数 SHA-256 を使用します。 主に基本的な論理演算子で構成され、演算速度のみに依存します。 したがって、マルチコア/コンベアの実装に最適です。 ただし、現代のコンピューターは 1 秒あたりの操作数だけによって制限されるわけではありません。 メモリサイズによっても異なります。一部のプロセッサは他のプロセッサよりも大幅に高速になる可能性があります[8]、 メモリ サイズはマシン間で異なる可能性が低くなります。 メモリバウンド価格関数は、Abadi らによって最初に導入され、次のように定義されました。 「メモリへのアクセスに費やされる時間によって計算時間が支配される関数」 [15]。 主なアイデアは、大きなデータ ブロック (「スクラッチパッド」) を割り当てるアルゴリズムを構築することです。 比較的ゆっくりとアクセスできるメモリ (RAM など) 内で、「 その中には予測不可能な場所の連続があります。ブロックは保存するのに十分な大きさでなければなりません データは、アクセスごとに再計算するよりも有利です。アルゴリズムはまた、 内部並列処理を防ぐため、N 個の同時スレッドには N 倍のメモリが必要になります すぐに。 Dwork ら [22] は、このアプローチを調査して形式化し、別のアプローチを提案しました。 価格設定関数のバリエーション:「Mbound」。 もう 1 つの作品は F. Coelho [20] のものです。 11 21 これらは、表向き、UTXO の金額と宛先キーです。 Alex がこの標準トランザクションを構築し、Bob に送信している場合、Alex は秘密鍵も持っています。 これらのそれぞれに。 この図は以前の質問のいくつかに答えているので、とても気に入っています。 Txn入力の構成 一連の Txn 出力と keyのイメージ。その後、すべての内容を含むリング署名で署名されます。 アレックスが契約に含まれるすべての外国取引に対して所有する秘密鍵。の Txn 出力は金額と宛先キーで構成されます。トランザクションの受信者は、 必要に応じて、この文書で前述したようにワンタイム秘密キーを生成して、 お金。 これが実際のコードとどの程度一致するかを知るのは楽しいことでしょう... いいえ、Nic van Saberhagen は、プルーフ・オブ・ワーク・アルゴリズムのいくつかの特性について大まかに説明しています。 実際にそのアルゴリズムを説明することはありません。 CryptoNight アルゴリズム自体には詳細な分析が必要です。 これを読んだとき、私はどもってしまいました。投資は電力に応じて少なくとも直線的に増加する必要があります。 投資は電力に応じて最大でも直線的に成長しますか? そして私は気づきました。採掘者または投資家としての私は、通常、「どれだけの電力を得ることができるか」を考えます。 投資のためですか?」 「一定量の電力を得るためにどれくらいの投資が必要か?」ではありません。 もちろん、投資を I、電力を P で表します。I(P) が電力の関数としての投資である場合、 P(I) は投資の関数としての電力であり、それらは互いに逆数になります (どこにいても 逆も存在する可能性があります)。そして、I(P) が線形より速い場合、P(I) は線形より遅いです。したがって、 投資家にとっての収益率は低下します。 つまり、著者がここで言いたいのは、「確かに、投資すればするほど、より多くの利益が得られるでしょう」 力。しかし、私たちはそれを収益率の低下につながるように努めるべきです。」 CPU への投資は、最終的には線形に近い形で頭打ちになってしまいます。問題は著者かどうかです。 は、ASIC にもこれを強制する POW アルゴリズムを設計しました。 仮想の「将来通貨」は常に最も遅い/最も限られたリソースで採掘されるべきでしょうか? Abadi らの論文 (Google と Microsoft のエンジニアが著者となっている) は次のとおりです。 基本的に、過去数年間 メモリ サイズが大幅に小さくなったという事実を利用します。 プロセッサ速度よりもマシン間の差異が少なく、電力に対する投資の比率が線形以上になります。 数年後には再評価が必要になるかも知れません!すべては軍拡競争だ… hash 関数の構築は困難です。これらの制約を満たす hash 関数を構築するのはさらに難しいようです。この論文には実際の説明はないようです hashアルゴリズム CryptoNight。これはメモリを必要とする SHA-3 の実装だと思います。 フォーラムの投稿に書いてありますが、わかりません...そしてそれが重要です。それは説明されなければなりません。

最も効果的な解決策として「北海道」を提案しました。 私たちの知る限り、大きな配列での擬似ランダム検索のアイデアに基づいた最後の作品は次のとおりです。 C. Percival [32] によって「scrypt」として知られるアルゴリズム。これまでの機能とは異なり、重点を置いています proof-of-work システムではなく、キー導出。この事実にもかかわらず、scrypt は私たちの目的を果たすことができます。 これは、 Bitcoin。 これまでに、scrypt はすでに Litecoin [14] およびその他の Bitcoin フォークに適用されています。ただし、その実装は実際にはメモリに依存しません。つまり、「メモリ アクセス時間 / 全体」の比率 各インスタンスは 128 KB しか使用しないため、「time」は十分な大きさではありません。これにより GPU マイナーが許可されます 効果は約 10 倍であり、相対的に 安価だが高効率のマイニングデバイス。 さらに、暗号化構造自体により、メモリ サイズとメモリ サイズの間の線形トレードオフが可能になります。 スクラッチパッド内のすべてのブロックが前のブロックからのみ派生するという事実による CPU 速度。 たとえば、2 つおきのブロックを保存し、他のブロックを遅延的な方法で再計算することができます。 必要になったとき。擬似ランダムインデックスは一様に分布していると仮定されます。 したがって、追加ブロックの再計算の期待値は 1 です。 \(2 \cdot N\)、N は数値です 反復の。全体の計算時間の増加は半分未満です。 スクラッチパッドの準備や hash などの、時間に依存しない (一定時間) 操作 すべての反復。メモリコストの 2/3 を節約 1 3・N+1 3 \(\cdot\) \(2 \cdot N\) = N 回の追加の再計算。 9/10 の結果は次のとおりです 1 10・N+。 。 。 +1 10・9・N=4.5N。 1 つだけ保存していることを示すのは簡単です すべてのブロックの 時間の増加は s−1 倍未満です 2.これは、CPU を搭載したマシンが 最新のチップよりも 200 倍高速で、スクラッチパッドを 320 バイトしか保存できません。 5.2 提案されたアルゴリズム proof-of-work 価格設定関数用の新しいメモリ制限アルゴリズムを提案します。依存しているのは 遅いメモリへのランダム アクセスであり、レイテンシの依存性が強調されます。毎に暗号化するのとは対照的に、 新しいブロック (長さ 64 バイト) は、以前のすべてのブロックに依存します。その結果、仮説としては 「メモリセーバー」を使用すると、計算速度が飛躍的に向上するはずです。 私たちのアルゴリズムでは、次の理由により、インスタンスごとに約 2 Mb が必要です。 1. 主流になるはずの最新プロセッサの L3 キャッシュ (コアごと) に適合します 数年以内に。 2. メガバイトの内部メモリは、最新の ASIC パイプラインではほとんど許容できないサイズです。 3. GPU は数百の同時インスタンスを実行できますが、他の方法で制限されます。 GDDR5 メモリは CPU L3 キャッシュよりも遅く、その帯域幅では注目に値しますが、 ランダムアクセス速度。 4. スクラッチパッドを大幅に拡張するには、反復回数を増やす必要があります。 ターンは全体的な時間の増加を意味します。トラストレス P2P ネットワークでの「重い」通話は、次のような問題を引き起こす可能性があります。 ノードはすべての新しいブロックの proof-of-work をチェックする義務があるため、深刻な脆弱性が存在します。 ノードが各 hash 評価にかなりの時間を費やすと、簡単に 任意の作業データ (nonce 値) を含む偽のオブジェクトの大量による DDoSed。 12 最も効果的な解決策として「北海道」を提案しました。 私たちの知る限り、大きな配列での擬似ランダム検索のアイデアに基づいた最後の作品は次のとおりです。 C. Percival [32] によって「scrypt」として知られるアルゴリズム。これまでの機能とは異なり、重点を置いています proof-of-work システムではなく、キー導出。この事実にもかかわらず、scrypt は私たちの目的を果たすことができます。 これは、 Bitcoin。 これまでに、scrypt はすでに Litecoin [14] およびその他の Bitcoin フォークに適用されています。ただし、その実装は実際にはメモリに依存しません。つまり、「メモリ アクセス時間 / 全体」の比率 各インスタンスは 128 KB しか使用しないため、「time」は十分な大きさではありません。これにより GPU マイナーが許可されます 効果は約 10 倍であり、相対的に 安価だが高効率のマイニングデバイス。 さらに、暗号化構造自体により、メモリ サイズとメモリ サイズの間の線形トレードオフが可能になります。 スクラッチパッド内のすべてのブロックが前のブロックからのみ派生するという事実による CPU 速度。 たとえば、2 つおきのブロックを保存し、他のブロックを遅延的な方法で再計算することができます。 必要になったとき。擬似ランダムインデックスは一様に分布していると仮定されます。 したがって、追加ブロックの再計算の期待値は 1 です。 2・N、ここでNは数字です 反復の。全体の計算時間の増加は半分未満です。 スクラッチパッドの準備や hash などの、時間に依存しない (一定時間) 操作 すべての反復。メモリコストの 2/3 を節約 1 3・N+1 3 \(\cdot\) \(2 \cdot N\) = N 回の追加の再計算。 9/10 の結果は次のとおりです 1 10・N+。 。 。 +1 10・9・N=4.5N。 1 つだけ保存していることを示すのは簡単です すべてのブロックの 時間の増加は s−1 倍未満です 2.これは、CPU を搭載したマシンが 最新のチップよりも 200 倍高速で、スクラッチパッドを 320 バイトしか保存できません。 5.2 提案されたアルゴリズム proof-of-work 価格設定関数用の新しいメモリ制限アルゴリズムを提案します。依存しているのは 遅いメモリへのランダム アクセスであり、レイテンシの依存性が強調されます。毎に暗号化するのとは対照的に、 新しいブロック (長さ 64 バイト) は、以前のすべてのブロックに依存します。その結果、仮説としては 「メモリセーバー」を使用すると、計算速度が飛躍的に向上するはずです。 私たちのアルゴリズムでは、次の理由により、インスタンスごとに約 2 Mb が必要です。 1. 主流になるはずの最新プロセッサの L3 キャッシュ (コアごと) に適合します 数年以内に。 2. メガバイトの内部メモリは、最新の ASIC パイプラインではほとんど許容できないサイズです。 3. GPU は数百の同時インスタンスを実行できますが、他の方法で制限されます。 GDDR5 メモリは CPU L3 キャッシュよりも遅く、その帯域幅では注目に値しますが、 ランダムアクセス速度。 4. スクラッチパッドを大幅に拡張するには、反復回数を増やす必要があります。 ターンは全体的な時間の増加を意味します。トラストレス P2P ネットワークでの「重い」通話は、次のような問題を引き起こす可能性があります。 ノードはすべての新しいブロックの proof-of-work をチェックする義務があるため、深刻な脆弱性が存在します。 ノードが各 hash 評価にかなりの時間を費やした場合、簡単に 任意の作業データ (nonce 値) を含む偽のオブジェクトの大量による DDoSed。 12 22 気にしないでください、それは暗号コインですか? アルゴリズムはどこにあるのでしょうか?私が見るのは広告だけです。 Cryptonote の PoW アルゴリズムが価値があるのであれば、これが真に輝くところです。そうではありません 実際には SHA-256 ですが、実際には暗号ではありません。これは新しく、メモリに依存し、再帰的ではありません。

6 さらなる利点 6.1 スムーズな発光 CryptoNote デジタル コインの総量の上限は次のとおりです: MSupply = 264 −1 原子単位。これは、直感ではなく、実装の制限のみに基づいた自然な制限です。 「N コインは誰にとっても十分なはずです」など。 放出プロセスのスムーズさを確保するために、ブロックに次の式を使用します。 報酬: BaseReward = (MSsupply −A) ≫18、 ここで、A は以前に生成されたコインの量です。 6.2 調整可能なパラメータ 6.2.1 難易度 CryptoNote には、ブロックごとの難易度を変更するターゲティング アルゴリズムが含まれています。これ ネットワークのhashレートが急激に増加または縮小している場合、システムの反応時間を短縮します。 一定のブロックレートを維持します。オリジナルの Bitcoin メソッドは、実際の 最後の 2016 ブロック間の目標タイムスパンを設定し、それを現在のブロックの乗数として使用します。 難しさ。明らかに、これは (慣性が大きいため) 迅速な再計算には適していません。 発振の原因となります。 私たちのアルゴリズムの背後にある一般的な考え方は、ノードによって完了したすべての作業を合計し、 それを費やした時間で割ります。仕事の尺度は、対応する難易度の値です 各ブロックにあります。しかし、タイムスタンプが不正確で信頼できないため、正確なタイムスタンプを判断することはできません。 ブロック間の時間間隔。ユーザーは自分のタイムスタンプを将来および次回にシフトできます。 間隔はありえないほど小さいか、マイナスになる可能性さえあります。おそらく事件も少なくなるでしょう このようなものなので、タイムスタンプを並べ替えて外れ値 (つまり 20%) を切り捨てるだけです。の範囲 残りの値は、対応するブロックの 80% に費やされた時間です。 6.2.2 サイズ制限 ユーザーは blockchain を保存するために料金を支払い、そのサイズについて投票する権利を有するものとします。 すべての鉱夫 コストと手数料による利益のバランスを考慮し、独自の設定を行います。 ブロックを作成するための「ソフトリミット」。最大ブロック サイズに関するコア ルールも必要です。 blockchain が偽のトランザクションで溢れかえるのを防ぎますが、この値は ハードコーディングしないでください。 MN を最後の N 個のブロック サイズの中央値とする。次に、サイズの「ハードリミット」 受け入れられるブロックの数は \(2 \cdot M_N\) です。 blockchain の肥大化を回避しますが、それでも制限は許容されます。 必要に応じて、時間の経過とともにゆっくりと成長します。 トランザクション サイズを明示的に制限する必要はありません。これはブロックのサイズによって制限されます。 そして、誰かが何百もの入出力(または リング署名のあいまいさの度合いが高い)、十分な料金を支払うことでそれを行うことができます。 6.2.3 サイズ超過ペナルティ マイナーは、自分自身のゼロ手数料トランザクションを最大限までブロックに詰め込むことができます。 サイズ2・MB。大多数のマイナーのみが中央値を移動できるとしても、依然として 13 6 さらなる利点 6.1 スムーズな発光 CryptoNote デジタル コインの総量の上限は次のとおりです: MSupply = 264 −1 原子単位。これは、直感ではなく、実装の制限のみに基づいた自然な制限です。 「N コインは誰にとっても十分なはずです」など。 放出プロセスのスムーズさを確保するために、ブロックに次の式を使用します。 報酬: BaseReward = (MSsupply −A) ≫18、 ここで、A は以前に生成されたコインの量です。 6.2 調整可能なパラメータ 6.2.1 難易度 CryptoNote には、ブロックごとの難易度を変更するターゲティング アルゴリズムが含まれています。これ ネットワークのhashレートが急激に増加または縮小している場合、システムの反応時間を短縮します。 一定のブロックレートを維持します。オリジナルの Bitcoin メソッドは、実際の 最後の 2016 ブロック間の目標タイムスパンを設定し、それを現在のブロックの乗数として使用します。 難しさ。明らかに、これは (慣性が大きいため) 迅速な再計算には適していません。 発振の原因となります。 私たちのアルゴリズムの背後にある一般的な考え方は、ノードによって完了したすべての作業を合計し、 それを費やした時間で割ります。仕事の尺度は、対応する難易度の値です 各ブロックにあります。しかし、タイムスタンプが不正確で信頼できないため、正確なタイムスタンプを判断することはできません。 ブロック間の時間間隔。ユーザーは自分のタイムスタンプを将来および次回にシフトできます。 間隔はありえないほど小さいか、マイナスになる可能性さえあります。おそらく事件も少なくなるでしょう このようなものなので、タイムスタンプを並べ替えて外れ値 (つまり 20%) を切り捨てるだけです。の範囲 残りの値は、対応するブロックの 80% に費やされた時間です。 6.2.2 サイズ制限 ユーザーは blockchain を保存するために料金を支払い、そのサイズについて投票する権利を有するものとします。 すべての鉱夫 バランシング間のトレードオフを扱います。費用と手数料からの利益を自分で設定し、 ブロックを作成するための「ソフトリミット」。最大ブロック サイズに関するコア ルールも必要です。 blockchain が偽のトランザクションで溢れかえるのを防ぎますが、この値は ハードコーディングしないでください。 MN を最後の N 個のブロック サイズの中央値とする。次に、サイズの「ハードリミット」 受け入れられるブロックの数は \(2 \cdot M_N\) です。 blockchain の肥大化は回避されますが、それでも制限は許容されます。 必要に応じて、時間の経過とともにゆっくりと成長します。 トランザクション サイズを明示的に制限する必要はありません。これはブロックのサイズによって制限されます。 そして、誰かが何百もの入出力(または リング署名のあいまいさの度合いが高い)、十分な料金を支払うことでそれを行うことができます。 6.2.3 サイズ超過ペナルティ マイナーは、自分自身のゼロ手数料トランザクションを最大限までブロックに詰め込むことができます。 サイズ2・MB。大多数のマイナーのみが中央値を移動できるとしても、依然として 13 23 原子単位。私はそれが好きです。これはサトシに相当するのでしょうか? もしそうなら、それは1,850億の暗号通貨が存在することを意味します。 これは最終的には数ページで調整する必要があることはわかっていますが、それともタイプミスがあるのでしょうか? 基本報酬が「残りのすべてのコイン」である場合、すべてのコインを取得するには 1 つのブロックだけで十分です。 インスタミン。 一方、これが何らかの形で比例すると仮定すると、 現在とコインの生産終了日との時間差はあるのでしょうか? そうすれば 意味が分かる。 また、私の世界では、このような「より大きい」記号が 2 つあると、「より大きい」という意味になります。著者がやったのか おそらく何か別の意味でしょうか? ブロックごとに難易度の調整が行われる場合、攻撃者は非常に大規模なファームを所有する可能性があります。 マシンは慎重に選択された時間間隔で断続的にマイニングを行います。難易度調整式が適切に抑制されていない場合、これにより難易度が混沌とした爆発 (またはゼロへのクラッシュ) を引き起こす可能性があります。 Bitcoin の方法が迅速な再計算には適していないことは間違いありませんが、慣性の考え方は これらのシステムでは、当然のこととみなされるのではなく、証明される必要があります。さらに、振動 ネットワークの問題は、表向きの変動を引き起こさない限り、必ずしも問題ではありません コインの供給量が非常に急速に変化するため、「過剰修正」が発生する可能性があります。 費やされる時間、特に数分間のような短い期間では、「合計」に比例します。 ネットワーク上に作成されたブロックの数。」比例定数自体が大きくなる 時間の経過とともに、CN が発生するとおそらく指数関数的に増加します。 「上に作成されるブロックの総数」を維持するために、単純に難易度を調整する方が良いかもしれません。 最後のブロックがメインチェーンに追加されてからのネットワーク」を何らかの定数値内で、または 限界変動とかそういうもの。計算上の適応アルゴリズムの場合、 実装が簡単であることが判断できれば、これで問題は解決すると思われます。 しかし、その方法を使用すると、大規模なマイニング農場を所有する誰かがその農場を閉鎖する可能性があります。 数時間放置してから、再度電源を入れます。最初の数ブロックでは、その農場は 銀行。 したがって、実際、この方法は興味深い点をもたらします。つまり、マイニングは(平均して) 特にネットワークに接続する人が増えると、ROI が得られずに負けてしまいます。採掘の難易度が高い場合 非常に厳重に追跡されたネットワークhashレート、人々が彼らと同じくらい採掘するのではないかと私はどういうわけか疑っています 現在はそうしています。 あるいは、その一方で、マイニング ファームを 24 時間 365 日稼働させ続ける代わりに、 6 時間オン、2 時間オフ、6 時間オン、2 時間オフなど。別のコインに切り替えるだけです 数時間待って、難易度が下がるのを待ってから、追加のいくつかを獲得するために再び飛び乗ります ネットワークが適応するにつれて収益性が低下します。そして、あなたは何を知っていますか?これは実はおそらく これは私が考えた中で最も優れた採掘シナリオの 1 つです... これは循環する可能性がありますが、ブロックの作成時間が平均約 1 分である場合、 「費やした時間」の代用としてブロック数を使用します。

6 さらなる利点 6.1 スムーズな発光 CryptoNote デジタル コインの総量の上限は次のとおりです: MSupply = 264 −1 原子単位。これは、直感ではなく、実装の制限のみに基づいた自然な制限です。 「N コインは誰にとっても十分なはずです」など。 放出プロセスのスムーズさを確保するために、ブロックに次の式を使用します。 報酬: BaseReward = (MSsupply −A) ≫18、 ここで、A は以前に生成されたコインの量です。 6.2 調整可能なパラメータ 6.2.1 難易度 CryptoNote には、ブロックごとの難易度を変更するターゲティング アルゴリズムが含まれています。これ ネットワークのhashレートが急激に増加または縮小している場合、システムの反応時間を短縮します。 一定のブロックレートを維持します。オリジナルの Bitcoin メソッドは、実際の 最後の 2016 ブロック間の目標タイムスパンを設定し、それを現在のブロックの乗数として使用します。 難しさ。明らかに、これは (慣性が大きいため) 迅速な再計算には適していません。 発振の原因となります。 私たちのアルゴリズムの背後にある一般的な考え方は、ノードによって完了したすべての作業を合計し、 それを費やした時間で割ります。仕事の尺度は、対応する難易度の値です 各ブロックにあります。しかし、タイムスタンプが不正確で信頼できないため、正確なタイムスタンプを判断することはできません。 ブロック間の時間間隔。ユーザーは自分のタイムスタンプを将来および次回にシフトできます。 間隔はありえないほど小さいか、マイナスになる可能性さえあります。おそらく事件も少なくなるでしょう このようなものなので、タイムスタンプを並べ替えて外れ値 (つまり 20%) を切り捨てるだけです。の範囲 残りの値は、対応するブロックの 80% に費やされた時間です。 6.2.2 サイズ制限 ユーザーは blockchain を保存するために料金を支払い、そのサイズについて投票する権利を有するものとします。 すべての鉱夫 コストと手数料による利益のバランスを考慮し、独自の設定を行います。 ブロックを作成するための「ソフトリミット」。最大ブロック サイズに関するコア ルールも必要です。 blockchain が偽のトランザクションで溢れかえるのを防ぎますが、この値は ハードコーディングしないでください。 MN を最後の N 個のブロック サイズの中央値とする。次に、サイズの「ハードリミット」 受け入れられるブロックの数は \(2 \cdot M_N\) です。 blockchain の肥大化を回避しますが、それでも制限は許容されます。 必要に応じて、時間の経過とともにゆっくりと成長します。 トランザクション サイズを明示的に制限する必要はありません。これはブロックのサイズによって制限されます。 そして、誰かが何百もの入出力(または リング署名のあいまいさの度合いが高い)、十分な料金を支払うことでそれを行うことができます。 6.2.3 サイズ超過ペナルティ マイナーは、自分自身のゼロ手数料トランザクションを最大限までブロックに詰め込むことができます。 サイズ2・MB。大多数のマイナーのみが中央値を移動できるとしても、依然として 13 6 さらなる利点 6.1 スムーズな発光 CryptoNote デジタル コインの総量の上限は次のとおりです: MSupply = 264 −1 原子単位。これは、直感ではなく、実装の制限のみに基づいた自然な制限です。 「N コインは誰にとっても十分なはずです」など。 放出プロセスのスムーズさを確保するために、ブロックに次の式を使用します。 報酬: BaseReward = (MSsupply −A) ≫18、 ここで、A は以前に生成されたコインの量です。 6.2 調整可能なパラメータ 6.2.1 難易度 CryptoNote には、ブロックごとの難易度を変更するターゲティング アルゴリズムが含まれています。これ ネットワークのhashレートが急激に増加または縮小している場合、システムの反応時間を短縮します。 一定のブロックレートを維持します。オリジナルの Bitcoin メソッドは、実際の 最後の 2016 ブロック間の目標タイムスパンを設定し、それを現在のブロックの乗数として使用します。 難しさ。明らかに、これは (慣性が大きいため) 迅速な再計算には適していません。 発振の原因となります。 私たちのアルゴリズムの背後にある一般的な考え方は、ノードによって完了したすべての作業を合計し、 それを費やした時間で割ります。仕事の尺度は、対応する難易度の値です 各ブロックにあります。しかし、タイムスタンプが不正確で信頼できないため、正確なタイムスタンプを判断することはできません。 ブロック間の時間間隔。ユーザーは自分のタイムスタンプを将来および次回にシフトできます。 間隔はありえないほど小さいか、マイナスになる可能性さえあります。おそらく事件も少なくなるでしょう このようなものなので、タイムスタンプを並べ替えて外れ値 (つまり 20%) を切り捨てるだけです。の範囲 残りの値は、対応するブロックの 80% に費やされた時間です。 6.2.2 サイズ制限 ユーザーは blockchain を保存するために料金を支払い、そのサイズについて投票する権利を有するものとします。 すべての鉱夫 バランシング間のトレードオフを扱います。費用と手数料からの利益を自分で設定し、 ブロックを作成するための「ソフトリミット」。最大ブロック サイズに関するコア ルールも必要です。 blockchain が偽のトランザクションで溢れかえるのを防ぎますが、この値は ハードコーディングしないでください。 MN を最後の N 個のブロック サイズの中央値とする。次に、サイズの「ハードリミット」 受け入れられるブロックの数は \(2 \cdot M_N\) です。 blockchain の肥大化を回避しますが、それでも制限は許容されます。 必要に応じて、時間の経過とともにゆっくりと成長します。 トランザクション サイズを明示的に制限する必要はありません。これはブロックのサイズによって制限されます。 そして、誰かが何百もの入出力(または リング署名のあいまいさの度合いが高い)、十分な料金を支払うことでそれを行うことができます。 6.2.3 サイズ超過ペナルティ マイナーは、自分自身のゼロ手数料トランザクションを最大限までブロックに詰め込むことができます。 サイズ2・MB。大多数のマイナーのみが中央値を移動できるとしても、依然として 13 24 さて、blockchain があり、各ブロックには単純にタイムスタンプが追加されています。 注文した。これは明らかに、単に難易度を調整するために挿入されたものです。 前述したように、非常に信頼性が低いです。チェーン内に矛盾するタイムスタンプを含めることはできますか? チェーン内でブロック A がブロック B より前にあり、財務面ですべてが一貫している場合、 しかし、ブロック A はブロック B の後に作成されたように見えますか?おそらく誰かが所有していたので、 ネットワークの大部分?それでいいですか? おそらく財政が破綻していないからでしょう。 そうですね、私はこの恣意的な「メイン blockchain にとって正当なブロックは 80% だけです」というのが大嫌いです。 アプローチする。嘘つきがタイムスタンプを改ざんするのを防ぐことが目的だったのでしょうか?しかし今では、こう付け加えます 誰もが自分のタイムスタンプについて嘘をつき、中央値だけを選ぶ動機になります。 定義してください。 意味「このブロックには、それ以上の手数料を含むトランザクションのみを含める」 p% よりも、優先的に 2p% を超える手数料」とか、そのようなものですか? 偽物とはどういう意味ですか? 取引が過去の履歴と一致している場合 blockchain、トランザクションにはマイナーが満足できる手数料が含まれていますが、それだけでは十分ではありませんか?さて、 いいえ、必ずしもそうではありません。最大ブロック サイズが存在しない場合、悪意のあるユーザーを留めておくものは何もありません。 単に速度を低下させるために、大量のトランザクションのブロックを自分自身に一度にアップロードするだけではありません。 ネットワーク。 最大ブロックサイズに関する基本ルールにより、人々が大量のジャンクを置くことを防止します 速度を低下させるためだけに、blockchain 上のデータを一度にすべて削除します。しかし、そのようなルールは間違いなくそうしなければなりません 適応的であること - たとえば、クリスマス シーズン中はトラフィックが急増することが予想されます。 ブロック サイズが非常に大きくなり、その直後にブロック サイズがその後減少する またまた。したがって、a) 何らかの適応キャップ、または b) 99% の 妥当なクリスマスのピークは上限を突破しません。もちろん、2番目のものは不可能です 推定 - 通貨が普及するかどうかは誰にもわかりません。適応的にして心配しないほうがいいです それについて。しかし、制御理論の問題があります。それは、これをどのように適応させるかということです。 攻撃に対する脆弱性、または乱暴でクレイジーな振動? 適応型の方法では、悪意のあるユーザーが少額を蓄積するのを阻止できないことに注意してください。 blockchain 上にジャンク データが時間の経過とともに増加し、長期的な肥大化を引き起こします。これは別の問題です これは、暗号通貨コインが深刻な問題を抱えていることを意味します。

6 さらなる利点 6.1 スムーズな発光 CryptoNote デジタル コインの総量の上限は次のとおりです: MSupply = 264 −1 原子単位。これは、直感ではなく、実装の制限のみに基づいた自然な制限です。 「N コインは誰にとっても十分なはずです」など。 放出プロセスのスムーズさを確保するために、ブロックに次の式を使用します。 報酬: BaseReward = (MSsupply −A) ≫18、 ここで、A は以前に生成されたコインの量です。 6.2 調整可能なパラメータ 6.2.1 難易度 CryptoNote には、ブロックごとの難易度を変更するターゲティング アルゴリズムが含まれています。これ ネットワークのhashレートが急激に増加または縮小している場合、システムの反応時間を短縮します。 一定のブロックレートを維持します。オリジナルの Bitcoin メソッドは、実際の 最後の 2016 ブロック間の目標タイムスパンを設定し、それを現在のブロックの乗数として使用します。 難しさ。明らかに、これは (慣性が大きいため) 迅速な再計算には適していません。 発振の原因となります。 私たちのアルゴリズムの背後にある一般的な考え方は、ノードによって完了したすべての作業を合計し、 それを費やした時間で割ります。仕事の尺度は、対応する難易度の値です 各ブロックにあります。しかし、タイムスタンプが不正確で信頼できないため、正確なタイムスタンプを判断することはできません。 ブロック間の時間間隔。ユーザーは自分のタイムスタンプを将来および次回にシフトできます。 間隔はありえないほど小さいか、マイナスになる可能性さえあります。おそらく事件も少なくなるでしょう このようなものなので、タイムスタンプを並べ替えて外れ値 (つまり 20%) を切り捨てるだけです。の範囲 残りの値は、対応するブロックの 80% に費やされた時間です。 6.2.2 サイズ制限 ユーザーは blockchain を保存するために料金を支払い、そのサイズについて投票する権利を有するものとします。 すべての鉱夫 コストと手数料による利益のバランスを考慮し、独自の設定を行います。 ブロックを作成するための「ソフトリミット」。最大ブロック サイズに関するコア ルールも必要です。 blockchain が偽のトランザクションで溢れかえるのを防ぎますが、この値は ハードコーディングしないでください。 MN を最後の N 個のブロック サイズの中央値とする。次に、サイズの「ハードリミット」 受け入れられるブロックの数は \(2 \cdot M_N\) です。 blockchain の肥大化を回避しますが、それでも制限は許容されます。 必要に応じて、時間の経過とともにゆっくりと成長します。 トランザクション サイズを明示的に制限する必要はありません。これはブロックのサイズによって制限されます。 そして、誰かが何百もの入出力(または リング署名のあいまいさの度合いが高い)、十分な料金を支払うことでそれを行うことができます。 6.2.3 サイズ超過ペナルティ マイナーは、自分自身のゼロ手数料トランザクションを最大限までブロックに詰め込むことができます。 サイズ2・MB。大多数のマイナーのみが中央値を移動できるとしても、依然として 13 6 さらなる利点 6.1 スムーズな発光 CryptoNote デジタル コインの総量の上限は次のとおりです: MSupply = 264 −1 原子単位。これは、直感ではなく、実装の制限のみに基づいた自然な制限です。 「N コインは誰にとっても十分なはずです」など。 放出プロセスのスムーズさを確保するために、ブロックに次の式を使用します。 報酬: BaseReward = (MSsupply −A) ≫18、 ここで、A は以前に生成されたコインの量です。 6.2 調整可能なパラメータ 6.2.1 難易度 CryptoNote には、ブロックごとの難易度を変更するターゲティング アルゴリズムが含まれています。これ ネットワークのhashレートが急激に増加または縮小している場合、システムの反応時間を短縮します。 一定のブロックレートを維持します。オリジナルの Bitcoin メソッドは、実際の 最後の 2016 ブロック間の目標タイムスパンを設定し、それを現在のブロックの乗数として使用します。 難しさ。明らかに、これは (慣性が大きいため) 迅速な再計算には適していません。 発振の原因となります。 私たちのアルゴリズムの背後にある一般的な考え方は、ノードによって完了したすべての作業を合計し、 それを費やした時間で割ります。仕事の尺度は、対応する難易度の値です 各ブロックにあります。しかし、タイムスタンプが不正確で信頼できないため、正確なタイムスタンプを判断することはできません。 ブロック間の時間間隔。ユーザーは自分のタイムスタンプを将来および次回にシフトできます。 間隔はありえないほど小さいか、マイナスになる可能性さえあります。おそらく事件も少なくなるでしょう このようなものなので、タイムスタンプを並べ替えて外れ値 (つまり 20%) を切り捨てるだけです。の範囲 残りの値は、対応するブロックの 80% に費やされた時間です。 6.2.2 サイズ制限 ユーザーは blockchain を保存するために料金を支払い、そのサイズについて投票する権利を有するものとします。 すべての鉱夫 バランシング間のトレードオフを扱います。費用と手数料からの利益を自分で設定し、 ブロックを作成するための「ソフトリミット」。最大ブロック サイズに関するコア ルールも必要です。 blockchain が偽のトランザクションで溢れかえるのを防ぎますが、この値は ハードコーディングしないでください。 MN を最後の N 個のブロック サイズの中央値とする。次に、サイズの「ハードリミット」 受け入れられるブロックの数は \(2 \cdot M_N\) です。 blockchain の肥大化を回避しますが、それでも制限は許容されます。 必要に応じて、時間の経過とともにゆっくりと成長します。 トランザクション サイズを明示的に制限する必要はありません。これはブロックのサイズによって制限されます。 そして、誰かが何百もの入出力(または リング署名のあいまいさの度合いが高い)、十分な料金を支払うことでそれを行うことができます。 6.2.3 サイズ超過ペナルティ マイナーは、自分自身のゼロ手数料トランザクションを最大限までブロックに詰め込むことができます。 サイズ2・MB。大多数のマイナーのみが中央値を移動できるとしても、依然として 13 25 時間の 1 単位が N ブロックになるように時間を再スケーリングしても、理論的には、平均ブロック サイズは 2 ^ t に比例して指数関数的に増加する可能性があります。一方、より一般的なキャップ 次のブロックでは、関数 f に対して M_nf(M_n) になります。 f の性質は次のとおりです ブロックサイズの「適度な増加」を保証するために選択するのでしょうか?の進行状況 ブロック サイズ (再スケーリング時間後) は次のようになります。 M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... そして、ここでの目標は、このシーケンスが、たとえば次のような速度で増加しないように f を選択することです。 あるいは Log(t) としても使用できます。もちろん、ある定数 a に対して f(M_n) = a の場合、このシーケンスは次のようになります。 実は M_n aM_n a^2M_n a^3M_n ... そしてもちろん、これを最大線形成長に制限できる唯一の方法は、a=1 を選択することです。 もちろん、これは実現不可能です。それはまったく成長を許しません。 一方、f(M_n) が非定数関数の場合、状況はさらに複雑になります。 複雑であり、洗練された解決策が可能になる可能性があります。これについてはしばらく考えてみます。 この料金は、次のセクションで超過サイズのペナルティを割り引くのに十分な大きさにする必要があります。 なんで一般ユーザーが男性だと思われてるの?え?

blockchain が肥大化し、ノードに追加の負荷が発生する可能性があります。落胆させるため 悪意のある参加者が大きなブロックを作成できないように、ペナルティ関数を導入します。 新しい報酬 = 基本報酬 \(\cdot\) ブロックサイズ ミネソタ州 −1 2 このルールは、BlkSize が最小空きブロック サイズより大きい場合にのみ適用されます。 最大(10kb、\(M_N \cdot 110\%\))に近いこと。マイナーは「通常のサイズ」のブロックを作成することが許可されており、 全体の手数料が違約金を上回った場合、利益を伴ってそれを超えます。しかし手数料は上がらない可能性が高い ペナルティ値とは二次的に異なるため、均衡が生じます。 6.3 トランザクションスクリプト CryptoNote には、非常に最小限のスクリプト サブシステムがあります。送信者は式 Φ = を指定します。 f (x1, x2, ..., xn)、n は宛先公開鍵の数 {Pi}n i=1。バイナリは 5 つだけ min、max、sum、mul、cmp の演算子がサポートされています。受取人がこの支払いを使用すると、 \(0 \leq k \leq n\) の署名を生成し、それらをトランザクション入力に渡します。検証プロセス 公開鍵 Pi の有効な署名をチェックするために xi = 1 で Φ を評価するだけであり、xi = 0 です。 検証者はΦ > 0 の場合に証明を受け入れます。 その単純さにもかかわらず、このアプローチは考えられるすべてのケースをカバーします。 • マルチ/しきい値署名。 Bitcoin スタイルの「M-out-of-N」マルチ署名の場合 (つまり、 受信者は少なくとも \(0 \leq M \leq N\) の有効な署名を提供する必要があります (Φ = x1+x2+)。 。 .+xN \(\geq M\) (明確にするために、一般的な代数表記を使用しています)。重み付けされたしきい値署名 (一部のキーは他のキーよりも重要になる可能性があります) は、Φ = \(w_1 \cdot x_1\) + として表すことができます。 w2・x2+. 。 。 + \(w_N \cdot x_N\) ≧ wM。マスターキーが Φ = に対応するシナリオ max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\)。あらゆる洗練されたケースが可能であることを示すのは簡単です。 これらの演算子で表現されます。つまり、基底を形成します。 • パスワード保護。秘密のパスワードを所有していることは、次のことを知っていることと同等です。 パスワードから決定論的に導出される秘密キー: k = KDF(s)。したがって、受信機は、 キー k で別の署名を提供することで、パスワードを知っていることを証明できます。 送信者は、対応する公開キーを自分の出力に追加するだけです。これに注意してください この方法は、Bitcoin [13] で使用される「トランザクション パズル」よりもはるかに安全です。 パスワードは入力で明示的に渡されます。 • 劣化したケース。 Φ = 1 は誰でもお金を使うことができることを意味します。 Φ = 0 は、 永久に消費できないものとして出力されます。 公開鍵と組み合わせた出力スクリプトが送信者にとって大きすぎる場合、送信者は 受信者がこのデータを入力に入れることを示す特別な出力タイプを使用できます。 一方、送信者はその hash だけを提供します。このアプローチは、Bitcoin の「hash に支払う」と似ています。 機能ですが、新しいスクリプト コマンドを追加する代わりに、データ構造でこのケースを処理します。 レベル。 7 結論 私たちは Bitcoin の主な欠陥を調査し、考えられる解決策をいくつか提案しました。これらの有利な機能と継続的な開発により、新しい電子マネー システム CryptoNote が誕生します。 Bitcoin の深刻なライバルであり、そのすべてのフォークを上回っています。 14 blockchain が肥大化し、ノードに追加の負荷が発生する可能性があります。落胆させるため 悪意のある参加者が大きなブロックを作成できないように、ペナルティ関数を導入します。 新しい報酬 = 基本報酬 \(\cdot\) ブロックサイズ ミネソタ州 −1 2 このルールは、BlkSize が最小空きブロック サイズより大きい場合にのみ適用されます。 最大(10kb、\(M_N \cdot 110\%\))に近いこと。マイナーは「通常のサイズ」のブロックを作成することが許可されており、 全体の手数料が違約金を上回った場合、利益を伴ってそれを超えます。しかし手数料は上がらない可能性が高い ペナルティ値とは二次的に異なるため、均衡が生じます。 6.3 トランザクションスクリプト CryptoNote には、非常に最小限のスクリプト サブシステムがあります。送信者は式 Φ = を指定します。 f (x1, x2, ..., xn)、n は宛先公開鍵の数 {Pi}n i=1。バイナリは 5 つだけ min、max、sum、mul、cmp の演算子がサポートされています。受取人がこの支払いを使用すると、 \(0 \leq k \leq n\) の署名を生成し、それらをトランザクション入力に渡します。検証プロセス 公開鍵 Pi の有効な署名をチェックするために xi = 1 で Φ を評価するだけであり、xi = 0 です。 検証者はΦ > 0 の場合に証明を受け入れます。 その単純さにもかかわらず、このアプローチは考えられるすべてのケースをカバーします。 • マルチ/しきい値署名。 Bitcoin スタイルの「M-out-of-N」マルチ署名の場合 (つまり、 受信者は少なくとも \(0 \leq M \leq N\) の有効な署名を提供する必要があります (Φ = x1+x2+)。 。 .+xN \(\geq M\) (明確にするために、一般的な代数表記を使用しています)。重み付けされたしきい値署名 (一部のキーは他のキーよりも重要になる可能性があります) は、Φ = \(w_1 \cdot x_1\) + として表すことができます。 w2・x2+. 。 。 + \(w_N \cdot x_N\) ≧ wM。そしてシナリオio ここで、マスターキーは Φ = に対応します。 max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\)。あらゆる洗練されたケースが可能であることを示すのは簡単です。 これらの演算子で表現されます。つまり、基底を形成します。 • パスワード保護。秘密のパスワードを所有していることは、次のことを知っていることと同等です。 パスワードから決定論的に導出される秘密キー: k = KDF(s)。したがって、受信機は、 キー k で別の署名を提供することで、パスワードを知っていることを証明できます。 送信者は、対応する公開キーを自分の出力に追加するだけです。これに注意してください この方法は、Bitcoin [13] で使用される「トランザクション パズル」よりもはるかに安全です。 パスワードは入力で明示的に渡されます。 • 劣化したケース。 Φ = 1 は誰でもお金を使うことができることを意味します。 Φ = 0 は、 永久に消費できないものとして出力されます。 公開鍵と組み合わせた出力スクリプトが送信者にとって大きすぎる場合、送信者は 受信者がこのデータを入力に入れることを示す特別な出力タイプを使用できます。 一方、送信者はその hash だけを提供します。このアプローチは、Bitcoin の「hash に支払う」と似ています。 機能ですが、新しいスクリプト コマンドを追加する代わりに、データ構造でこのケースを処理します。 レベル。 7 結論 私たちは Bitcoin の主な欠陥を調査し、考えられる解決策をいくつか提案しました。これらの有利な機能と継続的な開発により、新しい電子マネー システム CryptoNote が誕生します。 Bitcoin の深刻なライバルであり、そのすべてのフォークを上回っています。 14 26 時間の経過とともにブロックサイズを制限する方法を見つけ出すことができれば、これは不要になるかもしれません... これも正解とは言えません。 「NewReward」を上向きの放物線に設定するだけです。 ブロック サイズは独立変数です。したがって、新しい報酬は無限に膨れ上がります。一方、もし、 新しい報酬は Max(0,Base Reward(1-(BlkSize/Mn - 1)^2)) で、新しい報酬は は、ブロックサイズ = Mn にピークがあり、次のように切片がある下向きの放物線になります。 ブロックサイズ = 0 およびブロックサイズ = 2Mn。そしてそれが彼らが表現しようとしているもののようです。 ただし、これはそうではありません

Nicht nachvollziehbare Transaktionen

In diesem Abschnitt schlagen wir ein Schema vollständig anonymer Transaktionen vor, das beide Anforderungen an die Rückverfolgbarkeit erfüllt und Unverknüpfbarkeitsbedingungen. Ein wichtiges Merkmal unserer Lösung ist ihre Autonomie: der Absender ist nicht verpflichtet, mit anderen Benutzern oder einem vertrauenswürdigen Dritten zusammenzuarbeiten, um seine Transaktionen durchzuführen; somit erzeugt jeder Teilnehmer selbstständig einen Deckungsverkehr. 4.1 Literaturübersicht Unser Schema basiert auf dem kryptografischen Grundelement, das als Gruppensignatur bezeichnet wird. Erstmals präsentiert von D. Chaum und E. van Heyst [19] ermöglicht es einem Benutzer, seine Nachricht im Namen der Gruppe zu signieren. Nach dem Signieren der Nachricht stellt der Benutzer (zu Verifizierungszwecken) nicht seine eigene Einzelöffentlichkeit zur Verfügung 1Dies ist das sogenannte „Soft Limit“ – die Referenz-Client-Einschränkung für die Erstellung neuer Blöcke. Hartes Maximum von Die mögliche Blockgröße betrug 1 MB 4 wenn nötig, verursacht das die Hauptnachteile. Leider ist es schwer vorherzusagen, wann Konstanten müssen möglicherweise geändert werden, und ihre Ersetzung kann schreckliche Folgen haben. Ein gutes Beispiel für eine hartcodierte Grenzwertänderung, die katastrophale Folgen hat, ist der Block Größenbeschränkung auf 250 KB1 festgelegt. Dieses Limit reichte aus, um etwa 10.000 Standardtransaktionen aufzunehmen. In Anfang 2013 war diese Grenze fast erreicht und man einigte sich auf eine Erhöhung Grenze. Die Änderung wurde in Wallet-Version 0.8 implementiert und endete mit einer 24-Block-Chain-Aufteilung und ein erfolgreicher Double-Spend-Angriff [9]. Der Fehler lag zwar nicht im Protokoll Bitcoin, aber Vielmehr hätte es in der Datenbank-Engine leicht durch einen einfachen Stresstest erkannt werden können, wenn dies der Fall gewesen wäre keine künstlich eingeführte Blockgrößenbeschränkung. Konstanten fungieren auch als eine Art Zentralisierungspunkt. Trotz des Peer-to-Peer-Charakters von Bitcoin, eine überwältigende Mehrheit der Knoten verwendet den offiziellen Referenzclient [10], der von entwickelt wurde eine kleine Gruppe von Menschen. Diese Gruppe trifft die Entscheidung, Änderungen am Protokoll umzusetzen und die meisten Menschen akzeptieren diese Änderungen unabhängig von ihrer „Richtigkeit“. Einige Entscheidungen verursachten hitzige Diskussionen und sogar Boykottaufrufe [11], was darauf hindeutet, dass die Community und die Entwickler können in einigen wichtigen Punkten anderer Meinung sein. Daher erscheint es logisch, ein Protokoll zu haben mit vom Benutzer konfigurierbaren und selbstanpassenden Variablen als mögliche Möglichkeit, diese Probleme zu vermeiden. 2.5 Umfangreiche Skripte Das Skriptsystem in Bitcoin ist eine umfangreiche und komplexe Funktion. Es ermöglicht einem möglicherweise, etwas zu erschaffen ausgefeilte Transaktionen [12], aber einige seiner Funktionen sind aus Sicherheitsgründen deaktiviert und einige wurden noch nie verwendet [13]. Das Skript (einschließlich der Teile des Senders und des Empfängers) für die beliebteste Transaktion in Bitcoin sieht das so aus: OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. Das Skript ist 164 Bytes lang, wobei sein einziger Zweck darin besteht, zu überprüfen, ob der Empfänger über das Skript verfügt geheimer Schlüssel, der zur Überprüfung seiner Signatur erforderlich ist. 3 Die CryptoNote-Technologie Nachdem wir uns nun mit den Einschränkungen der Bitcoin-Technologie befasst haben, konzentrieren wir uns darauf Vorstellung der Funktionen von CryptoNote. 4 Nicht nachvollziehbare Transaktionen In diesem Abschnitt schlagen wir ein Schema vollständig anonymer Transaktionen vor, das beide Anforderungen an die Rückverfolgbarkeit erfüllt und Unverknüpfbarkeitsbedingungen. Ein wichtiges Merkmal unserer Lösung ist ihre Autonomie: der Absender ist nicht verpflichtet, mit anderen Benutzern oder einem vertrauenswürdigen Dritten zusammenzuarbeiten, um seine Transaktionen durchzuführen; somit erzeugt jeder Teilnehmer selbstständig einen Deckungsverkehr. 4.1 Literaturübersicht Unser Schema basiert auf dem kryptografischen Grundelement, das als Gruppensignatur bezeichnet wird. Erstmals präsentiert von D. Chaum und E. van Heyst [19] ermöglicht es einem Benutzer, seine Nachricht im Namen der Gruppe zu signieren. Nach dem Signieren der Nachricht stellt der Benutzer (zu Verifizierungszwecken) nicht seine eigene Einzelöffentlichkeit zur Verfügung 1Dies ist das sogenannte „Soft Limit“ – die Referenz-Client-Einschränkung für die Erstellung neuer Blöcke. Hartes Maximum von Die mögliche Blockgröße betrug 1 MB 4 7 Rückblickend scheint es ein großer Fehler gewesen zu sein, die Blockgröße im Code als feste Grenze festzulegen. Visa und Mastercard können Tausende, wenn nicht Hunderttausende Transaktionen verarbeiten pro Sekunde. Allerdings erfolgen Transaktionen in einem stochastischen Prozess, manchmal in großen Schüben. manchmal stundenlang still sein. Denken Sie an das Volumen des Bitcoin-Umtauschs. Scheint eine großartige Idee zu sein, ein System zu entwerfen, das die Blockgröße bei Bedarf dynamisch erhöht um den erhöhten Transaktionsverkehr zu bewältigen und ihn bei Bedarf dynamisch zu verringern Erhöhen Sie die Bandbreiteneffizienz. Wenden Sie diesen Gedanken nun auf alle Systemparameter an. Und solange wir darauf achten, das zu behalten System davor, außer Kontrolle zu geraten, dieses SchiffWürde großartig funktionieren. https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki Wie bereits erwähnt, müssen für die Selbstanpassung von Variablen einige Kontrollen vorgenommen werden verhindern, dass das System völlig außer Kontrolle gerät. Wir werden darauf zurückkommen. Wenn dies ein Wikipedia-Artikel wäre, würde er mit „STUB“ gekennzeichnet sein. Obwohl wir uns sicherlich in der befinden Im Abschnitt „Probleme von Bitcoin“ würde ich hier gerne etwas näher darauf eingehen. Warum ist 164 Bytes sind für eine einfache Aufgabe „Auf geheimen Schlüssel prüfen“ inakzeptabel? Für wie wenig können sie denn bekommen eine vernünftige Skriptsprache? Allerdings bin ich kein Informatiker. http://download.springer.com/static/pdf/412/chp%253A10.1007%252F3-540-46416-6_22.pdf?auth66=140 Für Gruppensignaturen ist, wie beschrieben, ein Gruppenmanager erforderlich. Der Gruppenleiter ist kompetent die Anonymität eines Unterzeichners zu widerrufen. Daher gibt es eine eingebaute Zentralisierung in einer Gruppe Signaturschema.

Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes Schema ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als Basis-Signaturalgorithmus haben wir uns für das schnelle Schema EdDSA entschieden, das entwickelt und entwickelt wurde umgesetzt von D.J. Bernstein et al. [18]. Wie der ECDSA von Bitcoin basiert er auf der elliptischen Kurve Da es sich hierbei um ein diskretes Logarithmusproblem handelt, könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes System ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als unseren Basissignaturalgorithmus wählen wire, um das schnelle Schema EdDSA zu verwenden, das entwickelt wurde und umgesetzt von D.J. Bernstein et al. [18]. Wie der ECDSA von Bitcoin basiert er auf der elliptischen Kurve Problem des diskreten Logarithmus, daher könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 8 Eine Ringsignatur funktioniert so: Alex möchte eine Nachricht über ihren Arbeitgeber an WikiLeaks weitergeben. Jeder Mitarbeiter in seinem Unternehmen verfügt über ein privates/öffentliches Schlüsselpaar (Ri, Ui). Sie komponiert ihre Signatur mit Eingaben wie ihre Nachricht, m, ihr privater Schlüssel, Ri und EVERYBODY’s öffentliche Schlüssel, (Ui;i=1...n). Jeder (ohne private Schlüssel zu kennen) kann dies leicht überprüfen irgendein Paar (Rj, Uj) muss zum Erstellen der Signatur verwendet worden sein ... jemand, der funktioniert für Alex‘ Arbeitgeber ... aber es ist im Wesentlichen eine zufällige Vermutung, um herauszufinden, welcher es sein könnte. http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 Beachten Sie, dass eine hier beschriebene verknüpfbare Ringsignatur sozusagen das Gegenteil von „nicht verknüpfbar“ ist. oben beschrieben. Hier fangen wir zwei Nachrichten ab und können feststellen, ob sie identisch sind Die Partei hat sie geschickt, obwohl wir immer noch nicht in der Lage sein sollten, festzustellen, wer diese Partei ist. Die Die zur Erstellung von Cryptonote verwendete Definition von „nicht verknüpfbar“ bedeutet, dass wir nicht feststellen können, ob dieselbe Partei empfängt sie. Was wir hier also wirklich haben, sind VIER Dinge, die vor sich gehen. Ein System kann verknüpfbar sein oder nicht verlinkbar, je nachdem, ob festgestellt werden kann, ob der Absender von zwei Nachrichten sind gleich (unabhängig davon, ob dies einen Widerruf der Anonymität erfordert). Und Ein System kann nicht verknüpfbar oder nicht verknüpfbar sein, je nachdem, ob dies möglich ist oder nicht Bestimmen Sie, ob die Empfänger zweier Nachrichten identisch sind (unabhängig davon, ob oder nicht). dies erfordert den Widerruf der Anonymität). Bitte machen Sie mir nicht die Schuld für diese schreckliche Terminologie. Graphentheoretiker sollten es wahrscheinlich sein erfreut. Einige von Ihnen sind möglicherweise mit „Empfänger verknüpfbar“ im Vergleich zu „Sender verknüpfbar“ zufriedener. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Als ich das las, kam mir das wie eine alberne Funktion vor. Dann habe ich gelesen, dass es eine Funktion für sein könnte elektronische Abstimmung, und das schien Sinn zu machen. Irgendwie cool, aus dieser Perspektive. Aber ich bin Ich bin mir nicht ganz sicher, ob ich absichtlich nachverfolgbare Ringsignaturen implementieren soll. http://search.ieice.org/bin/summary.php?id=e95-a_1_151

Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes System ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als Basis-Signaturalgorithmus haben wir uns für das schnelle Schema EdDSA entschieden, das entwickelt und entwickelt wurde umgesetzt von D.J. Bernstein et al. [18]. Wie der ECDSA von Bitcoin basiert er auf der elliptischen Kurve Problem des diskreten Logarithmus, daher könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes System ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als unseren Basissignaturalgorithmus wählen wire, um das schnelle Schema EdDSA zu verwenden, das entwickelt wurde und umgesetzt von D.J. Bernstein et al. [18]. Wie ECDSA von Bitcoin basiert es auf der elliptischen Kurve Da es sich hierbei um ein diskretes Logarithmusproblem handelt, könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 9 Meine Güte, der Autor dieses Whitepapers hätte das sicher besser formulieren können! Nehmen wir an, dass ein Das von Mitarbeitern geführte Unternehmen möchte darüber abstimmen, ob bestimmte neue Unternehmen erworben werden sollen oder nicht Vermögenswerte, und Alex und Brenda sind beide Angestellte. Das Unternehmen stellt jedem Mitarbeiter a Nachricht wie „Ich stimme für Vorschlag A mit Ja!“ welches die Metainformation „issue“ hat [PROP A] und bittet sie, es mit einer nachvollziehbaren Ringsignatur zu unterzeichnen, wenn sie den Vorschlag unterstützen. Mithilfe einer herkömmlichen Ringsignatur kann ein unehrlicher Mitarbeiter die Nachricht mehrmals unterschreiben. vermutlich mit verschiedenen nonces, um so oft abzustimmen, wie sie möchten. Auf der anderen Seite Andererseits wird Alex in einem nachverfolgbaren Ringsignaturschema abstimmen und ihren privaten Schlüssel haben zu dem Thema verwendet wurde [PROP A]. Wenn Alex versucht, eine Nachricht wie „Ich, Brenda, stimme zu Vorschlag A!" Um Brenda zu „verleumden“ und doppelt abzustimmen, wird diese neue Nachricht auch das Problem haben [Stütze A]. Da Alex‘ privater Schlüssel das [PROP A]-Problem bereits gelöst hat, ist Alex‘ Identität nicht mehr bekannt wird sofort als Betrug entlarvt. Was, ehrlich gesagt, ziemlich cool ist! Die Kryptographie erzwang die Wahlgleichheit. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Dieses Papier ist interessant und erstellt im Wesentlichen eine Ad-hoc-Ringsignatur, jedoch ohne jegliches Zustimmung des anderen Teilnehmers. Der Aufbau der Signatur kann unterschiedlich sein; Ich habe nicht gegraben tief, und ich habe nicht gesehen, ob es sicher ist. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai Ad-hoc-Gruppensignaturen sind: Ringsignaturen, bei denen es sich um Gruppensignaturen ohne Gruppe handelt Manager, keine Zentralisierung, aber ein Mitglied einer Ad-hoc-Gruppe kann dies nachweislich behaupten es hat die anonyme Unterschrift (nicht) im Namen der Gruppe ausgestellt. http://link.springer.com/chapter/10.1007/11908739_9 Das ist nach meinem Verständnis nicht ganz richtig. Und mein Verständnis wird sich wahrscheinlich ändern Ich vertiefe mich in dieses Projekt. Aber nach meinem Verständnis sieht die Hierarchie so aus. Gruppensignaturen: Gruppenmanager kontrollieren die Rückverfolgbarkeit und die Möglichkeit, Mitglieder hinzuzufügen oder zu entfernen davon, Unterzeichner zu sein. Ringzeichen: Willkürliche Gruppenbildung ohne Gruppenleiter. Kein Widerruf der Anonymität. Es gibt keine Möglichkeit, sich von einer bestimmten Signatur zu distanzieren. Mit rückverfolgbarem und verbindbarem Ring Signaturen ist die Anonymität einigermaßen skalierbar. Ad-hoc-Gruppensignaturen: wie Ringsignaturen, aber Mitglieder können nachweisen, dass sie sie nicht erstellt haben eine bestimmte Signatur. Dies ist wichtig, wenn jeder in einer Gruppe eine Unterschrift leisten kann. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Der Algorithmus von Fujisaki und Suzuki wird später vom Autor optimiert, um Einmaligkeit zu gewährleisten. Also Wir werden vielmehr den Algorithmus von Fujisaki und Suzuki gleichzeitig mit dem neuen Algorithmus analysieren als es hier durchzugehen.

Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes Schema ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als Basis-Signaturalgorithmus haben wir uns für das schnelle Schema EdDSA entschieden, das entwickelt und entwickelt wurde umgesetzt von D.J. Bernstein et al. [18]. Wie ECDSA von Bitcoin basiert es auf der elliptischen Kurve Da es sich hierbei um ein diskretes Logarithmusproblem handelt, könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 Schlüssel, sondern die Schlüssel aller Benutzer seiner Gruppe. Ein Prüfer ist überzeugt, dass der wahre Unterzeichner ein ist Mitglied der Gruppe, kann den Unterzeichner jedoch nicht ausschließlich identifizieren. Das ursprüngliche Protokoll erforderte einen vertrauenswürdigen Dritten (den sogenannten Group Manager), und das war er auch der Einzige, der den Unterzeichner ausfindig machen konnte. Die nächste Version namens Ringsignatur wurde eingeführt von Rivest et al. in [34], war ein autonomes Schema ohne Gruppenmanager und Anonymität Widerruf. Später erschienen verschiedene Modifikationen dieses Schemas: verknüpfbare Ringsignatur [26, 27, 17] erlaubte nachvollziehbar festzustellen, ob zwei Unterschriften von demselben Gruppenmitglied stammten Die Ringsignatur [24, 23] schränkte die übermäßige Anonymität ein, indem sie die Möglichkeit bot, den Unterzeichner zu ermitteln zwei Nachrichten in Bezug auf dieselbe Metainformation (oder „Tag“ im Sinne von [24]). Eine ähnliche kryptografische Konstruktion wird auch als Ad-hoc-Gruppensignatur bezeichnet [16, 38]. Es betont die willkürliche Gruppenbildung, während Gruppen-/Ringsignaturschemata eher a implizieren fester Satz von Mitgliedern. Unsere Lösung basiert größtenteils auf der Arbeit „Traceable ring signatur“ von E. Fujisaki und K. Suzuki [24]. Um den ursprünglichen Algorithmus und unsere Modifikation zu unterscheiden, werden wir Folgendes tun Letzteres wird als einmalige Ringsignatur bezeichnet und betont die Fähigkeit des Benutzers, nur eine gültige Signatur zu erstellen Signatur unter seinem privaten Schlüssel. Wir haben die Rückverfolgbarkeitseigenschaft abgeschwächt und die Verknüpfbarkeit beibehalten Nur um die Einmaligkeit zu gewährleisten: Der öffentliche Schlüssel kann in vielen ausländischen Verifizierungssätzen erscheinen und die Der private Schlüssel kann zum Generieren einer eindeutigen anonymen Signatur verwendet werden. Im Falle einer doppelten Ausgabe Beim ersten Versuch werden diese beiden Signaturen miteinander verknüpft, eine Offenlegung des Unterzeichners ist jedoch nicht erforderlich für unsere Zwecke. 4.2 Definitionen 4.2.1 Parameter der elliptischen Kurve Als unseren Basissignaturalgorithmus wählen wire, um das schnelle Schema EdDSA zu verwenden, das entwickelt wurde und umgesetzt von D.J. Bernstein et al. [18]. Wie ECDSA von Bitcoin basiert es auf der elliptischen Kurve Da es sich hierbei um ein diskretes Logarithmusproblem handelt, könnte unser Schema in Zukunft auch auf Bitcoin angewendet werden. Gemeinsame Parameter sind: q: eine Primzahl; q = 2255 −19; d: ein Element von Fq; d = −121665/121666; E: eine elliptische Kurvengleichung; −x2 + y2 = 1 + dx2y2; G: ein Basispunkt; G = (x, −4/5); l: eine Primzahlordnung des Basispunkts; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): eine kryptografische hash-Funktion \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): eine deterministische hash Funktion \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Terminologie Für eine verbesserte Privatsphäre ist eine neue Terminologie erforderlich, die nicht mit Bitcoin-Entitäten verwechselt werden sollte. Der private ec-Schlüssel ist ein standardmäßiger privater Schlüssel mit elliptischer Kurve: eine Zahl \(a \in [1, l - 1]\); Der öffentliche ec-Schlüssel ist ein standardmäßiger öffentlicher Schlüssel mit elliptischer Kurve: ein Punkt A = aG; Ein einmaliges Schlüsselpaar ist ein Paar privater und öffentlicher EC-Schlüssel. 5 10 Verknüpfbarkeit im Sinne von „verknüpfbaren Ringsignaturen“ bedeutet, dass wir erkennen können, ob zwei ausgehende Transaktionen von derselben Quelle stammen, ohne preiszugeben, wer die Quelle ist. Die Autoren wurden geschwächt Verknüpfbarkeit, um (a) die Privatsphäre zu wahren, aber dennoch (b) jede Transaktion mithilfe eines privaten Schlüssels zu erkennen ein zweites Mal als ungültig erklärt. Okay, das ist also eine Frage der Reihenfolge der Ereignisse. Betrachten Sie das folgende Szenario. Mein Bergbau Wenn der Computer über den aktuellen blockchain verfügt, verfügt er über einen eigenen Transaktionsblock, den er aufruft legitim, es wird an diesem Block in einem proof-of-work-Puzzle gearbeitet, und es wird eine haben Liste der ausstehenden Transaktionen, die dem nächsten Block hinzugefügt werden sollen. Es werden auch keine neuen verschickt Transaktionen in diesen Pool ausstehender Transaktionen. Wenn ich den nächsten Block nicht löse, aber Wenn jemand anderes dies tut, erhalte ich eine aktualisierte Kopie von blockchain. Der Block, an dem ich gearbeitet habe und Meine Liste der ausstehenden Transaktionen enthält möglicherweise einige Transaktionen, die jetzt integriert sind in den blockchain. Lösen Sie meinen ausstehenden Block auf, kombinieren Sie ihn mit meiner Liste ausstehender Transaktionen und rufen Sie ihn auf mein Pool an ausstehenden Transaktionen. Entfernen Sie alle, die sich jetzt offiziell im blockchain befinden. Was soll ich nun tun? Sollte ich zunächst alle Doppelausgaben entfernen? Auf der anderen Seite Andererseits sollte ich die Liste durchsuchen und sicherstellen, dass jeder private Schlüssel noch nicht vorhanden ist verwendet wurde, und wenn es bereits in meiner Liste verwendet wurde, dann habe ich das erste Exemplar zuerst erhalten, und daher jede weitere Kopie ist unzulässig. Deshalb lösche ich einfach alle Instanzen nach der ersten des gleichen privaten Schlüssels. Algebraische Geometrie war noch nie meine Stärke. http://en.wikipedia.org/wiki/EdDSA So eine Geschwindigkeit, wirklich wow. DAS ist algebraische Geometrie für den Sieg. Nicht, dass ich etwas wüsste darüber. Ob problematisch oder nicht, diskrete Protokolle werden sehr schnell. Und Quantencomputer fressen sie zum Frühstück. http://link.springer.com/article/10.1007/s13389-012-0027-1 Dies wird zu einer wirklich wichtigen Zahl, aber es gibt keine Erklärung oder Quelle dafür, wie es dazu kommt wurde gewählt. Es wäre in Ordnung, einfach eine einzelne bekannte große Primzahl zu wählen, aber wenn es solche gibt, dann ist das kein Problem Fakten über diese große Primzahl, die unsere Wahl beeinflussen könnten. Verschiedene Varianten von Kryptonote könnte verschiedene Werte von wählen Nun ja, aber in diesem Artikel wird nicht darüber diskutiert, wie das funktioniert Die Auswahl wirkt sich auf unsere Auswahl anderer globaler Parameter aus, die auf Seite 5 aufgeführt sind. Dieses Dokument benötigt einen Abschnitt zur Auswahl von Parameterwerten.

Der private Benutzerschlüssel ist ein Paar (a, b) aus zwei verschiedenen privaten EC-Schlüsseln. Der Tracking-Schlüssel ist ein Paar (a, B) aus privatem und öffentlichem EC-Schlüssel (wobei B = bG und a ̸= b); Der öffentliche Benutzerschlüssel ist ein Paar (A, B) aus zwei öffentlichen EC-Schlüsseln, die von (a, b) abgeleitet sind. Die Standardadresse ist eine Darstellung eines öffentlichen Benutzerschlüssels, der in einer benutzerfreundlichen Zeichenfolge angegeben wird mit Fehlerkorrektur; Die verkürzte Adresse ist eine Darstellung der zweiten Hälfte (Punkt B) eines angegebenen öffentlichen Benutzerschlüssels in eine benutzerfreundliche Zeichenfolge mit Fehlerkorrektur umgewandelt. Die Transaktionsstruktur ähnelt der Struktur in Bitcoin: Jeder Benutzer kann wählen mehrere unabhängige Zahlungseingänge (Transaktionsausgänge), signieren Sie diese mit den entsprechenden private Schlüssel und senden sie an verschiedene Ziele. Im Gegensatz zum Modell von Bitcoin, bei dem ein Benutzer über einen eindeutigen privaten und öffentlichen Schlüssel verfügt Bei dem vorgeschlagenen Modell generiert ein Absender einen einmaligen öffentlichen Schlüssel basierend auf der Adresse des Empfängers und einige zufällige Daten. In diesem Sinne wird eine eingehende Transaktion für denselben Empfänger an a gesendet Einmaliger öffentlicher Schlüssel (nicht direkt an eine eindeutige Adresse) und nur der Empfänger kann ihn wiederherstellen entsprechenden privaten Teil, um sein Geld einzulösen (unter Verwendung seines einzigartigen privaten Schlüssels). Der Empfänger kann Verwenden Sie eine Ringsignatur, um die Gelder auszugeben, wobei sein Eigentum und seine tatsächlichen Ausgaben anonym bleiben. Die Einzelheiten des Protokolls werden in den nächsten Unterabschnitten erläutert. 4.3 Nicht verknüpfbare Zahlungen Klassische Bitcoin-Adressen werden nach der Veröffentlichung zu einer eindeutigen Kennung für eingehende E-Mails Zahlungen, deren Verknüpfung und Verknüpfung mit den Pseudonymen des Empfängers. Wenn jemand möchte Wenn er eine „ungebundene“ Transaktion erhält, sollte er dem Absender seine Adresse über einen privaten Kanal mitteilen. Wenn er verschiedene Transaktionen erhalten möchte, bei denen nicht nachgewiesen werden kann, dass sie demselben Eigentümer gehören Er sollte alle verschiedenen Adressen generieren und sie niemals unter seinem eigenen Pseudonym veröffentlichen. Öffentlich Privat Alice Carol Bobs Adresse 1 Bobs Adresse 2 Bobs Schlüssel 1 Bobs Schlüssel 2 Bob Abb. 2. Traditionelles Bitcoin-Schlüssel-/Transaktionsmodell. Wir schlagen eine Lösung vor, die es einem Benutzer ermöglicht, eine einzelne Adresse zu veröffentlichen und bedingungslos zu empfangen nicht verknüpfbare Zahlungen. Das Ziel jeder CryptoNote-Ausgabe ist (standardmäßig) ein öffentlicher Schlüssel. abgeleitet aus Empfängeradresse und Zufallsdaten des Absenders. Der Hauptvorteil gegenüber Bitcoin ist, dass jeder Zielschlüssel standardmäßig eindeutig ist (es sei denn, der Absender verwendet für jeden die gleichen Daten). seiner Transaktionen an denselben Empfänger). Daher gibt es kein Problem wie die „Wiederverwendung von Adressen“. Design und kein Beobachter kann feststellen, ob Transaktionen an eine bestimmte Adresse oder einen bestimmten Link gesendet wurden zwei Adressen zusammen. 6 Der private Benutzerschlüssel ist ein Paar (a, b) aus zwei verschiedenen privaten EC-Schlüsseln. Der Tracking-Schlüssel ist ein Paar (a, B) aus privatem und öffentlichem EC-Schlüssel (wobei B = bG und a ̸= b); Der öffentliche Benutzerschlüssel ist ein Paar (A, B) aus zwei öffentlichen EC-Schlüsseln, die von (a, b) abgeleitet sind. Die Standardadresse ist eine Darstellung eines öffentlichen Benutzerschlüssels, der in einer benutzerfreundlichen Zeichenfolge angegeben wird mit Fehlerkorrektur; Die verkürzte Adresse ist eine Darstellung der zweiten Hälfte (Punkt B) eines angegebenen öffentlichen Benutzerschlüssels in eine benutzerfreundliche Zeichenfolge mit Fehlerkorrektur umgewandelt. Die Transaktionsstruktur ähnelt der Struktur in Bitcoin: Jeder Benutzer kann wählen mehrere unabhängige Zahlungseingänge (Transaktionsausgänge), signieren Sie diese mit den entsprechenden private Schlüssel und senden sie an verschiedene Ziele. Im Gegensatz zum Modell von Bitcoin, bei dem ein Benutzer über einen eindeutigen privaten und öffentlichen Schlüssel verfügt Bei dem vorgeschlagenen Modell generiert ein Absender einen einmaligen öffentlichen Schlüssel basierend auf der Adresse des Empfängers und einige zufällige Daten. In diesem Sinne wird eine eingehende Transaktion für denselben Empfänger an a gesendet Einmaliger öffentlicher Schlüssel (nicht direkt an eine eindeutige Adresse) und nur der Empfänger kann ihn wiederherstellen entsprechenden privaten Teil, um sein Geld einzulösen (unter Verwendung seines einzigartigen privaten Schlüssels). Der Empfänger kann Verwenden Sie eine Ringsignatur, um die Gelder auszugeben, wobei sein Eigentum und seine tatsächlichen Ausgaben anonym bleiben. Die Einzelheiten des Protokolls werden in den nächsten Unterabschnitten erläutert. 4.3 Nicht verknüpfbare Zahlungen Klassische Bitcoin-Adressen werden nach der Veröffentlichung zu einer eindeutigen Kennung für eingehende E-Mails Zahlungen, deren Verknüpfung und Verknüpfung mit den Pseudonymen des Empfängers. Wenn jemand möchte Wenn er eine „ungebundene“ Transaktion erhält, sollte er dem Absender seine Adresse über einen privaten Kanal mitteilen. Wenn er verschiedene Transaktionen erhalten möchte, bei denen nicht nachgewiesen werden kann, dass sie demselben Eigentümer gehören Er sollte alle verschiedenen Adressen generieren und sie niemals unter seinem eigenen Pseudonym veröffentlichen. Öffentlich Privat Alice Carol Bobs Adresse 1 Bobs Adresse 2 Bobs Schlüssel 1 Bobs Schlüssel 2 Bob Abb. 2. Traditionelle Bitcoin-Schlüssel/Transaktionen-Model. Wir schlagen eine Lösung vor, die es einem Benutzer ermöglicht, eine einzelne Adresse zu veröffentlichen und bedingungslos zu empfangen nicht verknüpfbare Zahlungen. Das Ziel jeder CryptoNote-Ausgabe ist (standardmäßig) ein öffentlicher Schlüssel. abgeleitet aus Empfängeradresse und Zufallsdaten des Absenders. Der Hauptvorteil gegenüber Bitcoin ist, dass jeder Zielschlüssel standardmäßig eindeutig ist (es sei denn, der Absender verwendet für jeden die gleichen Daten). seiner Transaktionen an denselben Empfänger). Daher gibt es kein Problem wie die „Wiederverwendung von Adressen“. Design und kein Beobachter kann feststellen, ob Transaktionen an eine bestimmte Adresse oder einen bestimmten Link gesendet wurden zwei Adressen zusammen. 6 11 Das ist also wie Bitcoin, aber mit unbegrenzten, anonymen Postfächern, die nur vom Empfänger eingelöst werden können Generieren eines privaten Schlüssels, der so anonym ist wie eine Ringsignatur. Bitcoin funktioniert auf diese Weise. Wenn Alex 0,112 Bitcoin in ihrer Brieftasche hat, die sie gerade von Frank erhalten hat, hat sie wirklich eine unterschriebene Karte Nachricht „Ich, [FRANK], sende 0,112 Bitcoin an [alex] + H0 + N0“, wobei 1) Frank das unterschrieben hat Nachricht mit seinem privaten Schlüssel [FRANK], 2) Frank hat die Nachricht mit Alex‘ öffentlichem Schlüssel signiert Schlüssel, [Alex], 3) Frank hat eine Form der Geschichte des Bitcoin, H0, eingefügt und 4) Frank enthält ein zufälliges Datenbit namens nonce, N0. Wenn Alex dann 0,011 Bitcoin an Charlene senden möchte, nimmt sie Franks Nachricht entgegen und sie wird das auf H1 setzen und zwei Nachrichten signieren: eine für ihre Transaktion und eine für die Änderung. H1= „Ich, [FRANK], sende 0,112 Bitcoin an [alex] + H0 + N“ „Ich, [ALEX], sende 0,011 Bitcoin an [charlene] + H1 + N1“ „Ich, [ALEX], sende 0,101 Bitcoin als Änderung an [alex] + H1 + N2.“ wo Alex beide Nachrichten mit ihrem privaten Schlüssel [ALEX] signiert, die erste Nachricht mit dem von Charlene öffentlicher Schlüssel [charlene], die zweite Nachricht mit Alex‘ öffentlichem Schlüssel [alex] und einschließlich der Historien und einige zufällig generierte nonces N1 und N2 entsprechend. Cryptonote funktioniert so: Wenn Alex 0,112 Cryptonote in ihrer Brieftasche hat, die sie gerade von Frank erhalten hat, hat sie wirklich eine unterschriebene Münze Nachricht „Ich, [jemand in einer Ad-hoc-Gruppe], sende 0,112 Cryptonote an [eine einmalige Adresse] + H0 + N0.“ Alex entdeckte, dass es sich dabei um ihr Geld handelte, indem sie ihren privaten Schlüssel [ALEX] überprüfte [eine einmalige Adresse] für jede vorbeigehende Nachricht, und wenn sie diese ausgeben möchte, tut sie dies in auf folgende Weise. Sie wählt einen Empfänger des Geldes aus, vielleicht hat Charlene damit begonnen, für Drohnenangriffe zu stimmen Alex möchte stattdessen Geld an Brenda schicken. Also sucht Alex nach Brendas öffentlichem Schlüssel, [brenda], und verwendet ihren eigenen privaten Schlüssel, [ALEX], um eine einmalige Adresse [ALEX+brenda] zu generieren. Sie Dann wählt sie eine beliebige Sammlung C aus dem Netzwerk der Cryptonote-Benutzer aus und erstellt sie eine Ringsignatur dieser Ad-hoc-Gruppe. Wir legen unseren Verlauf wie in der vorherigen Nachricht fest, fügen hinzu nonces und wie gewohnt fortfahren? H1 = „Ich, [jemand in einer Ad-hoc-Gruppe], sende 0,112 Cryptonote an [eine einmalige Adresse] + H0 + N0.“ „Ich, [jemand in der Sammlung C], sende 0,011 Cryptonote an [one-time-address-made-fromALEX+brenda] + H1 + N1“ „Ich, [jemand in der Sammlung C], sende 0,101 Cryptonote als Änderung an [one-time-address-madefrom-ALEX+alex] + H1 + N2“ Jetzt scannen Alex und Brenda beide alle eingehenden Nachrichten nach eventuell vorhandenen Einmaladressen mit ihrem Schlüssel erstellt. Wenn sie welche finden, dann ist diese Nachricht ganz neu für sie Kryptonote! Und selbst dann wird die Transaktion immer noch den blockchain erreichen. Wenn die Münzen diese Adresse eingeben Es ist bekannt, dass sie von Kriminellen, politischen Mitwirkenden oder von Komitees und Konten gesendet werden bei strengen Budgets (z. B. Unterschlagung) oder wenn der neue Besitzer dieser Münzen jemals einen Fehler macht und sendet diese Münzen an eine gemeinsame Adresse mit Münzen, von denen bekannt ist, dass sie sie besitzen, die Anonymitätsvorrichtung ist in Bitcoin gestiegen.

Der private Benutzerschlüssel ist ein Paar (a, b) aus zwei verschiedenen privaten EC-Schlüsseln. Der Tracking-Schlüssel ist ein Paar (a, B) aus privatem und öffentlichem EC-Schlüssel (wobei B = bG und a ̸= b); Der öffentliche Benutzerschlüssel ist ein Paar (A, B) aus zwei öffentlichen EC-Schlüsseln, die von (a, b) abgeleitet sind. Die Standardadresse ist eine Darstellung eines öffentlichen Benutzerschlüssels, der in einer benutzerfreundlichen Zeichenfolge angegeben wird mit Fehlerkorrektur; Die verkürzte Adresse ist eine Darstellung der zweiten Hälfte (Punkt B) eines angegebenen öffentlichen Benutzerschlüssels in eine benutzerfreundliche Zeichenfolge mit Fehlerkorrektur umgewandelt. Die Transaktionsstruktur ähnelt der Struktur in Bitcoin: Jeder Benutzer kann wählen mehrere unabhängige Zahlungseingänge (Transaktionsausgänge), signieren Sie diese mit den entsprechenden private Schlüssel und senden sie an verschiedene Ziele. Im Gegensatz zum Modell von Bitcoin, bei dem ein Benutzer über einen eindeutigen privaten und öffentlichen Schlüssel verfügt Bei dem vorgeschlagenen Modell generiert ein Absender einen einmaligen öffentlichen Schlüssel basierend auf der Adresse des Empfängers und einige zufällige Daten. In diesem Sinne wird eine eingehende Transaktion für denselben Empfänger an a gesendet Einmaliger öffentlicher Schlüssel (nicht direkt an eine eindeutige Adresse) und nur der Empfänger kann ihn wiederherstellen entsprechenden privaten Teil, um sein Geld einzulösen (unter Verwendung seines einzigartigen privaten Schlüssels). Der Empfänger kann Verwenden Sie eine Ringsignatur, um die Gelder auszugeben, wobei sein Eigentum und seine tatsächlichen Ausgaben anonym bleiben. Die Einzelheiten des Protokolls werden in den nächsten Unterabschnitten erläutert. 4.3 Nicht verknüpfbare Zahlungen Klassische Bitcoin-Adressen werden nach der Veröffentlichung zu einer eindeutigen Kennung für eingehende E-Mails Zahlungen, deren Verknüpfung und Verknüpfung mit den Pseudonymen des Empfängers. Wenn jemand möchte Wenn er eine „ungebundene“ Transaktion erhält, sollte er dem Absender seine Adresse über einen privaten Kanal mitteilen. Wenn er verschiedene Transaktionen erhalten möchte, bei denen nicht nachgewiesen werden kann, dass sie demselben Eigentümer gehören Er sollte alle verschiedenen Adressen generieren und sie niemals unter seinem eigenen Pseudonym veröffentlichen. Öffentlich Privat Alice Carol Bobs Adresse 1 Bobs Adresse 2 Bobs Schlüssel 1 Bobs Schlüssel 2 Bob Abb. 2. Traditionelles Bitcoin-Schlüssel-/Transaktionsmodell. Wir schlagen eine Lösung vor, die es einem Benutzer ermöglicht, eine einzelne Adresse zu veröffentlichen und bedingungslos zu empfangen nicht verknüpfbare Zahlungen. Das Ziel jeder CryptoNote-Ausgabe ist (standardmäßig) ein öffentlicher Schlüssel. abgeleitet aus Empfängeradresse und Zufallsdaten des Absenders. Der Hauptvorteil gegenüber Bitcoin ist, dass jeder Zielschlüssel standardmäßig eindeutig ist (es sei denn, der Absender verwendet für jeden die gleichen Daten). seiner Transaktionen an denselben Empfänger). Daher gibt es kein Problem wie die „Wiederverwendung von Adressen“. Design und kein Beobachter kann feststellen, ob Transaktionen an eine bestimmte Adresse oder einen bestimmten Link gesendet wurden zwei Adressen zusammen. 6 Der private Benutzerschlüssel ist ein Paar (a, b) aus zwei verschiedenen privaten EC-Schlüsseln. Der Tracking-Schlüssel ist ein Paar (a, B) aus privatem und öffentlichem EC-Schlüssel (wobei B = bG und a ̸= b); Der öffentliche Benutzerschlüssel ist ein Paar (A, B) aus zwei öffentlichen EC-Schlüsseln, die von (a, b) abgeleitet sind. Die Standardadresse ist eine Darstellung eines öffentlichen Benutzerschlüssels, der in einer benutzerfreundlichen Zeichenfolge angegeben wird mit Fehlerkorrektur; Die verkürzte Adresse ist eine Darstellung der zweiten Hälfte (Punkt B) eines angegebenen öffentlichen Benutzerschlüssels in eine benutzerfreundliche Zeichenfolge mit Fehlerkorrektur umgewandelt. Die Transaktionsstruktur ähnelt der Struktur in Bitcoin: Jeder Benutzer kann wählen mehrere unabhängige Zahlungseingänge (Transaktionsausgänge), signieren Sie diese mit den entsprechenden private Schlüssel und senden sie an verschiedene Ziele. Im Gegensatz zum Modell von Bitcoin, bei dem ein Benutzer über einen eindeutigen privaten und öffentlichen Schlüssel verfügt Bei dem vorgeschlagenen Modell generiert ein Absender einen einmaligen öffentlichen Schlüssel basierend auf der Adresse des Empfängers und einige zufällige Daten. In diesem Sinne wird eine eingehende Transaktion für denselben Empfänger an a gesendet Einmaliger öffentlicher Schlüssel (nicht direkt an eine eindeutige Adresse) und nur der Empfänger kann ihn wiederherstellen entsprechenden privaten Teil, um sein Geld einzulösen (unter Verwendung seines einzigartigen privaten Schlüssels). Der Empfänger kann Verwenden Sie eine Ringsignatur, um die Gelder auszugeben, wobei sein Eigentum und seine tatsächlichen Ausgaben anonym bleiben. Die Einzelheiten des Protokolls werden in den nächsten Unterabschnitten erläutert. 4.3 Nicht verknüpfbare Zahlungen Klassische Bitcoin-Adressen werden nach der Veröffentlichung zu einer eindeutigen Kennung für eingehende E-Mails Zahlungen, deren Verknüpfung und Verknüpfung mit den Pseudonymen des Empfängers. Wenn jemand möchte Wenn er eine „ungebundene“ Transaktion erhält, sollte er dem Absender seine Adresse über einen privaten Kanal mitteilen. Wenn er verschiedene Transaktionen erhalten möchte, bei denen nicht nachgewiesen werden kann, dass sie demselben Eigentümer gehören Er sollte alle verschiedenen Adressen generieren und sie niemals unter seinem eigenen Pseudonym veröffentlichen. Öffentlich Privat Alice Carol Bobs Adresse 1 Bobs Adresse 2 Bobs Schlüssel 1 Bobs Schlüssel 2 Bob Abb. 2. Traditioneller Bitcoin-Schlüssel/Transaktionen-Model. Wir schlagen eine Lösung vor, die es einem Benutzer ermöglicht, eine einzelne Adresse zu veröffentlichen und bedingungslos zu empfangen nicht verknüpfbare Zahlungen. Das Ziel jeder CryptoNote-Ausgabe ist (standardmäßig) ein öffentlicher Schlüssel. abgeleitet aus Empfängeradresse und Zufallsdaten des Absenders. Der Hauptvorteil gegenüber Bitcoin ist, dass jeder Zielschlüssel standardmäßig eindeutig ist (es sei denn, der Absender verwendet für jeden die gleichen Daten). seiner Transaktionen an denselben Empfänger). Daher gibt es kein Problem wie die „Wiederverwendung von Adressen“. Design und kein Beobachter kann feststellen, ob Transaktionen an eine bestimmte Adresse oder einen bestimmten Link gesendet wurden zwei Adressen zusammen. 6 12 Anstatt also Münzen von einer Adresse (die eigentlich ein öffentlicher Schlüssel ist) an eine Adresse zu senden (ein weiterer öffentlicher Schlüssel) Mit ihren privaten Schlüsseln senden Benutzer Münzen aus einem einmaligen Postfach (der mit dem öffentlichen Schlüssel Ihres Freundes generiert wird) an ein einmaliges Postfach (ähnlich) mit Ihrem eigene private Schlüssel. In gewisser Weise sagen wir: „Okay, lasst alle die Finger vom Geld, während es in Umlauf ist.“ herumgetragen! Es reicht einfach zu wissen, dass unsere Schlüssel diese und jene Kiste öffnen können Wir wissen, wie viel Geld in der Box ist. Legen Sie niemals Ihre Fingerabdrücke auf das Postfach oder Um es tatsächlich zu nutzen, tauschen Sie einfach die mit Bargeld gefüllte Box selbst aus. Auf diese Weise wissen wir nicht, wer gesendet hat Was, aber der Inhalt dieser öffentlichen Adressen ist immer noch reibungslos, fungibel, teilbar und besitzen immer noch all die anderen schönen Eigenschaften von Geld, die wir uns wünschen, wie Bitcoin.“ Eine unendliche Menge an Postfächern. Sie veröffentlichen eine Adresse, ich habe einen privaten Schlüssel. Ich verwende meinen privaten Schlüssel und Ihre Adresse und einige zufällige Daten, um einen öffentlichen Schlüssel zu generieren. Der Algorithmus ist so konzipiert, dass, da Ihr Adresse zum Generieren des öffentlichen Schlüssels verwendet wurde, funktioniert nur IHR privater Schlüssel zum Entsperren Nachricht. Eine Beobachterin, Eve, sieht, wie Sie Ihre Adresse veröffentlichen, und sieht den öffentlichen Schlüssel, den ich bekannt gebe. Allerdings Sie weiß nicht, ob ich meinen öffentlichen Schlüssel basierend auf Ihrer Adresse oder ihrer oder der von Brenda bekannt gegeben habe oder Charlenes, oder wer auch immer. Sie vergleicht ihren privaten Schlüssel mit dem öffentlichen Schlüssel, den ich angekündigt habe und sieht, dass es nicht funktioniert; es ist nicht ihr Geld. Sie kennt den privaten Schlüssel von niemand anderem und Nur der Empfänger der Nachricht verfügt über den privaten Schlüssel, der die Nachricht entsperren kann. Also niemand Wenn man zuhört, kann man feststellen, wer das Geld erhalten hat, geschweige denn, das Geld annehmen.

Öffentlich Privat Alice Carol Einmalschlüssel Einmalschlüssel Einmalschlüssel Bob Bobs Schlüssel Bobs Adresse Abb. 3. CryptoNote-Schlüssel-/Transaktionsmodell. Zunächst führt der Absender einen Diffie-Hellman-Austausch durch, um ein gemeinsames Geheimnis aus seinen Daten zu erhalten die Hälfte der Adresse des Empfängers. Anschließend berechnet er mithilfe der gemeinsamen Daten einen einmaligen Zielschlüssel Geheimnis und die zweite Hälfte der Adresse. Vom Empfänger werden zwei verschiedene ec-Schlüssel benötigt Für diese beiden Schritte ist eine Standard-CryptoNote-Adresse also fast doppelt so groß wie eine Bitcoin-Wallet Adresse. Der Empfänger führt außerdem einen Diffie-Hellman-Austausch durch, um die entsprechenden Daten wiederherzustellen geheimer Schlüssel. Eine Standardtransaktionssequenz sieht wie folgt aus: 1. Alice möchte eine Zahlung an Bob senden, der seine Standardadresse veröffentlicht hat. Sie entpackt die Adresse und erhält Bobs öffentlichen Schlüssel (A, B). 2. Alice generiert ein zufälliges \(r \in [1, l - 1]\) und berechnet einen einmaligen öffentlichen Schlüssel \(P = H_s(rA)G +\) B. 3. Alice verwendet P als Zielschlüssel für die Ausgabe und packt auch den Wert R = rG (als Teil der Diffie-Hellman-Börse) irgendwo in die Transaktion einfließen. Beachten Sie, dass sie erstellen kann andere Ausgaben mit eindeutigen öffentlichen Schlüsseln: Die Schlüssel verschiedener Empfänger (Ai, Bi) implizieren unterschiedliche Pi sogar mit dem gleichen r. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel R = rG P = Hs(rA)G + B Empfänger öffentlicher Schlüssel Zufallsdaten des Absenders r (A, B) Abb. 4. Standard-Transaktionsstruktur. 4. Alice sendet die Transaktion. 5. Bob überprüft jede durchlaufende Transaktion mit seinem privaten Schlüssel (a, b) und berechnet P ′ = Hs(aR)G + B. Wenn Alices Transaktion mit Bob als Empfänger darunter war, dann ist aR = arG = rA und P′ = P. 7 Öffentlich Privat Alice Carol Einmalschlüssel Einmalschlüssel Einmalschlüssel Bob Bobs Schlüssel Bobs Adresse Abb. 3. CryptoNote-Schlüssel-/Transaktionsmodell. Zunächst führt der Absender einen Diffie-Hellman-Austausch durch, um ein gemeinsames Geheimnis aus seinen Daten zu erhalten die Hälfte der Adresse des Empfängers. Anschließend berechnet er mithilfe der gemeinsamen Daten einen einmaligen Zielschlüssel Geheimnis und die zweite Hälfte der Adresse. Vom Empfänger werden zwei verschiedene ec-Schlüssel benötigt Für diese beiden Schritte ist eine Standard-CryptoNote-Adresse also fast doppelt so groß wie eine Bitcoin-Wallet Adresse. Der Empfänger führt außerdem einen Diffie-Hellman-Austausch durch, um die entsprechenden Daten wiederherzustellen geheimer Schlüssel. Eine Standardtransaktionssequenz sieht wie folgt aus: 1. Alice möchte eine Zahlung an Bob senden, der seine Standardadresse veröffentlicht hat. Sie entpackt die Adresse und erhält Bobs öffentlichen Schlüssel (A, B). 2. Alice generiert ein zufälliges \(r \in [1, l - 1]\) und berechnet einen einmaligen öffentlichen Schlüssel \(P = H_s(rA)G +\) B. 3. Alice verwendet P als Zielschlüssel für die Ausgabe und packt auch den Wert R = rG (als Teil der Diffie-Hellman-Börse) irgendwo in die Transaktion einfließen. Beachten Sie, dass sie erstellen kann andere Ausgaben mit eindeutigen öffentlichen Schlüsseln: Die Schlüssel verschiedener Empfänger (Ai, Bi) implizieren unterschiedliche Pi sogar mit dem gleichen r. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel R = rG P = Hs(rA)G + B Empfänger öffentlicher Schlüssel Zufallsdaten des Absenders r (A, B) Abb. 4. Standard-Transaktionsstruktur. 4. Alice sendet die Transaktion. 5. Bob überprüft jede durchlaufende Transaktion mit seinem privaten Schlüssel (a, b) und berechnet P ′ = Hs(aR)G + B. Wenn Alices Transaktion mit Bob als Empfänger darunter war, dann ist aR = arG = rA und P′ = P. 7 13 Ich frage mich, wie mühsam es wäre, eine Wahl der Kryptographie zu implementieren Schema. Elliptisch oder anders. Wenn also in Zukunft ein Plan gebrochen wird, wechselt die Währung ohne Bedenken. Wahrscheinlich eine große Nervensäge. Okay, das ist genau das, was ich gerade in meinem vorherigen Kommentar erklärt habe. Der Diffie-Hellman-Typ Der Austausch ist ordentlich. Angenommen, Alex und Brenda haben jeweils eine Geheimnummer A und B und eine Nummer Es geht ihnen nicht darum, Geheimnisse zu bewahren, a und b. Sie möchten ein gemeinsames Geheimnis generieren, ohne dies zu tun Eva entdeckt es. Diffie und Hellman haben eine Möglichkeit gefunden, wie Alex und Brenda das teilen können öffentliche Nummern a und b, nicht jedoch die privaten Nummern A und B, und generieren ein gemeinsames Geheimnis, K. Unter Verwendung dieses gemeinsamen Geheimnisses, K, ohne dass Eva zuhört, um dasselbe zu generieren K, Alex und Brenda können K nun als geheimen Verschlüsselungsschlüssel verwenden und geheime Nachrichten zurückgeben und her. So KANN es funktionieren, obwohl es mit viel größeren Zahlen als 100 funktionieren sollte. Wir verwenden 100, da das Bearbeiten der ganzen Zahlen Modulo 100 gleichbedeutend mit „Alle wegwerfen“ ist sondern die letzten beiden Ziffern einer Zahl.“ Alex und Brenda wählen jeweils A, a, B und b. Sie halten A und B geheim. Alex teilt Brenda ihren Wert eines Modulo 100 mit (nur die letzten beiden Ziffern) und Brenda teilt es Alex mit ihr Wert von b Modulo 100. Jetzt kennt Eva (a,b) Modulo 100. Aber Alex kennt (a,b,A) also sie kann x=abA modulo 100 berechnen.Alex schneidet alles bis auf die letzte Ziffer ab, weil wir arbeiten unter den ganzen Zahlen Modulo 100 wieder. Ebenso kennt Brenda (a,b,B), sodass sie berechnen kann y=abB Modulo 100. Alex kann jetzt x veröffentlichen und Brenda kann y veröffentlichen. Aber jetzt kann Alex yA = abBA modulo 100 berechnen, und Brenda kann xB berechnen = abBA modulo 100. Sie kennen beide die gleiche Nummer! Aber alles, was Eva gehört hat, ist (a,b,abA,abB). Sie hat keine einfache Möglichkeit, abA*B zu berechnen. Dies ist nun die einfachste und unsicherste Art, über den Diffie-Hellman-Austausch nachzudenken. Es gibt sicherere Versionen. Die meisten Versionen funktionieren jedoch aufgrund der ganzzahligen und diskreten Faktorisierung Logarithmen sind schwierig, und beide Probleme können von Quantencomputern leicht gelöst werden. Ich werde prüfen, ob es quantenresistente Versionen gibt. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange Der hier aufgeführten „Standard-TXN-Sequenz“ fehlen eine ganze Reihe von Schritten, wie z. B. SIGNATUREN. Sie werden hier einfach als selbstverständlich angesehen. Was wirklich schlimm ist, denn die Reihenfolge, in der wir Signieren, die in der signierten Nachricht enthaltenen Informationen und so weiter ... das alles ist extrem wichtig für das Protokoll. Bei der Umsetzung von „the Standard-Transaktionssequenz“ könnte die Sicherheit des gesamten Systems in Frage stellen. Darüber hinaus sind die später in der Arbeit vorgelegten Beweise möglicherweise nicht streng genug, wenn die Der Rahmen, in dem sie arbeiten, ist genauso locker definiert wie in diesem Abschnitt.

Öffentlich Privat Alice Carol Einmalschlüssel Einmalschlüssel Einmalschlüssel Bob Bobs Schlüssel Bobs Adresse Abb. 3. CryptoNote-Schlüssel-/Transaktionsmodell. Zunächst führt der Absender einen Diffie-Hellman-Austausch durch, um ein gemeinsames Geheimnis aus seinen Daten zu erhalten die Hälfte der Adresse des Empfängers. Anschließend berechnet er mithilfe der gemeinsamen Daten einen einmaligen Zielschlüssel Geheimnis und die zweite Hälfte der Adresse. Vom Empfänger werden zwei verschiedene ec-Schlüssel benötigt Für diese beiden Schritte ist eine Standard-CryptoNote-Adresse also fast doppelt so groß wie eine Bitcoin-Wallet Adresse. Der Empfänger führt außerdem einen Diffie-Hellman-Austausch durch, um die entsprechenden Daten wiederherzustellen geheimer Schlüssel. Eine Standardtransaktionssequenz sieht wie folgt aus: 1. Alice möchte eine Zahlung an Bob senden, der seine Standardadresse veröffentlicht hat. Sie entpackt die Adresse und erhält Bobs öffentlichen Schlüssel (A, B). 2. Alice generiert ein zufälliges \(r \in [1, l - 1]\) und berechnet einen einmaligen öffentlichen Schlüssel \(P = H_s(rA)G +\) B. 3. Alice verwendet P als Zielschlüssel für die Ausgabe und packt auch den Wert R = rG (als Teil der Diffie-Hellman-Börse) irgendwo in die Transaktion einfließen. Beachten Sie, dass sie erstellen kann andere Ausgaben mit eindeutigen öffentlichen Schlüsseln: Die Schlüssel verschiedener Empfänger (Ai, Bi) implizieren unterschiedliche Pi sogar mit dem gleichen r. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel R = rG P = Hs(rA)G + B Empfänger öffentlicher Schlüssel Zufallsdaten des Absenders r (A, B) Abb. 4. Standard-Transaktionsstruktur. 4. Alice sendet die Transaktion. 5. Bob überprüft jede durchlaufende Transaktion mit seinem privaten Schlüssel (a, b) und berechnet P ′ = Hs(aR)G + B. Wenn Alices Transaktion mit Bob als Empfänger darunter war, dann ist aR = arG = rA und P′ = P. 7 Öffentlich Privat Alice Carol Einmalschlüssel Einmalschlüssel Einmalschlüssel Bob Bobs Schlüssel Bobs Adresse Abb. 3. CryptoNote-Schlüssel-/Transaktionsmodell. Zunächst führt der Absender einen Diffie-Hellman-Austausch durch, um ein gemeinsames Geheimnis aus seinen Daten zu erhalten die Hälfte der Adresse des Empfängers. Anschließend berechnet er mithilfe der gemeinsamen Daten einen einmaligen Zielschlüssel Geheimnis und die zweite Hälfte der Adresse. Vom Empfänger werden zwei verschiedene ec-Schlüssel benötigt Für diese beiden Schritte ist eine Standard-CryptoNote-Adresse also fast doppelt so groß wie eine Bitcoin-Wallet Adresse. Der Empfänger führt außerdem einen Diffie-Hellman-Austausch durch, um die entsprechenden Daten wiederherzustellen geheimer Schlüssel. Eine Standardtransaktionssequenz sieht wie folgt aus: 1. Alice möchte eine Zahlung an Bob senden, der seine Standardadresse veröffentlicht hat. Sie entpackt die Adresse und erhält Bobs öffentlichen Schlüssel (A, B). 2. Alice generiert ein zufälliges \(r \in [1, l - 1]\) und berechnet einen einmaligen öffentlichen Schlüssel \(P = H_s(rA)G +\) B. 3. Alice verwendet P als Zielschlüssel für die Ausgabe und packt auch den Wert R = rG (als Teil der Diffie-Hellman-Börse) irgendwo in die Transaktion einfließen. Beachten Sie, dass sie erstellen kann andere Ausgaben mit eindeutigen öffentlichen Schlüsseln: Die Schlüssel verschiedener Empfänger (Ai, Bi) implizieren unterschiedliche Pi sogar mit dem gleichen r. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel R = rG P = Hs(rA)G + B Empfänger öffentlicher Schlüssel Zufallsdaten des Absenders r (A, B) Abb. 4. Standard-Transaktionsstruktur. 4. Alice sendet die Transaktion. 5. Bob überprüft jede durchlaufende Transaktion mit seinem privaten Schlüssel (a, b) und berechnet P ′ = Hs(aR)G + B. Wenn Alices Transaktion mit Bob als Empfänger darunter war, dann ist aR = arG = rA und P′ = P. 7 14 Beachten Sie, dass es den Autoren schlecht gelingt, ihre Terminologie durchgehend klar zu halten den Text, aber vor allem in diesem nächsten Teil. Die nächste Inkarnation dieses Papiers wird notwendigerweise sein viel strenger. Im Text bezeichnen sie P als ihren einmaligen öffentlichen Schlüssel. Im Diagramm bezeichnen sie R als ihren „öffentlichen Tx-Schlüssel“ und P als ihren „Zielschlüssel“. Wenn ich das umschreiben würde, würde ich es tun Legen Sie einige Begriffe ganz konkret dar, bevor Sie diese Abschnitte besprechen. Diese Elle ist riesig. Siehe Seite 5. Wer wählt ell? Das Diagramm zeigt, dass der öffentliche Transaktionsschlüssel R = rG ist, der zufällig und ausgewählt ist B. vom Absender, ist nicht Teil der Tx-Ausgabe. Dies liegt daran, dass es für mehrere gleich sein könnte Transaktionen an mehrere Personen und wird SPÄTER nicht für Ausgaben verwendet. Ein neues R wird generiert jedes Mal, wenn Sie eine neue CryptoNote-Transaktion übertragen möchten. Darüber hinaus wird nur R verwendet um zu prüfen, ob Sie der Empfänger der Transaktion sind. Es handelt sich nicht um Junk-Daten, aber für jeden ist es Junk-Daten ohne die mit (A,B) verbundenen privaten Schlüssel. Der Zielschlüssel hingegen, P = Hs(rA)G + B, ist Teil der Tx-Ausgabe. Jeder Beim Durchsuchen der Daten jeder laufenden Transaktion müssen sie ihr eigenes generiertes P* vergleichen dieses P, um zu sehen, ob ihnen diese vorübergehende Transaktion gehört. Jeder mit einer nicht ausgegebenen Transaktionsausgabe (UTXO) wird einen Haufen dieser Ps mit Beträgen herumliegen haben. Um zu verbringend, sie Unterschreiben Sie eine neue Nachricht, einschließlich P. Alice muss diese Transaktion mit einmaligen privaten Schlüsseln signieren, die mit den Zielschlüsseln der nicht ausgegebenen Transaktionsausgabe(n) verknüpft sind. Jeder Zielschlüssel im Besitz von Alice ist ausgestattet mit einem einmaligen privaten Schlüssel, der (vermutlich) auch Alice gehört. Jedes Mal, wenn Alice es will Schicken Sie mir oder Bob oder Brenda oder Charlie oder Charlene den Inhalt eines Zielschlüssels verwendet ihren privaten Schlüssel, um die Transaktion zu signieren. Nach Eingang der Transaktion erhalte ich ein neues Tx öffentlichen Schlüssel, einen neuen öffentlichen Zielschlüssel, und ich werde in der Lage sein, einen neuen einmaligen privaten Schlüssel x wiederherzustellen. Ich kombiniere meinen einmaligen privaten Schlüssel x mit dem öffentlichen Ziel der neuen Transaktion Mit den Schlüsseln senden wir eine neue Transaktion

  1. Bob kann den entsprechenden einmaligen privaten Schlüssel wiederherstellen: x = Hs(aR) + b, also P = xG. Er kann diese Ausgabe jederzeit ausgeben, indem er eine Transaktion mit x unterzeichnet. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel P ′ = Hs(aR)G + bG einmaliger öffentlicher Schlüssel x = Hs(aR) + b einmaliger privater Schlüssel Empfänger privater Schlüssel (a, b) R P′ ?= P Abb. 5. Eingangstransaktionsprüfung. Als Ergebnis erhält Bob eingehende Zahlungen, die mit einmaligen öffentlichen Schlüsseln verknüpft sind Für einen Zuschauer nicht verlinkbar. Einige zusätzliche Hinweise: • Wenn Bob seine Transaktionen „erkennt“ (siehe Schritt 5), nutzt er praktisch nur die Hälfte seiner private Informationen: (a, B). Dieses Paar, auch Tracking-Schlüssel genannt, kann übergeben werden an einen Dritten (Carol). Bob kann ihr die Bearbeitung neuer Transaktionen delegieren. Bob muss Carol nicht ausdrücklich vertrauen, da sie den einmaligen geheimen Schlüssel p nicht wiederherstellen kann ohne Bobs vollständigen privaten Schlüssel (a, b). Dieser Ansatz ist nützlich, wenn es Bob an Bandbreite mangelt oder Rechenleistung (Smartphones, Hardware-Wallets etc.). • Falls Alice nachweisen möchte, dass sie eine Transaktion an Bobs Adresse gesendet hat, kann sie dies entweder offenlegen r oder verwenden Sie ein Zero-Knowledge-Protokoll, um zu beweisen, dass sie r kennt (z. B. durch Unterschreiben). die Transaktion mit r). • Wenn Bob eine revisionssichere Adresse haben möchte, an der sich alle eingehenden Transaktionen befinden verknüpfbar ist, kann er entweder seinen Tracking-Key veröffentlichen oder eine gekürzte Adresse verwenden. Diese Adresse stellt nur einen öffentlichen EC-Schlüssel B dar, und der verbleibende Teil ist für das Protokoll erforderlich daraus wie folgt abgeleitet: a = Hs(B) und A = Hs(B)G. In beiden Fällen ist es jeder Mensch ist in der Lage, alle eingehenden Transaktionen von Bob zu „erkennen“, aber natürlich kann niemand diese ausgeben darin eingeschlossene Gelder ohne geheimen Schlüssel b. 4.4 Einmalige Ringsignaturen Ein auf einmaligen Ringsignaturen basierendes Protokoll ermöglicht es Benutzern, eine bedingungslose Unverknüpfbarkeit zu erreichen. Leider ermöglichen gewöhnliche Arten von kryptografischen Signaturen die Rückverfolgung von Transaktionen jeweiligen Sender und Empfänger. Unsere Lösung für dieses Manko liegt in der Verwendung einer anderen Signatur als diejenigen, die derzeit in elektronischen Kassensystemen verwendet werden. Wir werden zunächst eine allgemeine Beschreibung unseres Algorithmus ohne expliziten Verweis darauf geben elektronisches Bargeld. Eine einmalige Ringsignatur enthält vier Algorithmen: (GEN, SIG, VER, LNK): GEN: nimmt öffentliche Parameter und gibt ein EC-Paar (P, x) und einen öffentlichen Schlüssel I aus. SIG: Nimmt eine Nachricht m, eine Menge \(S'\) öffentlicher Schlüssel {Pi}i̸=s, ein Paar (Ps, xs) und gibt eine Signatur \(\sigma\) aus und eine Menge \(S = \)S'\( \cup \{P_s\}\). 8
  2. Bob kann den entsprechenden einmaligen privaten Schlüssel wiederherstellen: x = Hs(aR) + b, also P = xG. Er kann diese Ausgabe jederzeit ausgeben, indem er eine Transaktion mit x unterzeichnet. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel P ′ = Hs(aR)G + bG einmaliger öffentlicher Schlüssel x = Hs(aR) + b einmaliger privater Schlüssel Empfänger privater Schlüssel (a, b) R P′ ?= P Abb. 5. Eingangstransaktionsprüfung. Als Ergebnis erhält Bob eingehende Zahlungen, die mit einmaligen öffentlichen Schlüsseln verknüpft sind Für einen Zuschauer nicht verlinkbar. Einige zusätzliche Hinweise: • Wenn Bob seine Transaktionen „erkennt“ (siehe Schritt 5), nutzt er praktisch nur die Hälfte seiner private Informationen: (a, B). Dieses Paar, auch Tracking-Schlüssel genannt, kann übergeben werden an einen Dritten (Carol). Bob kann ihr die Bearbeitung neuer Transaktionen delegieren. Bob muss Carol nicht ausdrücklich vertrauen, da sie den einmaligen geheimen Schlüssel p nicht wiederherstellen kann ohne Bobs vollständigen privaten Schlüssel (a, b). Dieser Ansatz ist nützlich, wenn es Bob an Bandbreite mangelt oder Rechenleistung (Smartphones, Hardware-Wallets etc.). • Falls Alice nachweisen möchte, dass sie eine Transaktion an Bobs Adresse gesendet hat, kann sie dies entweder offenlegen r oder verwenden Sie ein Zero-Knowledge-Protokoll, um zu beweisen, dass sie r kennt (z. B. durch Unterschreiben). die Transaktion mit r). • Wenn Bob eine revisionssichere Adresse haben möchte, an der sich alle eingehenden Transaktionen befinden verknüpfbar ist, kann er entweder seinen Tracking-Key veröffentlichen oder eine gekürzte Adresse verwenden. Diese Adresse stellt nur einen öffentlichen EC-Schlüssel B dar, und der verbleibende Teil ist für das Protokoll erforderlich daraus wie folgt abgeleitet: a = Hs(B) und A = Hs(B)G. In beiden Fällen ist es jeder Mensch ist in der Lage, alle eingehenden Transaktionen von Bob zu „erkennen“, aber natürlich kann niemand diese ausgeben darin eingeschlossene Gelder ohne geheimen Schlüssel b. 4.4 Einmalige Ringsignaturen Ein auf einmaligen Ringsignaturen basierendes Protokoll ermöglicht es Benutzern, eine bedingungslose Unverknüpfbarkeit zu erreichen. Leider ermöglichen gewöhnliche Arten von kryptografischen Signaturen die Rückverfolgung von Transaktionen jeweiligen Sender und Empfänger. Unsere Lösung für dieses Manko liegt in der Verwendung einer anderen Signatur als diejenigen, die derzeit in elektronischen Kassensystemen verwendet werden. Wir werden zunächst ein Gen bereitstellenEine vollständige Beschreibung unseres Algorithmus ohne expliziten Verweis darauf elektronisches Bargeld. Eine einmalige Ringsignatur enthält vier Algorithmen: (GEN, SIG, VER, LNK): GEN: nimmt öffentliche Parameter und gibt ein EC-Paar (P, x) und einen öffentlichen Schlüssel I aus. SIG: Nimmt eine Nachricht m, eine Menge \(S'\) öffentlicher Schlüssel {Pi}i̸=s, ein Paar (Ps, xs) und gibt eine Signatur \(\sigma\) aus und eine Menge \(S = \)S'\( \cup \{P_s\}\). 8 15 Wie sieht hier eine nicht ausgegebene Transaktionsausgabe aus? Das Diagramm legt nahe, dass die Transaktionsausgabe nur aus zwei Datenpunkten besteht: Betrag und Zielschlüssel. Aber das ist nicht der Fall ausreichend, denn wenn ich versuche, diese „Ausgabe“ auszugeben, muss ich immer noch R=rG wissen. Denken Sie daran, dass r vom Absender ausgewählt wird und R a) verwendet wird, um eingehende Kryptonoten als Ihre zu erkennen besitzen und b) zur Generierung des einmaligen privaten Schlüssels verwendet werden, mit dem Sie Ihre Kryptonote „beanspruchen“. Der Teil daran, den ich nicht verstehe? Nehmen wir das theoretische „Okay, wir haben diese.“ Signaturen und Transaktionen, und wir geben sie hin und her“ in die Welt der Programmierung „Okay, welche Informationen konkret machen eine Person UTXO aus?“ Der beste Weg, diese Frage zu beantworten, besteht darin, in den Körper des völlig unkommentierten Codes einzutauchen. Gut gemacht, Bytecoin-Team. Zur Erinnerung: Verlinkbarkeit bedeutet „Hat die gleiche Person gesendet?“ und Unverknüpfbarkeit bedeutet „dasselbe getan.“ Person erhalten?". Ein System kann also verknüpfbar oder nicht verknüpfbar, nicht verknüpfbar oder nicht verknüpfbar sein. Ärgerlich, ich weiß. Wenn also Nic van Saberhagen hier sagt: „…eingehende Zahlungen [sind] mit Einmalzahlungen verbunden.“ öffentliche Schlüssel, die für einen Zuschauer nicht verknüpfbar sind“, schauen wir mal, was er meint. Stellen Sie sich zunächst eine Situation vor, in der Alice Bob zwei separate Transaktionen derselben sendet Adresse an die gleiche Adresse. Im Bitcoin-Universum hat Alice den Fehler bereits gemacht des Versands von der gleichen Adresse aus und daher hat die Transaktion unseren Wunsch nach einer Begrenzung verfehlt Verknüpfbarkeit. Da sie außerdem das Geld an dieselbe Adresse geschickt hat, hat sie unseren Wunsch verfehlt wegen Unverknüpfbarkeit. Diese Bitcoin-Transaktion war sowohl (vollständig) verknüpfbar als auch nicht nicht verknüpfbar. Nehmen wir andererseits im Kryptonoten-Universum an, dass Alice Bob eine Kryptonote schickt. unter Verwendung von Bobs öffentlicher Adresse. Sie wählt als ihren verschleierenden Satz öffentlicher Schlüssel alle bekannten öffentlichen Schlüssel Schlüssel im Großraum Washington DC. Alex generiert mit ihrem eigenen einen einmaligen öffentlichen Schlüssel Informationen und Bobs öffentliche Informationen. Sie schickt das Geld ab, und jeder Beobachter wird es tun Ich konnte nur herausfinden: „Jemand aus der Metropolregion Washington DC hat 2,3 Kryptonoten an geschickt.“ die einmalige öffentliche Adresse XYZ123.“ Wir haben hier eine probabilistische Kontrolle über die Verknüpfbarkeit, daher nennen wir dies „fast nicht verknüpfbar“. Wir sehen auch nur die einmaligen öffentlichen Schlüssel, an die Geld gesendet wird. Auch wenn wir den Empfänger vermuteten War Bob, wir haben seine privaten Schlüssel nicht und können daher nicht testen, ob eine Transaktion erfolgreich war gehört Bob, geschweige denn, dass er seinen einmaligen privaten Schlüssel generiert, um seine Kryptonote einzulösen. Also das hier ist in der Tat völlig „unverknüpfbar“. Das ist also der netteste Trick von allen. Wer möchte einem anderen MtGox wirklich vertrauen? Vielleicht sind wir es Es ist bequem, eine gewisse Menge an BTC auf Coinbase zu speichern, aber die ultimative Bitcoin-Sicherheit ist es eine physische Geldbörse. Was unbequem ist. In diesem Fall können Sie die Hälfte Ihres privaten Schlüssels vertrauensvoll weitergeben, ohne Ihren privaten Schlüssel zu gefährden eigene Fähigkeit, Geld auszugeben. Wenn Sie dies tun, erklären Sie lediglich jemandem, wie er die Unverknüpfbarkeit aufheben kann. Der andere Eigenschaften von CN, die wie eine Währung wirken, bleiben erhalten, wie z. B. der Schutz vor Doppelausgaben und was nicht.

  3. Bob kann den entsprechenden einmaligen privaten Schlüssel wiederherstellen: x = Hs(aR) + b, also P = xG. Er kann diese Ausgabe jederzeit ausgeben, indem er eine Transaktion mit x unterzeichnet. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel P ′ = Hs(aR)G + bG einmaliger öffentlicher Schlüssel x = Hs(aR) + b einmaliger privater Schlüssel Empfänger privater Schlüssel (a, b) R P′ ?= P Abb. 5. Eingangstransaktionsprüfung. Als Ergebnis erhält Bob eingehende Zahlungen, die mit einmaligen öffentlichen Schlüsseln verknüpft sind Für einen Zuschauer nicht verlinkbar. Einige zusätzliche Hinweise: • Wenn Bob seine Transaktionen „erkennt“ (siehe Schritt 5), nutzt er praktisch nur die Hälfte seiner private Informationen: (a, B). Dieses Paar, auch Tracking-Schlüssel genannt, kann übergeben werden an einen Dritten (Carol). Bob kann ihr die Bearbeitung neuer Transaktionen delegieren. Bob muss Carol nicht ausdrücklich vertrauen, da sie den einmaligen geheimen Schlüssel p nicht wiederherstellen kann ohne Bobs vollständigen privaten Schlüssel (a, b). Dieser Ansatz ist nützlich, wenn es Bob an Bandbreite mangelt oder Rechenleistung (Smartphones, Hardware-Wallets etc.). • Falls Alice nachweisen möchte, dass sie eine Transaktion an Bobs Adresse gesendet hat, kann sie dies entweder offenlegen r oder verwenden Sie ein Zero-Knowledge-Protokoll, um zu beweisen, dass sie r kennt (z. B. durch Unterschreiben). die Transaktion mit r). • Wenn Bob eine revisionssichere Adresse haben möchte, an der sich alle eingehenden Transaktionen befinden verknüpfbar ist, kann er entweder seinen Tracking-Key veröffentlichen oder eine gekürzte Adresse verwenden. Diese Adresse stellt nur einen öffentlichen EC-Schlüssel B dar, und der verbleibende Teil ist für das Protokoll erforderlich daraus wie folgt abgeleitet: a = Hs(B) und A = Hs(B)G. In beiden Fällen ist es jeder Mensch ist in der Lage, alle eingehenden Transaktionen von Bob zu „erkennen“, aber natürlich kann niemand diese ausgeben darin eingeschlossene Gelder ohne geheimen Schlüssel b. 4.4 Einmalige Ringsignaturen Ein auf einmaligen Ringsignaturen basierendes Protokoll ermöglicht es Benutzern, eine bedingungslose Unverknüpfbarkeit zu erreichen. Leider ermöglichen gewöhnliche Arten von kryptografischen Signaturen die Rückverfolgung von Transaktionen jeweiligen Sender und Empfänger. Unsere Lösung für dieses Manko liegt in der Verwendung einer anderen Signatur als diejenigen, die derzeit in elektronischen Kassensystemen verwendet werden. Wir werden zunächst eine allgemeine Beschreibung unseres Algorithmus ohne expliziten Verweis darauf geben elektronisches Bargeld. Eine einmalige Ringsignatur enthält vier Algorithmen: (GEN, SIG, VER, LNK): GEN: nimmt öffentliche Parameter und gibt ein EC-Paar (P, x) und einen öffentlichen Schlüssel I aus. SIG: Nimmt eine Nachricht m, eine Menge \(S'\) öffentlicher Schlüssel {Pi}i̸=s, ein Paar (Ps, xs) und gibt eine Signatur \(\sigma\) aus und eine Menge \(S = \)S'\( \cup \{P_s\}\). 8

  4. Bob kann den entsprechenden einmaligen privaten Schlüssel wiederherstellen: x = Hs(aR) + b, also P = xG. Er kann diese Ausgabe jederzeit ausgeben, indem er eine Transaktion mit x unterzeichnet. Transaktion Öffentlicher Tx-Schlüssel Tx-Ausgang Betrag Zielschlüssel P ′ = Hs(aR)G + bG einmaliger öffentlicher Schlüssel x = Hs(aR) + b einmaliger privater Schlüssel Empfänger privater Schlüssel (a, b) R P′ ?= P Abb. 5. Eingangstransaktionsprüfung. Als Ergebnis erhält Bob eingehende Zahlungen, die mit einmaligen öffentlichen Schlüsseln verknüpft sind Für einen Zuschauer nicht verlinkbar. Einige zusätzliche Hinweise: • Wenn Bob seine Transaktionen „erkennt“ (siehe Schritt 5), nutzt er praktisch nur die Hälfte seiner private Informationen: (a, B). Dieses Paar, auch Tracking-Schlüssel genannt, kann übergeben werden an einen Dritten (Carol). Bob kann ihr die Bearbeitung neuer Transaktionen delegieren. Bob muss Carol nicht ausdrücklich vertrauen, da sie den einmaligen geheimen Schlüssel p nicht wiederherstellen kann ohne Bobs vollständigen privaten Schlüssel (a, b). Dieser Ansatz ist nützlich, wenn es Bob an Bandbreite mangelt oder Rechenleistung (Smartphones, Hardware-Wallets etc.). • Falls Alice nachweisen möchte, dass sie eine Transaktion an Bobs Adresse gesendet hat, kann sie dies entweder offenlegen r oder verwenden Sie ein Zero-Knowledge-Protokoll, um zu beweisen, dass sie r kennt (z. B. durch Unterschreiben). die Transaktion mit r). • Wenn Bob eine revisionssichere Adresse haben möchte, an der sich alle eingehenden Transaktionen befinden verknüpfbar ist, kann er entweder seinen Tracking-Key veröffentlichen oder eine gekürzte Adresse verwenden. Diese Adresse stellt nur einen öffentlichen EC-Schlüssel B dar, und der verbleibende Teil ist für das Protokoll erforderlich daraus wie folgt abgeleitet: a = Hs(B) und A = Hs(B)G. In beiden Fällen ist es jeder Mensch ist in der Lage, alle eingehenden Transaktionen von Bob zu „erkennen“, aber natürlich kann niemand diese ausgeben darin eingeschlossene Gelder ohne geheimen Schlüssel b. 4.4 Einmalige Ringsignaturen Ein auf einmaligen Ringsignaturen basierendes Protokoll ermöglicht es Benutzern, eine bedingungslose Unverknüpfbarkeit zu erreichen. Leider ermöglichen gewöhnliche Arten von kryptografischen Signaturen die Rückverfolgung von Transaktionen jeweiligen Sender und Empfänger. Unsere Lösung für dieses Manko liegt in der Verwendung einer anderen Signatur als diejenigen, die derzeit in elektronischen Kassensystemen verwendet werden. Wir werden zunächst ein Gen bereitstellenEine vollständige Beschreibung unseres Algorithmus ohne expliziten Verweis darauf elektronisches Bargeld. Eine einmalige Ringsignatur enthält vier Algorithmen: (GEN, SIG, VER, LNK): GEN: nimmt öffentliche Parameter und gibt ein EC-Paar (P, x) und einen öffentlichen Schlüssel I aus. SIG: Nimmt eine Nachricht m, eine Menge \(S'\) öffentlicher Schlüssel {Pi}i̸=s, ein Paar (Ps, xs) und gibt eine Signatur \(\sigma\) aus und eine Menge \(S = \)S'\( \cup \{P_s\}\). 8 16 Ja, jetzt haben wir a) eine Zahlungsadresse und b) eine Zahlungs-ID. Ein Kritiker könnte fragen: „Müssen wir das wirklich tun? Wenn ein Händler schließlich 112.00678952 erhält.“ Genau CN, und das war meine Bestellung, und ich habe einen Screenshot oder eine Quittung oder was auch immer, nicht wahr? wahnsinniges Maß an Präzision ausreichend?“ Die Antwort lautet: „Vielleicht, meistens im Alltag, persönliche Transaktionen.“ Die häufigere Situation (insbesondere in der digitalen Welt) ist jedoch folgende: Ein Händler verkauft eine Reihe von Objekten mit jeweils einem festen Preis. Angenommen, Objekt A hat 0,001 CN, Objekt B hat 0,01 CN und Objekt C ist 0,1 CN. Wenn der Händler nun eine Bestellung über 1,618 CN erhält, sind es viele, viele (viele!) Möglichkeiten, eine Bestellung für einen Kunden zu arrangieren. Und so ohne irgendeine Zahlungs-ID, Identifizierung der sogenannten „einzigartigen“ Bestellung eines Kunden mit den sogenannten „einzigartigen“ Kosten für ihn Ordnung wird unmöglich. Noch lustiger: Wenn alles in meinem Online-Shop genau 1,0 kostet CN, und ich bekomme 1000 Kunden pro Tag? Und Sie möchten nachweisen, dass Sie genau 3 Objekte gekauft haben vor zwei Wochen? Ohne Zahlungsausweis? Viel Glück, Kumpel. Lange Rede, kurzer Sinn: Wenn Bob eine Zahlungsadresse veröffentlicht, veröffentlicht er möglicherweise auch eine Zahlungs-ID ebenfalls (siehe z. B. Poloniex XMR-Einzahlungen). Das ist anders als beschrieben im Text hier, wobei Alice diejenige ist, die die Zahlungs-ID generiert. Für Bob muss es auch eine Möglichkeit geben, eine Zahlungs-ID zu generieren. (a,B) Denken Sie daran, dass der Tracking-Schlüssel (a,B) veröffentlicht werden kann; Verlust der Geheimhaltung des Wertes für „ein“ Testament Ihre Fähigkeit, Geld auszugeben, nicht verletzen oder zulassen, dass andere Sie bestehlen (ich denke... das hätte es getan). noch bewiesen werden muss), wird es den Leuten lediglich ermöglichen, alle eingehenden Transaktionen zu sehen. Eine verkürzte Adresse, wie in diesem Absatz beschrieben, übernimmt einfach den „privaten“ Teil des Schlüssels und generiert es aus dem „öffentlichen“ Teil. Durch das Offenlegen des Werts für „a“ wird die Nichtverknüpfbarkeit entfernt Der Rest der Transaktionen bleibt jedoch erhalten. Der Autor meint „nicht unlinkbar“, weil sich „unlinkable“ auf den Empfänger und „linkable“ bezieht bezieht sich auf den Absender. Es ist auch klar, dass der Autor nicht erkannte, dass es zwei verschiedene Aspekte der Verknüpfbarkeit gibt. Da die Transaktion schließlich ein gerichtetes Objekt in einem Diagramm ist, stellen sich zwei Fragen: „Gehen diese beiden Transaktionen an dieselbe Person?“ und „Kommen diese beiden Transaktionen?“ von derselben Person?“ Dabei handelt es sich um eine „No-going-back“-Richtlinie, der die Unlinkability-Eigenschaft von CryptoNote unterliegt bedingt. Das heißt, Bob kann festlegen, dass die Verknüpfung seiner eingehenden Transaktionen nicht aufgehoben werden kann Nutzung dieser Richtlinie. Dies ist eine Behauptung, die sie anhand des Random Oracle Model beweisen. Wir werden darauf zurückkommen; der Zufall Oracle hat Vor- und Nachteile.

VER: Nimmt eine Nachricht m, eine Menge S, eine Signatur \(\sigma\) und gibt „wahr“ oder „falsch“ aus. LNK: Nimmt eine Menge I = {Ii}, eine Signatur \(\sigma\) und gibt „linked“ oder „indep“ aus. Die Idee hinter dem Protokoll ist ziemlich einfach: Ein Benutzer erstellt eine Signatur, die sein kann wird durch einen Satz öffentlicher Schlüssel und nicht durch einen eindeutigen öffentlichen Schlüssel überprüft. Die Identität des Unterzeichners ist nicht von den anderen Benutzern zu unterscheiden, deren öffentliche Schlüssel im Set enthalten sind, bis der Eigentümer sie erstellt eine zweite Signatur mit demselben Schlüsselpaar. Private Schlüssel x0 \(\cdots\) xi \(\cdots\) xn Öffentliche Schlüssel P0 \(\cdots\) Pi \(\cdots\) Pn Klingeln Unterschrift Zeichen verifizieren Abb. 6. Anonymität der Ringsignatur. GEN: Der Unterzeichner wählt einen zufälligen geheimen Schlüssel \(x \in [1, l - 1]\) und berechnet den entsprechenden öffentlicher Schlüssel P = xG. Zusätzlich berechnet er einen weiteren öffentlichen Schlüssel I = xHp(P), den wir verwenden werden nennen wir es „Schlüsselbild“. SIG: Der Unterzeichner generiert eine einmalige Ringsignatur mit einem nicht interaktiven Zero-Knowledge Beweis mit den Techniken aus [21]. Er wählt eine zufällige Teilmenge \(S'\) von n aus den anderen Benutzern aus. öffentliche Schlüssel Pi, sein eigenes Schlüsselpaar (x, P) und Schlüsselbild I. Sei \(0 \leq s \leq n\) der geheime Index des Unterzeichners in S (so dass sein öffentlicher Schlüssel Ps ist). Er wählt ein zufälliges {qi | ich = 0 . . . n} und {wi | ich = 0 . . . n, i ̸= s} aus (1 . . . l) und wendet die an folgende Transformationen: Li = ( QiG, wenn i = s QiG + WiPi, wenn i ̸= s Ri = ( qiHp(Pi), wenn i = s qiHp(Pi) + wiI, wenn i ̸= s Der nächste Schritt besteht darin, die nicht interaktive Herausforderung zu meistern: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Schließlich berechnet der Unterzeichner die Antwort: ci =    Wi, wenn i ̸= s c − nP i=0 ci mod l, wenn i = s ri = ( Qi, wenn i ̸= s qs −csx mod l, wenn i = s Die resultierende Signatur ist \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER: Nimmt eine Nachricht m, eine Menge S, eine Signatur \(\sigma\) und gibt „wahr“ oder „falsch“ aus. LNK: Nimmt eine Menge I = {Ii}, eine Signatur \(\sigma\) und gibt „linked“ oder „indep“ aus. Die Idee hinter dem Protokoll ist ziemlich einfach: Ein Benutzer erstellt eine Signatur, die sein kann wird durch einen Satz öffentlicher Schlüssel und nicht durch einen eindeutigen öffentlichen Schlüssel überprüft. Die Identität des Unterzeichners ist nicht von den anderen Benutzern zu unterscheiden, deren öffentliche Schlüssel im Set enthalten sind, bis der Eigentümer sie erstellt eine zweite Signatur mit demselben Schlüsselpaar. Private Schlüssel x0 \(\cdots\) xi \(\cdots\) xn Öffentliche Schlüssel P0 \(\cdots\) Pi \(\cdots\) Pn Klingeln Unterschrift Zeichen verifizieren Abb. 6. Anonymität der Ringsignatur. GEN: Der Unterzeichner wählt einen zufälligen geheimen Schlüssel \(x \in [1, l - 1]\) und berechnet den entsprechenden öffentlicher Schlüssel P = xG. Zusätzlich berechnet er einen weiteren öffentlichen Schlüssel I = xHp(P), den wir verwenden werden nennen wir es „Schlüsselbild“. SIG: Der Unterzeichner generiert eine einmalige Ringsignatur mit einem nicht interaktiven Zero-Knowledge Beweis mit den Techniken aus [21]. Er wählt eine zufällige Teilmenge \(S'\) von n aus den anderen Benutzern aus. öffentliche Schlüssel Pi, sein eigenes Schlüsselpaar (x, P) und Schlüsselbild I. Sei \(0 \leq s \leq n\) der geheime Index des Unterzeichners in S (so dass sein öffentlicher Schlüssel Ps ist). Er wählt ein zufälliges {qi | ich = 0 . . . n} und {wi | ich = 0 . . . n, i ̸= s} aus (1 . . . l) und wendet die an folgende Transformationen: Li = ( QiG, wenn i = s QiG + WiPi, wenn i ̸= s Ri = ( qiHp(Pi), wenn i = s qiHp(Pi) + wiI, wenn i ̸= s Der nächste Schritt besteht darin, die nicht interaktive Herausforderung zu meistern: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Schließlich berechnet der Unterzeichner die Antwort: ci =    Wi, wenn i ̸= s c − nP i=0 ci mod l, wenn i = s ri = ( Qi, wenn i ̸= s qs −csx mod l, wenn i = s Die resultierende Signatur ist \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 17 Vielleicht ist das dumm, aber bei der Vereinigung von S und P_s ist Vorsicht geboten. Wenn Sie einfach das anhängen Letzten öffentlichen Schlüssel bis zum Ende, die Unverknüpfbarkeit ist unterbrochen, da jeder die laufenden Transaktionen überprüft Sie können einfach den letzten in jeder Transaktion aufgeführten öffentlichen Schlüssel überprüfen und loslegen. Das ist der öffentliche Schlüssel dem Absender zugeordnet. Nach der Vereinigung muss also ein Pseudozufallszahlengenerator vorhanden sein Wird verwendet, um die ausgewählten öffentlichen Schlüssel zu permutieren. „...bis der Besitzer eine zweite Signatur mit demselben Schlüsselpaar erstellt.“ Ich wünsche dem/den Autor(en?) würde das näher erläutern. Ich glaube, das bedeutet: „Stellen Sie sicher, dass Sie jedes Mal, wenn Sie einen Satz öffentlicher Schlüssel auswählen, diese verschleiern möchten.“ Du wählst ein völlig neues Set, bei dem kein Schlüssel gleich ist Ziemlich starke Bedingung für die Unverknüpfbarkeit. Vielleicht „wählen Sie ein neues zufälliges Set aus.“ alle möglichen Schlüssel“ mit der Annahme, dass, obwohl nichttriviale Schnittpunkte unvermeidlich sind passieren, sie werden nicht oft passieren. In jedem Fall muss ich mich eingehender mit dieser Aussage befassen. Dadurch wird die Ringsignatur generiert. Wissensfreie Beweise sind großartig: Ich fordere Sie auf, mir zu beweisen, dass Sie ein Geheimnis kennen ohne das Geheimnis preiszugeben. Angenommen, wir stehen am Eingang einer Donut-förmigen Höhle. und auf der Rückseite der Höhle (vom Eingang aus nicht zu sehen) befindet sich ein oNe-Weg-Tür, zu der du Behaupte, du hättest den Schlüssel. Wenn du in eine Richtung gehst, lässt es dich immer durch, aber wenn du in die gleiche Richtung gehst In die andere Richtung benötigen Sie einen Schlüssel. Aber du willst mir nicht einmal den Schlüssel zeigen, geschweige denn Zeig mir, dass es die Tür öffnet. Aber Sie wollen mir beweisen, dass Sie wissen, wie man das öffnet Tür. Im interaktiven Setting werfe ich eine Münze. Kopf ist links, Zahl ist rechts und Sie gehen nach unten Donut-förmige Höhle, wohin auch immer die Münze Sie weist. Hinten, außerhalb meiner Sichtweite, du Öffne die Tür, um auf die andere Seite zurückzukehren. Wir wiederholen das Münzwurfexperiment bis ich überzeugt bin, dass du den Schlüssel hast. Aber das ist eindeutig der INTERAKTIVE Zero-Knowledge-Beweis. Es gibt nicht-interaktive Versionen, in denen Sie und ich nie kommunizieren müssen; Auf diese Weise können keine Lauscher eingreifen. http://en.wikipedia.org/wiki/Zero-knowledge_proof Dies ist die Umkehrung der vorherigen Definition.

VER: Nimmt eine Nachricht m, eine Menge S, eine Signatur \(\sigma\) und gibt „wahr“ oder „falsch“ aus. LNK: Nimmt eine Menge I = {Ii}, eine Signatur \(\sigma\) und gibt „linked“ oder „indep“ aus. Die Idee hinter dem Protokoll ist ziemlich einfach: Ein Benutzer erstellt eine Signatur, die sein kann wird durch einen Satz öffentlicher Schlüssel und nicht durch einen eindeutigen öffentlichen Schlüssel überprüft. Die Identität des Unterzeichners ist nicht von den anderen Benutzern zu unterscheiden, deren öffentliche Schlüssel im Set enthalten sind, bis der Eigentümer sie erstellt eine zweite Signatur mit demselben Schlüsselpaar. Private Schlüssel x0 \(\cdots\) xi \(\cdots\) xn Öffentliche Schlüssel P0 \(\cdots\) Pi \(\cdots\) Pn Klingeln Unterschrift Zeichen verifizieren Abb. 6. Anonymität der Ringsignatur. GEN: Der Unterzeichner wählt einen zufälligen geheimen Schlüssel \(x \in [1, l - 1]\) und berechnet den entsprechenden öffentlicher Schlüssel P = xG. Zusätzlich berechnet er einen weiteren öffentlichen Schlüssel I = xHp(P), den wir verwenden werden nennen wir es „Schlüsselbild“. SIG: Der Unterzeichner generiert eine einmalige Ringsignatur mit einem nicht interaktiven Zero-Knowledge Beweis mit den Techniken aus [21]. Er wählt eine zufällige Teilmenge \(S'\) von n aus den anderen Benutzern aus. öffentliche Schlüssel Pi, sein eigenes Schlüsselpaar (x, P) und Schlüsselbild I. Sei \(0 \leq s \leq n\) der geheime Index des Unterzeichners in S (so dass sein öffentlicher Schlüssel Ps ist). Er wählt ein zufälliges {qi | ich = 0 . . . n} und {wi | ich = 0 . . . n, i ̸= s} aus (1 . . . l) und wendet die an folgende Transformationen: Li = ( QiG, wenn i = s QiG + WiPi, wenn i ̸= s Ri = ( qiHp(Pi), wenn i = s qiHp(Pi) + wiI, wenn i ̸= s Der nächste Schritt besteht darin, die nicht interaktive Herausforderung zu meistern: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Schließlich berechnet der Unterzeichner die Antwort: ci =    Wi, wenn i ̸= s c − nP i=0 ci mod l, wenn i = s ri = ( Qi, wenn i ̸= s qs −csx mod l, wenn i = s Die resultierende Signatur ist \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 VER: Nimmt eine Nachricht m, eine Menge S, eine Signatur \(\sigma\) und gibt „wahr“ oder „falsch“ aus. LNK: Nimmt eine Menge I = {Ii}, eine Signatur \(\sigma\) und gibt „linked“ oder „indep“ aus. Die Idee hinter dem Protokoll ist ziemlich einfach: Ein Benutzer erstellt eine Signatur, die sein kann wird durch einen Satz öffentlicher Schlüssel und nicht durch einen eindeutigen öffentlichen Schlüssel überprüft. Die Identität des Unterzeichners ist nicht von den anderen Benutzern zu unterscheiden, deren öffentliche Schlüssel im Set enthalten sind, bis der Eigentümer sie erstellt eine zweite Signatur mit demselben Schlüsselpaar. Private Schlüssel x0 \(\cdots\) xi \(\cdots\) xn Öffentliche Schlüssel P0 \(\cdots\) Pi \(\cdots\) Pn Klingeln Unterschrift Zeichen verifizieren Abb. 6. Anonymität der Ringsignatur. GEN: Der Unterzeichner wählt einen zufälligen geheimen Schlüssel \(x \in [1, l - 1]\) und berechnet den entsprechenden öffentlicher Schlüssel P = xG. Zusätzlich berechnet er einen weiteren öffentlichen Schlüssel I = xHp(P), den wir verwenden werden nennen wir es „Schlüsselbild“. SIG: Der Unterzeichner generiert eine einmalige Ringsignatur mit einem nicht interaktiven Zero-Knowledge Beweis mit den Techniken aus [21]. Er wählt eine zufällige Teilmenge \(S'\) von n aus den anderen Benutzern aus. öffentliche Schlüssel Pi, sein eigenes Schlüsselpaar (x, P) und Schlüsselbild I. Sei \(0 \leq s \leq n\) der geheime Index des Unterzeichners in S (so dass sein öffentlicher Schlüssel Ps ist). Er wählt ein zufälliges {qi | ich = 0 . . . n} und {wi | ich = 0 . . . n, i ̸= s} aus (1 . . . l) und wendet die an folgende Transformationen: Li = ( QiG, wenn i = s QiG + WiPi, wenn i ̸= s Ri = ( qiHp(Pi), wenn i = s qiHp(Pi) + wiI, wenn i ̸= s Der nächste Schritt besteht darin, die nicht interaktive Herausforderung zu meistern: c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) Schließlich berechnet der Unterzeichner die Antwort: ci =    Wi, wenn i ̸= s c − nP i=0 ci mod l, wenn i = s ri = ( Qi, wenn i ̸= s qs −csx mod l, wenn i = s Die resultierende Signatur ist \(\sigma\) = (I, c1, . . . , cn, r1, . . . , rn). 9 18 Dieser gesamte Bereich ist kryptonotenunabhängig und beschreibt lediglich den Ringsignaturalgorithmus ohne Verweis auf Währungen. Ich vermute, dass ein Teil der Notation mit dem Rest des Artikels übereinstimmt. allerdings. Beispielsweise ist x der in GEN gewählte „zufällige“ geheime Schlüssel, der den öffentlichen Schlüssel P ergibt und öffentliches Schlüsselbild I. Dieser Wert von x ist der Wert, den Bob in Teil 6, Seite 8, berechnet. Das ist also so Ich fange an, einige der Verwirrungen aus der vorherigen Beschreibung aufzuklären. Das ist irgendwie cool; Es wird kein Geld von Alices öffentlicher Adresse an Bobs öffentliche Adresse überwiesen Adresse.“ Es wird von Einmaladresse zu Einmaladresse übertragen. In gewisser Weise sehen wir also hier, wie das Zeug funktioniert. Wenn Alex ein paar Kryptonoten hat, weil jemand Wenn Sie sie ihr geschickt haben, bedeutet dies, dass sie über die privaten Schlüssel verfügt, die sie benötigt, um sie an Bob zu senden. Sie nutzt ein Diffie-Hellman-Austausch, der Bobs öffentliche Informationen nutzt, um eine neue einmalige Adresse zu generieren und die Kryptonoten werden an diese Adresse übertragen. Nun wurde ein (vermutlich sicherer) DH-Austausch verwendet, um die neue Einmaladresse zu generieren an den Alex ihre CN geschickt hat, ist Bob der Einzige mit den privaten Schlüsseln, die zum Wiederholen des Befehls erforderlich sind oben. Jetzt ist Bob also Alex. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation Die Summierung sollte über j und nicht über i indiziert werden. Jedes c_i ist zufälliger Müll (da w_i zufällig ist) bis auf den c_i Arschist mit dem eigentlichen Schlüssel verknüpft, der in dieser Signatur enthalten ist. Der Wert von c ist ein hash der vorherigen Informationen. Ich denke jedoch, dass dies einen Tippfehler enthält, der schlimmer ist als die Wiederverwendung des Index „i“, denn c_s scheint implizit und nicht explizit definiert werden. Wenn wir diese Gleichung tatsächlich glauben, dann stellen wir fest, dass c_s = (1/2)c - (1/2) sum_i neq s c_i. Das heißt, ein hash minus eine ganze Reihe von Zufallszahlen. Wenn diese Summation hingegen lauten soll: „c_s = (c – sum_j neq s c_j) mod l“, dann nehmen wir die hash unserer vorherigen Informationen und generieren eine Reihe von Zufallszahlen. Subtrahieren Sie alle diese Zufallszahlen von hash, und das ergibt c_s. Das scheint so zu sein was meiner Intuition nach passieren „sollte“ und entspricht dem Verifizierungsschritt auf Seite 10. Aber Intuition ist keine Mathematik. Ich werde näher darauf eingehen. Das Gleiche wie zuvor; All dies wird zufälliger Müll sein, mit Ausnahme desjenigen, der mit dem tatsächlichen verbunden ist Öffentlicher Schlüssel des Unterzeichners x. Allerdings ist dies dieses Mal eher das, was ich von der Struktur erwarten würde: r_i ist zufällig für i!=s und r_s wird nur durch das geheime x und die s-indizierten Werte von bestimmt q_i und c_i.

VER: Der Verifizierer prüft die Signatur, indem er die inversen Transformationen anwendet: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI Abschließend prüft der Verifizierer, ob nP i=0 ci ?= Hs(m, L′ 0, . . . , L′ n, R′ 0, . . . , R′ n) mod l Wenn diese Gleichheit korrekt ist, führt der Verifizierer den Algorithmus LNK aus. Andernfalls lehnt der Prüfer ab die Unterschrift. LNK: Der Verifizierer prüft, ob I in früheren Signaturen verwendet wurde (diese Werte werden im gespeichert Satz I). Bei Mehrfachnutzungen handelt es sich um zwei Signaturen, die unter demselben geheimen Schlüssel erstellt wurden. Die Bedeutung des Protokolls: Durch die Anwendung von L-Transformationen beweist der Unterzeichner, dass er es weiß so x, dass mindestens ein Pi = xG. Um diesen Beweis nicht wiederholbar zu machen, führen wir das Schlüsselbild ein als I = xHp(P). Der Unterzeichner verwendet dieselben Koeffizienten (ri, ci), um fast dieselbe Aussage zu beweisen: er kennt solche x, dass mindestens ein \(H_p(P_i) = I \cdot x^{-1}\). Wenn die Abbildung \(x \to I\) eine Injektion ist: 1. Niemand kann den öffentlichen Schlüssel aus dem Schlüsselbild wiederherstellen und den Unterzeichner identifizieren; 2. Der Unterzeichner kann nicht zwei Signaturen mit unterschiedlichen Ien und demselben x erstellen. Eine vollständige Sicherheitsanalyse finden Sie in Anhang A. 4.5 Standard-CryptoNote-Transaktion Durch die Kombination beider Methoden (nicht verknüpfbare öffentliche Schlüssel und nicht nachvollziehbare Ringsignatur) erreicht Bob Neues Maß an Privatsphäre im Vergleich zum ursprünglichen Bitcoin-Schema. Es verlangt von ihm lediglich das Lagern einen privaten Schlüssel (a, b) und veröffentlichen (A, B), um mit dem Empfangen und Senden anonymer Transaktionen zu beginnen. Bei der Validierung jeder Transaktion führt Bob zusätzlich nur zwei elliptische Kurvenmultiplikationen und eine Addition pro Ausgabe durch, um zu prüfen, ob eine Transaktion ihm gehört. Für jeden Ausgabe Bob stellt ein einmaliges Schlüsselpaar (pi, Pi) wieder her und speichert es in seiner Brieftasche. Es können beliebige Eingaben erfolgen nachweislich nur dann denselben Eigentümer, wenn sie in einer einzigen Transaktion auftauchen. In Tatsächlich ist diese Beziehung aufgrund der einmaligen Ringsignatur viel schwieriger herzustellen. Mit einer Ringsignatur kann Bob jede Eingabe effektiv vor der einer anderen Person verbergen; alles möglich Es ist ebenso wahrscheinlich, dass Geld ausgegeben wird, selbst der Vorbesitzer (Alice) hat nicht mehr Informationen als jeder Beobachter. Bei der Unterzeichnung seiner Transaktion gibt Bob n Auslandsausgänge mit dem gleichen Betrag wie er an Ausgabe und mischt sie alle ohne Beteiligung anderer Benutzer. Bob selbst (sowie (jemand anderes) weiß nicht, ob eine dieser Zahlungen ausgegeben wurde: Es kann ein Output verwendet werden in Tausenden von Unterschriften als Unklarheitsfaktor und nie als Versteckziel. Das Doppelte Die Ausgabenprüfung erfolgt in der LNK-Phase bei der Prüfung anhand des Satzes verwendeter Schlüsselbilder. Bob kann den Grad der Mehrdeutigkeit selbst wählen: n = 1 bedeutet, dass die Wahrscheinlichkeit, die er hat Die ausgegebene Ausgabe beträgt 50 % Wahrscheinlichkeit, n = 99 ergibt 1 %. Die Größe der resultierenden Signatur nimmt zu linear wie O(n+1), daher kostet die verbesserte Anonymität Bob zusätzliche Transaktionsgebühren. Er kann es auch Setzen Sie n = 0 und sorgen Sie dafür, dass seine Ringsignatur nur aus einem Element besteht. Dies geschieht jedoch sofort entlarven ihn als Spender. 10 VER: Der Verifizierer prüft die Signatur, indem er die inversen Transformationen anwendet: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI Abschließend prüft der Verifizierer, ob nP i=0 ci ?= Hs(m, L′ 0, . . . , L′ n, R′ 0, . . . , R′ n) mod l Wenn diese Gleichheit korrekt ist, führt der Verifizierer den Algorithmus LNK aus. Andernfalls lehnt der Prüfer ab die Unterschrift. LNK: Der Verifizierer prüft, ob I in früheren Signaturen verwendet wurde (diese Werte werden im gespeichert Satz I). Bei Mehrfachnutzungen handelt es sich um zwei Signaturen, die unter demselben geheimen Schlüssel erstellt wurden. Die Bedeutung des Protokolls: Durch die Anwendung von L-Transformationen beweist der Unterzeichner, dass er es weiß so x, dass mindestens ein Pi = xG. Um diesen Beweis nicht wiederholbar zu machen, führen wir das Schlüsselbild ein als I = xHp(P). Der Unterzeichner verwendet dieselben Koeffizienten (ri, ci), um fast dieselbe Aussage zu beweisen: er kennt solche x, dass mindestens ein \(H_p(P_i) = I \cdot x^{-1}\). Wenn die Abbildung \(x \to I\) eine Injektion ist: 1. Niemand kann den öffentlichen Schlüssel aus dem Schlüsselbild wiederherstellen und den Unterzeichner identifizieren. 2. Der Unterzeichner kann nicht zwei Signaturen mit unterschiedlichen Ien und demselben x erstellen. Eine vollständige Sicherheitsanalyse finden Sie in Anhang A. 4.5 Standard-CryptoNote-Transaktion Durch die Kombination beider Methoden (nicht verknüpfbare öffentliche Schlüssel und nicht nachvollziehbare Ringsignatur) erreicht Bob Neues Maß an Privatsphäre im Vergleich zum ursprünglichen Bitcoin-Schema. Es verlangt von ihm lediglich das Lagern einen privaten Schlüssel (a, b) und veröffentlichen (A, B), um mit dem Empfangen und Senden anonymer Transaktionen zu beginnen. Bei der Validierung jeder Transaktion führt Bob zusätzlich nur zwei elliptische Kurvenmultiplikationen und eine Addition pro Ausgabe durch, um zu prüfen, ob eine Transaktion ihm gehört. Für jeden Ausgabe Bob stellt ein einmaliges Schlüsselpaar (pi, Pi) und st wieder herEr steckt es in seine Brieftasche. Es können beliebige Eingaben erfolgen nachweislich nur dann denselben Eigentümer, wenn sie in einer einzigen Transaktion auftauchen. In Tatsächlich ist diese Beziehung aufgrund der einmaligen Ringsignatur viel schwieriger herzustellen. Mit einer Ringsignatur kann Bob jede Eingabe effektiv vor der einer anderen Person verbergen; alles möglich Es ist ebenso wahrscheinlich, dass Geld ausgegeben wird, selbst der Vorbesitzer (Alice) hat nicht mehr Informationen als jeder Beobachter. Bei der Unterzeichnung seiner Transaktion gibt Bob n Auslandsausgänge mit dem gleichen Betrag wie er an Ausgabe und mischt sie alle ohne Beteiligung anderer Benutzer. Bob selbst (sowie (jemand anderes) weiß nicht, ob eine dieser Zahlungen ausgegeben wurde: Es kann ein Output verwendet werden in Tausenden von Unterschriften als Unklarheitsfaktor und nie als Versteckziel. Das Doppelte Die Ausgabenprüfung erfolgt in der LNK-Phase bei der Prüfung anhand des Satzes verwendeter Schlüsselbilder. Bob kann den Grad der Mehrdeutigkeit selbst wählen: n = 1 bedeutet, dass die Wahrscheinlichkeit, die er hat Die ausgegebene Ausgabe beträgt 50 % Wahrscheinlichkeit, n = 99 ergibt 1 %. Die Größe der resultierenden Signatur nimmt zu linear wie O(n+1), daher kostet die verbesserte Anonymität Bob zusätzliche Transaktionsgebühren. Er kann es auch Setzen Sie n = 0 und sorgen Sie dafür, dass seine Ringsignatur nur aus einem Element besteht. Dies geschieht jedoch sofort entlarven ihn als Spender. 10 19 Zu diesem Zeitpunkt bin ich furchtbar verwirrt. Alex erhält eine Nachricht M mit Signatur (I,c_1, ..., c_n, r_1, ..., r_n) und Liste der öffentlichen Tasten S. und sie führt VER aus. Dadurch werden L_i‘ und R_i‘ berechnet. Dies bestätigt, dass c_s = c - sum_i neq s c_i auf der vorherigen Seite ist. Zuerst war ich SEHR (ha) verwirrt. Jeder kann L_i‘ und R_i‘ berechnen. In der Tat, jeder r_i und c_i wurden in der Signatur veröffentlicht Sigma zusammen mit dem Wert für I. Die Menge S = P_i aller öffentlichen Schlüssel wurde ebenfalls veröffentlicht. Also jeder, der Sigma und das Set gesehen hat Schlüssel S = P_i erhalten die gleichen Werte für L_i’ und R_i’ und überprüfen daher die Signatur. Aber dann fiel mir ein, dass es in diesem Abschnitt lediglich um die Beschreibung eines Signaturalgorithmus und nicht um eine „Prüfung“ geht Wenn es unterschrieben ist, prüfen Sie, ob es an mich gesendet wurde, und wenn ja, geben Sie das Geld aus. Das ist EINFACH das charakteristischer Teil des Spiels. Ich bin daran interessiert, Anhang A zu lesen, wenn ich endlich dort ankomme. Ich würde gerne einen vollständigen Operation-by-Operation-Vergleich von Cryptonote mit Bitcoin sehen. Auch Strom/Nachhaltigkeit. Welche Teile der Algorithmen stellen hier „Eingabe“ dar? Ich glaube, dass die Transaktionseingabe ein Betrag und eine Reihe von UTXOs ist, deren Summe einen größeren Betrag ergibt als der Betrag. Das ist unklar. „Ziel des Verstecks?“ Ich habe jetzt ein paar Minuten darüber nachgedacht und es ist mir immer noch nicht gelungen Die unklarste Vorstellung davon, was es bedeuten könnte. Ein Double-Spend-Angriff kann nur durch Manipulation des vermeintlichen verwendeten Schlüssels eines Knotens ausgeführt werden Bildersatz \(I\). „Mehrdeutigkeitsgrad“ = n, aber die Gesamtzahl der in der Transaktion enthaltenen öffentlichen Schlüssel beträgt n+1. Das heißt, der Grad der Unklarheit wäre: „Wie viele ANDERE Personen möchten Sie haben?“ die Menge?" Die Antwort wird wahrscheinlich standardmäßig „so viele wie möglich“ lauten.

VER: Der Verifizierer prüft die Signatur, indem er die inversen Transformationen anwendet: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI Abschließend prüft der Verifizierer, ob nP i=0 ci ?= Hs(m, L′ 0, . . . , L′ n, R′ 0, . . . , R′ n) mod l Wenn diese Gleichheit korrekt ist, führt der Verifizierer den Algorithmus LNK aus. Andernfalls lehnt der Prüfer ab die Unterschrift. LNK: Der Verifizierer prüft, ob I in früheren Signaturen verwendet wurde (diese Werte werden im gespeichert Satz I). Bei Mehrfachnutzungen handelt es sich um zwei Signaturen, die unter demselben geheimen Schlüssel erstellt wurden. Die Bedeutung des Protokolls: Durch die Anwendung von L-Transformationen beweist der Unterzeichner, dass er es weiß so x, dass mindestens ein Pi = xG. Um diesen Beweis nicht wiederholbar zu machen, führen wir das Schlüsselbild ein als I = xHp(P). Der Unterzeichner verwendet dieselben Koeffizienten (ri, ci), um fast dieselbe Aussage zu beweisen: er kennt solche x, dass mindestens ein \(H_p(P_i) = I \cdot x^{-1}\). Wenn die Abbildung \(x \to I\) eine Injektion ist: 1. Niemand kann den öffentlichen Schlüssel aus dem Schlüsselbild wiederherstellen und den Unterzeichner identifizieren. 2. Der Unterzeichner kann nicht zwei Signaturen mit unterschiedlichen Ien und demselben x erstellen. Eine vollständige Sicherheitsanalyse finden Sie in Anhang A. 4.5 Standard-CryptoNote-Transaktion Durch die Kombination beider Methoden (nicht verknüpfbare öffentliche Schlüssel und nicht nachvollziehbare Ringsignatur) erreicht Bob Neues Maß an Privatsphäre im Vergleich zum ursprünglichen Bitcoin-Schema. Es verlangt von ihm lediglich das Lagern einen privaten Schlüssel (a, b) und veröffentlichen (A, B), um mit dem Empfangen und Senden anonymer Transaktionen zu beginnen. Bei der Validierung jeder Transaktion führt Bob zusätzlich nur zwei elliptische Kurvenmultiplikationen und eine Addition pro Ausgabe durch, um zu prüfen, ob eine Transaktion ihm gehört. Für jeden Ausgabe Bob stellt ein einmaliges Schlüsselpaar (pi, Pi) wieder her und speichert es in seiner Brieftasche. Es können beliebige Eingaben erfolgen nachweislich nur dann denselben Eigentümer, wenn sie in einer einzigen Transaktion auftauchen. In Tatsächlich ist diese Beziehung aufgrund der einmaligen Ringsignatur viel schwieriger herzustellen. Mit einer Ringsignatur kann Bob jede Eingabe effektiv vor der einer anderen Person verbergen; alles möglich Es ist ebenso wahrscheinlich, dass Geld ausgegeben wird, selbst der Vorbesitzer (Alice) hat nicht mehr Informationen als jeder Beobachter. Bei der Unterzeichnung seiner Transaktion gibt Bob n Auslandsausgänge mit dem gleichen Betrag wie er an Ausgabe und mischt sie alle ohne Beteiligung anderer Benutzer. Bob selbst (sowie (jemand anderes) weiß nicht, ob eine dieser Zahlungen ausgegeben wurde: Es kann ein Output verwendet werden in Tausenden von Unterschriften als Unklarheitsfaktor und nie als Versteckziel. Das Doppelte Die Ausgabenprüfung erfolgt in der LNK-Phase bei der Prüfung anhand des Satzes verwendeter Schlüsselbilder. Bob kann den Grad der Mehrdeutigkeit selbst wählen: n = 1 bedeutet, dass die Wahrscheinlichkeit, die er hat Die ausgegebene Ausgabe beträgt 50 % Wahrscheinlichkeit, n = 99 ergibt 1 %. Die Größe der resultierenden Signatur nimmt zu linear wie O(n+1), daher kostet die verbesserte Anonymität Bob zusätzliche Transaktionsgebühren. Er kann es auch Setzen Sie n = 0 und sorgen Sie dafür, dass seine Ringsignatur nur aus einem Element besteht. Dies geschieht jedoch sofort entlarven ihn als Spender. 10 VER: Der Verifizierer prüft die Signatur, indem er die inversen Transformationen anwendet: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI Abschließend prüft der Verifizierer, ob nP i=0 ci ?= Hs(m, L′ 0, . . . , L′ n, R′ 0, . . . , R′ n) mod l Wenn diese Gleichheit korrekt ist, führt der Verifizierer den Algorithmus LNK aus. Andernfalls lehnt der Prüfer ab die Unterschrift. LNK: Der Verifizierer prüft, ob I in früheren Signaturen verwendet wurde (diese Werte werden im gespeichert Satz I). Bei Mehrfachnutzungen handelt es sich um zwei Signaturen, die unter demselben geheimen Schlüssel erstellt wurden. Die Bedeutung des Protokolls: Durch die Anwendung von L-Transformationen beweist der Unterzeichner, dass er es weiß so x, dass mindestens ein Pi = xG. Um diesen Beweis nicht wiederholbar zu machen, führen wir das Schlüsselbild ein als I = xHp(P). Der Unterzeichner verwendet dieselben Koeffizienten (ri, ci), um fast dieselbe Aussage zu beweisen: er kennt solche x, dass mindestens ein \(H_p(P_i) = I \cdot x^{-1}\). Wenn die Abbildung \(x \to I\) eine Injektion ist: 1. Niemand kann den öffentlichen Schlüssel aus dem Schlüsselbild wiederherstellen und den Unterzeichner identifizieren. 2. Der Unterzeichner kann nicht zwei Signaturen mit unterschiedlichen Ien und demselben x erstellen. Eine vollständige Sicherheitsanalyse finden Sie in Anhang A. 4.5 Standard-CryptoNote-Transaktion Durch die Kombination beider Methoden (nicht verknüpfbare öffentliche Schlüssel und nicht nachvollziehbare Ringsignatur) erreicht Bob Neues Maß an Privatsphäre im Vergleich zum ursprünglichen Bitcoin-Schema. Es verlangt von ihm lediglich das Lagern einen privaten Schlüssel (a, b) und veröffentlichen (A, B), um mit dem Empfangen und Senden anonymer Transaktionen zu beginnen. Bei der Validierung jeder Transaktion führt Bob zusätzlich nur zwei elliptische Kurvenmultiplikationen und eine Addition pro Ausgabe durch, um zu prüfen, ob eine Transaktion ihm gehört. Für jeden Ausgabe Bob stellt ein einmaliges Schlüsselpaar (pi, Pi) und st wieder herEr steckt es in seine Brieftasche. Es können beliebige Eingaben erfolgen nachweislich nur dann denselben Eigentümer, wenn sie in einer einzigen Transaktion auftauchen. In Tatsächlich ist diese Beziehung aufgrund der einmaligen Ringsignatur viel schwieriger herzustellen. Mit einer Ringsignatur kann Bob jede Eingabe effektiv vor der einer anderen Person verbergen; alles möglich Es ist ebenso wahrscheinlich, dass Geld ausgegeben wird, selbst der Vorbesitzer (Alice) hat nicht mehr Informationen als jeder Beobachter. Bei der Unterzeichnung seiner Transaktion gibt Bob n Auslandsausgänge mit dem gleichen Betrag wie er an Ausgabe und mischt sie alle ohne Beteiligung anderer Benutzer. Bob selbst (sowie (jemand anderes) weiß nicht, ob eine dieser Zahlungen ausgegeben wurde: Es kann ein Output verwendet werden in Tausenden von Unterschriften als Unklarheitsfaktor und nie als Versteckziel. Das Doppelte Die Ausgabenprüfung erfolgt in der LNK-Phase bei der Prüfung anhand des Satzes verwendeter Schlüsselbilder. Bob kann den Grad der Mehrdeutigkeit selbst wählen: n = 1 bedeutet, dass die Wahrscheinlichkeit, die er hat Die ausgegebene Ausgabe beträgt 50 % Wahrscheinlichkeit, n = 99 ergibt 1 %. Die Größe der resultierenden Signatur nimmt zu linear wie O(n+1), daher kostet die verbesserte Anonymität Bob zusätzliche Transaktionsgebühren. Er kann es auch Setzen Sie n = 0 und sorgen Sie dafür, dass seine Ringsignatur nur aus einem Element besteht. Dies geschieht jedoch sofort entlarven ihn als Spender. 10 20 Das ist interessant; Zuvor haben wir einem Empfänger, Bob, die Möglichkeit gegeben, alle EINGÄNGE zu tätigen Transaktionen können nicht aufgehoben werden, entweder durch deterministische Auswahl der Hälfte seiner privaten Schlüssel oder durch die Hälfte seiner privaten Schlüssel als öffentlich veröffentlichen. Dabei handelt es sich um eine Art No-Go-Back-Politik. Hier sehen wir Eine Möglichkeit eines Absenders, Alex, eine einzelne ausgehende Transaktion als verknüpfbar auszuwählen, aber tatsächlich diese verrät dem gesamten Netzwerk, dass Alex der Absender ist. Dabei handelt es sich NICHT um eine No-going-back-Politik. Dies geschieht von Transaktion zu Transaktion. Gibt es eine dritte Richtlinie? Kann ein Empfänger, Bob, eine eindeutige Zahlungs-ID für Alex generieren? ändert sich nie, vielleicht mithilfe eines Diffie-Hellman-Austauschs? Wenn jemand diese Zahlung einbezieht Der Ausweis, der irgendwo in ihrer Transaktion an Bobs Adresse gebündelt war, muss von Alex stammen. Auf diese Weise muss sich Alex nicht dem gesamten Netzwerk offenbaren, indem sie sich für die Verlinkung einer bestimmten Person entscheidet Transaktion, kann sich aber dennoch gegenüber der Person, an die sie ihr Geld sendet, identifizieren. Ist das nicht das, was Poloniex macht?

Transaktion Tx-Eingang Ausgabe0 . . . Ausgabei . . . Ausgaben Schlüsselbild Unterschriften Ringsignatur Zielschlüssel Ausgang1 Zielschlüssel Ausgaben Auslandsgeschäfte Ausgabe des Absenders Zielschlüssel Einmaliges Schlüsselpaar Einmalig privater Schlüssel I = xHp(P) P, x Abb. 7. Generierung einer Ringsignatur in einer Standardtransaktion. 5 Egalitärer Arbeitsnachweis In diesem Abschnitt schlagen wir den neuen proof-of-work-Algorithmus vor und begründen ihn. Unser oberstes Ziel besteht darin, die Lücke zwischen CPU- (Mehrheit) und GPU/FPGA/ASIC-Minern (Minderheit) zu schließen. Es ist angemessen, dass einige Benutzer einen gewissen Vorteil gegenüber anderen haben können, aber ihre Investitionen sollte mindestens linear mit der Leistung wachsen. Im Allgemeinen handelt es sich um die Herstellung von Spezialgeräten muss möglichst wenig profitabel sein. 5.1 Verwandte Werke Das ursprüngliche Protokoll Bitcoin proof-of-work verwendet die CPU-intensive Preisfunktion SHA-256. Es besteht hauptsächlich aus grundlegenden logischen Operatoren und basiert ausschließlich auf der Rechengeschwindigkeit von Prozessor und eignet sich daher hervorragend für die Multicore-/Conveyer-Implementierung. Allerdings sind moderne Computer nicht nur durch die Anzahl der Operationen pro Sekunde begrenzt, sondern auch nach Speichergröße. Während einige Prozessoren wesentlich schneller sein können als andere [8], Es ist weniger wahrscheinlich, dass die Speichergröße zwischen den Computern variiert. Speichergebundene Preisfunktionen wurden erstmals von Abadi et al. eingeführt und als definiert „Funktionen, deren Rechenzeit von der Zeit dominiert wird, die für den Zugriff auf den Speicher aufgewendet wird“ [15]. Die Hauptidee besteht darin, einen Algorithmus zu konstruieren, der einen großen Datenblock („Scratchpad“) zuweist. innerhalb des Speichers, auf den relativ langsam zugegriffen werden kann (z. B. RAM) und „Zugriff auf eine „unvorhersehbare Abfolge von Orten“ darin enthalten. Ein Block sollte groß genug sein, um das Einkochen zu ermöglichen Die Daten sind vorteilhafter, als sie bei jedem Zugriff neu zu berechnen. Der Algorithmus sollte auch Verhindern Sie interne Parallelität, daher sollten N gleichzeitige Threads N-mal mehr Speicher benötigen auf einmal. Dwork et al. [22] untersuchten und formalisierten diesen Ansatz und schlugen einen anderen vor Variante der Preisfunktion: „Mbound“. Ein weiteres Werk gehört F. Coelho [20], der 11 Transaktion Tx-Eingang Ausgabe0 . . . Ausgabei . . . Ausgaben Schlüsselbild Unterschriften Ringsignatur Zielschlüssel Ausgang1 Zielschlüssel Ausgaben Auslandsgeschäfte Ausgabe des Absenders Zielschlüssel Einmaliges Schlüsselpaar Einmalig privater Schlüssel I = xHp(P) P, x Abb. 7. Generierung einer Ringsignatur in einer Standardtransaktion. 5 Egalitärer Arbeitsnachweis In diesem Abschnitt schlagen wir den neuen proof-of-work-Algorithmus vor und begründen ihn. Unser oberstes Ziel besteht darin, die Lücke zwischen CPU- (Mehrheit) und GPU/FPGA/ASIC-Minern (Minderheit) zu schließen. Es ist angemessen, dass einige Benutzer einen gewissen Vorteil gegenüber anderen haben können, aber ihre Investitionen sollte mindestens linear mit der Leistung wachsen. Im Allgemeinen handelt es sich um die Herstellung von Spezialgeräten muss möglichst wenig profitabel sein. 5.1 Verwandte Werke Das ursprüngliche Protokoll Bitcoin proof-of-work verwendet die CPU-intensive Preisfunktion SHA-256. Es besteht hauptsächlich aus grundlegenden logischen Operatoren und basiert ausschließlich auf der Rechengeschwindigkeit von Prozessor und eignet sich daher hervorragend für die Multicore-/Conveyer-Implementierung. Allerdings sind moderne Computer nicht nur durch die Anzahl der Operationen pro Sekunde begrenzt, sondern auch nach Speichergröße. Während einige Prozessoren wesentlich schneller sein können als andere [8], Es ist weniger wahrscheinlich, dass die Speichergröße zwischen den Computern variiert. Speichergebundene Preisfunktionen wurden erstmals von Abadi et al. eingeführt und als definiert „Funktionen, deren Rechenzeit von der Zeit dominiert wird, die für den Zugriff auf den Speicher aufgewendet wird“ [15]. Die Hauptidee besteht darin, einen Algorithmus zu konstruieren, der einen großen Datenblock („Scratchpad“) zuweist. innerhalb des Speichers, auf den relativ langsam zugegriffen werden kann (z. B. RAM) und „Zugriff auf eine „unvorhersehbare Abfolge von Orten“ darin enthalten. Ein Block sollte groß genug sein, um das Einkochen zu ermöglichen Die Daten sind vorteilhafter, als sie bei jedem Zugriff neu zu berechnen. Der Algorithmus sollte auch Verhindern Sie interne Parallelität, daher sollten N gleichzeitige Threads N-mal mehr Speicher benötigen auf einmal. Dwork et al [22] untersuchten und formalisierten diesen Ansatz und schlugen einen anderen vor Variante der Preisfunktion: „Mbound“. Ein weiteres Werk gehört F. Coelho [20], der 11 21 Dies sind angeblich unsere UTXO: Beträge und Zielschlüssel. Wenn Alex derjenige ist, der diese Standardtransaktion erstellt und an Bob sendet, dann verfügt Alex auch über die privaten Schlüssel zu jedem von diesen. Mir gefällt dieses Diagramm sehr gut, weil es einige frühere Fragen beantwortet. Ein Txn-Eingang besteht aus einer Reihe von Txn-Ausgängen und einem key Bild. Anschließend wird es mit einer Ringsignatur signiert, inklusive aller der privaten Schlüssel, die Alex für alle in den Deal einbezogenen Auslandstransaktionen besitzt. Die Die Txn-Ausgabe besteht aus einem Betrag und einem Zielschlüssel. Der Empfänger der Transaktion kann, Generieren Sie nach Belieben ihren einmaligen privaten Schlüssel, wie weiter oben in diesem Artikel beschrieben, um ihn auszugeben das Geld. Es wird eine Freude sein herauszufinden, inwieweit dies mit dem tatsächlichen Code übereinstimmt ... Nein, Nic van Saberhagen beschreibt nur lose einige Eigenschaften eines Proof-of-Work-Algorithmus. ohne diesen Algorithmus tatsächlich zu beschreiben. Der CryptoNight-Algorithmus selbst ERFORDERT eine gründliche Analyse. Als ich das las, stotterte ich. Sollten die Investitionen zumindest linear mit der Macht wachsen oder sollten? Wachsen die Investitionen höchstens linear mit der Leistung? Und dann wurde mir klar; Als Bergmann oder Investor frage ich mich normalerweise: „Wie viel Strom kann ich bekommen?“ für eine Investition?“ nicht „Wie viel Investition ist für eine feste Strommenge erforderlich?“ Natürlich bezeichne ich die Investition mit I und die Macht mit P. Wenn I(P) die Investition als Funktion der Macht ist und P(I) die Leistung als Funktion der Investition ist, werden sie das Gegenteil voneinander sein (wo auch immer). Es können Umkehrungen existieren). Und wenn I(P) schneller als linear ist, ist P(I) langsamer als linear. Daher, Es wird eine reduzierte Rendite für Anleger geben. Das heißt, was der Autor hier sagt ist: „Klar, je mehr man investiert, desto mehr bekommt man.“ Macht. Aber wir sollten versuchen, daraus eine Sache mit reduzierten Renditen zu machen.“ Die CPU-Investitionen werden letztendlich sublinear begrenzt; Die Frage ist, ob die Autoren haben einen POW-Algorithmus entwickelt, der die ASICs dazu zwingt, dies ebenfalls zu tun. Sollte eine hypothetische „zukünftige Währung“ immer mit den langsamsten/begrenztesten Ressourcen abbauen? Das Papier von Abadi et al. (das einige Google- und Microsoft-Ingenieure als Autoren hat) lautet: im Wesentlichen unter Ausnutzung der Tatsache, dass die Speichergröße in den letzten Jahren viel kleiner geworden ist Die Unterschiede zwischen den Maschinen sind größer als die Prozessorgeschwindigkeit und das Verhältnis von Investition zu Leistung ist mehr als linear. In einigen Jahren muss dies möglicherweise neu bewertet werden! Alles ist ein Wettrüsten... Das Konstruieren einer hash-Funktion ist schwierig; Das Konstruieren einer hash-Funktion, die diese Einschränkungen erfüllt, scheint schwieriger zu sein. Dieses Papier scheint keine Erklärung für das Tatsächliche zu haben hashing-Algorithmus CryptoNight. Ich denke, es handelt sich um eine speicherintensive Implementierung von SHA-3 in Forenbeiträgen, aber ich habe keine Ahnung ... und das ist der Punkt. Es muss erklärt werden.

schlug die effektivste Lösung vor: „Hokkaido“. Nach unserem Kenntnisstand ist dies die letzte Arbeit, die auf der Idee der pseudozufälligen Suche in einem großen Array basiert der von C. Percival als „scrypt“ bekannte Algorithmus [32]. Im Gegensatz zu den vorherigen Funktionen konzentriert es sich auf Schlüsselableitung und nicht proof-of-work Systeme. Trotz dieser Tatsache kann scrypt unseren Zweck erfüllen: Es eignet sich gut als Preisfunktion beim partiellen hash-Konvertierungsproblem wie SHA-256 in Bitcoin. Mittlerweile wurde Scrypt bereits in Litecoin, [14] und einigen anderen Bitcoin-Forks angewendet. Allerdings ist seine Implementierung nicht wirklich speichergebunden: Das Verhältnis „Speicherzugriffszeit / insgesamt“. Zeit“ ist nicht groß genug, da jede Instanz nur 128 KB verwendet. Dies ermöglicht GPU-Miner ist ungefähr zehnmal effektiver und lässt weiterhin die Möglichkeit, relativ viel zu schaffen billige, aber hocheffiziente Bergbaugeräte. Darüber hinaus ermöglicht die Verschlüsselungskonstruktion selbst einen linearen Kompromiss zwischen Speichergröße und CPU-Geschwindigkeit aufgrund der Tatsache, dass jeder Block im Scratchpad nur vom vorherigen abgeleitet ist. Sie können beispielsweise jeden zweiten Block speichern und die anderen nur verzögert, also nur, neu berechnen wenn es notwendig wird. Es wird angenommen, dass die Pseudozufallsindizes gleichmäßig verteilt sind. Daher beträgt der erwartete Wert der Neuberechnungen der zusätzlichen Blöcke 1 \(2 \cdot N\), wobei N die Zahl ist von Iterationen. Die Gesamtrechenzeit erhöht sich weniger als um die Hälfte, weil es auch solche gibt Zeitunabhängige (zeitkonstante) Vorgänge wie das Vorbereiten des Notizblocks und das Weitermachen jede Iteration. Das Einsparen von 2/3 des Speichers kostet 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N zusätzliche Neuberechnungen; 9/10 ergibt 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5N. Es ist leicht zu zeigen, dass die Speicherung von nur 1 s aller Blöcke erhöht die Zeit weniger als um den Faktor s−1 2 . Dies wiederum impliziert, dass eine Maschine mit einer CPU ausgestattet ist 200-mal schneller als die modernen Chips können nur 320 Bytes des Notizblocks speichern. 5.2 Der vorgeschlagene Algorithmus Wir schlagen einen neuen speichergebundenen Algorithmus für die Preisfunktion proof-of-work vor. Es verlässt sich darauf Direktzugriff auf einen langsamen Speicher und betont die Latenzabhängigkeit. Im Gegensatz zu „jedem verschlüsseln“. Der neue Block (64 Byte lang) hängt von allen vorherigen Blöcken ab. Im Ergebnis eine Hypothese „Speichersparer“ sollte seine Rechengeschwindigkeit exponentiell steigern. Unser Algorithmus benötigt aus folgenden Gründen etwa 2 MB pro Instanz: 1. Es passt in den L3-Cache (pro Kern) moderner Prozessoren, die zum Mainstream werden sollten in ein paar Jahren; 2. Ein Megabyte interner Speicher ist für eine moderne ASIC-Pipeline eine nahezu inakzeptable Größe; 3. GPUs können Hunderte von Instanzen gleichzeitig ausführen, sie sind jedoch in anderer Hinsicht eingeschränkt: Der GDDR5-Speicher ist langsamer als der L3-Cache der CPU und zeichnet sich durch seine Bandbreite aus, nicht jedoch Direktzugriffsgeschwindigkeit. 4. Eine erhebliche Erweiterung des Scratchpads würde eine Zunahme der Iterationen erfordern, was in Umdrehung impliziert eine Gesamtzeitverlängerung. „Schwere“ Anrufe in einem vertrauenswürdigen P2P-Netzwerk können dazu führen schwerwiegende Schwachstellen, da Knoten verpflichtet sind, den proof-of-work jedes neuen Blocks zu überprüfen. Wenn ein Knoten viel Zeit für jede hash-Auswertung aufwendet, kann dies leicht der Fall sein DDoSed durch eine Flut gefälschter Objekte mit willkürlichen Arbeitsdaten (nonce Werte). 12 schlug die effektivste Lösung vor: „Hokkaido“. Nach unserem Kenntnisstand ist dies die letzte Arbeit, die auf der Idee der pseudozufälligen Suche in einem großen Array basiert der von C. Percival als „scrypt“ bekannte Algorithmus [32]. Im Gegensatz zu den vorherigen Funktionen konzentriert es sich auf Schlüsselableitung und nicht proof-of-work Systeme. Trotz dieser Tatsache kann scrypt unseren Zweck erfüllen: Es eignet sich gut als Preisfunktion beim partiellen hash-Konvertierungsproblem wie SHA-256 in Bitcoin. Mittlerweile wurde Scrypt bereits in Litecoin, [14] und einigen anderen Bitcoin-Forks angewendet. Allerdings ist seine Implementierung nicht wirklich speichergebunden: Das Verhältnis „Speicherzugriffszeit / insgesamt“. Zeit“ ist nicht groß genug, da jede Instanz nur 128 KB verwendet. Dies ermöglicht GPU-Miner ist ungefähr zehnmal effektiver und lässt weiterhin die Möglichkeit, relativ viel zu schaffen billige, aber hocheffiziente Bergbaugeräte. Darüber hinaus ermöglicht die Verschlüsselungskonstruktion selbst einen linearen Kompromiss zwischen Speichergröße und CPU-Geschwindigkeit aufgrund der Tatsache, dass jeder Block im Scratchpad nur vom vorherigen abgeleitet ist. Sie können beispielsweise jeden zweiten Block speichern und die anderen nur verzögert, also nur, neu berechnen wenn es notwendig wird. Es wird angenommen, dass die Pseudozufallsindizes gleichmäßig verteilt sind. Daher beträgt der erwartete Wert der Neuberechnungen der zusätzlichen Blöcke 1 \(2 \cdot N\), woN ist die Zahl von Iterationen. Die Gesamtrechenzeit erhöht sich weniger als um die Hälfte, weil es auch solche gibt Zeitunabhängige (zeitkonstante) Vorgänge wie das Vorbereiten des Notizblocks und das Weitermachen jede Iteration. Das Einsparen von 2/3 des Speichers kostet 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N zusätzliche Neuberechnungen; 9/10 ergibt 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5N. Es ist leicht zu zeigen, dass die Speicherung von nur 1 s aller Blöcke erhöht die Zeit weniger als um den Faktor s−1 2 . Dies wiederum impliziert, dass eine Maschine mit einer CPU ausgestattet ist 200-mal schneller als die modernen Chips können nur 320 Bytes des Notizblocks speichern. 5.2 Der vorgeschlagene Algorithmus Wir schlagen einen neuen speichergebundenen Algorithmus für die Preisfunktion proof-of-work vor. Es verlässt sich darauf Direktzugriff auf einen langsamen Speicher und betont die Latenzabhängigkeit. Im Gegensatz zu „jedem verschlüsseln“. Der neue Block (64 Byte lang) hängt von allen vorherigen Blöcken ab. Im Ergebnis eine Hypothese „Speichersparer“ sollte seine Rechengeschwindigkeit exponentiell steigern. Unser Algorithmus benötigt aus folgenden Gründen etwa 2 MB pro Instanz: 1. Es passt in den L3-Cache (pro Kern) moderner Prozessoren, die zum Mainstream werden sollten in ein paar Jahren; 2. Ein Megabyte interner Speicher ist für eine moderne ASIC-Pipeline eine nahezu inakzeptable Größe; 3. GPUs können Hunderte von Instanzen gleichzeitig ausführen, sie sind jedoch in anderer Hinsicht eingeschränkt: Der GDDR5-Speicher ist langsamer als der L3-Cache der CPU und zeichnet sich durch seine Bandbreite aus, nicht jedoch Direktzugriffsgeschwindigkeit. 4. Eine erhebliche Erweiterung des Scratchpads würde eine Zunahme der Iterationen erfordern, was in Umdrehung impliziert eine Gesamtzeitverlängerung. „Schwere“ Anrufe in einem vertrauenswürdigen P2P-Netzwerk können dazu führen schwerwiegende Schwachstellen, da Knoten verpflichtet sind, den proof-of-work jedes neuen Blocks zu überprüfen. Wenn ein Knoten viel Zeit für jede hash-Auswertung aufwendet, kann dies leicht der Fall sein DDoSed durch eine Flut gefälschter Objekte mit willkürlichen Arbeitsdaten (nonce-Werten). 12 22 Egal, es ist eine Kryptomünze? Wo ist der Algorithmus? Ich sehe nur eine Werbung. Hier wird Cryptonote, wenn sich sein PoW-Algorithmus lohnt, wirklich glänzen. Das ist es nicht wirklich SHA-256, es ist nicht wirklich verschlüsselt. Es ist neu, speichergebunden und nicht rekursiv.

6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Zielkonflikt zwischen dem Ausgleich der Kosten und dem Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch die Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Kompromiss zwischen dem Ausgleich von thEr erwirtschaftet Kosten und Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch die Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 23 Atomare Einheiten. Ich mag es. Ist das das Äquivalent von Satoshis? Wenn ja, dann bedeutet das, dass es 185 Milliarden Kryptonoten geben wird. Ich weiß, dass dies irgendwann auf ein paar Seiten optimiert werden muss, oder liegt vielleicht ein Tippfehler vor? Wenn die Basisbelohnung „alle verbleibenden Münzen“ beträgt, reicht nur ein Block aus, um alle Münzen zu erhalten. Instamin. Andererseits, wenn dies in irgendeiner Weise proportional zum sein soll Gibt es einen zeitlichen Unterschied zwischen jetzt und einem Datum, an dem die Münzproduktion endet? Das würde Sinn ergeben. Außerdem bedeuten in meiner Welt zwei Größer-als-Zeichen wie dieses „viel größer als“. Hat der Autor möglicherweise etwas anderes bedeuten? Wenn die Anpassung an den Schwierigkeitsgrad bei jedem Block erfolgt, könnte ein Angreifer über eine sehr große Farm verfügen Maschinen schalten den Bergbau in sorgfältig ausgewählten Zeitintervallen ein und aus. Dies könnte zu einer chaotischen Explosion (oder einem Absturz auf Null) des Schwierigkeitsgrads führen, wenn die Schwierigkeitsanpassungsformeln nicht angemessen gedämpft werden. Zweifellos ist die Methode von Bitcoin für schnelle Neuberechnungen ungeeignet, aber die Idee der Trägheit in diesen Systemen müssten nachgewiesen und nicht als selbstverständlich angesehen werden. Darüber hinaus Schwingungen Im Netzwerk sind Schwierigkeiten nicht unbedingt ein Problem, es sei denn, sie führen zu scheinbaren Schwankungen Angebot an Münzen - und ein sich sehr schnell ändernder Schwierigkeitsgrad könnte zu einer „Überkorrektur“ führen. Die aufgewendete Zeit, insbesondere über einen kurzen Zeitraum wie ein paar Minuten, ist proportional zur „Gesamtzeit“. Anzahl der im Netzwerk erstellten Blöcke. Die Proportionalitätskonstante selbst wird wachsen im Laufe der Zeit, vermutlich exponentiell, wenn CN abhebt. Möglicherweise ist es eine bessere Idee, einfach die Schwierigkeit anzupassen, um die „Gesamtzahl der erstellten Blöcke“ beizubehalten Netzwerk, seit der letzte Block zur Hauptkette hinzugefügt wurde“ innerhalb eines konstanten Werts oder mit begrenzte Variation oder so ähnlich. Wenn es sich um einen adaptiven Algorithmus handelt, der rechnerisch ist Wenn festgestellt werden kann, dass die Implementierung einfach ist, scheint dies das Problem zu lösen. Aber wenn wir diese Methode anwenden würden, könnte jemand mit einer großen Mining-Farm seine Farm schließen für ein paar Stunden und schalten Sie es dann wieder ein. Für die ersten paar Blöcke wird diese Farm reichen Bank. Tatsächlich würde diese Methode einen interessanten Punkt ansprechen: Bergbau wird (im Durchschnitt) zu einem Verliererspiel ohne ROI, insbesondere da immer mehr Leute auf das Netzwerk zugreifen. Wenn der Bergbau schwierig ist Ich bezweifle irgendwie, dass die Leute so viel abbauen würden wie sie derzeit tun. Oder sie halten ihre Mining-Farmen andererseits nicht rund um die Uhr am Laufen, sondern drehen sie um 6 Stunden an, 2 Stunden aus, 6 Stunden an, 2 Stunden aus oder so ähnlich. Wechseln Sie einfach zu einer anderen Münze Warten Sie ein paar Stunden, bis die Schwierigkeit nachlässt, und steigen Sie dann wieder ein, um die paar Extras zu gewinnen Rentabilitätsblöcke, wenn sich das Netzwerk anpasst. Und wissen Sie was? Das ist tatsächlich wahrscheinlich Eines der besseren Mining-Szenarien, an die ich gedacht habe ... Dies könnte kreisförmig sein, aber wenn die Blockerstellungszeit durchschnittlich etwa eine Minute beträgt, können wir das einfach tun Verwenden Sie die Anzahl der Blöcke als Proxy für die „aufgewendete Zeit“?

6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Zielkonflikt zwischen dem Ausgleich der Kosten und dem Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch die Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Kompromiss zwischen dem Ausgleich von thEr erwirtschaftet Kosten und Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch die Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 24 Okay, wir haben also einen blockchain, und jeder Block hat ZUSÄTZLICH zum bloßen Sein Zeitstempel bestellt. Dies wurde offensichtlich nur aus Gründen der Schwierigkeitsanpassung eingefügt, da dies bei Zeitstempeln der Fall ist wie gesagt sehr unzuverlässig. Dürfen wir widersprüchliche Zeitstempel in der Kette haben? Wenn Block A in der Kette vor Block B steht und finanziell alles stimmig ist, aber Block A scheint nach Block B erstellt worden zu sein? Weil es vielleicht jemand besaß ein großer Teil des Netzwerks? Ist das in Ordnung? Wahrscheinlich, weil die Finanzen nicht vermasselt sind. Okay, also ich hasse dieses willkürliche „nur 80 % der Blöcke sind für den Hauptblock blockchain legitim“ Ansatz. Es sollte verhindern, dass Lügner ihre Zeitstempel manipulieren? Aber jetzt fügt es hinzu Anreiz für alle, über ihre Zeitstempel zu lügen und einfach den Median zu wählen. Bitte definieren. Bedeutung: „Berücksichtigen Sie für diesen Block nur Transaktionen, die höhere Gebühren beinhalten.“ als p%, vorzugsweise mit Gebühren über 2p% oder so ähnlich? Was meinen sie mit Schwindel? Wenn die Transaktion mit der bisherigen Geschichte des übereinstimmt blockchain, und die Transaktion beinhaltet Gebühren, die die Bergleute zufriedenstellen, ist das nicht genug? Nun, nein, nicht unbedingt. Wenn es keine maximale Blockgröße gibt, gibt es nichts, was einen böswilligen Benutzer abhalten könnte vom einfachen Hochladen eines riesigen Transaktionsblocks auf einmal auf sich selbst, nur um langsamer zu werden das Netzwerk. Eine Kernregel für die maximale Blockgröße verhindert, dass Menschen große Mengen an Müll ablegen Daten auf dem blockchain auf einmal, nur um die Dinge zu verlangsamen. Aber eine solche Regel muss es auf jeden Fall tun Seien Sie anpassungsfähig – während der Weihnachtszeit können wir beispielsweise mit einem Anstieg des Verkehrsaufkommens rechnen Die Blockgröße wird sehr groß, und unmittelbar danach sinkt die Blockgröße wieder. Wir brauchen also entweder a) eine Art adaptive Obergrenze oder b) eine Obergrenze, die groß genug ist, dass 99 % davon Vernünftige Weihnachtsgipfel sprengen nicht die Obergrenze. Das zweite ist natürlich unmöglich Schätzung – wer weiß, ob sich eine Währung durchsetzen wird? Es ist besser, es anpassungsfähig zu machen und sich keine Sorgen zu machen darüber. Aber dann haben wir ein kontrolltheoretisches Problem: Wie kann man das adaptiv machen, ohne Anfälligkeit für Angriffe oder wilde und verrückte Schwankungen? Beachten Sie, dass eine adaptive Methode böswillige Benutzer nicht davon abhält, kleine Beträge anzuhäufen Im Laufe der Zeit entstehen auf dem blockchain Junk-Daten, die zu einer langfristigen Aufblähung führen. Das ist ein anderes Problem insgesamt und eines, mit dem Kryptonote-Münzen ernsthafte Probleme haben.

6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Zielkonflikt zwischen dem Ausgleich der Kosten und dem Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch eine Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 6 Weitere Vorteile 6.1 Sanfte Emission Die Obergrenze für die Gesamtmenge der digitalen CryptoNote-Münzen beträgt: MSupply = 264 −1 atomare Einheiten. Dies ist eine natürliche Einschränkung, die nur auf Implementierungsgrenzen und nicht auf Intuition basiert wie zum Beispiel „N Münzen sollten für jeden reichen“. Um einen reibungslosen Emissionsprozess sicherzustellen, verwenden wir die folgende Blockformel Belohnungen: BaseReward = (MSupply −A) ≫18, wobei A die Menge der zuvor generierten Münzen ist. 6.2 Einstellbare Parameter 6.2.1 Schwierigkeit CryptoNote enthält einen Targeting-Algorithmus, der die Schwierigkeit jedes Blocks ändert. Dies verringert die Reaktionszeit des Systems, wenn die Netzwerkrate stark wächst oder sinkt, Beibehaltung einer konstanten Blockrate. Die ursprüngliche Methode Bitcoin berechnet das tatsächliche Verhältnis und Zielzeitspanne zwischen den letzten 2016-Blöcken und verwendet sie als Multiplikator für den aktuellen Schwierigkeit. Offensichtlich ist dies für schnelle Neuberechnungen ungeeignet (aufgrund der großen Trägheit) und führt zu Schwingungen. Die allgemeine Idee unseres Algorithmus besteht darin, die gesamte von den Knoten und geleistete Arbeit zu summieren Teilen Sie es durch die Zeit, die sie verbracht haben. Als Maß für die Arbeit dienen die entsprechenden Schwierigkeitswerte in jedem Block. Aufgrund ungenauer und nicht vertrauenswürdiger Zeitstempel können wir den genauen Zeitpunkt jedoch nicht ermitteln Zeitintervall zwischen Blöcken. Ein Benutzer kann seinen Zeitstempel in die Zukunft und zum nächsten Zeitpunkt verschieben Die Intervalle könnten unwahrscheinlich klein oder sogar negativ sein. Vermutlich wird es nur wenige Vorfälle geben Auf diese Weise können wir einfach die Zeitstempel sortieren und die Ausreißer (d. h. 20 %) abschneiden. Die Reichweite von Der Restwert ist die Zeit, die für 80 % der entsprechenden Blöcke aufgewendet wurde. 6.2.2 Größenbeschränkungen Benutzer zahlen für die Speicherung des blockchain und sind berechtigt, über dessen Größe abzustimmen. Jeder Bergmann befasst sich mit dem Kompromiss zwischen dem Ausgleich von thEr erwirtschaftet Kosten und Gewinn aus den Gebühren und legt seine eigenen fest „Soft-Limit“ zum Erstellen von Blöcken. Auch die Kernregel für die maximale Blockgröße ist notwendig Dieser Wert sollte jedoch verhindern, dass blockchain mit gefälschten Transaktionen überflutet wird nicht fest codiert sein. Sei MN der Medianwert der letzten N Blockgrößen. Dann die „harte Grenze“ für die Größe der Aufnahmeblöcke beträgt \(2 \cdot M_N\). Es verhindert ein Aufblähen des blockchain, ermöglicht aber dennoch eine Begrenzung bei Bedarf langsam mit der Zeit wachsen. Die Transaktionsgröße muss nicht explizit begrenzt werden. Sie ist durch die Größe eines Blocks begrenzt; und wenn jemand eine riesige Transaktion mit Hunderten von Ein-/Ausgaben (oder mit (z. B. aufgrund des hohen Mehrdeutigkeitsgrads der Ringsignaturen) kann er dies tun, indem er eine entsprechende Gebühr entrichtet. 6.2.3 Strafe für Übergröße Ein Miner hat immer noch die Möglichkeit, einen Block bis zum Maximum mit seinen eigenen gebührenfreien Transaktionen zu füllen Größe 2 \(\cdot\) MB. Auch wenn nur die Mehrheit der Bergleute den Medianwert verschieben kann, gibt es dennoch einen 13 25 Wenn man die Zeit neu skaliert, sodass eine Zeiteinheit aus N Blöcken besteht, könnte die durchschnittliche Blockgröße theoretisch immer noch exponentiell proportional zu 2ˆt wachsen. Andererseits eine allgemeinere Obergrenze im nächsten Block wäre M_nf(M_n) für eine Funktion f. Welche Eigenschaften von f würden die wir wählen, um ein „angemessenes Wachstum“ der Blockgröße zu gewährleisten? Der Fortschritt von Blockgrößen (nach der Neuskalierungszeit) würden wie folgt aussehen: M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... Und das Ziel hier ist, f so zu wählen, dass diese Folge nicht schneller wächst als beispielsweise linear, oder vielleicht sogar als Log(t). Wenn f(M_n) = a für eine Konstante a ist, ist diese Sequenz natürlich eigentlich M_n aM_n aˆ2M_n aˆ3M_n ... Und die einzige Möglichkeit, dies auf höchstens lineares Wachstum zu beschränken, besteht natürlich darin, a=1 zu wählen. Das ist natürlich undurchführbar. Es lässt überhaupt kein Wachstum zu. Wenn f(M_n) hingegen eine nicht konstante Funktion ist, dann ist die Situation viel schwieriger kompliziert und kann eine elegante Lösung ermöglichen. Ich werde eine Weile darüber nachdenken. Diese Gebühr muss hoch genug sein, um die Übergrößenstrafe aus dem nächsten Abschnitt abzurechnen. Warum wird bei einem allgemeinen Benutzer davon ausgegangen, dass er männlich ist? Hä?

Möglichkeit, den blockchain aufzublähen und eine zusätzliche Belastung der Knoten zu erzeugen. Entmutigen Um böswillige Teilnehmer davon abzuhalten, große Blöcke zu erstellen, führen wir eine Straffunktion ein: NewReward = BaseReward \(\cdot\) BlkSize MN −1 2 Diese Regel wird nur angewendet, wenn BlkSize größer als die minimale freie Blockgröße ist, die erforderlich ist in der Nähe von max(10kb, \(M_N \cdot 110\%\)) liegen. Minern ist es erlaubt, Blöcke „normaler Größe“ und gerader Größe zu erstellen Übersteigen Sie es mit Gewinn, wenn die Gesamtgebühren die Strafe übersteigen. Es ist jedoch unwahrscheinlich, dass die Gebühren steigen quadratisch ungleich dem Strafwert, sodass ein Gleichgewicht herrscht. 6.3 Transaktionsskripte CryptoNote verfügt über ein sehr minimalistisches Skript-Subsystem. Ein Absender gibt einen Ausdruck Φ = an f (x1, x2, . . , xn), wobei n die Anzahl der öffentlichen Zielschlüssel {Pi}n ist i=1. Nur fünf Binärdateien Unterstützte Operatoren: min, max, sum, mul und cmp. Wenn der Empfänger diese Zahlung ausgibt, Er erzeugt \(0 \leq k \leq n\) Signaturen und übergibt sie an die Transaktionseingabe. Der Verifizierungsprozess wertet einfach Φ mit xi = 1 aus, um zu prüfen, ob eine gültige Signatur für den öffentlichen Schlüssel Pi vorhanden ist, und xi = 0. Ein Prüfer akzeptiert den Beweis, wenn Φ > 0. Trotz seiner Einfachheit deckt dieser Ansatz jeden möglichen Fall ab: • Multi-/Threshold-Signatur. Für die „M-aus-N“-Mehrfachsignatur im Bitcoin-Stil (d. h. der Empfänger sollte mindestens \(0 \leq M \leq N\) gültige Signaturen bereitstellen) Φ = x1+x2+. . .+xN \(\geq M\) (Der Übersichtlichkeit halber verwenden wir die übliche algebraische Notation). Die gewichtete Schwellenwertsignatur (einige Schlüssel können wichtiger sein als andere) könnte ausgedrückt werden als Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Und Szenario, in dem der Hauptschlüssel Φ = entspricht max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Es ist leicht zu zeigen, dass jeder anspruchsvolle Fall möglich ist werden mit diesen Operatoren ausgedrückt, d. h. sie bilden die Basis. • Passwortschutz. Der Besitz eines geheimen Passwortes steht der Kenntnis davon gleich ein privater Schlüssel, der deterministisch aus dem Passwort abgeleitet wird: k = KDF(s). Daher ein Empfänger kann nachweisen, dass er das Passwort kennt, indem er eine weitere Signatur unter dem Schlüssel k hinterlegt. Der Absender fügt einfach den entsprechenden öffentlichen Schlüssel zu seiner eigenen Ausgabe hinzu. Beachten Sie, dass dies Die Methode ist viel sicherer als das in Bitcoin [13] verwendete „Transaktionsrätsel“, bei dem die Das Passwort wird in den Eingaben explizit übergeben. • Entartete Fälle. Φ = 1 bedeutet, dass jeder das Geld ausgeben kann; Φ = 0 markiert die Ausgabe als nicht für immer auszugeben. Für den Fall, dass das Ausgabeskript in Kombination mit öffentlichen Schlüsseln für einen Absender zu groß ist, wird er kann einen speziellen Ausgabetyp verwenden, der angibt, dass der Empfänger diese Daten in seine Eingabe einfügt während der Absender nur eine hash davon bereitstellt. Dieser Ansatz ähnelt dem „Pay-to-hash“ von Bitcoin. Feature, aber anstatt neue Skriptbefehle hinzuzufügen, behandeln wir diesen Fall an der Datenstruktur Ebene. 7 Fazit Wir haben die größten Mängel in Bitcoin untersucht und einige mögliche Lösungen vorgeschlagen. Diese vorteilhaften Funktionen und unsere kontinuierliche Weiterentwicklung machen das neue elektronische Bargeldsystem CryptoNote aus ein ernstzunehmender Konkurrent von Bitcoin, der alle seine Forks übertrifft. 14 Möglichkeit, den blockchain aufzublähen und eine zusätzliche Belastung der Knoten zu erzeugen. Entmutigen Um böswillige Teilnehmer davon abzuhalten, große Blöcke zu erstellen, führen wir eine Straffunktion ein: NewReward = BaseReward \(\cdot\) BlkSize MN −1 2 Diese Regel wird nur angewendet, wenn BlkSize größer als die minimale freie Blockgröße ist, die erforderlich ist in der Nähe von max(10kb, \(M_N \cdot 110\%\)) liegen. Minern ist es erlaubt, Blöcke „normaler Größe“ und gerader Größe zu erstellen Übersteigen Sie es mit Gewinn, wenn die Gesamtgebühren die Strafe übersteigen. Es ist jedoch unwahrscheinlich, dass die Gebühren steigen quadratisch ungleich dem Strafwert, sodass ein Gleichgewicht herrscht. 6.3 Transaktionsskripte CryptoNote verfügt über ein sehr minimalistisches Skript-Subsystem. Ein Absender gibt einen Ausdruck Φ = an f (x1, x2, . . , xn), wobei n die Anzahl der öffentlichen Zielschlüssel {Pi}n ist i=1. Nur fünf Binärdateien Unterstützte Operatoren: min, max, sum, mul und cmp. Wenn der Empfänger diese Zahlung ausgibt, Er erzeugt \(0 \leq k \leq n\) Signaturen und übergibt sie an die Transaktionseingabe. Der Verifizierungsprozess wertet einfach Φ mit xi = 1 aus, um zu prüfen, ob eine gültige Signatur für den öffentlichen Schlüssel Pi vorhanden ist, und xi = 0. Ein Prüfer akzeptiert den Beweis, wenn Φ > 0. Trotz seiner Einfachheit deckt dieser Ansatz jeden möglichen Fall ab: • Multi-/Threshold-Signatur. Für die „M-aus-N“-Mehrfachsignatur im Bitcoin-Stil (d. h. der Empfänger sollte mindestens \(0 \leq M \leq N\) gültige Signaturen bereitstellen) Φ = x1+x2+. . .+xN \(\geq M\) (Der Übersichtlichkeit halber verwenden wir die übliche algebraische Notation). Die gewichtete Schwellenwertsignatur (einige Schlüssel können wichtiger sein als andere) könnte ausgedrückt werden als Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Und Szenarioio wobei der Hauptschlüssel Φ = entspricht max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Es ist leicht zu zeigen, dass jeder anspruchsvolle Fall möglich ist werden mit diesen Operatoren ausgedrückt, d. h. sie bilden die Basis. • Passwortschutz. Der Besitz eines geheimen Passwortes steht der Kenntnis davon gleich ein privater Schlüssel, der deterministisch aus dem Passwort abgeleitet wird: k = KDF(s). Daher ein Empfänger kann nachweisen, dass er das Passwort kennt, indem er eine weitere Signatur unter dem Schlüssel k hinterlegt. Der Absender fügt einfach den entsprechenden öffentlichen Schlüssel zu seiner eigenen Ausgabe hinzu. Beachten Sie, dass dies Die Methode ist viel sicherer als das in Bitcoin [13] verwendete „Transaktionsrätsel“, bei dem die Das Passwort wird in den Eingaben explizit übergeben. • Entartete Fälle. Φ = 1 bedeutet, dass jeder das Geld ausgeben kann; Φ = 0 markiert die Ausgabe als nicht für immer auszugeben. Für den Fall, dass das Ausgabeskript in Kombination mit öffentlichen Schlüsseln für einen Absender zu groß ist, wird er kann einen speziellen Ausgabetyp verwenden, der angibt, dass der Empfänger diese Daten in seine Eingabe einfügt während der Absender nur eine hash davon bereitstellt. Dieser Ansatz ähnelt dem „Pay-to-hash“ von Bitcoin. Feature, aber anstatt neue Skriptbefehle hinzuzufügen, behandeln wir diesen Fall an der Datenstruktur Ebene. 7 Fazit Wir haben die größten Mängel in Bitcoin untersucht und einige mögliche Lösungen vorgeschlagen. Diese vorteilhaften Funktionen und unsere kontinuierliche Weiterentwicklung machen das neue elektronische Bargeldsystem CryptoNote aus ein ernstzunehmender Konkurrent von Bitcoin, der alle seine Forks übertrifft. 14 26 Dies kann unnötig sein, wenn wir einen Weg finden können, die Blockgröße im Laufe der Zeit zu begrenzen ... Auch das kann nicht richtig sein. Sie haben „NewReward“ einfach auf eine nach oben gerichtete Parabel gesetzt, wo Die Blockgröße ist die unabhängige Variable. Die neue Belohnung explodiert also bis ins Unendliche. Wenn andererseits Andererseits ist die neue Belohnung Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2)), dann die neue Belohnung wäre eine nach unten gerichtete Parabel mit einer Spitze bei Blockgröße = Mn und Schnittpunkten bei Blockgröße = 0 und Blockgröße = 2Mn. Und das scheint es zu sein, was sie zu beschreiben versuchen. Dies ist jedoch nicht der Fall

分析

Bitcoin network total computation speed chart showing hashrate and difficulty from 2012 to 2013

5 世界中の10億人が1ドル未満で暮らしているとしても、それはそれほど重要ではない 一日中、どんな種類のマイニングネットワークにも参加する希望はありません...しかし経済的 1 CPU 1 票の P2P 通貨システムによって駆動される世界は、おそらく、さらに大きくなるでしょう。 部分準備銀行業務によって推進されるシステムよりも公平です。 しかし、Cryptonote のプロトコルでは依然として 51% の正直なユーザーが必要です...たとえば、Cryptonote を参照してください。 フォーラムでは、開発者の 1 人である Pliskov が、従来のblockchain 51% のデータを置き換える攻撃はまだ機能する可能性があると述べています。 https://forum.cryptonote.org/viewtopic.php?f=2&t=198 51% の正直なユーザーは実際には必要ないことに注意してください。本当に必要なのは「不正は一切ない」 ネットワークのhash力の51%以上を握る派閥です。」 このいわゆるビットコインの問題を「適応的硬直性」と呼びましょう。 Cryptonote の適応型ソリューション 剛性とは、プロトコル パラメーター値の適応的な柔軟性です。より大きなブロックサイズが必要な場合は、 問題ありません。ネットワークは常に緩やかに調整されています。 つまり、 Bitcoin が時間の経過とともに難易度を調整する方法は、すべてのプロトコルで再現できます。 パラメータを変更することで、プロトコルを更新するためにネットワークの合意を得る必要がなくなります。 表面的には、これは良いアイデアのように見えますが、注意深く事前に検討しないと、自動的に調整されてしまいます。 システムは非常に予測不能で混沌としたものになる可能性があります。これについては後ほどさらに詳しく見ていきますので、 チャンスが生まれます。 「優れた」システムは、適応的に剛性が高いシステムと適応的に剛性が高いシステムの間のどこかにあります。 柔軟性があり、おそらく剛性自体も適応可能です。 本当に「1 CPU 1 票」であれば、共同でプールを開発して 51% を達成することになります。 もっと難しいでしょう。私たちは、世界中のすべての CPU が携帯電話からマイニングされることを期待しています。 充電中に Tesla のオンボード CPU に接続します。 http://en.wikipedia.org/wiki/Pareto_principle 私は、パレート均衡はある程度避けられないと主張します。システムの 20% が CPU の 80% を所有するか、システムの 20% が ASIC の 80% を所有します。私がこのような仮説を立てるのは、社会における富の根本的な分布がすでにパレート分布を示しているからです。 そして、新しいマイナーが参加すると、その基礎となるディストリビューションから抽出されます。 ただし、1 CPU 1 票のプロトコルではハードウェアの ROI が見られると私は主張します。 ブロック ノードあたりの報酬は、ネットワーク内のノード数により密接に比例します。 ノード間のパフォーマンスの分散はより厳密になります。一方、Bitcoin 一方、ブロック報酬 (ノードごと) はその計算能力に比例すると考えられます。 ノード。つまり、まだ「大手」だけがマイニング ゲームに参加しているのです。一方、 たとえパレートの法則がまだ機能しているとしても、1 CPU 1 票の世界では、全員 ネットワークセキュリティに参加し、少しのマイニング収入を獲得します。 ASIC の世界では、すべての XBox や携帯電話をマイニング用に装備するのは賢明ではありません。 onecpu-one-vote の世界では、マイニング報酬の観点からは非常に賢明です。嬉しい結果として、 投票数が増えると、投票の 51% を獲得するのが難しくなり、素晴らしい結果が得られます。 ネットワーク セキュリティにメリットがあります。前述したハードウェア。世界全体のhash率が、たとえ 一瞬にして、彼は自分のマイニングパワーを利用してチェーンをフォークし、二重に使うことができるようになります。これから見るように この記事の後半で説明しますが、前述のイベントが発生する可能性は低くありません。 2.3 不規則発光 Bitcoin には所定の排出率があり、解決された各ブロックは固定量のコインを生成します。 この報酬は約 4 年ごとに半分になります。当初の目的は、 指数関数的な減衰を伴う限られた滑らかな放射ですが、実際には区分的に線形な放射があります。 ブレークポイントが Bitcoin インフラストラクチャに問題を引き起こす可能性のある関数。 ブレークポイントが発生すると、マイナーは以前の値の半分だけを受け取り始めます。 報酬。 12.5 BTC と 6.25 BTC (2020 年の予測) の絶対差は、 耐えられるようです。しかし、11月に起こった50から25BTCの下落を調べると、 2012 年 2 月 28 日、鉱山コミュニティの相当数のメンバーにとって不適切であると感じました。図 1 は、11 月末にネットワークの hash レートが劇的に減少したことを示しています。 半減が起こった。この出来事は悪意のある人物にとって完璧な瞬間だったかもしれない proof-of-work 機能セクションで説明されているように、二重支出攻撃 [36] を実行します。 図 1. Bitcoin hash レート チャート (出典: http://bitcoin.sipa.be) 2.4 ハードコードされた定数 Bitcoin には多くのハードコーディングされた制限があり、その一部は元の設計の自然な要素です (例: ブロック頻度、通貨供給量の最大値、確認の数)、その他 人為的な制約のようです。それは限界というよりも、すぐに変化することができないことです。 3 前述したハードウェア。グローバルなhashレートが、たとえ 一瞬にして、彼は自分のマイニングパワーを利用してチェーンをフォークし、二重に使うことができるようになります。これから見るように この記事の後半で説明しますが、前述のイベントが発生する可能性は低くありません。 2.3 不規則発光 Bitcoin には所定の排出率があり、解決された各ブロックは固定量のコインを生成します。 この報酬は約 4 年ごとに半分になります。当初の目的は、 指数関数的な減衰を伴う限られた滑らかな放射ですが、実際には区分的に線形な放射があります。 ブレークポイントが Bitcoin インフラストラクチャに問題を引き起こす可能性のある関数。 ブレークポイントが発生すると、マイナーは以前の値の半分だけを受け取り始めます。 報酬。 12.5 BTC と 6.25 BTC (2020 年の予測) の絶対差は、 耐えられるようです。しかし、11月に起こった50から25BTCの下落を調べると、 2012 年 2 月 28 日、鉱山コミュニティの相当数のメンバーにとって不適切であると感じました。図 1 は、11 月末にネットワークの hash レートが劇的に減少したことを示しています。 半減が起こった。この出来事は悪意のある人物にとって完璧な瞬間だったかもしれない proof-of-work 関数セクションで説明されているように、二重支出攻撃 [36] を実行します。 図 1. Bitcoin hash レート チャート (出典: http://bitcoin.sipa.be) 2.4 ハードコードされた定数 Bitcoin には多くのハードコーディングされた制限があり、その一部は元の設計の自然な要素です (例: ブロック頻度、通貨供給量の最大値、確認の数)、その他 人為的な制約のようです。それは限界というよりも、すぐに変化することができないことです。 3 6 これを何というか、ゾンビ攻撃と呼びましょう。 継続的な放出がどのように行われるかを議論しましょう ゾンビ攻撃シナリオにおける 1 CPU 1 票に関連します。 1 CPU 1 票の世界では、すべての携帯電話と自動車は、アイドル状態のときは常にマイニングを行っていることになります。大量の安価なハードウェアを集めてマイニング ファームを作成するのは非常に簡単です。 ほぼすべてのものにCPUが搭載されています。一方、その時点でのCPUの数は、 51% 攻撃を開始するのに必要なコストは非常に驚くべきものであると私は思います。 さらに、 まさに「安価なハードウェアを集めるのが簡単だから」、 多くの人が CPU を使って何でもため込み始めます。 1 CPU 1 票の世界における軍備競争 ASIC の世界よりも必然的に平等主義的です。 したがって、ネットワークの不連続性が発生します 1 CPU 1 票の世界では、排出率によるセキュリティはそれほど問題ではないはずです。 ただし、次の 2 つの事実が残ります: 1) 放出速度の不連続性は、音の途切れ効果を引き起こす可能性があります。 経済とネットワーク セキュリティの両方に悪影響を及ぼします。2) たとえ 51% の攻撃があったとしても 安価なハードウェアを収集する誰かによって実行される場合でも、1 CPU 1 で発生する可能性があります。-投票の世界、 もっと難しいはずのようです。 おそらく、これに対する安全策は、「すべての」不正行為者がこれを試みることです。 同時に、Bitcoin の以前のセキュリティ概念に戻ります。「不正行為は要求しません」 ネットワークの51%以上を支配する派閥。」 著者はここで、ビットコインの問題の一つはコイン発行の不連続性であると主張している。 速度が低下すると、ネットワークへの参加が突然低下し、ネットワークのセキュリティが低下する可能性があります。したがって、 継続的で微分可能でスムーズなコイン排出率が望ましいです。 著者は必ずしも間違っていません。ネットワークへの参加が突然減少すると、 このような問題が発生する可能性があり、その原因を 1 つ取り除くことができるのであれば、そうすべきです。そうは言っても、それは 長期にわたって「比較的一定した」コイン発行が突然の変化によって中断される可能性 経済学の観点からは理想的な方法です。私は経済学者ではありません。それで、おそらく私たちは、 ネットワーク セキュリティを経済的なものと引き換えにするかどうかを決定する必要があります。ここには何があるでしょうか? http://arxiv.org/abs/1402.2009必要に応じてそれらを使用すると、主な欠点が生じます。残念ながら、いつ起こるかを予測するのは困難です。 定数の変更が必要になる場合があり、定数を置き換えるとひどい結果につながる可能性があります。 悲惨な結果をもたらすハードコードされた制限変更の好例は、次のブロックです。 サイズ制限は 250kb1 に設定されています。この制限は、約 10000 件の標準トランザクションを保持するには十分です。で 2013 年の初めには、この制限にほぼ達していたので、上限を増やすことで合意に達しました。 限界。この変更はウォレットバージョン0.8で実装され、24ブロックのチェーン分割で終了しました。 そして二重支出攻撃[9]が成功しました。このバグは Bitcoin プロトコルにはありませんでしたが、 むしろデータベース エンジンに問題があった場合、単純なストレス テストで簡単に検出できたはずです。 人為的に導入されたブロック サイズ制限はありません。 定数は、一元化ポイントの形式としても機能します。 ピアツーピアの性質にもかかわらず、 Bitcoin、圧倒的多数のノードは、によって開発された公式リファレンス クライアント [10] を使用しています。 少人数のグループ。このグループは、プロトコルへの変更を実装する決定を下します。 そしてほとんどの人は、その「正しさ」に関係なく、こうした変化を受け入れます。いくつかの決定が引き起こした 白熱した議論が行われ、ボイコット [11] さえ呼び掛けられています。これは、コミュニティと 開発者はいくつかの重要な点で意見が異なる場合があります。したがって、プロトコルを持つことは論理的であると思われます これらの問題を回避する可能な方法として、ユーザーが構成可能で自己調整可能な変数を使用します。 2.5 かさばるスクリプト Bitcoin のスクリプト システムは、重くて複雑な機能です。それは潜在的に人が作成することを可能にします 洗練されたトランザクション [12] ですが、セキュリティ上の懸念から一部の機能が無効になっています。 [13] は一度も使用されていないものもあります。スクリプト (送信側と受信側の両方の部分を含む) Bitcoin で最も人気のあるトランザクションは次のようになります。 OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG。 スクリプトの長さは 164 バイトですが、その唯一の目的は、受信者が 彼の署名を検証するために必要な秘密鍵。

Analyse

5 Es spielt keine allzu große Rolle, wenn eine Milliarde Menschen auf der Welt von weniger als einem Dollar pro Jahr leben müssen Tag und haben keine Hoffnung, jemals an irgendeinem Bergbaunetzwerk teilzunehmen ... aber an einem wirtschaftlichen Welt, die von einem P2P-Währungssystem mit einer CPU und einer Stimme angetrieben wird, wäre vermutlich mehr fairer als ein System, das auf Teilreservebanken basiert. Aber das Protokoll von Cryptonote erfordert immer noch 51 % ehrliche Benutzer ... siehe zum Beispiel das Cryptonote Foren, in denen einer der Entwickler, Pliskov, sagt, dass ein traditioneller „Replace-the-Data-on-theblockchain“-51-%-Angriff immer noch funktionieren kann. https://forum.cryptonote.org/viewtopic.php?f=2&t=198 Beachten Sie, dass Sie nicht wirklich 51 % ehrliche Benutzer benötigen. Man braucht einfach wirklich „keinen einzigen Unehrlichen“. Fraktion mit mehr als 51 % der Macht des Netzwerks.“ Nennen wir dieses sogenannte Problem von Bitcoin „adaptive Starrheit“. Die Lösung von Cryptonote für Adaptive Steifigkeit ist die adaptive Flexibilität der Protokollparameterwerte. Wenn Sie größere Blockgrößen benötigen, Kein Problem, das Netzwerk hat sich die ganze Zeit über sanft angepasst. Das heißt, Die Art und Weise, wie Bitcoin den Schwierigkeitsgrad im Laufe der Zeit anpasst, kann in unserem gesamten Protokoll reproduziert werden Parameter, so dass für die Aktualisierung des Protokolls kein Netzwerkkonsens eingeholt werden muss. Oberflächlich betrachtet scheint dies eine gute Idee zu sein, aber ohne sorgfältige Voraussicht eine Selbstanpassung Das System kann ziemlich unvorhersehbar und chaotisch werden. Wir werden später näher darauf eingehen Chancen ergeben sich. „Gute“ Systeme liegen irgendwo zwischen adaptiv starr und adaptiv Flexibilität und vielleicht sogar die Starrheit selbst sind anpassungsfähig. Wenn wir wirklich „eine CPU, eine Stimme“ hätten, dann müssten wir zusammenarbeiten und Pools entwickeln, um 51 % zu erreichen. wäre schwieriger. Wir würden erwarten, dass jede CPU auf der Welt von Telefonen aus Mining durchführt an die integrierte CPU Ihres Tesla während des Ladevorgangs. http://en.wikipedia.org/wiki/Pareto_principle Ich behaupte, dass das Pareto-Gleichgewicht einigermaßen unvermeidbar ist. Entweder 20 % des Systems werden es tun 80 % der CPUs besitzen, oder 20 % des Systems besitzen 80 % der ASICs. Ich vermute dies, weil die zugrunde liegende Vermögensverteilung in der Gesellschaft bereits die Pareto-Verteilung aufweist. und wenn neue Miner beitreten, werden sie aus dieser zugrunde liegenden Verteilung gezogen. Ich behaupte jedoch, dass Protokolle mit einer CPU und einer Stimme einen ROI auf der Hardware erzielen werden. Blockieren Die Belohnung pro Knoten wird eher proportional zur Anzahl der Knoten im Netzwerk sein, weil Die Leistungsverteilung zwischen den Knoten wird viel enger sein. Bitcoin, andererseits Andererseits sieht er eine Blockbelohnung (pro Knoten), die proportionaler zur Rechenkapazität dieses Knotens ist Knoten. Das heißt, nur noch die „großen Jungs“ sind im Mining-Geschäft aktiv. Andererseits, Auch wenn das Pareto-Prinzip weiterhin im Spiel sein wird, gilt in einer Welt mit einer CPU und einer Stimme jeder beteiligt sich an der Netzwerksicherheit und erzielt einen Teil der Mining-Einnahmen. In einer ASIC-Welt ist es nicht sinnvoll, jede XBox und jedes Mobiltelefon an meine anzupassen. In einer One-CPU-One-Vote-Welt ist das im Hinblick auf die Mining-Belohnung sehr sinnvoll. Als erfreuliche Konsequenz Es ist schwieriger, 51 % der Stimmen zu erreichen, wenn es immer mehr Stimmen gibt, was zu einem schönen Ergebnis führt Vorteile für die Netzwerksicherheit.Hardware wie zuvor beschrieben. Nehmen wir an, dass die globale hashrate deutlich abnimmt, sogar für Einen Moment lang kann er nun seine Mining-Kraft nutzen, um die Kette zu verzweigen und doppelte Ausgaben zu tätigen. Wie wir sehen werden Später in diesem Artikel ist es nicht unwahrscheinlich, dass das zuvor beschriebene Ereignis eintritt. 2.3 Unregelmäßige Emission Bitcoin hat eine vorgegebene Emissionsrate: Jeder gelöste Block produziert eine feste Menge an Münzen. Etwa alle vier Jahre wird diese Belohnung halbiert. Die ursprüngliche Absicht bestand darin, eine zu schaffen begrenzte glatte Emission mit exponentiellem Abfall, aber tatsächlich haben wir eine stückweise lineare Emission Funktion, deren Haltepunkte Probleme in der Bitcoin-Infrastruktur verursachen können. Wenn der Haltepunkt erreicht wird, erhalten die Miner nur noch die Hälfte ihres vorherigen Wertes Belohnung. Der absolute Unterschied zwischen 12,5 und 6,25 BTC (prognostiziert für das Jahr 2020) kann scheinen erträglich. Betrachtet man jedoch den Rückgang von 50 auf 25 BTC, der im November stattfand 28 2012, erschien für eine beträchtliche Anzahl von Mitgliedern der Bergbaugemeinschaft unangemessen. Abbildung 1 zeigt einen dramatischen Rückgang der hashRate des Netzwerks Ende November, genau zu dem Zeitpunkt es kam zu einer Halbierung. Dieses Ereignis hätte der perfekte Moment für die böswillige Person sein können beschrieben im Funktionsabschnitt proof-of-work zur Durchführung eines Double-Spending-Angriffs [36]. Abb. 1. Bitcoin hashKursdiagramm (Quelle: http://bitcoin.sipa.be) 2.4 Hartcodierte Konstanten Bitcoin hat viele fest codierte Grenzwerte, von denen einige natürliche Elemente des ursprünglichen Designs sind (z. B. Blockhäufigkeit, maximale Geldmenge, Anzahl der Bestätigungen) und andere scheinen künstliche Zwänge zu sein. Es sind nicht so sehr die Grenzen, sondern vielmehr die Unfähigkeit, sich schnell zu verändern 3 Hardware wie zuvor beschrieben. Nehmen wir an, dass die globale hash-Rate deutlich abnimmt, sogar für Einen Moment lang kann er nun seine Mining-Kraft nutzen, um die Kette zu verzweigen und doppelte Ausgaben zu tätigen. Wie wir sehen werden Später in diesem Artikel ist es nicht unwahrscheinlich, dass das zuvor beschriebene Ereignis eintritt. 2.3 Unregelmäßige Emission Bitcoin hat eine vorgegebene Emissionsrate: Jeder gelöste Block produziert eine feste Menge an Münzen. Etwa alle vier Jahre wird diese Belohnung halbiert. Die ursprüngliche Absicht bestand darin, eine zu schaffen begrenzte glatte Emission mit exponentiellem Abfall, aber tatsächlich haben wir eine stückweise lineare Emission Funktion, deren Haltepunkte Probleme in der Bitcoin-Infrastruktur verursachen können. Wenn der Haltepunkt erreicht wird, erhalten die Miner nur noch die Hälfte ihres vorherigen Wertes Belohnung. Der absolute Unterschied zwischen 12,5 und 6,25 BTC (prognostiziert für das Jahr 2020) kann scheinen erträglich. Betrachtet man jedoch den Rückgang von 50 auf 25 BTC, der im November stattfand 28 2012, erschien für eine beträchtliche Anzahl von Mitgliedern der Bergbaugemeinschaft unangemessen. Abbildung 1 zeigt einen dramatischen Rückgang der hashRate des Netzwerks Ende November, genau zu dem Zeitpunkt es kam zu einer Halbierung. Dieses Ereignis hätte der perfekte Moment für die böswillige Person sein können beschrieben im Funktionsabschnitt proof-of-work zur Durchführung eines Double-Spending-Angriffs [36]. Abb. 1. Bitcoin hashKursdiagramm (Quelle: http://bitcoin.sipa.be) 2.4 Hartcodierte Konstanten Bitcoin hat viele fest codierte Grenzwerte, von denen einige natürliche Elemente des ursprünglichen Designs sind (z. B. Blockhäufigkeit, maximale Geldmenge, Anzahl der Bestätigungen) und andere scheinen künstliche Zwänge zu sein. Es sind nicht so sehr die Grenzen, sondern vielmehr die Unfähigkeit, sich schnell zu verändern 3 6 Nennen wir es das, was es ist: einen Zombie-Angriff. Lassen Sie uns diskutieren, wie kontinuierlich die Emission sein kann im Zusammenhang mit „Eine CPU, eine Stimme“ in einem Zombie-Angriffsszenario. In einer Welt mit einer CPU und einer Stimme würde jedes Mobiltelefon und jedes Auto, wann immer es inaktiv ist, schürfen. Es wäre sehr, sehr einfach, haufenweise billige Hardware zu sammeln, um eine Mining-Farm zu erstellen, denn einfach In fast allem steckt eine CPU. Andererseits, zu diesem Zeitpunkt, die Anzahl der CPUs Ich würde meinen, dass es ziemlich erstaunlich wäre, wenn man einen 51-Prozent-Angriff starten müsste. Darüber hinaus Gerade weil es einfach wäre, billige Hardware zu sammeln, können wir vernünftigerweise erwarten, dass a Viele Leute fangen an, irgendetwas mit einer CPU zu horten. Das Wettrüsten in einer Welt mit einer CPU und einer Stimme ist notwendigerweise egalitärer als in einer ASIC-Welt. Daher eine Diskontinuität im Netzwerk Sicherheit aufgrund von Emissionsraten sollte in einer Welt mit einer CPU und einer Stimme WENIGER ein Problem darstellen. Es bleiben jedoch zwei Tatsachen bestehen: 1) Eine Diskontinuität der Emissionsrate kann zu einem Stottereffekt führen sowohl für die Wirtschaft als auch für die Netzwerksicherheit, was schlecht ist, und 2) obwohl es sich um einen 51-prozentigen Angriff handelt Fehler, die von jemandem durchgeführt werden, der billige Hardware sammelt, können auch bei Ein-CPU-Geräten auftreten-Abstimmung Welt, Es scheint, als ob es schwieriger sein sollte. Vermutlich besteht der Schutz davor darin, dass alle unehrlichen Akteure dies versuchen werden Gleichzeitig greifen wir auf den früheren Sicherheitsgedanken von Bitcoin zurück: „Wir fordern keine Unehrlichkeit.“ Fraktion soll mehr als 51 % des Netzwerks kontrollieren. Der Autor behauptet hier, dass ein Problem bei Bitcoin die Diskontinuität bei der Ausgabe von Münzen sei Die Rate könnte zu einem plötzlichen Rückgang der Netzwerkbeteiligung und damit der Netzwerksicherheit führen. So, Eine kontinuierliche, differenzierbare und gleichmäßige Münzausgaberate ist vorzuziehen. Der Autor hat nicht unbedingt Unrecht. Jede Art von plötzlichem Rückgang der Netzwerkbeteiligung kann dazu führen zu einem solchen Problem führen, und wenn wir eine Ursache dafür beseitigen können, sollten wir das tun. Trotzdem ist es so Es ist möglich, dass lange Zeiträume „relativ konstanter“ Münzausgabe mit plötzlichen Änderungen unterbrochen werden ist aus ökonomischer Sicht der ideale Weg. Ich bin kein Ökonom. Also vielleicht wir Wir müssen uns entscheiden, ob wir die Netzwerksicherheit gegen etwas Wirtschaftliches eintauschen – was steht hier? http://arxiv.org/abs/1402.2009wenn nötig, verursacht das die Hauptnachteile. Leider ist es schwer vorherzusagen, wann Konstanten müssen möglicherweise geändert werden, und ihre Ersetzung kann schreckliche Folgen haben. Ein gutes Beispiel für eine hartcodierte Grenzwertänderung, die katastrophale Folgen hat, ist der Block Größenbeschränkung auf 250 KB1 festgelegt. Dieses Limit reichte aus, um etwa 10.000 Standardtransaktionen aufzunehmen. In Anfang 2013 war diese Grenze fast erreicht und man einigte sich auf eine Erhöhung Grenze. Die Änderung wurde in Wallet-Version 0.8 implementiert und endete mit einer 24-Block-Chain-Aufteilung und ein erfolgreicher Double-Spend-Angriff [9]. Der Fehler lag zwar nicht im Protokoll Bitcoin, aber Vielmehr hätte es in der Datenbank-Engine leicht durch einen einfachen Stresstest erkannt werden können, wenn dies der Fall gewesen wäre keine künstlich eingeführte Blockgrößenbeschränkung. Konstanten fungieren auch als eine Art Zentralisierungspunkt. Trotz des Peer-to-Peer-Charakters von Bitcoin, eine überwältigende Mehrheit der Knoten verwendet den offiziellen Referenzclient [10], der von entwickelt wurde eine kleine Gruppe von Menschen. Diese Gruppe trifft die Entscheidung, Änderungen am Protokoll umzusetzen und die meisten Menschen akzeptieren diese Änderungen unabhängig von ihrer „Richtigkeit“. Einige Entscheidungen verursachten hitzige Diskussionen und sogar Boykottaufrufe [11], was darauf hindeutet, dass die Community und die Entwickler können in einigen wichtigen Punkten anderer Meinung sein. Daher erscheint es logisch, ein Protokoll zu haben mit vom Benutzer konfigurierbaren und selbstanpassenden Variablen als mögliche Möglichkeit, diese Probleme zu vermeiden. 2.5 Umfangreiche Skripte Das Skriptsystem in Bitcoin ist eine umfangreiche und komplexe Funktion. Es ermöglicht einem möglicherweise, etwas zu erschaffen ausgefeilte Transaktionen [12], aber einige seiner Funktionen sind aus Sicherheitsgründen deaktiviert und einige wurden noch nie verwendet [13]. Das Skript (einschließlich der Teile des Senders und des Empfängers) für die beliebteste Transaktion in Bitcoin sieht das so aus: OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. Das Skript ist 164 Bytes lang, wobei sein einziger Zweck darin besteht, zu überprüfen, ob der Empfänger über das Skript verfügt geheimer Schlüssel, der zur Überprüfung seiner Signatur erforderlich ist.

Bitcoin network total computation speed chart showing hashrate and difficulty from 2012 to 2013