Найти тему
aigents

Будущее блокчейна и Репутационный консенсус

Три года назад я выражал свой скепсис по поводу перспектив развития "равноранговых распределенных реестров", в народе известных как "блокчейны", а полгода назад этот скепсис был подтвержден известными проблемами Libra и крахом Gram-Ton, анонсом крипто-юаня, патентом Visa на крипто-доллар, недружественным захватом блокчейна Steemit через DPOS и консолидацией более чем 50% майнинговых мощностей Bitcoin на территории и в юрисдикции Поднебесноой, а теперь еще и счастливой помолвкой Visa с Ethereum. Более подробно эти события обсуждались в недавнем разговоре с коллегой на Youtube, но здесь мы поговорим о том, какое же будущее может ждать "распределенные реестры" (включая "блокчейны" и "криптовалюты", как частные случаи), в жестоком мире объективных законов природы, где всем правит "закон сохранения энергии".

Применение "закона сохранения" к нашей истории с обработкой криптовалютных платежей на сети узлов распределенной сети, работающей на основе принципа peer-2-peer ("равный к равному") заключается в том, что существует четыре требования к любой системе проведения финансовых транзакций в "распределенном реестре", где выполнение любого из четырех делает проблемным выполнение всех остальных. Итак, вот эти четыре требования.

  1. Скорость - платежная транзакция должна быстро выполняться, включая как время её проведения, так и срок по истечении которого её можно считать не подлежащей "откату".
  2. Дешевизна - платежная транзакция должна быть дешевой, то есть её стоимость или комиссионные за её осуществление должны быть существенно ниже чем сумма самой операции.
  3. Безопасность - система проведения транзакций должна быть безопасна, то есть должна гарантировать практическую невозможность навторизованного проведения одних операций либо блокировки проведения других.
  4. Децентрализация - система проведения транзакций должна быть независима от любых отдельных участников, то есть её консенсус должен управляться в худшем случае более чем 50% процентами участников или тех прав, которые они получают согласно действующей формуле консенсуса (Proof-of-Work, Proof-of-Stake, Delegated-Proof-of-Stake, Proof-of-Reputation и так далее).

К сожалению, практическая ситуация с выполнением всех этих требований такова, что ни одна из существующих крипотовалютных систем на блокчейне не может даже в принципе удовлетворить этим требованиям в такой степени, чтоб стать принятой широкими массами населения для проведения обычных платежей, которые мы совершаем обычно с помощью карт Visa и Mastercard. Несмотря на фундаментальную природу взаимной противоречивости этих требований в силу законов материального мира и строгой математики, лучшие умы криптовалютного сообщества пытаются найти сбалансированные решения разного рода, такие как "sharding", "sidechain", "rollup" и их вариации и разновидности - любой из этих вариантов позволяет улучшить выполнимость одного или нескольких из этих требований за счет других.

Например, если вы хотите "быстро" расплатиться за чашку кофе в киоске на улице, вы можете быстро и дешево провести транзакцию за счет "optimistic rollup" пула транзакций аккумулированных в "side-chain", но спустя неделю ("finality time") продавец кофе с неприятным удивлением может обнаружить, что операция оплаты ему оказалась отвергнутой, поскольку валидаторы "задним числом" нашли махинации в блоке, в которую попала ваша транзакция - с счастью для вас и к расстройству для продавца кофе. Можно уменьшить "finality time", ограничив возможность возможность "отката" мошеннических транзакций по времени, но тогда под удар попадает безопасность системы.

В свою очередь, сама безопасность может быть увеличена заменой "optimistic rollup" на более продвинутую криптографическую защиту транзакций в пуле "side-chain" с помощью "неинтерактивного аргумента знания с нулевым разглашением" ("ZK-SNARK"), и это снимет необходимость ждать пару недель, пока валидаторы окончат свою работу, но кофе все равно успеет остыть за время генерации криптографической защиты всего пула транзакций, включающих ваш платеж, а стоимость вычислительных затрат на это может слегка испортить вкус кофе.

Другим способом увеличить скорость и уменьшить стоимость проведения транзакций в основном блокчейне без вынесения операций в "side-chain", как на примерах выше, является распараллеливание цепочек блоков на независимые "shard", где низкая скорость формирования блоков с транзакциями в отдельной цепочке может компенсироваться большим числом независимо параллельно формируемых цепочек, причем каждая цепочка может формироваться не всеми узлами распределённой сети, а только ограниченным набором узлов, ассоциированных с данным "shard". Но, тем самым мы снижаем безопасность всего блокчейна, делая каждый отдельный "shard" более уязвимым. Также тем самым мы делаем систему менее "распределенной", а скорее "децентрализованной", где в вычислительном "кластере" из множества "shard" возрастает влияние отдельных узлов на консенсус в каждом конкретном из "shard".

В итоге, предельным случаем быстрой, дешевой и безопасной системы "децентрализованного" проведений транзакций оказывается вычислительный кластер из конечного числа "shard" с несколькими высоко-надежными узлами ("проверенными товарищами"), отвечающими за транзакции в этом shard. Доведя ситуацию до абсурда (с точки зрения "распределенности" и идей "крипто-анархизма"), мы можем иметь по одному высоконадежному узлу в каждом из "shard"-ов, получив в итоге простую схему мультисерверной балансировки обработки транзакций по схеме "multi-master". В последнем случае, мы по сути имеем набор серверов, распараллеливающих обработку транзакций на разделенной памяти со встречной синхронизацией транзакций. По необходимости, к этому может быть добавлена и криптографическая защита транзакций, однако в случае обеспечения "высокой надежности и безопасности" каждого из серверов она может быть только фактором увеличивающим накладные раcходы для пользователя. Очевидно, примерно так и работают известные системы обработки транзакций вроде Visa и Mastercard.

С другой стороны, еще более очевидным аргументом является, то, что децентрализованная система обработки транзакций, претендующая на скорость их проведения не ниже, чем у известных платежных систем указанных выше, а также соответствующе объемы, должна не только обеспечивать адекватную производительность оборудования на каждом из узлов но и предполагать дополнительные расходы на каждый "лишний" узел, увеличивающий "распределенность", плюс расходы времени и сетевого трафика на "достижение консенсуса", растущие экспоненциально с ростом числа узлов плюс криптографическую защиту в условиях публичного развертывания и публичности самих данных "распределенного реестра".

Из всей этой истории есть два вывода.

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

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

Алгоритм "взвешенного текучего рейтинга" или "текучей репутации", используемый для определения "заслуживающих доверия узлов" в рамках протокола системы "распределенного реестра", позволит динамически переназначать "дежурных по блокчейну" или узлы, ответственные за подписание и верификацию транзакций. Кроме того, он также может позволить формировать пулы узлов, отвественных за отдельные "shard" - в случае разделения блокчейна в задачах увеличения масштабируемости по скорости. При этом, масштабируемость и децентрализумость может определяться всего двумя параметрами текущей конфигурации блокчейна - общим числом "доверенных узлов" M и числом "shard" в кластере N, таким образом, что M = K * N, где K это число узлов в отдельном "shard".
Очевидно, что управление указанными параметрами в режиме реального времени по ходу работы системы также может быть предметом "общественного договора" и определяться протоколом голосования участников, с учетом того-же самого "взвешенной текучего рейтинга".

Важно подчеркнуть, что оригинальный алгоритм Proof-of-Reputaion, предложенный нами в 2017 году, и развитый SingulariytNET в 2018 и 2019, радикально отличается от суррогатного Proof-of-Reputation, основанного на "внешних" параметрах, не связанных с динамикой транзакций в самой распределенной системе, и являющегося по сути закамуфлированной версией Proof-of-Authority.

Экспериментальная версия алгоритма "взвешенного текучего рейтинга" ("текучей репутации") успешно апробирована в проектах SingularityNET и внедрена Aigents и ждет своего воплощения в реализации полноценного консенсуса Proof-of-Reputation в системах "распределенного реестра" и блокчейнах будущего!

А пока, пробуем алгоритм "взвешенного текучего рейтинга" для мессенджера Telegram, форумов Discourse и блокчейнов Golos и Steemit!!!