Что, если недобросовестный узел запустит другую программу на EVM?

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

Что, если недобросовестный узел запустит другую программу, которая обращается к данным без проверки авторизации? Предлагает ли Ethereum некоторую защиту от узлов, которые хотят выполнить программу «в одиночку»? Или мне следует реализовать что-то, что позволит получить доступ к этим данным только в том случае, если большая часть узлов достигнет консенсуса?

Надеюсь понятно объяснил. Спасибо

что вы подразумеваете под доступом к данным? чтение данных в вашем договоре?

Ответы (2)

Чтобы было ясно: у вас нет конфиденциальности в блокчейне.

Вы можете хранить некоторые данные в смарт-контракте, а затем предоставлять некоторые условия доступа. Но это ограничивает только данные, которые можно увидеть, вызвав код смарт-контракта.

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

Есть несколько методов, которые можно использовать для сокрытия информации в блокчейне, но на самом деле они не связаны с блокчейном. Блокчейн по умолчанию не обеспечивает никакой конфиденциальности.

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

Если ваши данные находятся в контракте, они могут быть прочитаны каждым узлом без запроса разрешения. Эфириум гарантирует только правильное изменение состояния, описанное в вашем контракте. Правильный означает, что он был инициирован транзакцией с достаточным количеством газа и что результат выполнения правильно опубликован в блокчейне. Это гарантировано, потому что каждый узел выполняет контракт для правильного майнинга блока. Таким образом, другие узлы увидят, что дерево состояний, сгенерированное злоумышленником, неверно, и отклонят блок как недействительный.