LCPoA - универсальный как PoW, экономичный как PoS
Всем привет! Рады с вами познакомится, и стать частью потрясающей блог платформы GOLOS.
Мы - команда разработки блокчейн платформы IZZZIO (читается как "иззио"). На текущий момент мы активно разрабатываем приватные и ограниченные блокчейн-решения под задачи заказчиков, и работаем по классической модели заказ-проектирование-разработка.
Мы бы не хотели начинать наше знакомство с рекламных постов, поэтому их не будет. Сегодня мы хотим подробнее рассказать об одной из наших технологий - алгоритме консенсуса, который мы называем LCPoA.
LCPoA (Limited Confidence Proof of Activity, рус. Доказательство активности с ограниченным доверием) - гибридный алгоритм консенсуса сети блокчейн, состоящий из двух технических элементов:
- Proof of Activity - принцип, основанный на решении задачи, схожей с задачей принципа Proof of Work, но со значительно сниженной сложностью, благодаря которому решение задачи занимает от долей секунды до нескольких минут
- Limited Confidence(“Ограничение доверия”) - система автоматического создания “контрольных точек” в блокчейн сети
Первоначально перед нами стояла задача разработать алгоритм, который был бы таким-же универсальным, как Proof-of-work, но при этом не требовал большого расхода энергии, как Proof-of-Stake алгоритмы. При этом было важно помнить, что не в каждой сети клиента может существовать токен. Часть клиентов хотят использовать блокчейн для хранения данных, часть не хочет отводить токену роль в поддержке сети. Это делает невозможным использование алгоритмов, которые опираются на доказательство владения.
Для этой задачи мы разработали алгоритм LCPoA. Он прост в имплементации, и в работе. Ему требуется минимальное количество вычислительных ресурсов, а в качестве защиты он использует синхронизированный по всему миру ресурс - время.Создание блоков в сети теперь привязывается к известной всем компьютерам (с определенной погрешностью) величине - текущему времени по гринвичу. Это позволило:
- Уравнять шансы компьютеров любой мощности на создание блока. Теперь самый мощный сервер, и обычный смартфон создают блок за одинаковое время
- Перенести ответственность за генерацию блоков на клиента сети. Отпадает необходимость в майнерах, открывая путь другим способам поддержки сети.
- Надежно защитить сеть от спама и атак, на подобии 51%. Алгоритм уже содержит в себе всё необходимое для защиты от атак.
В основе алгоритма лежит схожая с 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
а также на нашем сайте
Надеемся, что эта публикация оказалась интересна сообществу. Будем рады ответить на ваши вопросы :)