Ist es für einen Smart Contract möglich, seine Bedingungen basierend auf dem aktuellen Wert von Ethereum anzupassen?

Ich frage das, weil ich einen Crowdfunding Smart Contract für eine Plattform ähnlich wie Kickstarter erstellen möchte. Zum jetzigen Zeitpunkt ist das einzige Krypto-Asset, das der Vertrag aufbringen soll, Ether mit der Möglichkeit, in Zukunft andere ERC20-Token zu integrieren. Das Problem, das ich gerade zu überwinden versuche, ist die Preisvolatilität. Wenn ein Kunde beispielsweise während des 30-tägigen Crowdfunding-Zeitraums und am Tag der Auflistung des Projekts ETH im Wert von 10.000 £ aufbringen möchte, beträgt der Wert von Ether jeweils 100 £, dann werden 100 ETH benötigt, damit der Vertrag erfolgreich ist . Wenn jedoch gegen Ende der Crowdfunding-Dauer der Preis von Ether um 20 % fällt, würde der Kunde Ether nur im Wert von 8.000 £ erhalten. Ein weiteres Problem ist, wenn der Preis vor dem Ende des Projekts dramatisch ansteigt, wodurch der Meilenstein möglicherweise zu hoch angesetzt und das Projekt sabotiert wird.

Ich hätte gerne eine Möglichkeit, den Vertrag alle 5 Minuten oder so zu aktualisieren, basierend auf dem aktuellen Preis von Ether, um das Problem der Volatilität anzugehen. Wenn der Preis beispielsweise um 20 % steigt, ist jede ETH 120 £ wert, und das multipliziert mit 100 ergibt 12.000 £, was zu viel sein kann. Wenn dies eintritt, wäre es ideal, wenn der Vertrag irgendwie aktualisiert und das Zielziel basierend auf einigen einfachen Berechnungen angepasst werden könnte (Zielziel in GBP / 1 ETH zu GBP = Zielziel in ETH). Ich möchte eine solche Funktion implementieren, um dem Zielziel in ETH in Bezug auf GBP (oder andere Fiat-Währungen) etwas Stabilität zu verleihen.

Ich habe ähnliche Implementierungen gesehen, die Verträge basierend auf dem Wert anderer Krypto-Assets aktualisieren können, wie zum Beispiel: Oracilize, das in der Lage ist, den Preis von Kraken zu überprüfen, aber nichts, was dies mit Fiat-Währung tut.

Antworten (2)

Sie können dies wahrscheinlich mit einem Orakel tun (siehe zB www.oraclize.it , aber es gibt andere), um den Etherpreis in der Blockchain zu erhalten.

Beachten Sie, dass Ihr Kunde anscheinend in Ether bezahlt wird, während die Crowdfunder in Pfund zahlen. Sie möchten den Preis in Pfund festlegen, aber die Volatilität von Ether könnte dazu führen, dass Ihr Kunde entweder zu viel Ether erhält (wenn der Etherpreis während des Crowdfundings steigt) oder nicht genug.

Die einzige Möglichkeit, dies zu vermeiden, besteht darin, den Äther Ihres Kunden sofort nach Erhalt wieder in Pfund umzuwandeln, aber dann hatte es überhaupt keinen Sinn, Pfund in Äther umzuwandeln.

Wenn Sie Ihren Vertrag an eine Preisänderung von Ether zum Dollar koppeln möchten, müssten Sie eine dApp verwenden, die einen Wert in Ihrem Vertrag in einer von Ihnen gewählten regelmäßigen Häufigkeit oder einen Änderungsbetrag von Ether zu Dollar aktualisiert.

Müsste diese dApp nicht auch den unverschlüsselten privaten Schlüssel speichern, um die Transaktion des Funktionsaufrufs zu signieren? Wäre das nicht ein Sicherheitsproblem?
Ich würde davon ausgehen, dass Sie diese dApp hosten und die Transaktion von Ihrem Server aus durchführen würden. Der Vertrag würde so codiert, dass nur der „Eigentümer“ des Vertrags den Preis aktualisieren kann. Andernfalls wäre jeder in der Lage, den Preis nach Belieben zu aktualisieren.