Wie kann ein Ripple-Vertrag zufällige Werte verwenden und einen Konsens erzielen?

Es gibt eine interessante Seite über Verträge im Ripple-Wiki.

Mein begrenztes Verständnis von Verträgen ist, dass es wie bei anderen Transaktionen in Ripple der Konsens über viele Server ist, der die Gültigkeit sicherstellt. Habe ich Recht, dass, wenn ein Vertrag in Ripple läuft, der Code auf mehreren Servern läuft und der Konsens sicherstellt, dass die Anweisungen des Vertrags korrekt ausgeführt werden?

Wenn ja, bin ich besonders gespannt auf das „ Lotto “-Beispiel auf der Wiki-Seite. Es wählt nach dem Zufallsprinzip ein Konto aus, an das ein bestimmter Betrag in einer bestimmten Währung gezahlt werden soll.

Wenn dieser Code gleichzeitig auf vielen Ripple-Servern liefe, würde jeder zufällig einen anderen Gewinner auswählen. Wie würden sie jemals einen Konsens erreichen?

Antworten (1)

Diese Kontakt-Wiki-Seite ist möglicherweise veraltet. Das Lotto-Beispiel verwendet jedoch, rand floatwas im Datenzugriffsabschnitt der Wiki-Seite wie folgt beschrieben wird:

  • Diese Nummer wird deterministisch basierend auf dem Hash der Transaktionssammlung oder so erstellt

Das impliziert für mich, dass es nur in dem Sinne zufällig ist, dass der Vertrag selbst oder jeder Ripple-Benutzer nicht erraten kann, wie der Wert zur Laufzeit sein wird, aber sobald alle Validatoren ausgeführt werden, verwenden sie denselben Wert.

Dies ähnelt der Funktionsweise einiger Bitcoin-Glücksspielseiten, die Zahlen verwenden, die auf dem Bitcoin-Blockchain-Hash basieren.

Richtig, damit der Vertrag funktioniert, müsste er deterministisch und nur zufällig sein, in dem Sinne, dass niemand wählen könnte, was seine endgültige Ausgabe ist.
Dies muss noch implementiert werden, aber es gibt weitere mögliche Details unter ripple.com/forum/…