У меня есть 2 человека (скажем, A или B). Они хотят иметь следующее соглашение. Лицо «А» указывает депозит (x монет) для пользователя «Б» при определенных условиях с блокировкой будущего времени «t». Если пользователь «B» предоставит действительное решение, он получит депозит. Как мы можем добавить штраф на пользователя «B» пользователю «A», если он не предоставит действительное решение по истечении времени блокировки «t» ?? Любое подробное решение для смарт-контрактов будет очень полезно?
Да.
Было бы полезно думать о контракте как о торговом автомате, который обеспечивает выполнение и обрабатывает.
Пользователь A внесет некоторые средства. Это может быть смоделировано как предложение.
Если пользователь A, возможно, получит штрафные средства от пользователя B, то пользователь B также внесет средства. Это можно смоделировать как принятие условий оферты.
Наконец, пользователь Б либо выполнит задание, либо не выполнит его. Лучше всего, если контракт сам определит, что условие было выполнено или срок истек, чтобы он мог определить, какой пользователь имеет право на получение средств. Важно отметить, что контракт ограничен раздачей средств/активов, предусмотренных его контрактом, поэтому первые два шага были депозитами обоих участников.
Надеюсь, поможет.
ОБНОВЛЯТЬ
Это простой пример крайнего срока. Он не решает всех проблем безопасности для готовой к производству реализации. Только для иллюстративных целей. Нет гарантии. ;-)
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);
}
}
Хеба Мохсен
Роб Хитченс