Нуб: Как мне убедиться, что транзакция не была совершена хакером?

Я собираюсь работать над своим первым проектом на Эфириуме.

Когда пользователь открывает MySecretApp, он создает транзакцию в блокчейне Эфириума.

Мои вопросы:

1) Делюсь ли я блокчейном Эфириума (и миллиардами существующих транзакций) с другими компаниями? Или я могу создать новую цепочку, содержащую только транзакции, поступающие из MySecretApp?

1) Как мне убедиться, что хакер с приложением под названием HackersFakeApp не публикует транзакцию в моей цепочке? Я хочу хранить только транзакции, поступающие из моего приложения.

Транзакция создается на компьютере пользователя или на сервере, которым вы управляете?
Это было бы с физического устройства (с Wi-Fi), которое они покупают у меня.

Ответы (1)

Одна возможная установка:

  • Храните закрытый ключ внутри физических устройств. Он должен быть одинаковым для всех устройств и известен только вам. Вы должны убедиться, что люди не смогут добраться до него, используя любой механизм, который предоставляет ваше оборудование.

  • Запишите открытый ключ этого закрытого ключа как константу в свой смарт-контракт.

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

  • Устройство транслирует транзакцию с подписью в качестве аргумента.

  • Смарт-контракт реконструирует сообщение и проверяет подпись сообщения.

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

Если у вас есть еще вопросы, просто прокомментируйте, я обновлю этот ответ.

Спасибо! Это обычная установка для блокчейна с физическими устройствами? Безопасно ли хранить закрытый ключ на всех этих устройствах? Я думаю, что обычно у устройств будут открытые ключи, а у смарт-контракта будет закрытый ключ..? (Я полный нуб, так что поправьте меня, если я не прав)
@Edmund Это обычная установка. Вы никогда не должны хранить секретную информацию в смарт-контракте, потому что весь код смарт-контракта общедоступен в блокчейне. Многие микросхемы, используемые во встраиваемых системах, имеют механизм постоянной блокировки, встроенный в качестве аппаратной функции. После прошивки можно включить блокировку и больше никто не сможет прочитать память программы. Вы должны отдавать закрытый ключ только в заблокированной памяти. Устройство, которое проверено как источник определенной информации, должно содержать закрытый ключ. Код, выполняющий проверку, всегда содержит открытый ключ.
Вау, это отличная информация! У меня была неправильная идея. Таким образом, используя эту установку, будет ли это означать, что консенсус не нужен? Честно говоря, я не уверен, как работает консенсус... насколько мне известно, Ethereum обрабатывает это автоматически, поэтому мне не нужно об этом беспокоиться, поэтому я могу просто создавать транзакции и код, предполагая, что все безопасно/надежно. Это верно?
Консенсус @Edmund происходит автоматически внутри платформы Ethereum. Все, что вам нужно сделать, это транслировать транзакцию с достаточной комиссией и подождать, пока она не будет подтверждена путем майнинга в блок (обычно в течение 5–40 секунд) и успешно выполнена.
Ты лучший!! Теперь все намного яснее. Спасибо!