Каждый код Solidity обязательно называется Smart Contract?

Правильно ли говорить, что даже код Solidity, который не содержит никаких финансовых транзакций для обмена цифровыми активами или токенами и хранит только некоторую информацию в блокчейне, является смарт-контрактом?

Что касается этого факта, то термин «Контракт» обычно относится к взаимному соглашению между двумя или более сторонами для определения задач каждой стороны. А если этот договор финансовый, обычно между сторонами происходит обмен активами.

Я ошибаюсь?

Ответы (1)

Как и многие другие слова, «контракт» имеет несколько значений.

Контракт исторически имел тенденцию ссылаться на что-то вроде определения в вашем последнем абзаце.

В информатике его часто используют, чтобы говорить об обещании, которое часть кода дает людям, пытающимся использовать его в другом коде. Например, см. это обсуждение «дизайна по контракту»: https://en.m.wikipedia.org/wiki/Design_by_contract .

«Умный» приобрел значение чего-то, в чем есть современные технологии, или, на практике, чего-то, что можно взломать или взорвать.

Ник Сабо придумал термин «смарт-контракт», чтобы говорить о соглашении между людьми, соблюдение которого обеспечивается машиной. Он предположил, что торговый автомат был своего рода «умным контрактом». http://firstmonday.org/ojs/index.php/fm/article/view/548/469-publisher=Первый

Ethereum использует термин «контракт» для обозначения независимой компьютерной программы, развернутой в его блокчейне, с заданным фрагментом кода и выделенной областью хранения. Возможно, это не лучший термин, и некоторые люди предложили вместо этого называть его чем-то вроде «агент». Люди также иногда называют это « умным контрактом».

Один «контракт» в Ethereum может использоваться для обеспечения выполнения широкого круга договоренностей между людьми. Контракт с несколькими подписями может включать в себя несколько подписей с ключей, которые все предназначены для использования одним человеком. Контракт на пари может обрабатывать большое количество различных ставок, каждая из которых, возможно, является самостоятельным контрактом между людьми.

Так что да, каждый бит кода, развернутого в Ethereum, является смарт-контрактом блокчейна в одном смысле, но это не обязательно будет совпадать со смарт-контрактом в другом смысле, и это, в свою очередь, может совпадать или не совпадать с контрактом в более традиционном смысле. квазиюридический смысл соглашения между людьми.

И последний поворот: из-за того, как работает наследование Solidity, иногда у вас будет два фрагмента кода, каждый из которых называется «контракт», но в конечном итоге они будут развертывать только один контракт (определяемый как фрагмент кода с собственным хранилищем) в блокчейне. .