Как проверить информацию в сети?

В этом вопросе подробно описывается отправка сообщения с помощью Ethereum: как отправить произвольное сообщение на адрес Ethereum? . Скажем, у нас есть две стороны P1 и P2, если P1 отправляет сообщение P2, как P2 может проверить, что сообщение, отправленное P1, было сохранено в сети/блокчейне?

Это неявно гарантируется Эфириумом?

Ответы (1)

Это в основном неявно.

P1 может предоставить хэш транзакции, номер блока или даже просто адрес, с которого он ее отправил. Затем P2 или кто-либо другой может искать эту транзакцию в канонической цепочке блоков — если ее там нет, значит, она не происходила в цепочке блоков по определению.

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

таким образом, проверка сообщения - это та же философия, что и проверка платежа в биткойнах, подождите, пока несколько узлов подтвердят сообщение / платеж, поскольку все больше узлов обеспечивают проверку, вероятность того, что сообщение / платеж действительны, увеличивается в геометрической прогрессии?
Я бы не сказал, что он экспоненциальный, но он такой же, как в биткойнах.
Я могу что-то упустить, но что мешает отправителю отправить хэш транзакции с другим сообщением, что связывает сообщение с хэшем транзакции?
Хэш транзакции получается в результате хеширования всей транзакции. Изменение одного байта приведет к другому хэшу.
может я не правильно формулирую. p1 отправляет сообщение p2 и включает хэш транзакции. Итак, хэш сообщения и хэш транзакции отправляются?
Я не уверен, что вы имеете в виду под сообщением. Ссылка в вопросе говорит о размещении сообщения в поле данных транзакции. В этом случае это сообщение будет частью хэша транзакции.
Таким образом, полезная нагрузка определенно является частью хэша транзакции. Если изменится один бит, это будет другая транзакция.
хорошо, данные, также известные как сообщение, включены в полезную нагрузку транзакции, как более подробно описано здесь: ethereum.stackexchange.com/questions/1990/… но если данные хранятся вне сети в хранилище данных, таком как ipfs, aws или dropbox, тогда невозможно проверить данные, этот вопрос в этом комментарии может не иметь смысла, так как если сообщение хранится вне цепочки, то оно не хранится в блокчейне...
Это правильно. Вы можете использовать блокчейн для нотариального заверения того, что данный хеш существовал в данное время, но не более того.