Всем привет!
Мы — команда разработки блокчейн платформы IZZZIO (читается как “иззио”). На текущий момент мы активно разрабатываем приватные и ограниченные блокчейн-решения под задачи заказчиков, и работаем по классической модели заказ-проектирование-разработка.
Мы бы не хотели начинать наше знакомство с рекламных постов, поэтому их не будет. Сегодня мы хотим подробнее рассказать об одной из наших технологий — алгоритме консенсуса, который мы называем LCPoA.
Пример работы основного фильтра LCPoA
LCPoA (Limited Confidence Proof of Activity, рус. Доказательство активности с ограниченным доверием) — гибридный алгоритм консенсуса сети блокчейн, состоящий из двух технических элементов:
Первоначально перед нами стояла задача разработать алгоритм, который был бы таким-же универсальным, как Proof-of-work, но при этом не требовал большого расхода энергии, как Proof-of-Stake алгоритмы. При этом было важно помнить, что не в каждой сети клиента может существовать токен. Часть клиентов хотят использовать блокчейн для хранения данных, часть не хочет отводить токену роль в поддержке сети. Это делает невозможным использование алгоритмов, которые опираются на доказательство владения.
Для этой задачи мы разработали алгоритм LCPoA. Он прост в имплементации, и в работе. Ему требуется минимальное количество вычислительных ресурсов, а в качестве защиты он использует синхронизированный по всему миру ресурс — время.Создание блоков в сети теперь привязывается к известной всем компьютерам (с определенной погрешностью) величине — текущему времени по гринвичу. Это позволило:
В основе алгоритма лежит схожая с PoW задача: подбор хеша блока, путём перебора дополнительного значения nonce в блоке. В качестве nonce, мы используем текущую метку времени (unix timestamp) — количество миллисекунд, прошедших с начала 1 января 1970 года. Такой метод позволяет легко перепроверять информацию о том, сколько времени было потрачено на создание блока. В связке с ограничением добавления блоков младше, например, одной секунды, это обеспечивает одновременно простую для решения на любом устройстве, но достаточно продолжительную для защиты сети задачу.
В качестве защиты от атаки 51%, и других атак, позволяющих перезаписывать цепочку, мы использовали простой алгоритм, который позволяет создавать “контрольные точки”, или “точки невозврата” в сети. Этот алгоритм, по факту, запрещает перезапись блоков цепи, которые старше определенного заданного возраста. Например, при заданном пороге — 5 минут, будет возможна перезапись блоков, появившихся не позднее 4 минут 59 секунд. Остальные блоки проходят “архивацию”, и делают попытки перезаписи всей цепочки — невозможными.
Подобный способ защиты от атак 51% мы также применяем и для любых других алгоритмах консенсуса в сети.
Подробнее с LCPoA можно ознакомится в документе с описанием алгоритма
https://docs.google.com/document/d/1KHeG4iUZFk2fj32-4kVnbx_3KsIQqM_xDMpzlctGRSc/edit?usp=sharing
а также на нашем сайте
Автор алгоритма: Недобыльский Андрей Олегович