Wie validiere ich Informationen im Netzwerk?

Diese Frage beschreibt das Senden einer Nachricht mit Ethereum: Wie sende ich eine beliebige Nachricht an eine Ethereum-Adresse? . Angenommen, wir haben zwei Parteien P1 und P2. Wenn P1 eine Nachricht an P2 sendet, wie kann P2 überprüfen, ob die von P1 gesendete Nachricht im Netzwerk / in der Blockchain gespeichert wurde?

Wird dies von Ethereum implizit garantiert?

Antworten (1)

Es ist im Grunde implizit.

P1 kann einen Transaktions-Hash, eine Blocknummer oder sogar nur die Adresse bereitstellen, von der sie es gesendet haben. P2 oder jeder andere kann dann nach dieser Transaktion in der kanonischen Blockchain suchen – wenn sie nicht da ist, ist sie per Definition nicht in der Blockchain passiert .

„Kanonische Blockchain“ bezieht sich normalerweise auf die längste verfügbare Kette (d. h. diejenige mit der größten Arbeitserprobung). Es gibt eine beträchtliche Menge an Philosophie darüber, was genau das bedeutet (insbesondere wenn man Hardforks, Softforks, Microforks hinzufügt ...). Für fast alle Zwecke ist es definitiv, eine ausreichende Anzahl von Blöcken abzuwarten und dann in die Kette zu schauen.

Das Verifizieren einer Nachricht ist also die gleiche Philosophie wie das Verifizieren einer Zahlung in Bitcoin. Warten Sie, bis mehrere Knoten die Nachricht/Zahlung verifiziert haben. Je mehr Knoten die Verifizierung durchführen, desto wahrscheinlicher ist die Gültigkeit der Nachricht/Zahlung exponentiell.
Ich würde nicht sagen, dass es exponentiell ist, aber es ist dasselbe wie bei Bitcoin.
Mir fehlt hier vielleicht etwas, aber was hindert den Absender daran, einen Transaktions-Hash mit einer anderen Nachricht zu senden, was bindet die Nachricht an den Transaktions-Hash?
Der Transaktions-Hash stammt aus dem Hashing der gesamten Transaktion. Das Ändern eines einzelnen Bytes führt zu einem anderen Hash.
ich formuliere das vielleicht nicht richtig. p1 sendet eine Nachricht an p2 und fügt den Transaktions-Hash hinzu. Der Nachrichten-Hash und der Transaktions-Hash werden also gesendet?
Ich bin mir nicht sicher, was du mit Nachricht meinst. Der Link in der Frage spricht über das Einfügen einer Nachricht in das Datenfeld einer Transaktion. In diesem Fall wäre diese Nachricht Teil des Hashs der Transaktion.
Die Payload ist dann definitiv Teil des Transaktionshashs. Wenn ein einzelnes Bit geändert wird, handelt es sich um eine andere Transaktion.
ok, die Daten, auch bekannt als Nachricht, sind in der Transaktionsnutzlast enthalten, wie hier näher beschrieben: ethereum.stackexchange.com/questions/1990/… aber wenn die Daten außerhalb der Kette auf einem Datenspeicher wie ipfs, aws oder Dropbox gespeichert sind, kann dies nicht überprüft werden die Daten, diese Frage in diesem Kommentar macht möglicherweise keinen Sinn, da die Nachricht außerhalb der Kette gespeichert wird und dann nicht in der Blockchain gespeichert wird ...
Das ist richtig. Sie können die Blockchain verwenden, um zu beglaubigen, dass ein bestimmter Hash zu einem bestimmten Zeitpunkt existierte, aber nicht viel mehr.