Я разрабатываю блокчейн для IoT-приложений, где есть несколько разбросанных по городу шлюзов (майнеров) и несколько узлов (датчиков), подключенных к каждому из них. Каждый шлюз может быть добавлен конечным пользователем, поэтому это ненадежная среда. Как я могу убедиться, что один из майнеров не отправляет в цепочку поддельные данные?
Я просмотрел несколько согласованных протоколов и обнаружил, что ни один из них не подходит для этой конкретной проблемы, поскольку обмен значениями не производится.
Каждый майнер отправляет пинг на главный сервер и получает от него список майнеров в сети. Затем они соединяются друг с другом по p2p.
Любые идеи о том, как я могу это решить?
Представьте, что это электроэнергетическая компания для автоматизации счетов. Я не хочу, чтобы кто-то просто присоединялся к сети и мог транслировать блоки.
Я имею в виду. Они могли транслировать их, но они были бы добавлены в бухгалтерскую книгу.
«Я не хочу, чтобы кто-то просто присоединялся к сети и мог транслировать блоки» — звучит так, будто вам не нужен блокчейн. Блокчейн предназначен для достижения распределенного консенсуса в системе без разрешений. Ограничение того, кто может участвовать, не является системой без разрешений. Зачем вам нужно использовать блокчейн?
Основной целью блокчейна было сделать данные неизменяемыми и распределенными, а не централизованными на главном сервере.
Приложение блокчейна является неизменным только в том случае, если стимулы большинства участников ориентированы на неизменность (см. атаки 51%). Кроме того, для предоставления разрешений определенным пользователям требуется центральный орган. Распространение данных может быть достигнуто без блокчейна (например, IPFS или DAT).
Давайте продолжить обсуждение в чате.





Чтобы предотвратить спам или публикацию поддельных данных, это должно быть добавлено в качестве правила консенсуса в протокол. В противном случае требуется другой уровень, который проверяет данные на основе данных вне цепочки (но не предотвращает сохранение данных в блоках). Блокчейн предназначен для достижения распределенного консенсуса в системе без разрешений. Ограничение того, кто может участвовать, не является системой без разрешений и будет централизованной системой, потому что кто-то должен определять, кому разрешено участвовать.
Да, вы правы. Думаю, мне не нужен блокчейн в конце концов
Блокчейн можно использовать в обоих случаях без разрешений или с разрешениями, если вы хотите предотвратить передачу данных кем-либо, вам необходимо аутентифицировать узлы, прежде чем они смогут присоединиться к сети. Если даже после аутентификации узлов существует вероятность того, что аутентифицированный узел отправит «фальшивые данные», тогда должен быть реализован механизм доверия, узлы проверяют надежность источника данных и решают, является ли узел доверенным и принимает данные или нет.
Спасибо. Никогда не приходило мне в голову аутентификация узла
Вы также можете рассмотреть доверие, основанное на репутации узлов или проверить данные с помощью алгоритмов подобия.
Что ж, вы все еще можете находиться в блокчейне без разрешений и по-прежнему накладывать ограничения на узлы (открытые ключи), которые могут отправлять вам данные.
Ответ на запрос лежит в Blockchain Oracles.
Оракулы на сегодняшний день представляют собой централизованные сервисы, а это означает, что любой смарт-контракт, использующий такие сервисы, имеет единую точку отказа, что сводит на нет любые преимущества, полученные от децентрализованного характера смарт-контрактов.
Чтобы заполнить этот пробел, Chainlink был разработан как первый децентрализованный оракул, который может предоставлять внешние данные для смарт-контрактов. В результате безопасность и детерминизм смарт-контрактов можно сочетать со знанием и широтой охвата реальных внешних событий. Chainlink предоставит смарт-контракт с доступом к любому необходимому внешнему API.
Как согласно цепочке здесь и здесь
Blockchains and smart contracts cannot access data from outside of their network. In order to know what to do, a smart contract often needs access to information from the outside world that is relevant to the contractual agreement, in the form of electronic data, also referred to as oracles. These oracles are services that send and verify real world occurrences and submit this information to smart contracts, triggering state changes on the blockchain.
Вы можете уточнить, что вы подразумеваете под «поддельными данными»? Разве это не то, что можно было бы включить в протокол консенсуса?