Derzeit gibt es in der Ethereum-VM keine Anweisung, auf Ressourcen zuzugreifen, die auf Swarm gespeichert sind. Ist es geplant, eine solche Funktion hinzuzufügen?
Eine solche Funktion (wörtlich als Zugriff auf Inhalte interpretiert) ist aus demselben Grund unmöglich wie die Generierung von Zufallszahlen, generischer Webzugriff oder Systemzeit: Die VM muss eine vollständig deterministische Blackbox sein, die in allen Knoten, die Transaktionen verarbeiten, genau gleich ausgeführt wird.
Ein indirekter „Zugriff“ wird jedoch ähnlich wie beim BTC-Relay möglich sein: Indirekt bedeutet hier, dass eine Transaktion einen bestimmten Inhalt im Schwarm geltend machen kann, den Sie anfechten können.
Alles, was wir glauben müssen, ist, dass es möglich ist, zu beweisen, dass eine Byte-Folge mit Offset o
und Länge zu einem bestimmten l
Zeitpunkt t
unter einer URL tatsächlich Teil eines Dokuments ist u
(z. B. mydomain/path/to/my/content
)
die schritte dazu:
b
, der der Zeit entspricht, die t
ENS-Registrierung Hash h
als Auflösung von mydomain
.h
der Root-Hash eines Manifests (Kaskade von Manifesten) ist, in dem path/to/my/content
auf hash zeigt h0
.h0
der Root-Hash eines Dokuments ist, das einen Chunk c
(oder eine Reihe von Chunks c0,.. cn
) enthält, die sich über die herausgeforderte Teilzeichenfolge erstrecken.t
Chunk c zum maßgeblichen Zeitpunkt eine unangefochtene Quittung hatte (gültiger Sorgerechtsnachweis).Swarm verwendet ein beweisfreundliches Manifestformat und einen soliditätsfreundlichen 32-Byte-Segment-basierten binären Merkle-Baum als Basis-Hash für den Schwarm-Hash. Dies bedeutet, dass solche Beweise logarithmisch sind in der Größe der Dokumentensammlung unter dem Manifest plus der Größe des Dokuments unter der URL (ohne Berücksichtigung der historischen Zustandsbeweiskomplikation in 1).
Schritt 5 ist ein etwas anderer „Beweis“ als der Rest, da er die tatsächliche Verfügbarkeit der fraglichen Informationen bestätigt.