Ist das folgende Szenario durch einen Smart Contract realisierbar?

Ich habe 2 Personen (sagen wir A oder B). Sie wollen die folgende Vereinbarung haben. Person 'A' spezifiziert eine Einzahlung (x Münzen) für Benutzer 'B' unter einer bestimmten Bedingung mit einer zukünftigen Zeitsperre 't'. Wenn Benutzer 'B' eine gültige Lösung liefert, erhält er die Anzahlung. Wie können wir Benutzer 'A' eine Strafzahlung für Benutzer 'B' hinzufügen, wenn er nach der Zeitsperre 't' keine gültige Lösung liefert? Jede detaillierte intelligente Vertragslösung wird sehr hilfreich sein?

Antworten (1)

Ja.

Es könnte hilfreich sein, sich den Vertrag als einen Verkaufsautomaten vorzustellen, der durchgesetzt und verarbeitet wird.

Benutzer A wird etwas Geld einzahlen. Dies könnte als Angebot modelliert werden.

Wenn Benutzer A möglicherweise Strafgelder von Benutzer B erhalten soll, wird Benutzer B auch Gelder einzahlen. Dies könnte als Annahme der Bedingungen des Angebots modelliert werden.

Schließlich würde Benutzer B die Aufgabe entweder abschließen oder nicht ausführen. Es ist am besten, wenn der Vertrag selbst herausfinden kann, ob die Bedingung erfüllt ist oder die Frist abgelaufen ist, damit er bestimmen kann, welcher Benutzer Anspruch auf Mittel hat. Wichtig ist, dass der Vertrag auf die Auszahlung von Geldern/Vermögenswerten beschränkt ist, die unter seinem Vertrag stehen, weshalb die ersten beiden Schritte Einlagen beider Teilnehmer waren.

Ich hoffe es hilft.

AKTUALISIEREN

Dies ist ein einfaches Fristenbeispiel. Es adressiert nicht alle Sicherheitsbedenken für eine produktionsreife Implementierung. Nur zur Veranschaulichung. Keine Garantie. ;-)

pragma solidity 0.5.1;

contract Timelock {

    uint public deadline;
    address owner;

    constructor(uint _deadline) public payable {
        deadline = _deadline;
        owner = msg.sender;
    }

    function withdrawFunds() public {
        require(msg.sender == owner); // funds are only for a certain entity
        require(now >= deadline); // cannot be taken before the deadline
        msg.sender.transfer(address(this).balance);
    }

}
Könnten Sie mir bitte ein Beispiel für einen Smart Contract geben, um die Idee zu verdeutlichen? Wird Zeitsperre unterstützt, wenn Benutzer B also ehrlich war und vor dieser Zeit eine gültige Lösung bereitstellte, kann er die Anzahlung erhalten?
Das Ganze ist eine große Herausforderung und kein Anfängerprojekt. Viel hängt von der Herausforderung ab, die Benutzer B absolvieren soll. Sie scheinen besorgt über die Zeitsperre zu sein, die viel einfacher zu berechnen ist, deshalb habe ich die Antwort mit einem einfachen Beispiel aktualisiert.