Verträge als Datenfeed?

Das Dokumentationsbeispiel für einen komplexen Wettvertrag beinhaltet einen „Wetterfeed“-Dienst. Wie würde ein solcher Feed/Dienst/Vertrag funktionieren?

Für einen Wetter-Feed muss entweder ein Temperatursensor an einen Computer angeschlossen sein, auf dem ein Ethereum-Knoten läuft, oder jemand muss die Feed-Daten manuell eingeben? Ist dies ein Vertrag, bei dem er auf Reputation basieren und von einem Betreuer betrieben werden müsste (der Eigentümer des Vertrags ist der einzige, der eine addFeedEntryMethode verwenden darf, die Ereignisse auslöst)?

Oder gibt es eine Möglichkeit, eine Datenquelle (Remote-Website oder Sensor außerhalb des Computers, auf dem der Knoten ausgeführt wird) nachweisbarer zu binden, sodass das Vertrauen in einen Betreuer nicht vorhanden sein muss?

Antworten (2)

Letztendlich werden Sie sich darauf verlassen, dass jemand die Wahrheit sagt, weil jemand für das Thermometer verantwortlich sein muss.

Die Informationen vom Thermometer müssen dann so an Ihren Ethereum-Vertrag übermittelt werden, dass der Vertrag glauben kann, dass sie vom Thermometer stammen: Irgendein Computer irgendwo, der jemandem gehört, wird entweder den ursprünglichen Messwert signieren, so dass er es dann kann in die Ethereum-Blockchain eingespeist werden oder eine signierte Ethereum-Transaktion mit den darin enthaltenen Daten erstellen und diese an die Blockchain senden.

Die wichtigste Abschwächung des offensichtlichen Vertrauensproblems besteht hier darin, mehrere unabhängige Datenquellen zu verwenden. Als die Menschen hier in Japan zum Beispiel der Regierung nicht trauten, die Wahrheit über die Strahlungswerte zu sagen, gründeten sie das SafeCast-Projekt, bei dem viele Menschen mit Geigerzählern ausgestattet werden und diese Daten an eine Website zurücksenden. Viele dieser Leute sind in ihren sozialen Netzwerken bekannt, daher gibt es einen gewissen Schutz gegen Sybil-Angriffe, und es wäre schwierig, viele gefälschte Daten zu produzieren und die Leute davon zu überzeugen, dass sie echt sind.

In vielen Fällen haben wir bereits Datenquellen, denen wir zumindest teilweise vertrauen, dass sie uns genaue Informationen liefern, aber sie liefern diese Informationen nicht in einer Form, die Ethereum-Verträge verstehen können, also gibt es ein paar Projekte, die die Lücke schließen zwischen der bestehenden Datenquelle und einem Ethereum-Vertrag. Mein Projekt, Reality Keys, nimmt Informationen aus verschiedenen Datenquellen und veröffentlicht sie zusammen mit Ethereum-kompatiblen Signaturen, die in einem Ethereum-Vertrag verwendet werden können. Wir erlauben den Menschen auch, diesen Daten zu widersprechen und für weitere Untersuchungen aus anderen verfügbaren Quellen zu bezahlen, da viele Datenquellen nicht mit Smart Contracts im Hinterkopf gesichert sind und wahrscheinlich gehackt oder beschädigt würden, wenn Menschen anfangen würden, bedeutende Finanztransaktionen darauf zu stützen. Ein anderes ist Oraclize, das Ihnen nur die Daten einer Website zur Verfügung stellt und an Ihren Vertrag sendet. In beiden Fällen müssen Sie darauf vertrauen, dass der Vermittler, der die Daten aus der bestehenden Datenquelle sendet, nicht lügt oder gehackt wird. In einigen Fällen wird Oraclize Ihnen einen Beweis liefern, um zu zeigen, dass die Daten, die sie Ihrem Vertrag gesendet haben, wirklich die Daten waren, die sie von der Website erhalten haben, aber das ' s im Allgemeinen etwas, das Sie sowieso trivial überprüfen könnten; Das Problem ist, dass Sie zu diesem Zeitpunkt bereits Ihr Geld verloren haben. Dies wird interessanter, wenn sie eine Möglichkeit finden, diesen Nachweis im Vertrag zu überprüfen.

Ein anderer Ansatz, um zuverlässige Daten zu erhalten, besteht darin, zu versuchen, den Bitcoin-Ansatz zu kopieren, anonyme Teilnehmer dazu zu bringen, darüber zu berichten, was ihrer Meinung nach passiert ist, und zu versuchen, ein System zu schaffen, das sie dazu anregt, die Wahrheit zu sagen. Das ist die Idee hinter Augur , die, obwohl ihr internes Token "Reputation" heißt, nicht wirklich auf Reputation angewiesen ist, wie wir das Wort normalerweise verwenden würden. Dazwischen gibt es auch viele mögliche hybride Ansätze, wie diesen Vorschlag von Martin Koeppelmann: http://forum.groupgnosis.com/t/the-ultimate-oracle/61

Ein Link zu einer möglichen Lösung ist immer willkommen, aber bitte fügen Sie Kontext um den Link hinzu, damit Ihre Mitbenutzer eine Vorstellung davon haben, was es ist und warum es dort ist. Zitiere immer den relevantesten Teil eines wichtigen Links, falls die Zielseite nicht erreichbar ist oder dauerhaft offline geht.
Manchmal sind weniger Worte besser
Während dies die Frage theoretisch beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.