Wie funktioniert sichere Kommunikation (z. B. HTTPS) mit einem Smart Contract?

Ich arbeite an einem intelligenten Vertrag, um ein faires Lotteriespiel zu betreiben. Der Gewinner wird per Zufallszahlengenerierung ermittelt. Der aktuelle Plan ist, die Zufallszahl von einer Orakelquelle zu bekommen. Allerdings habe ich mich gefragt – wie übermittelt das Orakel die Nummer sicher an die Blockchain?

Da alles in einem Smart Contract sichtbar ist (ähnlich wie alles, was in einer HTML-Datei gespeichert ist), können sie keinen privaten Schlüssel speichern, ohne dass er sichtbar ist, sodass die Verschlüsselung mit öffentlichen und privaten Schlüsseln nicht mehr sicher ist? Woher wissen Sie also, dass die extern generierte Zufallszahl sicher an Ihren Smart Contract gesendet und unterwegs nicht abgefangen und verändert wurde? Das Szenario, das einem in den Sinn kommt, ist, wenn die Zufallszahl an die Blockchain gebunden wird, Miner sie jedoch ablehnen könnten, wenn dies nicht zu einem Gewinn für sie führt (aus dem gleichen Grund wird die Verwendung eines externen Zufallszahlengenerators empfohlen). Wie geht das sicher?

Irgendwelche Gedanken/Erklärungen/Anweisungen wären toll!

Antworten (1)

Wie Sie richtig angemerkt haben, können Sie Geheimnisse im Allgemeinen nicht offen übermitteln, weil sie schnell öffentlich werden.

Ich werde die Frage der Zufallsquelle beiseite lassen, weil das an sich schon ein komplexes Rätsel ist. Auch die Frage, dass Miner Transaktionen missachten, die sie dazu bringen, das Spiel zu verlieren, wird wahrscheinlich direkter auf Konsensebene angesprochen.

In Bezug auf Ihre "geheime" Übertragung ist hier eine Idee, die Sie in Betracht ziehen sollten.

Sie können den Hash eines Geheimnisses sicher übertragen, und Sie können Anspruchstellern den Nachweis erbringen, dass sie das Geheimnis kennen, indem Sie einen Datensatz erstellen, der korrekt auf den im Vertrag festgehaltenen Wert gehasht wird. Einmal verwendet, sollten Sie darauf achten, dass das gleiche Geheimnis nie wieder verwendet wird, da es aufgedeckt wird.

Ich hoffe es hilft.