Контракты действуют на блокчейне в двоичном формате, специфичном для Ethereum (байт-код EVM), который исполняется виртуальной машиной Ethereum (EVM).
Скомпилированный код EVM отправляется в блокчейн с транзакцией создания контракта, в то время как дополнительные метаданные, созданные в рамках составления смарт-контракта, в идеале будут жить в децентрализованном облаке в качестве публично проверяемых метаданных, дополняющих код в блокчейне..
В процессе развертывания смарт-контракта мы фактически отправляем транзакцию на пустой адрес с кодом EVM, сгенерированным как часть компиляции смарт-контракта, в качестве данных транзакции.
Через некоторое время ваша транзакция должна появиться включенной в блок, подтверждающий, что вызванное ею состояние является консенсусом.Ваш контракт теперь живет в блокчейне по адресу, созданному для смарт-контракта.
С адресами контракта связан байт-код, и за контрактом никто не контролирует внешние ключи.Контракты хранят журнал CRAB вместо базы данных CRUD (создание и чтение, добавление, запись, создание, чтение, обновление, удаление, удаление).
Поскольку у нас есть код смарт-контракта, часть данных транзакции, которая создала смарт-контракт, а также у нас есть новый адрес для смарт-контракта, блокчейн Ethereum на самом деле может определить фактический байт-код, который должен бытьвыполняется путем поиска первой транзакции, выход которой указывает на адрес контракта.