Выполним ли следующий сценарий с помощью смарт-контракта?

У меня есть 2 человека (скажем, A или B). Они хотят иметь следующее соглашение. Лицо «А» указывает депозит (x монет) для пользователя «Б» при определенных условиях с блокировкой будущего времени «t». Если пользователь «B» предоставит действительное решение, он получит депозит. Как мы можем добавить штраф на пользователя «B» пользователю «A», если он не предоставит действительное решение по истечении времени блокировки «t» ?? Любое подробное решение для смарт-контрактов будет очень полезно?

Ответы (1)

Да.

Было бы полезно думать о контракте как о торговом автомате, который обеспечивает выполнение и обрабатывает.

Пользователь 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);
    }

}
Не могли бы вы привести пример со смарт-контрактом, чтобы пояснить идею?? Поддерживается ли временная блокировка, чтобы, если пользователь B был честен и предоставил действительное решение до этого времени, он мог получить депозит?
Все это большой вопрос, а не проект начального уровня. Многое зависит от задачи, которую должен выполнить пользователь Б. Вы, кажется, обеспокоены временной блокировкой, которую гораздо проще решить, поэтому я обновил ответ простым примером.