CryptoNote v2.0

Von Nicolas van Saberhagen · 2013

Das hier präsentierte Paper ist das CryptoNote v2.0 Whitepaper von Nicolas van Saberhagen (2013), das die kryptografischen Grundlagen beschreibt, auf denen Monero aufbaut. Es handelt sich nicht um ein Monero-spezifisches Whitepaper – Monero startete 2014 als Fork der CryptoNote-Referenzimplementierung (Bytecoin) und hat sich seitdem erheblich über das ursprüngliche Protokoll hinaus weiterentwickelt.

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.

Giới thiệu

“Bitcoin” [1] đã triển khai thành công khái niệm tiền điện tử p2p. Cả hai các chuyên gia và công chúng nói chung đã đánh giá cao sự kết hợp thuận tiện của giao dịch công khai và proof-of-work làm mô hình tin cậy. Ngày nay, cơ sở người dùng tiền điện tử đang phát triển với tốc độ ổn định; khách hàng bị thu hút bởi mức phí thấp và tính ẩn danh được cung cấp bằng tiền điện tử và người bán đánh giá mức phát thải được dự đoán và phi tập trung của nó. Bitcoin có đã chứng minh một cách hiệu quả rằng tiền điện tử có thể đơn giản như tiền giấy và thuận tiện như thẻ tín dụng. Thật không may, Bitcoin mắc phải một số thiếu sót. Ví dụ: hệ thống được phân phối Bản chất là không linh hoạt, ngăn cản việc triển khai các tính năng mới cho đến khi gần như tất cả người dùng mạng cập nhật ứng dụng khách của họ. Một số lỗi nghiêm trọng không thể khắc phục nhanh chóng sẽ ngăn cản Bitcoin tuyên truyền rộng rãi. Trong những mô hình không linh hoạt như vậy, việc triển khai một dự án mới sẽ hiệu quả hơn thay vì liên tục sửa chữa dự án ban đầu. Trong bài báo này, chúng tôi nghiên cứu và đề xuất giải pháp khắc phục những thiếu sót chính của Bitcoin. Chúng tôi tin rằng một hệ thống có tính đến các giải pháp mà chúng tôi đề xuất sẽ dẫn đến sự cạnh tranh lành mạnh giữa các hệ thống tiền điện tử khác nhau. Chúng tôi cũng đề xuất tiền điện tử của riêng mình, “CryptoNote”, một cái tên nhấn mạnh bước đột phá tiếp theo của tiền điện tử.

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 Hạn chế và giải pháp khả thi

2 Bitcoin nhược điểm và một số giải pháp khả thi 2.1 Truy xuất nguồn gốc của các giao dịch Quyền riêng tư và ẩn danh là những khía cạnh quan trọng nhất của tiền điện tử. Thanh toán ngang hàng tìm cách che giấu tầm nhìn của bên thứ ba, một sự khác biệt rõ rệt khi so sánh với truyền thống ngân hàng. Đặc biệt, T. Okamoto và K. Ohta đã mô tả sáu tiêu chí của tiền điện tử lý tưởng, trong đó bao gồm “quyền riêng tư: mối quan hệ giữa người dùng và giao dịch mua hàng của anh ta phải không thể theo dõi được bởi bất kỳ ai” [30]. Từ mô tả của họ, chúng tôi rút ra được hai thuộc tính ẩn danh hoàn toàn mô hình tiền điện tử phải đáp ứng để tuân thủ các yêu cầu do Okamoto nêu ra và Ohta: Không thể theo dõi: đối với mỗi giao dịch đến, tất cả những người gửi có thể đều có khả năng được trang bị. Không thể liên kết: đối với bất kỳ hai giao dịch gửi đi nào cũng không thể chứng minh được chúng đã được gửi đến cùng một người. Thật không may, Bitcoin không đáp ứng yêu cầu không thể theo dõi. Vì tất cả các giao dịch diễn ra giữa những người tham gia mạng đều công khai nên mọi giao dịch đều có thể được 1 CryptoNote v 2.0 Nicolas van Saberhagen Ngày 17 tháng 10 năm 2013 1 Giới thiệu “Bitcoin” [1] đã triển khai thành công khái niệm tiền điện tử p2p. Cả hai các chuyên gia và công chúng nói chung đã đánh giá cao sự kết hợp thuận tiện của giao dịch công khai và proof-of-work làm mô hình tin cậy. Ngày nay, cơ sở người dùng tiền điện tử đang phát triển với tốc độ ổn định; khách hàng bị thu hút bởi mức phí thấp và tính ẩn danh được cung cấp bằng tiền điện tử và người bán đánh giá mức phát thải được dự đoán và phi tập trung của nó. Bitcoin có đã chứng minh một cách hiệu quả rằng tiền điện tử có thể đơn giản như tiền giấy và thuận tiện như thẻ tín dụng. Thật không may, Bitcoin mắc phải một số thiếu sót. Ví dụ: hệ thống được phân phối Bản chất là không linh hoạt, ngăn cản việc triển khai các tính năng mới cho đến khi gần như tất cả người dùng mạng cập nhật ứng dụng khách của họ. Một số lỗi nghiêm trọng không thể khắc phục nhanh chóng sẽ ngăn cản Bitcoin tuyên truyền rộng rãi. Trong những mô hình không linh hoạt như vậy, việc triển khai một dự án mới sẽ hiệu quả hơn thay vì liên tục sửa chữa dự án ban đầu. Trong bài báo này, chúng tôi nghiên cứu và đề xuất giải pháp khắc phục những thiếu sót chính của Bitcoin. Chúng tôi tin rằng một hệ thống có tính đến các giải pháp mà chúng tôi đề xuất sẽ dẫn đến sự cạnh tranh lành mạnh giữa các hệ thống tiền điện tử khác nhau. Chúng tôi cũng đề xuất tiền điện tử của riêng mình, “CryptoNote”, một cái tên nhấn mạnh bước đột phá tiếp theo của tiền điện tử. 2 Bitcoin nhược điểm và một số giải pháp khả thi 2.1 Truy xuất nguồn gốc của các giao dịch Quyền riêng tư và ẩn danh là những khía cạnh quan trọng nhất của tiền điện tử. Thanh toán ngang hàng tìm cách che giấu tầm nhìn của bên thứ ba, một sự khác biệt rõ rệt khi so sánh với truyền thống ngân hàng. Đặc biệt, T. Okamoto và K. Ohta đã mô tả sáu tiêu chí của tiền điện tử lý tưởng, trong đó bao gồm “quyền riêng tư: mối quan hệ giữa người dùng và giao dịch mua hàng của anh ta phải không thể theo dõi được bởi bất kỳ ai” [30]. Từ mô tả của họ, chúng tôi rút ra được hai thuộc tính ẩn danh hoàn toàn mô hình tiền điện tử phải đáp ứng để tuân thủ các yêu cầu do Okamoto nêu ra và Ohta: Không thể theo dõi: đối với mỗi giao dịch đến, tất cả những người gửi có thể đều có khả năng được trang bị. Không thể liên kết: đối với bất kỳ hai giao dịch gửi đi nào cũng không thể chứng minh được chúng đã được gửi đến cùng một người. Thật không may, Bitcoin không đáp ứng yêu cầu không thể theo dõi. Vì tất cả các giao dịch diễn ra giữa những người tham gia mạng đều công khai nên mọi giao dịch đều có thể được 1 3 Bitcoin chắc chắn không đạt được "không thể theo dõi". Khi tôi gửi BTC cho bạn, ví tiền được gửi từ đó được đóng dấu không thể hủy ngang trên blockchain. Không có câu hỏi nào về việc ai đã gửi số tiền đó, bởi vì chỉ người biết khóa riêng mới có thể gửi chúng.được truy tìm rõ ràng về nguồn gốc duy nhất và người nhận cuối cùng. Ngay cả khi hai người tham gia trao đổi vốn theo cách gián tiếp, một phương pháp tìm đường được thiết kế phù hợp sẽ tiết lộ nguồn gốc và người nhận cuối cùng. Người ta cũng nghi ngờ rằng Bitcoin không đáp ứng thuộc tính thứ hai. Một số nhà nghiên cứu đã nêu ([33, 35, 29, 31]) rằng việc phân tích blockchain cẩn thận có thể tiết lộ mối liên hệ giữa người dùng mạng Bitcoin và các giao dịch của họ. Mặc dù một số phương pháp được đang tranh chấp [25], người ta nghi ngờ rằng nhiều thông tin cá nhân ẩn có thể được trích xuất từ cơ sở dữ liệu công cộng. Việc Bitcoin không đáp ứng được hai thuộc tính được nêu ở trên khiến chúng tôi kết luận rằng đó là không phải là một hệ thống tiền điện tử ẩn danh mà là một hệ thống tiền điện tử giả ẩn danh. Người dùng đã nhanh chóng phát triển giải pháp khắc phục nhược điểm này. Hai giải pháp trực tiếp là “dịch vụ rửa tiền” [2] và sự phát triển của các phương pháp phân tán [3, 4]. Cả hai giải pháp đều dựa trên ý tưởng trộn một số giao dịch công khai và gửi chúng qua một số địa chỉ trung gian; đến lượt nó gặp phải nhược điểm là cần có bên thứ ba đáng tin cậy. Gần đây, một kế hoạch sáng tạo hơn đã được đề xuất bởi I. Miers et al. [28]: “Zerocoin”. Zerocoin sử dụng bộ tích lũy một chiều bằng mật mã và bằng chứng không có kiến thức cho phép người dùng “chuyển đổi” bitcoin thành zerocoin và chi tiêu chúng bằng cách sử dụng bằng chứng quyền sở hữu ẩn danh thay vì chữ ký số dựa trên khóa công khai rõ ràng. Tuy nhiên, những bằng chứng tri thức như vậy có một hằng số nhưng kích thước không thuận tiện - khoảng 30kb (dựa trên giới hạn Bitcoin ngày nay), điều này đưa ra đề xuất không thực tế. Các tác giả thừa nhận rằng giao thức này khó có thể được đa số chấp nhận Bitcoin người dùng [5]. 2.2 Hàm proof-of-work Bitcoin người sáng tạo Satoshi Nakamoto đã mô tả thuật toán ra quyết định đa số là “mộtCPU-một phiếu bầu” và sử dụng chức năng định giá giới hạn CPU (gấp đôi SHA-256) cho proof-of-work của mình kế hoạch. Vì người dùng bỏ phiếu cho lịch sử giao dịch duy nhất [1] nên tính hợp lý và tính nhất quán của quá trình này là điều kiện quan trọng cho toàn bộ hệ thống. Tính bảo mật của mô hình này có hai nhược điểm. Đầu tiên, nó yêu cầu 51% dung lượng mạng sức mạnh khai thác nằm dưới sự kiểm soát của người dùng trung thực. Thứ hai, tiến độ của hệ thống (sửa lỗi, sửa lỗi bảo mật, v.v...) yêu cầu đại đa số người dùng phải ủng hộ và đồng ý với thay đổi (điều này xảy ra khi người dùng cập nhật phần mềm ví của họ) [6].Cuối cùng, cuộc bỏ phiếu tương tự này cơ chế này cũng được sử dụng cho các cuộc thăm dò ý kiến tập thể về việc triển khai một số tính năng [7]. Điều này cho phép chúng ta phỏng đoán các tính chất phải được thỏa mãn bởi proof-of-work chức năng định giá. Chức năng như vậy không được cho phép người tham gia mạng có ảnh hưởng đáng kể lợi thế hơn người tham gia khác; nó đòi hỏi sự tương đương giữa phần cứng thông thường và cao chi phí của các thiết bị tùy chỉnh. Từ các ví dụ gần đây [8], chúng ta có thể thấy rằng hàm SHA-256 được sử dụng trong kiến trúc Bitcoin không có thuộc tính này khi việc khai thác trở nên hiệu quả hơn trên GPU và thiết bị ASIC khi so sánh với CPU cao cấp. Vì vậy, Bitcoin tạo điều kiện thuận lợi cho khoảng cách lớn giữa quyền biểu quyết của người tham gia vì nó vi phạm nguyên tắc “một CPU-một phiếu bầu” do chủ sở hữu GPU và ASIC sở hữu quyền biểu quyết lớn hơn nhiều khi so sánh với chủ sở hữu CPU. Đó là một ví dụ cổ điển về Nguyên tắc Pareto trong đó 20% người tham gia hệ thống kiểm soát hơn 80% số phiếu bầu. Người ta có thể lập luận rằng sự bất bình đẳng như vậy không liên quan đến an ninh mạng vì nó không số lượng nhỏ người tham gia kiểm soát đa số phiếu bầu nhưng tính trung thực của những điều này những người tham gia quan trọng. Tuy nhiên, lập luận như vậy có phần sai sót vì nó đúng hơn là khả năng phần cứng chuyên dụng giá rẻ xuất hiện thay vì sự trung thực của người tham gia đặt ra một mối đe dọa. Để chứng minh điều này, chúng ta hãy lấy ví dụ sau. Giả sử có ác tâm cá nhân đạt được sức mạnh khai thác đáng kể bằng cách tạo ra trang trại khai thác của riêng mình thông qua giá rẻ 2 được truy tìm rõ ràng về nguồn gốc duy nhất và người nhận cuối cùng. Ngay cả khi hai người tham gia trao đổi vốn theo cách gián tiếp, một phương pháp tìm đường được thiết kế phù hợp sẽ tiết lộ nguồn gốc và người nhận cuối cùng. Người ta cũng nghi ngờ rằng Bitcoin không đáp ứng thuộc tính thứ hai. Một số nhà nghiên cứu đã nêu ([33, 35, 29, 31]) rằng việc phân tích blockchain cẩn thận có thể tiết lộ mối liên hệ giữa người dùng mạng Bitcoin và các giao dịch của họ. Mặc dù một số phương pháp được dbị tranh cãi [25], người ta nghi ngờ rằng nhiều thông tin cá nhân ẩn có thể được trích xuất từ cơ sở dữ liệu công cộng. Việc Bitcoin không đáp ứng được hai thuộc tính được nêu ở trên khiến chúng tôi kết luận rằng đó là không phải là một hệ thống tiền điện tử ẩn danh mà là một hệ thống tiền điện tử giả ẩn danh. Người dùng đã nhanh chóng phát triển giải pháp khắc phục nhược điểm này. Hai giải pháp trực tiếp là “dịch vụ rửa tiền” [2] và sự phát triển của các phương pháp phân tán [3, 4]. Cả hai giải pháp đều dựa trên ý tưởng trộn một số giao dịch công khai và gửi chúng qua một số địa chỉ trung gian; đến lượt nó gặp phải nhược điểm là cần có bên thứ ba đáng tin cậy. Gần đây, một kế hoạch sáng tạo hơn đã được đề xuất bởi I. Miers et al. [28]: “Zerocoin”. Zerocoin sử dụng bộ tích lũy một chiều bằng mật mã và bằng chứng không có kiến thức cho phép người dùng “chuyển đổi” bitcoin thành zerocoin và chi tiêu chúng bằng cách sử dụng bằng chứng quyền sở hữu ẩn danh thay vì chữ ký số dựa trên khóa công khai rõ ràng. Tuy nhiên, những bằng chứng tri thức như vậy có một hằng số nhưng kích thước bất tiện - khoảng 30kb (dựa trên giới hạn Bitcoin ngày nay), điều này khiến đề xuất không thực tế. Các tác giả thừa nhận rằng giao thức này khó có thể được đa số chấp nhận Bitcoin người dùng [5]. 2.2 Hàm proof-of-work Bitcoin người sáng tạo Satoshi Nakamoto đã mô tả thuật toán ra quyết định đa số là “mộtCPU-một phiếu bầu” và sử dụng chức năng định giá giới hạn CPU (gấp đôi SHA-256) cho proof-of-work của mình kế hoạch. Vì người dùng bỏ phiếu cho lịch sử giao dịch duy nhất [1] nên tính hợp lý và tính nhất quán của quá trình này là điều kiện quan trọng cho toàn bộ hệ thống. Tính bảo mật của mô hình này có hai nhược điểm. Đầu tiên, nó yêu cầu 51% dung lượng mạng sức mạnh khai thác nằm dưới sự kiểm soát của người dùng trung thực. Thứ hai, tiến độ của hệ thống (sửa lỗi, sửa lỗi bảo mật, v.v...) yêu cầu đại đa số người dùng phải ủng hộ và đồng ý với thay đổi (điều này xảy ra khi người dùng cập nhật phần mềm ví của họ) [6].Cuối cùng, cuộc bỏ phiếu tương tự này cơ chế này cũng được sử dụng cho các cuộc thăm dò ý kiến tập thể về việc triển khai một số tính năng [7]. Điều này cho phép chúng ta phỏng đoán các tính chất phải được thỏa mãn bởi proof-of-work chức năng định giá. Chức năng như vậy không được cho phép người tham gia mạng có ảnh hưởng đáng kể lợi thế hơn người tham gia khác; nó đòi hỏi sự tương đương giữa phần cứng thông thường và cao chi phí của các thiết bị tùy chỉnh. Từ các ví dụ gần đây [8], chúng ta có thể thấy rằng hàm SHA-256 được sử dụng trong kiến trúc Bitcoin không có thuộc tính này khi việc khai thác trở nên hiệu quả hơn trên GPU và thiết bị ASIC khi so sánh với CPU cao cấp. Vì vậy, Bitcoin tạo điều kiện thuận lợi cho khoảng cách lớn giữa quyền biểu quyết của người tham gia vì nó vi phạm nguyên tắc “một CPU-một phiếu bầu” do chủ sở hữu GPU và ASIC sở hữu quyền biểu quyết lớn hơn nhiều khi so sánh với chủ sở hữu CPU. Đó là một ví dụ cổ điển về Nguyên tắc Pareto trong đó 20% người tham gia hệ thống kiểm soát hơn 80% số phiếu bầu. Người ta có thể lập luận rằng sự bất bình đẳng như vậy không liên quan đến an ninh mạng vì nó không số lượng nhỏ người tham gia kiểm soát đa số phiếu bầu nhưng tính trung thực của những điều này những người tham gia quan trọng. Tuy nhiên, lập luận như vậy có phần sai sót vì nó đúng hơn là khả năng phần cứng chuyên dụng giá rẻ xuất hiện thay vì sự trung thực của người tham gia đặt ra một mối đe dọa. Để chứng minh điều này, chúng ta hãy lấy ví dụ sau. Giả sử có ác tâm cá nhân đạt được sức mạnh khai thác đáng kể bằng cách tạo ra trang trại khai thác của riêng mình thông qua giá rẻ 2 4 Có lẽ, nếu mỗi người dùng giúp họ ẩn danh bằng cách luôn tạo một địa chỉ mới đối với MỌI khoản thanh toán đã nhận được (điều này thật vô lý nhưng về mặt kỹ thuật là cách "chính xác" để thực hiện), và nếu mọi người dùng giúp đỡ những người khác ẩn danh bằng cách nhấn mạnh rằng họ không bao giờ gửi tiền đến cùng một địa chỉ BTC hai lần, thì Bitcoin vẫn sẽ chỉ tình cờ vượt qua kiểm tra khả năng không liên kết. Tại sao? Dữ liệu người tiêu dùng có thể được sử dụng để tìm hiểu một lượng thông tin đáng kinh ngạc về con người mọi lúc. Hãy xem, ví dụ http://www.applieddatalabs.com/content/target-knows-it-shows Bây giờ, hãy tưởng tượng đây là 20 năm sau và hãy tưởng tượng thêm rằng Target không chỉ biết về thói quen mua hàng của bạn tại Target nhưng họ đã khai thác blockchain cho TẤT CẢ MUA HÀNG CÁ NHÂN CỦA BẠN BẰNG VÍ COINBASE CỦA BẠN TRONG TRƯỚC ĐÂY MƯỜI HAI NĂM. Họ sẽ nói "Này anh bạn, tối nay anh có muốn mua thuốc ho không, anh sẽ không mua đâu." ngày mai sẽ khỏe." Điều này có thể không xảy ra nếu việc sắp xếp theo nhiều bên được khai thác đúng cách. Hãy xem, ví dụ, điều nàybài đăng trên blog: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ Tôi không hoàn toàn bị thuyết phục về phép toán trên đó, nhưng ... từng bài một, phải không? Cần trích dẫn. Trong khi giao thức Zerocoin (độc lập) có thể không hiệu quả thì Zerocash giao thức dường như đã thực hiện một giao dịch có kích thước 1kb. Dự án đó được hỗ trợ bởi tất nhiên là quân đội Hoa Kỳ và Israel, vậy nên ai biết được sức mạnh của nó. Mặt khác Mặt khác, không ai muốn có thể chi tiêu mà không có sự giám sát hơn quân đội. http://zerocash-project.org/ Tôi không bị thuyết phục... xem, ví dụ: http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf Trích dẫn lời của nhà phát triển tiền điện tử Maurice Planck (có lẽ là một bút danh) từ tiền điện tử diễn đàn: "Zerocoin, Zerocash. Tôi phải thừa nhận đây là công nghệ tiên tiến nhất. Vâng, trích dẫn ở trên là từ phân tích phiên bản trước của giao thức. Theo hiểu biết của tôi, nó không phải 288, nhưng 384 byte, nhưng dù sao đây cũng là tin tốt. Họ đã sử dụng một kỹ thuật hoàn toàn mới có tên là SNARK, kỹ thuật này có một số nhược điểm nhất định: ví dụ: cơ sở dữ liệu ban đầu lớn về các tham số công khai cần thiết để tạo chữ ký (hơn 1 GB) và thời gian đáng kể cần thiết để tạo một giao dịch (hơn một phút). Cuối cùng, họ đang sử dụng một tiền điện tử non trẻ, mà tôi đã đề cập là một ý tưởng đáng tranh cãi: https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. Thu 03/04/2014 7:56 chiều Một chức năng được thực hiện trong CPU và không phù hợp với GPU, FPGA hoặc ASIC tính toán. "Câu đố" được sử dụng trong proof-of-work được gọi là hàm định giá, hàm chi phí hoặc chức năng câu đố.

được truy tìm rõ ràng về nguồn gốc duy nhất và người nhận cuối cùng. Ngay cả khi hai người tham gia trao đổi vốn theo cách gián tiếp, một phương pháp tìm đường được thiết kế phù hợp sẽ tiết lộ nguồn gốc và người nhận cuối cùng. Người ta cũng nghi ngờ rằng Bitcoin không đáp ứng thuộc tính thứ hai. Một số nhà nghiên cứu đã nêu ([33, 35, 29, 31]) rằng việc phân tích blockchain cẩn thận có thể tiết lộ mối liên hệ giữa người dùng mạng Bitcoin và các giao dịch của họ. Mặc dù một số phương pháp được đang tranh chấp [25], người ta nghi ngờ rằng có thể trích xuất nhiều thông tin cá nhân ẩn từ cơ sở dữ liệu công cộng. Việc Bitcoin không thỏa mãn hai thuộc tính được nêu ở trên khiến chúng tôi kết luận rằng đó là không phải là một hệ thống tiền điện tử ẩn danh mà là một hệ thống tiền điện tử giả ẩn danh. Người dùng đã nhanh chóng phát triển giải pháp khắc phục nhược điểm này. Hai giải pháp trực tiếp là “dịch vụ rửa tiền” [2] và sự phát triển của các phương pháp phân tán [3, 4]. Cả hai giải pháp đều dựa trên ý tưởng trộn một số giao dịch công khai và gửi chúng qua một số địa chỉ trung gian; đến lượt nó gặp phải nhược điểm là cần có bên thứ ba đáng tin cậy. Gần đây, một kế hoạch sáng tạo hơn đã được đề xuất bởi I. Miers et al. [28]: “Zerocoin”. Zerocoin sử dụng bộ tích lũy một chiều bằng mật mã và bằng chứng không có kiến thức cho phép người dùng “chuyển đổi” bitcoin thành zerocoin và chi tiêu chúng bằng cách sử dụng bằng chứng quyền sở hữu ẩn danh thay vì chữ ký số dựa trên khóa công khai rõ ràng. Tuy nhiên, những bằng chứng tri thức như vậy có một hằng số nhưng kích thước không thuận tiện - khoảng 30kb (dựa trên giới hạn Bitcoin của ngày hôm nay), điều này đưa ra đề xuất không thực tế. Các tác giả thừa nhận rằng giao thức này khó có thể được đa số chấp nhận Bitcoin người dùng [5]. 2.2 Hàm proof-of-work Bitcoin người sáng tạo Satoshi Nakamoto đã mô tả thuật toán ra quyết định đa số là “mộtCPU-một phiếu bầu” và sử dụng chức năng định giá giới hạn CPU (gấp đôi SHA-256) cho proof-of-work của mình kế hoạch. Vì người dùng bỏ phiếu cho lịch sử giao dịch duy nhất [1] nên tính hợp lý và tính nhất quán của quá trình này là điều kiện quan trọng cho toàn bộ hệ thống. Tính bảo mật của mô hình này có hai nhược điểm. Đầu tiên, nó yêu cầu 51% dung lượng mạng sức mạnh khai thác nằm dưới sự kiểm soát của người dùng trung thực. Thứ hai, tiến độ của hệ thống (sửa lỗi, sửa lỗi bảo mật, v.v...) yêu cầu đại đa số người dùng phải ủng hộ và đồng ý với thay đổi (điều này xảy ra khi người dùng cập nhật phần mềm ví của họ) [6].Cuối cùng, cuộc bỏ phiếu tương tự này cơ chế này cũng được sử dụng cho các cuộc thăm dò ý kiến tập thể về việc triển khai một số tính năng [7]. Điều này cho phép chúng ta phỏng đoán các tính chất phải được thỏa mãn bởi proof-of-work chức năng định giá. Chức năng như vậy không được cho phép người tham gia mạng có ảnh hưởng đáng kể lợi thế hơn người tham gia khác; nó đòi hỏi sự tương đương giữa phần cứng thông thường và cao chi phí của các thiết bị tùy chỉnh. Từ các ví dụ gần đây [8], chúng ta có thể thấy rằng hàm SHA-256 được sử dụng trong kiến trúc Bitcoin không sở hữu thuộc tính này khi việc khai thác trở nên hiệu quả hơn trên GPU và thiết bị ASIC khi so sánh với CPU cao cấp. Vì vậy, Bitcoin tạo điều kiện thuận lợi cho khoảng cách lớn giữa quyền biểu quyết của người tham gia vì nó vi phạm nguyên tắc “một CPU-một phiếu bầu” do chủ sở hữu GPU và ASIC sở hữu quyền biểu quyết lớn hơn nhiều khi so sánh với chủ sở hữu CPU. Đó là một ví dụ cổ điển về Nguyên tắc Pareto trong đó 20% người tham gia hệ thống kiểm soát hơn 80% số phiếu bầu. Người ta có thể lập luận rằng sự bất bình đẳng như vậy không liên quan đến an ninh mạng vì nó không số lượng nhỏ người tham gia kiểm soát đa số phiếu bầu nhưng tính trung thực của những điều này những người tham gia quan trọng. Tuy nhiên, lập luận như vậy có phần sai sót vì nó đúng hơn là khả năng phần cứng chuyên dụng giá rẻ xuất hiện thay vì sự trung thực của người tham gia đặt ra một mối đe dọa. Để chứng minh điều này, chúng ta hãy lấy ví dụ sau. Giả sử có ác tâm cá nhân đạt được sức mạnh khai thác đáng kể bằng cách tạo ra trang trại khai thác của riêng mình thông qua giá rẻ 2 được truy tìm rõ ràng về nguồn gốc duy nhất và người nhận cuối cùng. Ngay cả khi hai người tham gia trao đổi vốn theo cách gián tiếp, một phương pháp tìm đường được thiết kế phù hợp sẽ tiết lộ nguồn gốc và người nhận cuối cùng. Người ta cũng nghi ngờ rằng Bitcoin không đáp ứng thuộc tính thứ hai. Một số nhà nghiên cứu đã nêu ([33, 35, 29, 31]) rằng việc phân tích blockchain cẩn thận có thể tiết lộ mối liên hệ giữa người dùng mạng Bitcoin và các giao dịch của họ. Mặc dù một số phương pháp được dbị tranh cãi [25], người ta nghi ngờ rằng nhiều thông tin cá nhân ẩn có thể được trích xuất từ cơ sở dữ liệu công cộng. Việc Bitcoin không đáp ứng được hai thuộc tính được nêu ở trên khiến chúng tôi kết luận rằng đó là không phải là một hệ thống tiền điện tử ẩn danh mà là một hệ thống tiền điện tử giả ẩn danh. Người dùng đã nhanh chóng phát triển giải pháp khắc phục nhược điểm này. Hai giải pháp trực tiếp là “dịch vụ rửa tiền” [2] và sự phát triển của các phương pháp phân tán [3, 4]. Cả hai giải pháp đều dựa trên ý tưởng trộn một số giao dịch công khai và gửi chúng qua một số địa chỉ trung gian; đến lượt nó gặp phải nhược điểm là cần có bên thứ ba đáng tin cậy. Gần đây, một kế hoạch sáng tạo hơn đã được đề xuất bởi I. Miers et al. [28]: “Zerocoin”. Zerocoin sử dụng bộ tích lũy một chiều bằng mật mã và bằng chứng không có kiến thức cho phép người dùng “chuyển đổi” bitcoin thành zerocoin và chi tiêu chúng bằng cách sử dụng bằng chứng quyền sở hữu ẩn danh thay vì chữ ký số dựa trên khóa công khai rõ ràng. Tuy nhiên, những bằng chứng tri thức như vậy có một hằng số nhưng kích thước bất tiện - khoảng 30kb (dựa trên giới hạn Bitcoin ngày nay), điều này khiến đề xuất không thực tế. Các tác giả thừa nhận rằng giao thức này khó có thể được đa số chấp nhận Bitcoin người dùng [5]. 2.2 Hàm proof-of-work Bitcoin người sáng tạo Satoshi Nakamoto đã mô tả thuật toán ra quyết định theo đa số là “mộtCPU-một phiếu bầu” và sử dụng chức năng định giá giới hạn CPU (gấp đôi SHA-256) cho proof-of-work của mình kế hoạch. Vì người dùng bỏ phiếu cho lịch sử giao dịch duy nhất [1] nên tính hợp lý và tính nhất quán của quá trình này là điều kiện quan trọng cho toàn bộ hệ thống. Tính bảo mật của mô hình này có hai nhược điểm. Đầu tiên, nó yêu cầu 51% dung lượng mạng sức mạnh khai thác nằm dưới sự kiểm soát của người dùng trung thực. Thứ hai, tiến độ của hệ thống (sửa lỗi, sửa lỗi bảo mật, v.v...) yêu cầu đại đa số người dùng phải ủng hộ và đồng ý với thay đổi (điều này xảy ra khi người dùng cập nhật phần mềm ví của họ) [6].Cuối cùng, cuộc bỏ phiếu tương tự này cơ chế này cũng được sử dụng cho các cuộc thăm dò ý kiến tập thể về việc triển khai một số tính năng [7]. Điều này cho phép chúng ta phỏng đoán các tính chất phải được thỏa mãn bởi proof-of-work chức năng định giá. Chức năng như vậy không được cho phép người tham gia mạng có ảnh hưởng đáng kể lợi thế hơn người tham gia khác; nó đòi hỏi sự tương đương giữa phần cứng thông thường và cao chi phí của các thiết bị tùy chỉnh. Từ các ví dụ gần đây [8], chúng ta có thể thấy rằng hàm SHA-256 được sử dụng trong kiến trúc Bitcoin không sở hữu thuộc tính này khi việc khai thác trở nên hiệu quả hơn trên GPU và thiết bị ASIC khi so sánh với CPU cao cấp. Vì vậy, Bitcoin tạo điều kiện thuận lợi cho khoảng cách lớn giữa quyền biểu quyết của người tham gia vì nó vi phạm nguyên tắc “một CPU-một phiếu bầu” do chủ sở hữu GPU và ASIC sở hữu quyền biểu quyết lớn hơn nhiều khi so sánh với chủ sở hữu CPU. Đó là một ví dụ cổ điển về Nguyên tắc Pareto trong đó 20% người tham gia hệ thống kiểm soát hơn 80% số phiếu bầu. Người ta có thể lập luận rằng sự bất bình đẳng như vậy không liên quan đến an ninh mạng vì nó không số lượng nhỏ người tham gia kiểm soát đa số phiếu bầu nhưng tính trung thực của những điều này những người tham gia quan trọng. Tuy nhiên, lập luận như vậy có phần sai sót vì nó đúng hơn là khả năng phần cứng chuyên dụng giá rẻ xuất hiện thay vì sự trung thực của người tham gia đặt ra một mối đe dọa. Để chứng minh điều này, chúng ta hãy lấy ví dụ sau. Giả sử có ác tâm cá nhân đạt được sức mạnh khai thác đáng kể bằng cách tạo ra trang trại khai thác của riêng mình thông qua giá rẻ 2 Bình luận ở trang 2

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.

Công nghệ CryptoNote

Bây giờ chúng ta đã đề cập đến những hạn chế của công nghệ Bitcoin, chúng ta sẽ tập trung vào trình bày các tính năng của CryptoNote.

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

Giao dịch không thể theo dõi

Trong phần này, chúng tôi đề xuất một sơ đồ các giao dịch ẩn danh hoàn toàn thỏa mãn cả khả năng không thể theo dõi và điều kiện không thể liên kết. Một tính năng quan trọng trong giải pháp của chúng tôi là tính tự chủ của nó: người gửi không bắt buộc phải hợp tác với người dùng khác hoặc bên thứ ba đáng tin cậy để thực hiện các giao dịch của mình; do đó mỗi người tham gia tạo ra một lưu lượng truy cập bìa một cách độc lập. 4.1 Bình luận văn học Sơ đồ của chúng tôi dựa trên nguyên tắc mật mã được gọi là chữ ký nhóm. Lần đầu tiên được trình bày bởi D. Chaum và E. van Heyst [19], nó cho phép người dùng ký vào tin nhắn của mình thay mặt cho nhóm. Sau khi ký tin nhắn, người dùng cung cấp (vì mục đích xác minh) chứ không phải thông tin công khai của riêng mình 1Đây được gọi là “giới hạn mềm” — hạn chế máy khách tham chiếu để tạo khối mới. Tối đa cứng của kích thước khối có thể là 1 MB 4 chúng nếu cần thiết sẽ gây ra những hạn chế chính. Thật không may, thật khó để dự đoán khi nào các hằng số có thể cần phải được thay đổi và việc thay thế chúng có thể dẫn đến những hậu quả khủng khiếp. Một ví dụ điển hình về thay đổi giới hạn được mã hóa cứng dẫn đến hậu quả tai hại là khối giới hạn kích thước được đặt thành 250kb1. Giới hạn này đủ để chứa khoảng 10000 giao dịch tiêu chuẩn. trong đầu năm 2013, giới hạn này gần như đã đạt được và đạt được thỏa thuận nhằm tăng giới hạn. Thay đổi được triển khai trong phiên bản ví 0.8 và kết thúc bằng việc chia chuỗi 24 khối và một cuộc tấn công chi tiêu gấp đôi thành công [9]. Mặc dù lỗi không nằm trong giao thức Bitcoin nhưng đúng hơn là trong công cụ cơ sở dữ liệu, nó có thể dễ dàng bị phát hiện bằng một bài kiểm tra căng thẳng đơn giản nếu có không có giới hạn kích thước khối được giới thiệu một cách giả tạo. Các hằng số cũng hoạt động như một dạng điểm tập trung. Bất chấp bản chất ngang hàng của Bitcoin, phần lớn các nút sử dụng ứng dụng khách tham chiếu chính thức [10] được phát triển bởi một nhóm nhỏ người Nhóm này đưa ra quyết định thực hiện các thay đổi đối với giao thức và hầu hết mọi người đều chấp nhận những thay đổi này bất kể “tính đúng đắn” của chúng. Một số quyết định gây ra các cuộc thảo luận sôi nổi và thậm chí còn kêu gọi tẩy chay [11], điều này cho thấy rằng cộng đồng và các nhà phát triển có thể không đồng ý ở một số điểm quan trọng. Do đó, có vẻ hợp lý khi có một giao thức với các biến do người dùng cấu hình và tự điều chỉnh như một cách có thể để tránh những vấn đề này. 2,5 Tập lệnh cồng kềnh Hệ thống tập lệnh trong Bitcoin là một tính năng nặng nề và phức tạp. Nó có khả năng cho phép người ta tạo ra các giao dịch phức tạp [12], nhưng một số tính năng của nó bị vô hiệu hóa do lo ngại về bảo mật và một số thậm chí chưa bao giờ được sử dụng [13]. Kịch bản (bao gồm cả phần người gửi và người nhận) đối với giao dịch phổ biến nhất trong Bitcoin trông như thế này: OP DUP OP HASH160 OP XÁC MINH BẰNG CÁCH OP CHECKSIG. Tập lệnh dài 164 byte trong khi mục đích duy nhất của nó là kiểm tra xem người nhận có sở hữu khóa bí mật cần thiết để xác minh chữ ký của mình. 3 Công nghệ CryptoNote Bây giờ chúng ta đã đề cập đến những hạn chế của công nghệ Bitcoin, chúng ta sẽ tập trung vào trình bày các tính năng của CryptoNote. 4 Giao dịch không thể theo dõi Trong phần này, chúng tôi đề xuất một sơ đồ các giao dịch ẩn danh hoàn toàn thỏa mãn cả khả năng không thể theo dõi và điều kiện không thể liên kết. Một tính năng quan trọng trong giải pháp của chúng tôi là tính tự chủ của nó: người gửi không bắt buộc phải hợp tác với người dùng khác hoặc bên thứ ba đáng tin cậy để thực hiện các giao dịch của mình; do đó mỗi người tham gia tạo ra một lưu lượng truy cập bìa một cách độc lập. 4.1 Bình luận văn học Sơ đồ của chúng tôi dựa trên nguyên tắc mật mã được gọi là chữ ký nhóm. Lần đầu tiên được trình bày bởi D. Chaum và E. van Heyst [19], nó cho phép người dùng ký vào tin nhắn của mình thay mặt cho nhóm. Sau khi ký tin nhắn, người dùng cung cấp (vì mục đích xác minh) chứ không phải thông tin công khai của riêng mình 1Đây được gọi là “giới hạn mềm” — hạn chế máy khách tham chiếu để tạo khối mới. Tối đa cứng của kích thước khối có thể là 1 MB 4 7 Nhìn lại, có vẻ như đó là một sai lầm lớn khi biến kích thước khối thành giới hạn cố định trong mã. Visa và Mastercard có thể xử lý hàng nghìn, nếu không phải hàng trăm nghìn giao dịch mỗi giây. Tuy nhiên, các giao dịch diễn ra theo một quá trình ngẫu nhiên, đôi khi diễn ra theo từng đợt lớn, có khi im lặng hàng giờ. Hãy nghĩ về khối lượng trao đổi bitcoin. Có vẻ như là một ý tưởng tuyệt vời để thiết kế một hệ thống tăng kích thước khối một cách linh hoạt khi cần thiết để đáp ứng lưu lượng giao dịch tăng lên và giảm nó một cách linh hoạt khi cần thiết tăng hiệu quả băng thông. Bây giờ, hãy áp dụng khái niệm đó cho tất cả các tham số của hệ thống. Và miễn là chúng ta cẩn thận giữ hệ thống thoát khỏi sự mất kiểm soát, sh nàysẽ hoạt động tuyệt vời. https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki Như đã đề cập trước đó, nếu các biến số tự điều chỉnh thì phải áp dụng một số biện pháp kiểm soát để giữ cho hệ thống không bị mất kiểm soát. Chúng ta sẽ đạt được điều đó. Nếu đây là một bài viết trên wikipedia thì nó sẽ được gắn nhãn "STUB". Mặc dù chúng tôi chắc chắn đang ở trong phần giới thiệu "Sự cố của Bitcoin", tôi muốn giải thích chi tiết ở đây. Tại sao là 164 byte không được chấp nhận cho tác vụ "kiểm tra khóa bí mật" đơn giản? Họ có thể nhận được nhỏ đến mức nào một ngôn ngữ kịch bản hợp lý? Tuy nhiên, tôi không phải là nhà khoa học máy tính. http://download.springer.com/static/pdf/412/chp%253A10.1007%252F3-540-46416-6_22.pdf?auth66=140 Chữ ký nhóm, như được mô tả, yêu cầu người quản lý nhóm. Người quản lý nhóm có khả năng hủy bỏ sự ẩn danh của bất kỳ người ký nào. Do đó, có sự tập trung sẵn có trong một nhóm sơ đồ chữ ký.

chìa khóa, mà là chìa khóa của tất cả người dùng trong nhóm của anh ấy. Người xác minh bị thuyết phục rằng người ký thực sự là một thành viên của nhóm, nhưng không thể xác định riêng người ký. Giao thức ban đầu yêu cầu một bên thứ ba đáng tin cậy (được gọi là Người quản lý nhóm) và anh ta người duy nhất có thể tìm ra người ký. Phiên bản tiếp theo được gọi là chữ ký vòng, được giới thiệu bởi Rivest và cộng sự. trong [34], là một chương trình tự trị không có Trình quản lý nhóm và ẩn danh thu hồi. Nhiều sửa đổi khác nhau của sơ đồ này xuất hiện sau đó: chữ ký vòng có thể liên kết [26, 27, 17] được phép xác định xem hai chữ ký có được tạo bởi cùng một thành viên nhóm hay không, có thể theo dõi được chữ ký vòng [24, 23] hạn chế tính ẩn danh quá mức bằng cách cung cấp khả năng theo dõi người ký hai thông báo liên quan đến cùng một siêu thông tin (hoặc “thẻ” theo thuật ngữ [24]). Một cấu trúc mật mã tương tự còn được gọi là chữ ký nhóm đặc biệt [16, 38]. Nó nhấn mạnh sự hình thành nhóm tùy ý, trong khi các sơ đồ chữ ký nhóm/vòng ngụ ý một tập hợp các thành viên cố định. Phần lớn giải pháp của chúng tôi dựa trên tác phẩm “Chữ ký vòng có thể theo dõi” của E. Fujisaki và K. Suzuki [24]. Để phân biệt thuật toán gốc và thuật toán sửa đổi của chúng tôi, chúng tôi sẽ gọi cái sau là chữ ký vòng một lần, nhấn mạnh khả năng của người dùng chỉ tạo ra một chữ ký hợp lệ chữ ký dưới khóa riêng của mình. Chúng tôi đã làm suy yếu đặc tính truy xuất nguồn gốc và giữ nguyên khả năng liên kết chỉ để cung cấp tính chất một lần: khóa chung có thể xuất hiện trong nhiều bộ xác minh nước ngoài và khóa riêng có thể được sử dụng để tạo chữ ký ẩn danh duy nhất. Trường hợp chi tiêu gấp đôi thử 2 chữ ký này sẽ được liên kết với nhau nhưng việc tiết lộ người ký là không cần thiết cho mục đích của chúng tôi. 4.2 định nghĩa 4.2.1 Thông số đường cong elip Là thuật toán chữ ký cơ sở, chúng tôi đã chọn sử dụng lược đồ nhanh EdDSA, được phát triển và được thực hiện bởi D.J. Bernstein và cộng sự. [18]. Giống như ECDSA của Bitcoin nó dựa trên đường cong elip vấn đề logarit rời rạc, do đó lược đồ của chúng tôi cũng có thể được áp dụng cho Bitcoin trong tương lai. Các thông số phổ biến là: q: số nguyên tố; q = 2255 −19; d: một phần tử của Fq; d = −121665/121666; E: phương trình đường cong elip; −x2 + y2 = 1 + dx2y2; G: điểm cơ sở; G = (x, −4/5); l: thứ tự nguyên tố của điểm cơ sở; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): hàm mật mã hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): hàm hash tất định \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Thuật ngữ Quyền riêng tư nâng cao yêu cầu thuật ngữ mới không được nhầm lẫn với các thực thể Bitcoin. khóa riêng ec-key là khóa riêng có đường cong elip tiêu chuẩn: một số \(a \in [1, l - 1]\); public ec-key là khóa công khai có đường cong elip tiêu chuẩn: a điểm A = aG; cặp khóa dùng một lần là một cặp khóa điện tử riêng tư và công khai; 5 chìa khóa, mà là chìa khóa của tất cả người dùng trong nhóm của anh ấy. Người xác minh bị thuyết phục rằng người ký thực sự là một thành viên của nhóm, nhưng không thể xác định riêng người ký. Giao thức ban đầu yêu cầu một bên thứ ba đáng tin cậy (được gọi là Người quản lý nhóm) và anh ta người duy nhất có thể tìm ra người ký. Phiên bản tiếp theo được gọi là chữ ký vòng, được giới thiệu bởi Rivest và cộng sự. trong [34], là một chương trình tự trị không có Trình quản lý nhóm và ẩn danh thu hồi. Nhiều sửa đổi khác nhau của sơ đồ này xuất hiện sau đó: chữ ký vòng có thể liên kết [26, 27, 17] được phép xác định xem hai chữ ký có được tạo bởi cùng một thành viên nhóm hay không, có thể theo dõi được chữ ký vòng [24, 23] hạn chế tính ẩn danh quá mức bằng cách cung cấp khả năng theo dõi người ký hai thông báo liên quan đến cùng một siêu thông tin (hoặc “thẻ” theo thuật ngữ [24]). Một cấu trúc mật mã tương tự còn được gọi là chữ ký nhóm đặc biệt [16, 38]. Nó nhấn mạnh sự hình thành nhóm tùy ý, trong khi các sơ đồ chữ ký nhóm/vòng ngụ ý một tập hợp các thành viên cố định. Phần lớn giải pháp của chúng tôi dựa trên tác phẩm “Chữ ký vòng có thể theo dõi” của E. Fujisaki và K. Suzuki [24]. Để phân biệt thuật toán gốc và thuật toán sửa đổi của chúng tôi, chúng tôi sẽ gọi cái sau là chữ ký vòng một lần, nhấn mạnh khả năng của người dùng chỉ tạo ra một chữ ký hợp lệ chữ ký dưới khóa riêng của mình. Chúng tôi đã làm suy yếu đặc tính truy xuất nguồn gốc và giữ nguyên khả năng liên kết chỉ để cung cấp tính chất một lần: khóa công khai có thể xuất hiện trong nhiều bộ xác minh nước ngoài và khóa riêng có thể được sử dụng để tạo chữ ký ẩn danh duy nhất. Trường hợp chi tiêu gấp đôi thử 2 chữ ký này sẽ được liên kết với nhau nhưng việc tiết lộ người ký là không cần thiết cho mục đích của chúng tôi. 4.2 định nghĩa 4.2.1 Thông số đường cong elip Là thuật toán chữ ký cơ sở, chúng tôi chọne sử dụng sơ đồ nhanh EdDSA, được phát triển và được thực hiện bởi D.J. Bernstein và cộng sự. [18]. Giống như ECDSA của Bitcoin nó dựa trên đường cong elip vấn đề logarit rời rạc, do đó lược đồ của chúng tôi cũng có thể được áp dụng cho Bitcoin trong tương lai. Các thông số phổ biến là: q: số nguyên tố; q = 2255 −19; d: một phần tử của Fq; d = −121665/121666; E: phương trình đường cong elip; −x2 + y2 = 1 + dx2y2; G: điểm cơ sở; G = (x, −4/5); l: thứ tự nguyên tố của điểm cơ sở; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): hàm mật mã hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): hàm hash tất định \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Thuật ngữ Quyền riêng tư nâng cao yêu cầu thuật ngữ mới không được nhầm lẫn với các thực thể Bitcoin. khóa riêng ec-key là khóa riêng có đường cong elip tiêu chuẩn: một số \(a \in [1, l - 1]\); public ec-key là khóa công khai có đường cong elip tiêu chuẩn: a điểm A = aG; cặp khóa dùng một lần là một cặp khóa điện tử riêng tư và công khai; 5 8 Chữ ký vòng hoạt động như thế này: Alex muốn tiết lộ một thông điệp tới WikiLeaks về chủ nhân của cô ấy. Mỗi nhân viên trong Công ty của cô đều có một cặp khóa riêng/chung (Ri, Ui). Cô ấy sáng tác chữ ký của cô ấy với thông tin đầu vào được đặt là tin nhắn của cô ấy, m, khóa riêng của cô ấy, Ri và MỌI NGƯỜI khóa công khai, (Ui;i=1...n). Bất kỳ ai (không biết bất kỳ khóa riêng nào) đều có thể xác minh dễ dàng rằng cặp some (Rj, Uj) phải được sử dụng để tạo chữ ký... ai đó làm việc cho người chủ của Alex... nhưng về cơ bản đó chỉ là phỏng đoán ngẫu nhiên để tìm ra đó có thể là ai. 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 Lưu ý rằng chữ ký vòng có thể liên kết được mô tả ở đây trái ngược với "không thể liên kết" được mô tả ở trên. Ở đây, chúng tôi chặn hai tin nhắn và chúng tôi có thể xác định xem liệu chúng có giống nhau không bên đã gửi chúng, mặc dù chúng tôi vẫn không thể xác định được bên đó là ai. các định nghĩa "không thể liên kết" được sử dụng để xây dựng Cryptonote có nghĩa là chúng tôi không thể xác định liệu cùng một bên đang nhận chúng. Do đó, những gì chúng ta thực sự có ở đây là BỐN điều đang diễn ra. Một hệ thống có thể được liên kết hoặc không thể liên kết được, tùy thuộc vào việc có thể xác định được người gửi của hai tin nhắn giống nhau (bất kể điều này có yêu cầu thu hồi tính ẩn danh hay không). Và một hệ thống có thể không thể liên kết được hoặc không thể hủy liên kết được, tùy thuộc vào việc có thể thực hiện được hay không. xác định xem người nhận hai tin nhắn có giống nhau hay không (bất kể có hay không điều này yêu cầu thu hồi ẩn danh). Xin đừng trách tôi vì thuật ngữ khủng khiếp này. Các nhà lý thuyết đồ thị có lẽ nên hài lòng. Một số bạn có thể cảm thấy thoải mái hơn với "có thể liên kết được với người nhận" so với "có thể liên kết được với người gửi". http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Khi tôi đọc điều này, đây có vẻ là một tính năng ngớ ngẩn. Sau đó tôi đọc được rằng nó có thể là một tính năng dành cho bỏ phiếu điện tử, và điều đó có vẻ hợp lý. Thật tuyệt, từ quan điểm đó. Nhưng tôi không hoàn toàn chắc chắn về việc cố tình thực hiện chữ ký vòng có thể theo dõi. http://search.ieice.org/bin/summary.php?id=e95-a_1_151

chìa khóa, mà là chìa khóa của tất cả người dùng trong nhóm của anh ấy. Người xác minh bị thuyết phục rằng người ký thực sự là một thành viên của nhóm, nhưng không thể xác định riêng người ký. Giao thức ban đầu yêu cầu một bên thứ ba đáng tin cậy (được gọi là Người quản lý nhóm) và anh ta người duy nhất có thể tìm ra người ký. Phiên bản tiếp theo được gọi là chữ ký vòng, được giới thiệu bởi Rivest và cộng sự. trong [34], là một chương trình tự trị không có Trình quản lý nhóm và ẩn danh thu hồi. Nhiều sửa đổi khác nhau của sơ đồ này xuất hiện sau đó: chữ ký vòng có thể liên kết [26, 27, 17] được phép xác định xem hai chữ ký có được tạo bởi cùng một thành viên nhóm hay không, có thể theo dõi được chữ ký vòng [24, 23] hạn chế tính ẩn danh quá mức bằng cách cung cấp khả năng theo dõi người ký hai thông báo liên quan đến cùng một siêu thông tin (hoặc “thẻ” theo thuật ngữ [24]). Một cấu trúc mật mã tương tự còn được gọi là chữ ký nhóm đặc biệt [16, 38]. Nó nhấn mạnh sự hình thành nhóm tùy ý, trong khi các sơ đồ chữ ký nhóm/vòng ngụ ý một tập hợp các thành viên cố định. Phần lớn giải pháp của chúng tôi dựa trên tác phẩm “Chữ ký vòng có thể theo dõi” của E. Fujisaki và K. Suzuki [24]. Để phân biệt thuật toán gốc và thuật toán sửa đổi của chúng tôi, chúng tôi sẽ gọi cái sau là chữ ký vòng một lần, nhấn mạnh khả năng của người dùng chỉ tạo ra một chữ ký hợp lệ chữ ký dưới khóa riêng của mình. Chúng tôi đã làm suy yếu đặc tính truy xuất nguồn gốc và giữ nguyên khả năng liên kết chỉ để cung cấp tính chất một lần: khóa công khai có thể xuất hiện trong nhiều bộ xác minh nước ngoài và khóa riêng có thể được sử dụng để tạo chữ ký ẩn danh duy nhất. Trường hợp chi tiêu gấp đôi thử 2 chữ ký này sẽ được liên kết với nhau nhưng việc tiết lộ người ký là không cần thiết cho mục đích của chúng tôi. 4.2 định nghĩa 4.2.1 Thông số đường cong elip Là thuật toán chữ ký cơ sở, chúng tôi đã chọn sử dụng lược đồ nhanh EdDSA, được phát triển và được thực hiện bởi D.J. Bernstein và cộng sự. [18]. Giống như ECDSA của Bitcoin nó dựa trên đường cong elip vấn đề logarit rời rạc, do đó lược đồ của chúng tôi cũng có thể được áp dụng cho Bitcoin trong tương lai. Các thông số phổ biến là: q: số nguyên tố; q = 2255 −19; d: một phần tử của Fq; d = −121665/121666; E: phương trình đường cong elip; −x2 + y2 = 1 + dx2y2; G: điểm cơ sở; G = (x, −4/5); l: thứ tự nguyên tố của điểm cơ sở; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): hàm mật mã hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): hàm hash tất định \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Thuật ngữ Quyền riêng tư nâng cao yêu cầu thuật ngữ mới không được nhầm lẫn với các thực thể Bitcoin. khóa riêng ec-key là khóa riêng có đường cong elip tiêu chuẩn: một số \(a \in [1, l - 1]\); public ec-key là khóa công khai có đường cong elip tiêu chuẩn: a điểm A = aG; cặp khóa dùng một lần là một cặp khóa điện tử riêng tư và công khai; 5 chìa khóa, mà là chìa khóa của tất cả người dùng trong nhóm của anh ấy. Người xác minh bị thuyết phục rằng người ký thực sự là một thành viên của nhóm, nhưng không thể xác định riêng người ký. Giao thức ban đầu yêu cầu một bên thứ ba đáng tin cậy (được gọi là Người quản lý nhóm) và anh ta người duy nhất có thể tìm ra người ký. Phiên bản tiếp theo được gọi là chữ ký vòng, được giới thiệu bởi Rivest và cộng sự. trong [34], là một chương trình tự trị không có Trình quản lý nhóm và ẩn danh thu hồi. Nhiều sửa đổi khác nhau của sơ đồ này xuất hiện sau đó: chữ ký vòng có thể liên kết [26, 27, 17] được phép xác định xem hai chữ ký có được tạo bởi cùng một thành viên nhóm hay không, có thể theo dõi được chữ ký vòng [24, 23] hạn chế tính ẩn danh quá mức bằng cách cung cấp khả năng theo dõi người ký hai thông báo liên quan đến cùng một siêu thông tin (hoặc “thẻ” theo thuật ngữ [24]). Một cấu trúc mật mã tương tự còn được gọi là chữ ký nhóm đặc biệt [16, 38]. Nó nhấn mạnh sự hình thành nhóm tùy ý, trong khi các sơ đồ chữ ký nhóm/vòng ngụ ý một tập hợp các thành viên cố định. Phần lớn giải pháp của chúng tôi dựa trên tác phẩm “Chữ ký vòng có thể theo dõi” của E. Fujisaki và K. Suzuki [24]. Để phân biệt thuật toán gốc và thuật toán sửa đổi của chúng tôi, chúng tôi sẽ gọi cái sau là chữ ký vòng một lần, nhấn mạnh khả năng của người dùng chỉ tạo ra một chữ ký hợp lệ chữ ký dưới khóa riêng của mình. Chúng tôi đã làm suy yếu đặc tính truy xuất nguồn gốc và giữ nguyên khả năng liên kết chỉ để cung cấp tính chất một lần: khóa công khai có thể xuất hiện trong nhiều bộ xác minh nước ngoài và khóa riêng có thể được sử dụng để tạo chữ ký ẩn danh duy nhất. Trường hợp chi tiêu gấp đôi thử 2 chữ ký này sẽ được liên kết với nhau nhưng việc tiết lộ người ký là không cần thiết cho mục đích của chúng tôi. 4.2 định nghĩa 4.2.1 Thông số đường cong elip Là thuật toán chữ ký cơ sở, chúng tôi chọne sử dụng sơ đồ nhanh EdDSA, được phát triển và được thực hiện bởi D.J. Bernstein và cộng sự. [18]. Giống như ECDSA của Bitcoin nó dựa trên đường cong elip vấn đề logarit rời rạc, do đó lược đồ của chúng tôi cũng có thể được áp dụng cho Bitcoin trong tương lai. Các thông số phổ biến là: q: số nguyên tố; q = 2255 −19; d: một phần tử của Fq; d = −121665/121666; E: phương trình đường cong elip; −x2 + y2 = 1 + dx2y2; G: điểm cơ sở; G = (x, −4/5); l: thứ tự nguyên tố của điểm cơ sở; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): hàm mật mã hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): hàm hash tất định \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Thuật ngữ Quyền riêng tư nâng cao yêu cầu thuật ngữ mới không được nhầm lẫn với các thực thể Bitcoin. khóa riêng ec-key là khóa riêng có đường cong elip tiêu chuẩn: một số \(a \in [1, l - 1]\); public ec-key là khóa công khai có đường cong elip tiêu chuẩn: a điểm A = aG; cặp khóa dùng một lần là một cặp khóa điện tử riêng tư và công khai; 5 9 Trời ơi, tác giả của sách trắng này chắc chắn có thể diễn đạt điều này tốt hơn! Hãy nói rằng một công ty do nhân viên sở hữu muốn bỏ phiếu về việc có nên mua một số sản phẩm mới hay không tài sản, Alex và Brenda đều là nhân viên. Công ty cung cấp cho mỗi nhân viên một thông báo như "Tôi bỏ phiếu đồng ý cho Dự luật A!" có "vấn đề" siêu thông tin [ĐỀ XUẤT A] và yêu cầu họ ký vào đó bằng chữ ký vòng có thể theo dõi được nếu họ ủng hộ đề xuất. Sử dụng chữ ký vòng truyền thống, một nhân viên không trung thực có thể ký tin nhắn nhiều lần, có lẽ là với nonce khác nhau, để bỏ phiếu bao nhiêu lần tùy thích. Mặt khác tay, trong sơ đồ chữ ký vòng có thể theo dõi, Alex sẽ bỏ phiếu và khóa riêng của cô ấy sẽ có đã được sử dụng trong vấn đề [ĐỀ XUẤT A]. Nếu Alex cố gắng ký một tin nhắn như "Tôi, Brenda, chấp thuận đề xuất A!” để "đóng khung" Brenda và bỏ phiếu kép, tin nhắn mới này cũng sẽ có vấn đề [ĐỀ XUẤT A]. Vì khóa riêng của Alex đã giải quyết được vấn đề [PROP A] nên danh tính của Alex sẽ ngay lập tức bị phát hiện là lừa đảo. Mà, đối mặt với nó, là khá tuyệt! Mật mã thực thi sự bình đẳng trong bỏ phiếu. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Bài viết này rất thú vị, về cơ bản là tạo ra một chữ ký vòng đặc biệt nhưng không có bất kỳ sự đồng ý của người tham gia khác. Cấu trúc chữ ký có thể khác nhau; Tôi chưa đào sâu và tôi chưa biết liệu nó có an toàn hay không. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai Chữ ký nhóm đặc biệt là: chữ ký vòng, là chữ ký nhóm không có nhóm người quản lý, không tập trung hóa, nhưng cho phép một thành viên trong một nhóm đặc biệt tuyên bố một cách có căn cứ rằng nó đã (không) ban hành chữ ký ẩn danh thay mặt cho nhóm. http://link.springer.com/chapter/10.1007/11908739_9 Điều này không hoàn toàn chính xác, theo sự hiểu biết của tôi. Và sự hiểu biết của tôi có thể sẽ thay đổi khi Tôi hiểu sâu hơn về dự án này. Nhưng theo hiểu biết của tôi, hệ thống phân cấp trông như thế này. Dấu hiệu nhóm: người quản lý nhóm kiểm soát khả năng truy xuất nguồn gốc và khả năng thêm hoặc xóa thành viên từ việc trở thành người ký kết. Ring sigs: Thành lập nhóm tùy ý không có người quản lý nhóm. Không thu hồi ẩn danh. Không có cách nào để từ chối chính mình từ một chữ ký cụ thể. Với vòng có thể theo dõi và liên kết được chữ ký, tính ẩn danh có thể mở rộng được phần nào. Chữ ký nhóm đặc biệt: giống như chữ ký vòng, nhưng các thành viên có thể chứng minh rằng họ không tạo ra một chữ ký cụ thể. Điều này rất quan trọng khi bất kỳ ai trong nhóm đều có thể tạo ra chữ ký. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Thuật toán của Fujisaki và Suzuki sau đó được tác giả điều chỉnh để mang lại tính chất một lần. Vì vậy chúng ta sẽ phân tích thuật toán của Fujisaki và Suzuki đồng thời với thuật toán mới thay vì hơn là đi qua nó ở đây.

chìa khóa, mà là chìa khóa của tất cả người dùng trong nhóm của anh ấy. Người xác minh bị thuyết phục rằng người ký thực sự là một thành viên của nhóm, nhưng không thể xác định riêng người ký. Giao thức ban đầu yêu cầu một bên thứ ba đáng tin cậy (được gọi là Người quản lý nhóm) và anh ta người duy nhất có thể tìm ra người ký. Phiên bản tiếp theo được gọi là chữ ký vòng, được giới thiệu bởi Rivest và cộng sự. trong [34], là một chương trình tự trị không có Trình quản lý nhóm và ẩn danh thu hồi. Nhiều sửa đổi khác nhau của sơ đồ này xuất hiện sau đó: chữ ký vòng có thể liên kết [26, 27, 17] được phép xác định xem hai chữ ký có được tạo bởi cùng một thành viên nhóm hay không, có thể theo dõi được chữ ký vòng [24, 23] hạn chế tính ẩn danh quá mức bằng cách cung cấp khả năng theo dõi người ký hai thông báo liên quan đến cùng một siêu thông tin (hoặc “thẻ” theo thuật ngữ [24]). Một cấu trúc mật mã tương tự còn được gọi là chữ ký nhóm đặc biệt [16, 38]. Nó nhấn mạnh sự hình thành nhóm tùy ý, trong khi các sơ đồ chữ ký nhóm/vòng ngụ ý một tập hợp các thành viên cố định. Phần lớn giải pháp của chúng tôi dựa trên tác phẩm “Chữ ký vòng có thể theo dõi” của E. Fujisaki và K. Suzuki [24]. Để phân biệt thuật toán gốc và thuật toán sửa đổi của chúng tôi, chúng tôi sẽ gọi cái sau là chữ ký vòng một lần, nhấn mạnh khả năng của người dùng chỉ tạo ra một chữ ký hợp lệ chữ ký dưới khóa riêng của mình. Chúng tôi đã làm suy yếu đặc tính truy xuất nguồn gốc và giữ nguyên khả năng liên kết chỉ để cung cấp tính chất một lần: khóa công khai có thể xuất hiện trong nhiều bộ xác minh nước ngoài và khóa riêng có thể được sử dụng để tạo chữ ký ẩn danh duy nhất. Trường hợp chi tiêu gấp đôi thử 2 chữ ký này sẽ được liên kết với nhau nhưng việc tiết lộ người ký là không cần thiết cho mục đích của chúng tôi. 4.2 định nghĩa 4.2.1 Thông số đường cong elip Là thuật toán chữ ký cơ sở, chúng tôi đã chọn sử dụng lược đồ nhanh EdDSA, được phát triển và được thực hiện bởi D.J. Bernstein và cộng sự. [18]. Giống như ECDSA của Bitcoin nó dựa trên đường cong elip vấn đề logarit rời rạc, do đó lược đồ của chúng tôi cũng có thể được áp dụng cho Bitcoin trong tương lai. Các thông số phổ biến là: q: số nguyên tố; q = 2255 −19; d: một phần tử của Fq; d = −121665/121666; E: phương trình đường cong elip; −x2 + y2 = 1 + dx2y2; G: điểm cơ sở; G = (x, −4/5); l: thứ tự nguyên tố của điểm cơ sở; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): hàm mật mã hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): hàm hash tất định \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Thuật ngữ Quyền riêng tư nâng cao yêu cầu thuật ngữ mới không được nhầm lẫn với các thực thể Bitcoin. khóa riêng ec-key là khóa riêng có đường cong elip tiêu chuẩn: một số \(a \in [1, l - 1]\); public ec-key là khóa công khai có đường cong elip tiêu chuẩn: a điểm A = aG; cặp khóa dùng một lần là một cặp khóa điện tử riêng tư và công khai; 5 chìa khóa, mà là chìa khóa của tất cả người dùng trong nhóm của anh ấy. Người xác minh bị thuyết phục rằng người ký thực sự là một thành viên của nhóm, nhưng không thể xác định riêng người ký. Giao thức ban đầu yêu cầu một bên thứ ba đáng tin cậy (được gọi là Người quản lý nhóm) và anh ta người duy nhất có thể tìm ra người ký. Phiên bản tiếp theo được gọi là chữ ký vòng, được giới thiệu bởi Rivest và cộng sự. trong [34], là một chương trình tự trị không có Trình quản lý nhóm và ẩn danh thu hồi. Nhiều sửa đổi khác nhau của sơ đồ này xuất hiện sau đó: chữ ký vòng có thể liên kết [26, 27, 17] được phép xác định xem hai chữ ký có được tạo bởi cùng một thành viên nhóm hay không, có thể theo dõi được chữ ký vòng [24, 23] hạn chế tính ẩn danh quá mức bằng cách cung cấp khả năng theo dõi người ký hai thông báo liên quan đến cùng một siêu thông tin (hoặc “thẻ” theo thuật ngữ [24]). Một cấu trúc mật mã tương tự còn được gọi là chữ ký nhóm đặc biệt [16, 38]. Nó nhấn mạnh sự hình thành nhóm tùy ý, trong khi các sơ đồ chữ ký nhóm/vòng ngụ ý một tập hợp các thành viên cố định. Phần lớn giải pháp của chúng tôi dựa trên tác phẩm “Chữ ký vòng có thể theo dõi” của E. Fujisaki và K. Suzuki [24]. Để phân biệt thuật toán gốc và thuật toán sửa đổi của chúng tôi, chúng tôi sẽ gọi cái sau là chữ ký vòng một lần, nhấn mạnh khả năng của người dùng chỉ tạo ra một chữ ký hợp lệ chữ ký dưới khóa riêng của mình. Chúng tôi đã làm suy yếu đặc tính truy xuất nguồn gốc và giữ nguyên khả năng liên kết chỉ để cung cấp tính chất một lần: khóa công khai có thể xuất hiện trong nhiều bộ xác minh nước ngoài và khóa riêng có thể được sử dụng để tạo chữ ký ẩn danh duy nhất. Trường hợp chi tiêu gấp đôi thử 2 chữ ký này sẽ được liên kết với nhau nhưng việc tiết lộ người ký là không cần thiết cho mục đích của chúng tôi. 4.2 định nghĩa 4.2.1 Thông số đường cong elip Là thuật toán chữ ký cơ sở, chúng tôi chọne sử dụng sơ đồ nhanh EdDSA, được phát triển và được thực hiện bởi D.J. Bernstein và cộng sự. [18]. Giống như ECDSA của Bitcoin nó dựa trên đường cong elip vấn đề logarit rời rạc, do đó lược đồ của chúng tôi cũng có thể được áp dụng cho Bitcoin trong tương lai. Các thông số phổ biến là: q: số nguyên tố; q = 2255 −19; d: một phần tử của Fq; d = −121665/121666; E: phương trình đường cong elip; −x2 + y2 = 1 + dx2y2; G: điểm cơ sở; G = (x, −4/5); l: thứ tự nguyên tố của điểm cơ sở; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): hàm mật mã hash \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): hàm hash tất định \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 Thuật ngữ Quyền riêng tư nâng cao yêu cầu thuật ngữ mới không được nhầm lẫn với các thực thể Bitcoin. khóa riêng ec-key là khóa riêng có đường cong elip tiêu chuẩn: một số \(a \in [1, l - 1]\); public ec-key là khóa công khai có đường cong elip tiêu chuẩn: a điểm A = aG; cặp khóa dùng một lần là một cặp khóa điện tử riêng tư và công khai; 5 10 Khả năng liên kết theo nghĩa "chữ ký vòng có thể liên kết" có nghĩa là chúng tôi có thể biết liệu hai giao dịch gửi đi có đến từ cùng một nguồn hay không mà không tiết lộ nguồn đó là ai. Tác giả suy yếu khả năng liên kết để (a) bảo vệ quyền riêng tư nhưng vẫn (b) phát hiện bất kỳ giao dịch nào bằng khóa riêng lần thứ hai là không hợp lệ. Được rồi, đây là câu hỏi về thứ tự sự kiện. Hãy xem xét kịch bản sau đây. Khai thác của tôi máy tính sẽ có blockchain hiện tại, nó sẽ có khối giao dịch riêng mà nó gọi hợp pháp, nó sẽ hoạt động trên khối đó trong câu đố proof-of-work và nó sẽ có một danh sách các giao dịch đang chờ xử lý sẽ được thêm vào khối tiếp theo. Nó cũng sẽ gửi bất kỳ thông tin mới nào giao dịch vào nhóm giao dịch đang chờ xử lý đó. Nếu tôi không giải được khối tiếp theo, nhưng người khác làm vậy, tôi nhận được bản sao cập nhật của blockchain. Khối tôi đang làm việc và danh sách các giao dịch đang chờ xử lý của tôi đều có thể có một số giao dịch hiện đã được kết hợp vào blockchain. Làm sáng tỏ khối đang chờ xử lý của tôi, kết hợp khối đó với danh sách các giao dịch đang chờ xử lý của tôi và gọi đó là nhóm giao dịch đang chờ xử lý của tôi. Xóa mọi thứ hiện có chính thức trong blockchain. Bây giờ tôi phải làm gì? Trước tiên tôi có nên xem qua và "loại bỏ tất cả các khoản chi tiêu gấp đôi" không? Mặt khác tay, tôi có nên tìm kiếm trong danh sách và đảm bảo rằng mỗi khóa riêng tư đều chưa được được sử dụng và nếu nó đã được sử dụng trong danh sách của tôi thì tôi đã nhận được bản sao đầu tiên trước, và do đó bất kỳ bản sao nào nữa là bất hợp pháp. Vì vậy, tôi tiến hành xóa tất cả các phiên bản sau lần đầu tiên của cùng một khóa riêng. Hình học đại số chưa bao giờ là điểm mạnh của tôi. http://en.wikipedia.org/wiki/EdDSA Tốc độ như vậy, nhiều wow. ĐÂY là hình học đại số để giành chiến thắng. Không phải là tôi biết bất cứ điều gì về điều đó. Có vấn đề hay không, các nhật ký rời rạc đang hoạt động rất nhanh. Và máy tính lượng tử ăn chúng cho bữa sáng. http://link.springer.com/article/10.1007/s13389-012-0027-1 Đây trở thành một con số thực sự quan trọng, nhưng không có lời giải thích hay trích dẫn nào về việc nó đã được chọn. Đơn giản chỉ cần chọn một số nguyên tố lớn đã biết là được, nhưng nếu có sự thật về số nguyên tố lớn này, điều đó có thể ảnh hưởng đến sự lựa chọn của chúng ta. Các biến thể khác nhau của tiền điện tử có thể chọn các giá trị khác nhau của ồ, nhưng không có cuộc thảo luận nào trong bài viết này về cách điều đó sự lựa chọn sẽ ảnh hưởng đến sự lựa chọn của chúng ta về các thông số tổng thể khác được liệt kê ở trang 5. Bài viết này cần một phần về việc lựa chọn các giá trị tham số.

khóa người dùng riêng là một cặp (a, b) gồm hai khóa ec-key riêng khác nhau; khóa theo dõi là một cặp (a, B) khóa ec-key riêng và công khai (trong đó B = bG và a ̸= b); khóa người dùng chung là một cặp (A, B) gồm hai khóa ec-key công khai được dẫn xuất từ ​​(a, b); địa chỉ tiêu chuẩn là sự thể hiện khóa người dùng công cộng được đưa vào chuỗi thân thiện với con người với việc sửa lỗi; địa chỉ bị cắt ngắn là sự thể hiện nửa sau (điểm B) của khóa người dùng công khai được cung cấp thành chuỗi thân thiện với con người có sửa lỗi. Cấu trúc giao dịch vẫn tương tự như cấu trúc trong Bitcoin: mọi người dùng đều có thể chọn một số khoản thanh toán đến độc lập (đầu ra giao dịch), ký chúng với các khóa riêng và gửi chúng đến các điểm đến khác nhau. Ngược lại với mô hình của Bitcoin, trong đó người dùng sở hữu khóa riêng và khóa chung duy nhất, trong mô hình mô hình đề xuất, người gửi tạo khóa công khai một lần dựa trên địa chỉ của người nhận và một số dữ liệu ngẫu nhiên Theo nghĩa này, một giao dịch đến cho cùng một người nhận sẽ được gửi đến một khóa chung một lần (không trực tiếp đến một địa chỉ duy nhất) và chỉ người nhận mới có thể khôi phục khóa phần riêng tư tương ứng để lấy lại tiền của anh ấy (sử dụng khóa riêng tư duy nhất của anh ấy). Người nhận có thể chi tiêu số tiền bằng cách sử dụng chữ ký vòng, giữ kín quyền sở hữu và chi tiêu thực tế của mình. Các chi tiết của giao thức được giải thích trong các phần phụ tiếp theo. 4.3 Thanh toán không thể liên kết Địa chỉ Bitcoin cổ điển, sau khi được xuất bản, sẽ trở thành mã nhận dạng rõ ràng cho các địa chỉ gửi đến các khoản thanh toán, liên kết chúng lại với nhau và gắn với bút danh của người nhận. Nếu ai đó muốn nhận được một giao dịch “không bị ràng buộc”, anh ta phải chuyển địa chỉ của mình đến người gửi bằng một kênh riêng. Nếu anh ta muốn nhận các giao dịch khác nhau mà không thể chứng minh được là thuộc về cùng một chủ sở hữu anh ta nên tạo ra tất cả các địa chỉ khác nhau và không bao giờ xuất bản chúng dưới bút danh của chính mình. công cộng Riêng tư Alice Carol Địa chỉ 1 của Bob Địa chỉ 2 của Bob Chìa khóa của Bob 1 Chìa khóa 2 của Bob Bob Hình 2. Mô hình khóa/giao dịch Bitcoin truyền thống. Chúng tôi đề xuất giải pháp cho phép người dùng xuất bản một địa chỉ duy nhất và nhận được vô điều kiện thanh toán không thể liên kết. Đích của mỗi đầu ra CryptoNote (theo mặc định) là khóa chung, bắt nguồn từ địa chỉ của người nhận và dữ liệu ngẫu nhiên của người gửi. Ưu điểm chính so với Bitcoin là mỗi khóa đích là duy nhất theo mặc định (trừ khi người gửi sử dụng cùng một dữ liệu cho mỗi khóa đích). giao dịch của mình cho cùng một người nhận). Do đó, không có vấn đề như “tái sử dụng địa chỉ” bởi thiết kế và không người quan sát nào có thể xác định liệu có bất kỳ giao dịch nào được gửi đến một địa chỉ hoặc liên kết cụ thể hay không hai địa chỉ với nhau. 6 khóa người dùng riêng là một cặp (a, b) gồm hai khóa ec-key riêng khác nhau; khóa theo dõi là một cặp (a, B) khóa ec-key riêng và công khai (trong đó B = bG và a ̸= b); khóa người dùng chung là một cặp (A, B) gồm hai khóa ec-key công khai được dẫn xuất từ ​​(a, b); địa chỉ tiêu chuẩn là sự thể hiện khóa người dùng công cộng được đưa vào chuỗi thân thiện với con người với việc sửa lỗi; địa chỉ bị cắt ngắn là sự thể hiện nửa sau (điểm B) của khóa người dùng công khai được cung cấp thành chuỗi thân thiện với con người có sửa lỗi. Cấu trúc giao dịch vẫn tương tự như cấu trúc trong Bitcoin: mọi người dùng đều có thể chọn một số khoản thanh toán đến độc lập (đầu ra giao dịch), ký chúng với các khóa riêng và gửi chúng đến các điểm đến khác nhau. Ngược lại với mô hình của Bitcoin, trong đó người dùng sở hữu khóa riêng và khóa chung duy nhất, trong mô hình mô hình đề xuất, người gửi tạo khóa công khai một lần dựa trên địa chỉ của người nhận và một số dữ liệu ngẫu nhiên Theo nghĩa này, một giao dịch đến cho cùng một người nhận sẽ được gửi đến một khóa chung một lần (không trực tiếp đến một địa chỉ duy nhất) và chỉ người nhận mới có thể khôi phục khóa phần riêng tư tương ứng để lấy lại tiền của anh ấy (sử dụng khóa riêng tư duy nhất của anh ấy). Người nhận có thể chi tiêu số tiền bằng cách sử dụng chữ ký vòng, giữ kín quyền sở hữu và chi tiêu thực tế của mình. Các chi tiết của giao thức được giải thích trong các phần phụ tiếp theo. 4.3 Thanh toán không thể liên kết Địa chỉ Bitcoin cổ điển, sau khi được xuất bản, sẽ trở thành mã nhận dạng rõ ràng cho các địa chỉ gửi đến các khoản thanh toán, liên kết chúng lại với nhau và gắn với bút danh của người nhận. Nếu ai đó muốn nhận được một giao dịch “không bị ràng buộc”, anh ta phải chuyển địa chỉ của mình đến người gửi bằng một kênh riêng. Nếu anh ta muốn nhận các giao dịch khác nhau mà không thể chứng minh được là thuộc về cùng một chủ sở hữu anh ta nên tạo ra tất cả các địa chỉ khác nhau và không bao giờ xuất bản chúng dưới bút danh của chính mình. công cộng Riêng tư Alice Carol Địa chỉ 1 của Bob Địa chỉ 2 của Bob Chìa khóa của Bob 1 Chìa khóa 2 của Bob Bob Hình 2. Mod khóa/giao dịch Bitcoin truyền thốngel. Chúng tôi đề xuất giải pháp cho phép người dùng xuất bản một địa chỉ duy nhất và nhận được vô điều kiện thanh toán không thể liên kết. Đích của mỗi đầu ra CryptoNote (theo mặc định) là khóa chung, bắt nguồn từ địa chỉ của người nhận và dữ liệu ngẫu nhiên của người gửi. Ưu điểm chính so với Bitcoin là mỗi khóa đích là duy nhất theo mặc định (trừ khi người gửi sử dụng cùng một dữ liệu cho mỗi khóa đích). giao dịch của mình cho cùng một người nhận). Do đó, không có vấn đề như “tái sử dụng địa chỉ” bởi thiết kế và không người quan sát nào có thể xác định liệu có bất kỳ giao dịch nào được gửi đến một địa chỉ hoặc liên kết cụ thể hay không hai địa chỉ với nhau. 6 11 Vì vậy, điều này giống như Bitcoin, nhưng với Hộp thư bưu điện ẩn danh, vô hạn, chỉ người nhận mới có thể đổi tạo khóa riêng ẩn danh như chữ ký vòng có thể. Bitcoin hoạt động theo cách này. Nếu Alex có 0,112 Bitcoin trong ví mà cô ấy vừa nhận được từ Frank thì cô ấy thực sự có chữ ký tin nhắn "Tôi, [FRANK], gửi 0,112 Bitcoin tới [alex] + H0 + N0" trong đó 1) Frank đã ký vào tin nhắn bằng khóa riêng của anh ấy [FRANK], 2) Frank đã ký tin nhắn với công khai của Alex key, [alex], 3) Frank đã đưa vào một số dạng lịch sử của bitcoin, H0 và 4) Frank bao gồm một bit dữ liệu ngẫu nhiên được gọi là nonce, N0. Sau đó, nếu Alex muốn gửi 0,011 Bitcoin cho Charlene, cô ấy sẽ nhận tin nhắn của Frank và cô ấy sẽ đặt giá trị đó thành H1 và ký hai tin nhắn: một cho giao dịch của cô ấy và một cho thay đổi. H1= "Tôi, [FRANK], gửi 0,112 Bitcoin tới [alex] + H0 + N" "Tôi, [ALEX], gửi 0,011 Bitcoin tới [charlene] + H1 + N1" "Tôi, [ALEX], gửi 0,101 Bitcoin khi thay đổi thành [alex] + H1 + N2." trong đó Alex ký cả hai tin nhắn bằng khóa riêng của cô ấy [ALEX], tin nhắn đầu tiên bằng khóa riêng của Charlene. khóa công khai [charlene], tin nhắn thứ hai có khóa công khai [alex] của Alex và bao gồm cả lịch sử và một số nonces N1 và N2 được tạo ngẫu nhiên một cách thích hợp. Tiền điện tử hoạt động theo cách này: Nếu Alex có 0,112 tiền điện tử trong ví mà cô ấy vừa nhận được từ Frank, thì cô ấy thực sự có một tờ tiền đã ký. tin nhắn "Tôi, [ai đó trong nhóm đặc biệt], gửi 0,112 Cryptonote đến [địa chỉ một lần] + H0 + N0.” Alex phát hiện ra rằng đây là tiền của cô ấy bằng cách kiểm tra khóa riêng [ALEX] của cô ấy. [địa chỉ một lần] cho mỗi tin nhắn gửi đi và nếu cô ấy muốn sử dụng nó, cô ấy sẽ làm như vậy cách sau đây. Cô ấy chọn người nhận tiền, có lẽ Charlene đã bắt đầu bỏ phiếu cho các cuộc tấn công bằng máy bay không người lái nên Alex muốn gửi tiền cho Brenda. Vì vậy, Alex tra cứu khóa công khai của Brenda, [brenda], và sử dụng khóa riêng của cô ấy, [ALEX], để tạo địa chỉ một lần [ALEX+brenda]. Cô ấy sau đó chọn một bộ sưu tập C tùy ý từ mạng lưới người dùng tiền điện tử và cô ấy xây dựng một chữ ký vòng từ nhóm đặc biệt này. Chúng tôi đặt lịch sử của mình làm tin nhắn trước đó, thêm nonces và tiếp tục như bình thường? H1 = "Tôi, [ai đó trong nhóm đặc biệt], gửi 0,112 tiền điện tử đến [địa chỉ một lần] + H0 + N0.” "Tôi, [ai đó trong bộ sưu tập C], gửi 0,011 Cryptonote tới [địa chỉ một lần được tạo từALEX+brenda] + H1 + N1" "Tôi, [ai đó trong bộ sưu tập C], gửi 0.101 Cryptonote dưới dạng thay đổi thành [địa chỉ một lần-madefrom-ALEX+alex] + H1 + N2" Bây giờ, Alex và Brenda đều quét tất cả các tin nhắn đến để tìm bất kỳ địa chỉ một lần nào đã được lưu trữ. được tạo bằng chìa khóa của họ. Nếu họ tìm thấy thì tin nhắn đó là tin nhắn hoàn toàn mới của họ. tiền điện tử! Và thậm chí sau đó, giao dịch vẫn sẽ đạt blockchain. Nếu đồng tiền nhập vào địa chỉ đó được biết là được gửi từ tội phạm, những người đóng góp chính trị hoặc từ các ủy ban và tài khoản với ngân sách nghiêm ngặt (tức là tham ô) hoặc nếu chủ sở hữu mới của những đồng tiền này mắc sai lầm và gửi những đồng tiền này đến một địa chỉ chung với những đồng tiền mà anh ta được biết là sở hữu, khuôn mẫu ẩn danh bitcoin tăng giá.

khóa người dùng riêng là một cặp (a, b) gồm hai khóa ec-key riêng khác nhau; khóa theo dõi là một cặp (a, B) khóa ec-key riêng và công khai (trong đó B = bG và a ̸= b); khóa người dùng chung là một cặp (A, B) gồm hai khóa ec-key công khai được dẫn xuất từ ​​(a, b); địa chỉ tiêu chuẩn là sự thể hiện khóa người dùng công cộng được đưa vào chuỗi thân thiện với con người với việc sửa lỗi; địa chỉ bị cắt ngắn là sự thể hiện nửa sau (điểm B) của khóa người dùng công khai được cung cấp thành chuỗi thân thiện với con người có sửa lỗi. Cấu trúc giao dịch vẫn tương tự như cấu trúc trong Bitcoin: mọi người dùng đều có thể chọn một số khoản thanh toán đến độc lập (đầu ra giao dịch), ký chúng với các khóa riêng và gửi chúng đến các điểm đến khác nhau. Ngược lại với mô hình của Bitcoin, trong đó người dùng sở hữu khóa riêng và khóa chung duy nhất, trong mô hình mô hình đề xuất, người gửi tạo khóa công khai một lần dựa trên địa chỉ của người nhận và một số dữ liệu ngẫu nhiên Theo nghĩa này, một giao dịch đến cho cùng một người nhận sẽ được gửi đến một khóa chung một lần (không trực tiếp đến một địa chỉ duy nhất) và chỉ người nhận mới có thể khôi phục khóa phần riêng tư tương ứng để lấy lại tiền của anh ấy (sử dụng khóa riêng tư duy nhất của anh ấy). Người nhận có thể chi tiêu số tiền bằng cách sử dụng chữ ký vòng, giữ kín quyền sở hữu và chi tiêu thực tế của mình. Các chi tiết của giao thức được giải thích trong các phần phụ tiếp theo. 4.3 Thanh toán không thể liên kết Địa chỉ Bitcoin cổ điển, sau khi được xuất bản, sẽ trở thành mã nhận dạng rõ ràng cho các địa chỉ gửi đến các khoản thanh toán, liên kết chúng lại với nhau và gắn với bút danh của người nhận. Nếu ai đó muốn nhận được một giao dịch “không bị ràng buộc”, anh ta phải chuyển địa chỉ của mình đến người gửi bằng một kênh riêng. Nếu anh ta muốn nhận các giao dịch khác nhau mà không thể chứng minh được là thuộc về cùng một chủ sở hữu anh ta nên tạo ra tất cả các địa chỉ khác nhau và không bao giờ xuất bản chúng dưới bút danh của chính mình. công cộng Riêng tư Alice Carol Địa chỉ 1 của Bob Địa chỉ 2 của Bob Chìa khóa của Bob 1 Chìa khóa 2 của Bob Bob Hình 2. Mô hình khóa/giao dịch Bitcoin truyền thống. Chúng tôi đề xuất giải pháp cho phép người dùng xuất bản một địa chỉ duy nhất và nhận được vô điều kiện thanh toán không thể liên kết. Đích của mỗi đầu ra CryptoNote (theo mặc định) là khóa chung, bắt nguồn từ địa chỉ của người nhận và dữ liệu ngẫu nhiên của người gửi. Ưu điểm chính so với Bitcoin là mỗi khóa đích là duy nhất theo mặc định (trừ khi người gửi sử dụng cùng một dữ liệu cho mỗi khóa đích). giao dịch của mình cho cùng một người nhận). Do đó, không có vấn đề như “tái sử dụng địa chỉ” bởi thiết kế và không người quan sát nào có thể xác định liệu có bất kỳ giao dịch nào được gửi đến một địa chỉ hoặc liên kết cụ thể hay không hai địa chỉ với nhau. 6 khóa người dùng riêng là một cặp (a, b) gồm hai khóa ec-key riêng khác nhau; khóa theo dõi là một cặp (a, B) khóa ec-key riêng và công khai (trong đó B = bG và a ̸= b); khóa người dùng chung là một cặp (A, B) gồm hai khóa ec-key công khai được dẫn xuất từ ​​(a, b); địa chỉ tiêu chuẩn là sự thể hiện khóa người dùng công cộng được đưa vào chuỗi thân thiện với con người với việc sửa lỗi; địa chỉ bị cắt ngắn là sự thể hiện nửa sau (điểm B) của khóa người dùng công khai được cung cấp thành chuỗi thân thiện với con người có sửa lỗi. Cấu trúc giao dịch vẫn tương tự như cấu trúc trong Bitcoin: mọi người dùng đều có thể chọn một số khoản thanh toán đến độc lập (đầu ra giao dịch), ký chúng với các khóa riêng và gửi chúng đến các điểm đến khác nhau. Ngược lại với mô hình của Bitcoin, trong đó người dùng sở hữu khóa riêng và khóa chung duy nhất, trong mô hình mô hình đề xuất, người gửi tạo khóa công khai một lần dựa trên địa chỉ của người nhận và một số dữ liệu ngẫu nhiên Theo nghĩa này, một giao dịch đến cho cùng một người nhận sẽ được gửi đến một khóa chung một lần (không trực tiếp đến một địa chỉ duy nhất) và chỉ người nhận mới có thể khôi phục khóa phần riêng tư tương ứng để lấy lại tiền của anh ấy (sử dụng khóa riêng tư duy nhất của anh ấy). Người nhận có thể chi tiêu số tiền bằng cách sử dụng chữ ký vòng, giữ kín quyền sở hữu và chi tiêu thực tế của mình. Các chi tiết của giao thức được giải thích trong các phần phụ tiếp theo. 4.3 Thanh toán không thể liên kết Địa chỉ Bitcoin cổ điển, sau khi được xuất bản, sẽ trở thành mã nhận dạng rõ ràng cho các địa chỉ gửi đến các khoản thanh toán, liên kết chúng lại với nhau và gắn với bút danh của người nhận. Nếu ai đó muốn nhận được một giao dịch “không bị ràng buộc”, anh ta phải chuyển địa chỉ của mình đến người gửi bằng một kênh riêng. Nếu anh ta muốn nhận các giao dịch khác nhau mà không thể chứng minh được là thuộc về cùng một chủ sở hữu anh ta nên tạo ra tất cả các địa chỉ khác nhau và không bao giờ xuất bản chúng dưới bút danh của chính mình. công cộng Riêng tư Alice Carol Địa chỉ 1 của Bob Địa chỉ 2 của Bob Chìa khóa của Bob 1 Chìa khóa 2 của Bob Bob Hình 2. Mod khóa/giao dịch Bitcoin truyền thốngel. Chúng tôi đề xuất giải pháp cho phép người dùng xuất bản một địa chỉ duy nhất và nhận được vô điều kiện thanh toán không thể liên kết. Đích của mỗi đầu ra CryptoNote (theo mặc định) là khóa chung, bắt nguồn từ địa chỉ của người nhận và dữ liệu ngẫu nhiên của người gửi. Ưu điểm chính so với Bitcoin là mỗi khóa đích là duy nhất theo mặc định (trừ khi người gửi sử dụng cùng một dữ liệu cho mỗi khóa đích). giao dịch của mình cho cùng một người nhận). Do đó, không có vấn đề như “tái sử dụng địa chỉ” bởi thiết kế và không người quan sát nào có thể xác định liệu có bất kỳ giao dịch nào được gửi đến một địa chỉ hoặc liên kết cụ thể hay không hai địa chỉ với nhau. 6 12 Do đó, thay vì người dùng gửi tiền từ địa chỉ (thực sự là khóa công khai) đến địa chỉ (một khóa công khai khác) bằng cách sử dụng khóa riêng của họ, người dùng sẽ gửi tiền từ hộp thư bưu điện một lần (đang tạo bằng khóa chung của bạn bè bạn) tới hộp thư bưu điện một lần (tương tự) bằng cách sử dụng khóa riêng của mình. Theo một nghĩa nào đó, chúng tôi đang nói "Được rồi, mọi người hãy rút tiền ra khi nó đang diễn ra." chuyển xung quanh! Chỉ cần biết rằng chìa khóa của chúng ta có thể mở được chiếc hộp đó là đủ chúng ta biết trong hộp có bao nhiêu tiền. Đừng bao giờ để dấu vân tay của bạn trên Hộp thư bưu điện hoặc thực sự sử dụng nó, chỉ cần trao đổi chiếc hộp chứa đầy tiền mặt. Bằng cách đó chúng tôi không biết ai đã gửi cái gì, nhưng nội dung của những địa chỉ công cộng này vẫn không có ma sát, có thể thay thế được, có thể chia được và vẫn sở hữu tất cả những phẩm chất tốt đẹp khác của tiền mà chúng ta mong muốn như bitcoin.” Một tập hợp vô hạn các hộp PO. Bạn công bố địa chỉ, tôi có khóa riêng. Tôi sử dụng khóa riêng của tôi và địa chỉ của bạn, và một số dữ liệu ngẫu nhiên để tạo khóa công khai. Thuật toán được thiết kế sao cho, vì địa chỉ đã được sử dụng để tạo khóa chung, chỉ khóa riêng CỦA BẠN mới hoạt động để mở khóa tin nhắn. Một người quan sát, Eve, thấy bạn công bố địa chỉ của mình và thấy khóa công khai mà tôi công bố. Tuy nhiên, cô ấy không biết liệu tôi đã công bố khóa công khai của mình dựa trên địa chỉ của bạn hay của cô ấy, hay của Brenda hoặc của Charlene, hoặc của bất cứ ai. Cô ấy kiểm tra khóa riêng của mình với khóa chung mà tôi đã thông báo và thấy nó không hoạt động; đó không phải là tiền của cô ấy. Cô ấy không biết khóa riêng của người khác và chỉ người nhận tin nhắn mới có khóa riêng mới có thể mở khóa tin nhắn. Vì vậy không có ai lắng nghe có thể xác định ai đã nhận tiền ít hơn nhiều là lấy tiền.

công cộng Riêng tư Alice Carol Chìa khóa một lần Chìa khóa một lần Chìa khóa một lần Bob Chìa khóa của Bob Địa chỉ của Bob Hình 3. Mô hình khóa/giao dịch CryptoNote. Đầu tiên, người gửi thực hiện trao đổi Diffe-Hellman để lấy bí mật chung từ dữ liệu của mình và một nửa địa chỉ của người nhận. Sau đó, anh ta tính toán khóa đích một lần bằng cách sử dụng khóa chia sẻ bí mật và nửa sau của địa chỉ. Hai ec-key khác nhau được yêu cầu từ người nhận đối với hai bước này, do đó, địa chỉ CryptoNote tiêu chuẩn lớn gần gấp đôi ví Bitcoin địa chỉ. Người nhận cũng thực hiện trao đổi Diffe-Hellman để khôi phục thông tin tương ứng chìa khóa bí mật. Một chuỗi giao dịch tiêu chuẩn diễn ra như sau: 1. Alice muốn gửi thanh toán cho Bob, người đã công bố địa chỉ tiêu chuẩn của mình. Cô ấy giải nén địa chỉ và lấy khóa chung của Bob (A, B). 2. Alice tạo ra một \(r \in [1, l - 1]\) ngẫu nhiên và tính khóa công khai một lần \(P = H_s(rA)G +\) B. 3. Alice sử dụng P làm khóa đích cho đầu ra và cũng đóng gói giá trị R = rG (như một phần của sàn giao dịch Diffie-Hellman) ở đâu đó trong giao dịch. Lưu ý rằng cô ấy có thể tạo các đầu ra khác có khóa chung duy nhất: khóa của người nhận khác nhau (Ai, Bi) ngụ ý Pi khác nhau ngay cả với cùng một r. Giao dịch Khóa công khai Tx Đầu ra Tx Số tiền Khóa đích R = rG P = Hs(rA)G + B Người nhận khóa công khai Dữ liệu ngẫu nhiên của người gửi r (A, B) Hình 4. Cấu trúc giao dịch tiêu chuẩn. 4. Alice gửi giao dịch. 5. Bob kiểm tra mọi giao dịch được chuyển bằng khóa riêng của mình (a, b) và tính P ′ = Hs(aR)G + B. Nếu giao dịch của Alice với Bob là người nhận nằm trong số đó, thì aR = arG = rA và P ′ = P. 7 công cộng Riêng tư Alice Carol Chìa khóa một lần Chìa khóa một lần Chìa khóa một lần Bob Chìa khóa của Bob Địa chỉ của Bob Hình 3. Mô hình khóa/giao dịch CryptoNote. Đầu tiên, người gửi thực hiện trao đổi Diffe-Hellman để lấy bí mật chung từ dữ liệu của mình và một nửa địa chỉ của người nhận. Sau đó, anh ta tính toán khóa đích một lần bằng cách sử dụng khóa chia sẻ bí mật và nửa sau của địa chỉ. Hai ec-key khác nhau được yêu cầu từ người nhận đối với hai bước này, do đó, địa chỉ CryptoNote tiêu chuẩn lớn gần gấp đôi so với ví Bitcoin địa chỉ. Người nhận cũng thực hiện trao đổi Diffe-Hellman để khôi phục thông tin tương ứng chìa khóa bí mật. Một chuỗi giao dịch tiêu chuẩn diễn ra như sau: 1. Alice muốn gửi thanh toán cho Bob, người đã công bố địa chỉ tiêu chuẩn của mình. Cô ấy giải nén địa chỉ và lấy khóa chung của Bob (A, B). 2. Alice tạo ra một \(r \in [1, l - 1]\) ngẫu nhiên và tính khóa công khai một lần \(P = H_s(rA)G +\) B. 3. Alice sử dụng P làm khóa đích cho đầu ra và cũng đóng gói giá trị R = rG (như một phần của sàn giao dịch Diffie-Hellman) ở đâu đó trong giao dịch. Lưu ý rằng cô ấy có thể tạo các đầu ra khác có khóa chung duy nhất: khóa của người nhận khác nhau (Ai, Bi) ngụ ý Pi khác nhau ngay cả với cùng một r. Giao dịch Khóa công khai Tx Đầu ra Tx Số tiền Khóa đích R = rG P = Hs(rA)G + B Người nhận khóa công khai Dữ liệu ngẫu nhiên của người gửi r (A, B) Hình 4. Cấu trúc giao dịch tiêu chuẩn. 4. Alice gửi giao dịch. 5. Bob kiểm tra mọi giao dịch được chuyển bằng khóa riêng của mình (a, b) và tính P ′ = Hs(aR)G + B. Nếu giao dịch của Alice với Bob là người nhận nằm trong số đó, thì aR = arG = rA và P ′ = P. 7 13 Tôi tự hỏi sẽ đau đầu đến thế nào khi thực hiện một lựa chọn mật mã kế hoạch. Hình elip hoặc cách khác. Vì vậy, nếu kế hoạch nào đó bị phá vỡ trong tương lai, tiền tệ sẽ chuyển đổi mà không cần quan tâm. Có lẽ là một cơn đau lớn ở mông. Được rồi, đây chính xác là những gì tôi vừa giải thích trong bình luận trước đó. Kiểu Diffie-Hellman trao đổi rất gọn gàng. Giả sử Alex và Brenda mỗi người có một số bí mật A và B và một số họ không quan tâm đến việc giữ bí mật, a và b. Họ mong muốn tạo ra một bí mật được chia sẻ mà không cần Eva phát hiện ra nó. Diffie và Hellman đã nghĩ ra cách để Alex và Brenda chia sẻ các số công khai a và b, nhưng không phải các số riêng tư A và B, và tạo ra một bí mật chung, K. Sử dụng bí mật được chia sẻ này, K, mà không có bất kỳ Eva nào lắng nghe để có thể tạo ra bí mật tương tự K, Alex và Brenda hiện có thể sử dụng K làm khóa mã hóa bí mật và gửi lại các tin nhắn bí mật trở đi. Đây là cách nó CÓ THỂ hoạt động, mặc dù nó sẽ hoạt động với các số lớn hơn 100. Chúng ta sẽ sử dụng 100 vì tính toán các số nguyên theo modulo 100 tương đương với việc "loại bỏ tất cả nhưng là hai chữ số cuối cùng của một số." Alex và Brenda mỗi người chọn A, a, B và b. Họ giữ bí mật cho A và B. Alex nói với Brenda giá trị của modulo 100 (chỉ hai chữ số cuối) và Brenda nói với Alex giá trị của cô ấy là b modulo 100. Bây giờ Eva biết (a,b) modulo 100. Nhưng Alex biết (a,b,A) nên cô ấy có thể tính x=abA modulo 100.Alex bỏ qua tất cả trừ chữ số cuối cùng vì chúng ta đang làm việc lại theo số nguyên modulo 100. Tương tự, Brenda biết (a,b,B) nên cô ấy có thể tính y=abB modulo 100. Bây giờ Alex có thể xuất bản x và Brenda có thể xuất bản y. Nhưng bây giờ Alex có thể tính yA = abBA modulo 100 và Brenda có thể tính xB = abBA modulo 100. Cả hai đều biết cùng một số! Nhưng tất cả những gì Eva đã nghe là (a,b,abA,abB). Cô ấy không có cách nào dễ dàng để tính abA*B. Bây giờ, đây là cách suy nghĩ dễ dàng và kém an toàn nhất về sàn giao dịch Diffi-Hellman. Có nhiều phiên bản an toàn hơn. Nhưng hầu hết các phiên bản đều hoạt động vì hệ số nguyên và rời rạc logarit rất khó và cả hai vấn đề đó đều được giải quyết dễ dàng bằng máy tính lượng tử. Tôi sẽ xem xét liệu có tồn tại phiên bản nào chống lại lượng tử hay không. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange "Chuỗi txn tiêu chuẩn" được liệt kê ở đây thiếu rất nhiều bước, chẳng hạn như CHỮ KÝ. Họ chỉ được coi là đương nhiên ở đây. Điều này thực sự tồi tệ, bởi vì thứ tự mà chúng ta nội dung ký tên, thông tin có trong tin nhắn đã ký, v.v.... tất cả những điều này cực kỳ quan trọng đối với giao thức. Thực hiện sai một hoặc hai bước, thậm chí hơi sai trật tự trong khi triển khai " trình tự giao dịch tiêu chuẩn" có thể khiến tính bảo mật của toàn bộ hệ thống bị nghi ngờ. Hơn nữa, các bằng chứng được trình bày sau trong bài báo có thể không đủ chặt chẽ nếu khuôn khổ mà chúng hoạt động được xác định một cách lỏng lẻo như trong phần này.

công cộng Riêng tư Alice Carol Chìa khóa một lần Chìa khóa một lần Chìa khóa một lần Bob Chìa khóa của Bob Địa chỉ của Bob Hình 3. Mô hình khóa/giao dịch CryptoNote. Đầu tiên, người gửi thực hiện trao đổi Diffe-Hellman để lấy bí mật chung từ dữ liệu của mình và một nửa địa chỉ của người nhận. Sau đó, anh ta tính toán khóa đích một lần bằng cách sử dụng khóa chia sẻ bí mật và nửa sau của địa chỉ. Hai ec-key khác nhau được yêu cầu từ người nhận đối với hai bước này, do đó, địa chỉ CryptoNote tiêu chuẩn lớn gần gấp đôi ví Bitcoin địa chỉ. Người nhận cũng thực hiện trao đổi Diffe-Hellman để khôi phục thông tin tương ứng chìa khóa bí mật. Một chuỗi giao dịch tiêu chuẩn diễn ra như sau: 1. Alice muốn gửi thanh toán cho Bob, người đã công bố địa chỉ tiêu chuẩn của mình. Cô ấy giải nén địa chỉ và lấy khóa chung của Bob (A, B). 2. Alice tạo ra một \(r \in [1, l - 1]\) ngẫu nhiên và tính khóa công khai một lần \(P = H_s(rA)G +\) B. 3. Alice sử dụng P làm khóa đích cho đầu ra và cũng đóng gói giá trị R = rG (như một phần của sàn giao dịch Diffie-Hellman) ở đâu đó trong giao dịch. Lưu ý rằng cô ấy có thể tạo các đầu ra khác có khóa chung duy nhất: khóa của người nhận khác nhau (Ai, Bi) ngụ ý Pi khác nhau ngay cả với cùng một r. Giao dịch Khóa công khai Tx Đầu ra Tx Số tiền Khóa đích R = rG P = Hs(rA)G + B Người nhận khóa công khai Dữ liệu ngẫu nhiên của người gửi r (A, B) Hình 4. Cấu trúc giao dịch tiêu chuẩn. 4. Alice gửi giao dịch. 5. Bob kiểm tra mọi giao dịch được chuyển bằng khóa riêng của mình (a, b) và tính P ′ = Hs(aR)G + B. Nếu giao dịch của Alice với Bob là người nhận nằm trong số đó, thì aR = arG = rA và P ′ = P. 7 công cộng Riêng tư Alice Carol Chìa khóa một lần Chìa khóa một lần Chìa khóa một lần Bob Chìa khóa của Bob Địa chỉ của Bob Hình 3. Mô hình khóa/giao dịch CryptoNote. Đầu tiên, người gửi thực hiện trao đổi Diffe-Hellman để lấy bí mật chung từ dữ liệu của mình và một nửa địa chỉ của người nhận. Sau đó, anh ta tính toán khóa đích một lần bằng cách sử dụng khóa chia sẻ bí mật và nửa sau của địa chỉ. Hai ec-key khác nhau được yêu cầu từ người nhận đối với hai bước này, do đó, địa chỉ CryptoNote tiêu chuẩn lớn gần gấp đôi so với ví Bitcoin địa chỉ. Người nhận cũng thực hiện trao đổi Diffe-Hellman để khôi phục thông tin tương ứng chìa khóa bí mật. Một chuỗi giao dịch tiêu chuẩn diễn ra như sau: 1. Alice muốn gửi thanh toán cho Bob, người đã công bố địa chỉ tiêu chuẩn của mình. Cô ấy giải nén địa chỉ và lấy khóa chung của Bob (A, B). 2. Alice tạo ra một \(r \in [1, l - 1]\) ngẫu nhiên và tính khóa công khai một lần \(P = H_s(rA)G +\) B. 3. Alice sử dụng P làm khóa đích cho đầu ra và cũng đóng gói giá trị R = rG (như một phần của sàn giao dịch Diffie-Hellman) ở đâu đó trong giao dịch. Lưu ý rằng cô ấy có thể tạo các đầu ra khác có khóa chung duy nhất: khóa của người nhận khác nhau (Ai, Bi) ngụ ý Pi khác nhau ngay cả với cùng một r. Giao dịch Khóa công khai Tx Đầu ra Tx Số tiền Khóa đích R = rG P = Hs(rA)G + B Người nhận khóa công khai Dữ liệu ngẫu nhiên của người gửi r (A, B) Hình 4. Cấu trúc giao dịch tiêu chuẩn. 4. Alice gửi giao dịch. 5. Bob kiểm tra mọi giao dịch được chuyển bằng khóa riêng của mình (a, b) và tính P ′ = Hs(aR)G + B. Nếu giao dịch của Alice với Bob là người nhận nằm trong số đó, thì aR = arG = rA và P ′ = P. 7 14 Lưu ý rằng (các) tác giả đã làm rất tốt việc giữ cho thuật ngữ của họ rõ ràng xuyên suốt văn bản, nhưng đặc biệt là ở phần tiếp theo này. Sự tái sinh tiếp theo của bài viết này nhất thiết sẽ là khắt khe hơn rất nhiều. Trong văn bản họ gọi P là khóa công khai một lần của họ. Trong sơ đồ, họ gọi R là "Khóa công khai Tx" và P là "Khóa đích" của họ. Nếu tôi định viết lại điều này, tôi sẽ trình bày rất cụ thể một số thuật ngữ trước khi thảo luận về các phần này. Cái giếng này rất lớn. Xem trang 5. Ai chọn ell? Sơ đồ minh họa khóa công khai giao dịch R = rG, ngẫu nhiên và được chọn bởi người gửi, không phải là một phần của đầu ra Tx. Điều này là do nó có thể giống nhau đối với nhiều giao dịch cho nhiều người và không được sử dụng SAU ĐÓ để chi tiêu. Một R mới được tạo ra mỗi khi bạn muốn phát một giao dịch CryptoNote mới. Hơn nữa, R chỉ được sử dụng để kiểm tra xem bạn có phải là người nhận giao dịch hay không. Đó không phải là dữ liệu rác mà là rác đối với bất kỳ ai không có khóa riêng được liên kết với (A, B). Mặt khác, khóa Đích P = Hs(rA)G + B là một phần của đầu ra Tx. mọi người việc duyệt qua mọi dữ liệu của giao dịch đi qua phải kiểm tra P* được tạo bởi chính chúng với P này để xem liệu họ có sở hữu giao dịch chuyển tiếp này hay không. Bất kỳ ai có đầu ra giao dịch chưa chi tiêu (UTXO) sẽ có một loạt các chữ P này được sắp xếp với số lượng. Để chi tiêud, họ ký một số tin nhắn mới bao gồm P. Alice phải ký giao dịch này bằng (các) khóa riêng một lần được liên kết với (các) Khóa đích đầu ra giao dịch chưa được chi tiêu. Mỗi khóa đích do Alice sở hữu đều được trang bị với khóa riêng một lần cũng được sở hữu (có lẽ) bởi Alice. Mỗi lần Alice muốn gửi nội dung của khóa đích cho tôi, hoặc Bob, hoặc Brenda, hoặc Charlie hoặc Charlene, cô ấy sử dụng khóa riêng của mình để ký giao dịch. Khi nhận được giao dịch, tôi sẽ nhận được một giao dịch mới Khóa công khai Tx, khóa công khai Đích mới và tôi sẽ có thể khôi phục khóa riêng x một lần mới. Kết hợp khóa riêng một lần của tôi, x, với Đích công khai của giao dịch mới (các) khóa là cách chúng tôi gửi một giao dịch mới

  1. Bob có thể khôi phục khóa riêng một lần tương ứng: x = Hs(aR) + b, do đó P = xG. Anh ta có thể sử dụng sản lượng này bất cứ lúc nào bằng cách ký một giao dịch với x. Giao dịch Khóa công khai Tx Đầu ra Tx Số tiền Khóa đích P ′ = Hs(aR)G + bG khóa công khai một lần x = Hs(aR) + b khóa riêng một lần Người nhận khóa riêng (a, b) R P' ?= P Hình 5. Kiểm tra giao dịch đến. Kết quả là Bob nhận được các khoản thanh toán đến, được liên kết với các khóa công khai một lần. không thể liên kết được đối với người xem. Một số lưu ý bổ sung: • Khi Bob “nhận ra” các giao dịch của mình (xem bước 5), thực tế anh ấy chỉ sử dụng một nửa số tiền của mình thông tin cá nhân: (a, B). Cặp này còn được gọi là khóa theo dõi, có thể được chuyển qua cho bên thứ ba (Carol). Bob có thể ủy quyền cho cô ấy xử lý các giao dịch mới. Bob không cần phải tin tưởng Carol một cách rõ ràng, vì cô ấy không thể khôi phục được khóa bí mật một lần. không có khóa riêng đầy đủ của Bob (a, b). Cách tiếp cận này hữu ích khi Bob thiếu băng thông hoặc sức mạnh tính toán (điện thoại thông minh, ví phần cứng, v.v.). • Trong trường hợp Alice muốn chứng minh cô ấy đã gửi giao dịch đến địa chỉ của Bob, cô ấy có thể tiết lộ r hoặc sử dụng bất kỳ loại giao thức không có kiến thức nào để chứng minh rằng cô ấy biết r (ví dụ bằng cách ký giao dịch với r). • Nếu Bob muốn có một địa chỉ tương thích với việc kiểm tra, nơi tất cả các giao dịch đến đều được có thể liên kết được, anh ta có thể xuất bản khóa theo dõi của mình hoặc sử dụng địa chỉ bị cắt ngắn. Địa chỉ đó chỉ đại diện cho một khóa ec công khai B và phần còn lại mà giao thức yêu cầu là suy ra từ nó như sau: a = Hs(B) và A = Hs(B)G. Trong cả hai trường hợp, mỗi người đều có thể “nhận ra” tất cả giao dịch đến của Bob, nhưng tất nhiên, không ai có thể chi tiêu các khoản tiền được bao bọc bên trong chúng mà không có khóa bí mật b. 4.4 Chữ ký đổ chuông một lần Giao thức dựa trên chữ ký vòng một lần cho phép người dùng đạt được khả năng hủy liên kết vô điều kiện. Thật không may, các loại chữ ký mật mã thông thường cho phép theo dõi các giao dịch người gửi và người nhận tương ứng. Giải pháp của chúng tôi cho sự thiếu sót này nằm ở việc sử dụng một chữ ký khác hơn những loại hiện đang được sử dụng trong hệ thống tiền điện tử. Đầu tiên chúng tôi sẽ cung cấp một mô tả chung về thuật toán của chúng tôi mà không có tham chiếu rõ ràng đến tiền điện tử. Chữ ký vòng một lần chứa bốn thuật toán: (GEN, SIG, VER, LNK): GEN: lấy tham số công khai và xuất ra cặp ec (P, x) và khóa chung I. SIG: nhận thông điệp m, tập \(S'\) khóa công khai {Pi}i̸=s, một cặp (Ps, xs) và xuất ra chữ ký \(\sigma\) và một tập hợp \(S = \)S'\( \cup \{P_s\}\). 8
  2. Bob có thể khôi phục khóa riêng một lần tương ứng: x = Hs(aR) + b, do đó P = xG. Anh ta có thể sử dụng sản lượng này bất cứ lúc nào bằng cách ký một giao dịch với x. Giao dịch Khóa công khai Tx Đầu ra Tx Số tiền Khóa đích P ′ = Hs(aR)G + bG khóa công khai một lần x = Hs(aR) + b khóa riêng một lần Người nhận khóa riêng (a, b) R P' ?= P Hình 5. Kiểm tra giao dịch đến. Kết quả là Bob nhận được các khoản thanh toán đến, được liên kết với các khóa công khai một lần. không thể liên kết được đối với người xem. Một số lưu ý bổ sung: • Khi Bob “nhận ra” các giao dịch của mình (xem bước 5), thực tế anh ấy chỉ sử dụng một nửa số tiền của mình thông tin cá nhân: (a, B). Cặp này còn được gọi là khóa theo dõi, có thể được chuyển qua cho bên thứ ba (Carol). Bob có thể ủy quyền cho cô ấy xử lý các giao dịch mới. Bob không cần phải tin tưởng Carol một cách rõ ràng, vì cô ấy không thể khôi phục được khóa bí mật một lần. không có khóa riêng đầy đủ của Bob (a, b). Cách tiếp cận này hữu ích khi Bob thiếu băng thông hoặc sức mạnh tính toán (điện thoại thông minh, ví phần cứng, v.v.). • Trong trường hợp Alice muốn chứng minh cô ấy đã gửi giao dịch đến địa chỉ của Bob, cô ấy có thể tiết lộ r hoặc sử dụng bất kỳ loại giao thức không có kiến thức nào để chứng minh rằng cô ấy biết r (ví dụ bằng cách ký giao dịch với r). • Nếu Bob muốn có một địa chỉ tương thích với việc kiểm tra, nơi tất cả các giao dịch đến đều được có thể liên kết được, anh ta có thể xuất bản khóa theo dõi của mình hoặc sử dụng địa chỉ bị cắt ngắn. Địa chỉ đó chỉ đại diện cho một khóa ec công khai B và phần còn lại mà giao thức yêu cầu là suy ra từ nó như sau: a = Hs(B) và A = Hs(B)G. Trong cả hai trường hợp, mỗi người đều có thể “nhận ra” tất cả giao dịch đến của Bob, nhưng tất nhiên, không ai có thể chi tiêu các khoản tiền được bao bọc bên trong chúng mà không có khóa bí mật b. 4.4 Chữ ký đổ chuông một lần Giao thức dựa trên chữ ký vòng một lần cho phép người dùng đạt được khả năng hủy liên kết vô điều kiện. Thật không may, các loại chữ ký mật mã thông thường cho phép theo dõi các giao dịch người gửi và người nhận tương ứng. Giải pháp của chúng tôi cho sự thiếu sót này nằm ở việc sử dụng một chữ ký khác hơn những loại hiện đang được sử dụng trong hệ thống tiền điện tử. Đầu tiên chúng tôi sẽ cung cấp một gentất cả mô tả về thuật toán của chúng tôi mà không có tham chiếu rõ ràng đến tiền điện tử. Chữ ký vòng một lần chứa bốn thuật toán: (GEN, SIG, VER, LNK): GEN: lấy tham số công khai và xuất ra cặp ec (P, x) và khóa chung I. SIG: nhận thông điệp m, tập \(S'\) khóa công khai {Pi}i̸=s, một cặp (Ps, xs) và xuất ra chữ ký \(\sigma\) và một tập hợp \(S = \)S'\( \cup \{P_s\}\). 8 15 Đầu ra giao dịch chưa chi tiêu ở đây trông như thế nào? Sơ đồ gợi ý rằng đầu ra giao dịch chỉ bao gồm hai điểm dữ liệu: số tiền và khóa đích. Nhưng đây không phải đủ vì khi tôi cố gắng sử dụng "đầu ra" này, tôi vẫn cần biết R=rG. Hãy nhớ rằng, r được người gửi chọn và R là a) được sử dụng để nhận dạng các ghi chú tiền điện tử đến là của bạn sở hữu và b) được sử dụng để tạo khóa riêng một lần được sử dụng để "yêu cầu" tiền điện tử của bạn. Phần này tôi không hiểu? Lấy lý thuyết "được rồi, chúng tôi có những thứ này chữ ký và giao dịch, và chúng tôi chuyển chúng qua lại" vào thế giới lập trình "được rồi, thông tin cụ thể nào tạo nên một cá nhân UTXO?" Cách tốt nhất để trả lời câu hỏi đó là đào sâu vào nội dung của mã hoàn toàn không có chú thích. Làm tốt lắm, nhóm bytecoin. Nhớ lại: khả năng liên kết có nghĩa là "có phải cùng một người đã gửi không?" và khả năng không liên kết có nghĩa là "đã làm như vậy người ta nhận được không?”. Vì vậy, một hệ thống có thể liên kết được hoặc không thể liên kết được, không thể liên kết được hoặc không thể liên kết được. Khó chịu, tôi biết. Vì vậy, khi Nic van Saberhagen ở đây nói "...các khoản thanh toán đến [được] liên kết với một lần các khóa công khai mà người xem không thể liên kết được", hãy xem ý anh ấy là gì. Đầu tiên, hãy xem xét tình huống trong đó Alice gửi cho Bob hai giao dịch riêng biệt từ cùng một địa chỉ đến cùng một địa chỉ. Trong vũ trụ Bitcoin, Alice đã phạm sai lầm rồi gửi từ cùng một địa chỉ và do đó giao dịch đã không đạt được mong muốn của chúng tôi về số lượng có hạn khả năng liên kết. Hơn nữa, vì cô ấy đã gửi tiền đến cùng một địa chỉ nên cô ấy đã thất bại trong mong muốn của chúng tôi. vì khả năng không liên kết được. Giao dịch bitcoin này vừa có thể (hoàn toàn) có thể liên kết vừa không thể hủy liên kết. Mặt khác, trong thế giới tiền điện tử, giả sử Alice gửi cho Bob một số tiền điện tử, sử dụng địa chỉ công cộng của Bob. Cô ấy chọn làm bộ khóa công khai khó hiểu của mình, tất cả đều được công khai chìa khóa trong khu vực tàu điện ngầm Washington DC. Alex tạo khóa công khai một lần bằng chính khóa của cô ấy thông tin và thông tin công khai của Bob. Cô ấy gửi tiền đi và bất kỳ người quan sát nào cũng sẽ chỉ có thể thu thập được "Ai đó từ khu vực đô thị Washington DC đã gửi 2,3 tiền điện tử tới địa chỉ công khai một lần XYZ123." Chúng tôi có quyền kiểm soát xác suất đối với khả năng liên kết ở đây, vì vậy chúng tôi sẽ gọi đây là "gần như không thể liên kết". Chúng tôi cũng chỉ thấy tiền khóa công khai một lần được gửi tới. Ngay cả khi chúng tôi nghi ngờ người nhận là Bob, chúng tôi không có khóa riêng của anh ấy và vì vậy chúng tôi không thể kiểm tra xem một giao dịch được chuyển thuộc về Bob chứ đừng nói đến việc tạo khóa riêng một lần của anh ấy để đổi tiền điện tử của anh ấy. Vậy cái này trên thực tế là hoàn toàn "không thể liên kết được". Vì vậy, đây là thủ thuật gọn gàng nhất trong tất cả. Ai muốn thực sự tin tưởng một MtGox khác? Chúng tôi có thể thoải mái lưu trữ một số lượng BTC trên Coinbase, nhưng bảo mật bitcoin cao nhất là một ví vật lý. Điều đó thật bất tiện. Trong trường hợp này, bạn có thể cho đi một nửa khóa riêng của mình một cách đáng tin cậy mà không ảnh hưởng đến tài khoản của bạn. khả năng tiêu tiền của bản thân. Khi làm điều này, tất cả những gì bạn đang làm là nói cho ai đó cách phá vỡ tính không liên kết. Cái khác các đặc tính của CN hoạt động giống như một loại tiền tệ được bảo toàn, như bằng chứng chống chi tiêu gấp đôi và không có gì.

  3. Bob có thể khôi phục khóa riêng một lần tương ứng: x = Hs(aR) + b, do đó P = xG. Anh ta có thể sử dụng sản lượng này bất cứ lúc nào bằng cách ký một giao dịch với x. Giao dịch Khóa công khai Tx Đầu ra Tx Số tiền Khóa đích P ′ = Hs(aR)G + bG khóa công khai một lần x = Hs(aR) + b khóa riêng một lần Người nhận khóa riêng (a, b) R P' ?= P Hình 5. Kiểm tra giao dịch đến. Kết quả là Bob nhận được các khoản thanh toán đến, được liên kết với các khóa công khai một lần. không thể liên kết được đối với người xem. Một số lưu ý bổ sung: • Khi Bob “nhận ra” các giao dịch của mình (xem bước 5), thực tế anh ấy chỉ sử dụng một nửa số tiền của mình thông tin cá nhân: (a, B). Cặp này còn được gọi là khóa theo dõi, có thể được chuyển qua cho bên thứ ba (Carol). Bob có thể ủy quyền cho cô ấy xử lý các giao dịch mới. Bob không cần phải tin tưởng Carol một cách rõ ràng, vì cô ấy không thể khôi phục được khóa bí mật một lần. không có khóa riêng đầy đủ của Bob (a, b). Cách tiếp cận này hữu ích khi Bob thiếu băng thông hoặc sức mạnh tính toán (điện thoại thông minh, ví phần cứng, v.v.). • Trong trường hợp Alice muốn chứng minh cô ấy đã gửi giao dịch đến địa chỉ của Bob, cô ấy có thể tiết lộ r hoặc sử dụng bất kỳ loại giao thức không có kiến thức nào để chứng minh rằng cô ấy biết r (ví dụ bằng cách ký giao dịch với r). • Nếu Bob muốn có một địa chỉ tương thích với việc kiểm tra, nơi tất cả các giao dịch đến đều được có thể liên kết được, anh ta có thể xuất bản khóa theo dõi của mình hoặc sử dụng địa chỉ bị cắt ngắn. Địa chỉ đó chỉ đại diện cho một khóa ec công khai B và phần còn lại mà giao thức yêu cầu là suy ra từ nó như sau: a = Hs(B) và A = Hs(B)G. Trong cả hai trường hợp, mỗi người đều có thể “nhận ra” tất cả giao dịch đến của Bob, nhưng tất nhiên, không ai có thể chi tiêu các khoản tiền được bao bọc bên trong chúng mà không có khóa bí mật b. 4.4 Chữ ký đổ chuông một lần Giao thức dựa trên chữ ký vòng một lần cho phép người dùng đạt được khả năng hủy liên kết vô điều kiện. Thật không may, các loại chữ ký mật mã thông thường cho phép theo dõi các giao dịch người gửi và người nhận tương ứng. Giải pháp của chúng tôi cho sự thiếu sót này nằm ở việc sử dụng một chữ ký khác hơn những loại hiện đang được sử dụng trong hệ thống tiền điện tử. Đầu tiên chúng tôi sẽ cung cấp một mô tả chung về thuật toán của chúng tôi mà không có tham chiếu rõ ràng đến tiền điện tử. Chữ ký vòng một lần chứa bốn thuật toán: (GEN, SIG, VER, LNK): GEN: lấy tham số công khai và xuất ra cặp ec (P, x) và khóa chung I. SIG: nhận thông điệp m, tập \(S'\) khóa công khai {Pi}i̸=s, một cặp (Ps, xs) và xuất ra chữ ký \(\sigma\) và một tập hợp \(S = \)S'\( \cup \{P_s\}\). 8

  4. Bob có thể khôi phục khóa riêng một lần tương ứng: x = Hs(aR) + b, do đó P = xG. Anh ta có thể sử dụng sản lượng này bất cứ lúc nào bằng cách ký một giao dịch với x. Giao dịch Khóa công khai Tx Đầu ra Tx Số tiền Khóa đích P ′ = Hs(aR)G + bG khóa công khai một lần x = Hs(aR) + b khóa riêng một lần Người nhận khóa riêng (a, b) R P' ?= P Hình 5. Kiểm tra giao dịch đến. Kết quả là Bob nhận được các khoản thanh toán đến, được liên kết với các khóa công khai một lần. không thể liên kết được đối với người xem. Một số lưu ý bổ sung: • Khi Bob “nhận ra” các giao dịch của mình (xem bước 5), thực tế anh ấy chỉ sử dụng một nửa số tiền của mình thông tin cá nhân: (a, B). Cặp này còn được gọi là khóa theo dõi, có thể được chuyển qua cho bên thứ ba (Carol). Bob có thể ủy quyền cho cô ấy xử lý các giao dịch mới. Bob không cần phải tin tưởng Carol một cách rõ ràng, vì cô ấy không thể khôi phục được khóa bí mật một lần. không có khóa riêng đầy đủ của Bob (a, b). Cách tiếp cận này hữu ích khi Bob thiếu băng thông hoặc sức mạnh tính toán (điện thoại thông minh, ví phần cứng, v.v.). • Trong trường hợp Alice muốn chứng minh cô ấy đã gửi giao dịch đến địa chỉ của Bob, cô ấy có thể tiết lộ r hoặc sử dụng bất kỳ loại giao thức không có kiến thức nào để chứng minh rằng cô ấy biết r (ví dụ bằng cách ký giao dịch với r). • Nếu Bob muốn có một địa chỉ tương thích với việc kiểm tra, nơi tất cả các giao dịch đến đều được có thể liên kết được, anh ta có thể xuất bản khóa theo dõi của mình hoặc sử dụng địa chỉ bị cắt ngắn. Địa chỉ đó chỉ đại diện cho một khóa ec công khai B và phần còn lại mà giao thức yêu cầu là suy ra từ nó như sau: a = Hs(B) và A = Hs(B)G. Trong cả hai trường hợp, mỗi người đều có thể “nhận ra” tất cả giao dịch đến của Bob, nhưng tất nhiên, không ai có thể chi tiêu các khoản tiền được bao bọc bên trong chúng mà không có khóa bí mật b. 4.4 Chữ ký đổ chuông một lần Giao thức dựa trên chữ ký vòng một lần cho phép người dùng đạt được khả năng hủy liên kết vô điều kiện. Thật không may, các loại chữ ký mật mã thông thường cho phép theo dõi các giao dịch người gửi và người nhận tương ứng. Giải pháp của chúng tôi cho sự thiếu sót này nằm ở việc sử dụng một chữ ký khác hơn những loại hiện đang được sử dụng trong hệ thống tiền điện tử. Đầu tiên chúng tôi sẽ cung cấp một gentất cả mô tả về thuật toán của chúng tôi mà không có tham chiếu rõ ràng đến tiền điện tử. Chữ ký vòng một lần chứa bốn thuật toán: (GEN, SIG, VER, LNK): GEN: lấy tham số công khai và xuất ra cặp ec (P, x) và khóa chung I. SIG: nhận thông điệp m, tập \(S'\) khóa công khai {Pi}i̸=s, một cặp (Ps, xs) và xuất ra chữ ký \(\sigma\) và một tập hợp \(S = \)S'\( \cup \{P_s\}\). 8 16 Có, vậy là bây giờ chúng ta có a) địa chỉ thanh toán và b) ID thanh toán. Một nhà phê bình có thể hỏi "chúng ta có thực sự cần phải làm điều này không? Rốt cuộc, nếu một thương gia nhận được 112.00678952 CN chính xác, và đó là đơn đặt hàng của tôi, và tôi có ảnh chụp màn hình hoặc biên nhận hay bất cứ thứ gì, phải không? mức độ chính xác điên rồ có đủ không?" Câu trả lời là "có lẽ, hầu hết thời gian, hàng ngày, giao dịch trực tiếp." Tuy nhiên, tình huống phổ biến hơn (đặc biệt là trong thế giới kỹ thuật số) là: một thương gia bán một tập hợp các đối tượng, mỗi đối tượng có một mức giá cố định. Giả sử vật A là 0,001 CN, vật B là 0,01 CN và vật C là 0,1 CN. Bây giờ, nếu người bán nhận được đơn hàng với giá 1.618 CN thì có rất nhiều (nhiều!) cách để sắp xếp đơn hàng cho khách hàng. Và do đó, nếu không có loại ID thanh toán nào đó, xác định cái gọi là đơn hàng "duy nhất" của một khách hàng với cái gọi là chi phí "duy nhất" của họ trật tự trở nên không thể. Buồn cười hơn nữa: nếu mọi thứ trong cửa hàng trực tuyến của tôi có giá chính xác là 1,0 CN, và tôi có được 1000 khách hàng mỗi ngày? Và bạn muốn chứng minh rằng bạn đã mua đúng 3 đồ vật hai tuần trước? Không có ID thanh toán? Chúc may mắn, anh bạn. Tóm tắt câu chuyện: Khi Bob công bố một địa chỉ thanh toán, cuối cùng anh ấy cũng có thể công bố một địa chỉ thanh toán. ID thanh toán (xem ví dụ: tiền gửi Poloniex XMR). Điều này khác với những gì được mô tả trong văn bản ở đây Alice là người tạo ID thanh toán. Phải có cách nào đó để Bob tạo ID thanh toán. (a,B) Hãy nhớ lại rằng khóa theo dõi (a,B) có thể được công bố; mất đi tính bí mật về giá trị của ý chí 'a' không vi phạm khả năng chi tiêu của bạn hoặc cho phép người khác ăn trộm của bạn (tôi nghĩ... điều đó sẽ có được chứng minh), nó sẽ chỉ cho phép mọi người xem tất cả các giao dịch đến. Một địa chỉ bị cắt ngắn, như được mô tả trong đoạn này, chỉ cần lấy phần "riêng tư" của khóa và tạo ra nó từ phần "công khai". Tiết lộ giá trị cho 'a' sẽ loại bỏ khả năng không liên kết nhưng sẽ bảo toàn phần còn lại của giao dịch. Tác giả muốn nói là "không thể hủy liên kết" vì không thể liên kết được đề cập đến người nhận và có thể liên kết được đề cập đến người gửi. Cũng rõ ràng là tác giả đã không nhận ra rằng có hai khía cạnh khác nhau về khả năng liên kết. Vì xét cho cùng, giao dịch là một đối tượng được định hướng trên biểu đồ nên sẽ có hai câu hỏi: "hai giao dịch này có đến cùng một người không?" và "hai giao dịch này sắp diễn ra từ cùng một người?” Đây là chính sách "không quay lại", theo đó thuộc tính không thể liên kết của CryptoNote được có điều kiện. Điều đó có nghĩa là Bob có thể chọn các giao dịch đến của mình để không thể hủy liên kết được sử dụng chính sách này. Đây là một tuyên bố mà họ chứng minh theo Mô hình Oracle ngẫu nhiên. Chúng ta sẽ đạt được điều đó; sự ngẫu nhiên Oracle có ưu và nhược điểm.

VER: nhận thông điệp m, tập S, chữ ký \(\sigma\) và xuất ra “true” hoặc “false”. LNK: lấy tập I = {Ii}, chữ ký \(\sigma\) và xuất ra “được liên kết” hoặc “độc lập”. Ý tưởng đằng sau giao thức này khá đơn giản: người dùng tạo ra một chữ ký có thể được được kiểm tra bằng một bộ khóa công khai chứ không phải bằng một khóa chung duy nhất. Danh tính của người ký là không thể phân biệt được với những người dùng khác có khóa chung trong bộ cho đến khi chủ sở hữu tạo ra chữ ký thứ hai sử dụng cùng một cặp khóa. Khóa riêng x0 \(\cdots\) xi \(\cdots\) xn Khóa công khai P0 \(\cdots\) Pi \(\cdots\) Pn Nhẫn Chữ ký ký tên xác minh Hình 6. Ẩn danh chữ ký vòng. GEN: Người ký chọn một khóa bí mật ngẫu nhiên \(x \in [1, l - 1]\) và tính toán tương ứng khóa công khai P = xG. Ngoài ra, anh ta còn tính một khóa công khai khác I = xHp(P) mà chúng ta sẽ gọi là “hình ảnh quan trọng”. SIG: Người ký tạo chữ ký vòng một lần với kiến thức không tương tác chứng minh bằng cách sử dụng các kỹ thuật từ [21]. Anh ta chọn một tập con ngẫu nhiên \(S'\) của n từ những người dùng khác khóa công khai Pi, cặp khóa riêng của anh ta (x, P) và ảnh khóa I. Giả sử 0  n là chỉ số bí mật của người ký trong S (để khóa công khai của anh ta là Ps). Anh ấy chọn ngẫu nhiên một {qi | tôi = 0 . . . n} và {wi | tôi = 0 . . . n, i ̸= s} từ (1 . . . l) và áp dụng các phép biến đổi sau: Lý = ( khí công, nếu tôi = s qiG + wiPi, nếu tôi ̸= s Ri = ( qiHp(Pi), nếu tôi = s qiHp(Pi) + wiI, nếu tôi ̸= s Bước tiếp theo là nhận thử thách không tương tác: c = Hs(m, L1, . . , Ln, R1, . . . , Rn) Cuối cùng người ký tính toán phản hồi: ci =    , nếu tôi ̸= s c − nP tôi=0 ci mod tôi, nếu tôi = s ri = ( khí, nếu tôi ̸= s qs −csx mod tôi, nếu tôi = s Chữ ký thu được là \(\sigma\) = (I, c1, . . , cn, r1, . . . , rn). 9 VER: nhận thông điệp m, tập S, chữ ký \(\sigma\) và xuất ra “true” hoặc “false”. LNK: lấy tập I = {Ii}, chữ ký \(\sigma\) và xuất ra “được liên kết” hoặc “độc lập”. Ý tưởng đằng sau giao thức này khá đơn giản: người dùng tạo ra một chữ ký có thể được được kiểm tra bằng một bộ khóa công khai chứ không phải bằng một khóa chung duy nhất. Danh tính của người ký là không thể phân biệt được với những người dùng khác có khóa chung trong bộ cho đến khi chủ sở hữu tạo ra chữ ký thứ hai sử dụng cùng một cặp khóa. Khóa riêng x0 \(\cdots\) xi \(\cdots\) xn Khóa công khai P0 \(\cdots\) Pi \(\cdots\) Pn Nhẫn Chữ ký ký tên xác minh Hình 6. Ẩn danh chữ ký vòng. GEN: Người ký chọn một khóa bí mật ngẫu nhiên \(x \in [1, l - 1]\) và tính toán tương ứng khóa công khai P = xG. Ngoài ra, anh ta còn tính một khóa công khai khác I = xHp(P) mà chúng ta sẽ gọi là “hình ảnh quan trọng”. SIG: Người ký tạo chữ ký vòng một lần với kiến thức không tương tác chứng minh bằng cách sử dụng các kỹ thuật từ [21]. Anh ta chọn một tập con ngẫu nhiên \(S'\) của n từ những người dùng khác khóa công khai Pi, cặp khóa riêng của anh ta (x, P) và ảnh khóa I. Giả sử 0  n là chỉ số bí mật của người ký trong S (để khóa công khai của anh ta là Ps). Anh ấy chọn ngẫu nhiên một {qi | tôi = 0 . . . n} và {wi | tôi = 0 . . . n, i ̸= s} từ (1 . . . l) và áp dụng các phép biến đổi sau: Lý = ( khí công, nếu tôi = s qiG + wiPi, nếu tôi ̸= s Ri = ( qiHp(Pi), nếu tôi = s qiHp(Pi) + wiI, nếu tôi ̸= s Bước tiếp theo là nhận thử thách không tương tác: c = Hs(m, L1, . . , Ln, R1, . . . , Rn) Cuối cùng người ký tính toán phản hồi: ci =    , nếu tôi ̸= s c − nP tôi=0 ci mod tôi, nếu tôi = s ri = ( khí, nếu tôi ̸= s qs −csx mod tôi, nếu tôi = s Chữ ký thu được là \(\sigma\) = (I, c1, . . , cn, r1, . . . , rn). 9 17 Có lẽ điều này thật ngu ngốc nhưng phải cẩn thận khi kết hợp S và P_s. Nếu bạn chỉ nối thêm khóa công khai cuối cùng đến cuối, khả năng không liên kết bị hỏng vì bất kỳ ai kiểm tra các giao dịch chuyển qua chỉ có thể kiểm tra khóa công khai cuối cùng được liệt kê trong mỗi giao dịch và bùng nổ. Đó là khóa công khai liên quan đến người gửi. Vì vậy, sau khi hợp nhất, một bộ tạo số giả ngẫu nhiên phải được được sử dụng để hoán vị các khóa công khai đã chọn. "...cho đến khi chủ sở hữu tạo ra chữ ký thứ hai bằng cách sử dụng cùng một cặp khóa." Tôi ước (các) tác giả? sẽ giải thích chi tiết về điều này. Tôi tin rằng điều này có nghĩa là "hãy đảm bảo rằng mỗi khi bạn chọn một bộ khóa công khai để làm xáo trộn với chính mình, bạn chọn một bộ chìa khóa hoàn toàn mới không có hai chiếc chìa khóa nào giống nhau." Điều này có vẻ giống như một điều kiện khá mạnh để đặt vào tình trạng không thể liên kết được. Có lẽ "bạn chọn một bộ ngẫu nhiên mới từ tất cả các khóa có thể" với giả định rằng, mặc dù các giao lộ không tầm thường chắc chắn sẽ xảy ra, chúng sẽ không xảy ra thường xuyên. Dù bằng cách nào, tôi cần phải tìm hiểu sâu hơn về tuyên bố này. Điều này đang tạo ra chữ ký vòng. Bằng chứng không có kiến thức thật tuyệt vời: Tôi thách bạn chứng minh cho tôi thấy rằng bạn biết một bí mật mà không tiết lộ bí mật. Ví dụ: giả sử chúng ta đang ở lối vào của một hang động hình bánh rán, và ở phía sau hang động (ngoài tầm nhìn từ lối vào) là một ocánh cửa mới mà bạn khẳng định bạn có chìa khóa. Nếu bạn đi một hướng, nó luôn cho phép bạn đi qua, nhưng nếu bạn đi hướng hướng khác, bạn cần một chìa khóa. Nhưng bạn thậm chí còn không muốn cho tôi xem chìa khóa chứ đừng nói đến cho tôi thấy rằng nó mở được cánh cửa. Nhưng bạn muốn chứng minh cho tôi thấy rằng bạn biết cách mở cửa. Trong cài đặt tương tác, tôi tung đồng xu. Đầu ở bên trái, đuôi ở bên phải và bạn đi xuống hang động hình bánh rán theo cách đồng xu hướng dẫn bạn. Ở phía sau, ngoài tầm nhìn của tôi, bạn mở cửa để quay lại phía bên kia. Chúng tôi lặp lại thí nghiệm tung đồng xu cho đến khi tôi hài lòng rằng bạn có chìa khóa. Nhưng đó rõ ràng là bằng chứng không có kiến ​​thức TƯƠNG TÁC. Có những phiên bản không tương tác mà bạn và tôi không bao giờ phải giao tiếp; Bằng cách này, không kẻ nghe trộm nào có thể can thiệp được. http://en.wikipedia.org/wiki/Zero-knowledge_proof Điều này trái ngược với định nghĩa trước đó.

VER: nhận thông điệp m, tập S, chữ ký \(\sigma\) và xuất ra “true” hoặc “false”. LNK: lấy tập I = {Ii}, chữ ký \(\sigma\) và xuất ra “được liên kết” hoặc “độc lập”. Ý tưởng đằng sau giao thức này khá đơn giản: người dùng tạo ra một chữ ký có thể được được kiểm tra bằng một bộ khóa công khai chứ không phải bằng một khóa chung duy nhất. Danh tính của người ký là không thể phân biệt được với những người dùng khác có khóa chung trong bộ cho đến khi chủ sở hữu tạo ra chữ ký thứ hai sử dụng cùng một cặp khóa. Khóa riêng x0 \(\cdots\) xi \(\cdots\) xn Khóa công khai P0 \(\cdots\) Pi \(\cdots\) Pn Nhẫn Chữ ký ký tên xác minh Hình 6. Ẩn danh chữ ký vòng. GEN: Người ký chọn một khóa bí mật ngẫu nhiên \(x \in [1, l - 1]\) và tính toán tương ứng khóa công khai P = xG. Ngoài ra, anh ta còn tính một khóa công khai khác I = xHp(P) mà chúng ta sẽ gọi là “hình ảnh quan trọng”. SIG: Người ký tạo chữ ký vòng một lần với kiến thức không tương tác chứng minh bằng cách sử dụng các kỹ thuật từ [21]. Anh ta chọn một tập con ngẫu nhiên \(S'\) của n từ những người dùng khác khóa công khai Pi, cặp khóa riêng của anh ta (x, P) và ảnh khóa I. Giả sử 0  n là chỉ số bí mật của người ký trong S (để khóa công khai của anh ta là Ps). Anh ấy chọn ngẫu nhiên một {qi | tôi = 0 . . . n} và {wi | tôi = 0 . . . n, i ̸= s} từ (1 . . . l) và áp dụng các phép biến đổi sau: Lý = ( khí công, nếu tôi = s qiG + wiPi, nếu tôi ̸= s Ri = ( qiHp(Pi), nếu tôi = s qiHp(Pi) + wiI, nếu tôi ̸= s Bước tiếp theo là nhận thử thách không tương tác: c = Hs(m, L1, . . , Ln, R1, . . . , Rn) Cuối cùng người ký tính toán phản hồi: ci =    , nếu tôi ̸= s c − nP tôi=0 ci mod tôi, nếu tôi = s ri = ( khí, nếu tôi ̸= s qs −csx mod tôi, nếu tôi = s Chữ ký thu được là \(\sigma\) = (I, c1, . . , cn, r1, . . . , rn). 9 VER: nhận thông điệp m, tập S, chữ ký \(\sigma\) và xuất ra “true” hoặc “false”. LNK: lấy tập I = {Ii}, chữ ký \(\sigma\) và xuất ra “được liên kết” hoặc “độc lập”. Ý tưởng đằng sau giao thức này khá đơn giản: người dùng tạo ra một chữ ký có thể được được kiểm tra bằng một bộ khóa công khai chứ không phải bằng một khóa chung duy nhất. Danh tính của người ký là không thể phân biệt được với những người dùng khác có khóa chung trong bộ cho đến khi chủ sở hữu tạo ra chữ ký thứ hai sử dụng cùng một cặp khóa. Khóa riêng x0 \(\cdots\) xi \(\cdots\) xn Khóa công khai P0 \(\cdots\) Pi \(\cdots\) Pn Nhẫn Chữ ký ký tên xác minh Hình 6. Ẩn danh chữ ký vòng. GEN: Người ký chọn một khóa bí mật ngẫu nhiên \(x \in [1, l - 1]\) và tính toán tương ứng khóa công khai P = xG. Ngoài ra, anh ta còn tính một khóa công khai khác I = xHp(P) mà chúng ta sẽ gọi là “hình ảnh quan trọng”. SIG: Người ký tạo chữ ký vòng một lần với kiến thức không tương tác chứng minh bằng cách sử dụng các kỹ thuật từ [21]. Anh ta chọn một tập con ngẫu nhiên \(S'\) của n từ những người dùng khác khóa công khai Pi, cặp khóa riêng của anh ta (x, P) và ảnh khóa I. Giả sử 0  n là chỉ số bí mật của người ký trong S (để khóa công khai của anh ta là Ps). Anh ấy chọn ngẫu nhiên một {qi | tôi = 0 . . . n} và {wi | tôi = 0 . . . n, i ̸= s} từ (1 . . . l) và áp dụng các phép biến đổi sau: Lý = ( khí công, nếu tôi = s qiG + wiPi, nếu tôi ̸= s Ri = ( qiHp(Pi), nếu tôi = s qiHp(Pi) + wiI, nếu tôi ̸= s Bước tiếp theo là nhận thử thách không tương tác: c = Hs(m, L1, . . , Ln, R1, . . . , Rn) Cuối cùng người ký tính toán phản hồi: ci =    , nếu tôi ̸= s c − nP tôi=0 ci mod tôi, nếu tôi = s ri = ( khí, nếu tôi ̸= s qs −csx mod tôi, nếu tôi = s Chữ ký thu được là \(\sigma\) = (I, c1, . . , cn, r1, . . . , rn). 9 18 Toàn bộ lĩnh vực này là bất khả tri về tiền điện tử, chỉ mô tả thuật toán chữ ký vòng mà không cần tham chiếu đến tiền tệ. Tôi nghi ngờ một số ký hiệu nhất quán với phần còn lại của bài báo, mặc dù. Ví dụ: x là khóa bí mật "ngẫu nhiên" được chọn trong GEN, cung cấp khóa chung P và hình ảnh khóa công khai I. Giá trị này của x là giá trị Bob tính toán ở phần 6 trang 8. Vậy đây là bắt đầu làm sáng tỏ một số nhầm lẫn từ mô tả trước đó. Điều này thật tuyệt vời; tiền không được chuyển từ "địa chỉ công cộng của Alice sang địa chỉ công cộng của Bob địa chỉ." Nó đang được chuyển từ địa chỉ một lần sang địa chỉ một lần. Vì vậy, theo một nghĩa nào đó, đây là cách mọi thứ hoạt động. Nếu Alex có một số tiền điện tử vì ai đó đã gửi chúng cho cô ấy, điều này có nghĩa là cô ấy có khóa riêng cần thiết để gửi chúng cho Bob. Cô ấy sử dụng trao đổi Diffie-Hellman sử dụng thông tin công khai của Bob để tạo địa chỉ một lần mới và các tiền điện tử được chuyển đến địa chỉ đó. Bây giờ, do trao đổi DH (có lẽ là an toàn) đã được sử dụng để tạo địa chỉ một lần mới mà Alex đã gửi CN của cô ấy tới, Bob là người duy nhất có khóa riêng cần thiết để lặp lại ở trên. Vậy bây giờ Bob là Alex. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation Tổng kết nên được lập chỉ mục trên j chứ không phải i. Mỗi c_i là rác ngẫu nhiên (vì w_i là ngẫu nhiên) ngoại trừ cái mông c_iđược liên kết với khóa thực tế liên quan đến chữ ký này. Giá trị của c là hash của thông tin trước đó. Tuy nhiên, tôi nghĩ rằng điều này có thể chứa một lỗi đánh máy tệ hơn việc sử dụng lại chỉ mục 'i', vì c_s dường như được xác định một cách ngầm định, không rõ ràng. Thật vậy, nếu chúng ta tin vào phương trình này thì chúng ta xác định được rằng c_s = (1/2)c - (1/2) tổng_i neq s c_i. Tức là hash trừ đi cả đống số ngẫu nhiên. Mặt khác, nếu phép tính tổng này được đọc là "c_s = (c - sum_j neq s c_j) mod l", sau đó chúng tôi lấy hash thông tin trước đó của chúng tôi, tạo ra một loạt các số ngẫu nhiên, trừ tất cả các số ngẫu nhiên đó khỏi hash và kết quả là c_s. Điều này có vẻ là điều gì "nên" xảy ra theo trực giác của tôi và phù hợp với bước xác minh ở trang 10. Nhưng trực giác không phải là toán học. Tôi sẽ tìm hiểu sâu hơn về điều này. Tương tự như trước; tất cả những thứ này sẽ là rác ngẫu nhiên ngoại trừ thứ liên quan đến thực tế khóa công khai của người ký x. Ngoại trừ lần này, đây là những gì tôi mong đợi hơn từ cấu trúc: r_i là ngẫu nhiên đối với i!=s và r_s chỉ được xác định bởi bí mật x và các giá trị được lập chỉ mục s của q_i và c_i.

VER: Người xác minh kiểm tra chữ ký bằng cách áp dụng các phép biến đổi nghịch đảo: ( L’ i = riG + ciPi R’ i = riHp(Pi) + ciI Cuối cùng, người xác minh sẽ kiểm tra xem nP tôi=0 ci ?= Hs(m, L′ 0, . . . , L' n, R' 0, . . . , R′ n) mod l Nếu đẳng thức này đúng, trình xác minh sẽ chạy thuật toán LNK. Ngược lại, người xác minh sẽ từ chối chữ ký. LNK: Trình xác minh kiểm tra xem liệu tôi có được sử dụng trong các chữ ký trước đây hay không (các giá trị này được lưu trong tập I). Việc sử dụng nhiều lần ngụ ý rằng hai chữ ký được tạo ra dưới cùng một khóa bí mật. Ý nghĩa của giao thức: bằng cách áp dụng phép biến đổi L, người ký chứng minh rằng mình biết sao cho x có ít nhất một Pi = xG. Để làm cho bằng chứng này không thể lặp lại, chúng tôi giới thiệu hình ảnh chính vì I = xHp(P). Người ký sử dụng cùng các hệ số (ri, ci) để chứng minh gần như cùng một tuyên bố: anh ta biết x sao cho ít nhất một \(H_p(P_i) = I \cdot x^{-1}\). Nếu ánh xạ \(x \to I\) là một phép tiêm: 1. Không ai có thể khôi phục khóa chung từ hình ảnh khóa và xác định người ký; 2. Người ký không được phép ký hai chữ ký có chữ I khác nhau và cùng chữ x. Phân tích bảo mật đầy đủ được cung cấp trong Phụ lục A. 4,5 Giao dịch CryptoNote tiêu chuẩn Bằng cách kết hợp cả hai phương pháp (khóa công khai không thể liên kết và chữ ký vòng không thể theo dõi), Bob đạt được mức độ riêng tư mới so với sơ đồ Bitcoin ban đầu. Nó yêu cầu anh ta chỉ lưu trữ một khóa riêng (a, b) và xuất bản (A, B) để bắt đầu nhận và gửi các giao dịch ẩn danh. Trong khi xác thực mỗi giao dịch, Bob chỉ thực hiện thêm hai phép nhân đường cong elip và một phép cộng cho mỗi đầu ra để kiểm tra xem giao dịch có thuộc về anh ta hay không. Đối với mỗi anh ấy đầu ra Bob khôi phục cặp khóa dùng một lần (pi, Pi) và lưu nó vào ví của mình. Mọi đầu vào đều có thể được chứng minh một cách gián tiếp là có cùng một chủ sở hữu chỉ khi chúng xuất hiện trong một giao dịch duy nhất. trong trên thực tế, mối quan hệ này khó thiết lập hơn nhiều do chữ ký vòng một lần. Với chữ ký vòng Bob có thể ẩn mọi đầu vào của người khác một cách hiệu quả; tất cả có thể người chi tiêu sẽ có thể trang bị được, ngay cả chủ sở hữu trước đó (Alice) cũng không có nhiều thông tin hơn bất kỳ người quan sát nào. Khi ký giao dịch của mình, Bob chỉ định n đầu ra nước ngoài với số tiền tương đương với số tiền của anh ấy. đầu ra, trộn tất cả chúng mà không có sự tham gia của người dùng khác. Bản thân Bob (cũng như bất kỳ ai khác) không biết liệu bất kỳ khoản thanh toán nào trong số này đã được chi tiêu hay chưa: một đầu ra có thể được sử dụng trong hàng nghìn chữ ký như một yếu tố mơ hồ và không bao giờ là mục tiêu che giấu. gấp đôi kiểm tra chi tiêu xảy ra trong giai đoạn LNK khi kiểm tra bộ ảnh chính đã sử dụng. Bob có thể tự mình chọn mức độ mơ hồ: n = 1 nghĩa là xác suất anh ta có chi tiêu đầu ra có xác suất 50%, n = 99 cho 1%. Kích thước của chữ ký kết quả tăng lên tuyến tính như O(n+1), do đó, tính ẩn danh được cải thiện sẽ khiến Bob phải trả thêm phí giao dịch. Anh ấy cũng có thể đặt n = 0 và làm cho chữ ký vòng của anh ta chỉ bao gồm một phần tử, tuy nhiên điều này sẽ ngay lập tức tiết lộ anh ta là một người chi tiêu. 10 VER: Người xác minh kiểm tra chữ ký bằng cách áp dụng các phép biến đổi nghịch đảo: ( L' i = riG + ciPi R’ i = riHp(Pi) + ciI Cuối cùng, người xác minh sẽ kiểm tra xem nP tôi=0 ci ?= Hs(m, L′ 0, . . . , L' n, R' 0, . . . , R′ n) mod l Nếu đẳng thức này đúng, trình xác minh sẽ chạy thuật toán LNK. Ngược lại, người xác minh sẽ từ chối chữ ký. LNK: Trình xác minh kiểm tra xem liệu tôi có được sử dụng trong các chữ ký trước đây hay không (các giá trị này được lưu trong tập I). Việc sử dụng nhiều lần ngụ ý rằng hai chữ ký được tạo ra dưới cùng một khóa bí mật. Ý nghĩa của giao thức: bằng cách áp dụng phép biến đổi L, người ký chứng minh rằng mình biết sao cho x có ít nhất một Pi = xG. Để làm cho bằng chứng này không thể lặp lại, chúng tôi giới thiệu hình ảnh chính vì I = xHp(P). Người ký sử dụng cùng các hệ số (ri, ci) để chứng minh gần như cùng một tuyên bố: anh ta biết x sao cho ít nhất một \(H_p(P_i) = I \cdot x^{-1}\). Nếu ánh xạ \(x \to I\) là một phép tiêm: 1. Không ai có thể khôi phục khóa chung từ hình ảnh khóa và xác định người ký; 2. Người ký không được phép ký hai chữ ký có chữ I khác nhau và cùng chữ x. Phân tích bảo mật đầy đủ được cung cấp trong Phụ lục A. 4,5 Giao dịch CryptoNote tiêu chuẩn Bằng cách kết hợp cả hai phương pháp (khóa công khai không thể liên kết và chữ ký vòng không thể theo dõi), Bob đạt được mức độ riêng tư mới so với sơ đồ Bitcoin ban đầu. Nó yêu cầu anh ta chỉ lưu trữ một khóa riêng (a, b) và xuất bản (A, B) để bắt đầu nhận và gửi các giao dịch ẩn danh. Trong khi xác thực mỗi giao dịch, Bob chỉ thực hiện thêm hai phép nhân đường cong elip và một phép cộng cho mỗi đầu ra để kiểm tra xem giao dịch có thuộc về anh ta hay không. Đối với mỗi anh ấy đầu ra Bob khôi phục cặp khóa một lần (pi, Pi) và stquặng nó vào ví của mình. Mọi đầu vào đều có thể được chứng minh một cách gián tiếp là có cùng một chủ sở hữu chỉ khi chúng xuất hiện trong một giao dịch duy nhất. trong trên thực tế, mối quan hệ này khó thiết lập hơn nhiều do chữ ký vòng một lần. Với chữ ký vòng Bob có thể ẩn mọi đầu vào của người khác một cách hiệu quả; tất cả có thể người chi tiêu sẽ có thể trang bị được, ngay cả chủ sở hữu trước đó (Alice) cũng không có nhiều thông tin hơn bất kỳ người quan sát nào. Khi ký giao dịch của mình, Bob chỉ định n đầu ra nước ngoài với số tiền tương đương với số tiền của anh ấy. đầu ra, trộn tất cả chúng mà không có sự tham gia của người dùng khác. Bản thân Bob (cũng như bất kỳ ai khác) không biết liệu bất kỳ khoản thanh toán nào trong số này đã được chi tiêu hay chưa: một đầu ra có thể được sử dụng trong hàng nghìn chữ ký như một yếu tố mơ hồ và không bao giờ là mục tiêu che giấu. gấp đôi kiểm tra chi tiêu xảy ra trong giai đoạn LNK khi kiểm tra bộ ảnh chính đã sử dụng. Bob có thể tự mình chọn mức độ mơ hồ: n = 1 nghĩa là xác suất anh ta có chi tiêu đầu ra có xác suất 50%, n = 99 cho 1%. Kích thước của chữ ký kết quả tăng lên tuyến tính như O(n+1), do đó, tính ẩn danh được cải thiện sẽ khiến Bob phải trả thêm phí giao dịch. Anh ấy cũng có thể đặt n = 0 và làm cho chữ ký vòng của anh ta chỉ bao gồm một phần tử, tuy nhiên điều này sẽ ngay lập tức tiết lộ anh ta là một người chi tiêu. 10 19 Lúc này, tôi vô cùng bối rối. Alex nhận được tin nhắn M có chữ ký (I,c_1, ..., c_n, r_1, ..., r_n) và danh sách công khai phím S. và cô ấy chạy VER. Điều này sẽ tính toán L_i’ và R_i’ Điều này xác minh rằng c_s = c - sum_i neq s c_i ở trang trước. Lúc đầu tôi RẤT (ha) bối rối. Bất kỳ ai cũng có thể tính L_i’ và R_i’. Thật vậy, mỗi r_i và c_i đã được công bố ở phần chữ ký sigma cùng với giá trị của I. Tập S = P_i của tất cả các khóa công khai cũng đã được công bố. Vì vậy, bất cứ ai đã nhìn thấy sigma và tập hợp khóa S = P_i sẽ nhận cùng giá trị cho L_i’ và R_i’ và do đó kiểm tra chữ ký. Nhưng rồi tôi nhớ ra phần này chỉ mô tả thuật toán chữ ký chứ không phải "kiểm tra nếu đã ký, hãy kiểm tra xem đã GỬI CHO TÔI chưa, và nếu vậy thì hãy tiêu tiền." Đây ĐƠN GIẢN là phần chữ ký của trò chơi. Tôi muốn đọc Phụ lục A khi tôi đến đó. Tôi muốn xem bản so sánh toàn diện giữa từng hoạt động của Cryptonote với Bitcoin. Ngoài ra, điện/sự bền vững. Những phần nào của thuật toán tạo thành "đầu vào" ở đây? Tôi tin rằng đầu vào giao dịch là Số tiền và tập hợp UTXO có tổng số tiền lớn hơn số tiền Số tiền. Điều này không rõ ràng. "Mục tiêu ẩn nấp?" Tôi đã nghĩ về điều này được vài phút rồi nhưng tôi vẫn chưa ý tưởng mù mờ nhất về ý nghĩa của nó. Một cuộc tấn công chi tiêu gấp đôi chỉ có thể được thực hiện bằng cách thao túng khóa đã sử dụng của nút bộ hình ảnh \(I\). "Mức độ mơ hồ" = n nhưng tổng số khóa công khai có trong giao dịch là n+1. Điều đó có nghĩa là, mức độ mơ hồ sẽ là "bạn muốn có bao nhiêu người KHÁC tham gia" đám đông à?" Theo mặc định, câu trả lời có thể sẽ là "càng nhiều càng tốt".

VER: Người xác minh kiểm tra chữ ký bằng cách áp dụng các phép biến đổi nghịch đảo: ( L' i = riG + ciPi R’ i = riHp(Pi) + ciI Cuối cùng, người xác minh sẽ kiểm tra xem nP tôi=0 ci ?= Hs(m, L′ 0, . . . , L' n, R' 0, . . . , R′ n) mod l Nếu đẳng thức này đúng, trình xác minh sẽ chạy thuật toán LNK. Ngược lại, người xác minh sẽ từ chối chữ ký. LNK: Trình xác minh kiểm tra xem liệu tôi có được sử dụng trong các chữ ký trước đây hay không (các giá trị này được lưu trong tập I). Việc sử dụng nhiều lần ngụ ý rằng hai chữ ký được tạo ra dưới cùng một khóa bí mật. Ý nghĩa của giao thức: bằng cách áp dụng phép biến đổi L, người ký chứng minh rằng mình biết sao cho x có ít nhất một Pi = xG. Để làm cho bằng chứng này không thể lặp lại, chúng tôi giới thiệu hình ảnh chính vì I = xHp(P). Người ký sử dụng cùng các hệ số (ri, ci) để chứng minh gần như cùng một tuyên bố: anh ta biết x sao cho ít nhất một \(H_p(P_i) = I \cdot x^{-1}\). Nếu ánh xạ \(x \to I\) là một phép tiêm: 1. Không ai có thể khôi phục khóa chung từ hình ảnh khóa và xác định người ký; 2. Người ký không được phép ký hai chữ ký có chữ I khác nhau và cùng chữ x. Phân tích bảo mật đầy đủ được cung cấp trong Phụ lục A. 4,5 Giao dịch CryptoNote tiêu chuẩn Bằng cách kết hợp cả hai phương pháp (khóa công khai không thể liên kết và chữ ký vòng không thể theo dõi), Bob đạt được mức độ bảo mật mới so với sơ đồ Bitcoin ban đầu. Nó yêu cầu anh ta chỉ lưu trữ một khóa riêng (a, b) và xuất bản (A, B) để bắt đầu nhận và gửi các giao dịch ẩn danh. Trong khi xác thực mỗi giao dịch, Bob chỉ thực hiện thêm hai phép nhân đường cong elip và một phép cộng cho mỗi đầu ra để kiểm tra xem giao dịch có thuộc về anh ta hay không. Đối với mỗi anh ấy đầu ra Bob khôi phục cặp khóa dùng một lần (pi, Pi) và lưu nó vào ví của mình. Mọi đầu vào đều có thể được chứng minh một cách gián tiếp là có cùng một chủ sở hữu chỉ khi chúng xuất hiện trong một giao dịch duy nhất. trong trên thực tế, mối quan hệ này khó thiết lập hơn nhiều do chữ ký vòng một lần. Với chữ ký vòng Bob có thể ẩn mọi đầu vào của người khác một cách hiệu quả; tất cả có thể người chi tiêu sẽ có thể trang bị được, ngay cả chủ sở hữu trước đó (Alice) cũng không có nhiều thông tin hơn bất kỳ người quan sát nào. Khi ký giao dịch của mình, Bob chỉ định n đầu ra nước ngoài với số tiền tương đương với số tiền của anh ấy. đầu ra, trộn tất cả chúng mà không có sự tham gia của người dùng khác. Bản thân Bob (cũng như bất kỳ ai khác) không biết liệu bất kỳ khoản thanh toán nào trong số này đã được chi tiêu hay chưa: một đầu ra có thể được sử dụng trong hàng nghìn chữ ký như một yếu tố mơ hồ và không bao giờ là mục tiêu che giấu. gấp đôi kiểm tra chi tiêu xảy ra trong giai đoạn LNK khi kiểm tra bộ ảnh chính đã sử dụng. Bob có thể tự mình chọn mức độ mơ hồ: n = 1 nghĩa là xác suất anh ta có chi tiêu đầu ra có xác suất 50%, n = 99 cho 1%. Kích thước của chữ ký kết quả tăng lên tuyến tính như O(n+1), do đó, tính ẩn danh được cải thiện sẽ khiến Bob phải trả thêm phí giao dịch. Anh ấy cũng có thể đặt n = 0 và làm cho chữ ký vòng của anh ta chỉ bao gồm một phần tử, tuy nhiên điều này sẽ ngay lập tức tiết lộ anh ta là một người chi tiêu. 10 VER: Người xác minh kiểm tra chữ ký bằng cách áp dụng các phép biến đổi nghịch đảo: ( L' i = riG + ciPi R’ i = riHp(Pi) + ciI Cuối cùng, người xác minh sẽ kiểm tra xem nP tôi=0 ci ?= Hs(m, L′ 0, . . . , L' n, R' 0, . . . , R′ n) mod l Nếu đẳng thức này đúng, trình xác minh sẽ chạy thuật toán LNK. Ngược lại, người xác minh sẽ từ chối chữ ký. LNK: Trình xác minh kiểm tra xem liệu tôi có được sử dụng trong các chữ ký trước đây hay không (các giá trị này được lưu trong tập I). Việc sử dụng nhiều lần ngụ ý rằng hai chữ ký được tạo ra dưới cùng một khóa bí mật. Ý nghĩa của giao thức: bằng cách áp dụng phép biến đổi L, người ký chứng minh rằng mình biết sao cho x có ít nhất một Pi = xG. Để làm cho bằng chứng này không thể lặp lại, chúng tôi giới thiệu hình ảnh chính vì I = xHp(P). Người ký sử dụng cùng các hệ số (ri, ci) để chứng minh gần như cùng một tuyên bố: anh ta biết x sao cho ít nhất một \(H_p(P_i) = I \cdot x^{-1}\). Nếu ánh xạ \(x \to I\) là một phép tiêm: 1. Không ai có thể khôi phục khóa chung từ hình ảnh khóa và xác định người ký; 2. Người ký không được phép ký hai chữ ký có chữ I khác nhau và cùng chữ x. Phân tích bảo mật đầy đủ được cung cấp trong Phụ lục A. 4,5 Giao dịch CryptoNote tiêu chuẩn Bằng cách kết hợp cả hai phương pháp (khóa công khai không thể liên kết và chữ ký vòng không thể theo dõi), Bob đạt được mức độ riêng tư mới so với sơ đồ Bitcoin ban đầu. Nó yêu cầu anh ta chỉ lưu trữ một khóa riêng (a, b) và xuất bản (A, B) để bắt đầu nhận và gửi các giao dịch ẩn danh. Trong khi xác thực mỗi giao dịch, Bob chỉ thực hiện thêm hai phép nhân đường cong elip và một phép cộng cho mỗi đầu ra để kiểm tra xem giao dịch có thuộc về anh ta hay không. Đối với mỗi anh ấy đầu ra Bob khôi phục cặp khóa một lần (pi, Pi) và stquặng nó vào ví của mình. Mọi đầu vào đều có thể được chứng minh một cách gián tiếp là có cùng một chủ sở hữu chỉ khi chúng xuất hiện trong một giao dịch duy nhất. trong trên thực tế, mối quan hệ này khó thiết lập hơn nhiều do chữ ký vòng một lần. Với chữ ký vòng Bob có thể ẩn mọi đầu vào của người khác một cách hiệu quả; tất cả có thể người chi tiêu sẽ có thể trang bị được, ngay cả chủ sở hữu trước đó (Alice) cũng không có nhiều thông tin hơn bất kỳ người quan sát nào. Khi ký giao dịch của mình, Bob chỉ định n đầu ra nước ngoài với số tiền tương đương với số tiền của anh ấy. đầu ra, trộn tất cả chúng mà không có sự tham gia của người dùng khác. Bản thân Bob (cũng như bất kỳ ai khác) không biết liệu bất kỳ khoản thanh toán nào trong số này đã được chi tiêu hay chưa: một đầu ra có thể được sử dụng trong hàng nghìn chữ ký như một yếu tố mơ hồ và không bao giờ là mục tiêu che giấu. gấp đôi kiểm tra chi tiêu xảy ra trong giai đoạn LNK khi kiểm tra bộ ảnh chính đã sử dụng. Bob có thể tự mình chọn mức độ mơ hồ: n = 1 nghĩa là xác suất anh ta có chi tiêu đầu ra có xác suất 50%, n = 99 cho 1%. Kích thước của chữ ký kết quả tăng lên tuyến tính như O(n+1), do đó, tính ẩn danh được cải thiện sẽ khiến Bob phải trả thêm phí giao dịch. Anh ấy cũng có thể đặt n = 0 và làm cho chữ ký vòng của anh ta chỉ bao gồm một phần tử, tuy nhiên điều này sẽ ngay lập tức tiết lộ anh ta là một người chi tiêu. 10 20 Điều này thật thú vị; trước đó, chúng tôi đã cung cấp một cách để người nhận, Bob, thực hiện tất cả việc THU NHẬP giao dịch không thể hủy liên kết bằng cách chọn một nửa số khóa riêng của anh ta một cách xác định hoặc bằng cách xuất bản một nửa khóa riêng của mình dưới dạng công khai. Đây là một loại chính sách không quay trở lại. Ở đây, chúng ta thấy một cách để người gửi, Alex, chọn một giao dịch gửi đi duy nhất có thể liên kết được, nhưng trên thực tế, điều này tiết lộ Alex là người gửi toàn bộ mạng lưới. Đây KHÔNG phải là một loại chính sách không thể quay lại. Đây là giao dịch theo giao dịch. Có chính sách thứ ba không? Người nhận, Bob, có thể tạo ID thanh toán duy nhất cho Alex không? không bao giờ thay đổi, có lẽ sử dụng trao đổi Diffie-Hellman? Nếu có ai bao gồm khoản thanh toán đó ID được gói ở đâu đó trong giao dịch của cô ấy tới địa chỉ của Bob, nó phải đến từ Alex. Bằng cách này, Alex không cần phải tiết lộ bản thân với toàn bộ mạng lưới bằng cách chọn liên kết một địa chỉ cụ thể giao dịch, nhưng cô ấy vẫn có thể nhận dạng chính mình với người mà cô ấy gửi tiền. Đây không phải là điều Poloniex làm sao?

Giao dịch đầu vào TX Đầu ra0 . . . đầu ra . . . đầu ra Hình ảnh chính Chữ ký Chữ ký nhẫn Khóa đích Đầu ra1 Khóa đích đầu ra Giao dịch nước ngoài Đầu ra của người gửi Khóa đích Cặp khóa dùng một lần Một lần khóa riêng Tôi = xHp(P) P, x Hình 7. Tạo chữ ký vòng trong một giao dịch tiêu chuẩn. 5 Bằng chứng công việc bình đẳng Trong phần này, chúng tôi đề xuất và xây dựng thuật toán proof-of-work mới. Mục tiêu chính của chúng tôi là thu hẹp khoảng cách giữa các công cụ khai thác CPU (đa số) và GPU/FPGA/ASIC (thiểu số). Đó là thích hợp là một số người dùng có thể có lợi thế nhất định so với những người khác, nhưng khoản đầu tư của họ ít nhất phải tăng trưởng tuyến tính với sức mạnh. Tổng quát hơn, sản xuất các thiết bị có mục đích đặc biệt phải càng ít lợi nhuận càng tốt. 5.1 Công trình liên quan Giao thức Bitcoin proof-of-work ban đầu sử dụng chức năng định giá sử dụng nhiều CPU SHA-256. Nó chủ yếu bao gồm các toán tử logic cơ bản và chỉ dựa vào tốc độ tính toán của do đó bộ xử lý hoàn toàn phù hợp cho việc triển khai đa lõi/băng tải. Tuy nhiên, máy tính hiện đại không bị giới hạn bởi số lượng thao tác mỗi giây, mà còn theo kích thước bộ nhớ. Mặc dù một số bộ xử lý có thể nhanh hơn đáng kể so với những bộ xử lý khác [8], kích thước bộ nhớ ít có khả năng khác nhau giữa các máy. Hàm giá giới hạn theo bộ nhớ lần đầu tiên được giới thiệu bởi Abadi và cộng sự và được định nghĩa là “các hàm có thời gian tính toán bị chi phối bởi thời gian truy cập bộ nhớ” [15]. Ý tưởng chính là xây dựng một thuật toán phân bổ một khối dữ liệu lớn (“scratchpad”) trong bộ nhớ có thể được truy cập tương đối chậm (ví dụ: RAM) và “truy cập vào chuỗi vị trí không thể đoán trước” bên trong nó. Một khối phải đủ lớn để bảo quản dữ liệu có lợi hơn việc tính toán lại nó cho mỗi lần truy cập. Thuật toán cũng nên ngăn chặn sự song song bên trong, do đó N luồng đồng thời sẽ cần bộ nhớ gấp N lần cùng một lúc. Dwork và cộng sự [22] đã nghiên cứu và chính thức hóa cách tiếp cận này khiến họ đề xuất một phương pháp khác biến thể của hàm định giá: “Mbound”. Một tác phẩm nữa thuộc về F. Coelho [20], người 11 Giao dịch đầu vào TX Đầu ra0 . . . đầu ra . . . đầu ra Hình ảnh chính Chữ ký Chữ ký nhẫn Khóa đích Đầu ra1 Khóa đích đầu ra Giao dịch nước ngoài Đầu ra của người gửi Khóa đích Cặp khóa dùng một lần Một lần khóa riêng Tôi = xHp(P) P, x Hình 7. Tạo chữ ký vòng trong một giao dịch tiêu chuẩn. 5 Bằng chứng công việc bình đẳng Trong phần này, chúng tôi đề xuất và xây dựng thuật toán proof-of-work mới. Mục tiêu chính của chúng tôi là thu hẹp khoảng cách giữa các công cụ khai thác CPU (đa số) và GPU/FPGA/ASIC (thiểu số). Đó là thích hợp là một số người dùng có thể có lợi thế nhất định so với những người khác, nhưng khoản đầu tư của họ ít nhất phải tăng trưởng tuyến tính với sức mạnh. Tổng quát hơn, sản xuất các thiết bị có mục đích đặc biệt phải càng ít lợi nhuận càng tốt. 5.1 Công trình liên quan Giao thức Bitcoin proof-of-work ban đầu sử dụng chức năng định giá sử dụng nhiều CPU SHA-256. Nó chủ yếu bao gồm các toán tử logic cơ bản và chỉ dựa vào tốc độ tính toán của do đó bộ xử lý hoàn toàn phù hợp cho việc triển khai đa lõi/băng tải. Tuy nhiên, máy tính hiện đại không bị giới hạn bởi số lượng thao tác mỗi giây, mà còn theo kích thước bộ nhớ. Mặc dù một số bộ xử lý có thể nhanh hơn đáng kể so với những bộ xử lý khác [8], kích thước bộ nhớ ít có khả năng khác nhau giữa các máy. Hàm giá giới hạn theo bộ nhớ lần đầu tiên được giới thiệu bởi Abadi và cộng sự và được định nghĩa là “các hàm có thời gian tính toán bị chi phối bởi thời gian truy cập bộ nhớ” [15]. Ý tưởng chính là xây dựng một thuật toán phân bổ một khối dữ liệu lớn (“scratchpad”) trong bộ nhớ có thể được truy cập tương đối chậm (ví dụ: RAM) và “truy cập vào chuỗi vị trí không thể đoán trước” bên trong nó. Một khối phải đủ lớn để bảo quản dữ liệu có lợi hơn việc tính toán lại nó cho mỗi lần truy cập. Thuật toán cũng nên ngăn chặn sự song song bên trong, do đó N luồng đồng thời sẽ cần bộ nhớ gấp N lần cùng một lúc. Dwork và cộng sự [22] đã nghiên cứu và chính thức hóa phương pháp này khiến họ đề xuất một phương pháp khác biến thể của hàm định giá: “Mbound”. Một tác phẩm nữa thuộc về F. Coelho [20], người 11 21 Bề ngoài, đây là UTXO của chúng tôi: số tiền và khóa đích. Nếu Alex là người xây dựng giao dịch tiêu chuẩn này và gửi cho Bob thì Alex cũng có khóa riêng đến từng điều này. Tôi rất thích sơ đồ này vì nó trả lời một số câu hỏi trước đó. Một đầu vào Txn bao gồm của một tập hợp các đầu ra Txn và một kehình ảnh y. Sau đó nó được ký bằng chữ ký vòng, bao gồm tất cả trong số các khóa riêng mà Alex sở hữu đối với tất cả các giao dịch nước ngoài được gói gọn trong thỏa thuận. các Đầu ra Txn bao gồm một số tiền và một khóa đích. Người nhận giao dịch có thể, theo ý muốn, tạo khóa riêng một lần của họ như được mô tả trước đó trong bài viết để sử dụng tiền. Sẽ rất thú vị khi tìm hiểu xem mã này khớp với mã thực tế đến mức nào... Không, Nic van Saberhagen mô tả một cách lỏng lẻo một số thuộc tính của thuật toán bằng chứng công việc, mà không thực sự mô tả thuật toán đó. Bản thân thuật toán CryptoNight sẽ YÊU CẦU phân tích sâu. Khi tôi đọc điều này, tôi lắp bắp. Đầu tư có nên tăng trưởng ít nhất là tuyến tính với sức mạnh hay nên đầu tư tăng trưởng nhiều nhất tuyến tính với sức mạnh? Và rồi tôi nhận ra; Tôi, với tư cách là một thợ mỏ hoặc một nhà đầu tư, thường nghĩ "tôi có thể nhận được bao nhiêu năng lượng" để đầu tư à?" chứ không phải "cần đầu tư bao nhiêu cho một lượng điện năng cố định?" Tất nhiên, biểu thị đầu tư là I và lũy thừa là P. Nếu I(P) là đầu tư là hàm của lũy thừa và P(I) là quyền lực như một hàm của đầu tư, chúng sẽ nghịch đảo với nhau (bất cứ nơi nào có thể tồn tại nghịch đảo). Và nếu I(P) nhanh hơn tuyến tính thì P(I) chậm hơn tuyến tính. Do đó, sẽ có một tỷ lệ lợi nhuận giảm cho các nhà đầu tư. Điều đó có nghĩa là, điều tác giả muốn nói ở đây là: "chắc chắn rồi, khi bạn đầu tư nhiều hơn, bạn sẽ nhận được nhiều hơn." quyền lực. Nhưng chúng ta nên cố gắng làm cho tỷ lệ lợi nhuận giảm đi." Cuối cùng, các khoản đầu tư vào CPU sẽ đạt mức cận tuyến tính; câu hỏi đặt ra là liệu các tác giả đã thiết kế một thuật toán POW sẽ buộc ASIC cũng phải làm điều này. Liệu một "tiền tệ tương lai" giả định có nên luôn được khai thác với nguồn tài nguyên chậm nhất/hạn chế nhất không? Bài báo của Abadi và cộng sự (có một số kỹ sư của Google và Microsoft là tác giả) là, về cơ bản, sử dụng thực tế là trong vài năm qua kích thước bộ nhớ đã nhỏ hơn nhiều sự khác biệt giữa các máy so với tốc độ bộ xử lý và với tỷ lệ công suất đầu tư cao hơn tuyến tính. Trong một vài năm nữa, điều này có thể phải được đánh giá lại! Mọi thứ đều là một cuộc chạy đua vũ trang... Việc xây dựng hàm hash là khó; việc xây dựng hàm hash thỏa mãn các ràng buộc này có vẻ khó khăn hơn. Bài viết này dường như không có lời giải thích nào về thực tế hashing thuật toán CryptoNight. Tôi nghĩ đó là cách triển khai SHA-3 sử dụng bộ nhớ cứng, dựa trên trên các bài đăng trên diễn đàn nhưng tôi không biết... và đó chính là vấn đề. Nó phải được giải thích.

đề xuất giải pháp hiệu quả nhất: “Hokkaido”. Theo hiểu biết của chúng tôi, công việc cuối cùng dựa trên ý tưởng tìm kiếm giả ngẫu nhiên trong một mảng lớn là thuật toán được gọi là “mã hóa” của C. Percival [32]. Không giống như các chức năng trước đó, nó tập trung vào dẫn xuất khóa chứ không phải hệ thống proof-of-work. Bất chấp thực tế này, tiền điện tử có thể phục vụ mục đích của chúng tôi: nó hoạt động tốt như một hàm định giá trong bài toán chuyển đổi một phần hash chẳng hạn như SHA-256 trong Bitcoin. Hiện tại, tiền điện tử đã được áp dụng trong Litecoin [14] và một số nhánh Bitcoin khác. Tuy nhiên, việc triển khai nó không thực sự bị giới hạn về bộ nhớ: tỷ lệ “thời gian truy cập bộ nhớ/tổng thể time” không đủ lớn vì mỗi phiên bản chỉ sử dụng 128 KB. Điều này cho phép các công cụ khai thác GPU hiệu quả hơn khoảng 10 lần và tiếp tục để lại khả năng tạo ra tương đối thiết bị khai thác rẻ tiền nhưng hiệu quả cao. Hơn nữa, bản thân việc xây dựng mật mã cho phép trao đổi tuyến tính giữa kích thước bộ nhớ và Tốc độ CPU do thực tế là mọi khối trong bảng ghi nhớ chỉ bắt nguồn từ khối trước đó. Ví dụ: bạn có thể lưu trữ từng khối thứ hai và tính toán lại các khối khác một cách lười biếng, tức là chỉ khi nó trở nên cần thiết. Các chỉ mục giả ngẫu nhiên được giả định là phân bố đồng đều, do đó giá trị kỳ vọng của việc tính toán lại các khối bổ sung là 1 \(2 \cdot N\), trong đó N là số của các lần lặp. Tổng thời gian tính toán tăng ít hơn một nửa vì cũng có các hoạt động độc lập với thời gian (thời gian không đổi) chẳng hạn như chuẩn bị bảng ghi nhớ và hash bật mỗi lần lặp. Tiết kiệm 2/3 chi phí bộ nhớ 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N phép tính lại bổ sung; Kết quả 10/9 1 \(10 \cdot N\)+ . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5N. Dễ dàng chứng minh rằng chỉ lưu trữ 1 s của tất cả các khối tăng thời gian ít hơn hệ số s−1 2 . Điều này ngụ ý rằng một máy có CPU Nhanh hơn 200 lần so với các chip hiện đại, chỉ có thể lưu trữ 320 byte của bảng ghi nhớ. 5.2 Thuật toán đề xuất Chúng tôi đề xuất thuật toán giới hạn bộ nhớ mới cho hàm định giá proof-of-work. Nó dựa vào truy cập ngẫu nhiên vào bộ nhớ chậm và nhấn mạnh sự phụ thuộc vào độ trễ. Ngược lại với việc mã hóa mọi khối mới (dài 64 byte) phụ thuộc vào tất cả các khối trước đó. Kết quả là một giả thuyết “Trình tiết kiệm bộ nhớ” sẽ tăng tốc độ tính toán của anh ấy theo cấp số nhân. Thuật toán của chúng tôi yêu cầu khoảng 2 Mb cho mỗi phiên bản vì những lý do sau: 1. Nó phù hợp với bộ đệm L3 (mỗi lõi) của bộ xử lý hiện đại, sẽ trở thành xu hướng chủ đạo trong một vài năm nữa; 2. Một megabyte bộ nhớ trong là kích thước gần như không thể chấp nhận được đối với đường dẫn ASIC hiện đại; 3. GPU có thể chạy hàng trăm phiên bản đồng thời, nhưng chúng bị hạn chế theo những cách khác: Bộ nhớ GDDR5 chậm hơn bộ nhớ đệm CPU L3 và đáng chú ý về băng thông của nó, không phải tốc độ truy cập ngẫu nhiên 4. Việc mở rộng đáng kể bàn di chuột sẽ đòi hỏi phải tăng số lần lặp lại, trong đó lần lượt ngụ ý sự gia tăng thời gian tổng thể. Các cuộc gọi “nặng” trong mạng p2p không tin cậy có thể dẫn đến các lỗ hổng nghiêm trọng vì các nút có nghĩa vụ kiểm tra proof-of-work của mọi khối mới. Nếu một nút dành một lượng thời gian đáng kể cho mỗi lần đánh giá hash, nó có thể dễ dàng Bị tấn công DDoS bởi hàng loạt đối tượng giả mạo có dữ liệu công việc tùy ý (giá trị nonce). 12 đề xuất giải pháp hiệu quả nhất: “Hokkaido”. Theo hiểu biết của chúng tôi, công việc cuối cùng dựa trên ý tưởng tìm kiếm giả ngẫu nhiên trong một mảng lớn là thuật toán được gọi là “mã hóa” của C. Percival [32]. Không giống như các chức năng trước đó, nó tập trung vào dẫn xuất khóa chứ không phải hệ thống proof-of-work. Bất chấp thực tế này, tiền điện tử có thể phục vụ mục đích của chúng tôi: nó hoạt động tốt như một hàm định giá trong bài toán chuyển đổi một phần hash chẳng hạn như SHA-256 trong Bitcoin. Hiện tại, tiền điện tử đã được áp dụng trong Litecoin [14] và một số nhánh Bitcoin khác. Tuy nhiên, việc triển khai nó không thực sự bị giới hạn về bộ nhớ: tỷ lệ “thời gian truy cập bộ nhớ/tổng thể time” không đủ lớn vì mỗi phiên bản chỉ sử dụng 128 KB. Điều này cho phép các công cụ khai thác GPU hiệu quả hơn khoảng 10 lần và tiếp tục để lại khả năng tạo ra tương đối thiết bị khai thác rẻ tiền nhưng hiệu quả cao. Hơn nữa, bản thân việc xây dựng mật mã cho phép trao đổi tuyến tính giữa kích thước bộ nhớ và Tốc độ CPU do thực tế là mọi khối trong bảng ghi nhớ chỉ bắt nguồn từ khối trước đó. Ví dụ: bạn có thể lưu trữ từng khối thứ hai và tính toán lại các khối khác một cách lười biếng, tức là chỉ khi nó trở nên cần thiết. Các chỉ mục giả ngẫu nhiên được giả định là phân bố đồng đều, do đó giá trị kỳ vọng của việc tính toán lại các khối bổ sung là 1 \(2 \cdot N\), ở đâuN là số của các lần lặp. Tổng thời gian tính toán tăng ít hơn một nửa vì cũng có các hoạt động độc lập với thời gian (thời gian không đổi) chẳng hạn như chuẩn bị bảng ghi nhớ và hash bật mỗi lần lặp. Tiết kiệm 2/3 chi phí bộ nhớ 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N phép tính lại bổ sung; Kết quả 10/9 1 \(10 \cdot N\)+ . . . + 1 \(10 \cdot 9 \cdot N\) = 4,5N. Dễ dàng chứng minh rằng chỉ lưu trữ 1 s của tất cả các khối tăng thời gian ít hơn hệ số s−1 2 . Điều này ngụ ý rằng một máy có CPU Nhanh hơn 200 lần so với các chip hiện đại, chỉ có thể lưu trữ 320 byte của bảng ghi nhớ. 5.2 Thuật toán đề xuất Chúng tôi đề xuất thuật toán giới hạn bộ nhớ mới cho hàm định giá proof-of-work. Nó dựa vào truy cập ngẫu nhiên vào bộ nhớ chậm và nhấn mạnh sự phụ thuộc vào độ trễ. Ngược lại với việc mã hóa mọi khối mới (dài 64 byte) phụ thuộc vào tất cả các khối trước đó. Kết quả là một giả thuyết “Trình tiết kiệm bộ nhớ” sẽ tăng tốc độ tính toán của anh ấy theo cấp số nhân. Thuật toán của chúng tôi yêu cầu khoảng 2 Mb cho mỗi phiên bản vì những lý do sau: 1. Nó phù hợp với bộ đệm L3 (mỗi lõi) của bộ xử lý hiện đại, sẽ trở thành xu hướng chủ đạo trong một vài năm nữa; 2. Một megabyte bộ nhớ trong là kích thước gần như không thể chấp nhận được đối với đường dẫn ASIC hiện đại; 3. GPU có thể chạy hàng trăm phiên bản đồng thời, nhưng chúng bị hạn chế theo những cách khác: Bộ nhớ GDDR5 chậm hơn bộ nhớ đệm CPU L3 và đáng chú ý về băng thông của nó, không phải tốc độ truy cập ngẫu nhiên 4. Việc mở rộng đáng kể bàn di chuột sẽ đòi hỏi phải tăng số lần lặp lại, trong đó lần lượt ngụ ý sự gia tăng thời gian tổng thể. Các cuộc gọi “nặng” trong mạng p2p không tin cậy có thể dẫn đến các lỗ hổng nghiêm trọng vì các nút có nghĩa vụ kiểm tra proof-of-work của mọi khối mới. Nếu một nút dành một lượng thời gian đáng kể cho mỗi lần đánh giá hash, nó có thể dễ dàng Bị tấn công DDoS bởi hàng loạt đối tượng giả mạo có dữ liệu công việc tùy ý (giá trị nonce). 12 22 Đừng bận tâm, đó là một đồng tiền điện tử? Thuật toán ở đâu? Tất cả những gì tôi thấy là một quảng cáo. Đây là nơi Cryptonote, nếu thuật toán PoW của họ đáng giá, sẽ thực sự tỏa sáng. Nó không phải thực sự là SHA-256, nó không hẳn là mã hóa. Nó mới, bị ràng buộc về bộ nhớ và không đệ quy.

6 Ưu điểm hơn nữa 6.1 Phát xạ trơn tru Giới hạn trên của tổng số tiền kỹ thuật số CryptoNote là: MSupply = 264 −1 đơn vị nguyên tử. Đây là hạn chế tự nhiên chỉ dựa trên giới hạn thực hiện chứ không dựa trên trực giác chẳng hạn như “N xu là đủ cho bất kỳ ai”. Để đảm bảo quá trình phát xạ diễn ra suôn sẻ chúng ta sử dụng công thức sau cho khối phần thưởng: Phần thưởng cơ bản = (MSupply −A) ≫18, Trong đó A là số lượng tiền được tạo ra trước đó. 6.2 Thông số điều chỉnh 6.2.1 khó khăn CryptoNote chứa thuật toán nhắm mục tiêu thay đổi độ khó của mọi khối. Cái này giảm thời gian phản ứng của hệ thống khi tốc độ mạng hash tăng hoặc giảm mạnh, duy trì tốc độ chặn không đổi. Phương thức Bitcoin ban đầu tính toán mối quan hệ của giá trị thực tế và khoảng thời gian mục tiêu giữa các khối cuối cùng của năm 2016 và sử dụng nó làm hệ số nhân cho khối hiện tại khó khăn. Rõ ràng điều này không phù hợp để tính toán lại nhanh chóng (vì quán tính lớn) và dẫn đến dao động. Ý tưởng chung đằng sau thuật toán của chúng tôi là tổng hợp tất cả công việc được hoàn thành bởi các nút và chia nó cho thời gian họ đã bỏ ra. Thước đo của công việc là các giá trị độ khó tương ứng trong mỗi khối. Nhưng do dấu thời gian không chính xác và không đáng tin cậy nên chúng tôi không thể xác định chính xác khoảng thời gian giữa các khối. Người dùng có thể chuyển dấu thời gian của mình sang tương lai và lần tiếp theo các khoảng có thể rất nhỏ hoặc thậm chí âm. Có lẽ sẽ có ít sự cố xảy ra loại này, vì vậy chúng tôi chỉ có thể sắp xếp các dấu thời gian và các giá trị ngoại lệ (tức là 20%). Phạm vi của các giá trị còn lại là thời gian dành cho 80% khối tương ứng. 6.2.2 Giới hạn kích thước Người dùng trả tiền để lưu trữ blockchain và có quyền bỏ phiếu cho kích thước của nó. Mỗi thợ mỏ giải quyết vấn đề cân bằng giữa chi phí và lợi nhuận từ phí và tự đặt ra “giới hạn mềm” để tạo khối. Ngoài ra, quy tắc cốt lõi cho kích thước khối tối đa là cần thiết cho ngăn chặn blockchain tràn ngập giao dịch không có thật, tuy nhiên giá trị này sẽ không được mã hóa cứng. Gọi MN là giá trị trung bình của N kích thước khối cuối cùng. Sau đó là “giới hạn cứng” cho kích thước khối chấp nhận là \(2 \cdot M_N\). Nó giúp blockchain khỏi bị đầy hơi nhưng vẫn cho phép giới hạn từ từ phát triển theo thời gian nếu cần thiết. Quy mô giao dịch không cần phải bị giới hạn một cách rõ ràng. Nó được giới hạn bởi kích thước của một khối; và nếu ai đó muốn tạo một giao dịch lớn với hàng trăm đầu vào/đầu ra (hoặc với mức độ mơ hồ cao trong chữ ký vòng), anh ta có thể làm như vậy bằng cách trả đủ phí. 6.2.3 Hình phạt vượt quá kích thước Người khai thác vẫn có khả năng lưu trữ một khối chứa đầy các giao dịch không tính phí của riêng mình lên đến mức tối đa cỡ \(2 \cdot M_b\). Mặc dù chỉ có phần lớn các thợ mỏ có thể thay đổi giá trị trung bình, nhưng vẫn có một 13 6 Ưu điểm hơn nữa 6.1 Phát xạ trơn tru Giới hạn trên của tổng số tiền kỹ thuật số CryptoNote là: MSupply = 264 −1 đơn vị nguyên tử. Đây là hạn chế tự nhiên chỉ dựa trên giới hạn thực hiện chứ không dựa trên trực giác chẳng hạn như “N xu là đủ cho bất kỳ ai”. Để đảm bảo quá trình phát xạ diễn ra suôn sẻ chúng ta sử dụng công thức sau cho khối phần thưởng: Phần thưởng cơ bản = (MSupply −A) ≫18, Trong đó A là số lượng tiền được tạo ra trước đó. 6.2 Thông số điều chỉnh 6.2.1 khó khăn CryptoNote chứa thuật toán nhắm mục tiêu thay đổi độ khó của mọi khối. Cái này giảm thời gian phản ứng của hệ thống khi tốc độ mạng hash tăng hoặc giảm mạnh, duy trì tốc độ chặn không đổi. Phương thức Bitcoin ban đầu tính toán mối quan hệ thực tế và khoảng thời gian mục tiêu giữa các khối cuối cùng của năm 2016 và sử dụng nó làm hệ số nhân cho khối hiện tại khó khăn. Rõ ràng điều này không phù hợp để tính toán lại nhanh chóng (vì quán tính lớn) và dẫn đến dao động. Ý tưởng chung đằng sau thuật toán của chúng tôi là tổng hợp tất cả công việc được hoàn thành bởi các nút và chia nó cho thời gian họ đã bỏ ra. Thước đo của công việc là các giá trị độ khó tương ứng trong mỗi khối. Nhưng do dấu thời gian không chính xác và không đáng tin cậy nên chúng tôi không thể xác định chính xác khoảng thời gian giữa các khối. Người dùng có thể chuyển dấu thời gian của mình sang tương lai và lần tiếp theo các khoảng có thể rất nhỏ hoặc thậm chí âm. Có lẽ sẽ có ít sự cố xảy ra loại này, vì vậy chúng tôi chỉ có thể sắp xếp các dấu thời gian và các giá trị ngoại lệ (tức là 20%). Phạm vi của các giá trị còn lại là thời gian dành cho 80% khối tương ứng. 6.2.2 Giới hạn kích thước Người dùng trả tiền để lưu trữ blockchain và có quyền bỏ phiếu cho kích thước của nó. Mỗi thợ mỏ đề cập đến sự đánh đổi giữa việc cân bằnge chi phí và lợi nhuận từ phí và tự đặt ra “giới hạn mềm” để tạo khối. Ngoài ra, quy tắc cốt lõi cho kích thước khối tối đa là cần thiết cho ngăn chặn blockchain tràn ngập giao dịch không có thật, tuy nhiên giá trị này sẽ không được mã hóa cứng. Gọi MN là giá trị trung bình của N kích thước khối cuối cùng. Sau đó là “giới hạn cứng” cho kích thước khối chấp nhận là \(2 \cdot M_N\). Nó giúp blockchain khỏi bị đầy hơi nhưng vẫn cho phép giới hạn từ từ phát triển theo thời gian nếu cần thiết. Quy mô giao dịch không cần phải bị giới hạn một cách rõ ràng. Nó được giới hạn bởi kích thước của một khối; và nếu ai đó muốn tạo một giao dịch lớn với hàng trăm đầu vào/đầu ra (hoặc với mức độ mơ hồ cao trong chữ ký vòng), anh ta có thể làm như vậy bằng cách trả đủ phí. 6.2.3 Hình phạt vượt quá kích thước Người khai thác vẫn có khả năng lưu trữ một khối chứa đầy các giao dịch không tính phí của riêng mình lên đến mức tối đa cỡ \(2 \cdot M_b\). Mặc dù chỉ có phần lớn các thợ mỏ có thể thay đổi giá trị trung bình, nhưng vẫn có một 13 23 Đơn vị nguyên tử. Tôi thích điều đó. Đây có phải là tương đương với Satoshi không? Nếu vậy thì điều đó có nghĩa là sẽ có 185 tỷ tiền điện tử. Tôi biết điều này cuối cùng phải được điều chỉnh trong một vài trang hoặc có thể có lỗi đánh máy? Nếu phần thưởng cơ bản là "tất cả các đồng xu còn lại" thì chỉ cần một khối là đủ để nhận được tất cả các đồng xu. Instamine. Mặt khác, nếu điều này được cho là tỷ lệ thuận theo một cách nào đó với sự khác biệt về thời gian giữa hiện tại và một số ngày chấm dứt sản xuất tiền xu? Điều đó sẽ có ý nghĩa. Ngoài ra, trong thế giới của tôi, hai dấu hiệu lớn hơn như thế này có nghĩa là "lớn hơn nhiều". Có phải tác giả có thể có ý nghĩa gì khác? Nếu việc điều chỉnh độ khó xảy ra ở mỗi khối thì kẻ tấn công có thể có một trang trại rất lớn máy móc khai thác và tắt trong những khoảng thời gian được lựa chọn cẩn thận. Điều này có thể gây ra một vụ nổ hỗn loạn (hoặc sụp đổ về 0) một cách khó khăn nếu các công thức điều chỉnh độ khó không được giảm bớt một cách thích hợp. Không còn nghi ngờ gì nữa, phương pháp của Bitcoin không phù hợp để tính toán lại nhanh chóng, nhưng ý tưởng về quán tính trong những hệ thống này cần phải được chứng minh chứ không phải được coi là đương nhiên. Hơn nữa, dao động trong mạng không nhất thiết là một vấn đề trừ khi nó dẫn đến sự dao động của giá trị bề ngoài nguồn cung tiền xu - và việc có độ khó thay đổi rất nhanh có thể gây ra "sự điều chỉnh quá mức". Thời gian sử dụng, đặc biệt là trong một khoảng thời gian ngắn như vài phút, sẽ tỷ lệ thuận với "tổng thời gian". số khối được tạo trên mạng." Hằng số tỷ lệ sẽ tự tăng lên theo thời gian, có lẽ sẽ tăng theo cấp số nhân nếu CN thành công. Có thể là một ý tưởng tốt hơn nếu bạn chỉ cần điều chỉnh độ khó để giữ “tổng số khối được tạo trên mạng kể từ khi khối cuối cùng được thêm vào chuỗi chính" trong một số giá trị không đổi hoặc với biến thể giới hạn hoặc một cái gì đó như thế. Nếu một thuật toán thích ứng được tính toán dễ thực hiện có thể được xác định, điều này dường như sẽ giải quyết được vấn đề. Nhưng sau đó, nếu chúng tôi sử dụng phương pháp đó, ai đó có trang trại khai thác lớn có thể đóng cửa trang trại của họ trong vài giờ và bật lại. Trong vài khối đầu tiên, trang trại đó sẽ tạo ra ngân hàng. Vì vậy, trên thực tế, phương pháp này sẽ đưa ra một điểm thú vị: việc khai thác trở thành (trung bình) một thua trò chơi mà không có ROI, đặc biệt khi có nhiều người truy cập mạng hơn. Nếu độ khó khai thác mạng được theo dõi rất chặt chẽ hashtỷ lệ, bằng cách nào đó tôi nghi ngờ mọi người sẽ khai thác nhiều như họ hiện tại làm. Hoặc mặt khác, thay vì giữ cho trang trại khai thác của họ hoạt động 24/7, họ có thể biến chúng thành bật trong 6 giờ, tắt trong 2 giờ, bật trong 6 giờ, tắt trong 2 giờ, hoặc tương tự. Chỉ cần chuyển sang đồng tiền khác trong vài giờ, đợi cho độ khó giảm xuống, sau đó nhảy trở lại để nhận thêm một ít các khối lợi nhuận khi mạng thích ứng. Và bạn biết gì không? Điều này thực sự có lẽ một trong những kịch bản khai thác tốt hơn mà tôi đã đặt tâm trí vào... Đây có thể là một vòng tròn, nhưng nếu thời gian tạo khối trung bình là khoảng một phút, chúng ta có thể sử dụng số khối làm đại diện cho "thời gian đã sử dụng?"

6 Ưu điểm hơn nữa 6.1 Phát xạ trơn tru Giới hạn trên của tổng số tiền kỹ thuật số CryptoNote là: MSupply = 264 −1 đơn vị nguyên tử. Đây là hạn chế tự nhiên chỉ dựa trên giới hạn thực hiện chứ không dựa trên trực giác chẳng hạn như “N xu là đủ cho bất kỳ ai”. Để đảm bảo quá trình phát xạ diễn ra suôn sẻ chúng ta sử dụng công thức sau cho khối phần thưởng: Phần thưởng cơ bản = (MSupply −A) ≫18, Trong đó A là số lượng tiền được tạo ra trước đó. 6.2 Thông số điều chỉnh 6.2.1 khó khăn CryptoNote chứa thuật toán nhắm mục tiêu thay đổi độ khó của mọi khối. Cái này giảm thời gian phản ứng của hệ thống khi tốc độ mạng hash tăng hoặc giảm mạnh, duy trì tốc độ chặn không đổi. Phương thức Bitcoin ban đầu tính toán mối quan hệ của giá trị thực tế và khoảng thời gian mục tiêu giữa các khối cuối cùng của năm 2016 và sử dụng nó làm hệ số nhân cho khối hiện tại khó khăn. Rõ ràng điều này không phù hợp để tính toán lại nhanh chóng (vì quán tính lớn) và dẫn đến dao động. Ý tưởng chung đằng sau thuật toán của chúng tôi là tổng hợp tất cả công việc được hoàn thành bởi các nút và chia nó cho thời gian họ đã bỏ ra. Thước đo của công việc là các giá trị độ khó tương ứng trong mỗi khối. Nhưng do dấu thời gian không chính xác và không đáng tin cậy nên chúng tôi không thể xác định chính xác khoảng thời gian giữa các khối. Người dùng có thể chuyển dấu thời gian của mình sang tương lai và lần tiếp theo các khoảng có thể rất nhỏ hoặc thậm chí âm. Có lẽ sẽ có ít sự cố xảy ra loại này, vì vậy chúng tôi chỉ có thể sắp xếp các dấu thời gian và các giá trị ngoại lệ (tức là 20%). Phạm vi của các giá trị còn lại là thời gian dành cho 80% khối tương ứng. 6.2.2 Giới hạn kích thước Người dùng trả tiền để lưu trữ blockchain và có quyền bỏ phiếu cho kích thước của nó. Mỗi thợ mỏ giải quyết vấn đề cân bằng giữa chi phí và lợi nhuận từ phí và tự đặt ra “giới hạn mềm” để tạo khối. Ngoài ra, quy tắc cốt lõi cho kích thước khối tối đa là cần thiết cho ngăn chặn blockchain tràn ngập giao dịch không có thật, tuy nhiên giá trị này sẽ không được mã hóa cứng. Gọi MN là giá trị trung bình của N kích thước khối cuối cùng. Sau đó là “giới hạn cứng” cho kích thước khối chấp nhận là \(2 \cdot M_N\). Nó giúp blockchain khỏi bị đầy hơi nhưng vẫn cho phép giới hạn từ từ phát triển theo thời gian nếu cần thiết. Quy mô giao dịch không cần phải bị giới hạn một cách rõ ràng. Nó được giới hạn bởi kích thước của một khối; và nếu ai đó muốn tạo một giao dịch lớn với hàng trăm đầu vào/đầu ra (hoặc với mức độ mơ hồ cao trong chữ ký vòng), anh ta có thể làm như vậy bằng cách trả đủ phí. 6.2.3 Hình phạt vượt quá kích thước Người khai thác vẫn có khả năng lưu trữ một khối chứa đầy các giao dịch không tính phí của riêng mình lên đến mức tối đa cỡ \(2 \cdot M_b\). Mặc dù chỉ có phần lớn các thợ mỏ có thể thay đổi giá trị trung bình, nhưng vẫn có một 13 6 Ưu điểm hơn nữa 6.1 Phát xạ trơn tru Giới hạn trên của tổng số tiền kỹ thuật số CryptoNote là: MSupply = 264 −1 đơn vị nguyên tử. Đây là hạn chế tự nhiên chỉ dựa trên giới hạn thực hiện chứ không dựa trên trực giác chẳng hạn như “N xu là đủ cho bất kỳ ai”. Để đảm bảo quá trình phát xạ diễn ra suôn sẻ chúng ta sử dụng công thức sau cho khối phần thưởng: Phần thưởng cơ bản = (MSupply −A) ≫18, Trong đó A là số lượng tiền được tạo ra trước đó. 6.2 Thông số điều chỉnh 6.2.1 khó khăn CryptoNote chứa thuật toán nhắm mục tiêu thay đổi độ khó của mọi khối. Cái này giảm thời gian phản ứng của hệ thống khi tốc độ mạng hash tăng hoặc giảm mạnh, duy trì tốc độ chặn không đổi. Phương thức Bitcoin ban đầu tính toán mối quan hệ thực tế và khoảng thời gian mục tiêu giữa các khối cuối cùng của năm 2016 và sử dụng nó làm hệ số nhân cho khối hiện tại khó khăn. Rõ ràng điều này không phù hợp để tính toán lại nhanh chóng (vì quán tính lớn) và dẫn đến dao động. Ý tưởng chung đằng sau thuật toán của chúng tôi là tổng hợp tất cả công việc được hoàn thành bởi các nút và chia nó cho thời gian họ đã bỏ ra. Thước đo của công việc là các giá trị độ khó tương ứng trong mỗi khối. Nhưng do dấu thời gian không chính xác và không đáng tin cậy nên chúng tôi không thể xác định chính xác khoảng thời gian giữa các khối. Người dùng có thể chuyển dấu thời gian của mình sang tương lai và lần tiếp theo các khoảng có thể rất nhỏ hoặc thậm chí âm. Có lẽ sẽ có ít sự cố xảy ra loại này, vì vậy chúng tôi chỉ có thể sắp xếp các dấu thời gian và các giá trị ngoại lệ (tức là 20%). Phạm vi của các giá trị còn lại là thời gian dành cho 80% khối tương ứng. 6.2.2 Giới hạn kích thước Người dùng trả tiền để lưu trữ blockchain và có quyền bỏ phiếu cho kích thước của nó. Mỗi thợ mỏ đề cập đến sự đánh đổi giữa việc cân bằnge chi phí và lợi nhuận từ phí và tự đặt ra “giới hạn mềm” để tạo khối. Ngoài ra, quy tắc cốt lõi cho kích thước khối tối đa là cần thiết cho ngăn chặn blockchain tràn ngập giao dịch không có thật, tuy nhiên giá trị này sẽ không được mã hóa cứng. Gọi MN là giá trị trung bình của N kích thước khối cuối cùng. Sau đó là “giới hạn cứng” cho kích thước khối chấp nhận là \(2 \cdot M_N\). Nó giúp blockchain khỏi bị đầy hơi nhưng vẫn cho phép giới hạn từ từ phát triển theo thời gian nếu cần thiết. Quy mô giao dịch không cần phải bị giới hạn một cách rõ ràng. Nó được giới hạn bởi kích thước của một khối; và nếu ai đó muốn tạo một giao dịch lớn với hàng trăm đầu vào/đầu ra (hoặc với mức độ mơ hồ cao trong chữ ký vòng), anh ta có thể làm như vậy bằng cách trả đủ phí. 6.2.3 Hình phạt vượt quá kích thước Người khai thác vẫn có khả năng lưu trữ một khối chứa đầy các giao dịch không tính phí của riêng mình lên đến mức tối đa cỡ \(2 \cdot M_b\). Mặc dù chỉ có phần lớn các thợ mỏ có thể thay đổi giá trị trung bình, nhưng vẫn có một 13 24 Được rồi, vậy là chúng ta có blockchain và mỗi khối có dấu thời gian NGOÀI RA để chỉ đơn giản là ra lệnh. Điều này rõ ràng được chèn vào đơn giản chỉ để điều chỉnh độ khó, bởi vì dấu thời gian được rất không đáng tin cậy, như đã đề cập. Chúng ta có được phép có dấu thời gian mâu thuẫn trong chuỗi không? Nếu Khối A xuất hiện trước Khối B trong chuỗi và mọi thứ đều nhất quán về mặt tài chính, nhưng Khối A dường như được tạo ra sau Khối B? Bởi vì, có lẽ, ai đó đã sở hữu một phần lớn của mạng? Thế có ổn không? Có lẽ là do tình hình tài chính không được cải thiện. Được rồi, vì vậy tôi ghét sự tùy tiện này "chỉ 80% khối là hợp pháp cho blockchain chính" cách tiếp cận. Nó nhằm mục đích ngăn chặn những kẻ nói dối điều chỉnh dấu thời gian của họ? Nhưng bây giờ, nó bổ sung thêm khuyến khích mọi người nói dối về dấu thời gian của họ và chỉ chọn mức trung bình. Hãy xác định. Có nghĩa là "đối với khối này, chỉ bao gồm các giao dịch bao gồm phí lớn hơn hơn p%, tốt nhất là với mức phí lớn hơn 2p%" hay đại loại như thế? Họ có ý gì khi nói không có thật? Nếu giao dịch nhất quán với lịch sử trong quá khứ của blockchain và giao dịch bao gồm các khoản phí làm hài lòng người khai thác, điều đó chưa đủ sao? Vâng, không, không nhất thiết. Nếu không tồn tại kích thước khối tối đa thì sẽ không có gì để giữ người dùng độc hại từ việc đơn giản tải lên một khối giao dịch khổng lồ cho chính mình cùng một lúc chỉ để làm chậm lại mạng lưới. Quy tắc cốt lõi về kích thước khối tối đa ngăn cản mọi người đưa một lượng lớn rác vào dữ liệu trên blockchain cùng một lúc chỉ để làm chậm quá trình. Nhưng một quy định như vậy chắc chắn phải hãy thích ứng - chẳng hạn như trong mùa Giáng sinh, chúng ta có thể dự kiến lưu lượng truy cập sẽ tăng đột biến và kích thước khối sẽ trở nên rất lớn và ngay sau đó, kích thước khối sẽ giảm xuống một lần nữa. Vì vậy, chúng ta cần a) một loại giới hạn thích ứng nào đó hoặc b) một giới hạn đủ lớn để 99% đỉnh Giáng sinh hợp lý không phá vỡ giới hạn. Tất nhiên, điều thứ hai là không thể ước tính - ai biết liệu một loại tiền tệ có được ưa chuộng hay không? Tốt hơn là hãy làm cho nó thích ứng và không phải lo lắng về nó. Nhưng sau đó chúng ta có một vấn đề về lý thuyết điều khiển: làm thế nào để điều này thích ứng mà không cần dễ bị tấn công hoặc dao động điên cuồng và điên cuồng? Lưu ý rằng phương pháp thích ứng không ngăn người dùng độc hại tích lũy số tiền nhỏ dữ liệu rác theo thời gian trên blockchain gây ra tình trạng phình to trong thời gian dài. Đây là một vấn đề khác hoàn toàn và một đồng tiền điện tử có vấn đề nghiêm trọng.

6 Ưu điểm hơn nữa 6.1 Phát xạ trơn tru Giới hạn trên của tổng số tiền kỹ thuật số CryptoNote là: MSupply = 264 −1 đơn vị nguyên tử. Đây là hạn chế tự nhiên chỉ dựa trên giới hạn thực hiện chứ không dựa trên trực giác chẳng hạn như “N xu là đủ cho bất kỳ ai”. Để đảm bảo quá trình phát xạ diễn ra suôn sẻ chúng ta sử dụng công thức sau cho khối phần thưởng: Phần thưởng cơ bản = (MSupply −A) ≫18, Trong đó A là số lượng tiền được tạo ra trước đó. 6.2 Thông số điều chỉnh 6.2.1 khó khăn CryptoNote chứa thuật toán nhắm mục tiêu thay đổi độ khó của mọi khối. Cái này giảm thời gian phản ứng của hệ thống khi tốc độ mạng hash tăng hoặc giảm mạnh, duy trì tốc độ chặn không đổi. Phương thức Bitcoin ban đầu tính toán mối quan hệ của giá trị thực tế và khoảng thời gian mục tiêu giữa các khối cuối cùng của năm 2016 và sử dụng nó làm hệ số nhân cho khối hiện tại khó khăn. Rõ ràng điều này không phù hợp để tính toán lại nhanh chóng (vì quán tính lớn) và dẫn đến dao động. Ý tưởng chung đằng sau thuật toán của chúng tôi là tổng hợp tất cả công việc được hoàn thành bởi các nút và chia nó cho thời gian họ đã bỏ ra. Thước đo của công việc là các giá trị độ khó tương ứng trong mỗi khối. Nhưng do dấu thời gian không chính xác và không đáng tin cậy nên chúng tôi không thể xác định chính xác khoảng thời gian giữa các khối. Người dùng có thể chuyển dấu thời gian của mình sang tương lai và lần tiếp theo các khoảng có thể rất nhỏ hoặc thậm chí âm. Có lẽ sẽ có ít sự cố xảy ra loại này, vì vậy chúng tôi chỉ có thể sắp xếp các dấu thời gian và các giá trị ngoại lệ (tức là 20%). Phạm vi của các giá trị còn lại là thời gian dành cho 80% khối tương ứng. 6.2.2 Giới hạn kích thước Người dùng trả tiền để lưu trữ blockchain và có quyền bỏ phiếu cho kích thước của nó. Mỗi thợ mỏ giải quyết vấn đề cân bằng giữa chi phí và lợi nhuận từ phí và tự đặt ra “giới hạn mềm” để tạo khối. Ngoài ra, quy tắc cốt lõi cho kích thước khối tối đa là cần thiết cho ngăn chặn blockchain tràn ngập giao dịch không có thật, tuy nhiên giá trị này sẽ không được mã hóa cứng. Gọi MN là giá trị trung bình của N kích thước khối cuối cùng. Sau đó là “giới hạn cứng” cho kích thước khối chấp nhận là \(2 \cdot M_N\). Nó giúp blockchain khỏi bị đầy hơi nhưng vẫn cho phép giới hạn từ từ phát triển theo thời gian nếu cần thiết. Quy mô giao dịch không cần phải bị giới hạn một cách rõ ràng. Nó được giới hạn bởi kích thước của một khối; và nếu ai đó muốn tạo một giao dịch lớn với hàng trăm đầu vào/đầu ra (hoặc với mức độ mơ hồ cao trong chữ ký vòng), anh ta có thể làm như vậy bằng cách trả đủ phí. 6.2.3 Hình phạt vượt quá kích thước Người khai thác vẫn có khả năng lưu trữ một khối chứa đầy các giao dịch không tính phí của riêng mình lên đến mức tối đa cỡ \(2 \cdot M_b\). Mặc dù chỉ có phần lớn các thợ mỏ có thể thay đổi giá trị trung bình, nhưng vẫn có một 13 6 Ưu điểm hơn nữa 6.1 Phát xạ trơn tru Giới hạn trên của tổng số tiền kỹ thuật số CryptoNote là: MSupply = 264 −1 đơn vị nguyên tử. Đây là hạn chế tự nhiên chỉ dựa trên giới hạn thực hiện chứ không dựa trên trực giác chẳng hạn như “N xu là đủ cho bất kỳ ai”. Để đảm bảo quá trình phát xạ diễn ra suôn sẻ chúng ta sử dụng công thức sau cho khối phần thưởng: Phần thưởng cơ bản = (MSupply −A) ≫18, Trong đó A là số lượng tiền được tạo ra trước đó. 6.2 Thông số điều chỉnh 6.2.1 khó khăn CryptoNote chứa thuật toán nhắm mục tiêu thay đổi độ khó của mọi khối. Cái này giảm thời gian phản ứng của hệ thống khi tốc độ mạng hash tăng hoặc giảm mạnh, duy trì tốc độ chặn không đổi. Phương thức Bitcoin ban đầu tính toán mối quan hệ của giá trị thực tế và khoảng thời gian mục tiêu giữa các khối cuối cùng của năm 2016 và sử dụng nó làm hệ số nhân cho khối hiện tại khó khăn. Rõ ràng điều này không phù hợp để tính toán lại nhanh chóng (vì quán tính lớn) và dẫn đến dao động. Ý tưởng chung đằng sau thuật toán của chúng tôi là tổng hợp tất cả công việc được hoàn thành bởi các nút và chia nó cho thời gian họ đã bỏ ra. Thước đo của công việc là các giá trị độ khó tương ứng trong mỗi khối. Nhưng do dấu thời gian không chính xác và không đáng tin cậy nên chúng tôi không thể xác định chính xác khoảng thời gian giữa các khối. Người dùng có thể chuyển dấu thời gian của mình sang tương lai và lần tiếp theo các khoảng có thể rất nhỏ hoặc thậm chí âm. Có lẽ sẽ có ít sự cố xảy ra loại này, vì vậy chúng tôi chỉ có thể sắp xếp các dấu thời gian và các giá trị ngoại lệ (tức là 20%). Phạm vi của các giá trị còn lại là thời gian dành cho 80% khối tương ứng. 6.2.2 Giới hạn kích thước Người dùng trả tiền để lưu trữ blockchain và có quyền bỏ phiếu cho kích thước của nó. Mỗi thợ mỏ đề cập đến sự đánh đổi giữa việc cân bằnge chi phí và lợi nhuận từ phí và tự đặt ra “giới hạn mềm” để tạo khối. Ngoài ra, quy tắc cốt lõi cho kích thước khối tối đa là cần thiết cho ngăn chặn blockchain tràn ngập giao dịch không có thật, tuy nhiên giá trị này sẽ không được mã hóa cứng. Gọi MN là giá trị trung bình của N kích thước khối cuối cùng. Sau đó là “giới hạn cứng” cho kích thước khối chấp nhận là \(2 \cdot M_N\). Nó giúp blockchain khỏi bị đầy hơi nhưng vẫn cho phép giới hạn từ từ phát triển theo thời gian nếu cần thiết. Quy mô giao dịch không cần phải bị giới hạn một cách rõ ràng. Nó được giới hạn bởi kích thước của một khối; và nếu ai đó muốn tạo một giao dịch lớn với hàng trăm đầu vào/đầu ra (hoặc với mức độ mơ hồ cao trong chữ ký vòng), anh ta có thể làm như vậy bằng cách trả đủ phí. 6.2.3 Hình phạt vượt quá kích thước Người khai thác vẫn có khả năng lưu trữ một khối chứa đầy các giao dịch không tính phí của riêng mình lên đến mức tối đa cỡ \(2 \cdot M_b\). Mặc dù chỉ có phần lớn các thợ mỏ có thể thay đổi giá trị trung bình, nhưng vẫn có một 13 25 Thay đổi tỷ lệ thời gian sao cho một đơn vị thời gian là N khối, về mặt lý thuyết, kích thước khối trung bình vẫn có thể tăng theo cấp số nhân thành 2ˆt. Mặt khác, một giới hạn tổng quát hơn trên khối tiếp theo sẽ là M_nf(M_n) cho một số hàm f. Những tính chất nào của f sẽ chúng tôi chọn để đảm bảo một số "tăng trưởng hợp lý" về kích thước khối? Sự tiến triển của kích thước khối (sau thời gian thay đổi tỷ lệ) sẽ như sau: 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( ... Và mục tiêu ở đây là chọn f sao cho chuỗi này tăng không nhanh hơn, chẳng hạn, tuyến tính, hoặc thậm chí có thể là Log(t). Tất nhiên, nếu f(M_n) = a với hằng số a nào đó thì chuỗi này là thực sự M_n aM_n aˆ2M_n aˆ3M_n ... Và tất nhiên, cách duy nhất có thể hạn chế điều này ở mức tăng trưởng tuyến tính tối đa là chọn a=1. Tất nhiên, điều này là không thể thực hiện được. Nó không cho phép tăng trưởng chút nào. Mặt khác, nếu f(M_n) là một hàm không hằng thì tình huống còn phức tạp hơn nhiều. phức tạp và có thể cho phép một giải pháp tao nhã. Tôi sẽ suy nghĩ về điều này một lúc. Khoản phí này sẽ phải đủ lớn để giảm bớt hình phạt vượt quá kích thước từ phần tiếp theo. Tại sao người dùng phổ thông lại được coi là nam giới nhỉ? Hả?

khả năng làm tăng blockchain và tạo thêm tải cho các nút. Để ngăn cản những người tham gia ác ý tạo ra các khối lớn, chúng tôi giới thiệu một chức năng phạt: Phần thưởng mới = Phần thưởng cơ bản \(\cdot\) kích thước khối MN −1 2 Quy tắc này chỉ được áp dụng khi BlkSize lớn hơn kích thước khối trống tối thiểu cần thiết gần đạt mức tối đa(10kb, \(M_N \cdot 110\%\)). Người khai thác được phép tạo các khối có “kích thước thông thường” và thậm chí vượt quá nó với lợi nhuận khi tổng phí vượt quá mức phạt. Nhưng phí khó có thể tăng bậc hai không giống giá trị phạt nên sẽ có sự cân bằng. 6.3 Kịch bản giao dịch CryptoNote có một hệ thống con viết kịch bản rất tối giản. Người gửi chỉ định một biểu thức Φ = f (x1, x2, . . . , xn), trong đó n là số khóa công khai đích {Pi}n tôi = 1. Chỉ có năm nhị phân các toán tử được hỗ trợ: min, max, sum, mul và cmp. Khi người nhận chi tiêu khoản thanh toán này, anh ta tạo ra 0 k n chữ ký và chuyển chúng đến đầu vào giao dịch. Quá trình xác minh chỉ cần đánh giá Φ với xi = 1 để kiểm tra chữ ký hợp lệ cho khóa chung Pi và xi = 0. Người xác minh chấp nhận bằng chứng nếu ffΦ > 0. Mặc dù đơn giản, cách tiếp cận này bao gồm mọi trường hợp có thể xảy ra: • Chữ ký đa/ngưỡng. Đối với chữ ký đa chữ ký “M-out-of-N” kiểu Bitcoin (tức là người nhận phải cung cấp ít nhất 0 ∼M ∼N chữ ký hợp lệ) Φ = x1+x2+. . .+xN \(\geq M\) (để rõ ràng, chúng tôi đang sử dụng ký hiệu đại số chung). Chữ ký ngưỡng có trọng số (một số phím có thể quan trọng hơn các phím khác) có thể được biểu thị dưới dạng Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Và kịch bản trong đó khóa chính tương ứng với Φ = max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Dễ dàng chứng minh được rằng bất kỳ trường hợp phức tạp nào cũng có thể được biểu thị bằng các toán tử này, tức là chúng tạo thành cơ sở. • Bảo vệ bằng mật khẩu. Việc sở hữu mật khẩu bí mật s tương đương với kiến thức về một khóa riêng, được xác định từ mật khẩu: k = KDF(s). Do đó, một máy thu có thể chứng minh rằng mình biết mật khẩu bằng cách cung cấp một chữ ký khác dưới khóa k. Người gửi chỉ cần thêm khóa công khai tương ứng vào đầu ra của chính mình. Lưu ý rằng điều này phương pháp này an toàn hơn nhiều so với “câu đố giao dịch” được sử dụng trong Bitcoin [13], trong đó mật khẩu được chuyển rõ ràng trong đầu vào. • Các trường hợp thoái hóa. Φ = 1 có nghĩa là bất kỳ ai cũng có thể tiêu tiền; Φ = 0 đánh dấu đầu ra là không thể chi tiêu mãi mãi. Trong trường hợp tập lệnh đầu ra kết hợp với khóa chung quá lớn đối với người gửi, anh ta có thể sử dụng loại đầu ra đặc biệt, cho biết người nhận sẽ đưa dữ liệu này vào đầu vào của mình trong khi người gửi chỉ cung cấp hash trong số đó. Cách tiếp cận này tương tự như “trả tiền chohash” của Bitcoin tính năng này, nhưng thay vì thêm các lệnh script mới, chúng tôi xử lý trường hợp này ở cấu trúc dữ liệu cấp độ. 7 Kết luận Chúng tôi đã điều tra các lỗ hổng lớn trong Bitcoin và đề xuất một số giải pháp khả thi. Những tính năng thuận lợi này và sự phát triển không ngừng của chúng tôi tạo nên hệ thống tiền điện tử mới CryptoNote một đối thủ nặng ký của Bitcoin, vượt trội hơn tất cả các nhánh của nó. 14 khả năng làm tăng blockchain và tạo thêm tải cho các nút. Để ngăn cản những người tham gia ác ý tạo ra các khối lớn, chúng tôi giới thiệu một chức năng phạt: Phần thưởng mới = Phần thưởng cơ bản \(\cdot\) kích thước khối MN −1 2 Quy tắc này chỉ được áp dụng khi BlkSize lớn hơn kích thước khối trống tối thiểu cần thiết gần đạt mức tối đa(10kb, \(M_N \cdot 110\%\)). Người khai thác được phép tạo các khối có “kích thước thông thường” và thậm chí vượt quá nó với lợi nhuận khi tổng phí vượt quá mức phạt. Nhưng phí khó có thể tăng bậc hai không giống giá trị phạt nên sẽ có sự cân bằng. 6.3 Kịch bản giao dịch CryptoNote có một hệ thống con viết kịch bản rất tối giản. Người gửi chỉ định một biểu thức Φ = f (x1, x2, . . . , xn), trong đó n là số khóa công khai đích {Pi}n tôi = 1. Chỉ có năm nhị phân các toán tử được hỗ trợ: min, max, sum, mul và cmp. Khi người nhận chi tiêu khoản thanh toán này, anh ta tạo ra 0 k n chữ ký và chuyển chúng đến đầu vào giao dịch. Quá trình xác minh chỉ cần đánh giá Φ với xi = 1 để kiểm tra chữ ký hợp lệ cho khóa chung Pi và xi = 0. Người xác minh chấp nhận bằng chứng nếu ffΦ > 0. Mặc dù đơn giản, cách tiếp cận này bao gồm mọi trường hợp có thể xảy ra: • Chữ ký đa/ngưỡng. Đối với chữ ký đa chữ ký “M-out-of-N” kiểu Bitcoin (tức là người nhận phải cung cấp ít nhất 0 ∼M ∼N chữ ký hợp lệ) Φ = x1+x2+. . .+xN \(\geq M\) (để rõ ràng, chúng tôi đang sử dụng ký hiệu đại số chung). Chữ ký ngưỡng có trọng số (một số phím có thể quan trọng hơn các phím khác) có thể được biểu thị dưới dạng Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). Và bối cảnhio trong đó khóa chính tương ứng với Φ = max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). Dễ dàng chứng minh được rằng bất kỳ trường hợp phức tạp nào cũng có thể được biểu thị bằng các toán tử này, tức là chúng tạo thành cơ sở. • Bảo vệ bằng mật khẩu. Việc sở hữu mật khẩu bí mật s tương đương với kiến thức về một khóa riêng, được xác định từ mật khẩu: k = KDF(s). Do đó, một máy thu có thể chứng minh rằng mình biết mật khẩu bằng cách cung cấp một chữ ký khác dưới khóa k. Người gửi chỉ cần thêm khóa công khai tương ứng vào đầu ra của chính mình. Lưu ý rằng điều này phương pháp này an toàn hơn nhiều so với “câu đố giao dịch” được sử dụng trong Bitcoin [13], trong đó mật khẩu được chuyển rõ ràng trong đầu vào. • Các trường hợp thoái hóa. Φ = 1 có nghĩa là bất kỳ ai cũng có thể tiêu tiền; Φ = 0 đánh dấu đầu ra là không thể chi tiêu mãi mãi. Trong trường hợp tập lệnh đầu ra kết hợp với khóa chung quá lớn đối với người gửi, anh ta có thể sử dụng loại đầu ra đặc biệt, cho biết người nhận sẽ đưa dữ liệu này vào đầu vào của mình trong khi người gửi chỉ cung cấp hash trong số đó. Cách tiếp cận này tương tự như “trả tiền chohash” của Bitcoin tính năng này, nhưng thay vì thêm các lệnh script mới, chúng tôi xử lý trường hợp này ở cấu trúc dữ liệu cấp độ. 7 Kết luận Chúng tôi đã điều tra các lỗ hổng lớn trong Bitcoin và đề xuất một số giải pháp khả thi. Những tính năng thuận lợi này và sự phát triển không ngừng của chúng tôi tạo nên hệ thống tiền điện tử mới CryptoNote một đối thủ nặng ký của Bitcoin, vượt trội hơn tất cả các nhánh của nó. 14 26 Điều này có thể không cần thiết nếu chúng ta có thể tìm ra cách giới hạn kích thước khối theo thời gian... Điều này cũng không thể đúng được. Họ chỉ đặt "NewReward" thành một hình parabol hướng lên trong đó kích thước khối là biến độc lập. Vì vậy, phần thưởng mới sẽ tăng lên đến vô tận. Mặt khác, nếu tay, phần thưởng mới là Max(0,Phần thưởng cơ bản(1-(BlkSize/Mn - 1)ˆ2)), sau đó phần thưởng mới sẽ là một parabol hướng xuống dưới với đỉnh ở kích thước khối = Mn và có điểm chặn tại Kích thước khối = 0 và Kích thước khối = 2Mn. Và đó dường như là những gì họ đang cố gắng mô tả. Tuy nhiên, điều này không

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

Phân tích

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

5 Điều đó không quá quan trọng khi một tỷ người trên thế giới sống với mức thu nhập dưới một đô la mỗi năm. ngày và không có hy vọng tham gia vào bất kỳ loại mạng lưới khai thác nào... ngoại trừ một nền kinh tế thế giới được thúc đẩy bởi hệ thống tiền tệ p2p với một CPU-một phiếu bầu, có lẽ sẽ còn hơn thế nữa công bằng hơn một hệ thống được thúc đẩy bởi ngân hàng dự trữ một phần. Nhưng giao thức của Cryptonote vẫn yêu cầu 51% người dùng trung thực... xem ví dụ: Cryptonote diễn đàn nơi một trong những nhà phát triển, Pliskov, nói rằng một cuộc tấn công 51% thay thế dữ liệu trên blockchain truyền thống vẫn có thể hoạt động. https://forum.cryptonote.org/viewtopic.php?f=2&t=198 Lưu ý rằng bạn không thực sự cần 51% người dùng trung thực. Bạn chỉ thực sự cần "không một lời gian dối nào phe có hơn 51% sức mạnh hash của mạng." Hãy gọi vấn đề này của bitcoin là “sự cứng nhắc thích ứng”. Giải pháp thích ứng của Cryptonote độ cứng nhắc là tính linh hoạt thích ứng trong các giá trị tham số giao thức. Nếu bạn cần kích thước khối lớn hơn, không vấn đề gì, mạng sẽ được điều chỉnh nhẹ nhàng trong suốt thời gian qua. Tức là, cách Bitcoin điều chỉnh độ khó theo thời gian có thể được sao chép trên tất cả giao thức của chúng tôi các tham số để không cần phải đạt được sự đồng thuận của mạng để cập nhật giao thức. Nhìn bề ngoài thì đây có vẻ là một ý tưởng hay, nhưng nếu không có sự suy tính cẩn thận, nó sẽ tự điều chỉnh. hệ thống có thể trở nên khá khó lường và hỗn loạn. Chúng ta sẽ xem xét sâu hơn về vấn đề này sau vì cơ hội phát sinh. Các hệ thống "tốt" nằm ở đâu đó giữa tính cứng nhắc về mặt thích ứng và tính thích ứng linh hoạt, và có lẽ ngay cả sự cứng nhắc cũng có tính thích ứng. Nếu chúng tôi thực sự có "một CPU-một phiếu bầu", thì hãy hợp tác và phát triển các nhóm để đạt được 51% sẽ khó khăn hơn. Chúng tôi kỳ vọng mọi CPU trên thế giới đều có thể khai thác, từ điện thoại tới CPU tích hợp trong chiếc Tesla của bạn trong khi nó đang sạc. http://en.wikipedia.org/wiki/Pareto_principle Tôi khẳng định rằng trạng thái cân bằng Pareto là điều không thể tránh khỏi. 20% hệ thống sẽ sở hữu 80% số CPU hoặc 20% hệ thống sẽ sở hữu 80% số ASIC. Tôi đưa ra giả thuyết này bởi vì sự phân bổ của cải cơ bản trong xã hội đã thể hiện sự phân phối Pareto, và khi những người khai thác mới tham gia, họ sẽ được rút ra từ sự phân phối cơ bản đó. Tuy nhiên, tôi lập luận rằng các giao thức với một CPU-một phiếu bầu sẽ thấy ROI trên phần cứng. Chặn phần thưởng cho mỗi nút sẽ tỷ lệ chặt chẽ hơn với số lượng nút trong mạng vì phân phối hiệu suất giữa các nút sẽ chặt chẽ hơn nhiều. Bitcoin, mặt khác trong tay, sẽ thấy phần thưởng khối (trên mỗi nút) tỷ lệ thuận hơn với khả năng tính toán của khối đó nút. Nghĩa là, chỉ còn những “ông lớn” mới tham gia trò chơi khai thác. Mặt khác, mặc dù nguyên tắc Pareto vẫn được áp dụng, nhưng trong thế giới một CPU một phiếu bầu, mọi người tham gia vào an ninh mạng và kiếm được một chút thu nhập từ khai thác. Trong thế giới ASIC, việc khai thác mọi XBox và điện thoại di động là không hợp lý. Trong thế giới onecpu-one-vote, việc thưởng khai thác là rất hợp lý. Như một kết quả thú vị, việc giành được 51% phiếu bầu càng khó khăn hơn khi số phiếu bầu ngày càng nhiều, mang lại một kết quả đáng yêu có lợi cho an ninh mạng..phần cứng được mô tả trước đó. Giả sử rằng tỷ lệ hash toàn cầu giảm đáng kể, ngay cả đối với trong giây lát, giờ anh ta có thể sử dụng sức mạnh khai thác của mình để phân nhánh chuỗi và chi tiêu gấp đôi. Như chúng ta sẽ thấy ở phần sau của bài viết này, không có khả năng xảy ra sự kiện được mô tả trước đó. 2.3 Phát thải không đều Bitcoin có tốc độ phát thải được xác định trước: mỗi khối được giải sẽ tạo ra một lượng xu cố định. Khoảng bốn năm một lần phần thưởng này sẽ giảm đi một nửa. Mục đích ban đầu là tạo ra một phát xạ trơn tru hạn chế với sự phân rã theo cấp số nhân, nhưng trên thực tế, chúng ta có phát xạ tuyến tính từng phần chức năng có điểm dừng có thể gây ra sự cố cho cơ sở hạ tầng Bitcoin. Khi điểm dừng xảy ra, người khai thác bắt đầu chỉ nhận được một nửa giá trị trước đó của họ phần thưởng. Sự khác biệt tuyệt đối giữa 12,5 và 6,25 BTC (dự kiến cho năm 2020) có thể có vẻ có thể chịu đựng được. Tuy nhiên, khi kiểm tra mức giảm 50 đến 25 BTC diễn ra vào tháng 11 28 năm 2012, cảm thấy không phù hợp với một số lượng đáng kể thành viên của cộng đồng khai thác mỏ. Hình Hình 1 cho thấy tốc độ hash của mạng giảm đáng kể vào cuối tháng 11, chính xác là khi việc giảm một nửa đã diễn ra. Sự kiện này có thể là thời điểm hoàn hảo cho cá nhân độc ác được mô tả trong phần chức năng proof-of-work để thực hiện cuộc tấn công chi tiêu gấp đôi [36]. Hình 1. Bitcoin hash biểu đồ tỷ lệ (nguồn: http://bitcoin.sipa.be) 2.4 Hằng số được mã hóa cứng Bitcoin có nhiều giới hạn được mã hóa cứng, trong đó một số là yếu tố tự nhiên của thiết kế ban đầu (ví dụ: tần suất chặn, lượng cung tiền tối đa, số lượng xác nhận) trong khi các yếu tố khác dường như là những hạn chế nhân tạo. Đó không phải là những giới hạn mà là việc không có khả năng thay đổi nhanh chóng 3 phần cứng được mô tả trước đó. Giả sử rằng tỷ lệ hash toàn cầu giảm đáng kể, ngay cả đối với trong giây lát, giờ anh ta có thể sử dụng sức mạnh khai thác của mình để phân nhánh chuỗi và chi tiêu gấp đôi. Như chúng ta sẽ thấy ở phần sau của bài viết này, không có khả năng xảy ra sự kiện được mô tả trước đó. 2.3 Phát thải không đều Bitcoin có tốc độ phát thải được xác định trước: mỗi khối được giải sẽ tạo ra một lượng xu cố định. Khoảng bốn năm một lần phần thưởng này sẽ giảm đi một nửa. Mục đích ban đầu là tạo ra một phát xạ trơn tru hạn chế với sự phân rã theo cấp số nhân, nhưng trên thực tế, chúng ta có phát xạ tuyến tính từng phần chức năng có điểm dừng có thể gây ra sự cố cho cơ sở hạ tầng Bitcoin. Khi điểm dừng xảy ra, người khai thác bắt đầu chỉ nhận được một nửa giá trị trước đó của họ phần thưởng. Sự khác biệt tuyệt đối giữa 12,5 và 6,25 BTC (dự kiến cho năm 2020) có thể có vẻ có thể chịu đựng được. Tuy nhiên, khi kiểm tra mức giảm 50 đến 25 BTC diễn ra vào tháng 11 28 năm 2012, cảm thấy không phù hợp với một số lượng đáng kể thành viên của cộng đồng khai thác mỏ. Hình Hình 1 cho thấy tỷ lệ hash của mạng giảm đáng kể vào cuối tháng 11, chính xác là khi việc giảm một nửa đã diễn ra. Sự kiện này có thể là thời điểm hoàn hảo cho cá nhân độc ác được mô tả trong phần chức năng proof-of-work để thực hiện cuộc tấn công chi tiêu gấp đôi [36]. Hình 1. Bitcoin hash biểu đồ tỷ lệ (nguồn: http://bitcoin.sipa.be) 2.4 Hằng số được mã hóa cứng Bitcoin có nhiều giới hạn được mã hóa cứng, trong đó một số là yếu tố tự nhiên của thiết kế ban đầu (ví dụ: tần suất chặn, lượng cung tiền tối đa, số lượng xác nhận) trong khi các yếu tố khác dường như là những hạn chế nhân tạo. Đó không phải là những giới hạn mà là việc không có khả năng thay đổi nhanh chóng 3 6 Hãy gọi đây là cuộc tấn công của zombie. Hãy cùng thảo luận về việc phát xạ liên tục có thể xảy ra như thế nào liên quan đến một CPU-một phiếu bầu trong kịch bản tấn công zombie. Trong thế giới một CPU-một phiếu bầu, mọi điện thoại di động và ô tô, bất cứ khi nào không hoạt động, đều sẽ được khai thác. Việc thu thập hàng đống phần cứng giá rẻ để tạo ra một trang trại khai thác sẽ rất dễ dàng, bởi vì chỉ cần về mọi thứ đều có CPU trong đó. Mặt khác, tại thời điểm đó, số lượng CPU Tôi nghĩ yêu cầu cần thiết để thực hiện một cuộc tấn công 51% sẽ khá đáng kinh ngạc. Hơn nữa, chính xác là bởi vì sẽ dễ dàng thu thập phần cứng giá rẻ nên chúng ta có thể mong đợi một cách hợp lý rất nhiều người bắt đầu tích trữ bất cứ thứ gì có CPU. Cuộc chạy đua vũ trang trong thế giới một CPU một phiếu bầu nhất thiết phải bình đẳng hơn trong thế giới ASIC. Do đó, sự gián đoạn trong mạng an ninh do tỷ lệ phát thải sẽ ÍT hơn một vấn đề trong thế giới một CPU-một phiếu bầu. Tuy nhiên, vẫn còn hai sự thật: 1) sự gián đoạn về tốc độ phát thải có thể dẫn đến hiệu ứng lắp bắp trong cả nền kinh tế và an ninh mạng, điều này đều tệ và 2) mặc dù một cuộc tấn công 51% được thực hiện bởi ai đó thu thập phần cứng giá rẻ vẫn có thể xảy ra trong một CPU-bầu chọn thế giới, có vẻ như nó sẽ khó hơn. Có lẽ, biện pháp bảo vệ chống lại điều này là tất cả những kẻ không trung thực sẽ thử điều này đồng thời và chúng tôi quay trở lại khái niệm bảo mật trước đó của Bitcoin: "chúng tôi không yêu cầu sự thiếu trung thực phe kiểm soát hơn 51% mạng lưới." Tác giả khẳng định ở đây rằng một vấn đề với bitcoin là sự gián đoạn trong việc phát hành tiền xu. tỷ lệ này có thể dẫn đến sự sụt giảm đột ngột trong việc tham gia mạng và do đó dẫn đến an ninh mạng. Như vậy, thích hợp hơn là tốc độ phát thải đồng xu trơn tru, khác biệt và liên tục. Chắc chắn là tác giả không sai. Bất kỳ sự giảm đột ngột nào về mức độ tham gia mạng lưới đều có thể dẫn đến một vấn đề như vậy, và nếu chúng ta có thể loại bỏ một nguồn của nó thì chúng ta nên làm như vậy. Nói xong, đó là có thể là thời gian phát thải tiền xu "tương đối ổn định" bị ngắt quãng bởi những thay đổi đột ngột là cách lý tưởng để đi từ quan điểm kinh tế. Tôi không phải là một nhà kinh tế. Vì vậy, có lẽ chúng ta phải quyết định xem liệu chúng ta có định đánh đổi an ninh mạng để lấy kinh tế hay không - đây là cái gì vậy? http://arxiv.org/abs/1402.2009chúng nếu cần thiết sẽ gây ra những hạn chế chính. Thật không may, thật khó để dự đoán khi nào các hằng số có thể cần phải được thay đổi và việc thay thế chúng có thể dẫn đến những hậu quả khủng khiếp. Một ví dụ điển hình về thay đổi giới hạn được mã hóa cứng dẫn đến hậu quả tai hại là khối giới hạn kích thước được đặt thành 250kb1. Giới hạn này đủ để chứa khoảng 10000 giao dịch tiêu chuẩn. trong đầu năm 2013, giới hạn này gần như đã đạt được và đạt được thỏa thuận nhằm tăng giới hạn. Thay đổi được triển khai trong phiên bản ví 0.8 và kết thúc bằng việc chia chuỗi 24 khối và một cuộc tấn công chi tiêu gấp đôi thành công [9]. Mặc dù lỗi không nằm trong giao thức Bitcoin nhưng đúng hơn là trong công cụ cơ sở dữ liệu, nó có thể dễ dàng bị phát hiện bằng một bài kiểm tra căng thẳng đơn giản nếu có không có giới hạn kích thước khối được giới thiệu một cách giả tạo. Các hằng số cũng hoạt động như một dạng điểm tập trung. Bất chấp bản chất ngang hàng của Bitcoin, phần lớn các nút sử dụng ứng dụng khách tham chiếu chính thức [10] được phát triển bởi một nhóm nhỏ người Nhóm này đưa ra quyết định thực hiện các thay đổi đối với giao thức và hầu hết mọi người đều chấp nhận những thay đổi này bất kể “tính đúng đắn” của chúng. Một số quyết định gây ra các cuộc thảo luận sôi nổi và thậm chí còn kêu gọi tẩy chay [11], điều này cho thấy rằng cộng đồng và các nhà phát triển có thể không đồng ý ở một số điểm quan trọng. Do đó, có vẻ hợp lý khi có một giao thức với các biến do người dùng cấu hình và tự điều chỉnh như một cách có thể để tránh những vấn đề này. 2,5 Tập lệnh cồng kềnh Hệ thống tập lệnh trong Bitcoin là một tính năng nặng nề và phức tạp. Nó có khả năng cho phép người ta tạo ra các giao dịch phức tạp [12], nhưng một số tính năng của nó bị vô hiệu hóa do lo ngại về bảo mật và một số thậm chí chưa bao giờ được sử dụng [13]. Kịch bản (bao gồm cả phần người gửi và người nhận) đối với giao dịch phổ biến nhất trong Bitcoin trông như thế này: OP DUP OP HASH160 OP XÁC MINH BẰNG CÁCH OP CHECKSIG. Tập lệnh dài 164 byte trong khi mục đích duy nhất của nó là kiểm tra xem người nhận có sở hữu khóa bí mật cần thiết để xác minh chữ ký của mình.