Gibt es etwas, das mich davon abhält, die Ethereum-Blockchain als Datenspeicher zu verwenden?

So wie ich es verstehe, sind Smart Contracts derzeit standardmäßig unsterblich. Bedeutet dies, dass ich einen Vertrag erstellen könnte, der zufällig eine verschlüsselte Form von Babyfotos enthält, und ihn für immer aufbewahren könnte? Wenn nein, was verhindert das?

Antworten (4)

Nichts hindert es. Vor 5 Monaten habe ich das Speichern von Audio (eine sehr stark komprimierte MP3-Datei) in der Blockchain demonstriert. Und es ist immer noch da und wird heute von jedem Full Node repliziert! Nur 3,5kB und ich musste ziemlich viel Ether bezahlen, aber trotzdem cool!

Sehen Sie sich das verrückteste Ding aller Zeiten an – die Blockchain hat jetzt eine Stimme! Thread auf Reddit.

Damit diese Antwort lange Bestand hat (falls etwas mit dem obigen Link passiert), ist hier der entsprechende Befehl, der in Ihrem Terminal ausgeführt werden muss:

geth --exec "eth.getTransaction('0xbb8ee9866ee67277986b6f40775469c7a674810ce99dce3caff0d1117c8dcdac').input" console | xxd -p -r | mpg321 -

Ein intelligenterer Weg verwendet den Speicher nur als Hash, wie andere Antworten gesagt haben, verwenden Sie StorJ, IPFS usw., da Sie dann mehr außerhalb der Blockchain speichern und damit verknüpfen können.

Das ist fantastisch! Ich brauchte eine Weile, um die Daten tatsächlich zu bekommen und abzuspielen, Geth schien nicht zu glauben, dass die Adresse existierte, xxd war nicht installiert, mpg321 war nicht in den offiziellen Repos, also musste ich es auf einer Blockchain-Explorer-Site finden , installiere xxd und benutze dann ffplay, und es hat sich gelohnt XD.
shelvacu: Schön zu hören! Ich bin froh, dass Sie ein bisschen Spaß damit hatten, ich weiß, dass ich es hatte. :) Ich hatte den ersten funktionierenden Vertrag auf der Ethereum-Blockchain.
Dagegen spricht nichts....außer die im Vergleich zu anderen Lösungen außerordentlich hohen Kosten. Bitte erwähnen Sie in Ihrer Antwort, dass die Leute dies eigentlich nicht tun sollten – wie bereits erwähnt, ist IPFS eine viel bessere Möglichkeit, einige Daten für immer zu speichern, ohne die Ethereum-Blockchain aufzublähen. Und tatsächlich, wenn die Leute auf den Abschluss von Projekten wie Swarm warten, können sie weniger als die Kosten der Blockchain-Speichermethode in einen Vertrag einzahlen, der dasselbe garantiert.
Wieviel hast du bezahlt?
@MatíasInsaurralde Ich habe auf Reddit 0,25 $ gehört.

Die wichtigsten Dinge, die Sie "aufhalten", wären:

  1. Blockieren Sie Gasgrenzwerte, über die derzeit von Bergleuten "abgestimmt" wird
  2. Gasmenge, die Sie bezahlen müssten, um Ihre Daten zu speichern

Dinge wie Babyfotos werden unkomprimiert mindestens 600 kB groß sein. Ich bin mit der Bildkomprimierung nicht besonders vertraut, daher werden wir nur als Beispiel mit der Zahl von 600 KB arbeiten.

Ende Oktober 2015 verbrauchte eine Transaktion, die 46 KB komprimierten Text sendete, 1.720.210 Gas und kostete 0,0860105 Ether (0,074 USD) . Der Preis für Ether wird seitdem weiter steigen/fallen, aber ignorieren wir das für einen Moment, lassen Sie uns rechnen:

Das Speichern des 600-kB-Bildes würde 13-mal mehr Gas kosten, sodass 22.362.821 Gas für Kosten von 0,96 $ verbraucht würden (bei Preisen ab Oktober 2015). Das aktuelle Block-Gas-Limit beträgt 3.141.592 Gas, was viel weniger ist als die erforderliche Menge, um das Bild in einer Transaktion zu verarbeiten.

Es ist also möglich, Bilder in der Ethereum-Blockchain zu speichern, aber eine viel billigere Lösung wäre, einen Verweis auf dieses Bild (wie eine URL) zu speichern, um es dauerhaft dort zu speichern, wo das Bild aufbewahrt wird, vorausgesetzt, das ist nicht so nützlich wie eine dauerhafte Speicherung. In Zukunft wird IPFS wahrscheinlich in der Lage sein, Daten auf unbestimmte Zeit zu speichern, sobald sie ein Anreizsystem für die Speicherung der Daten festlegen. Dann muss nur noch der IPFS-Hash gespeichert werden, der auf das Bild zeigt.

Es ist technisch möglich, es gibt einige Apps, die das auch tun.

  1. http://storj.io
  2. http://filecoin.io
  3. Skalierung Blockchain-basierter Datenspeicher

Die speicherbaren Datentypen sind begrenzt, sodass das Speichern von Babyfotos viel Code erfordern würde, um sie den verfügbaren Typen zuzuordnen. Außerdem müssen Sie natürlich Ether an den Vertrag zahlen, um seinen Speicher zu nutzen, also ist es nicht kostenlos.