Основной вопрос о распределенном смарт-контракте

Основной вопрос о распределенном смарт-контракте. Предположим, я пишу смарт-контракт и размещаю его в общедоступной сети.

My Contract Specification
•   My contract would allow anyone to register. 
•   Fund 10 Ether to the contract 
•   Contract will in turn return 12 Ether on Dec 31st 2017

Владелец контракта по ошибке вместо ограничения до 31 декабря указал в контракте 31 января.

Сценарий:

•   Owner A sits in USA, deploys the contract in public chain 
•   User B from Australia funds 10 ether to the contract on August 31st, 2017
•   User B now expects 12 Ether on Dec 31st but he never receives it .

Вопрос

Even though the contract is distributed among all the nodes, 
1.  How would user B come to know what is written in the contract ( assuming B has zero coding knowledge) ?
2.  If only User B is interested in this contract, who will verify this smart contract 

Ответы (3)

Смарт-контракт после развертывания на Ethereum становится общедоступным и может быть просмотрен. Нужно знать, на что они подписываются, изучив смарт-контракт (другого выхода нет).

Спасибо, Разве мы не развертываем байт-код. Как можно увидеть договор? Можете ли вы указать мне какой-либо контракт, который открыт для всех?
Да, он развернут как байт-код. Но в браузере блокчейна, таком как etherscan.io, вы даже можете просматривать код. Пример здесь: etherscan.io/address/…
«Исходный код» доступен только в том случае, если кто-то опубликует его в Etherscan и проверит. Это необязательно со стороны контрактного издателя. Я требую этого от каждого смарт-контракта, с которым я взаимодействую, или я просто не взаимодействую с этим контрактом.

Если я пользователь B, я бы запросил у пользователя A исходный код контракта и все инструкции, необходимые для проверки соответствия сгенерированного байт-кода исходному коду. Если я ничего не знаю о смарт-контрактах, я должен попросить помощи у того, кто о них знает.

Как это происходит в реальной жизни, если вы хотите подписать контракт, вы заставляете кого-то, кому вы доверяете, просмотреть его. Это, очевидно, зависит от контракта, для более серьезного контракта вы можете обратиться к профессионалу, для более простого контракта вы можете спросить в Интернете.

Вы можете проверить и опубликовать код на etherscan.io. После этого любой, кто пойдет по этому контрактному адресу, будет знать, что такое код.