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?
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);
}
}
Heba Möhsen
Rob Hitchens