Как воспроизвести функциональность OP_RETURN Биткойна на Ethereum?

Я знаю, что Ethereum более продвинут и позволяет делать более интересные вещи, чем связывание данных с транзакцией. Но допустим, у меня есть устаревшая система, в которой используется OP_RETURN Биткойна. Какие у меня есть варианты перехода с блокчейна Биткойн на блокчейн Эфириума?

Другими словами, мне нужно добавить данные, а затем найти эти данные по какому-то уникальному идентификатору. (например, идентификатор tx Биткойн). Также мне нужно иметь возможность проверить, кто разместил данные. Могу ли я просто связать данные с tx? Или мне следует создать контракт с полем «ключ-значение» для данных и добавить способ проверки авторства?

Ответы (1)

В большинстве случаев, о которых я могу думать, то, что может быть достигнуто с помощью OP_RETURN, должно быть достигнуто с помощью контрактов.

Например, то, что делает Open Assets, может быть выполнено с помощью контракта — либо гигантского контракта со всеми активами, либо простого контракта, управляющего каждым отдельным активом. Для второго варианта смотрите "контракты токенов" ( подробнее читайте здесь и здесь )

Если вам действительно нужно или вы настаиваете на том, чтобы скопировать работу OP_RETURN, это тоже возможно. Каждая транзакция имеет (среди прочих полей):

  • получатель
  • ценить
  • данные / байт-код

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

Ничто не мешает вам использовать поле данных при совершении транзакции между внешними счетами (т.е. адресами, которые не являются контрактами). Вам нужно будет заплатить соответствующий бензин, так как базовые 21000 не покроют вас.

Важно: это работает только между внешними учетными записями. Для контрактов это поле будет интерпретироваться как команда, и очень вероятно, что оно не будет выполнено.