Proof Of Existence (POE) Eingabedaten erste 8 Zahlen

Ich versuche, ein POE-Modell basierend auf der Ethereum-Blockchain zu implementieren. Grundsätzlich erhalte ich sha-256-Hash von einem Dokument, dann sende ich eine 0-Ether-Transaktion an mich selbst und füge den Hash des Dokuments zum Feld "Daten" hinzu. Die Transaktion wird validiert und ich kann sie sehen: https://ropsten.etherscan.io/tx/0x1f4d3136b16de5ca56e04edfbb5139e902d624a200846374f7cba8b598f6dd82 (derzeit mache ich das im Testnet)

Meine Eingabedaten waren jedoch 15e2b0d3c3 ..... und in Empfangsdaten ist 0x53369b73 15e2b0 ...... Alles in Ordnung, außer dass ich nicht verstehe, warum diese 8 Ziffern eingefügt wurden, wofür stehen sie? Und was soll dieses 0x vor allem?

Wenn mir das jemand mit einfachen Worten erklären könnte, wäre ich sehr dankbar.

Antworten (1)

Das 0xzeigt nur an, dass die Daten hexadezimal sind. Es ist nur eine Darstellungskonvention und nicht Teil der Daten.

Der 53369b73Teil ist interessanter. Das sieht aus wie die Signatur eines Funktionsaufrufs in der Ethereum ABI . Als Sie die Transaktion erstellt haben, sieht es so aus, als hätten Sie eine Methode für einen Vertrag aufgerufen. Die "Signatur" dieser Methode bildet immer die ersten vier Bytes der Anrufdaten gemäß der ABI-Spezifikation - so kann ein Vertrag herausfinden, welche seiner Methoden Sie aufrufen. (Wenn Sie weitere Informationen darüber geben, wie Sie die Transaktion überhaupt erstellt haben, kann ich dies wahrscheinlich erweitern.)

Sie können Daten als Transaktion senden, ohne eine Methode aufzurufen. Beispielsweise web3.jskönnen Sie sendTransactionmit dem Parameter genau angeben, welche Daten Sie senden möchten data. Wenn Sie jedoch mit in Solidity geschriebenen Verträgen arbeiten, möchten Sie dies wahrscheinlich nicht direkt tun.

danke für deine ausführliche antwort. Ich verwende nur myetherwallet, um Transaktionen zu senden. Ich habe keinen Vertrag im Einsatz. Ich habe auch den stamp.io POE-Dienst ausprobiert und es scheint, dass sie es auf die gleiche Weise tun und das gleiche Ergebnis erhalten (das Ergebnis hat auch dieses 53369b73-Präfix), daher ist es für mich immer noch unklar, wie / warum diese 8 Zahlen gebildet werden ...
Hmm. Ich habe Ihnen gerade eine großzügige 0,0001 Ropsten Eth-Transaktion über die MyEtherWallet-Registerkarte „Send Ether & Tokens“ gesendet. Als Transaktionsdaten habe ich einfach "0x15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225" (keine Anführungszeichen) eingegeben - wie Sie sehen können, kam es in der Transaktion selbst unverändert durch, daher weiß ich nicht, warum es bei Ihnen anders ist. Stellen Sie sicher, dass Sie Ropsten Eth senden (beliebiger Betrag, 0 ist OK), kein Token, da Token-Transfers wirklich getarnte Funktionsaufrufe sind.
Könnten Sie bitte auch versuchen, eine Datei auf stamp.io hochzuladen (z. B. einfach eine einfache .txt-Datei erstellen) und deren Existenznachweisdienst verwenden. Sobald Sie die Datei hochgeladen haben, können Sie ihren SHA-256-Code sehen. Wenn die Existenz Ihres Dokuments bestätigt ist, können Sie auf einen Link (Transaktionscode) klicken, um die Details anzuzeigen. Sind die "Eingabedaten" mit dem sha-256-Code Ihrer Datei identisch oder stehen diese 8 Zahlen davor?
Okay - fertig. Ich sehe das Präfix "53369B73". Ihre Zertifikatsseite für das Dokument (Teil mit technischen Details) besagt, dass sie dieses Präfix hinzufügen, also ist das vernünftig (ich weiß jedoch nicht warum). Ich kann jedoch nicht erkennen, woher dies kommen würde, wenn Sie MyEtherWallet verwenden, um Ihre Transaktion zu erstellen.
Vielen Dank! Dieses Präfix stammt wirklich von ihrem Dienst, daher ist es (glaube ich) nicht notwendig, wenn ich meinen eigenen POE-Dienst implementiere. Du bist das wahre Genie, deine Erklärungen haben mir geholfen, viele neue Dinge zu verstehen (was hinter den Kulissen passiert).
Sehr gerne. Ich habe meine Antwort oben leicht bearbeitet, um zu sagen, dass dies wie eine Funktionssignatur aussieht - in diesem Fall ist dies wahrscheinlich nicht der Fall. Wie auch immer, es könnte jemand anderem in Zukunft helfen. Viel Glück alles zum Laufen zu bringen.