SimBlock, новый симулятор блокчейн, позволяет пользователям поиграть с параметрами Bitcoin, Litecoin и Dogecoin.
Технология блокчейн записывает информацию в общую бухгалтерскую книгу, в которой участвуют тысячи узлов. В чистом виде эти узлы не контролируются никаким центральным органом, и информация не может быть изменена после ее записи в бухгалтерскую книгу. Из-за безопасности и автономии (по крайней мере, теоретически), предоставляемой этой технологией, блокчейны в настоящее время поддерживают многие популярные криптовалюты, такие как Bitcoin.
Но, как отмечает адъюнкт-профессор Токийского технологического института Кадзуюки Сюдо:
"Практически невозможно было проверить улучшения в реальных сетях блокчейн, потому что это означало бы обновление программного обеспечения всех тысяч узлов в сети".
Исследуя блокчейн, Шудо и его коллеги искали симулятор, который помог бы им экспериментировать с технологией и усовершенствовать ее. Но существующие тренажеры были слишком сложными в использовании и не обладали необходимыми команде возможностями. Кроме того, эти тренажеры, по-видимому, были созданы для конкретных исследований и вскоре после их завершения были заброшены, поскольку многие из найденных группой инструментов больше не обновлялись.
"Последний рассмотренный нами симулятор был разработан в октябре 2016 года,
- говорит Шудо.
"И его больше не обслуживали."
Итак, группа разработала собственный симулятор. Прозванный SimBlock, он работает на любом персональном компьютере, поддерживающем Java, и позволяет пользователям легко изменять поведение узлов блокчейн. Следовательно, исследование последствий изменения поведения узлов теперь стало простым делом, говорит Шудо.
"Все параметры узлов SimBlock написаны на Java,
- поясняет он.
"Эти исходные файлы отделены от основного исходного кода Java SimBlock, поэтому пользователь просто редактирует исходный код [узлов], чтобы изменить его поведение".
Изменения могут быть применены ко всем узлам одновременно, или к отдельным узлам или группам узлов.
SimBlock может имитировать параметры Bitcoin, Litecoin и Dogecoin. Он отражает размер сети, интервал между генерацией блоков и скорость интернет-соединения, принимая во внимание пропускную способность и задержку между шестью регионами: Северная Америка, Южная Америка, Европа, Австралия, Азиатско-Тихоокеанский регион и Япония. Он также позволяет пользователям изменять смоделированные параметры скорости связи, а также параметры узлов цепочки блоков.
Чтобы помочь пользователям понять, как сеть ведет себя после различных модификаций, группа создала инструмент визуализации, который показывает связь между узлами, а также длину цепочки блоков. Она представлена в виде анимированного моделирования сети, работающей на карте мира.
Изображение имитационной сети на карте.
Инструмент визуализации данных SimBlock показывает, как узлы ведут себя в сети, когда пользователи вносят изменения в параметры сети.
Визуализатор считывает журнал моделирования данной сети, созданный SimBlock, и его содержимое накладывается на карту мира. Затем визуализатор запускает анимацию, отображающую поведение узлов, которые имеют цветовую кодировку для отображения транзакционных изменений. При генерации нового блока блоку присваивается новый цвет. Цвета узлов, впервые показанных в анимации, такие же, как и цвета последнего блока, который узлы получили. Когда другой узел получает новый блок, этот узел перекрашивается в соответствующий цвет нового блока.
Для сравнения исходной сети непосредственно с сетью, в которой параметры были изменены, пользователь может открыть два окна и запустить два моделирования одновременно. Сравнивая изменения, пользователь может увидеть, например, какая сеть более эффективна для распространения блоков, и как изменения влияют на распространение в каждом регионе карты.
Команда разработчиков SimBlock планирует добавить поддержку других криптовалют, таких как Ethereum, обновить симулируемую скорость интернет-коммуникаций и добавить поддержку новых коммуникационных протоколов, таких как Compact Block Relay, которые обеспечивают более реалистичное моделирование Bitcoin.
Исследователи также используют SimBlock для тестирования безопасности распределенных сетей путем проведения вредоносных атак на них внутри инструмента и оценки степени их успешности.
"Хотя мы разработали SimBlock для наших собственных исследований,
- говорит Шудо,
- мы решили сделать его общедоступным в виде открытого исходного кода, чтобы другие исследователи могли использовать его и тем самым способствовать ускорению исследований в области блокчейн".