크립토노트 v2.0
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.
소개
“Bitcoin” [1]은 p2p 전자 화폐 개념을 성공적으로 구현했습니다. 둘 다 전문가와 일반 대중은 다음과 같은 편리한 조합을 높이 평가하게 되었습니다. 공개 거래 및 proof-of-work을 신뢰 모델로 사용합니다. 오늘날 전자화폐 사용자층은 꾸준한 속도로 성장하고 있습니다. 고객은 낮은 수수료와 익명성 제공에 매력을 느낍니다. 전자 현금과 상인은 예측되고 분산된 배출을 중요하게 생각합니다. Bitcoin은(는) 전자화폐가 종이화폐만큼 간단하고 편리할 수 있다는 사실을 효과적으로 입증했습니다. 신용 카드. 불행하게도 Bitcoin에는 몇 가지 결함이 있습니다. 예를 들어, 시스템의 분산 성격은 유연성이 없기 때문에 거의 모든 네트워크 사용자가 클라이언트를 업데이트할 때까지 새로운 기능을 구현하지 못합니다. 빠르게 고칠 수 없는 몇 가지 중요한 결함으로 인해 Bitcoin의 광범위한 전파. 이러한 유연하지 못한 모델에서는 새 프로젝트를 출시하는 것이 더 효율적입니다. 원래 프로젝트를 영구적으로 수정하는 대신 본 논문에서는 Bitcoin의 주요 결함에 대한 해결책을 연구하고 제안합니다. 우리는 믿는다 우리가 제안하는 솔루션을 고려한 시스템이 건전한 경쟁으로 이어질 것이라고 믿습니다. 다양한 전자 현금 시스템 중에서. 우리만의 전자화폐 '크립토노트'도 제안합니다. 전자 현금의 차세대 혁신을 강조하는 이름입니다.
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 단점 및 가능한 솔루션
2 Bitcoin 단점 및 몇 가지 가능한 해결 방법 2.1 거래 추적성 개인 정보 보호와 익명성은 전자 현금의 가장 중요한 측면입니다. P2P 결제 제3자의 시선에서 숨기려고 하는 것은 전통적인 방식과 비교할 때 뚜렷한 차이가 있습니다. 은행. 특히 T. Okamoto와 K. Ohta는 이상적인 전자화폐의 6가지 기준을 설명했는데, 여기에는 "개인정보 보호: 사용자와 구매 간의 관계는 추적할 수 없어야 합니다"가 포함되어 있습니다. 누구라도” [30]. 해당 설명에서 우리는 완전히 익명인 두 가지 속성을 도출했습니다. 전자 현금 모델은 Okamoto가 명시한 요구 사항을 준수하기 위해 충족해야 합니다. 그리고 오타: 추적 불가능성: 각 수신 트랜잭션에 대해 가능한 모든 발신자가 동등할 가능성이 있습니다. 연결 해제성: 두 개의 나가는 트랜잭션에 대해 해당 트랜잭션이 다음으로 전송되었음을 증명하는 것은 불가능합니다. 같은 사람. 안타깝게도 Bitcoin은 추적 불가능 요구 사항을 충족하지 않습니다. 네트워크 참여자 간에 발생하는 모든 거래는 공개되므로 모든 거래는 공개될 수 있습니다. 1 크립토노트 v 2.0 니콜라스 반 세이버하겐 2013년 10월 17일 1 소개 “Bitcoin” [1]은 p2p 전자 화폐 개념을 성공적으로 구현했습니다. 둘 다 전문가와 일반 대중은 다음과 같은 편리한 조합을 높이 평가하게 되었습니다. 공개 거래 및 proof-of-work을 신뢰 모델로 사용합니다. 오늘날 전자화폐 사용자층은 꾸준한 속도로 성장하고 있습니다. 고객은 낮은 수수료와 익명성 제공에 매력을 느낍니다. 전자 현금과 상인은 예측되고 분산된 배출을 중요하게 생각합니다. Bitcoin은(는) 전자화폐가 종이화폐만큼 간단하고 편리할 수 있다는 사실을 효과적으로 입증했습니다. 신용 카드. 불행하게도 Bitcoin에는 몇 가지 결함이 있습니다. 예를 들어, 시스템의 분산 성격은 유연성이 없기 때문에 거의 모든 네트워크 사용자가 클라이언트를 업데이트할 때까지 새로운 기능을 구현하지 못합니다. 빠르게 고칠 수 없는 몇 가지 심각한 결함으로 인해 Bitcoin의 광범위한 전파. 이러한 유연하지 못한 모델에서는 새 프로젝트를 출시하는 것이 더 효율적입니다. 원래 프로젝트를 영구적으로 수정하는 대신 본 논문에서는 Bitcoin의 주요 결함에 대한 해결 방법을 연구하고 제안합니다. 우리는 믿는다 우리가 제안하는 솔루션을 고려한 시스템이 건전한 경쟁으로 이어질 것이라고 믿습니다. 다양한 전자 현금 시스템 중에서. 우리만의 전자화폐 '크립토노트'도 제안합니다. 전자 현금의 차세대 혁신을 강조하는 이름입니다. 2 Bitcoin 단점 및 몇 가지 가능한 해결 방법 2.1 거래 추적성 개인 정보 보호와 익명성은 전자 현금의 가장 중요한 측면입니다. P2P 결제 제3자의 시선에서 숨기려고 하는 것은 전통적인 방식과 비교할 때 뚜렷한 차이가 있습니다. 은행. 특히 T. Okamoto와 K. Ohta는 이상적인 전자화폐의 6가지 기준을 설명했는데, 여기에는 "개인정보 보호: 사용자와 구매 간의 관계는 추적할 수 없어야 합니다"가 포함되어 있습니다. 누구든지” [30]. 해당 설명에서 우리는 완전히 익명인 두 가지 속성을 도출했습니다. 전자 현금 모델은 Okamoto가 명시한 요구 사항을 준수하기 위해 충족해야 합니다. 그리고 오타: 추적 불가능성: 각 수신 트랜잭션에 대해 가능한 모든 발신자가 동등할 가능성이 있습니다. 연결 해제성: 두 개의 나가는 트랜잭션에 대해 해당 트랜잭션이 다음으로 전송되었음을 증명하는 것은 불가능합니다. 같은 사람. 안타깝게도 Bitcoin은 추적 불가능 요구 사항을 충족하지 않습니다. 네트워크 참여자 간에 발생하는 모든 거래는 공개되므로 모든 거래는 공개될 수 있습니다. 1 3 Bitcoin "추적 불가능"이 확실히 실패했습니다. 내가 당신에게 BTC를 보낼 때, 그것이 전송되는 지갑 blockchain에 취소할 수 없는 스탬프가 찍혀 있습니다. 그 자금을 누가 보냈는지에 대해서는 의문의 여지가 없습니다. 왜냐하면 개인 키를 아는 사람만이 이를 보낼 수 있기 때문입니다.고유한 출처와 최종 수신자를 명확하게 추적합니다. 두 참가자가 서로 교환하더라도 간접적인 방법으로 자금을 조달할 때 적절하게 설계된 경로 탐색 방법을 통해 출처와 출처를 밝힐 수 있습니다. 최종 수신자. 또한 Bitcoin이 두 번째 속성을 충족하지 않는 것으로 의심됩니다. 일부 연구자 ([33, 35, 29, 31]) 주의 깊은 blockchain 분석을 통해 다음과 같은 연관성이 드러날 수 있다고 말했습니다. Bitcoin 네트워크 사용자 및 해당 거래. 여러 가지 방법이 있지만 [25]에서 숨겨진 개인 정보가 많이 추출될 수 있다고 의심됩니다. 공개 데이터베이스. Bitcoin은 위에 설명된 두 가지 속성을 충족하지 못하므로 다음과 같은 결론을 내릴 수 있습니다. 익명이 아닌 유사 익명 전자 현금 시스템입니다. 사용자의 개발 속도가 빨랐습니다. 이러한 단점을 해결하기 위한 솔루션입니다. 두 가지 직접적인 솔루션은 "세탁 서비스" [2]와 분산 방법의 개발 [3, 4]. 두 솔루션 모두 혼합이라는 아이디어를 기반으로 합니다. 여러 공개 거래를 중개 주소를 통해 전송합니다. 차례로 신뢰할 수 있는 제3자가 필요하다는 단점이 있습니다. 최근에는 I. Miers et al.에 의해 보다 창의적인 계획이 제안되었습니다. [28]: "제로코인". 제로코인 사용자가 다음을 수행할 수 있도록 하는 암호화 단방향 누산기와 영지식 증명을 활용합니다. 비트코인을 제로코인으로 "전환"하고 대신 익명의 소유권 증명을 사용하여 사용합니다. 명시적인 공개 키 기반 디지털 서명. 그러나 그러한 지식 증명에는 상수가 있습니다. 하지만 불편한 크기 - 약 30kb(오늘의 Bitcoin 제한 기준)로 인해 제안이 이루어집니다. 비실용적이다. 저자들은 이 프로토콜이 대다수의 사람들에 의해 받아들여질 가능성이 낮다는 점을 인정합니다. Bitcoin 사용자 [5]. 2.2 proof-of-work 함수 Bitcoin 제작자 Satoshi Nakamoto는 다수결 의사 결정 알고리즘을 "oneCPU-one-vote"로 설명하고 proof-of-work에 CPU 제한 가격 책정 기능(이중 SHA-256)을 사용했습니다. 계획. 사용자는 단일 거래 내역 주문 [1]에 투표하므로 합리성과 이 프로세스의 일관성은 전체 시스템에 중요한 조건입니다. 이 모델의 보안에는 두 가지 단점이 있습니다. 첫째, 네트워크의 51%가 필요합니다. 채굴 능력은 정직한 사용자의 통제하에 있습니다. 둘째, 시스템의 진행(버그 수정, 보안 수정 등)을 위해서는 대다수의 사용자가 이를 지지하고 동의해야 합니다. 변경 사항(사용자가 지갑 소프트웨어를 업데이트할 때 발생) [6].마지막으로 동일한 투표 메커니즘은 [7] 일부 기능 구현에 대한 집단 여론 조사에도 사용됩니다. 이를 통해 우리는 proof-of-work에 의해 충족되어야 하는 속성을 추측할 수 있습니다. 가격 책정 기능. 그러한 기능은 네트워크 참가자가 중요한 정보를 가질 수 있도록 해서는 안 됩니다. 다른 참가자에 비해 이점이 있습니다. 일반 하드웨어와 높은 하드웨어 간의 패리티가 필요합니다. 맞춤형 장치 비용. 최근 예제 [8]에서 SHA-256 함수가 사용된 것을 볼 수 있습니다. Bitcoin 아키텍처에서는 마이닝이 더욱 효율적으로 진행됨에 따라 이 속성을 보유하지 않습니다. GPU 및 ASIC 장치를 고급 CPU와 비교합니다. 따라서 Bitcoin은 투표권 간의 큰 격차에 유리한 조건을 만듭니다. GPU 및 ASIC 소유자가 소유하고 있기 때문에 "1-CPU-1-투표" 원칙을 위반하므로 참가자 CPU 소유자와 비교할 때 훨씬 더 큰 투표권. 의 고전적인 예이다. 파레토 원칙은 시스템 참가자의 20%가 투표의 80% 이상을 통제한다는 것입니다. 그러한 불평등은 네트워크 보안과 관련이 없다고 주장할 수도 있습니다. 다수의 투표를 통제하는 소수의 참가자이지만 이들의 정직성은 중요한 참가자. 그러나 그러한 주장은 다소 결함이 있다. 참여자의 정직성보다는 값싼 전문 하드웨어가 등장할 가능성 위협을 가합니다. 이를 설명하기 위해 다음 예를 들어보겠습니다. 악의적인 가정을 해보자 개인은 값싼 채굴을 통해 자신의 광산 농장을 건설함으로써 상당한 채굴력을 얻습니다. 2 고유한 출처와 최종 수신자를 명확하게 추적합니다. 두 참가자가 서로 교환하더라도 간접적인 방법으로 자금을 조달할 때 적절하게 설계된 경로 탐색 방법을 통해 출처와 출처를 밝힐 수 있습니다. 최종 수신자. 또한 Bitcoin이 두 번째 속성을 충족하지 않는 것으로 의심됩니다. 일부 연구자 ([33, 35, 29, 31]) 주의 깊은 blockchain 분석을 통해 Bitcoin 네트워크 사용자 및 거래. 여러 가지 방법이 있지만 디[25]이 발행된 경우, 숨겨진 개인정보가 다수 추출될 수 있다고 의심됩니다. 공개 데이터베이스. Bitcoin은 위에 설명된 두 가지 속성을 충족하지 못하므로 다음과 같은 결론을 내릴 수 있습니다. 익명이 아닌 유사 익명 전자 현금 시스템입니다. 사용자의 개발 속도가 빨랐습니다. 이러한 단점을 해결하기 위한 솔루션입니다. 두 가지 직접적인 솔루션은 "세탁 서비스" [2]와 분산 방법의 개발 [3, 4]. 두 솔루션 모두 혼합이라는 아이디어를 기반으로 합니다. 여러 공개 거래를 중개 주소를 통해 전송합니다. 차례로 신뢰할 수 있는 제3자가 필요하다는 단점이 있습니다. 최근에는 I. Miers et al.에 의해 보다 창의적인 계획이 제안되었습니다. [28]: "제로코인". 제로코인 사용자가 다음을 수행할 수 있도록 하는 암호화 단방향 누산기와 영지식 증명을 활용합니다. 비트코인을 제로코인으로 "전환"하고 대신 익명의 소유권 증명을 사용하여 사용합니다. 명시적인 공개 키 기반 디지털 서명. 그러나 그러한 지식 증명에는 상수가 있습니다. 하지만 불편한 크기 - 약 30kb(현재의 Bitcoin 제한 기준)로 제안이 이루어집니다. 비실용적이다. 저자들은 이 프로토콜이 대다수의 사람들에 의해 받아들여질 가능성이 낮다는 점을 인정합니다. Bitcoin 사용자 [5]. 2.2 proof-of-work 함수 Bitcoin 제작자 Satoshi Nakamoto는 다수결 의사 결정 알고리즘을 "oneCPU-one-vote"로 설명하고 proof-of-work에 CPU 제한 가격 책정 기능(이중 SHA-256)을 사용했습니다. 계획. 사용자는 단일 거래 내역 주문 [1]에 투표하므로 합리성과 이 프로세스의 일관성은 전체 시스템에 중요한 조건입니다. 이 모델의 보안에는 두 가지 단점이 있습니다. 첫째, 네트워크의 51%가 필요합니다. 채굴 능력은 정직한 사용자의 통제하에 있습니다. 둘째, 시스템의 진행(버그 수정, 보안 수정 등)을 위해서는 대다수의 사용자가 이를 지지하고 동의해야 합니다. 변경 사항(사용자가 지갑 소프트웨어를 업데이트할 때 발생) [6].마지막으로 동일한 투표 메커니즘은 [7] 일부 기능 구현에 대한 집단 여론 조사에도 사용됩니다. 이를 통해 우리는 proof-of-work에 의해 충족되어야 하는 속성을 추측할 수 있습니다. 가격 책정 기능. 그러한 기능은 네트워크 참가자가 중요한 정보를 가질 수 있도록 해서는 안 됩니다. 다른 참가자에 비해 이점이 있습니다. 일반 하드웨어와 높은 하드웨어 간의 패리티가 필요합니다. 맞춤형 장치 비용. 최근 예제 [8]에서 SHA-256 함수가 사용된 것을 볼 수 있습니다. Bitcoin 아키텍처에서는 마이닝이 더욱 효율적으로 진행됨에 따라 이 속성을 보유하지 않습니다. GPU 및 ASIC 장치를 고급 CPU와 비교합니다. 따라서 Bitcoin은 투표권 간의 큰 격차에 유리한 조건을 만듭니다. GPU 및 ASIC 소유자가 소유하고 있기 때문에 "1-CPU-1-투표" 원칙을 위반하므로 참가자 CPU 소유자와 비교할 때 훨씬 더 큰 투표권. 의 고전적인 예이다. 파레토 원칙은 시스템 참가자의 20%가 투표의 80% 이상을 통제한다는 것입니다. 그러한 불평등은 네트워크 보안과 관련이 없다고 주장할 수도 있습니다. 다수의 투표를 통제하는 소수의 참가자이지만 이들의 정직성은 중요한 참가자. 그러나 그러한 주장은 다소 결함이 있다. 참여자의 정직성보다는 값싼 전문 하드웨어가 등장할 가능성 위협을 가합니다. 이를 설명하기 위해 다음 예를 들어보겠습니다. 악의적인 가정을 해보자 개인은 값싼 채굴을 통해 자신의 광산 농장을 건설함으로써 상당한 채굴력을 얻습니다. 2 4 아마도 모든 사용자가 항상 새 주소를 생성하여 자신의 익명성을 확보하는 데 도움이 된다면 받은 모든 지불에 대해(터무니없지만 기술적으로는 "올바른" 방법임) 그리고 모든 사용자가 절대 자금을 보내지 말라고 주장하여 다른 모든 사람의 익명성을 도왔다면 동일한 BTC 주소로 두 번 전송하면 Bitcoin은 여전히 상황에 따라만 통과합니다. 연결 불가 테스트. 왜? 소비자 데이터는 항상 사람들에 대한 놀라운 양을 파악하는 데 사용될 수 있습니다. 예를 들어 http://www.applieddatalabs.com/content/target-knows-it-shows을 참조하세요. 이제 20년 후의 미래를 상상해 보세요. 또한 Target이 몰랐을 수도 있다고 상상해 보세요. Target에서의 구매 습관에 대해 이야기했지만 그들은 모든 항목에 대해 blockchain을 채굴하고 있었습니다. 과거의 코인베이스 지갑으로 개인 구매 12년. 그들은 "야 친구 오늘 밤에 기침약 좀 사가는 게 좋을 것 같은데, 그러지 않을 거야"라고 말할 거예요. 내일은 괜찮아." 다자간 정렬이 올바르게 활용되는 경우에는 그렇지 않을 수 있습니다. 예를 들어 다음을 참조하세요.블로그 게시물: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ 나는 그것에 대한 수학을 완전히 확신하지는 못하지만... 한 번에 한 논문씩, 맞죠? 인용이 필요합니다. Zerocoin 프로토콜(독립형)은 부족할 수 있지만 Zerocash는 프로토콜은 1kb 크기의 트랜잭션을 구현한 것 같습니다. 해당 프로젝트는 다음에서 지원됩니다. 물론 미국과 이스라엘 군대도 마찬가지입니다. 그래서 그 견고함을 누가 알겠습니까? 다른 한편으로는 한편, 군대만큼 감독 없이 자금을 지출할 수 있기를 원하는 사람은 없습니다. http://zerocash-project.org/ 잘 모르겠습니다... 예를 들어 http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf을 참조하세요. 암호화폐 노트에서 암호화폐 개발자 Maurice Planck(가명으로 추정) 인용 포럼: "제로코인, 제로캐시. 이것은 가장 진보된 기술이라는 것을 인정해야 합니다. 응, 견적이야 위의 내용은 이전 버전의 프로토콜을 분석한 것입니다. 내가 아는 바로는 그렇지 않다. 288이지만 384바이트이지만 어쨌든 이것은 좋은 소식입니다. 그들은 SNARK라는 새로운 기술을 사용했는데, 여기에는 몇 가지 단점이 있습니다. 예를 들어, 서명을 생성하는 데 필요한 공개 매개변수의 대규모 초기 데이터베이스(1GB 이상) 트랜잭션을 생성하는 데 상당한 시간이 소요됩니다(1분 이상). 마지막으로 그들은 제가 논쟁의 여지가 있는 아이디어라고 언급한 젊은 암호화폐: https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. 목요일 2014년 4월 3일 오후 7:56 CPU에서 수행되는 기능으로 GPU, FPGA, ASIC에는 적합하지 않은 기능 계산. proof-of-work에 사용된 "퍼즐"은 가격 책정 함수, 비용 함수 또는 퍼즐 기능.
고유한 출처와 최종 수신자를 명확하게 추적합니다. 두 참가자가 서로 교환하더라도 간접적인 방법으로 자금을 조달할 때 적절하게 설계된 경로 탐색 방법을 통해 출처와 출처를 밝힐 수 있습니다. 최종 수신자. 또한 Bitcoin이 두 번째 속성을 충족하지 않는 것으로 의심됩니다. 일부 연구자 ([33, 35, 29, 31]) 주의 깊은 blockchain 분석을 통해 다음과 같은 연관성이 드러날 수 있다고 말했습니다. Bitcoin 네트워크 사용자 및 해당 거래. 여러 가지 방법이 있지만 [25]에서 숨겨진 개인 정보가 많이 추출될 수 있다고 의심됩니다. 공개 데이터베이스. Bitcoin은 위에 설명된 두 가지 속성을 충족하지 못하므로 다음과 같은 결론을 내릴 수 있습니다. 익명이 아닌 유사 익명 전자 현금 시스템입니다. 사용자의 개발 속도가 빨랐습니다. 이러한 단점을 해결하기 위한 솔루션입니다. 두 가지 직접적인 솔루션은 "세탁 서비스" [2]와 분산 방법의 개발 [3, 4]. 두 솔루션 모두 혼합이라는 아이디어를 기반으로 합니다. 여러 공개 거래를 중개 주소를 통해 전송합니다. 차례로 신뢰할 수 있는 제3자가 필요하다는 단점이 있습니다. 최근에는 I. Miers et al.에 의해 보다 창의적인 계획이 제안되었습니다. [28]: "제로코인". 제로코인 사용자가 다음을 수행할 수 있도록 하는 암호화 단방향 누산기와 영지식 증명을 활용합니다. 비트코인을 제로코인으로 "전환"하고 대신 익명의 소유권 증명을 사용하여 사용합니다. 명시적인 공개 키 기반 디지털 서명. 그러나 그러한 지식 증명에는 상수가 있습니다. 하지만 불편한 크기 - 약 30kb(오늘의 Bitcoin 제한 기준)로 인해 제안이 이루어집니다. 비실용적이다. 저자들은 이 프로토콜이 대다수의 사람들에 의해 받아들여질 가능성이 낮다는 점을 인정합니다. Bitcoin 사용자 [5]. 2.2 proof-of-work 함수 Bitcoin 제작자 Satoshi Nakamoto는 다수결 의사 결정 알고리즘을 "oneCPU-one-vote"로 설명하고 proof-of-work에 CPU 제한 가격 책정 기능(이중 SHA-256)을 사용했습니다. 계획. 사용자는 단일 거래 내역 주문 [1]에 투표하므로 합리성과 이 프로세스의 일관성은 전체 시스템에 중요한 조건입니다. 이 모델의 보안에는 두 가지 단점이 있습니다. 첫째, 네트워크의 51%가 필요합니다. 채굴 능력은 정직한 사용자의 통제하에 있습니다. 둘째, 시스템의 진행(버그 수정, 보안 수정 등)을 위해서는 대다수의 사용자가 이를 지지하고 동의해야 합니다. 변경 사항(사용자가 지갑 소프트웨어를 업데이트할 때 발생) [6].마지막으로 동일한 투표 메커니즘은 [7] 일부 기능 구현에 대한 집단 여론 조사에도 사용됩니다. 이를 통해 우리는 proof-of-work에 의해 충족되어야 하는 속성을 추측할 수 있습니다. 가격 책정 기능. 그러한 기능은 네트워크 참가자가 중요한 정보를 가질 수 있도록 해서는 안 됩니다. 다른 참가자에 비해 이점이 있습니다. 일반 하드웨어와 높은 하드웨어 간의 패리티가 필요합니다. 맞춤형 장치 비용. 최근 예제 [8]에서 SHA-256 함수가 사용된 것을 볼 수 있습니다. Bitcoin 아키텍처에서는 마이닝이 더욱 효율적으로 진행됨에 따라 이 속성을 보유하지 않습니다. GPU 및 ASIC 장치를 고급 CPU와 비교합니다. 따라서 Bitcoin은 투표권 간의 큰 격차에 유리한 조건을 만듭니다. GPU 및 ASIC 소유자가 소유하고 있기 때문에 "1-CPU-1-투표" 원칙을 위반하므로 참가자 CPU 소유자와 비교할 때 훨씬 더 큰 투표권. 의 고전적인 예이다. 파레토 원칙은 시스템 참가자의 20%가 투표의 80% 이상을 통제한다는 것입니다. 그러한 불평등은 네트워크 보안과 관련이 없다고 주장할 수도 있습니다. 다수의 투표를 통제하는 소수의 참가자이지만 이들의 정직성은 중요한 참가자. 그러나 그러한 주장은 다소 결함이 있다. 참여자의 정직성보다는 값싼 전문 하드웨어가 등장할 가능성 위협을 가합니다. 이를 설명하기 위해 다음 예를 들어보겠습니다. 악의적인 가정을 해보자 개인은 값싼 채굴을 통해 자신의 광산 농장을 건설함으로써 상당한 채굴력을 얻습니다. 2 고유한 출처와 최종 수신자를 명확하게 추적합니다. 두 참가자가 서로 교환하더라도 간접적인 방법으로 자금을 조달할 때 적절하게 설계된 경로 탐색 방법을 통해 출처와 출처를 밝힐 수 있습니다. 최종 수신자. 또한 Bitcoin이 두 번째 속성을 충족하지 않는 것으로 의심됩니다. 일부 연구자 ([33, 35, 29, 31]) 주의 깊은 blockchain 분석을 통해 다음과 같은 연관성이 드러날 수 있다고 말했습니다. Bitcoin 네트워크 사용자 및 해당 거래. 여러 가지 방법이 있지만 디[25]이 발행된 경우, 숨겨진 개인정보가 다수 추출될 수 있다고 의심됩니다. 공개 데이터베이스. Bitcoin은 위에 설명된 두 가지 속성을 충족하지 못하므로 다음과 같은 결론을 내릴 수 있습니다. 익명이 아닌 유사 익명 전자 현금 시스템입니다. 사용자의 개발 속도가 빨랐습니다. 이러한 단점을 해결하기 위한 솔루션입니다. 두 가지 직접적인 솔루션은 "세탁 서비스" [2]와 분산 방법의 개발 [3, 4]. 두 솔루션 모두 혼합이라는 아이디어를 기반으로 합니다. 여러 공개 거래를 중개 주소를 통해 전송합니다. 차례로 신뢰할 수 있는 제3자가 필요하다는 단점이 있습니다. 최근에는 I. Miers et al.에 의해 보다 창의적인 계획이 제안되었습니다. [28]: "제로코인". 제로코인 사용자가 다음을 수행할 수 있도록 하는 암호화 단방향 누산기와 영지식 증명을 활용합니다. 비트코인을 제로코인으로 "전환"하고 대신 익명의 소유권 증명을 사용하여 사용합니다. 명시적인 공개 키 기반 디지털 서명. 그러나 그러한 지식 증명에는 상수가 있습니다. 하지만 불편한 크기 - 약 30kb(오늘의 Bitcoin 제한 기준)로 인해 제안이 이루어집니다. 비실용적이다. 저자들은 이 프로토콜이 대다수의 사람들에 의해 받아들여질 가능성이 낮다는 점을 인정합니다. Bitcoin 사용자 [5]. 2.2 proof-of-work 함수 Bitcoin 제작자 Satoshi Nakamoto는 다수결 의사 결정 알고리즘을 "oneCPU-one-vote"로 설명하고 proof-of-work에 CPU 제한 가격 책정 기능(이중 SHA-256)을 사용했습니다. 계획. 사용자는 단일 거래 내역 주문 [1]에 투표하므로 합리성과 이 프로세스의 일관성은 전체 시스템에 중요한 조건입니다. 이 모델의 보안에는 두 가지 단점이 있습니다. 첫째, 네트워크의 51%가 필요합니다. 채굴 능력은 정직한 사용자의 통제하에 있습니다. 둘째, 시스템의 진행(버그 수정, 보안 수정 등)을 위해서는 대다수의 사용자가 이를 지지하고 동의해야 합니다. 변경 사항(사용자가 지갑 소프트웨어를 업데이트할 때 발생) [6].마지막으로 동일한 투표 메커니즘은 [7] 일부 기능 구현에 대한 집단 여론 조사에도 사용됩니다. 이를 통해 우리는 proof-of-work에 의해 충족되어야 하는 속성을 추측할 수 있습니다. 가격 책정 기능. 그러한 기능은 네트워크 참가자가 중요한 정보를 가질 수 있도록 해서는 안 됩니다. 다른 참가자에 비해 이점이 있습니다. 일반 하드웨어와 높은 하드웨어 간의 패리티가 필요합니다. 맞춤형 장치 비용. 최근 예제 [8]에서 SHA-256 함수가 사용된 것을 볼 수 있습니다. Bitcoin 아키텍처에서는 마이닝이 더욱 효율적으로 진행됨에 따라 이 속성을 보유하지 않습니다. GPU 및 ASIC 장치를 고급 CPU와 비교합니다. 따라서 Bitcoin은 투표권 간의 큰 격차에 유리한 조건을 만듭니다. GPU 및 ASIC 소유자가 소유하고 있기 때문에 "1-CPU-1-투표" 원칙을 위반하므로 참가자 CPU 소유자와 비교할 때 훨씬 더 큰 투표권. 의 고전적인 예이다. 파레토 원칙은 시스템 참가자의 20%가 투표의 80% 이상을 통제한다는 것입니다. 그러한 불평등은 네트워크 보안과 관련이 없다고 주장할 수도 있습니다. 다수의 투표를 통제하는 소수의 참가자이지만 이들의 정직성은 중요한 참가자. 그러나 그러한 주장은 다소 결함이 있다. 참여자의 정직성보다는 값싼 전문 하드웨어가 등장할 가능성 위협을 가합니다. 이를 설명하기 위해 다음 예를 들어보겠습니다. 악의적인 가정을 해보자 개인은 값싼 채굴을 통해 자신의 광산 농장을 건설함으로써 상당한 채굴력을 얻습니다. 2 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.
크립토노트 기술
이제 Bitcoin 기술의 한계를 다루었으므로 다음에 집중하겠습니다. 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:
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
- 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
-
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.
-
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
- 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
추적 불가능한 거래
이 섹션에서는 추적 불가능성과 두 가지 모두를 만족하는 완전 익명 거래 방식을 제안합니다.
및 연결 해제 조건. 우리 솔루션의 중요한 특징은 자율성입니다.
거래를 수행하기 위해 다른 사용자나 신뢰할 수 있는 제3자와 협력할 필요가 없습니다.
따라서 각 참가자는 독립적으로 커버 트래픽을 생성합니다.
4.1
문헌 검토
우리의 체계는 그룹 서명이라는 암호화 기본 요소에 의존합니다. 처음 발표한 사람
D. Chaum 및 E. van Heyst [19]를 사용하면 사용자가 그룹을 대신하여 메시지에 서명할 수 있습니다.
메시지에 서명한 후 사용자는 자신의 단일 공개가 아닌 (확인 목적으로) 제공합니다.
1이것은 소위 "소프트 제한", 즉 새 블록 생성에 대한 참조 클라이언트 제한입니다. 하드 최대값
가능한 블록 크기는 1MB였습니다.
4
필요한 경우 주요 단점이 발생합니다. 아쉽게도 언제 출시될지 예측하기 어렵습니다.
상수를 변경해야 할 수도 있고 이를 교체하면 끔찍한 결과를 초래할 수도 있습니다.
비참한 결과를 초래하는 하드코딩된 제한 변경의 좋은 예는 블록입니다.
크기 제한이 250kb1로 설정되었습니다. 이 한도는 약 10000개의 표준 트랜잭션을 보유하는 데 충분했습니다. 에서
2013년 초, 이 한도에 거의 도달했고, 이를 늘리기로 합의했습니다.
한계. 변경 사항은 지갑 버전 0.8에서 구현되었으며 24블록 체인 분할로 끝났습니다.
성공적인 이중 지출 공격 [9]. 버그는 Bitcoin 프로토콜에는 없었지만
오히려 데이터베이스 엔진에서는 간단한 스트레스 테스트를 통해 쉽게 발견할 수 있었습니다.
인위적으로 도입된 블록 크기 제한이 없습니다.
상수는 중앙집중화 지점의 역할도 합니다.
P2P 성격에도 불구하고
Bitcoin, 압도적 다수의 노드가 개발한 공식 참조 클라이언트 [10]을 사용합니다.
소수의 사람들. 이 그룹은 프로토콜 변경을 구현하기로 결정합니다.
그리고 대부분의 사람들은 "정확성"에 관계없이 이러한 변경 사항을 받아들입니다. 일부 결정으로 인해 발생
열띤 토론을 벌이고 심지어 보이콧을 요구하기도 합니다 [11]. 이는 커뮤니티와
개발자는 몇 가지 중요한 사항에 동의하지 않을 수 있습니다. 따라서 프로토콜을 갖는 것이 논리적인 것 같습니다.
이러한 문제를 방지하기 위한 가능한 방법으로 사용자가 구성할 수 있고 자체 조정 가능한 변수를 사용합니다.
2.5
부피가 큰 스크립트
Bitcoin의 스크립팅 시스템은 무겁고 복잡한 기능입니다. 잠재적으로 다음을 만들 수 있습니다.
정교한 거래 [12]이지만 보안 문제로 인해 일부 기능이 비활성화되어 있으며
일부는 한 번도 사용된 적이 없습니다([13]). 스크립트(발신자 및 수신자 부분 모두 포함)
Bitcoin에서 가장 인기 있는 거래는 다음과 같습니다.
키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타정보(또는 [24] 측면에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 우리의 기본 서명 알고리즘으로 우리는 개발되고 개발된 빠른 체계 EdDSA를 사용하기로 선택했습니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 향후 Bitcoin에도 우리의 방식을 적용할 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 엔터티와 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타 정보(또는 [24] 측면에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 기본 서명 알고리즘으로 우리는 다음을 선택했습니다.e 개발된 빠른 구성표 EdDSA를 사용합니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 향후에는 Bitcoin에도 우리 계획을 적용할 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 항목과 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 8 링 서명은 다음과 같이 작동합니다. Alex는 자신의 고용주에 대한 메시지를 WikiLeaks에 유출하려고 합니다. 회사의 모든 직원은 개인/공개 키 쌍(Ri, Ui)을 가지고 있습니다. 그녀는 작곡을 한다 입력이 그녀의 메시지로 설정된 그녀의 서명, m, 그녀의 개인 키, Ri 및 EVERYBODY의 공개 키(Ui;i=1...n). 개인 키를 모르더라도 누구나 쉽게 확인할 수 있습니다. 일부 쌍(Rj, Uj)이 서명을 구성하는 데 사용되었을 것입니다... 일하는 사람 Alex의 고용주에게는... 하지만 그것이 어느 회사인지 알아내는 것은 본질적으로 무작위 추측입니다. 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 여기에 설명된 연결 가능한 링 서명은 "연결 해제 가능"과 반대되는 개념입니다. 위에서 설명한. 여기서는 두 개의 메시지를 가로채서 동일한지 여부를 확인할 수 있습니다. 당사자가 보낸 것입니다. 하지만 그 당사자가 누구인지는 아직 확인할 수 없습니다. 는 Cryptonote를 구성하는 데 사용된 "연결 불가능"의 정의는 우리가 여부를 결정할 수 없음을 의미합니다. 같은 당사자가 그것을 받고 있습니다. 따라서 여기서 우리가 실제로 알고 있는 것은 네 가지 일이 진행되고 있다는 것입니다. 시스템은 연결 가능하거나 연결 불가능, 발신인 여부를 판단할 수 있는지 여부에 따라 다름 두 메시지가 동일합니다(익명성 취소가 필요한지 여부에 관계 없음). 그리고 시스템은 연결 해제가 가능한지 여부에 따라 연결 해제되거나 연결 해제되지 않을 수 있습니다. 두 메시지의 수신자가 동일한지 여부를 확인합니다(여부에 관계 없음). 이를 위해서는 익명성을 취소해야 합니다.) 이 끔찍한 용어 때문에 나를 비난하지 마십시오. 그래프 이론가들은 아마도 기뻐요. 여러분 중에는 "수신자 연결 가능"과 "발신자 연결 가능"이 더 편할 수도 있습니다. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 이 내용을 읽어보니 정말 말도 안 되는 기능인 것 같았습니다. 그런 다음 그것이 다음의 기능일 수 있다는 것을 읽었습니다. 전자투표를 했는데 그게 말이 되는 것 같았어요. 그런 관점에서 보면 좀 멋지네요. 하지만 나는 추적 가능한 링 서명을 의도적으로 구현하는 것에 대해 완전히 확신하지 못합니다. http://search.ieice.org/bin/summary.php?id=e95-a_1_151
키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타정보(또는 [24]의 관점에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 우리의 기본 서명 알고리즘으로 우리는 개발되고 개발된 빠른 체계 EdDSA를 사용하기로 선택했습니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 우리의 방식은 향후 Bitcoin에도 적용될 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 항목과 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타정보(또는 [24] 측면에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 기본 서명 알고리즘으로 우리는 다음을 선택했습니다.e 개발된 빠른 구성표 EdDSA를 사용합니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 향후 Bitcoin에도 우리 계획을 적용할 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 항목과 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 9 이 백서의 작성자인 맙소사, 이 내용을 더 잘 표현했을 수도 있겠네요! 다음과 같이 말해보자 직원 소유 회사는 특정 신규 인수 여부에 대해 투표를 원합니다. 자산이며 Alex와 Brenda는 모두 직원입니다. 회사는 각 직원에게 "나는 발의안 A에 찬성 투표합니다!"와 같은 메시지 메타정보 "문제"가 있는 [PROP A] 제안을 지지하는 경우 추적 가능한 링 서명으로 서명하도록 요청합니다. 전통적인 링 서명을 사용하면 부정직한 직원이 메시지에 여러 번 서명할 수 있습니다. 아마도 원하는 만큼 여러 번 투표하기 위해 다른 nonce을 사용했을 것입니다. 다른 한편으로는 추적 가능한 링 서명 체계에서 Alex는 투표에 참여하고 그녀의 개인 키는 문제 [PROP A]에 사용되었습니다. Alex가 "저, Brenda가 승인합니다"와 같은 메시지에 서명하려고 하면 제안 A!" Brenda를 "프레임"하고 두 번 투표하려면 이 새 메시지에도 문제가 있습니다. [발의안 A]. Alex의 개인 키는 이미 [PROP A] 문제를 해결했으므로 Alex의 신원은 사기로 즉시 밝혀집니다. 솔직히 말해서 꽤 멋지네요! 암호화는 투표 평등을 강요했습니다. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 이 문서는 흥미롭습니다. 기본적으로 임시 링 서명을 생성하지만 다른 참가자의 동의. 서명의 구조는 다를 수 있습니다. 난 파본 적 없어 깊고 안전한지 확인하지 못했습니다. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai 임시 그룹 서명은 다음과 같습니다. 그룹이 없는 그룹 시그니처인 링 시그니처 중앙 집중화는 없지만 임시 그룹의 구성원이 다음과 같이 주장할 수 있도록 허용합니다. 그룹을 대신하여 익명 서명을 발행하지 않았습니다. http://link.springer.com/chapter/10.1007/11908739_9 내 이해로는 이것은 정확하지 않습니다. 그리고 내 이해는 다음과 같이 바뀔 것입니다. 저는 이 프로젝트에 더 깊이 빠져들었습니다. 하지만 제가 이해한 바에 따르면 계층 구조는 다음과 같습니다. 그룹 서명: 그룹 관리자는 추적성과 구성원 추가 또는 제거 기능을 제어합니다. 서명자이기 때문에. 링시그(Ring sigs): 그룹 매니저 없이 임의로 그룹을 구성하는 것. 익명성 철회는 없습니다. 특정 서명에서 자신을 부인할 방법이 없습니다. 추적 가능하고 연결 가능한 링 포함 서명, 익명성은 어느 정도 확장 가능합니다. 임시 그룹 서명: 링 서명과 유사하지만 구성원은 자신이 생성하지 않았음을 증명할 수 있습니다. 특정 서명. 이는 그룹의 누구나 서명을 생성할 수 있는 경우 중요합니다. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Fujisaki와 Suzuki의 알고리즘은 나중에 저자가 일회성을 제공하기 위해 조정했습니다. 그래서 우리는 새로운 알고리즘과 함께 Fujisaki와 Suzuki의 알고리즘을 동시에 분석할 것입니다. 여기에서 검토하는 것보다
키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타정보(또는 [24]의 관점에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 우리의 기본 서명 알고리즘으로 우리는 개발되고 개발된 빠른 체계 EdDSA를 사용하기로 선택했습니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 향후에는 Bitcoin에도 우리의 방식을 적용할 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 엔터티와 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타정보(또는 [24] 측면에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 기본 서명 알고리즘으로 우리는 다음을 선택했습니다.e 개발된 빠른 구성표 EdDSA를 사용합니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 향후 Bitcoin에도 우리 계획을 적용할 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 항목과 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 10 "연결 가능한 링 서명"이라는 의미에서 연결 가능성은 소스가 누구인지 밝히지 않고도 두 개의 나가는 트랜잭션이 동일한 소스에서 왔는지 알 수 있음을 의미합니다. 작성자가 약해졌네요 (a) 프라이버시를 보호하면서도 (b) 개인 키를 사용하여 모든 거래를 찾아낼 수 있는 연결성 두 번째로 유효하지 않습니다. 좋아요, 이것은 사건 순서에 관한 질문입니다. 다음 시나리오를 고려해보세요. 내 채굴 컴퓨터는 현재 blockchain을 갖게 되며, 호출하는 자체 트랜잭션 블록을 갖게 됩니다. 적법한 경우 proof-of-work 퍼즐의 해당 블록에 대해 작업할 것이며 다음 블록에 추가될 보류 중인 거래 목록입니다. 그것은 또한 새로운 것을 보낼 것입니다 보류 중인 트랜잭션 풀에 트랜잭션을 추가합니다. 다음 블록을 해결하지 못하더라도 다른 사람이 알고 있다면 나는 blockchain의 업데이트된 사본을 받습니다. 제가 작업하던 블록과 내 보류 중인 거래 목록에는 둘 다 현재 통합된 일부 거래가 있을 수 있습니다. blockchain에. 보류 중인 블록을 풀고 이를 보류 중인 거래 목록과 결합하여 호출합니다. 내 보류 중인 거래 풀입니다. 현재 blockchain에 공식적으로 있는 항목을 모두 제거하세요. 이제 어떻게 해야 할까요? 먼저 "모든 이중 지출을 제거"해야 합니까? 다른 한편으로는 목록을 검색하여 각 개인 키가 아직 등록되지 않았는지 확인해야 할까요? 사용되었으며 내 목록에 이미 사용된 경우 첫 번째 사본을 먼저 받은 것이므로 더 이상의 사본은 불법입니다. 따라서 나는 첫 번째 인스턴스 이후의 모든 인스턴스를 간단히 삭제합니다. 동일한 개인 키의. 대수 기하학은 결코 나의 장점이 아니었습니다. http://en.wikipedia.org/wiki/EdDSA 이런 속도라니, 와우. 이것은 승리를 위한 대수 기하학입니다. 아무것도 알 수 없을 것 같아 그것에 대해. 문제가 있든 없든 개별 로그는 매우 빨라지고 있습니다. 그리고 양자 컴퓨터는 그것을 먹습니다 아침 식사를 위해. http://link.springer.com/article/10.1007/s13389-012-0027-1 이게 정말 중요한 숫자가 되는데, 어떻게 그렇게 되었는지에 대한 설명이나 인용이 없습니다. 선택되었습니다. 단순히 하나의 알려진 큰 소수를 선택하는 것은 괜찮지만, 알려진 소수가 있다면 이 큰 소수에 관한 사실은 우리의 선택에 영향을 미칠 수 있습니다. 크립토노트의 다양한 변종 다른 값을 선택할 수 있습니다. 하지만 이 논문에서는 그것이 어떻게 이루어지는지에 대한 논의가 없습니다. 선택은 5페이지에 나열된 다른 전역 매개변수의 선택에 영향을 미칩니다. 이 문서에는 매개변수 값 선택에 대한 섹션이 필요합니다.
개인 사용자 키는 두 개의 서로 다른 개인 EC 키의 쌍(a, b)입니다. 추적 키는 개인 및 공개 ec-키의 쌍(a, B)입니다(여기서 B = bG 및 a ̸= b). 공개 사용자 키는 (a, b)에서 파생된 두 공개 EC 키의 쌍 (A, B)입니다. 표준 주소는 인간에게 친숙한 문자열로 제공되는 공개 사용자 키를 나타냅니다. 오류 수정 포함; 잘린 주소는 주어진 공개 사용자 키의 후반부(B 지점)를 나타냅니다. 오류 수정을 통해 인간 친화적인 문자열로 변환됩니다. 거래 구조는 Bitcoin의 구조와 유사합니다. 모든 사용자가 선택할 수 있습니다. 여러 개의 독립적인 입금(거래 출력)에 해당하는 서명을 합니다. 개인 키를 다른 목적지로 보냅니다. 사용자가 고유한 개인 키와 공개 키를 소유하는 Bitcoin 모델과 달리 제안된 모델은 발신자가 수신자의 주소를 기반으로 일회성 공개 키를 생성하고 임의의 데이터. 이러한 의미에서 동일한 수신자에게 들어오는 거래는 다음으로 전송됩니다. 일회성 공개 키(고유 주소에 직접 연결되지 않음)이며 수신자만 복구할 수 있습니다. (그의 고유한 개인 키를 사용하여) 그의 자금을 상환하기 위한 해당 개인 부분. 수신자는 다음을 수행할 수 있습니다. 링 서명을 사용하여 자금을 지출하고 소유권과 실제 지출을 익명으로 유지합니다. 프로토콜의 세부 사항은 다음 하위 섹션에서 설명됩니다. 4.3 연결할 수 없는 결제 클래식 Bitcoin 주소는 일단 게시되면 수신되는 주소의 명확한 식별자가 됩니다. 이를 서로 연결하고 수신자의 가명과 연결합니다. 누군가가 원한다면 "연결되지 않은" 거래를 받은 경우 개인 채널을 통해 보낸 사람에게 자신의 주소를 전달해야 합니다. 동일한 소유자의 소유임을 입증할 수 없는 다른 거래를 수신하려는 경우 그는 모든 다른 주소를 생성해야 하며 절대 자신의 가명으로 게시하지 않아야 합니다. 공개 비공개 앨리스 캐롤 Bob의 주소 1 Bob의 주소 2 밥의 열쇠 1 밥의 열쇠 2 밥 그림 2. 전통적인 Bitcoin 키/트랜잭션 모델. 우리는 사용자가 단일 주소를 게시하고 무조건 수신할 수 있는 솔루션을 제안합니다. 연결할 수 없는 결제. 각 CryptoNote 출력의 대상(기본적으로)은 공개 키입니다. 수신자의 주소와 발신자의 임의 데이터에서 파생됩니다. Bitcoin에 대한 주요 이점 모든 대상 키는 기본적으로 고유합니다(발신자가 각각에 대해 동일한 데이터를 사용하지 않는 한). 동일한 수신자에게 자신의 거래를 보냅니다). 따라서 "주소 재사용"과 같은 문제는 없습니다. 설계되었으며 어떤 관찰자도 거래가 특정 주소나 링크로 전송되었는지 확인할 수 없습니다. 두 개의 주소를 함께 사용합니다. 6 개인 사용자 키는 두 개의 서로 다른 개인 EC 키의 쌍(a, b)입니다. 추적 키는 개인 및 공개 ec-키의 쌍(a, B)입니다(여기서 B = bG 및 a ̸= b). 공개 사용자 키는 (a, b)에서 파생된 두 공개 EC 키의 쌍 (A, B)입니다. 표준 주소는 인간에게 친숙한 문자열로 제공되는 공개 사용자 키를 나타냅니다. 오류 수정 포함; 잘린 주소는 주어진 공개 사용자 키의 후반부(B 지점)를 나타냅니다. 오류 수정을 통해 인간 친화적인 문자열로 변환됩니다. 거래 구조는 Bitcoin의 구조와 유사합니다. 모든 사용자가 선택할 수 있습니다. 여러 개의 독립적인 입금(거래 출력)에 해당하는 서명을 합니다. 개인 키를 다른 목적지로 보냅니다. 사용자가 고유한 개인 키와 공개 키를 소유하는 Bitcoin의 모델과 달리 제안된 모델은 발신자가 수신자의 주소를 기반으로 일회성 공개 키를 생성하고 임의의 데이터. 이러한 의미에서 동일한 수신자에게 들어오는 거래는 다음으로 전송됩니다. 일회성 공개 키(고유 주소에 직접 연결되지 않음)이며 수신자만 복구할 수 있습니다. (그의 고유한 개인 키를 사용하여) 그의 자금을 상환하기 위한 해당 개인 부분. 수신자는 다음을 수행할 수 있습니다. 링 서명을 사용하여 자금을 지출하고 소유권과 실제 지출을 익명으로 유지합니다. 프로토콜의 세부 사항은 다음 하위 섹션에서 설명됩니다. 4.3 연결할 수 없는 결제 클래식 Bitcoin 주소는 일단 게시되면 수신되는 주소의 명확한 식별자가 됩니다. 이를 서로 연결하고 수신자의 가명과 연결합니다. 누군가가 원한다면 "연결되지 않은" 거래를 받은 경우 개인 채널을 통해 보낸 사람에게 자신의 주소를 전달해야 합니다. 동일한 소유자의 소유임을 입증할 수 없는 다른 거래를 수신하려는 경우 그는 모든 다른 주소를 생성해야 하며 절대 자신의 가명으로 게시하지 않아야 합니다. 공개 비공개 앨리스 캐롤 Bob의 주소 1 Bob의 주소 2 밥의 열쇠 1 밥의 열쇠 2 밥 그림 2. 기존 Bitcoin 키/트랜잭션 모드엘자. 우리는 사용자가 단일 주소를 게시하고 무조건 수신할 수 있는 솔루션을 제안합니다. 연결할 수 없는 결제. 각 CryptoNote 출력의 대상(기본적으로)은 공개 키입니다. 수신자의 주소와 발신자의 임의 데이터에서 파생됩니다. Bitcoin에 대한 주요 이점 모든 대상 키는 기본적으로 고유합니다(발신자가 각각에 대해 동일한 데이터를 사용하지 않는 한). 동일한 수신자에게 자신의 거래를 보냅니다). 따라서 "주소 재사용"과 같은 문제는 없습니다. 설계되었으며 어떤 관찰자도 거래가 특정 주소나 링크로 전송되었는지 확인할 수 없습니다. 두 개의 주소를 함께 사용합니다. 6 11 따라서 이것은 Bitcoin와 비슷하지만 수신자만 사용할 수 있는 무한한 익명의 사서함이 있습니다. 링 서명만큼 익명인 개인 키를 생성할 수 있습니다. Bitcoin은 이런 방식으로 작동합니다. Alex가 Frank로부터 방금 받은 지갑에 0.112 Bitcoin이 있다면 실제로 서명이 있는 것입니다. 메시지 "나, [FRANK]는 0.112 Bitcoin을 [alex] + H0 + N0으로 보냅니다." 여기서 1) Frank가 서명했습니다. 2) Frank가 Alex의 공개 키로 메시지에 서명했습니다. key, [alex], 3) Frank는 비트코인 역사의 일부 형태를 포함했습니다. H0, 4) Frank nonce, N0이라는 임의의 데이터 비트가 포함되어 있습니다. Alex가 Charlene에게 0.011 Bitcoin를 보내고 싶다면 그녀는 Frank의 메시지를 받게 될 것입니다. 이를 H1으로 설정하고 두 개의 메시지에 서명합니다. 하나는 거래용이고 다른 하나는 변경용입니다. H1= "나, [FRANK], 0.112 Bitcoin을 [alex] + H0 + N으로 보냅니다." "나, [ALEX], 0.011 Bitcoin을 [alex]로 보냅니다. [charlene] + H1 + N1" "I, [ALEX]는 [alex] + H1 + N2에 대한 변경으로 0.101 Bitcoin을 보냅니다." Alex는 자신의 개인 키 [ALEX]로 두 메시지에 모두 서명합니다. 첫 번째 메시지는 Charlene의 메시지입니다. 공개 키 [charlene], Alex의 공개 키 [alex]가 포함된 두 번째 메시지, 기록과 일부 무작위로 생성된 nonces N1 및 N2가 적절하게 생성됩니다. Cryptonote는 다음과 같이 작동합니다. Alex가 방금 Frank로부터 받은 지갑에 0.112 Cryptonote가 있다면 실제로 서명된 0.112 암호화폐가 있는 것입니다. "나 [임시 그룹에 속한 사람]은 [일회성 주소] + H0으로 0.112 크립토노트를 보냅니다. + N0." Alex는 자신의 개인 키 [ALEX]를 확인하여 이것이 자신의 돈이라는 것을 발견했습니다. 전달되는 모든 메시지에 대한 [일회성 주소]이며, 그녀가 그것을 사용하고 싶다면 그렇게 합니다. 다음 방법. 그녀는 돈을 받을 사람을 선택합니다. 아마도 Charlene이 드론 공격에 투표하기 시작했을 것입니다. Alex는 대신 Brenda에게 돈을 보내고 싶어합니다. 그래서 Alex는 Brenda의 공개 키인 [brenda]를 찾아봅니다. 그리고 자신의 개인 키인 [ALEX]를 사용하여 일회용 주소 [ALEX+brenda]를 생성합니다. 그녀 그런 다음 암호화폐 사용자 네트워크에서 임의의 컬렉션 C를 선택하고 그녀는 구성합니다. 이 임시 그룹의 링 서명입니다. 우리는 기록을 이전 메시지로 설정하고 추가합니다. nonces, 평소대로 진행하시겠습니까? H1 = "나 [임시 그룹의 누군가]는 [일회성 주소] + H0로 0.112 암호화폐를 보냅니다. + N0." "나 [컬렉션 C의 누군가]는 [ALEX+brenda에서 만든 일회용 주소] + H1 + N1로 0.011 암호화폐를 보냅니다." "나 [컬렉션 C의 누군가]는 [ALEX+alex에서 만든 일회용 주소] + H1 + N2로 변경 사항으로 0.101 암호화폐를 보냅니다." 이제 Alex와 Brenda는 수신되는 모든 메시지에서 다음과 같은 일회성 주소를 검색합니다. 해당 키를 사용하여 생성되었습니다. 만약 그들이 뭔가를 발견했다면, 그 메시지는 그들만의 새로운 메시지입니다. 암호화폐! 그럼에도 불구하고 거래는 여전히 blockchain에 도달합니다. 해당 주소로 코인이 들어오면 범죄자, 정치 기부자, 위원회 및 계좌에서 발송되는 것으로 알려져 있습니다. 엄격한 예산(예: 횡령)이 있거나 해당 코인의 새로운 소유자가 실수를 한 경우 그리고 이 코인을 그가 소유한 것으로 알려진 코인과 함께 공통 주소, 즉 익명 지그로 보냅니다. 비트코인에 있어요.
개인 사용자 키는 두 개의 서로 다른 개인 EC 키의 쌍(a, b)입니다. 추적 키는 개인 및 공개 ec-키의 쌍(a, B)입니다(여기서 B = bG 및 a ̸= b). 공개 사용자 키는 (a, b)에서 파생된 두 공개 EC 키의 쌍 (A, B)입니다. 표준 주소는 인간에게 친숙한 문자열로 제공되는 공개 사용자 키를 나타냅니다. 오류 수정 포함; 잘린 주소는 주어진 공개 사용자 키의 후반부(B 지점)를 나타냅니다. 오류 수정을 통해 인간 친화적인 문자열로 변환됩니다. 거래 구조는 Bitcoin의 구조와 유사합니다. 모든 사용자가 선택할 수 있습니다. 여러 개의 독립적인 입금(거래 출력)에 해당하는 서명을 합니다. 개인 키를 다른 목적지로 보냅니다. 사용자가 고유한 개인 키와 공개 키를 소유하는 Bitcoin 모델과 달리 제안된 모델은 발신자가 수신자의 주소를 기반으로 일회성 공개 키를 생성하고 임의의 데이터. 이러한 의미에서 동일한 수신자에게 들어오는 거래는 다음으로 전송됩니다. 일회성 공개 키(고유 주소에 직접 연결되지 않음)이며 수신자만 복구할 수 있습니다. (그의 고유한 개인 키를 사용하여) 그의 자금을 상환하기 위한 해당 개인 부분. 수신자는 다음을 수행할 수 있습니다. 링 서명을 사용하여 자금을 지출하고 소유권과 실제 지출을 익명으로 유지합니다. 프로토콜의 세부 사항은 다음 하위 섹션에서 설명됩니다. 4.3 연결할 수 없는 결제 클래식 Bitcoin 주소는 일단 게시되면 수신에 대한 명확한 식별자가 됩니다. 이를 서로 연결하고 수신자의 가명과 연결합니다. 누군가가 원한다면 "연결되지 않은" 거래를 받은 경우 개인 채널을 통해 보낸 사람에게 자신의 주소를 전달해야 합니다. 동일한 소유자의 소유임을 입증할 수 없는 다른 거래를 수신하려는 경우 그는 모든 다른 주소를 생성해야 하며 절대 자신의 가명으로 게시하지 않아야 합니다. 공개 비공개 앨리스 캐롤 Bob의 주소 1 Bob의 주소 2 밥의 열쇠 1 밥의 열쇠 2 밥 그림 2. 전통적인 Bitcoin 키/트랜잭션 모델. 우리는 사용자가 단일 주소를 게시하고 무조건 수신할 수 있는 솔루션을 제안합니다. 연결할 수 없는 결제. 각 CryptoNote 출력의 대상(기본적으로)은 공개 키입니다. 수신자의 주소와 발신자의 임의 데이터에서 파생됩니다. Bitcoin에 대한 주요 이점 모든 대상 키는 기본적으로 고유합니다(발신자가 각각에 대해 동일한 데이터를 사용하지 않는 한). 동일한 수신자에게 자신의 거래를 보냅니다). 따라서 "주소 재사용"과 같은 문제는 없습니다. 설계되었으며 어떤 관찰자도 거래가 특정 주소나 링크로 전송되었는지 확인할 수 없습니다. 두 개의 주소를 함께 사용합니다. 6 개인 사용자 키는 두 개의 서로 다른 개인 EC 키의 쌍(a, b)입니다. 추적 키는 개인 및 공개 ec-키의 쌍(a, B)입니다(여기서 B = bG 및 a ̸= b). 공개 사용자 키는 (a, b)에서 파생된 두 공개 EC 키의 쌍 (A, B)입니다. 표준 주소는 인간에게 친숙한 문자열로 제공되는 공개 사용자 키를 나타냅니다. 오류 수정 포함; 잘린 주소는 주어진 공개 사용자 키의 후반부(B 지점)를 나타냅니다. 오류 수정을 통해 인간 친화적인 문자열로 변환됩니다. 거래 구조는 Bitcoin의 구조와 유사합니다. 모든 사용자가 선택할 수 있습니다. 여러 개의 독립적인 입금(거래 출력)에 해당하는 서명을 합니다. 개인 키를 다른 목적지로 보냅니다. 사용자가 고유한 개인 키와 공개 키를 소유하는 Bitcoin의 모델과 달리 제안된 모델은 발신자가 수신자의 주소를 기반으로 일회성 공개 키를 생성하고 임의의 데이터. 이러한 의미에서 동일한 수신자에게 들어오는 거래는 다음으로 전송됩니다. 일회성 공개 키(고유 주소에 직접 연결되지 않음)이며 수신자만 복구할 수 있습니다. (그의 고유한 개인 키를 사용하여) 그의 자금을 상환하기 위한 해당 개인 부분. 수신자는 다음을 수행할 수 있습니다. 링 서명을 사용하여 자금을 지출하고 소유권과 실제 지출을 익명으로 유지합니다. 프로토콜의 세부 사항은 다음 하위 섹션에서 설명됩니다. 4.3 연결할 수 없는 결제 클래식 Bitcoin 주소는 일단 게시되면 수신되는 주소의 명확한 식별자가 됩니다. 이를 서로 연결하고 수신자의 가명과 연결합니다. 누군가가 원한다면 "연결되지 않은" 거래를 받은 경우 개인 채널을 통해 보낸 사람에게 자신의 주소를 전달해야 합니다. 동일한 소유자의 소유임을 입증할 수 없는 다른 거래를 수신하려는 경우 그는 모든 다른 주소를 생성해야 하며 절대 자신의 가명으로 게시하지 않아야 합니다. 공개 비공개 앨리스 캐롤 Bob의 주소 1 Bob의 주소 2 밥의 열쇠 1 밥의 열쇠 2 밥 그림 2. 기존 Bitcoin 키/트랜잭션 모드엘자. 우리는 사용자가 단일 주소를 게시하고 무조건 수신할 수 있는 솔루션을 제안합니다. 연결할 수 없는 결제. 각 CryptoNote 출력의 대상(기본적으로)은 공개 키입니다. 수신자의 주소와 발신자의 임의 데이터에서 파생됩니다. Bitcoin에 대한 주요 이점 모든 대상 키는 기본적으로 고유합니다(발신자가 각각에 대해 동일한 데이터를 사용하지 않는 한). 동일한 수신자에게 자신의 거래를 보냅니다). 따라서 "주소 재사용"과 같은 문제는 없습니다. 설계되었으며 어떤 관찰자도 거래가 특정 주소나 링크로 전송되었는지 확인할 수 없습니다. 두 개의 주소를 함께 사용합니다. 6 12 따라서 사용자가 주소(실제로는 공개 키)에서 주소로 코인을 보내는 대신 (또 다른 공개키) 자신의 개인키를 이용하여 일회용 사서함에서 코인을 전송합니다. (친구의 공개 키를 사용하여 생성됨)을 일회성 사서함에 (비슷하게) 사용하여 자신의 개인 키. 어떤 의미에서 우리는 "좋아, 돈이 나오는 동안 모두 돈에서 손을 떼세요"라고 말하는 것입니다. 이리저리 옮겼다! 우리의 열쇠가 그 상자를 열 수 있다는 것을 아는 것만으로도 충분합니다. 우리는 상자 안에 돈이 얼마나 들어 있는지 알고 있습니다. 사서함이나 사서함에 지문을 넣지 마십시오. 실제로 사용하고, 현금 그 자체가 담긴 상자를 거래하면 됩니다. 그렇게 하면 누가 보냈는지 알 수 없지 하지만 이러한 공개 주소의 내용은 여전히 마찰이 없고 대체 가능하며 분할 가능하고 비트코인처럼 우리가 원하는 다른 좋은 품질의 화폐를 여전히 모두 보유하고 있습니다." 무한한 사서함 세트. 주소를 공개하면 개인 키가 있습니다. 나는 내 개인 키와 귀하의 주소를 사용합니다. 공개 키를 생성하기 위한 임의의 데이터. 알고리즘은 다음과 같이 설계되었습니다. 공개 키를 생성하는 데 주소가 사용되었습니다. 귀하의 개인 키만 잠금을 해제할 수 있습니다. 메시지. 관찰자 Eve는 귀하가 주소를 공개하는 것을 보고, 제가 발표하는 공개 키를 봅니다. 그러나, 그녀는 내가 당신의 주소를 기반으로 내 공개 키를 발표했는지, 아니면 그녀의 주소를 기반으로 했는지, 아니면 브렌다의 주소를 기반으로 했는지 모릅니다. 아니면 샤를린의 것, 아니면 누구든지. 그녀는 내가 발표한 공개 키와 자신의 개인 키를 확인합니다. 그리고 그것이 작동하지 않는 것을 봅니다; 그것은 그녀의 돈이 아닙니다. 그녀는 다른 사람의 개인 키를 알지 못합니다. 메시지 수신자만이 메시지 잠금을 해제할 수 있는 개인 키를 가지고 있습니다. 그러니 아무도 이야기를 들으면 돈을 받는 사람은커녕 누가 돈을 받았는지 알 수 있습니다.
공개 비공개 앨리스 캐롤 일회용 키 일회용 키 일회용 키 밥 밥의 열쇠 밥의 주소 그림 3. CryptoNote 키/트랜잭션 모델. 먼저 보낸 사람은 Dffie-Hellman 교환을 수행하여 자신의 데이터에서 공유 비밀을 얻고 수취인 주소의 절반. 그런 다음 공유 키를 사용하여 일회성 대상 키를 계산합니다. 비밀과 주소의 후반부. 수신자로부터 두 개의 서로 다른 EC 키가 필요합니다. 이 두 단계에서 표준 CryptoNote 주소는 Bitcoin 지갑의 거의 두 배입니다. 주소. 수신기는 또한 해당 데이터를 복구하기 위해 Diffie-Hellman 교환을 수행합니다. 비밀열쇠. 표준 거래 순서는 다음과 같습니다. 1. Alice는 자신의 표준 주소를 공개한 Bob에게 지불금을 보내고 싶어합니다. 그녀 주소의 압축을 풀고 Bob의 공개 키(A, B)를 얻습니다. 2. Alice는 무작위 \(r \in [1, l - 1]\)을 생성하고 일회성 공개 키 \(P = H_s(rA)G +\)를 계산합니다. 비. 3. Alice는 P를 출력의 대상 키로 사용하고 값 R = rG(일부로)도 팩합니다. Dffie-Hellman 교환의) 거래 어딘가에 있습니다. 그녀가 만들 수 있다는 점에 유의하세요. 고유한 공개 키가 있는 다른 출력: 서로 다른 수신자의 키(Ai, Bi)는 서로 다른 Pi를 의미합니다. 같은 r에도 불구하고. 거래 송신 공개 키 송신 출력 금액 대상 키 R = rG P = Hs(rA)G + B 수신기 공개 키 발신자의 임의 데이터 아르 (A, B) 그림 4. 표준 거래 구조. 4. Alice가 거래를 보냅니다. 5. Bob은 자신의 개인 키(a, b)를 사용하여 통과하는 모든 트랜잭션을 확인하고 P ′ =를 계산합니다. Hs(aR)G + B. 수신자인 Bob과의 Alice의 거래가 그 중 하나라면, 그러면 aR = arG = rA이고 P' = P입니다. 7 공개 비공개 앨리스 캐롤 일회용 키 일회용 키 일회용 키 밥 밥의 열쇠 밥의 주소 그림 3. CryptoNote 키/트랜잭션 모델. 먼저 보낸 사람은 Dffie-Hellman 교환을 수행하여 자신의 데이터에서 공유 비밀을 얻고 수취인 주소의 절반. 그런 다음 공유 키를 사용하여 일회성 대상 키를 계산합니다. 비밀과 주소의 후반부. 수신자로부터 두 개의 서로 다른 EC 키가 필요합니다. 이 두 단계에서 표준 CryptoNote 주소는 Bitcoin 지갑의 거의 두 배입니다. 주소. 수신기는 또한 해당 데이터를 복구하기 위해 Diffie-Hellman 교환을 수행합니다. 비밀열쇠. 표준 거래 순서는 다음과 같습니다. 1. Alice는 자신의 표준 주소를 공개한 Bob에게 지불금을 보내고 싶어합니다. 그녀 주소의 압축을 풀고 Bob의 공개 키(A, B)를 얻습니다. 2. Alice는 무작위 \(r \in [1, l - 1]\)을 생성하고 일회성 공개 키 \(P = H_s(rA)G +\)를 계산합니다. 비. 3. Alice는 P를 출력의 대상 키로 사용하고 값 R = rG(일부로)도 팩합니다. Dffie-Hellman 교환의) 거래 어딘가에 있습니다. 그녀가 만들 수 있다는 점에 유의하세요. 고유한 공개 키가 있는 다른 출력: 서로 다른 수신자의 키(Ai, Bi)는 서로 다른 Pi를 의미합니다. 같은 r에도 불구하고. 거래 송신 공개 키 송신 출력 금액 대상 키 R = rG P = Hs(rA)G + B 수신기 공개 키 발신자의 임의 데이터 아르 (A, B) 그림 4. 표준 거래 구조. 4. Alice가 거래를 보냅니다. 5. Bob은 자신의 개인 키(a, b)를 사용하여 통과하는 모든 트랜잭션을 확인하고 P ′ =를 계산합니다. Hs(aR)G + B. 수신자인 Bob과의 Alice의 거래가 그 중 하나라면, 그러면 aR = arG = rA이고 P' = P입니다. 7 13 암호화 선택을 구현하는 것이 얼마나 골치 아픈 일인지 궁금합니다. 계획. 타원 또는 기타. 따라서 미래에 어떤 계획이 깨지면 통화가 전환됩니다. 걱정하지 않고. 아마도 엉덩이에 큰 고통이있을 것입니다. 좋아요, 이것이 바로 제가 이전 댓글에서 설명한 내용입니다. Diffie-Hellman 유형 교환은 깔끔합니다. Alex와 Brenda가 각각 비밀 번호 A와 B를 가지고 있다고 가정해 보겠습니다. 그들은 비밀을 지키는 데 관심이 없다, a와 b. 그들은 없이 공유 비밀을 생성하려고 합니다. 그것을 발견한 에바. Diffie와 Hellman은 Alex와 Brenda가 공유할 수 있는 방법을 고안했습니다. 공개 번호 a와 b는 있지만 비공개 번호 A와 B는 제외하고 공유 비밀을 생성합니다. K. Eva가 수신 대기 없이 이 공유 비밀 K를 사용하여 동일한 비밀을 생성할 수 있습니다. K, Alex 및 Brenda는 이제 K를 비밀 암호화 키로 사용하고 비밀 메시지를 다시 전달할 수 있습니다. 그리고 앞으로. 100보다 훨씬 큰 숫자에서도 작동해야 하지만 할 수 있는 방법은 다음과 같습니다. 100을 모듈로 정수로 처리하는 것은 "모든 것을 버리는 것과 같기 때문에 100을 사용할 것입니다. 하지만 숫자의 마지막 두 자리는요." Alex와 Brenda는 각각 A, a, B, b를 선택합니다. 그들은 A와 B를 비밀로 유지합니다. Alex는 Brenda에게 자신의 모듈로 100 값(마지막 두 자리)을 말하고 Brenda는 Alex에게 말합니다. b의 값은 모듈로 100입니다. 이제 Eva는 (a,b) 모듈로 100을 알고 있습니다. 그러나 Alex는 (a,b,A)를 알고 있으므로 그녀는 x=abA 모듈로 100을 계산할 수 있습니다.Alex는 우리가 작업 중이기 때문에 마지막 숫자만 빼고 다 잘라냅니다. 다시 정수 모듈로 100 아래에서. 마찬가지로 Brenda는 (a,b,B)를 알고 있으므로 계산할 수 있습니다. y=abB 모듈로 100. 이제 Alex는 x를 게시할 수 있고 Brenda는 y를 게시할 수 있습니다. 하지만 이제 Alex는 yA = abBA 모듈로 100을 계산할 수 있고 Brenda는 xB를 계산할 수 있습니다. = abBA 모듈로 100. 둘 다 같은 번호를 알고 있어요! 하지만 Eva가 들은 것은 (a,b,abA,abB). 그녀는 abA*B를 계산하는 쉬운 방법이 없습니다. 이제 이것이 Diffie-Hellman 교환에 대해 생각하는 가장 쉽고 안전하지 않은 방법입니다. 더 안전한 버전이 존재합니다. 그러나 대부분의 버전은 정수 인수분해와 이산 때문에 작동합니다. 로그는 어렵고 두 문제 모두 양자 컴퓨터로 쉽게 해결됩니다. 양자에 저항하는 버전이 있는지 살펴보겠습니다. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange 여기에 나열된 "표준 txn 시퀀스"에는 SIGNATURES와 같은 전체 단계가 누락되어 있습니다. 여기서는 그것들이 당연하게 여겨집니다. 정말 안 좋은 일입니다. 왜냐하면 우리가 진행하는 순서가 서명 항목, 서명된 메시지에 포함된 정보 등... 이 모든 것이 매우 프로토콜에 중요합니다. " 표준 거래 순서"는 전체 시스템의 보안에 의문을 제기할 수 있습니다. 더욱이, 논문 뒷부분에 제시된 증명은 다음과 같은 경우 충분히 엄격하지 않을 수 있습니다. 그들이 작업하는 프레임워크는 이 섹션에서처럼 느슨하게 정의됩니다.
공개 비공개 앨리스 캐롤 일회용 키 일회용 키 일회용 키 밥 밥의 열쇠 밥의 주소 그림 3. CryptoNote 키/트랜잭션 모델. 먼저 보낸 사람은 Dffie-Hellman 교환을 수행하여 자신의 데이터에서 공유 비밀을 얻고 수취인 주소의 절반. 그런 다음 공유 키를 사용하여 일회성 대상 키를 계산합니다. 비밀과 주소의 후반부. 수신자로부터 두 개의 서로 다른 EC 키가 필요합니다. 이 두 단계에서 표준 CryptoNote 주소는 Bitcoin 지갑의 거의 두 배입니다. 주소. 수신기는 또한 해당 데이터를 복구하기 위해 Diffie-Hellman 교환을 수행합니다. 비밀열쇠. 표준 거래 순서는 다음과 같습니다. 1. Alice는 자신의 표준 주소를 공개한 Bob에게 지불금을 보내고 싶어합니다. 그녀 주소의 압축을 풀고 Bob의 공개 키(A, B)를 얻습니다. 2. Alice는 무작위 \(r \in [1, l - 1]\)을 생성하고 일회성 공개 키 \(P = H_s(rA)G +\)를 계산합니다. 비. 3. Alice는 P를 출력의 대상 키로 사용하고 값 R = rG(일부로)도 팩합니다. Dffie-Hellman 교환의) 거래 어딘가에 있습니다. 그녀가 만들 수 있다는 점에 유의하세요. 고유한 공개 키가 있는 다른 출력: 서로 다른 수신자의 키(Ai, Bi)는 서로 다른 Pi를 의미합니다. 같은 r에도 불구하고. 거래 송신 공개 키 송신 출력 금액 대상 키 R = rG P = Hs(rA)G + B 수신기 공개 키 발신자의 임의 데이터 아르 (A, B) 그림 4. 표준 거래 구조. 4. Alice가 거래를 보냅니다. 5. Bob은 자신의 개인 키(a, b)를 사용하여 통과하는 모든 트랜잭션을 확인하고 P ′ =를 계산합니다. Hs(aR)G + B. 수신자인 Bob과의 Alice의 거래가 그 중 하나라면, 그러면 aR = arG = rA이고 P' = P입니다. 7 공개 비공개 앨리스 캐롤 일회용 키 일회용 키 일회용 키 밥 밥의 열쇠 밥의 주소 그림 3. CryptoNote 키/트랜잭션 모델. 먼저 보낸 사람은 Dffie-Hellman 교환을 수행하여 자신의 데이터에서 공유 비밀을 얻고 수취인 주소의 절반. 그런 다음 공유 키를 사용하여 일회성 대상 키를 계산합니다. 비밀과 주소의 후반부. 수신자로부터 두 개의 서로 다른 EC 키가 필요합니다. 이 두 단계에서 표준 CryptoNote 주소는 Bitcoin 지갑의 거의 두 배입니다. 주소. 수신기는 또한 해당 데이터를 복구하기 위해 Diffie-Hellman 교환을 수행합니다. 비밀열쇠. 표준 거래 순서는 다음과 같습니다. 1. Alice는 자신의 표준 주소를 공개한 Bob에게 지불금을 보내고 싶어합니다. 그녀 주소의 압축을 풀고 Bob의 공개 키(A, B)를 얻습니다. 2. Alice는 무작위 \(r \in [1, l - 1]\)을 생성하고 일회성 공개 키 \(P = H_s(rA)G +\)를 계산합니다. 비. 3. Alice는 P를 출력의 대상 키로 사용하고 값 R = rG(일부로)도 팩합니다. Dffie-Hellman 교환의) 거래 어딘가에 있습니다. 그녀가 만들 수 있다는 점에 유의하세요. 고유한 공개 키가 있는 다른 출력: 서로 다른 수신자의 키(Ai, Bi)는 서로 다른 Pi를 의미합니다. 같은 r에도 불구하고. 거래 송신 공개 키 송신 출력 금액 대상 키 R = rG P = Hs(rA)G + B 수신기 공개 키 발신자의 임의 데이터 아르 (A, B) 그림 4. 표준 거래 구조. 4. Alice가 거래를 보냅니다. 5. Bob은 자신의 개인 키(a, b)를 사용하여 통과하는 모든 트랜잭션을 확인하고 P ′ =를 계산합니다. Hs(aR)G + B. 수신자인 Bob과의 Alice의 거래가 그 중 하나라면, 그러면 aR = arG = rA이고 P' = P입니다. 7 14 저자(들?)는 용어를 전체적으로 똑바로 유지하는 데 끔찍한 일을 하고 있습니다. 텍스트, 특히 이 다음 부분에서요. 이 논문의 다음 화신은 반드시 훨씬 더 엄격합니다. 본문에서 그들은 P를 일회용 공개 키라고 부릅니다. 다이어그램에서는 R을 다음과 같이 나타냅니다. "Tx 공개 키"이고 P는 "대상 키"입니다. 내가 이 글을 다시 쓴다면, 이 섹션을 논의하기 전에 몇 가지 용어를 매우 구체적으로 설명하십시오. 이 엘은 엄청납니다. 5페이지를 참조하세요. 누가 엘을 선택합니까? 다이어그램은 무작위로 선택된 트랜잭션 공개 키 R = rG를 보여줍니다. 발신자에 의한 Tx 출력의 일부가 아닙니다. 여러개에 걸쳐 동일할 수 있기 때문입니다. 여러 사람과 거래하며 나중에 지출하는 데 사용되지 않습니다. 새로운 R이 생성됩니다. 새로운 CryptoNote 거래를 브로드캐스트하고 싶을 때마다. 또한 R만 사용됩니다. 귀하가 거래 수취인인지 확인하기 위해. 정크 데이터는 아니지만 누구에게나 정크 데이터입니다 (A, B)와 관련된 개인 키가 없습니다. 반면에 대상 키는 P = Hs(rA)G + B가 Tx 출력의 일부입니다. 모두 통과하는 모든 거래의 데이터를 조사하면서 자신이 생성한 P*를 확인해야 합니다. 이 P를 사용하여 그들이 이 통과 트랜잭션을 소유하고 있는지 확인합니다. 사용되지 않은 거래 결과가 있는 사람 (UTXO)에는 이러한 P가 여러 개 놓여 있을 것입니다. 지출을 하기 위해서는디, 그들은 P를 포함한 새로운 메시지에 서명하세요. Alice는 사용되지 않은 거래 출력 대상 키와 연결된 일회용 개인 키를 사용하여 이 거래에 서명해야 합니다. Alice가 소유한 각 대상 키는 장착되어 있습니다. (아마도) Alice가 소유한 일회성 개인 키를 사용합니다. 앨리스가 원할 때마다 대상 키의 내용을 나, Bob, Brenda, Charlie 또는 Charlene에게 보내세요. 그녀의 개인 키를 사용하여 거래에 서명합니다. 거래가 접수되면 새로운 내용을 받게 됩니다. Tx 공개키, 새로운 대상 공개키, 그리고 새로운 일회용 개인키 x를 복구할 수 있게 됩니다. 내 일회성 개인 키 x를 새 거래의 공개 대상과 결합 키는 새 트랜잭션을 보내는 방법입니다.
- Bob은 해당하는 일회용 개인 키를 복구할 수 있습니다: x = Hs(aR) + b, 따라서 P = xG. 그는 x와의 거래에 서명함으로써 언제든지 이 출력을 사용할 수 있습니다. 거래 송신 공개 키 송신 출력 금액 대상 키 P' = Hs(aR)G + bG 일회용 공개 키 x = Hs(aR) + b 일회용 개인 키 수신기 개인 키 (a, b) R 피' ?=피 그림 5. 들어오는 거래 확인. 결과적으로 Bob은 일회성 공개 키와 관련된 입금을 받습니다. 관중에게는 연결이 불가능합니다. 몇 가지 추가 참고 사항: • Bob이 자신의 거래를 "인식"할 때(5단계 참조) 실제로는 자신의 거래 중 절반만 사용합니다. 개인 정보: (a, B). 추적 키라고도 알려진 이 쌍은 전달될 수 있습니다. 제3자(캐롤)에게. Bob은 그녀에게 새로운 거래 처리를 위임할 수 있습니다. 밥 Carol은 일회용 비밀 키 p를 복구할 수 없기 때문에 명시적으로 신뢰할 필요가 없습니다. Bob의 전체 개인 키 없이(a, b). 이 접근 방식은 Bob에게 대역폭이 부족할 때 유용합니다. 또는 계산 능력(스마트폰, 하드웨어 지갑 등). • Alice가 Bob의 주소로 거래를 보냈다는 것을 증명하고 싶은 경우 다음 중 하나를 공개할 수 있습니다. r 또는 그녀가 r을 알고 있음을 증명하기 위해 모든 종류의 영지식 프로토콜을 사용합니다(예: 서명을 통해). r)과의 거래. • Bob이 들어오는 모든 거래가 기록되는 감사 호환 주소를 갖고 싶어하는 경우 연결이 가능하면 추적 키를 게시하거나 잘린 주소를 사용할 수 있습니다. 해당 주소 하나의 공개 EC 키 B만 나타내고 프로토콜에서 요구하는 나머지 부분은 다음과 같습니다. 그것으로부터 다음과 같이 유도됩니다: a = Hs(B) 및 A = Hs(B)G. 두 경우 모두 모든 사람은 Bob의 들어오는 모든 거래를 "인식"할 수 있지만 물론 누구도 그 거래를 소비할 수 없습니다. 비밀 키 없이 그 안에 포함된 자금 b. 4.4 일회성 링 서명 일회성 링 서명을 기반으로 하는 프로토콜을 사용하면 사용자는 무조건적인 연결 해제를 달성할 수 있습니다. 불행하게도 일반적인 유형의 암호화 서명을 사용하면 거래를 추적할 수 있습니다. 각각의 송신자와 수신자. 이 결함에 대한 우리의 해결책은 다른 서명을 사용하는 것입니다. 현재 전자현금시스템에서 사용되는 것과는 다른 유형이다. 먼저, 명시적인 언급 없이 알고리즘에 대한 일반적인 설명을 제공하겠습니다. 전자현금. 일회성 링 서명에는 네 가지 알고리즘(GEN, SIG, VER, LNK)이 포함되어 있습니다. GEN: 공개 매개변수를 가져와서 ec-쌍(P, x)과 공개 키 I를 출력합니다. SIG: 메시지 m, 공개 키 세트 \(S'\) {Pi}i̸=s, 쌍(Ps, xs)을 취하고 서명 \(\sigma\)를 출력합니다. 그리고 집합 \(S = \)S'\( \cup \{P_s\}\). 8
-
Bob은 해당하는 일회용 개인 키를 복구할 수 있습니다: x = Hs(aR) + b, 따라서 P = xG. 그는 x와의 거래에 서명함으로써 언제든지 이 출력을 사용할 수 있습니다. 거래 송신 공개 키 송신 출력 금액 대상 키 P' = Hs(aR)G + bG 일회용 공개 키 x = Hs(aR) + b 일회용 개인 키 수신기 개인 키 (a, b) R 피' ?=피 그림 5. 들어오는 거래 확인. 결과적으로 Bob은 일회성 공개 키와 관련된 입금을 받습니다. 관중에게는 연결이 불가능합니다. 몇 가지 추가 참고사항: • Bob이 자신의 거래를 "인식"할 때(5단계 참조) 실제로는 자신의 거래 중 절반만 사용합니다. 개인 정보: (a, B). 추적 키라고도 알려진 이 쌍은 전달될 수 있습니다. 제3자(캐롤)에게. Bob은 그녀에게 새로운 거래 처리를 위임할 수 있습니다. 밥 Carol은 일회용 비밀 키 p를 복구할 수 없기 때문에 명시적으로 신뢰할 필요가 없습니다. Bob의 전체 개인 키 없이(a, b). 이 접근 방식은 Bob에게 대역폭이 부족할 때 유용합니다. 또는 계산 능력(스마트폰, 하드웨어 지갑 등). • Alice가 Bob의 주소로 거래를 보냈다는 것을 증명하고 싶은 경우 다음 중 하나를 공개할 수 있습니다. r 또는 그녀가 r을 알고 있음을 증명하기 위해 모든 종류의 영지식 프로토콜을 사용합니다(예: 서명을 통해). r)과의 거래. • Bob이 들어오는 모든 거래가 기록되는 감사 호환 주소를 갖고 싶어하는 경우 연결이 가능하면 추적 키를 게시하거나 잘린 주소를 사용할 수 있습니다. 해당 주소 하나의 공개 EC 키 B만 나타내고 프로토콜에서 요구하는 나머지 부분은 다음과 같습니다. 그것으로부터 다음과 같이 유도됩니다: a = Hs(B) 및 A = Hs(B)G. 두 경우 모두 모든 사람은 Bob의 들어오는 모든 거래를 "인식"할 수 있지만 물론 누구도 그 거래를 소비할 수 없습니다. 비밀 키 없이 그 안에 포함된 자금 b. 4.4 일회성 링 서명 일회성 링 서명을 기반으로 하는 프로토콜을 사용하면 사용자는 무조건적인 연결 해제를 달성할 수 있습니다. 불행하게도 일반적인 유형의 암호화 서명을 사용하면 거래를 추적할 수 있습니다. 각각의 송신자와 수신자. 이 결함에 대한 우리의 해결책은 다른 서명을 사용하는 것입니다. 현재 전자현금시스템에서 사용되는 것과는 다른 유형이다. 먼저 제너레이터를 제공하겠습니다.명시적인 참조 없이 우리 알고리즘에 대한 모든 설명 전자현금. 일회성 링 서명에는 네 가지 알고리즘(GEN, SIG, VER, LNK)이 포함되어 있습니다. GEN: 공개 매개변수를 가져와서 ec-쌍(P, x)과 공개 키 I를 출력합니다. SIG: 메시지 m, 공개 키 세트 \(S'\) {Pi}i̸=s, 쌍(Ps, xs)을 취하고 서명 \(\sigma\)를 출력합니다. 그리고 집합 \(S = \)S'\( \cup \{P_s\}\). 8 15 여기에서 사용되지 않은 거래 출력은 어떻게 되나요? 다이어그램은 거래 출력이 금액과 대상 키라는 두 가지 데이터 포인트로만 구성되어 있음을 나타냅니다. 하지만 이건 아니다 이 "출력"을 사용하려고 할 때 여전히 R=rG를 알아야 하기 때문에 충분합니다. r은 보낸 사람이 선택하고 R은 a) 수신되는 암호화폐를 귀하의 암호화폐로 인식하는 데 사용됩니다. b) 귀하의 암호화폐를 "청구"하는 데 사용되는 일회용 개인 키를 생성하는 데 사용됩니다. 이 부분에서 제가 이해하지 못하는 부분은요? 이론적으로 "좋아요, 우리는 이것을 가지고 있습니다 서명과 트랜잭션을 프로그래밍 세계로 주고받습니다. "알겠습니다. 구체적으로 어떤 정보가 개인 UTXO을 구성하나요?" 이 질문에 대답하는 가장 좋은 방법은 완전히 주석 처리되지 않은 코드 본문을 파헤치는 것입니다. 잘 가요, 바이트코인 팀. 기억하세요: 연결 가능성은 "동일한 사람이 보냈습니까?"를 의미합니다. 연결 해제 가능성은 "동일한 작업을 수행함"을 의미합니다. 사람이 받나요?". 따라서 시스템은 연결 가능하거나 연결 불가능할 수 있으며, 연결 불가능하거나 연결 불가능할 수 있습니다. 짜증나, 나도 알아. 따라서 Nic van Saberhagen이 "...입금은 일회성 결제와 연관되어 있습니다"라고 말합니다. 관중이 연결할 수 없는 공개 키"라는 말이 무슨 뜻인지 살펴보겠습니다. 먼저, Alice가 Bob에게 동일한 트랜잭션 두 개를 보내는 상황을 생각해 보세요. 같은 주소로 보내세요. Bitcoin 세계에서 앨리스는 이미 실수를 저질렀습니다. 동일한 주소에서 보내는 것이므로 거래가 제한에 대한 우리의 욕구에 실패했습니다. 연결성. 게다가 같은 주소로 돈을 보냈기 때문에 우리의 바람대로 되지 않았습니다. 연결 해제를 위해. 이 비트코인 거래는 (완전히) 연결이 가능하고 연결이 불가능했습니다. 반면, 암호화폐 세계에서는 앨리스가 밥에게 암호화폐를 보낸다고 가정해 보겠습니다. Bob의 공개 주소를 사용합니다. 그녀는 알려진 모든 공개 키를 난독화하는 공개 키 세트로 선택합니다. 워싱턴 DC 메트로 지역의 열쇠. Alex는 자신의 키를 사용하여 일회용 공개 키를 생성합니다. 정보 및 Bob의 공개 정보. 그녀는 돈을 보내고, 모든 관찰자는 그럴 것입니다. "워싱턴 DC 메트로 지역에서 누군가가 2.3개의 암호화폐를 보냈습니다. 일회성 공개 주소 XYZ123입니다." 여기서는 연결 가능성을 확률적으로 제어하므로 이를 "거의 연결 불가능"이라고 부르겠습니다. 또한 우리는 일회성 공개 키 자금이 전송되는 것을 볼 수 있습니다. 수신자를 의심하더라도 Bob이었습니다. 우리는 그의 개인 키를 갖고 있지 않기 때문에 통과하는 트랜잭션이 있는지 테스트할 수 없습니다. 그의 암호화폐를 상환하기 위해 일회성 개인 키를 생성하는 것은 말할 것도 없고 Bob의 것입니다. 그래서 이것은 실제로는 완전히 "연결할 수 없습니다". 그래서 이것은 가장 깔끔한 트릭입니다. 누가 다른 MtGox를 정말로 신뢰하고 싶나요? 우리는 어쩌면 Coinbase에 일정량의 BTC를 편안하게 보관할 수 있지만 비트코인 보안의 궁극적인 목표는 실제 지갑. 불편한 일입니다. 이 경우 귀하는 귀하의 개인 키를 손상시키지 않고 개인 키의 절반을 무신뢰적으로 제공할 수 있습니다. 돈을 쓰는 자신의 능력. 이렇게 할 때 당신이 하는 일은 누군가에게 연결 해제 방법을 알려주는 것뿐입니다. 다른 이중 지출에 대한 증거와 같이 통화처럼 작동하는 CN의 속성은 보존됩니다. 뭐.
-
Bob은 해당하는 일회용 개인 키를 복구할 수 있습니다: x = Hs(aR) + b, 따라서 P = xG. 그는 x와의 거래에 서명함으로써 언제든지 이 출력을 사용할 수 있습니다. 거래 송신 공개 키 송신 출력 금액 대상 키 P' = Hs(aR)G + bG 일회용 공개 키 x = Hs(aR) + b 일회용 개인 키 수신기 개인 키 (a, b) R 피' ?=피 그림 5. 들어오는 거래 확인. 결과적으로 Bob은 일회성 공개 키와 관련된 입금을 받습니다. 관중에게는 연결이 불가능합니다. 몇 가지 추가 참고 사항: • Bob이 자신의 거래를 "인식"할 때(5단계 참조) 실제로는 자신의 거래 중 절반만 사용합니다. 개인 정보: (a, B). 추적 키라고도 알려진 이 쌍은 전달될 수 있습니다. 제3자(캐롤)에게. Bob은 그녀에게 새로운 거래 처리를 위임할 수 있습니다. 밥 Carol은 일회용 비밀 키 p를 복구할 수 없기 때문에 명시적으로 신뢰할 필요가 없습니다. Bob의 전체 개인 키 없이(a, b). 이 접근 방식은 Bob에게 대역폭이 부족할 때 유용합니다. 또는 계산 능력(스마트폰, 하드웨어 지갑 등). • Alice가 Bob의 주소로 거래를 보냈다는 것을 증명하고 싶은 경우 다음 중 하나를 공개할 수 있습니다. r 또는 그녀가 r을 알고 있음을 증명하기 위해 모든 종류의 영지식 프로토콜을 사용합니다(예: 서명을 통해). r)과의 거래. • Bob이 들어오는 모든 거래가 기록되는 감사 호환 주소를 갖고 싶어하는 경우 연결이 가능하면 추적 키를 게시하거나 잘린 주소를 사용할 수 있습니다. 해당 주소 하나의 공개 EC 키 B만 나타내고 프로토콜에서 요구하는 나머지 부분은 다음과 같습니다. 그것으로부터 다음과 같이 유도됩니다: a = Hs(B) 및 A = Hs(B)G. 두 경우 모두 모든 사람은 Bob의 들어오는 모든 거래를 "인식"할 수 있지만 물론 누구도 그 거래를 소비할 수 없습니다. 비밀 키 없이 그 안에 포함된 자금 b. 4.4 일회성 링 서명 일회성 링 서명을 기반으로 하는 프로토콜을 사용하면 사용자는 무조건적인 연결 해제를 달성할 수 있습니다. 불행하게도 일반적인 유형의 암호화 서명을 사용하면 거래를 추적할 수 있습니다. 각각의 송신자와 수신자. 이 결함에 대한 우리의 해결책은 다른 서명을 사용하는 것입니다. 현재 전자현금시스템에서 사용되는 것과는 다른 유형이다. 먼저, 명시적인 언급 없이 알고리즘에 대한 일반적인 설명을 제공하겠습니다. 전자현금. 일회성 링 서명에는 네 가지 알고리즘(GEN, SIG, VER, LNK)이 포함되어 있습니다. GEN: 공개 매개변수를 가져와서 ec-쌍(P, x)과 공개 키 I를 출력합니다. SIG: 메시지 m, 공개 키 세트 \(S'\) {Pi}i̸=s, 쌍(Ps, xs)을 취하고 서명 \(\sigma\)를 출력합니다. 그리고 집합 \(S = \)S'\( \cup \{P_s\}\). 8
- Bob은 해당하는 일회용 개인 키를 복구할 수 있습니다: x = Hs(aR) + b, 따라서 P = xG. 그는 x와의 거래에 서명함으로써 언제든지 이 출력을 사용할 수 있습니다. 거래 송신 공개 키 송신 출력 금액 대상 키 P' = Hs(aR)G + bG 일회용 공개 키 x = Hs(aR) + b 일회용 개인 키 수신기 개인 키 (a, b) R 피' ?=피 그림 5. 들어오는 거래 확인. 결과적으로 Bob은 일회성 공개 키와 관련된 입금을 받습니다. 관중에게는 연결이 불가능합니다. 몇 가지 추가 참고사항: • Bob이 자신의 거래를 "인식"할 때(5단계 참조) 실제로는 자신의 거래 중 절반만 사용합니다. 개인 정보: (a, B). 추적 키라고도 알려진 이 쌍은 전달될 수 있습니다. 제3자(캐롤)에게. Bob은 그녀에게 새로운 거래 처리를 위임할 수 있습니다. 밥 Carol은 일회용 비밀 키 p를 복구할 수 없기 때문에 명시적으로 신뢰할 필요가 없습니다. Bob의 전체 개인 키 없이(a, b). 이 접근 방식은 Bob에게 대역폭이 부족할 때 유용합니다. 또는 계산 능력(스마트폰, 하드웨어 지갑 등). • Alice가 Bob의 주소로 거래를 보냈다는 것을 증명하고 싶은 경우 다음 중 하나를 공개할 수 있습니다. r 또는 그녀가 r을 알고 있음을 증명하기 위해 모든 종류의 영지식 프로토콜을 사용합니다(예: 서명을 통해). r)과의 거래. • Bob이 들어오는 모든 거래가 기록되는 감사 호환 주소를 갖고 싶어하는 경우 연결이 가능하면 추적 키를 게시하거나 잘린 주소를 사용할 수 있습니다. 해당 주소 하나의 공개 EC 키 B만 나타내고 프로토콜에서 요구하는 나머지 부분은 다음과 같습니다. 그것으로부터 다음과 같이 유도됩니다: a = Hs(B) 및 A = Hs(B)G. 두 경우 모두 모든 사람은 Bob의 들어오는 모든 거래를 "인식"할 수 있지만 물론 누구도 그 거래를 소비할 수 없습니다. 비밀 키 없이 그 안에 포함된 자금 b. 4.4 일회성 링 서명 일회성 링 서명을 기반으로 하는 프로토콜을 사용하면 사용자는 무조건적인 연결 해제를 달성할 수 있습니다. 불행하게도 일반적인 유형의 암호화 서명을 사용하면 거래를 추적할 수 있습니다. 각각의 송신자와 수신자. 이 결함에 대한 우리의 해결책은 다른 서명을 사용하는 것입니다. 현재 전자현금시스템에서 사용되는 것과는 다른 유형이다. 먼저 제너레이터를 제공하겠습니다.명시적인 참조 없이 우리 알고리즘에 대한 모든 설명 전자현금. 일회성 링 서명에는 네 가지 알고리즘(GEN, SIG, VER, LNK)이 포함되어 있습니다. GEN: 공개 매개변수를 가져와서 ec-쌍(P, x)과 공개 키 I를 출력합니다. SIG: 메시지 m, 공개 키 세트 \(S'\) {Pi}i̸=s, 쌍(Ps, xs)을 취하고 서명 \(\sigma\)를 출력합니다. 그리고 집합 \(S = \)S'\( \cup \{P_s\}\). 8 16 예, 이제 a) 지불 주소와 b) 지불 ID가 있습니다. 비평가는 "정말 이렇게 해야 합니까? 결국 상인이 112.00678952를 받으면 정확히 CN입니다. 그게 제가 주문한 것이었고 스크린샷이나 영수증 등이 있습니다. 그렇죠? 미친 정도의 정밀도면 충분해?" 대답은 "아마도 대부분의 경우 매일매일 대면거래." 그러나 보다 일반적인 상황(특히 디지털 세계에서)은 다음과 같습니다. 각각 가격이 고정되어 있는 일련의 물건입니다. 객체 A는 0.001 CN, 객체 B는 0.01 CN, 객체 C는 0.1CN입니다. 이제 판매자가 1.618 CN에 대한 주문을 받으면 많은 양의 주문이 발생합니다. (많은!) 고객의 주문을 준비하는 방법. 따라서 일종의 결제 ID가 없으면 고객의 소위 "고유" 주문과 고객의 "고유" 비용을 식별하는 것 주문이 불가능해집니다. 더 웃긴 점: 내 온라인 상점의 모든 가격이 정확히 1.0이라면 CN, 하루에 1000명의 고객이 방문하나요? 그리고 당신은 정확히 3개의 물건을 구입했다는 것을 증명하고 싶습니다. 2주 전? 결제 ID가 없나요? 행운을 빌어요, 친구. 간단히 말해서: Bob이 수취인 주소를 게시하면 결국에는 다음 주소도 게시하게 될 수 있습니다. 결제 ID도 포함됩니다(예: Poloniex XMR 예금 참조). 설명된 내용과 다릅니다. 여기 텍스트에서 결제 ID를 생성한 사람은 Alice입니다. Bob도 결제 ID를 생성할 수 있는 방법이 있어야 합니다. (a,B) 추적 키(a,B)가 게시될 수 있다는 점을 기억하세요. 'a' 값의 비밀성을 잃게 됩니다. 돈을 쓰거나 다른 사람이 당신에게서 물건을 훔치도록 허용하는 능력을 침해하지 마세요. 입증하기 위해) 사람들은 들어오는 모든 거래를 볼 수 있습니다. 이 단락에 설명된 대로 잘린 주소는 단순히 키의 "개인" 부분을 사용합니다. "공개" 부분에서 생성합니다. 'a' 값을 공개하면 연결 불가능성이 제거됩니다. 하지만 나머지 거래는 보존됩니다. unlinkable은 수신자를 지칭하고 linkable을 의미하기 때문에 저자는 "linkable이 아님"을 의미합니다. 보낸 사람을 말합니다. 또한 저자가 연결성에 두 가지 다른 측면이 있다는 사실을 깨닫지 못한 것도 분명합니다. 결국 트랜잭션은 그래프의 방향이 지정된 개체이므로 두 가지 질문이 있습니다. "이 두 거래가 같은 사람에게 전달되나요?" 그리고 "이 두 거래가 다가오고 있나요? 같은 사람이요?" 이는 CryptoNote의 연결 해제 속성이 적용되는 "되돌아가지 않는" 정책입니다. 조건부. 즉, Bob은 들어오는 트랜잭션을 연결 해제할 수 없도록 선택할 수 있습니다. 이 정책을 사용합니다. 이는 Random Oracle Model에 따라 입증된 주장입니다. 우리는 그것에 대해 알아볼 것입니다; 무작위 오라클에는 장점과 단점이 있습니다.
VER: 메시지 m, 집합 S, 서명 \(\sigma\)를 가져와 "true" 또는 "false"를 출력합니다. LNK: 집합 I = {Ii}, 서명 \(\sigma\)를 취하고 "linked" 또는 "indep"을 출력합니다. 프로토콜의 기본 아이디어는 매우 간단합니다. 사용자는 서명을 생성합니다. 고유한 공개 키가 아닌 공개 키 세트로 확인됩니다. 서명자의 신원은 다음과 같습니다. 소유자가 공개 키를 생성할 때까지 세트에 있는 공개 키를 가진 다른 사용자와 구별할 수 없습니다. 동일한 키 쌍을 사용하는 두 번째 서명. 개인 키 x0 \(\cdots\) xi \(\cdots\) xn 공개 키 P0 \(\cdots\) 파이 \(\cdots\) Pn 반지 서명 기호 확인하다 그림 6. 링 서명 익명성. GEN: 서명자는 임의의 비밀 키 \(x \in [1, l - 1]\)을 선택하고 해당하는 값을 계산합니다. 공개 키 P = xG. 추가적으로 그는 또 다른 공개 키 I = xHp(P)를 계산합니다. "키 이미지"라고 부릅니다. SIG: 서명자는 비대화형 영지식을 사용하여 일회성 링 서명을 생성합니다. [21]의 기술을 사용하여 증명합니다. 그는 다른 사용자의 n의 무작위 부분집합 \(S'\)를 선택합니다. 공개 키 Pi, 자신의 키 쌍(x, P) 및 키 이미지 I. \(0 \leq s \leq n\)을 서명자의 비밀 인덱스로 둡니다. S에서(그의 공개 키는 Ps임) 그는 무작위로 {qi | 나는 = 0 . . . n} 및 {wi | 나는 = 0 . . . n, i ̸= s} (1 . . . l)에서 다음을 적용합니다. 다음 변환: 리 = ( qiG, 만약 내가 = s라면 qiG + wiPi, 내가 ̸=s라면 리 = ( qiHp(파이), 만약 내가 = s라면 qiHp(파이) + wiI, 내가 ̸=s라면 다음 단계는 비대화형 문제를 해결하는 것입니다. c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) 마지막으로 서명자는 응답을 계산합니다. 시 = 위, 내가 ̸=s라면 c - nP 나는=0 ci 모드 l, 만약 내가 = s라면 리 = ( 기, 내가 ̸=s라면 qs -csx 모드 l, 만약 내가 = s라면 결과 서명은 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)입니다. 9 VER: 메시지 m, 집합 S, 서명 \(\sigma\)를 가져와 "true" 또는 "false"를 출력합니다. LNK: 집합 I = {Ii}, 서명 \(\sigma\)를 취하고 "linked" 또는 "indep"을 출력합니다. 프로토콜의 기본 아이디어는 매우 간단합니다. 사용자는 서명을 생성합니다. 고유한 공개 키가 아닌 공개 키 세트로 확인됩니다. 서명자의 신원은 다음과 같습니다. 소유자가 공개 키를 생성할 때까지 세트에 있는 공개 키를 가진 다른 사용자와 구별할 수 없습니다. 동일한 키 쌍을 사용하는 두 번째 서명. 개인 키 x0 \(\cdots\) xi \(\cdots\) xn 공개 키 P0 \(\cdots\) 파이 \(\cdots\) Pn 반지 서명 기호 확인하다 그림 6. 링 서명 익명성. GEN: 서명자는 임의의 비밀 키 \(x \in [1, l - 1]\)을 선택하고 해당하는 값을 계산합니다. 공개 키 P = xG. 추가적으로 그는 또 다른 공개 키 I = xHp(P)를 계산합니다. "키 이미지"라고 부릅니다. SIG: 서명자는 비대화형 영지식을 사용하여 일회성 링 서명을 생성합니다. [21]의 기술을 사용하여 증명합니다. 그는 다른 사용자의 n의 무작위 부분집합 \(S'\)를 선택합니다. 공개 키 Pi, 자신의 키 쌍(x, P) 및 키 이미지 I. \(0 \leq s \leq n\)을 서명자의 비밀 인덱스로 둡니다. S에서(그의 공개 키는 Ps임) 그는 무작위로 {qi | 나는 = 0 . . . n} 및 {wi | 나는 = 0 . . . n, i ̸= s} (1 . . . l)에서 다음을 적용합니다. 다음 변환: 리 = ( qiG, 만약 내가 = s라면 qiG + wiPi, 내가 ̸=s라면 리 = ( qiHp(파이), 만약 내가 = s라면 qiHp(파이) + wiI, 내가 ̸=s라면 다음 단계는 비대화형 문제를 해결하는 것입니다. c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) 마지막으로 서명자는 응답을 계산합니다. 시 = 위, 내가 ̸=s라면 c - nP 나는=0 ci 모드 l, 만약 내가 = s라면 리 = ( 기, 내가 ̸=s라면 qs -csx 모드 l, 만약 내가 = s라면 결과 서명은 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)입니다. 9 17 아마도 이것은 어리석은 일이지만 S와 P_를 통합할 때는 주의가 필요합니다. 그냥 추가하면 마지막 공개 키는 누군가가 통과하는 거래를 확인하기 때문에 연결 해제가 깨졌습니다. 각 거래에 나열된 마지막 공개 키를 확인하면 됩니다. 그게 공개키야 발신자와 연결됩니다. 따라서 합집합 후에 의사 난수 생성기는 다음과 같아야 합니다. 선택한 공개 키를 변경하는 데 사용됩니다. "...소유자가 동일한 키 쌍을 사용하여 두 번째 서명을 생성할 때까지." 작가님(들?) 이에 대해 자세히 설명하겠습니다. 나는 이것이 "난독화할 공개 키 세트를 선택할 때마다 두 개의 키가 하나도 없는 완전히 새로운 세트를 선택하세요." 연결 해제 시 적용할 수 있는 매우 강력한 조건입니다. 아마도 "당신은 다음 중 새로운 무작위 세트를 선택합니다. 가능한 모든 키"는 사소하지 않은 교차점은 필연적으로 발생하지만 그런 일은 자주 일어나지 않을 것입니다. 어느 쪽이든, 나는 이 말을 더 깊이 파고들 필요가 있습니다. 링 서명이 생성됩니다. 영지식 증명은 훌륭합니다. 당신이 비밀을 알고 있다는 것을 나에게 증명해 보세요. 비밀을 밝히지 않고. 예를 들어, 우리가 도넛 모양의 동굴 입구에 있다고 가정해 보겠습니다. 그리고 동굴 뒤쪽(입구에서 보이지 않는 곳)에는당신이 향하는 새로운 문 당신이 열쇠를 가지고 있다고 주장하세요. 한 방향으로 가면 항상 지나갈 수 있지만, 한 방향으로 가면 다른 방향에서는 열쇠가 필요합니다. 하지만 당신은 나에게 열쇠를 보여주고 싶어하지도 않습니다. 문이 열린다는 것을 보여주세요. 하지만 당신은 문을 여는 방법을 알고 있다는 것을 나에게 증명하고 싶어합니다. 문. 대화형 환경에서는 동전을 던집니다. 앞면이 왼쪽, 뒷면이 오른쪽이고 아래로 내려갑니다. 동전이 가리키는 방향에 따라 도넛 모양의 동굴이 나옵니다. 그 뒷편엔 내 시야 너머에 네가 문을 열어 반대쪽으로 돌아오세요. 동전 던지기 실험을 반복합니다 당신이 열쇠를 갖고 있다는 사실이 만족스러울 때까지요. 그러나 그것은 분명히 인터랙티브 영지식 증명입니다. 당신과 내가 결코 의사소통할 필요가 없는 비대화형 버전이 있습니다. 이렇게 하면 도청자가 방해할 수 없습니다. http://en.wikipedia.org/wiki/Zero-knowledge_proof 이는 이전 정의와 반대입니다.
VER: 메시지 m, 집합 S, 서명 \(\sigma\)를 가져와 "true" 또는 "false"를 출력합니다. LNK: 집합 I = {Ii}, 서명 \(\sigma\)를 취하고 "linked" 또는 "indep"을 출력합니다. 프로토콜의 기본 아이디어는 매우 간단합니다. 사용자는 서명을 생성합니다. 고유한 공개 키가 아닌 공개 키 세트로 확인됩니다. 서명자의 신원은 다음과 같습니다. 소유자가 공개 키를 생성할 때까지 세트에 있는 공개 키를 가진 다른 사용자와 구별할 수 없습니다. 동일한 키 쌍을 사용하는 두 번째 서명. 개인 키 x0 \(\cdots\) xi \(\cdots\) xn 공개 키 P0 \(\cdots\) 파이 \(\cdots\) Pn 반지 서명 기호 확인하다 그림 6. 링 서명 익명성. GEN: 서명자는 임의의 비밀 키 \(x \in [1, l - 1]\)을 선택하고 해당하는 값을 계산합니다. 공개 키 P = xG. 추가적으로 그는 또 다른 공개 키 I = xHp(P)를 계산합니다. "키 이미지"라고 부릅니다. SIG: 서명자는 비대화형 영지식을 사용하여 일회성 링 서명을 생성합니다. [21]의 기술을 사용하여 증명합니다. 그는 다른 사용자의 n의 무작위 부분집합 \(S'\)를 선택합니다. 공개 키 Pi, 자신의 키 쌍(x, P) 및 키 이미지 I. \(0 \leq s \leq n\)을 서명자의 비밀 인덱스로 둡니다. S에서(그의 공개 키는 Ps임) 그는 무작위로 {qi | 나는 = 0 . . . n} 및 {wi | 나는 = 0 . . . n, i ̸= s} (1 . . . l)에서 다음을 적용합니다. 다음 변환: 리 = ( qiG, 만약 내가 = s라면 qiG + wiPi, 내가 ̸=s라면 리 = ( qiHp(파이), 만약 내가 = s라면 qiHp(파이) + wiI, 내가 ̸=s라면 다음 단계는 비대화형 문제를 해결하는 것입니다. c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) 마지막으로 서명자는 응답을 계산합니다. 시 = 위, 내가 ̸=s라면 c - nP 나는=0 ci 모드 l, 만약 내가 = s라면 리 = ( 기, 내가 ̸=s라면 qs -csx 모드 l, 만약 내가 = s라면 결과 서명은 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)입니다. 9 VER: 메시지 m, 집합 S, 서명 \(\sigma\)를 가져와 "true" 또는 "false"를 출력합니다. LNK: 집합 I = {Ii}, 서명 \(\sigma\)를 취하고 "linked" 또는 "indep"을 출력합니다. 프로토콜의 기본 아이디어는 매우 간단합니다. 사용자는 서명을 생성합니다. 고유한 공개 키가 아닌 공개 키 세트로 확인됩니다. 서명자의 신원은 다음과 같습니다. 소유자가 공개 키를 생성할 때까지 세트에 있는 공개 키를 가진 다른 사용자와 구별할 수 없습니다. 동일한 키 쌍을 사용하는 두 번째 서명. 개인 키 x0 \(\cdots\) xi \(\cdots\) xn 공개 키 P0 \(\cdots\) 파이 \(\cdots\) Pn 반지 서명 기호 확인하다 그림 6. 링 서명 익명성. GEN: 서명자는 임의의 비밀 키 \(x \in [1, l - 1]\)을 선택하고 해당하는 값을 계산합니다. 공개 키 P = xG. 추가적으로 그는 또 다른 공개 키 I = xHp(P)를 계산합니다. "키 이미지"라고 부릅니다. SIG: 서명자는 비대화형 영지식을 사용하여 일회성 링 서명을 생성합니다. [21]의 기술을 사용하여 증명합니다. 그는 다른 사용자의 n의 무작위 부분집합 \(S'\)를 선택합니다. 공개 키 Pi, 자신의 키 쌍(x, P) 및 키 이미지 I. \(0 \leq s \leq n\)을 서명자의 비밀 인덱스로 둡니다. S에서(그의 공개 키는 Ps임) 그는 무작위로 {qi | 나는 = 0 . . . n} 및 {wi | 나는 = 0 . . . n, i ̸= s} (1 . . . l)에서 다음을 적용합니다. 다음 변환: 리 = ( qiG, 만약 내가 = s라면 qiG + wiPi, 내가 ̸=s라면 리 = ( qiHp(파이), 만약 내가 = s라면 qiHp(파이) + wiI, 내가 ̸=s라면 다음 단계는 비대화형 문제를 해결하는 것입니다. c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) 마지막으로 서명자는 응답을 계산합니다. 시 = 위, 내가 ̸=s라면 c - nP 나는=0 ci 모드 l, 만약 내가 = s라면 리 = ( 기, 내가 ̸=s라면 qs -csx 모드 l, 만약 내가 = s라면 결과 서명은 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)입니다. 9 18 이 전체 영역은 암호화폐에 구애받지 않고 단순히 링 서명 알고리즘을 설명합니다. 통화에 대한 언급. 나는 표기법 중 일부가 논문의 나머지 부분과 일치한다고 생각합니다. 그래도. 예를 들어 x는 GEN에서 선택된 "무작위" 비밀 키이며 공개 키 P를 제공합니다. 공개 키 이미지 I. 이 x 값은 Bob이 6페이지 8페이지에서 계산한 값입니다. 따라서 이것은 이전 설명에서 발생한 혼란을 해결하기 시작했습니다. 이건 좀 멋지네요. 돈이 "Alice의 공개 주소에서 Bob의 공개 주소로 이체되지 않습니다." 주소." 일회성 주소에서 일회성 주소로 이전 중입니다. 어떤 의미에서 이것이 작동하는 방식은 다음과 같습니다. Alex가 누군가 때문에 암호화폐를 가지고 있다면 이는 그녀가 Bob에게 보내는 데 필요한 개인 키를 가지고 있음을 의미합니다. 그녀는 새로운 일회성 주소를 생성하기 위해 Bob의 공개 정보를 사용하는 Dffie-Hellman 교환 암호화폐는 해당 주소로 전송됩니다. 이제 (아마도 안전한) DH 교환이 새로운 일회용 주소를 생성하는 데 사용되었으므로 Alex가 CN을 보낸 곳에서 Bob은 CN을 반복하는 데 필요한 개인 키를 가진 유일한 사람입니다. 위. 이제 Bob은 Alex입니다. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation 합계는 i가 아닌 j에 대해 인덱싱되어야 합니다. 각 c_i는 무작위 정크입니다(w_i는 무작위이므로). c_i 엉덩이만 빼고이 서명과 관련된 실제 키와 관련이 있습니다. c의 값은 다음과 같습니다. 이전 정보의 hash. 하지만 여기에는 인덱스 'i'를 재사용하는 것보다 더 나쁜 오타가 포함되어 있을 수 있다고 생각합니다. 왜냐하면 c_s가 다음과 같이 보이기 때문입니다. 명시적으로 정의하는 것이 아니라 암시적으로 정의해야 합니다. 실제로, 이 방정식을 믿음으로 취하면 c_s = (1/2)c - (1/2)라고 결정합니다. sum_i neq s c_i. 즉, hash에서 난수 전체를 뺀 것입니다. 반면, 이 합산을 읽으려는 경우 "c_s = (c - sum_j neq s c_j) mod l", 그런 다음 이전 정보의 hash을 가져와서 여러 개의 난수를 생성합니다. hash에서 모든 난수를 빼면 c_s가 됩니다. 이 것 같다 내 직관에 따라 "무슨 일이 일어나야 하는지"와 10페이지의 확인 단계와 일치합니다. 그러나 직관은 수학이 아니다. 이에 대해 더 자세히 알아보겠습니다. 이전과 동일합니다. 실제와 관련된 것을 제외하고 이들 모두는 임의의 정크입니다. 서명자의 공개 키 x. 이번을 제외하고는 이것이 구조에서 내가 기대하는 것 이상입니다. r_i는 i!=s에 대해 무작위이며 r_s는 비밀 x와 s 인덱스 값에 의해서만 결정됩니다. q_i와 c_i.
VER: 검증자는 역변환을 적용하여 서명을 확인합니다. ( 엘' 나는 = 리그 + ciPi R′ i = riHp(Pi) + ciI 마지막으로 검증자는 다음 사항을 확인합니다. nP 나는=0 ci ?= Hs(m, L' 0, . . . , 엘' n, R′ 0, . . . , R' n) 모드 l 이 동등성이 정확하면 검증자는 알고리즘 LNK를 실행합니다. 그렇지 않으면 검증자가 거부합니다. 서명. LNK: 검증자는 과거 서명에 내가 사용되었는지 확인합니다(이 값은 I)을 설정합니다. 여러 번 사용한다는 것은 동일한 비밀 키로 두 개의 서명이 생성되었음을 의미합니다. 프로토콜의 의미: L 변환을 적용하여 서명자는 자신이 알고 있음을 증명합니다. 그러한 x는 적어도 하나의 Pi = xG입니다. 이 증명을 반복 불가능하게 만들기 위해 핵심 이미지를 소개합니다. I = xHp(P)입니다. 서명자는 동일한 계수(ri, ci)를 사용하여 거의 동일한 진술을 증명합니다. 그는 적어도 하나의 \(H_p(P_i) = I \cdot x^{-1}\)이라는 x를 알고 있습니다. 매핑 x \(\to\) I가 주입인 경우: 1. 누구도 키 이미지에서 공개 키를 복구하고 서명자를 식별할 수 없습니다. 2. 서명자는 서로 다른 I와 동일한 x를 사용하여 두 개의 서명을 만들 수 없습니다. 전체 보안 분석은 부록 A에 제공됩니다. 4.5 표준 CryptoNote 거래 Bob은 두 가지 방법(링크할 수 없는 공개 키와 추적할 수 없는 링 서명)을 결합하여 다음을 달성합니다. 원래 Bitcoin 체계와 비교하여 새로운 수준의 개인 정보 보호를 제공합니다. 저장만 하면 됩니다. 하나의 개인 키(a, b)와 게시(A, B)를 사용하여 익명 트랜잭션 수신 및 전송을 시작합니다. 각 트랜잭션을 검증하는 동안 Bob은 트랜잭션이 자신에게 속하는지 확인하기 위해 출력당 두 번의 타원 곡선 곱셈과 한 번의 추가만 추가로 수행합니다. 그의 모든 것을 위해 출력 Bob은 일회용 키 쌍(pi, Pi)을 복구하여 자신의 지갑에 저장합니다. 모든 입력이 가능합니다. 단일 거래에 등장하는 경우에만 정황상 소유자가 동일한 것으로 입증됩니다. 에서 사실 이 관계는 일회성 링 서명으로 인해 설정하기가 훨씬 더 어렵습니다. 링 서명을 사용하면 Bob은 다른 사람의 모든 입력을 효과적으로 숨길 수 있습니다. 모두 가능 지출자는 동일할 가능성이 높으며, 심지어 이전 소유자(앨리스)도 다음보다 더 많은 정보를 갖고 있지 않습니다. 어떤 관찰자. 자신의 거래에 서명할 때 Bob은 자신의 거래 금액과 동일한 금액으로 n개의 해외 출력을 지정합니다. 다른 사용자의 참여 없이 모두 혼합하여 출력합니다. 밥 자신도 (그리고 다른 사람) 이러한 지불이 지출되었는지 여부를 알 수 없습니다. 출력을 사용할 수 있습니다. 수천 개의 서명을 모호한 요소로 삼고 결코 숨길 대상으로 삼지 않습니다. 더블 지출 확인은 사용된 키 이미지 세트를 확인할 때 LNK 단계에서 발생합니다. Bob은 스스로 모호성 정도를 선택할 수 있습니다. n = 1은 그가 가질 확률이 소비된 출력은 50% 확률이고, n = 99는 1%를 제공합니다. 결과 서명의 크기가 증가합니다. 선형적으로 O(n+1)이므로 향상된 익명성은 Bob에게 추가 거래 수수료를 부과합니다. 그는 또한 할 수 있습니다 n = 0으로 설정하고 그의 링 서명이 단 하나의 요소로 구성되도록 만듭니다. 그러나 이는 즉시 그를 지출자로 밝혀라. 10 VER: 검증자는 역변환을 적용하여 서명을 확인합니다. ( 엘' 나는 = 리그 + ciPi R′ i = riHp(Pi) + ciI 마지막으로 검증자는 다음 사항을 확인합니다. nP 나는=0 ci ?= Hs(m, L' 0, . . . , 엘' n, R′ 0, . . . , R' n) 모드 l 이 동등성이 정확하면 검증자는 알고리즘 LNK를 실행합니다. 그렇지 않으면 검증자가 거부합니다. 서명. LNK: 검증자는 과거 서명에 내가 사용되었는지 확인합니다(이 값은 I)을 설정합니다. 여러 번 사용한다는 것은 동일한 비밀 키로 두 개의 서명이 생성되었음을 의미합니다. 프로토콜의 의미: L 변환을 적용하여 서명자는 자신이 알고 있음을 증명합니다. 그러한 x는 적어도 하나의 Pi = xG입니다. 이 증명을 반복 불가능하게 만들기 위해 핵심 이미지를 소개합니다. I = xHp(P)입니다. 서명자는 동일한 계수(ri, ci)를 사용하여 거의 동일한 진술을 증명합니다. 그는 적어도 하나의 \(H_p(P_i) = I \cdot x^{-1}\)이라는 x를 알고 있습니다. 매핑 x \(\to\) I가 주입인 경우: 1. 누구도 키 이미지에서 공개 키를 복구하고 서명자를 식별할 수 없습니다. 2. 서명자는 서로 다른 I와 동일한 x를 사용하여 두 개의 서명을 만들 수 없습니다. 전체 보안 분석은 부록 A에 제공됩니다. 4.5 표준 CryptoNote 거래 Bob은 두 가지 방법(링크할 수 없는 공개 키와 추적할 수 없는 링 서명)을 결합하여 다음을 달성합니다. 원래 Bitcoin 체계와 비교하여 새로운 수준의 개인정보 보호를 제공합니다. 저장만 하면 됩니다. 하나의 개인 키(a, b)와 게시(A, B)를 사용하여 익명 트랜잭션 수신 및 전송을 시작합니다. 각 트랜잭션을 검증하는 동안 Bob은 트랜잭션이 자신에게 속하는지 확인하기 위해 출력당 두 번의 타원 곡선 곱셈과 한 번의 추가만 추가로 수행합니다. 그의 모든 것을 위해 출력 Bob은 일회용 키 쌍(pi, Pi) 및 st를 복구합니다.그의 지갑에 광석이 있어요. 모든 입력이 가능합니다. 단일 거래에 등장하는 경우에만 정황상 소유자가 동일한 것으로 입증됩니다. 에서 사실 이 관계는 일회성 링 서명으로 인해 설정하기가 훨씬 더 어렵습니다. 링 서명을 사용하면 Bob은 다른 사람의 모든 입력을 효과적으로 숨길 수 있습니다. 모두 가능 지출자는 동일할 가능성이 높으며, 심지어 이전 소유자(앨리스)도 다음보다 더 많은 정보를 갖고 있지 않습니다. 어떤 관찰자. 자신의 거래에 서명할 때 Bob은 자신의 거래 금액과 동일한 금액으로 n개의 해외 출력을 지정합니다. 다른 사용자의 참여 없이 모두 혼합하여 출력합니다. 밥 자신도 (그리고 다른 사람) 이러한 지불이 지출되었는지 여부를 알 수 없습니다. 출력을 사용할 수 있습니다. 수천 개의 서명을 모호한 요소로 삼고 결코 숨길 대상으로 삼지 않습니다. 더블 지출 확인은 사용된 키 이미지 세트를 확인할 때 LNK 단계에서 발생합니다. Bob은 스스로 모호성 정도를 선택할 수 있습니다. n = 1은 그가 가질 확률이 소비된 출력은 50% 확률이고, n = 99는 1%를 제공합니다. 결과 서명의 크기가 증가합니다. 선형적으로 O(n+1)이므로 향상된 익명성은 Bob에게 추가 거래 수수료를 부과합니다. 그는 또한 할 수 있습니다 n = 0으로 설정하고 그의 링 서명이 단 하나의 요소로 구성되도록 만듭니다. 그러나 이는 즉시 그를 지출자로 밝혀라. 10 19 이 시점에서 나는 매우 혼란스러워졌습니다. Alex는 서명(I,c_1, ..., c_n, r_1, ..., r_n)과 공개 목록이 포함된 메시지 M을 받습니다. 키 S. 그리고 그녀는 VER를 실행합니다. 그러면 L_i'와 R_i'가 계산됩니다. 이는 이전 페이지의 c_s = c - sum_i neq s c_i임을 확인합니다. 처음에 나는 매우 혼란스러웠습니다. 누구나 L_i'와 R_i'를 계산할 수 있습니다. 실제로 각 r_i와 c_i는 서명에 게시되었습니다. I의 값과 함께 시그마. 집합 S = 모든 공개 키의 P_i도 공개되었습니다. 따라서 시그마와 세트를 본 사람은 누구나 키 S = P_i는 L_i' 및 R_i'에 대해 동일한 값을 얻으므로 서명을 확인합니다. 하지만 이 섹션은 단순히 서명 알고리즘을 설명하는 것이지 "검사"를 설명하는 것이 아니라는 것을 기억했습니다. 서명했다면 SENT TO ME인지 확인하고, 그렇다면 가서 돈을 쓰세요." 이것은 단순히 게임의 시그니처 부분. 마침내 그곳에 도착하면 부록 A를 읽고 싶습니다. Cryptonote와 Bitcoin의 본격적인 동작별 비교를 보고 싶습니다. 또한, 전기/지속가능성. 여기서 "입력"을 구성하는 알고리즘은 무엇입니까? 내 생각에 거래 입력은 Amount와 UTXO의 집합으로, 합산하면 다음보다 더 큰 금액이 됩니다. 금액. 이것은 불분명합니다. "숨어갈 대상?" 나는 이것에 대해 몇 분 동안 생각해 보았지만 아직도 그 생각을 하지 못했습니다. 그것이 무엇을 의미하는지 가장 모호한 생각입니다. 이중 지출 공격은 노드에서 인식된 사용 키를 조작해야만 실행될 수 있습니다. 이미지가 \(I\)로 설정되었습니다. "모호성 정도" = n이지만 거래에 포함된 공개키의 총 개수는 n+1. 즉, 모호성 정도는 "다른 사람이 몇 명이나 있기를 원하는가"입니다. 군중?" 대답은 아마도 기본적으로 "가능한 한 많이"일 것입니다.
VER: 검증자는 역변환을 적용하여 서명을 확인합니다. ( 엘' 나는 = 리그 + ciPi R′ i = riHp(Pi) + ciI 마지막으로 검증자는 다음 사항을 확인합니다. nP 나는=0 ci ?= Hs(m, L' 0, . . . , 엘' n, R′ 0, . . . , R' n) 모드 l 이 동등성이 정확하면 검증자는 알고리즘 LNK를 실행합니다. 그렇지 않으면 검증자가 거부합니다. 서명. LNK: 검증자는 과거 서명에 내가 사용되었는지 확인합니다(이 값은 I)을 설정합니다. 여러 번 사용한다는 것은 동일한 비밀 키로 두 개의 서명이 생성되었음을 의미합니다. 프로토콜의 의미: L 변환을 적용하여 서명자는 자신이 알고 있음을 증명합니다. 그러한 x는 적어도 하나의 Pi = xG입니다. 이 증명을 반복 불가능하게 만들기 위해 핵심 이미지를 소개합니다. I = xHp(P)입니다. 서명자는 동일한 계수(ri, ci)를 사용하여 거의 동일한 진술을 증명합니다. 그는 적어도 하나의 \(H_p(P_i) = I \cdot x^{-1}\)이라는 x를 알고 있습니다. 매핑 x \(\to\) I가 주입인 경우: 1. 누구도 키 이미지에서 공개 키를 복구하고 서명자를 식별할 수 없습니다. 2. 서명자는 서로 다른 I와 동일한 x를 사용하여 두 개의 서명을 만들 수 없습니다. 전체 보안 분석은 부록 A에 제공됩니다. 4.5 표준 CryptoNote 거래 Bob은 두 가지 방법(링크할 수 없는 공개 키와 추적할 수 없는 링 서명)을 결합하여 다음을 달성합니다. 원래 Bitcoin 방식과 비교하여 새로운 수준의 개인정보 보호를 제공합니다. 저장만 하면 됩니다. 하나의 개인 키(a, b)와 게시(A, B)를 사용하여 익명 트랜잭션 수신 및 전송을 시작합니다. 각 트랜잭션을 검증하는 동안 Bob은 트랜잭션이 자신에게 속하는지 확인하기 위해 출력당 두 번의 타원 곡선 곱셈과 한 번의 추가만 추가로 수행합니다. 그의 모든 것을 위해 출력 Bob은 일회용 키 쌍(pi, Pi)을 복구하여 자신의 지갑에 저장합니다. 모든 입력이 가능합니다. 단일 거래에 등장하는 경우에만 정황상 소유자가 동일한 것으로 입증됩니다. 에서 사실 이 관계는 일회성 링 서명으로 인해 설정하기가 훨씬 더 어렵습니다. 링 서명을 사용하면 Bob은 다른 사람의 모든 입력을 효과적으로 숨길 수 있습니다. 모두 가능 지출자는 동일할 가능성이 높으며, 심지어 이전 소유자(앨리스)도 다음보다 더 많은 정보를 갖고 있지 않습니다. 어떤 관찰자. 자신의 거래에 서명할 때 Bob은 자신의 거래 금액과 동일한 금액으로 n개의 해외 출력을 지정합니다. 다른 사용자의 참여 없이 모두 혼합하여 출력합니다. 밥 자신도 (그리고 다른 사람) 이러한 지불이 지출되었는지 여부를 알 수 없습니다. 출력을 사용할 수 있습니다. 수천 개의 서명을 모호한 요소로 삼고 결코 숨길 대상으로 삼지 않습니다. 더블 지출 확인은 사용된 키 이미지 세트를 확인할 때 LNK 단계에서 발생합니다. Bob은 스스로 모호성 정도를 선택할 수 있습니다. n = 1은 그가 가질 확률이 소비된 출력은 50% 확률이고, n = 99는 1%를 제공합니다. 결과 서명의 크기가 증가합니다. 선형적으로 O(n+1)이므로 향상된 익명성은 Bob에게 추가 거래 수수료를 부과합니다. 그는 또한 할 수 있습니다 n = 0으로 설정하고 그의 링 서명이 단 하나의 요소로 구성되도록 만듭니다. 그러나 이는 즉시 그를 지출자로 밝혀라. 10 VER: 검증자는 역변환을 적용하여 서명을 확인합니다. ( 엘' 나는 = 리그 + ciPi R′ i = riHp(Pi) + ciI 마지막으로 검증자는 다음 사항을 확인합니다. nP 나는=0 ci ?= Hs(m, L' 0, . . . , 엘' n, R′ 0, . . . , R' n) 모드 l 이 동등성이 정확하면 검증자는 알고리즘 LNK를 실행합니다. 그렇지 않으면 검증자가 거부합니다. 서명. LNK: 검증자는 과거 서명에 내가 사용되었는지 확인합니다(이 값은 I)을 설정합니다. 여러 번 사용한다는 것은 동일한 비밀 키로 두 개의 서명이 생성되었음을 의미합니다. 프로토콜의 의미: L 변환을 적용하여 서명자는 자신이 알고 있음을 증명합니다. 그러한 x는 적어도 하나의 Pi = xG입니다. 이 증명을 반복 불가능하게 만들기 위해 핵심 이미지를 소개합니다. I = xHp(P)입니다. 서명자는 동일한 계수(ri, ci)를 사용하여 거의 동일한 진술을 증명합니다. 그는 적어도 하나의 \(H_p(P_i) = I \cdot x^{-1}\)이라는 x를 알고 있습니다. 매핑 x \(\to\) I가 주입인 경우: 1. 누구도 키 이미지에서 공개 키를 복구하고 서명자를 식별할 수 없습니다. 2. 서명자는 서로 다른 I와 동일한 x를 사용하여 두 개의 서명을 만들 수 없습니다. 전체 보안 분석은 부록 A에 제공됩니다. 4.5 표준 CryptoNote 거래 Bob은 두 가지 방법(링크할 수 없는 공개 키와 추적할 수 없는 링 서명)을 결합하여 다음을 달성합니다. 원래 Bitcoin 체계와 비교하여 새로운 수준의 개인정보 보호를 제공합니다. 저장만 하면 됩니다. 하나의 개인 키(a, b)와 게시(A, B)를 사용하여 익명 트랜잭션 수신 및 전송을 시작합니다. 각 트랜잭션을 검증하는 동안 Bob은 트랜잭션이 자신에게 속하는지 확인하기 위해 출력당 두 번의 타원 곡선 곱셈과 한 번의 추가만 추가로 수행합니다. 그의 모든 것을 위해 출력 Bob은 일회용 키 쌍(pi, Pi) 및 st를 복구합니다.그의 지갑에 광석이 있어요. 모든 입력이 가능합니다. 단일 거래에 등장하는 경우에만 정황상 소유자가 동일한 것으로 입증됩니다. 에서 사실 이 관계는 일회성 링 서명으로 인해 설정하기가 훨씬 더 어렵습니다. 링 서명을 사용하면 Bob은 다른 사람의 모든 입력을 효과적으로 숨길 수 있습니다. 모두 가능 지출자는 동일할 가능성이 높으며, 심지어 이전 소유자(앨리스)도 다음보다 더 많은 정보를 갖고 있지 않습니다. 어떤 관찰자. 자신의 거래에 서명할 때 Bob은 자신의 거래 금액과 동일한 금액으로 n개의 해외 출력을 지정합니다. 다른 사용자의 참여 없이 모두 혼합하여 출력합니다. 밥 자신도 (그리고 다른 사람) 이러한 지불이 지출되었는지 여부를 알 수 없습니다. 출력을 사용할 수 있습니다. 수천 개의 서명을 모호한 요소로 삼고 결코 숨길 대상으로 삼지 않습니다. 더블 지출 확인은 사용된 키 이미지 세트를 확인할 때 LNK 단계에서 발생합니다. Bob은 스스로 모호성 정도를 선택할 수 있습니다. n = 1은 그가 가질 확률이 소비된 출력은 50% 확률이고, n = 99는 1%를 제공합니다. 결과 서명의 크기가 증가합니다. 선형적으로 O(n+1)이므로 향상된 익명성은 Bob에게 추가 거래 수수료를 부과합니다. 그는 또한 할 수 있습니다 n = 0으로 설정하고 그의 링 서명이 단 하나의 요소로 구성되도록 만듭니다. 그러나 이는 즉시 그를 지출자로 밝혀라. 10 20 이것은 흥미롭습니다. 앞서 우리는 수신자 Bob이 모든 INCOMING을 수행할 수 있는 방법을 제공했습니다. 개인 키의 절반을 결정론적으로 선택하거나 다음을 통해 연결 해제할 수 없는 트랜잭션 그의 개인 키 절반을 공개로 공개합니다. 이는 되돌릴 수 없는 일종의 정책입니다. 여기서 우리는 본다 발신자 Alex가 하나의 나가는 트랜잭션을 연결 가능한 것으로 선택하는 방법이지만 실제로는 Alex가 전체 네트워크의 발신자로 밝혀졌습니다. 이는 되돌릴 수 없는 종류의 정책이 아닙니다. 이는 거래별입니다. 세 번째 정책이 있나요? 수신자 Bob이 Alex를 위한 고유 결제 ID를 생성할 수 있나요? 아마도 Diffie-Hellman 교환을 사용하여 변경되지 않습니까? 누군가 그 지불금을 포함한다면 Bob의 주소에 대한 거래 어딘가에 ID가 번들로 포함되어 있으며 Alex가 보낸 것임에 틀림없습니다. 이런 식으로 Alex는 특정 링크를 연결하도록 선택하여 전체 네트워크에 자신을 공개할 필요가 없습니다. 하지만 그녀는 자신이 돈을 보내는 사람에게 여전히 자신의 신원을 확인할 수 있습니다. 이것이 바로 폴로닉스가 하는 일이 아닌가요?
거래 송신 입력 출력0 . . . 출력i . . . 출력n 주요 이미지 서명 링 시그니처 대상 키 출력1 대상 키 출력n 해외거래 발신자의 출력 대상 키 일회용 키쌍 일회성 개인 키 나는 = xHp(P) 피, 엑스 그림 7. 표준 트랜잭션에서 링 서명 생성. 5 평등주의적 작업 증명 이 섹션에서는 새로운 proof-of-work 알고리즘을 제안하고 기반으로 삼습니다. 우리의 주요 목표 CPU(다수)와 GPU/FPGA/ASIC(소수) 채굴기 간의 격차를 줄이는 것입니다. 그것은 일부 사용자가 다른 사용자에 비해 특정 이점을 가질 수 있다는 것은 적절하지만, 그들의 투자는 최소한 전력에 따라 선형적으로 증가해야 합니다. 보다 일반적으로 특수 목적 장치를 생산하는 경우 최대한 수익성이 낮아야 합니다. 5.1 관련 작품 원래 Bitcoin proof-of-work 프로토콜은 CPU 집약적인 가격 책정 기능 SHA-256을 사용합니다. 주로 기본 논리 연산자로 구성되며 계산 속도에만 의존합니다. 따라서 멀티코어/컨베이어 구현에 완벽하게 적합합니다. 그러나 현대 컴퓨터는 초당 작업 수에만 제한을 두지 않습니다. 뿐만 아니라 메모리 크기에 따라서도 마찬가지입니다. 일부 프로세서는 다른 프로세서보다 훨씬 더 빠를 수 있지만([8]), 메모리 크기는 시스템마다 다를 가능성이 적습니다. 메모리 바인딩 가격 함수는 Abadi et al에 의해 처음 소개되었으며 다음과 같이 정의되었습니다. "계산 시간이 메모리 액세스에 소요되는 시간에 의해 좌우되는 함수" [15]. 주요 아이디어는 대규모 데이터 블록(“스크래치패드”)을 할당하는 알고리즘을 구축하는 것입니다. 상대적으로 느리게 액세스할 수 있는 메모리(예: RAM) 내에서 예측할 수 없는 일련의 위치”를 포함합니다. 블록은 보존할 수 있을 만큼 충분히 커야 합니다. 액세스할 때마다 데이터를 다시 계산하는 것보다 데이터가 더 유리합니다. 알고리즘은 또한 내부 병렬성을 방지하므로 N개의 동시 스레드에는 N배 더 많은 메모리가 필요합니다. 즉시. Dwork et al [22]은 이 접근 방식을 조사하고 공식화하여 다른 제안을 했습니다. 가격 책정 기능의 변형: "Mbound". 또 하나의 작품은 F. Coelho [20]의 작품입니다. 11 거래 송신 입력 출력0 . . . 출력i . . . 출력n 주요 이미지 서명 링 시그니처 대상 키 출력1 대상 키 출력n 해외거래 발신자의 출력 대상 키 일회용 키쌍 일회성 개인 키 나는 = xHp(P) 피, 엑스 그림 7. 표준 트랜잭션에서 링 서명 생성. 5 평등주의적 작업 증명 이 섹션에서는 새로운 proof-of-work 알고리즘을 제안하고 기반으로 삼습니다. 우리의 주요 목표 CPU(다수)와 GPU/FPGA/ASIC(소수) 채굴기 간의 격차를 줄이는 것입니다. 그것은 일부 사용자가 다른 사용자에 비해 특정 이점을 가질 수 있다는 것은 적절하지만, 그들의 투자는 최소한 전력에 따라 선형적으로 증가해야 합니다. 보다 일반적으로 특수 목적 장치를 생산하는 경우 최대한 수익성이 낮아야 합니다. 5.1 관련 작품 원래 Bitcoin proof-of-work 프로토콜은 CPU 집약적인 가격 책정 기능 SHA-256을 사용합니다. 주로 기본 논리 연산자로 구성되며 계산 속도에만 의존합니다. 따라서 멀티코어/컨베이어 구현에 완벽하게 적합합니다. 그러나 현대 컴퓨터는 초당 작업 수에만 제한을 두지 않습니다. 뿐만 아니라 메모리 크기에 따라서도 마찬가지입니다. 일부 프로세서는 다른 프로세서보다 훨씬 더 빠를 수 있지만([8]), 메모리 크기는 시스템마다 다를 가능성이 적습니다. 메모리 바인딩 가격 함수는 Abadi et al에 의해 처음 소개되었으며 다음과 같이 정의되었습니다. "계산 시간이 메모리 액세스에 소요되는 시간에 의해 좌우되는 함수" [15]. 주요 아이디어는 대규모 데이터 블록(“스크래치패드”)을 할당하는 알고리즘을 구축하는 것입니다. 상대적으로 느리게 액세스할 수 있는 메모리(예: RAM) 내에서 예측할 수 없는 일련의 위치”를 포함합니다. 블록은 보존할 수 있을 만큼 충분히 커야 합니다. 액세스할 때마다 데이터를 다시 계산하는 것보다 데이터가 더 유리합니다. 알고리즘은 또한 내부 병렬성을 방지하므로 N개의 동시 스레드에는 N배 더 많은 메모리가 필요합니다. 즉시. Dwork et al [22]은 이 접근 방식을 조사하고 공식화하여 다른 제안을 제시했습니다. 가격 책정 기능의 변형: "Mbound". 또 하나의 작품은 F. Coelho [20]의 작품입니다. 11 21 표면적으로는 UTXO의 금액 및 대상 키입니다. Alex가 이 표준 트랜잭션을 구성하고 Bob에게 보내는 사람이라면 Alex도 개인 키를 갖게 됩니다. 이들 각각에. 저는 이 다이어그램이 이전의 몇 가지 질문에 대한 답을 제공한다는 점에서 매우 마음에 듭니다. Txn 입력은 다음과 같이 구성됩니다. Txn 출력 세트와 key 이미지. 그런 다음 모든 항목을 포함하여 링 서명으로 서명됩니다. Alex가 소유한 개인 키 중 거래에 포함된 모든 해외 거래에 대해. 는 Txn 출력은 금액과 대상 키로 구성됩니다. 거래를 받는 사람은 다음과 같이 할 수 있습니다. 원하는 대로 비용을 지출하기 위해 백서 앞부분에서 설명한 대로 일회용 개인 키를 생성합니다. 돈. 이것이 실제 코드와 얼마나 일치하는지 알아내는 것은 즐거운 일이 될 것입니다... 아니요, Nic van Saberhagen은 작업 증명 알고리즘의 일부 속성을 느슨하게 설명합니다. 실제로 해당 알고리즘을 설명하지 않고. CryptoNight 알고리즘 자체에는 심층 분석이 필요합니다. 이것을 읽었을 때 나는 말을 더듬었다. 투자는 권력에 따라 최소한 선형적으로 증가해야 할까요, 아니면 투자는 권력에 따라 최대 선형적으로 성장합니까? 그리고 나서 나는 깨달았습니다. 채굴자로서, 혹은 투자자로서 나는 보통 "얼마나 많은 힘을 얻을 수 있는가?"라고 생각합니다. 투자를 위해서?" "고정된 전력량을 얻으려면 얼마나 많은 투자가 필요합니까?"가 아닙니다. 물론, 투자를 I로, 권력을 P로 표시합니다. I(P)가 권력의 함수인 투자라면 그리고 P(I)는 투자의 함수로서의 힘이며, 둘은 서로 반대가 될 것입니다(어디에서든). 역이 존재할 수 있음). 그리고 I(P)가 선형보다 빠르면 P(I)는 선형보다 느립니다. 따라서, 투자자들의 수익률은 감소할 것입니다. 즉, 저자가 여기서 말하는 것은 "물론, 더 많이 투자할수록 더 많은 것을 얻게 될 것입니다." 힘. 하지만 우리는 이를 감소된 수익률로 만들려고 노력해야 합니다." CPU 투자는 결국 준선형적으로 한계를 넘을 것입니다. 문제는 저자가 ASIC도 이 작업을 수행하도록 강제하는 POW 알고리즘을 설계했습니다. 가상의 "미래 통화"는 항상 가장 느리고 가장 제한된 자원으로 채굴해야 합니까? Abadi 등의 논문(일부 Google 및 Microsoft 엔지니어가 저자로 참여)은 다음과 같습니다. 기본적으로 지난 몇 년 동안 메모리 크기가 훨씬 작아졌다는 사실을 이용하여 프로세서 속도보다 기계에 따른 차이가 있으며 전력 대비 투자 비율이 선형보다 높습니다. 몇 년 안에 이 문제를 재평가해야 할 수도 있습니다! 모든 것이 군비경쟁이다... hash 함수를 구성하는 것은 어렵습니다. 이러한 제약 조건을 만족하는 hash 함수를 구성하는 것은 더 어려운 것 같습니다. 이 문서에는 실제 내용에 대한 설명이 없는 것 같습니다. hashing 알고리즘 CryptoNight. 나는 이것이 SHA-3의 메모리 하드 구현이라고 생각합니다. 포럼 게시물에 있지만 잘 모르겠습니다... 그게 요점입니다. 설명되어야합니다.
가장 효과적인 솔루션을 제안한 것이 바로 '홋카이도'입니다. 우리가 아는 한, 대규모 배열의 의사 무작위 검색 아이디어를 기반으로 한 마지막 작업은 다음과 같습니다. C. Percival [32]에 의해 "scrypt"로 알려진 알고리즘. 이전 기능과 달리 초점이 맞춰져 있습니다. proof-of-work 시스템이 아닌 키 파생입니다. 이러한 사실에도 불구하고 scrypt는 우리의 목적을 달성할 수 있습니다: 이는 SHA-256과 같은 부분적인 hash 변환 문제에서 가격 책정 기능으로 잘 작동합니다. Bitcoin. 지금까지 scrypt는 이미 Litecoin [14] 및 기타 Bitcoin 포크에 적용되었습니다. 그러나 구현은 실제로 메모리에 국한되지 않습니다. "메모리 액세스 시간/전체" 비율 time”은 각 인스턴스가 128KB만 사용하기 때문에 충분히 크지 않습니다. 이는 GPU 채굴을 허용합니다. 약 10배 더 효과적이며 계속해서 상대적으로 저렴하지만 매우 효율적인 채굴 장치. 더욱이 스크립트 구성 자체는 메모리 크기와 메모리 크기 간의 선형적인 균형을 허용합니다. 스크래치패드의 모든 블록이 이전 블록에서만 파생된다는 사실로 인한 CPU 속도. 예를 들어 매 두 번째 블록을 저장하고 다른 블록을 게으른 방식으로 다시 계산할 수 있습니다. 필요할 때. 의사 난수 인덱스는 균일하게 분포된 것으로 가정됩니다. 따라서 추가 블록의 재계산에 대한 기대값은 1입니다. \(2 \cdot N\), 여기서 N은 숫자입니다. 반복의. 전체 계산 시간은 절반 미만으로 증가합니다. 스크래치패드 준비 및 hashing과 같은 시간 독립적(일정한 시간) 작업 모든 반복. 메모리 비용의 2/3 절약 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N 추가 재계산; 9월 10일 결과 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4.5N. 1개만 저장한다는 것을 보여주기 쉽습니다. 모든 블록의 s−1배보다 시간이 덜 늘어납니다. 2 . 이는 결국 CPU가 있는 머신을 의미합니다. 최신 칩보다 200배 빠른 스크래치패드는 320바이트만 저장할 수 있습니다. 5.2 제안된 알고리즘 우리는 proof-of-work 가격 책정 기능에 대한 새로운 메모리 바인딩 알고리즘을 제안합니다. 그것은 다음에 의존한다 느린 메모리에 대한 무작위 액세스 및 대기 시간 의존성을 강조합니다. 매번 암호화하는 것과 반대로 새 블록(길이 64바이트)은 모든 이전 블록에 따라 달라집니다. 결과적으로 가설 "메모리 절약"자는 계산 속도를 기하급수적으로 증가시켜야 합니다. 우리 알고리즘에는 다음과 같은 이유로 인스턴스당 약 2Mb가 필요합니다. 1. 주류가 될 최신 프로세서의 L3 캐시(코어당)에 적합합니다. 몇 년 안에; 2. 1MB의 내부 메모리는 최신 ASIC 파이프라인에 거의 허용되지 않는 크기입니다. 3. GPU는 수백 개의 동시 인스턴스를 실행할 수 있지만 다른 방식으로 제한됩니다. GDDR5 메모리는 CPU L3 캐시보다 느리고 대역폭이 뛰어납니다. 랜덤 액세스 속도. 4. 스크래치패드를 크게 확장하려면 반복 횟수를 늘려야 합니다. 회전은 전체 시간의 증가를 의미합니다. 신뢰가 없는 p2p 네트워크에서 "과중한" 호출은 다음과 같은 결과를 가져올 수 있습니다. 노드는 모든 새 블록의 proof-of-work을 확인해야 하기 때문에 심각한 취약점이 있습니다. 노드가 각 hash 평가에 상당한 시간을 소비한다면 쉽게 임의의 작업 데이터(nonce 값)가 포함된 가짜 객체의 홍수로 인해 DDoS를 당했습니다. 12 가장 효과적인 솔루션을 제안한 것이 바로 '홋카이도'입니다. 우리가 아는 한, 대규모 배열의 의사 무작위 검색 아이디어를 기반으로 한 마지막 작업은 다음과 같습니다. C. Percival [32]에 의해 "scrypt"로 알려진 알고리즘. 이전 기능과 달리 초점이 맞춰져 있습니다. proof-of-work 시스템이 아닌 키 파생입니다. 이러한 사실에도 불구하고 scrypt는 우리의 목적을 달성할 수 있습니다: 이는 SHA-256와 같은 부분적인 hash 변환 문제에서 가격 책정 기능으로 잘 작동합니다. Bitcoin. 지금까지 scrypt는 이미 Litecoin [14] 및 기타 Bitcoin 포크에 적용되었습니다. 그러나 구현은 실제로 메모리에 국한되지 않습니다. "메모리 액세스 시간/전체" 비율 time”은 각 인스턴스가 128KB만 사용하기 때문에 충분히 크지 않습니다. 이는 GPU 채굴을 허용합니다. 약 10배 더 효과적이며 계속해서 상대적으로 저렴하지만 매우 효율적인 채굴 장치. 더욱이 스크립트 구성 자체는 메모리 크기와 메모리 크기 간의 선형적인 균형을 허용합니다. 스크래치패드의 모든 블록이 이전 블록에서만 파생된다는 사실로 인한 CPU 속도. 예를 들어 매 두 번째 블록을 저장하고 다른 블록을 게으른 방식으로 다시 계산할 수 있습니다. 필요할 때. 의사 난수 인덱스는 균일하게 분포된 것으로 가정됩니다. 따라서 추가 블록의 재계산에 대한 기대값은 1입니다. \(2 \cdot N\), 여기서N은 숫자입니다. 반복의. 전체 계산 시간은 절반 미만으로 증가합니다. 스크래치패드 준비 및 hashing과 같은 시간 독립적(일정한 시간) 작업 모든 반복. 메모리 비용의 2/3 절약 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N 추가 재계산; 9월 10일 결과 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4.5N. 1개만 저장한다는 것을 보여주기 쉽습니다. 모든 블록의 s−1배보다 시간이 덜 늘어납니다. 2 . 이는 결국 CPU가 있는 머신을 의미합니다. 최신 칩보다 200배 빠른 스크래치패드는 320바이트만 저장할 수 있습니다. 5.2 제안된 알고리즘 우리는 proof-of-work 가격 책정 기능에 대한 새로운 메모리 바인딩 알고리즘을 제안합니다. 그것은 다음에 의존한다 느린 메모리에 대한 무작위 액세스 및 대기 시간 의존성을 강조합니다. 매번 암호화하는 것과 반대로 새 블록(길이 64바이트)은 모든 이전 블록에 따라 달라집니다. 결과적으로 가설 "메모리 절약"자는 계산 속도를 기하급수적으로 증가시켜야 합니다. 우리 알고리즘에는 다음과 같은 이유로 인스턴스당 약 2Mb가 필요합니다. 1. 주류가 될 최신 프로세서의 L3 캐시(코어당)에 적합합니다. 몇 년 안에; 2. 1MB의 내부 메모리는 최신 ASIC 파이프라인에 거의 허용되지 않는 크기입니다. 3. GPU는 수백 개의 동시 인스턴스를 실행할 수 있지만 다른 방식으로 제한됩니다. GDDR5 메모리는 CPU L3 캐시보다 느리고 대역폭이 뛰어납니다. 랜덤 액세스 속도. 4. 스크래치패드를 크게 확장하려면 반복 횟수를 늘려야 합니다. 회전은 전체 시간의 증가를 의미합니다. 신뢰가 없는 p2p 네트워크에서 "과중한" 호출은 다음과 같은 결과를 가져올 수 있습니다. 노드는 모든 새 블록의 proof-of-work을 확인해야 하기 때문에 심각한 취약점이 있습니다. 노드가 각 hash 평가에 상당한 시간을 소비한다면 쉽게 임의의 작업 데이터(nonce 값)가 포함된 가짜 개체의 홍수로 인해 DDoS를 당했습니다. 12 22 신경쓰지 마세요. 스크립트 코인인가요? 알고리즘은 어디에 있나요? 내가 보는 것은 광고뿐입니다. PoW 알고리즘이 가치가 있다면 Cryptonote가 정말 빛을 발할 곳입니다. 그렇지 않다 정말 SHA-256, 실제로는 스크립트가 아닙니다. 새롭고, 메모리에 묶여 있으며, 비재귀적입니다.
6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 급격히 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 비용과 수수료로 인한 이익 사이의 균형을 맞추고 스스로 설정합니다. 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어오르는 것을 방지하지만 여전히 한계를 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 심하게 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 균형 간의 균형을 다룹니다.수수료로 인한 비용과 이익을 스스로 정하고 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어 오르는 것을 방지하지만 여전히 한도는 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 23 원자 단위. 나는 그것을 좋아한다. 사토시랑 동급인가요? 그렇다면 이는 1,850억 개의 암호화폐가 있다는 의미입니다. 나는 이것이 결국 몇 페이지에서 조정되어야 한다는 것을 알고 있습니다. 아니면 오타가 있을 수도 있습니다. 기본 보상이 "남은 모든 코인"인 경우 모든 코인을 얻기 위해서는 단 하나의 블록만으로도 충분합니다. 인스타그램. 반면에 이것이 어떤 식으로든 비례한다고 가정하면 지금과 일부 코인 생산 종료 날짜 사이의 시간 차이는 무엇입니까? 그럴 것이다 말이 되네요. 또한 내 세계에서는 이와 같은 두 개의 보다 큰 기호는 "보다 훨씬 크다"는 의미입니다. 작성자가 그랬나요? 아마도 다른 의미일까요? 어려움에 대한 조정이 모든 블록에서 발생하면 공격자는 매우 큰 규모의 팜을 보유할 수 있습니다. 기계는 신중하게 선택한 시간 간격으로 켜지고 꺼집니다. 난이도 조정 공식이 적절하게 감쇠되지 않으면 난이도에서 혼란스러운 폭발(또는 0으로 충돌)이 발생할 수 있습니다. Bitcoin의 방법이 빠른 재계산에 적합하지 않다는 것은 의심할 여지가 없지만 관성의 개념은 이러한 시스템에서는 당연한 것으로 받아들여지는 것이 아니라 입증되어야 합니다. 게다가 진동 네트워크의 어려움은 표면의 진동을 초래하지 않는 한 반드시 문제가 되는 것은 아닙니다. 코인 공급 - 그리고 매우 빠르게 변화하는 어려움을 갖는 것은 "과도한 수정"을 유발할 수 있습니다. 특히 몇 분과 같은 짧은 기간 동안 소요된 시간은 "총 시간"에 비례합니다. 네트워크에 생성된 블록의 수입니다." 비례상수는 그 자체로 커질 것입니다. 시간이 지남에 따라 CN이 성공하면 아마도 기하급수적으로 증가할 것입니다. 단순히 난이도를 조정하여 "생성된 전체 블록을 유지하는 것이 더 나은 생각일 수 있습니다. 마지막 블록이 메인 체인에 추가된 이후 네트워크"라는 상수 값 내에서 또는 제한된 변형 또는 이와 유사한 것. 계산적으로 적응형 알고리즘을 사용하는 경우 구현하기 쉽다고 판단되면 문제가 해결되는 것 같습니다. 그런데 그 방법을 사용하면 큰 광산 농장을 가진 사람이 농장을 폐쇄할 수도 있습니다. 몇 시간 동안 다시 켜십시오. 처음 몇 블록 동안 해당 농장은 은행. 따라서 실제로 이 방법은 흥미로운 점을 제시합니다. 채굴은 (평균적으로) 특히 더 많은 사람들이 네트워크에 접속함에 따라 ROI 없이 게임에서 패배합니다. 채굴이 어려운 경우 매우 밀접하게 추적되는 네트워크 hashrate, 사람들이 그만큼 채굴할지는 의문입니다. 현재 그렇습니다. 또는 광산 농장을 연중무휴 24시간 운영하는 대신 광산을 운영할 수도 있습니다. 6시간 동안 켜짐, 2시간 동안 켜짐, 6시간 동안 켜짐, 2시간 동안 꺼짐 등. 그냥 다른 코인으로 바꾸세요 몇 시간 동안 난이도가 떨어질 때까지 기다렸다가 추가로 몇 가지를 얻으려면 다시 시작하세요. 네트워크가 적응함에 따라 수익성이 저하됩니다. 그리고 그거 알아? 이것은 실제로 아마도 내가 생각한 더 나은 채굴 시나리오 중 하나... 이는 순환적일 수 있지만, 블록 생성 시간이 평균 약 1분이라면, "소요 시간"에 대한 프록시로 블록 수를 사용합니까?
6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 급격히 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 비용과 수수료로 인한 이익 사이의 균형을 맞추고 스스로 설정합니다. 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어오르는 것을 방지하지만 여전히 한계를 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 급격히 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 균형 간의 균형을 다룹니다.수수료로 인한 비용과 이익을 스스로 정하고 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어 오르는 것을 방지하지만 여전히 한계를 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 24 좋습니다. blockchain이 있고 각 블록에는 단순히 존재하는 것 외에도 타임스탬프가 있습니다. 주문했다. 타임스탬프는 언급했듯이 매우 신뢰할 수 없습니다. 체인에 모순되는 타임스탬프를 가질 수 있습니까? 체인에서 블록 A가 블록 B보다 먼저 나오고 재정적인 측면에서 모든 것이 일관된다면, 그런데 A블록은 B블록 이후에 생성된 것 같은데요? 아마도 누군가가 소유했기 때문일 것입니다. 네트워크의 큰 부분? 괜찮나요? 아마도 재정이 엉망이 아니기 때문일 것입니다. 좋아요, 그래서 저는 이 임의적인 "블록의 80%만이 메인 blockchain에 대해 합법적입니다"라는 말을 싫어합니다. 접근. 거짓말쟁이가 타임스탬프를 변경하는 것을 방지하기 위한 것입니까? 그런데 지금은 더해진다. 모든 사람이 자신의 타임스탬프에 대해 거짓말을 하고 중앙값만 선택하도록 유도합니다. 정의해주세요. "이 블록의 경우 더 높은 수수료를 포함하는 거래만 포함함을 의미합니다. p%보다 우선적으로 수수료가 2p%보다 큰 경우" 또는 이와 유사한 것입니까? 가짜란 무슨 뜻인가요? 거래가 과거 거래 내역과 일치하는 경우 blockchain, 거래에는 채굴자를 만족시키는 수수료가 포함되어 있는데, 그것만으로는 충분하지 않습니까? 글쎄, 아니요, 반드시 그런 것은 아닙니다. 최대 블록 크기가 없으면 악의적인 사용자를 막을 수 있는 방법이 없습니다. 단순히 속도를 늦추기 위해 대량의 거래 블록을 자신에게 한꺼번에 업로드하는 것부터 네트워크. 최대 블록 크기에 대한 핵심 규칙은 사람들이 엄청난 양의 쓰레기를 넣는 것을 방지합니다. 속도를 늦추기 위해 blockchain에 대한 데이터를 한 번에 모두 사용합니다. 그러나 그러한 규칙은 확실히 적응력을 갖추세요. 예를 들어 크리스마스 시즌에는 트래픽이 급증할 것으로 예상할 수 있습니다. 블록 크기가 매우 커지고 그 직후에 블록 크기가 계속해서 감소합니다. 다시. 따라서 a) 일종의 적응형 한도 또는 b) 99%의 사용자가 사용할 수 있을 만큼 충분히 큰 한도가 필요합니다. 합리적인 크리스마스 피크는 한계를 깨지 않습니다. 물론 두 번째는 불가능하다. 추정 - 통화가 인기를 끌지 누가 알겠습니까? 적응하고 걱정하지 않는 것이 좋습니다 그것에 대해. 하지만 제어 이론 문제가 있습니다. 공격에 취약하거나 거칠고 미친 진동이 있습니까? 적응형 방법은 악의적인 사용자가 소량을 축적하는 것을 막지 못합니다. blockchain에서 시간이 지남에 따라 정크 데이터가 늘어나 장기적인 부풀림이 발생합니다. 이건 다른 문제야 전체적으로 암호화폐 동전에 심각한 문제가 있는 것입니다.
6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 급격히 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 비용과 수수료로 인한 이익 사이의 균형을 맞추고 스스로 설정합니다. 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어오르는 것을 방지하지만 여전히 한계를 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 급격히 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 균형 간의 균형을 다룹니다.수수료로 인한 비용과 이익을 스스로 정하고 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어오르는 것을 방지하지만 여전히 한계를 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 25 한 단위의 시간이 N 블록이 되도록 시간을 재조정하면 이론적으로 평균 블록 크기는 2t에 비례하여 기하급수적으로 증가할 수 있습니다. 반면에 좀 더 일반적인 캡은 다음 블록의 일부 함수 f에 대해서는 M_nf(M_n)이 됩니다. f의 어떤 속성이 블록 크기의 "합리적인 성장"을 보장하기 위해 선택합니까? 의 진행 블록 크기(재조정 시간 후)는 다음과 같습니다. M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... 그리고 여기서 목표는 이 수열이 선형적으로 증가하는 것보다 더 빠르게 증가하지 않도록 f를 선택하는 것입니다. 또는 Log(t)로도 가능합니다. 물론, 어떤 상수 a에 대해 f(M_n) = a라면 이 수열은 다음과 같습니다. 실제로 M_n aM_n aˆ2M_n aˆ3M_n ... 그리고 물론 이것이 최대 선형 성장으로 제한될 수 있는 유일한 방법은 a=1을 선택하는 것입니다. 물론 이것은 실현 불가능합니다. 전혀 성장을 허용하지 않습니다. 반면, f(M_n)이 상수가 아닌 함수라면 상황은 훨씬 더 복잡해집니다. 복잡하고 우아한 솔루션을 제공할 수 있습니다. 나는 이것에 대해 잠시 생각해 볼 것이다. 이 수수료는 다음 섹션의 초과 크기 벌금을 할인할 수 있을 만큼 커야 합니다. 왜 일반 사용자를 남성으로 가정하는 걸까요? 응?
blockchain을 부풀리고 노드에 추가 로드를 생성할 가능성이 있습니다. 낙담시키다 악의적인 참가자가 큰 블록을 생성하는 것을 방지하기 위해 페널티 기능을 도입합니다. NewReward = 기본 보상 \(\cdot\) Blk크기 미네소타 -1 2 이 규칙은 BlkSize가 최소 여유 블록 크기보다 큰 경우에만 적용됩니다. max(10kb, \(M_N \cdot 110\%\))에 가까워야 합니다. 채굴자는 "일반적인 크기"의 블록을 생성할 수 있으며 심지어 전체 수수료가 페널티를 초과하면 이익으로 초과합니다. 하지만 수수료 인상 가능성은 낮아 페널티 값과 2차적으로 다르기 때문에 균형이 유지됩니다. 6.3 거래 스크립트 CryptoNote에는 매우 최소한의 스크립팅 하위 시스템이 있습니다. 발신자는 Φ = 표현식을 지정합니다. f (x1, x2, . . . , xn), 여기서 n은 대상 공개 키의 수 {Pi}n 나는 = 1입니다. 단 5개의 바이너리만 지원되는 연산자는 min, max, sum, mul 및 cmp입니다. 수신자가 이 지불금을 지출하면, 그는 \(0 \leq k \leq n\) 서명을 생성하고 이를 거래 입력에 전달합니다. 검증 과정 공개 키 Pi에 대한 유효한 서명을 확인하기 위해 xi = 1로 Φ를 평가하고 xi = 0을 사용합니다. 검증자는 ffΦ > 0인 경우 증명을 수락합니다. 단순함에도 불구하고 이 접근 방식은 가능한 모든 경우를 포괄합니다. • 다중/임계값 서명. Bitcoin 스타일의 "M-out-of-N" 다중 서명(예: 수신자는 최소한 \(0 \leq M \leq N\) 유효한 서명을 제공해야 합니다) Φ = x1+x2+. . .+xN \(\geq M\) (명확하게 하기 위해 우리는 일반적인 대수 표기법을 사용합니다). 가중치 임계값 서명 (일부 키는 다른 키보다 더 중요할 수 있음)은 Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). 그리고 마스터 키가 Φ =에 해당하는 시나리오 max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). 어떤 정교한 케이스라도 가능하다는 것을 보여주는 것은 쉽습니다. 이러한 연산자로 표현됩니다. 즉, 기초를 형성합니다. • 비밀번호 보호. 비밀 비밀번호를 소유하는 것은 다음 사항을 알고 있는 것과 동일합니다. 비밀번호에서 결정론적으로 파생된 개인 키: k = KDF(s). 따라서 수신기 키 k 아래에 또 다른 서명을 제공하여 그가 비밀번호를 알고 있음을 증명할 수 있습니다. 발신자는 해당 공개 키를 자신의 출력에 추가하기만 하면 됩니다. 참고하세요 방법은 Bitcoin [13]에서 사용된 "트랜잭션 퍼즐"보다 훨씬 더 안전합니다. 비밀번호는 입력에 명시적으로 전달됩니다. • 변질된 사례. Φ = 1은 누구나 돈을 쓸 수 있음을 의미합니다. Φ = 0은 영원히 쓸 수 없는 것으로 출력됩니다. 공개키와 결합된 출력 스크립트가 송신자에게 너무 큰 경우, 수신자가 이 데이터를 입력에 넣을 것임을 나타내는 특수 출력 유형을 사용할 수 있습니다. 발신자는 그 중 hash만 제공합니다. 이 접근 방식은 Bitcoin의 "pay-to-hash"과 유사합니다. 기능이지만 새 스크립트 명령을 추가하는 대신 데이터 구조에서 이 경우를 처리합니다. 수준. 7 결론 우리는 Bitcoin의 주요 결함을 조사하고 몇 가지 가능한 해결책을 제안했습니다. 이러한 유리한 기능과 지속적인 개발로 인해 새로운 전자 현금 시스템인 CryptoNote가 탄생했습니다. Bitcoin의 심각한 라이벌로 모든 포크를 능가합니다. 14 blockchain을 부풀리고 노드에 추가 로드를 생성할 가능성이 있습니다. 낙담시키다 악의적인 참가자가 큰 블록을 생성하는 것을 방지하기 위해 페널티 기능을 도입합니다. NewReward = 기본 보상 \(\cdot\) Blk크기 미네소타 -1 2 이 규칙은 BlkSize가 최소 여유 블록 크기보다 큰 경우에만 적용됩니다. max(10kb, \(M_N \cdot 110\%\))에 가까워야 합니다. 채굴자는 "일반적인 크기"의 블록을 생성할 수 있으며 심지어 전체 수수료가 페널티를 초과하면 이익으로 초과합니다. 하지만 수수료 인상 가능성은 낮아 페널티 값과 2차적으로 다르기 때문에 균형이 유지됩니다. 6.3 거래 스크립트 CryptoNote에는 매우 최소한의 스크립팅 하위 시스템이 있습니다. 발신자는 Φ = 표현식을 지정합니다. f (x1, x2, . . . , xn), 여기서 n은 대상 공개 키의 수 {Pi}n 나는 = 1입니다. 단 5개의 바이너리만 지원되는 연산자는 min, max, sum, mul 및 cmp입니다. 수신자가 이 지불금을 지출하면, 그는 \(0 \leq k \leq n\) 서명을 생성하고 이를 거래 입력에 전달합니다. 검증 과정 공개 키 Pi에 대한 유효한 서명을 확인하기 위해 xi = 1로 Φ를 평가하고 xi = 0을 사용합니다. 검증자는 ffΦ > 0인 경우 증명을 수락합니다. 단순함에도 불구하고 이 접근 방식은 가능한 모든 경우를 포괄합니다. • 다중/임계값 서명. Bitcoin 스타일의 "M-out-of-N" 다중 서명(예: 수신자는 최소한 \(0 \leq M \leq N\) 유효한 서명을 제공해야 합니다) Φ = x1+x2+. . .+xN \(\geq M\) (명확하게 하기 위해 우리는 일반적인 대수 표기법을 사용합니다). 가중치 임계값 서명 (일부 키는 다른 키보다 더 중요할 수 있음)은 Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). 그리고 시나리오io 여기서 마스터 키는 Φ =에 해당합니다. max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). 어떤 정교한 케이스라도 가능하다는 것을 보여주는 것은 쉽습니다. 이러한 연산자로 표현됩니다. 즉, 기초를 형성합니다. • 비밀번호 보호. 비밀 비밀번호를 소유하는 것은 다음 사항을 알고 있는 것과 동일합니다. 비밀번호에서 결정론적으로 파생된 개인 키: k = KDF(s). 따라서 수신기 키 k 아래에 또 다른 서명을 제공하여 그가 비밀번호를 알고 있음을 증명할 수 있습니다. 발신자는 해당 공개 키를 자신의 출력에 추가하기만 하면 됩니다. 참고하세요 방법은 Bitcoin [13]에서 사용된 "트랜잭션 퍼즐"보다 훨씬 더 안전합니다. 비밀번호는 입력에 명시적으로 전달됩니다. • 변질된 사례. Φ = 1은 누구나 돈을 쓸 수 있음을 의미합니다. Φ = 0은 영원히 쓸 수 없는 것으로 출력됩니다. 공개키와 결합된 출력 스크립트가 송신자에게 너무 큰 경우, 수신자가 이 데이터를 입력에 넣을 것임을 나타내는 특수 출력 유형을 사용할 수 있습니다. 발신자는 그 중 hash만 제공합니다. 이 접근 방식은 Bitcoin의 "pay-to-hash"와 유사합니다. 기능이지만 새 스크립트 명령을 추가하는 대신 데이터 구조에서 이 경우를 처리합니다. 수준. 7 결론 우리는 Bitcoin의 주요 결함을 조사하고 몇 가지 가능한 해결책을 제안했습니다. 이러한 유리한 기능과 지속적인 개발로 인해 새로운 전자 현금 시스템인 CryptoNote가 탄생했습니다. 모든 포크를 능가하는 Bitcoin의 심각한 라이벌입니다. 14 26 시간이 지남에 따라 블록 크기를 제한하는 방법을 알아낼 수 있다면 이는 불필요할 수 있습니다. 이 역시 정확할 수 없습니다. 그들은 단지 "NewReward"를 위쪽을 향한 포물선으로 설정했습니다. 블록 크기는 독립 변수입니다. 그래서 새로운 보상이 무한대로 불어납니다. 만약, 반면에 손에서 새 보상은 Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2))이고 새 보상은 블록 크기 = Mn에서 피크를 갖고 절편이 있는 하향 포물선이 됩니다. 블록 크기 = 0 및 블록 크기 = 2Mn. 그리고 그것이 그들이 묘사하려고 하는 것인 것 같습니다. 그러나 이것은 그렇지 않습니다
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:

분석

5
전 세계 10억 명의 사람들이 1달러 미만의 돈으로 살아간다는 것이 그다지 중요한 것은 아닙니다.
어떤 종류의 채굴 네트워크에도 참여할 희망이 없습니다... 하지만 경제적
1-CPU-1-표를 사용하는 P2P 통화 시스템이 주도하는 세계는 아마도 더 많을 것입니다.
부분지급준비은행에 의해 운영되는 시스템보다 공정합니다.
하지만 Cryptonote의 프로토콜에는 여전히 51%의 정직한 사용자가 필요합니다. 예를 들어 Cryptonote를 참조하세요.
개발자 중 한 명인 Pliskov는 전통적인 데이터 교체 blockchain 51% 공격이 여전히 작동할 수 있다고 말합니다. https://forum.cryptonote.org/viewtopic.php?f=2&t=198
실제로 51%의 정직한 사용자가 필요한 것은 아닙니다. 당신은 정말로 "단 한 명의 부정직한 사람도 필요하지 않습니다"
네트워크의 hash 힘의 51% 이상을 보유한 세력입니다."
소위 비트코인의 문제를 '적응적 경직성'이라고 부르자. Cryptonote의 적응형 솔루션
강성은 프로토콜 매개변수 값의 적응형 유연성입니다. 더 큰 블록 크기가 필요한 경우,
문제 없습니다. 네트워크는 내내 부드럽게 조정되었을 것입니다.
즉,
Bitcoin이 시간이 지남에 따라 어려움을 조정하는 방식은 모든 프로토콜에서 복제될 수 있습니다.
프로토콜을 업데이트하기 위해 네트워크 합의를 얻을 필요가 없도록 매개변수를 설정합니다.
표면적으로 이것은 좋은 생각처럼 보이지만 신중한 사전 고려 없이는 자체 조정이 가능합니다.
시스템은 매우 예측 불가능하고 혼란스러워질 수 있습니다. 이에 대해서는 나중에 더 자세히 살펴보겠습니다.
기회가 생깁니다. "좋은" 시스템은 적응적으로 엄격한 시스템과 적응적인 시스템 사이의 어딘가에 있습니다.
유연하고 어쩌면 강성 자체도 적응력이 있을 수 있습니다.
우리가 정말로 "1-CPU-1-투표"를 가졌다면 51%에 도달하기 위해 풀을 협력하고 개발해야 합니다.
더 어려울 것입니다. 우리는 전 세계의 모든 CPU가 휴대폰에서 채굴될 것으로 예상합니다.
충전하는 동안 Tesla의 온보드 CPU에 연결됩니다.
http://en.wikipedia.org/wiki/Pareto_principle
나는 파레토 균형이 다소 불가피하다고 주장합니다. 시스템의 20%가
CPU의 80%를 소유하거나 시스템의 20%가 ASIC의 80%를 소유하게 됩니다. 나는 사회의 기본 부의 분배가 이미 파레토 분포를 보이고 있기 때문에 이것을 가정합니다.
새로운 채굴자가 합류하면 기본 배포판에서 추출됩니다.
그러나 나는 1-CPU-1-투표 프로토콜이 하드웨어에서 ROI를 볼 것이라고 주장합니다.
블록
노드당 보상은 네트워크의 노드 수에 더 밀접하게 비례합니다.
노드 전반에 걸쳐 성능 분포가 훨씬 더 엄격해집니다. Bitcoin, 다른 한편으로는
계산 능력에 더 비례하는 블록 보상(노드당)을 봅니다.
노드. 즉, 여전히 채굴 게임에는 "큰 소년들"만이 남아 있다는 것입니다. 반면에,
1CPU 1표 세계에서는 파레토 원칙이 여전히 적용되더라도 모든 사람은
네트워크 보안에 참여하고 약간의 채굴 수입을 얻습니다.
ASIC 세계에서는 모든 XBox와 휴대폰을 광산에 장착하는 것은 합리적이지 않습니다.
1CPU 1표 세계에서는 채굴 보상 측면에서 매우 합리적입니다. 기분 좋은 결과로,
투표 수가 많아지면 51%의 득표율을 얻는 것이 더 어렵습니다.
네트워크 보안에 이점이 있습니다..이전에 설명한 하드웨어. 다음 경우에도 글로벌 hash 비율이 크게 감소한다고 가정합니다.
잠시 후 그는 채굴 능력을 사용하여 체인을 포크하고 이중 지출을 할 수 있습니다. 앞으로 살펴보겠지만
이 기사의 뒷부분에서는 이전에 설명한 사건이 발생할 가능성이 거의 없습니다.
2.3
불규칙한 방출
Bitcoin에는 미리 결정된 방출 속도가 있습니다. 해결된 각 블록은 고정된 양의 코인을 생성합니다.
대략 4년마다 이 보상은 절반으로 줄어듭니다. 원래 의도는 만들려고 했는데
지수적 붕괴로 제한된 부드러운 방출을 수행하지만 실제로는 조각별 선형 방출이 있습니다.
중단점이 Bitcoin 인프라에 문제를 일으킬 수 있는 함수입니다.
중단점이 발생하면 채굴자는 이전 가치의 절반만 받기 시작합니다.
보상. 12.5와 6.25 BTC(2020년 예상) 사이의 절대적인 차이는
견딜 수 있을 것 같습니다. 그러나 11월에 발생한 50~25BTC 하락을 살펴보면
2012년 28일, 광산 커뮤니티의 상당수 구성원에게 부적절하다고 느꼈습니다. 그림
1은 정확히 11월 말에 네트워크의 hash비율이 급격히 감소한 것을 보여줍니다.
반감기가 일어났습니다. 이 사건은 악의적인 개인에게 완벽한 순간이었을 수도 있습니다.
이중 지출 공격 [36]을 수행하기 위해 proof-of-work 함수 섹션에 설명되어 있습니다.
그림 1. Bitcoin hash비율 차트
(출처: http://bitcoin.sipa.be)
2.4
하드코딩된 상수
Bitcoin에는 하드 코딩된 제한이 많이 있으며 일부는 원래 디자인의 자연스러운 요소입니다(예:
차단 빈도, 최대 통화 공급량, 확인 횟수) 반면 다른
인위적인 제약인 것 같습니다. 한계가 아니라 빠르게 변화할 수 없다는 점입니다.
3
이전에 설명한 하드웨어. 다음 경우에도 글로벌 hash 비율이 크게 감소한다고 가정합니다.
잠시 후 그는 채굴 능력을 사용하여 체인을 포크하고 이중 지출을 할 수 있습니다. 앞으로 살펴보겠지만
이 기사의 뒷부분에서는 이전에 설명한 사건이 발생할 가능성이 거의 없습니다.
2.3
불규칙한 방출
Bitcoin에는 미리 결정된 방출 속도가 있습니다. 각 해결된 블록은 고정된 양의 코인을 생성합니다.
대략 4년마다 이 보상은 절반으로 줄어듭니다. 원래 의도는 만들려고 했는데
지수적 붕괴로 제한된 부드러운 방출을 수행하지만 실제로는 조각별 선형 방출이 있습니다.
중단점이 Bitcoin 인프라에 문제를 일으킬 수 있는 함수입니다.
중단점이 발생하면 채굴자는 이전 가치의 절반만 받기 시작합니다.
보상. 12.5와 6.25 BTC(2020년 예상) 사이의 절대적인 차이는
견딜 수 있을 것 같습니다. 그러나 11월에 발생한 50~25BTC 하락을 살펴보면
2012년 28일, 광산 커뮤니티의 상당수 구성원에게 부적절하다고 느꼈습니다. 그림
1은 정확히 11월 말에 네트워크의 hash비율이 급격히 감소한 것을 보여줍니다.
반감기가 일어났습니다. 이 사건은 악의적인 개인에게 완벽한 순간이었을 수도 있습니다.
이중 지출 공격 [36]을 수행하기 위해 proof-of-work 함수 섹션에 설명되어 있습니다.
그림 1. Bitcoin hash비율 차트
(출처: http://bitcoin.sipa.be)
2.4
하드코딩된 상수
Bitcoin에는 하드 코딩된 제한이 많이 있으며 일부는 원래 디자인의 자연스러운 요소입니다(예:
차단 빈도, 최대 통화 공급량, 확인 횟수) 반면 다른
인위적인 제약인 것 같습니다. 한계가 아니라 빠르게 변화할 수 없다는 점입니다.
3
6
이것을 좀비 공격이라고 부르자.
지속적으로 방출하는 방법에 대해 논의해 보겠습니다.
좀비 공격 시나리오의 one-cpu-one-vote와 관련이 있습니다.
1CPU 1표 세계에서는 유휴 상태일 때마다 모든 휴대폰과 자동차가 채굴을 할 것입니다. 광산 농장을 만들기 위해 값싼 하드웨어 더미를 모으는 것은 매우 쉬울 것입니다.
모든 것에는 CPU가 있습니다. 반면에 그 시점의 CPU 수는
51% 공격을 시작하는 데 필요한 요구 사항은 매우 놀라운 일이라고 생각합니다.
게다가,
정확하게 왜냐하면 값싼 하드웨어를 모으는 것이 쉽기 때문에 우리는 합리적인 가격을 기대할 수 있습니다.
많은 사람들이 CPU로 무엇이든 쌓아두기 시작합니다. 1CPU 1표 세계의 군비 경쟁
ASIC 세계보다 반드시 더 평등주의적입니다.
따라서 네트워크의 단절
배출율로 인한 보안은 1CPU 1표 세계에서는 문제가 덜 됩니다.
그러나 두 가지 사실이 남아 있습니다. 1) 방출 속도의 불연속성은 영상의 말더듬 효과로 이어질 수 있습니다.
경제와 네트워크 보안 모두 나쁘고, 2) 51% 공격에도 불구하고
값싼 하드웨어를 수집하는 사람이 수행하는 작업은 여전히 1-CPU-1에서 발생할 수 있습니다.-세계에 투표하세요,
더 힘들어야 할 것 같습니다.
아마도 이에 대한 안전 장치는 모든 부정직한 행위자가 이 방법을 시도할 것이라는 것입니다.
동시에 우리는 Bitcoin의 이전 보안 개념인 "우리는 부정직한 행위를 요구하지 않습니다"로 돌아갑니다.
네트워크의 51% 이상을 통제하는 세력입니다."
저자는 여기서 비트코인의 한 가지 문제점은 코인 방출의 불연속성이라고 주장하고 있습니다.
속도로 인해 네트워크 참여가 갑자기 감소하여 네트워크 보안이 저하될 수 있습니다. 따라서,
연속적이고 미분 가능하며 원활한 코인 방출 속도가 바람직합니다.
저자가 틀린 것은 아닙니다. 네트워크 참여가 갑자기 감소하면
그러한 문제를 야기할 수 있으며, 그 원인 중 하나를 제거할 수 있다면 제거해야 합니다. 그러고보니 그렇군요
갑작스러운 변화로 인해 장기간 "상대적으로 일정한" 코인 방출이 중단될 가능성이 있습니다.
경제적 관점에서 볼 때 이상적인 방법입니다. 나는 경제학자가 아니다. 그렇다면 아마도 우리는
경제적인 것을 위해 네트워크 보안을 교환할지 결정해야 합니다. 여기서는 무엇입니까?
http://arxiv.org/abs/1402.2009필요한 경우 주요 단점이 발생합니다. 아쉽게도 언제 출시될지 예측하기 어렵습니다.
상수를 변경해야 할 수도 있고 이를 교체하면 끔찍한 결과를 초래할 수도 있습니다.
비참한 결과를 초래하는 하드코딩된 제한 변경의 좋은 예는 블록입니다.
크기 제한이 250kb1로 설정되었습니다. 이 한도는 약 10000개의 표준 트랜잭션을 보유하는 데 충분했습니다. 에서
2013년 초, 이 한도에 거의 도달했고, 이를 늘리기로 합의했습니다.
한계. 변경 사항은 지갑 버전 0.8에서 구현되었으며 24블록 체인 분할로 끝났습니다.
성공적인 이중 지출 공격 [9]. 버그는 Bitcoin 프로토콜에는 없었지만
오히려 데이터베이스 엔진에서는 간단한 스트레스 테스트를 통해 쉽게 발견할 수 있었습니다.
인위적으로 도입된 블록 크기 제한이 없습니다.
상수는 중앙집중화 지점의 역할도 합니다.
P2P 성격에도 불구하고
Bitcoin, 압도적 다수의 노드가 개발한 공식 참조 클라이언트 [10]을 사용합니다.
소수의 사람들. 이 그룹은 프로토콜 변경을 구현하기로 결정합니다.
그리고 대부분의 사람들은 "정확성"에 관계없이 이러한 변경 사항을 받아들입니다. 일부 결정으로 인해 발생
열띤 토론을 벌이고 보이콧을 요구하기까지 합니다 [11]. 이는 커뮤니티와
개발자는 몇 가지 중요한 사항에 동의하지 않을 수 있습니다. 따라서 프로토콜을 갖는 것이 논리적인 것 같습니다.
이러한 문제를 방지하기 위한 가능한 방법으로 사용자가 구성할 수 있고 자체 조정 가능한 변수를 사용합니다.
2.5
부피가 큰 스크립트
Bitcoin의 스크립팅 시스템은 무겁고 복잡한 기능입니다. 잠재적으로 다음을 만들 수 있습니다.
정교한 거래 [12]이지만 보안 문제로 인해 일부 기능이 비활성화되어 있으며
일부는 한 번도 사용된 적이 없습니다([13]). 스크립트(발신자 및 수신자 부분 모두 포함)
Bitcoin에서 가장 인기 있는 거래는 다음과 같습니다.