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


Для начала поймём а зачем вообще нужен консенсус и что это такое. Пусть у нас будет один банк и один вкладчик Николай, на счету которого числится 1000 рублей. Он отправляет письмо в банк с просьбой перевести все деньги на счёт своего друга Александра. И всё прекрасно — деньги списались с одного счета и записались на другой. В данном случае проблем никаких и нет, а новый владелец денег решил снять их в ту же минуту и всё хорошо.



Но что если у банка сразу два отделения?


На счету Николая всё те же 1000 рублей, но теперь уже два друга, Александр и Константин, которые находятся в обоих отделениях и ждут когда деньги поступят на счёт чтобы взять их и уйти. И приходят два письма в оба отделения, но в одном из них 1000 рублей переходят Александру, а в другом Константину. И из 1000 рублей возникает 2000. И чтобы такое не могло произойти — каждое отделение банка должно оповестить остальные что деньги списаны и перечислены кому-либо, тогда вторая попытка их списать не выйдет — денег то на счету уже и нет. А кому достанется 1000 рублей? В идеальном мире тому на чьё имя письмо пришло первым, возможен вариант и с тем что отправителя попросили бы пояснить кому всё таки назначен был перевод. И всё ведь хорошо же, проблем нет.



Но это всё ещё не тот консенсус что используется в современных криптовалютах.


А что если отделения банков на самом деле не являются отделениями, они просто мелкие частные банки, подключённые к единой системе платежей без центрального сервера? Почему бы и нет, вполне себе практика для разных сфер. Только система без лидера, просто договорились о партнёрских соглашениях и пересылают друг другу изменения на счетах общих клиентов, всё хорошо… или нет. Если произойдёт событие как в примере выше — кто решит кто был прав и кому достанутся деньги? А ведь время прихода этого письма даже в современном сверхбыстром интернете может оказаться одинаковым — ведь есть куча задержек, есть время обработки сервером — нельзя просто так взять и решить кто был первым, ведь не ясно какое из писем было отправлено первым в действительности, до определенного размера шкалы времени. И так вот оказалось что письмо по ней то и пришло в одно и тоже время, полностью идентичное, но с разными получателями средств. Какой из этих двух банков будет прав когда начнёт распространять всем другим банкам что теперь на счету указанного клиента такое вот количество средств? Как понять кто прав? А если один из банков вообще мошенник?



Собственно так и появились системы консенсуса. У самой популярной криптовалюты Bitcoin это PoW — доказательство мощности майнера, высчитывающего бесполезные для мира, но полезные для консенсуса хеши. Есть ещё PoS где прав тот «банк» у которого больше денег на его счету, а ещё есть dPoS где выбираются делегаты, которые решают кто прав, причём сила голоса избирателей равна количеству денег на счету, а вот делегаты уже решают просто большинством или по иным правилам. Есть множество других консенсусов разной степени равноправия и скорости работы. И вроде бы всё прекрасно.



Но есть нюанс...


Приходя в магазин вы покупаете товар, а если товар оказался плохим, то обычно можно прийти и поменять его на новый, или на деньги обратно. Но может так что вы купили что-то с рук или в путешествии, вы можете никогда больше не встретить продавца который продал вам товар, так что по качеству претензий особо применить не получится. Ну а деньги — деньги на самом деле в современном мире всё чаще лежат не у вас в кармане, а в банке, а у вас есть лишь ключик в виде карточки или вообще записи в Apple Pay на вашем же телефоне. Одно прикосновение и «письмо» улетает через цепочку разных провайдеров и банков, списывая средства в одном банке и записывая их в другом, возможно в другой стране. И все всем доверяют. Но что пошло не так что появилась потребность в криптовалютах и консенсусах? Это пояснит вот эта микро-игра (только возвращайтесь потом назад, далее начнётся самое интересное):


На русском
Оригинал



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



И всё бы хорошо, всё чудесно, но…


Те люди, которые взаимодействуют с криптовалютой сейчас, часто используют различные инструменты помимо обычных кошельков, ведь обычные кошельки предполагают полную синхронизацию, а так-то выкачивать и хранить терабайт данных такое себе удовольствие. В итоге люди выбирают легкие кошельки… или даже веб-кошельки, где нужно лишь ввести свой ключ или использовать плагин к браузеру и вуаля — всё работает, из любой точки мира, не хуже чем обычный кошелёк. Правда никаких технических гарантий… потому что гарантии находятся в другой плоскости. И тем не менее — это классический кейс использования криптовалют и прочих продуктов.



Есть люди, которые ни разу не держали на своих счетах криптовалюты, но вполне являются участниками экосистемы. Например трейдеры и некоторые инвесторы. Можно по разному относится к их деятельности, но так или иначе обыденность когда люди получают криптовалюту сразу на счёт биржи, отправляют средства на другие биржи, но, в конечном итоге, выводят деньги тоже через биржи, сразу в фиат или через обменники также в фиат — рубли, доллары или юани — уже не суть важно, но, участвуя в этой экосистеме, никак не касаются консенсуса.



Обменники, которых достаточно много — нет никакого консенсуса что гарантирует тебе что когда ты перечислишь на счёт биткоины — тебе на карточку придут рубли. И вот ты программист криптостартапа или фрилансер, выводишь свои кровно заработанные биткоины или ещё какие-либо монетки или токены — и ты, скорее всего, получишь свои заработанные деньги, но по совсем другой причине, без консенсуса. Недвижимость за крипту, на смарт-контрактах. Или ещё что-либо из реального мира что записано в виртуальном. Никто и никогда не гарантирует вам исполнения обязательств в смарт-контракте, да ещё и по всей планете, что бы там ни было записано. Однако, как ни странно, оно может работать — только вот совсем по другим причинам и консенсус тут ни причём. Ну и конечно акции компаний — никакие гаранты не уберегли тех кто вкладывался в скам-ICO в 2017 году, кто-то ведь и машины и квартиры и бизнесы продавал ради токенов. И токены и правда остались на счету вкладчиков, консенсус помог. Но это ни в каком виде не уберегло их от потерь, от, по сути, украденных средств, это не принесло ожидаемых прибылей. Токены всё ещё на их счетах, а вот ценность — уже нет.



А как на счёт больших криптокомпаний? Интересный пример с проектом Ethereum, который сделал большой смарт-контракт по имени DAO, который собрал кучу средств… и который был ограблен хакером, потому что контракт не предусматривал некоторых нюансов, что позволило увести средства, и всё — по правилам системы. И… блокчейн просто форкнули, откатили изменения… в неизменяемом децентрализованном блокчейне… централизованным решением компании. Когда очень надо — любые правила вдруг отменяются, да и кто пойдёт против решения центральной компании, развивающей проект, верно? Кое-кто конечно пошёл, образовался форк Classic, который даже всё ещё жив, но на пару порядков слабже и почти никому не нужен, влияния за ним нет, ценности тоже, цена токенов на порядки ниже.



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



Есть конечно против этого всего веский аргумент, последняя линия обороны на случай если какая-либо из криптовалют или криптопроектов начинают контролироваться кем-либо в одного или в картеле. Дело в том что если ты владеешь блокчейном… тебе не выгодно обманывать. Ведь ты столько сил потратил на пути к вершине что брать и просто рушить систему, которая, обычно, приносит тебе токены через майнинг/стейкинг/делегатство… нет, тебе выгоднее продолжать держать её работоспособной, подтачивая напильником под себя, но тем не менее не вмешиваться на прямую. Но… чем это отличается от обычной корпорации?


И всё сводится к Теории Игр — когда тебе не выгодно обманывать если ты играешь в долгую игру, а сотрудничество приносит тебе блага.



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



Но везде, по большому счёту — работает принцип авторитетности. Когда ты отправляешь деньги кому-то через криптовалюту — ты доверяешь владельцам криптовалютной системы, будь там всё ещё множество хозяев или уже один. Когда в обменнике меняешь криптовалюту на карточку ты доверяешь обменнику и его авторитету, а ни чему-либо другому и не важно как устроена криптовалюта — главное исполнение обязательств обменником. Когда ты пользуешься криптобиржей ты доверяешь ей потому что у неё есть какой-никакой, но авторитет для тебя и ты пользуешься её услугами по её правилам. Когда ты что-либо вдруг покупаешь или продаёшь за криптовалюту — ты доверяешь человеку на той стороне и не важно как происходит процесс платежа, главное чтобы всё было в рамках условий здесь и сейчас. Чтобы не происходило, как бы оно ни работало — всё строится на доверии и авторитете. Доллар США очень авторитетен. Магазин напротив вашего дома может быть не на столько, но если вдруг там ненадлежащий товар — есть некоторая вероятность что товар можно будет вернуть, к тому же имеются законы, которые соблюдаются, в зависимости от страны, в разной степени, но если соблюдаются — то это перетекание части авторитета от государства, где оно является гарантом. Но вот в обменнике биткоинов на рубли на карточку нет никаких гарантов, кроме одного — Теории Игр, по которой вас не выгодно обманывать, особенно если обменник существует давно и комисси вполне окупают все расходы и удовлетворяют желаниям владельца. Только в этом всём консенсус совсем не нужен и на самом деле всё строится на доверии.



Сами же криптовалюты дали ещё один бонус — возможность сделать свой токен/ассет/поинт/коин/акцию в некоторое количество не сложных действий. Но можно ли предоставить возможность создавать свои ассеты чего-либо без необходимости тащить с собой консенсус, не быть частью децентрализованной (или нет) системы? Лет 10 назад это выглядело бы смешно, не доверительно… если это была бы небольшая компания. На самом деле рубли, доллары, или те же акции — те же токены по своей сути, долговые расписки, фьючерсы или что-либо иное, а должником вам выступает банк или иная организация, начиная с появления первых монет в замен физических кусков золота. Но мир поменялся, криптовалюты дали моральное право на печать своих монет, даже анонимных. И роль блокчейна тут лишь в первом шаге, в узких кейсах, но она принесла пользу. Всё остальное — построилось поверх самой Теории Игр со стратегией отсутствия выгоды в обмане, выгоды сотрудничества т.к. оно просто приносит больше выгоды, такова реальность на данный момент времени.



Продолжение следует…


(эта же статья в пдф)

Комментарии (27)


  1. napa3um
    19.05.2019 13:04

    В пределе, кажется, оно всё упирается в задачу византийских генералов.


    1. gecube
      19.05.2019 13:17

      TL;DR, консенсус — это вообще немножко про другое.
      Ждем продолжения…
      > упирается в задачу византийских генералов.
      вроде как есть блокчейны, которые решают эту проблему (и это не эфир, и не hyperledger)


      1. JekaMas
        19.05.2019 15:42

        Думаю, верно было бы сказать, что BFT consensus — это частный вид консенсусов. Но да, в чейне именно он и интересен. И фактически мы решаем задачу atomic broadcast.


  1. rsashka
    19.05.2019 13:12

    Так и не понял про доверие, но доверие к самой статье утратил после предложения

    Но что пошло не так что появилась потребность в криптовалютах и консенсусах?
    У кого потребность появилась, у обычных людей?


    1. Format-X22 Автор
      19.05.2019 13:17

      У обычных людей не появилась, потому что как раз таки это и не нужно, есть другие инструменты. А вот у специфических и для специфических кейсов — да. В статье есть пример с Венесуэлой.


    1. JekaMas
      19.05.2019 15:45

      У банков например, банк UK в частности и многие другие. Доводилось консультировать товарищей


    1. 2PAE
      20.05.2019 07:51

      Вообще да. Обычным людям.
      Или вы к примеру считаете что отмена рабства так же не нужна была обычным людям?
      У любого человека есть потребность в лучшем.
      Даже если он не знает в чем это лучшее заключается :)


      1. rsashka
        20.05.2019 08:54

        Интересно, что еще, кроме отмены рабства, имеет смысл вспомнить, что бы показать крайне высокую потребность криптовалют для обычных людей?


        1. 2PAE
          20.05.2019 10:01

          Посмотрите на свою жизнь, на глобальную зависимость обычного человека от государства. Рабство это так, признано осуждаемая практика.

          Вообще лучше почитать Сатоши Накамото, создателя Биткойна. У него обоснование появления криптовалюты вышло лучше.

          Вы же не обижаетесь, что я послал вас к первоисточнику? ;)


  1. aleks_raiden
    19.05.2019 17:08
    +1

    Странно плохое предубеждение у автора против Ethereum Classic. При этом — безосновательное. Судя по обьективным рыночным показателям — у ETC все хорошо (но да были недавно сложности в команде разработки, это факт):

    18-е место по капитализации (ефир — 2й)
    ~750M USD торговый оборот за сутки
    ~850M капитализация
    — 196 рынков
    — 96 бирж торгуют

    При этом проект имеет несколько достаточно сильных преимуществ по сравнению с родительским ETH и вполне хорошо себя чувствует. Не шикарно, не идеально, не мегаразвиваеться. Но вполне хорошо. А учитывая обстоятельства появления — очень даже отлично.


    1. Format-X22 Автор
      19.05.2019 19:29
      -1

      У ETH:
      ~11 520M USD торговый оборот за сутки
      ~27 067M USD капитализация
      — 400+ известных рынков
      — Большинство бирж торгуют

      Итого в 15 раз больше оборотов, в 31 раз больше капитализация, почти все биржы торгуют ETH и много, но не все ETC. Также проблемы с командой и цена токена ETH в 33 раза больше ETC.

      То есть это да, не смерть форка, но разница на порядок.


      1. aleks_raiden
        19.05.2019 19:48
        +1

        Ну 96 из примерно 180 более-менее, включая топовые регулируемые — это хороший показатель. Конечно, сравнивать с топ-2 валютой некорректно. Но 18 место среди нескольких тысяч… как бы намекает, что все хорошо. Тем более задачи стать заменой ефиру перед проектом не ставилось вообще.


    1. JekaMas
      19.05.2019 20:17
      -1

      У etc всё плохо. Денег на core команду нет.


      1. aleks_raiden
        19.05.2019 20:33
        +1

        Еще раз посмотрите цифры вверху. Они свидетельствуют об обратном.
        Инцидент с расколом с разработчиками — там был да, некоторое перетягивание одеяла и все такое. Это вопрос денег, влияния и политики. Если бы у проекта все было плохо, вряд ли он кому-то был бы нужен :) Вот — cointelegraph.com/news/etc-labs-introduces-dedicated-team-to-focus-on-core-ethereum-classic-projects


        1. JekaMas
          19.05.2019 21:29
          -1

          Всё проще, я общался с их hr в начале мая. Команды там нет, ищут одного чудо-человека, который один заменит всю бывшую команду.


    1. pin2t
      19.05.2019 21:46
      +1

      Родительский-то как раз Classic, ибо там остались прежние правила работы сети на тот момент, а ETH это дочерняя цепь, её специально скопировали чтобы изменить правила под конкретную задачу. НУ просто название ETH с собой забрали.


  1. pda0
    19.05.2019 17:57

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


    1. Format-X22 Автор
      19.05.2019 19:35

      Да, это второй вариант развития когда у тебя достаточно средств и власти чтобы преодолеть консенсусный барьер, добраться до состояния когда ты владелец, а после, если твоя цель разрушение или сдерживание — сотворить что-то подобное. Правда вот какая штука — если разрушить, то есть шанс что появятся форки и подобные проекты, а вот если сдерживать, ломать неспешно — могут быть варианты и поинтереснее и поэффективнее.


    1. JekaMas
      19.05.2019 20:19

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


  1. pin2t
    19.05.2019 21:48
    +2

    договоренность машин и людей о чём либо по установленным правилам

    Консенсус — это договоренность машин с машинами по установленным правилам. Люди с машинами ни о чем не договариваются, люди смотрят на результат договоренности машин между собой, и принимают решения на его основе.


    1. Format-X22 Автор
      19.05.2019 21:57

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


  1. pin2t
    19.05.2019 22:33
    +1

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


    1. Format-X22 Автор
      19.05.2019 23:13

      Тогда мы точно с вами одинаково мыслим, просто по разному описываем.


  1. WinPooh73
    20.05.2019 00:03

    «Консенсус — ложь!» — сказал мудрец брадатый.
    Другой смолчал и согласился с ним.


  1. binakot
    22.05.2019 12:29

    Всем интересующимся с практической стороны советую начать с Raft и Paxos


  1. genesisblock
    22.05.2019 12:31

    Хм, я вот не понял про игру с машиной. «Если положить монету — другой получит три. Но можно обмануть и не положить монету.» Так вот, если не положить монету, почему вообще должно что-то произойти? Или имелось ввиду, что машина не проверяет, положил-ли кто-то монету, а просто независимо от действий соперника всё-равно выдаст три монеты другому? Так для этого и нужны правила, исполнение которых машина проверит: не положил монету — ничего не получил. Если же применительно к консенсусу… Эти двое могут договориться, что их всё устраивает, пусть машина даёт монеты (или не даёт, или даёт одному, etc.) в любом случае — но тут всё нормально, консенсус есть, претензий нет. )))


    1. fireSparrow
      22.05.2019 12:55

      Тут не про обман машины речь, а про обман другого.
      Смысл в том, что предполагается, что оба положат по монете, каждый получит по три, и в итоге у каждого чистая прибыль +2 монеты.
      Но если вы схитрите и не положите монету, а другой наивно положит, то ваша прибыль будет +3, а другой получит убыток в одну монету.
      Если игра повторяется, и игроки не анонимны, то хитрить не выгодно — после первого обмана с вами никто не будет играть, и вы один раз сорвав весьма скромный куш потеряете возможность стабильной прибыли.
      Но если игроки анонимны, и в каждом раунде ни один из игроков не знает, с кем он играет сейчас, то хитреца ничего не сдерживает, честные игроки регулярно проигрывают и либо вообще покидают игру, либо сами становятся хитрецами, в итоге рушится вся система и вообще все теряют возможность получать от неё выгоду.