Ethereum-Adresse -> Private-Key-Korrespondenz

Es ist bekannt, dass Ethereum-Adressen durch Hashing des Pubkeys generiert werden (siehe diesen Beitrag ). Ich bin mir jedoch nicht sicher, ob ein einzelner Pubkey einer einzelnen Adresse entspricht.

Anwendungsfall

Ich möchte ein Schema des Token-Austauschs implementieren, bei dem ein Benutzer einen einzelnen Token nur einmal senden kann (eine Art Abstimmung). Der Benutzer generiert ein Schlüsselpaar und leitet eine Adresse aus dem öffentlichen Schlüssel ab. Der Benutzer verwirft dann das Schlüsselpaar. Ich möchte sicher sein, dass ein Wähler keine andere Adresse mit demselben Schlüsselpaar generieren kann, was dazu führt, dass ich seinen Token zweimal zähle.

Könnten Sie klären, ob Sie fragen: "Kann dieselbe Adresse von zwei verschiedenen privaten Schlüsseln stammen?" (Ja, aber es ist schwer, eine solche Kollision zu finden.) oder "Kann derselbe private Schlüssel zwei verschiedene Adressen erzeugen?" (Nein.) oder vielleicht "Kann derselbe öffentliche Schlüssel zwei verschiedene Adressen erzeugen?" (Nein aus dem gleichen Grund.)

Antworten (2)

Wie in den Kommentaren erwähnt:

Könnten Sie klären, ob Sie fragen: "Kann dieselbe Adresse von zwei verschiedenen privaten Schlüsseln stammen?" (Ja, aber es ist schwer, eine solche Kollision zu finden.) oder "Kann derselbe private Schlüssel zwei verschiedene Adressen erzeugen?" (Nein.) oder vielleicht "Kann derselbe öffentliche Schlüssel zwei verschiedene Adressen erzeugen?" (Nein aus dem gleichen Grund.) – smarx

beantwortet meine Frage perfekt. Danke schön.

Warum lösen Sie das „Double Spending“-Problem nicht einfach, indem Sie Bilanzen halten, wie bei der balancesVariable in einem Standardvertrag?

Die Idee ist folgende: Es wird einen Vertrag geben, der die Token prägt. Die Zahl der Wähler ist bekannt (n - die Gesamtzahl der Wähler). Jeder neue Benutzer kann einen einzelnen Token von der Münze abheben. Der Abhebungsverlauf kann nachverfolgt werden, indem nachverfolgt wird, ob eine Adresse ihren Token von der Münze abgezogen hat. Wenn eine Adresse zweimal versucht, einen Token aus der Münze abzuheben, schlägt dies fehl. Dies ist jedoch nur dann sinnvoll, wenn aus einem öffentlichen Schlüssel nur eine einzige Adresse abgeleitet werden kann. Eine Balance-Variable kann dieses Problem nicht lösen, wenn das Gegenteil zutrifft.