Нежная мята

Ламер лезет в PoS-джунгли в попытках понять, увидим ли мы с вами открытый Cosmos.

by CryptoLamer

Ну кто вот не любит PoS? Ну кто, кто? Ну, руку подыми! Чо ты руку тянешь, майнер? Руку убери!

Ну разве тебе не приятно, когда на твой Стратис-кошелёк капает новая монета, ну или как качается газ на твой NEON. Ничего дорого покупать не надо: ни оборудования, ни помещения, ни подъездного бомжа Оффенбаха в сторожи звать, ни получать дорогие счета за электричество. Сидишь, кайфуешь, стэйкаешь, или как там, форджишь на здоровье и профит…

Хотя, вот тебе мысля 1: у NEO не PoS. Да и у Stratis не чистый PoS. У Waves чистый PoS, который легко хакнуть и, поэтому, он никакой не BFT.

А вот мысля 2: Вообще, чистый PoS не даёт BFT. Удивил?

Почему так, как же нам достичь этого пресловутого BFT, какой вариант BFT PoS консенсуса родился одним из самых первых и что из этого вышло…обо всём об этом в нашей с тобой любимой рубрике «Давайте Разберёмся!»

Прежде чем перейдём к основному тексту — очень важный абзац.

В тексте использованы материалы следующих статей:

https://m.habr.com/post/350012/

https://busy.org/@miacoins/polnyi-gid-po-prokolu-proof-of-stake-poslednemu-predlozheniyu-ethereum-i-intervyu-vitalika-buterina

https://hackernoon.com/scaling-tezo-8de241dd91bd

https://bits.media/news/sravnenie-konsensusov-proof-of-stake-casper-protiv-tendermint/

а также Whitepaper Tendermint и Cosmos docs, а также вот это вот прекрасное видео https://youtu.be/LApEkXJR_0M.

Рекомендую ознакомиться с ними полностью, а также указать на мои косяки, если такие имеются.

Огромное спасибо каналу @miacoins за прекрасный подбор статей на канале, качественный перевод и огромную роль для сообщества. Ты крутая! Перевод статей на этом канале очень сильно помогает мне разбираться в технических особенностях крипты. Бро, всячески рекомендую подписаться на эту годноту!!! Прям вот мастхэв полнейший!

PoS не PoW, тут думать надо

Я уже, в прошлом посте, упоминал в чём гений Накамото и его BFT консенсуса PoW. Напоминаю! Он сумел создать алгоритм, который можно применить к динамической распределенной системе, возможно, сам того не осознавая. Узлов в сети биткойн множество и это количество продолжает расти, как количество детей, названных именем Илья, после игры Кутепова с испанцами. Но на заре крипты всё было не так.

100-200 гиков думали о том, как бы получить те же свойства, что и у консенсуса Накамото, но без затрат материальных ресурсов. Кроме того, как считается некоторыми участниками сообщества, майнеры — это очень хитрые жопки, да простят они меня, и их интересы не всегда могут совпадать с интересами инвесторов. Вспомни «Санта-Барбару» с SegWit хотя бы. Да и с развитием сети сам Bitcoin всё больше сосредотачивался в руках крупных майнинговых пулов. Тогда и пришла идея использовать долю владения, как способ выбирать и подтверждать новый блок цепи. Вроде и за электричество бабуле счета присылать не будут и оборудования никакого особо сложного тоже, да и владелец доли напрямую заинтересован в росте стоимости актива. Но вот незадача! Консенсус Накамото позволяет не только выбирать и подтверждать новый блок в цепи, но и:

  • решать проблему распределения криптоактивов (всё более равномерно)
  • выбирать того, кто генерирует следующий блок
  • определять время генерации нового блока

Плюс к этому, приходится решать более сложные и гораздо более опасные для сети и её пользователей вопросы. В частности, порядок транзакций. Доля владения — это тебе не киловатты и хэшрейты битка, тут ничем жертвовать не надо. Владелец доли может и поменять свои решения относительно валидности того или иного блока. Так получается, что в любой момент валидатор может проголосовать за валидность двух конфликтующих цепей. Да, конечно, можно наказать холдера лишением его (его же) доли, за изменение голоса после голосования. И такое решение предложил Сам Виталик «Десятая реинкарнация Будды» Бутерин. И даже подарил этому решению красивое название Slasher (бритва — пер. с англ., если уж совсем тебе лень лезть в словарик). Но что делать, если за побочную цепь он проголосовал своей долей по ошибке, а потом понял, что не прав и хотел бы изменить решение? Всё это только усложняет систему и алгоритм и данная проблема под названием «Nothing at stake» является базисной проблемой данного алгоритма и его «Камнем преткновения». Математически решить эту задачу, к сожалению, невозможно. Ну или возможно, но тогда тебя ждёт Филосовская премия (Нобелевку по математике не вручают, неуч!).

А ещё, помимо Nothing-at-Stake, злодейский злодей может выведать у бывшего кита приватник от кошеля, у которого в прошлом был большой баланс, пока кит не решил закупиться кобинхудом в январе на долгосрок. А далее, форкнуть цепь с данного момента и наслаждаться жизнью в качестве хозяина уже альтернативной цепочки. Это была критическая уязвимость первой PoS-монеты Peercoin. С тех пор, в ней есть система чек-пойнтов, что, по сути, привело к её централизации. Как поёт Джейми Хэтфилд: Sad but True:(

И вот, казалось бы, ну если не получается, чего мучиться-то? Но у биткойна также стали проглядываться реальные проблемы с масштабируемостью и централизацией. И идею решили докрутить! По сути, первым, кто предложил один из способов решения проблем PoS и создания первого BFT PoS алгоритма стал китайский кодер Джа Квон.

Нежная мята

Идею Tendermint Джа Квон высказал ещё в 2014м, когда несколько сотен гиков на биткойнтолке пытались найти решение проблемы энергосбережения в сети биткойна. И, чтобы наделить PoS-сеть свойствами живучести и согласованности (см. прошлый длиннопост https://cryptosherlock.club/thunderella/), пришлось в основу протокола положить тот самый классический BFT-консенсус на основе многораундового голосования. Оставалось его только лишь применить к условиям блокчейна. Причём Джа решил применить этот консенсус с уклоном именно в согласованность. Так посчитал это свойства более важным. Что это означает на практике? сейчас поясню!

На самом деле, существует теорема согласно которой в распределенной сети всегда приходится жертвовать одним из трёх свойств:

  • живучесть
  • согласованность
  • устойчивость к форкам

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

Именно так и разделяют эти протоколы. Casperы топят за живучесть, а Tendermint за согласованность. Ну это как Marvel и DC. И то и это про комиксы, но первые о людях, которые становятся богами, а второе о богах, которые становятся людьми. Девочки, только вот не надо мне ля-ля, что не знаем «этивашикомиксы». Тут одна призналась, что футбол за весь июнь не разу не включала, у меня аж с сердцем плохо стало. Новые знания впитывать нужно! Но я отвлёкся.

Вообще же, весь протокол консенсуса начинается со списка валидаторов. Список валидаторов объявляется в Genesis-блоке. Главное, чтобы изначально вредных вонючек было меньше 1/3 числа всех валидаторов. Ну а далее организовывается раунд голосования, выбирается псевдослучайно валидатор, предлагающий блок — он предлагает блок, а далее…не буду тут париться с описанием, а то и так читать долго. Просто стырю картиночку из ВП.

Как видишь, главное, чтобы на любом этапе раунда количество проголосовавших находилось в супербольшинстве (supermajority по-английски), т.е кворум проголосовавших за то или иное решение был более 2/3 — тот самый BFT. Если валидатор вдруг ушёл в офф-лайн или при голосовании у некоторых валидаторов замечен плохой коннекшн с сетью, то сеть сама подстраивает время ожидания при объявлении нового раунда и предложении нового блока. Таким образом, зависимость от таймаутов делает Tendermint сетью со слабой синхронизацией. Хотя в целом, протокол асинхронен — набрали 2/3 голосов, побежали дальше и не важно, кто голосовал и в какой момент времени. Всё равно побеждает Единая Россия(шутка, хе-хе).

Собственно, сам уровень консенсуса и сама сеть — это только два слоя, для полноценной работы платформы необходим третий, верхний слой — слой приложений. Собственно, до момента, пока не был формализован Tendermint, все предыдущие системы представляли из себя неразделимый набор этих трёх слоёв. Именно поэтому, чтобы создать что-то новое на основе биткойна, было необходимо форкнуть его целиком, а уже потом писать что-то своё. Это была целая каша из разных  языков и кусков кода, где из простого и понятного (p2p-сеть, PoW, кошелек или клиент полной ноды) «умельцами» собирались франкенштейны, которые легко было взломать. А некоторые типа Verge до сих пор как бабулины семечки щёлкаются.

А потом Виталик придумал EVM, благодаря которой уже было достаточно легко создавать любые приложения на верхнем слое, без необходимости затрагивать уровень консенсуса и сеть. Однако, чтобы решить все проблемы с масштабируемостью и пропускной способностью сети, придётся создавать что-то концептуально новое, затрагивая два нижних уровня. И вот Джа и его хороший друг Итан придумали кое-что новенькое.

Детка, ты просто COSMOS

А именно, идею универсального интерфейса, который бы связывал слой приложений с двумя нижними таким образом, чтобы на верхнем уровне можно было бы разместить любую VM. Так появились ровно две штуки — новая виртуальная машина с SDK и набором плагинов для упрощения работы всем желающим кодить децентрализоанные аппки и интерфейс между блокчейном с консенсусом и уровнем приложений под названием ABCI.

Слой консенсуса объединился с сетевым уровнем и получил название Tendermint Core.

А общую концепцию теперь ты и я знаем это под названием Cosmos Hub. Или блокчейн Cosmos. Концептуально, всё выглядит так:

Как ты понял, ABCI универсален. Ему не важно, на каком языке кодинга будет описано взаимодействие. Так что к Tendermint можно прикрутить любую VM. Хочешь Эфир на PoS, получай Ethermint, хочешь OmiseGo, хочешь Zilliqa, а хочешь, построй свою машину с помощью Cosmos Hub.

Но этого ребяткам показалось недостаточно и они изобрели IBC или Inter-Blockchain Connection. IBC — это такой интерфейс, благодаря которому все эти бесконечные новострои на тэндерминте и не только, могут общаться между собой через центаральный Cosmos Hub посредством нативного токена сети Cosmos — Atom. Фактически, IBC становится аналогом TCP/IP и в будущем может быть адаптирован любой системой, которая так или иначе финализирует блоки. Т.Е. даже Эфир на протоколе Casper может взаимодействовать посредством IBC с Cosmos Hub. И что же мы получаем?

Интернет блокчейнов

Comsos network — это тот самый первый проект cross-chain взаимодействия, который появился на свет благодаря желанию пары гиков перестать тратиться на дорогостоящее оборудование для майнинга! Воистину, нужда заставляет нас совершать удивительные вещи.

Например, попивая чай с мятой, подумать о том, какая она нежная. А потом так назвать свой консенсус. А потом подумать о том, что в каждом листочке мяты содержится целая вселенная, настоящий Cosmos, где все друг с другом связаны. И создать целый космос из блокчейнов. Красиво, не правда ли? Нет, это не Джа так романтично всё придумал. Это меня MyLittlePony покусали))) Но вернёмся.

А что, если мы хотим общаться с эфиром или блокчейном биткойна прямо сейчас, не дожидаясь, пока Виталик перейдет на Casper, а биткойн не форкнут до PoS. Тут команде, на одном из хакатонов, помог 17ти летний корейский школьник, который, судя по всему, умней меня и тебя на несколько порядков. Как говорит Джейми: Sad but True. Но это так. Ведь парень изобрёл новый протокол под названием Etgate для общения с сетью Эфира через блокчейн-зеркало, так называемый Peq-Zone.

Peq Zone представляет собой отзеркаленный блокчейн Эфира, но с задержкой на некоторую глубину (определенное количество блоков назад). Доработав данный протокол, теоретически, можно зеркалить любой блокчейн и благодаря этому организовать целый космос из блокчейнов.

Т.е. теперь любой желающий сможет создать свой суверенный блокчейн (валидаторы также не навязываются, всегда можно избрать своих, в отличие от Polakadot например), приватный или публичный. В публичном будет PoS, а в приватном — доверенные ноды.  Создавать на нём любые приложения, смарт-контракты, которые смогут взаимодействовать с любыми сетями, будь то блокчейны криптовалют, мобильные, спутниковые, IoT сети. Все они смогут общаться друг с другом.

И всё это очень круто, если бы не одно НО! Бедные ICO-инвесторы. Cosmos собрал почти 17 млн$ за 28 минут в апреле 17го года. Многие из нас тогда даже и не знали, как расшифровать ICO и думали, что это опечатка в аббревиатуре IPO. Просто сумасшедшие цифры по тем временам. Выход токенов на бирже должен был быть в августе, но его отложили сначала до ноября, а потом до запуска майннета. И на данный момент Cosmos — это огромный долгострой, ходили слухи, что если майннет не запустят в мае, то Джа побреется налысо, но потом оказалось, что это просто слух.

Ну а вот последний информационный твит от 2го июля

Конечно, даже Tezos через год умудрился выйти с какими-никакими иксами. Да только вот конкуренция на рынке нынче такова, что про Ark — первый рабочий кросс-чейн. все давно забыли, а ещё у нас есть ICON, WanChain, Aion и Block Collider, а также технология атомик свапов. А ещё Pokadot, но многие, видимо, уже покинут этот мир, прежде чем увидят свои токены — долгострой похлеще Сталкера. Конкуренция сумасшедшая. Все хотят занять нишу только своим проектом, делиться не собирается никто, да и не совсем понятно, захотят ли Криптокотяки из блокчейна Эфира взаимодействовать с галактикой Zeepin Galaxy через Cosmическую сеть интернета блокчейнов. А так, было бы прикольно увидеть коллаборацию двух dapps из соверешенно разных блокчейн-сетей.

Ориентировочно в конце лета называется новый срок запуска основной сети и выхода токенов на биржи. Подбирать или нет — это уже зависеть будет от рынка. Но проект действительно революцинный…был…для своего времени.

Я надеюсь, что сей опус позволил тебе чуть ближе стать к пониманию того, в чем же отличие разных подходов к достижению согласованности в распределенных сетях, почему чистый PoS — это утопия и как одна идея, почему то названная «нежной мятой», распутывает целый клубок новых идей и проектов. И вот последнее, на этом рынке, реально завораживает. Хоть и разобраться во всём этом ой как не просто.

Любитель зеленого чая с мелиссой,

@CryptoLamer

 

 

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

четыре × 1 =

Back to Top