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

Ruslan Ospanov 16 December 2019 Применение криптография, применение, алгоритмы, блокчейн 1211

Недавно (20 июня 2019 года) на Cryptology ePrint Archive была опубликована статья "SoK of Used Cryptography in Blockchain". Данный пост - восьмой в запланированной серии, содержащей любительский перевод этой статьи.

 

Систематизация знаний по используемой криптографии в блокчейне

(перевод с английского

статьи

Mayank Raikwar, Danilo Gligoroski and Katina Kralevska

SoK of Used Cryptography in Blockchain

Cryptology ePrint Archive, Report 2019/735

https://eprint.iacr.org/2019/735)

 

Аннотация

(перевод аннотации здесь)

1 Введение (перевод введения здесь)

1.1 Наш вклад (перевод здесь)

2 Методология исследования (перевод здесь)

3 Основные понятия блокчейна

3.1 Криптографическая хэш-функция (перевод здесь)

3.2 Механизмы консенсуса (перевод здесь)

3.3 Сетевая инфраструктура

 

Блокчейн поддерживается одноранговой сетью (P2P). P2P-сеть является оверлейной сетью, создаваемой поверх Интернета. Эта P2P блокчейн сеть может быть смоделирована как структурированной, неструктурированной или гибридной на основе нескольких параметров, таких как механизм консенсуса и тип блокчейна. Независимо от представления сети, блокчейн-сеть должна быстро распространить вновь сгенерированный блок, так чтобы общее представление блокчейна оставалось неизменным. Следовательно, необходим протокол синхронизации, а протокол маршрутизации может понадобится, а может, и нет. Традиционная P2P-сеть использует протокол маршрутизации для маршрутизации информация через multihop; однако во многих блокчейнах (например, биткойн) маршрутизация не требуется, потому что одноранговый узел может получать информацию не более чем через один переход, поэтому таблица маршрутизации не поддерживается.

Почти все криптовалюты и блокчейны, такие как Bitcoin [1], Ethereum [11], Litecoin [23] используют неструктурированную P2P-сеть, где идея состоит в том, чтобы иметь равные привилегии для всех узлов и создать эгалитарную сеть. P2P-сеть может иметь единообразную или иерархическую структуру для построения случайного графика среди узлов. Этот график не полностью связан, но для того, чтобы получать все сообщения и вести реестр, каждый узел поддерживает список узлов адреса. Таким образом, если какой-либо одноранговый узел распространяет сообщение в сети, в конечном итоге все одноранговые узлы получают его через их доступные соединения. В неструктурированной сети такие методы, как флудинг и случайное блуждание, используются для установления новых связей с узлами. В неструктурированной сети узлы могут выходить из сети и присоединяться в любое время. Это может быть использовано противником, который может присоединиться и увидеть сообщения, перемещаемые в сети, и могут кроме того выполнять подмену источника, переупорядочивание или внедрение сообщений.

Блокчейн также может использовать структурированную P2P-сеть, в которой узлы организованы по определенной топологии и, таким образом, поиск любого ресурса/информации становится проще. В этой структурированной P2P-сети каждому узлу присваивается идентификатор для маршрутизации сообщений более доступным способом. Каждый узел также поддерживает таблицу маршрутизации. Структурированная P2P-сеть поддерживает распределенную хэш-таблицу (DHT), в которой хранятся пары (ключ, значение), соответствующие узлам, которые помогают в процессе обнаружения ресурсов. Ethereum начал внедрение структурированной P2P-сети с использованием протокола Kademlia [52]. Однако большинство блокчейн-сетей не структурированы, и, более того, если блокчейн является публичным, где не существует ограничений на присоединение к сети или выход из нее, то может произойти множество возможных атак. Таким образом, безопасность блокчейна сильно зависит от сетевой архитектуры. Задержка распространения или проблема синхронизации в P2P-сети могут влиять на протокол консенсуса блокчейна, приводя к несогласованному глобальному представлению блокчейна.

В дополнение к этим проблемам, противник может провести несколько атак в P2P-сети, где некоторые из основных атак следующие:

- Атака Netsplit (Eclipse): противник монополизирует все соединения узла и отделяет этот узел от всей сети. Кроме того, узел не может участвовать в протоколе консенсуса или протоколе проверки подлинности, и это вызывает несогласованность в сети [53].

- Атака маршрутизации: противник изолирует от сети блокчейн множество участников, и таким образом распространение блока по сети задерживается [54].

- DDOS-атака: противник истощает ресурсы сети и нацеливается на честные узлы, чтобы честные узлы не получали услуги или информацию, которые они должны получать [55], [56].

Related Post