Hat Ethereum das Problem „privater Schlüssel bei Ausgaben offengelegt“?

Ist es so, dass Ethereum vom Spender verlangt, den privaten Schlüssel für eine Adresse bereitzustellen, damit er den Besitz nachweisen kann, wenn er ETH ausgibt? Wenn ja, gibt es einen Mechanismus, bei dem jede Ausgabe tatsächlich eine neue Adresse mit einem neuen privaten Schlüssel erstellt und die alte Adresse ungültig macht, um zu vermeiden, dass jemand anderes den privaten Schlüssel kennt und den Ether nimmt?

Ich habe eine Weile gegoogelt, um das nachzuschlagen, aber die Suchbegriffe, die ich verwende, sind wahrscheinlich nicht richtig, da ich keine guten Treffer finde. ("macht das Ausgeben von Ether den privaten Schlüssel verfügbar" und viele Varianten.) Wenn dies bereits in diesem SO beantwortet wird, würde ich mich über einen Link freuen!

Private Schlüssel werden nicht offengelegt und es hört sich so an, als ob Sie das Problem „öffentliche Schlüssel bei Ausgaben offengelegt“ mit Quantencomputern meinen: ethereum.stackexchange.com/questions/351/…

Antworten (2)

Der private Schlüssel wird niemals preisgegeben, das Eigentum wird durch eine digitale Signatur nachgewiesen, die beweist, dass der Eigentümer den privaten Schlüssel kennt, ohne ihn tatsächlich preiszugeben.

Hier eine Übersicht:

  • Bob bittet seine Wallet-Software, eine Transaktion von seiner Adresse zu Alice zu erstellen
  • Bobs Wallet-Software signiert seine Transaktion digital mit Bobs privatem Schlüssel
  • Bobs Wallet-Software veröffentlicht die signierte Transaktion an einen anderen Ethereum-Knoten, der sie an einen anderen Knoten weiterleitet, und so weiter, bis ein Mining-Knoten davon erfährt und sie in einen Block aufnimmt.

Die digitale Signatur von Bobs Transaktion ermöglicht es vor allem jedem, zu überprüfen, ob Bobs privater Schlüssel die Transaktion „gebilligt“ hat, ohne dass er jemals den privaten Schlüssel selbst preisgeben muss.

Danke schön; "Verwenden des öffentlichen Schlüssels zum Überprüfen der Signatur des privaten Schlüssels" war das Bit, das mir entgangen ist.

Bei richtiger Ausführung wird durch das Senden einer signierten Transaktion der private Schlüssel nicht preisgegeben, sodass theoretisch keine neue Adresse erstellt werden muss, um zu verhindern, dass jemand anderes den Ether nimmt.

Die signierte Transaktion gibt den öffentlichen Schlüssel preis. Wie der Name schon sagt, soll dies öffentlich geteilt werden, aber in einigen Systemen wie Bitcoin ist die Adresse ein Hash des öffentlichen Schlüssels (eigentlich zwei Hashes, die unterschiedliche Algorithmen verwenden), und in Ethereum wird ein Teil des öffentlichen Schlüssels beim Generieren weggeworfen die Adresse. Das bedeutet, dass Ihr Geld sicher ist, selbst wenn der Signaturalgorithmus, der es schützt, gebrochen ist, wenn Sie noch nie von einer Adresse ausgegeben haben.

Es gab auch manchmal Fehler in Signaturimplementierungen, die es Benutzern ermöglicht haben, den privaten Schlüssel aus einer kleinen Anzahl bestehender Signaturen wie dieses Problem mit wiederverwendeten Nonces wiederherzustellen . Dies ist eine weitere Art von Problem, vor dem Sie sicher gewesen wären, wenn Sie Adressen nicht wiederverwendet hätten.

Das Erstellen einer neuen Adresse, nachdem Sie eine alte verwendet haben, ist also nicht erforderlich, aber es gibt einige Situationen, in denen dies Ihre Sicherheit erhöht.