Как предотвратить отправку поддельных данных в блокчейн

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

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

Каждый майнер отправляет пинг на главный сервер и получает от него список майнеров в сети. Затем они соединяются друг с другом по p2p.

Любые идеи о том, как я могу это решить?

Вы можете уточнить, что вы подразумеваете под «поддельными данными»? Разве это не то, что можно было бы включить в протокол консенсуса?

JBaczuk 18.04.2019 18:05

Представьте, что это электроэнергетическая компания для автоматизации счетов. Я не хочу, чтобы кто-то просто присоединялся к сети и мог транслировать блоки.

scottbear 18.04.2019 18:27

Я имею в виду. Они могли транслировать их, но они были бы добавлены в бухгалтерскую книгу.

scottbear 18.04.2019 18:27

«Я не хочу, чтобы кто-то просто присоединялся к сети и мог транслировать блоки» — звучит так, будто вам не нужен блокчейн. Блокчейн предназначен для достижения распределенного консенсуса в системе без разрешений. Ограничение того, кто может участвовать, не является системой без разрешений. Зачем вам нужно использовать блокчейн?

JBaczuk 18.04.2019 18:36

Основной целью блокчейна было сделать данные неизменяемыми и распределенными, а не централизованными на главном сервере.

scottbear 18.04.2019 18:42

Приложение блокчейна является неизменным только в том случае, если стимулы большинства участников ориентированы на неизменность (см. атаки 51%). Кроме того, для предоставления разрешений определенным пользователям требуется центральный орган. Распространение данных может быть достигнуто без блокчейна (например, IPFS или DAT).

JBaczuk 18.04.2019 18:56

Давайте продолжить обсуждение в чате.

scottbear 18.04.2019 19:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
7
216
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Да, вы правы. Думаю, мне не нужен блокчейн в конце концов

scottbear 18.04.2019 22:55
Ответ принят как подходящий

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

Спасибо. Никогда не приходило мне в голову аутентификация узла

scottbear 19.04.2019 12:25

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

anis herbadji 19.04.2019 15:24

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

Ayoub Bargach 24.04.2019 15:01

Ответ на запрос лежит в 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.

Другие вопросы по теме