ББ-081: Александр Зайдельсон (Beam) о Mimblewimble, приватных криптовалютах и auditability

Александр Зайдельсон — CEO Beam. Есть ли в Beam смарт-контракты и 2nd layer, в чём отличия от Monero, ZCash и Grin, как помирить приватность и auditability и почему формат стартапа лучше подходит для криптовалюты, чем формат сообщества.

  • 00:15 объявление: подарочные билеты на конференцию о майнинге TerraCrypto!
  • 01:15 бекграунд Александра Зайдельсона
  • 04:50 как устрое протокол MimbleWimble, отличия от Monero и ZCash
  • 11:44 ключевая инновация MimbleWimble, отсутствие истории и адресов
  • 18:35 нет ли проблемы с верификацией блокчейна от генезиса
  • 23:15 разница с Grin, отношение к Grin в Beam
  • 28:34 как происходит общение между кошельками и нет ли угрозы децентрализации
  • 32:52 зачем использован Equihash и что с ASIC-resistance
  • 36:50 количество транзакций в секунду, Medium of Exchange или Store of Value
  • 44:40 смарт-контракты или скрипты в Beam
  • 47:00 opt-in auditability — что за фича и кому нужна
  • 54:07 почему имплементация на C++, а не на Rust
  • 57:50 roadmap: atomic swaps с bitcoin, 2nd layer
  • 01:02:35 Beam как компания: почему стартап, а не сообщество
  • 01:05:21 как распределяются средства founder reward
  • 01:10:17 почему нужно ценить приватность 

25 июля в Москве пройдёт третья конференция о майнинге TerraCrypto. Первые 10 слушателей, отправивших фамилию, имя, почту и телефон на адрес marina.v@wtm.today, получат билет бесплатно! А также по промокоду «БазовыйБлок» можно получить скидку 40% на билет категории «Стандарт».

Ссылки:

Поддержите подкаст!

Patreon: https://www.patreon.com/basicblockradio/overview
Bitcoin: bc1qec856uhwuguhnn28r54tlkrh3dh95ctajvpjaf

https://basicblockradio.com/

Всем привет и снова с вами подкаcт Базовый Блок. Это подкаст про блокчейн. И я — Сергей Тихомиров. Также у нас Иван Иваницкий с нами.

Привет, друзья.

Но есть небольшое объявление, прежде чем я представляю нашего гостя сегодня. Мы планируем освещать конференцию в Москве, которая называется TerraCrypto. Это третья конференция, посвященная майнингу, и мы там будем, и мы вас на неё приглашаем. 25 июля в Москве пройдет эта конференция. Там соберутся майнеры, руководители компаний, инвесторы и другие, не равнодушные к майнингу люди. Обсудят законы, железо, код, деньги и прочие, связанные с майнингом темы. И для слушателей Базового блока организаторы подготовили специальные два предложения. Во-первых, можно получить билет абсолютно бесплатно, отправив свои фамилию, имя, телефон и почту на адрес, который будет в шоунотах. А также, если вы вдруг не успели на первую акцию, можно на сайте конференции ввести промокод «БазовыйБлок» и получить скидку 40% на билет категории «Стандарт». Всё это будет в шоунотах. Приходите на конференцию. Также там можно будет поймать кого-то из Базового Блока.  А теперь перейдем к нашей главной теме и нашему главному гостю. У нас сегодня в гостях Александр Зайдельсон — CEO компании «Beam». Привет.

Здравствуйте. Привет. Привет, Сергей. Привет, Иван. Очень приятно быть на вашем шоу.

Да, спасибо большое, что пришел. Мы давно собирались сделать выпуск, посвященный  Beam, и слушатели нас об этом просили, и крайне активно принимали участие в подготовке вопросов. Мне кажется, мы никогда в нашем чате не получали столько вопросов от заинтересованных слушателей. Начнем, наверное. Чтобы как-то плавно начать, можешь рассказать свой бэкграунд? Чем ты занимался до того, как пришел в криптоволюты? И почему именно проект, связанный с MimbleWimble, его имплементацией, заинтересовал тебя?

Да. Я начал свою карьеру в качестве программиста, разработчика. Где-то лет 7 работал разработчиком сначала в России, потом в Израиле. Затем я вместе с друзьями основал компанию в области P2P в 2005-2008 годах. И мы занимались P2P сетями, скачиванием файлов в частности на мобильных телефонах, занимались наблюдениями за этими сетями. Эта технология, если вы помните, достаточно во многом напоминает криптовалюты, потому что она тоже permissionless, она тоже распределенная полностью и децентрализованная. После этого я создал свою компанию небольшую под названием «Wikitap». И я сделал такой доступный словарик — очень славную программку, которая по клику на любое слово приносила переводы этого слова на разные языки, из Википедии, Wictionary и других всяких источников. Тоже в общем с использованием таких, получается, децентрализованных в какой-то степени технологий, и демократизованных технологий, как Википедии. Потом я работал в компании WitFi,  отвечал там за продакт-менеджмент. Мы делали Big Date Analytics на данных, собранных с мобильных телефонов, по пользованию аппликациями, по месту нахождения и т.д. И работали много с американскими крупными клиентами. После этого я был ещё 2 года в венчурном фонде в Израиле — мы занимались инвестициями в компании в достаточно поздней стадии, в разных областях, начиная от полупроводников, до больших данных, до медицинских вещей, до трехмерной печати и т.д. И потом я присоединился к компании Beam. Криптовалютами я начал интересовать относительно поздно — где-то, наверное, в 2017 году. Как-то начал изучать эту тему и как-то немножко приобретать. И вот в 2017-м присоединился к компании Beam. Я когда узнал про криптовалюту, я понял, что это индустрия с невообразимым потенциалом, потому что цель этой индустрии заявленная, возможно не достижимая в полной мере, — это заменить деньги. И на сегодняшний день полный объем денег в мире составляет по разным оценкам где-то 80-90 триллионов долларов. А мы знаем объем нашей криптоиндустрии на сегодня не доходит и до триллиона. То есть, потенциал роста огромный, поэтому я считаю, что индустрия супер интересная, кроме того, что очень интересная технология, философия и т.д. Почему Beam и MimbleWimble? Потому что, опять же, когда я начал изучать эту тему, я понял, что эта мечта замены денег — она не совсем достижима без конфиденциальности, потому что деньги любят конфиденциальность, а MimbleWimble и Beam эту проблему решают и поэтому вопросов уже не было.

Давай тогда начнем с основ и расскажем слушателям и сами разберемся, потому что я до конца так и пока и не разобрался, на каких математических и криптографических принципах, примитивах построен протокол MimbleWimble?  И что его отличает от предыдущих попыток создать анонимную криптовалюту? И ещё одну забавную деталь я упомяну всё-таки — в плане подготовки к этому выпуску мы выяснили, что скоро будет день рождения у MimbleWimble. 19 июля 2016 года автор под псевдонимом Tom Elvis Jedusor выложил файл, где описана эта система. Так что, буквально на днях исполнится 3 года этому протоколу. 

Да, совершенно верно. Чем отличается MimbleWimble? Или на какой он устроен технологии? Давайте исторически вспомним, какие были попытки сделать конфиденциальную криптовалюту? Первой, пожалуй, попыткой был проект Monero, который до сих пор остается самой крупной конфиденциальной криптовалютой. После Monero появился ZCash, который использует совершенно другие математические принципы — очень продвинутые, но очень сложные. И можно сказать, что третьим поколением вот такого конфиденциального протокола стал MimbleWimble. Чем он отличается и чем он интересен? Если мы посмотрим и на Monero, и на ZCash, то в общем, их базовая архитектура очень похожа на Биткоин. И оба эти проекта добавляют различные техники для того, чтобы скрыть информацию. Monero использует технологии, что называется Ring confidential transactions — то есть, когда скрывается как сумма транзакции с помощью так называемого бландинга, так и её источник. И это достигается с помощью круговой подписи. То есть, так устроено, что когда я вам посылаю деньги, с моей стороны добавляется ещё некое количество подписей, и невозможно знать, кто именно послал. Вот это то, что называется «круговая подпись». Поэтому скрывается источник и получатель транзакции. А получатель транзакции скрывается с помощью так называемых stealth addresses, то есть «скрытые адреса». Эта технология Monero теперь поскольку мы взяли базовую архитектуру Биткоина и добавили вот то, что я вам объяснил, на одну транзакцию, надо уже иногда используются до 25 подписей. Соответственно, размер блокчейна очень сильно растет и Monero, когда они начинали, на транзакцию использовалось в 25 раз больше места, чем на Биткоине. Сейчас это понизилось в связи с использованием Bulletproof технологии. И всё равно Блокчейн в 5 раз больше на одну транзакцию, чем Биткоин. ZCash — в принципе, это Биткоин с двумя режимами. Там есть режим конфиденциальной транзакции, есть режим открытой транзакции. Если транзакция открыта — это ровно как Биткоин. В закрытых транзакциях, которых на сегодняшний день в ZCash всего 1,5%. Я думаю, многие этого не знают, ZCash считается конфиденциальной валютой, но по факту всего 1,5% транзакций там вообще являются скрытыми, все остальные просто видны.

Я бы здесь немного не то что возразил, но у меня какие-то другие цифры. Если я правильно помню, число там что-то порядка от 10 до 20%, по тем данным, которые я помню?

Нет, нет. Там есть в районе 5-7% транзакций, где одна из сторон использует скрытый адрес. А транзакции, где обе стороны используют скрытый адрес, их в последний раз то что смотрел — где-то 1,5%. Можно даже сейчас посмотреть.

Да, возможно, мои данные включают транзакции из открытого в закрытый и наоборот. А 1,5% — это только из закрытых.

Да. Просто можно утверждать, что транзакции, где одна из сторона видна — она уже не конфиденциальна, потому что если все знают, что кто-то послал вам деньги, можно к вам прийти и спросить. Вот, смотрите, за последний месяц было 117 тысяч в ZCash прозрачных transparent transactions, было 16 тысяч shielded — то есть, с одной стороны. И всего 1676 fully shielded. Вот получается 1,5%. Это некая критика ZCash, но со временем это число будет увеличиваться. Это так исторически сложилось, что в ZCash мало полностью закрытых транзакций. Проблема технологически с ZCash. Во-первых, тоже есть проблема со скалабилити. Блокчейн большой, он почти в 10 раз больше на транзакцию, чем Биткоин. Во-вторых, там очень-очень сложная математика. То есть, используется технология zk snarks, у которой очень сложная и в теоретическом плане, и в плане имплементации. Очень небольшое количество людей действительно в ней разбираются. Кроме того, для ZCash используется то, что называется trusted setup. То есть, там вначале для запуска системы zk zparks, нужно создать некие случайные числа и при создании этих чисел, если часть этой случайности не уничтожена, то вся система может быть разрушена. Это тоже один из элементов критики ZCash. То есть, вся система построена на доверии к тому, что те люди, которые делают церемонию trusted setup, которая кстати уже ни один раз исполнялась, что мы им доверяем, и что они не спрятали где-то ключ и не воспользуются им. И они, наверное, все честные люди, но это проблема технологическая — очень сложно строить систему, которая заменит все мировые деньги на том, что мы доверяем какому-то количеству частных лиц. 

Мне казалось, что чтобы процедура была скомпрометирована, все участники процедуры должны быть нечестными, а их довольно много.

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

Давайте мы перейдем уже ближе к MimbleWimble.

Да, давайте перейдем к MimbleWimble.

В чем заключается вот та  ключевая инновация, которую MimbleWimble потенциально делает лучше, чем предыдущие альтернативы?

Ключевая инновация — это, пожалуй, отсутствие истории. То есть, MimbleWimble в отличии от всех других блокчейнов, которые хранят историю, MimbleWimble историю не хранит, MimbleWimble хранит текущее состояние upsource. То есть, текущее состояние всех монет с их владением, и некое доказательство, что к  этому состоянию мы пришли законным путем. Кроме того, в протоколе нет адресов вообще как таковых. То есть, в протоколе нет адресов и каждый человек создает свой ключ в самом начале, из него создает derived ключи, как бы выводит из него дополнительные ключи и на каждую свою новую монетку человек создает то, что называется pedersen commintment. То есть, это сумма из двух членов, первый из которых — это номинал моего UTXO. Там, 10 бимов, например. Номинал умножить на одну точку в элиптической кривой, плюс мой ключ, умноженный на другую точку на элиптической кривой. И вот этот pedersen commintment, не зная номинала и ключа я ничего с ней не могу сделать. Соответственно, все они эти pedersen commintments снаружи выглядят примерно одинаково случайным набором битов. Каждый пользователь владеет некоторым набором вот этих UTXO.  И для создания транзакции, и вот это достаточно уникальное свойство MimbleWimble, в от всех остальных протоколов, для создания транзакции два пользователя — посылающий и получающий, их кошельки должны вместе совместным образом построить эту транзакцию и только потом послать её в сеть. Для этого нужно, чтобы эти кошельки между собой связались и есть там некий протокол, 2 или 3 шага. Потом эта транзакция подписывается обоими участниками и посылается в сеть. Теперь что происходит? Когда создается транзакция, я беру какой-то импут UTXO, 100 бимов, и хочу тебе послать 60. Я начинаю с тобой разговор, говорю: «Я хочу тебе послать 60», ты создаешь свой UTXO со своим ключом, я создаю output для себя, сдачу, то есть 40. И мы всё это вместе подписываем и подписывая это, мы доказываем, что во-первых, сумма входов равна сумме выходов, а во-вторых, что все значения положительны. То есть, что мы не создали какую-то отрицательную сумму денег. Тем самым доказывая, что в этой транзакции у меня была какая-то монетка и были какие-то входы, и появились какие-то новые выходы, но сумма осталась той же. И потом вот эта вся конструкция посылается майнерам, которые записывают её соответственно в блоки, и валидируют. И таким образом мы переходим к новому состоянию сети, когда был у меня один UTXO в прошлом состоянии, а в новом состоянии их стало два — один у вас, один у меня, но сумма осталась той же.

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

Нет. Пожалуй, это не так. Получатель создает свою монету, он создает своё UTXO. Это не адрес. Он просто создает свой UTXO.

Я имею ввиду, что это как бы аналог адреса. То есть, это некоторый кусок информации, который идет от получателя, но обычно  в других криптовалютах он идет в виде адреса.

Пожалуй, нет. Я бы не сказал, что это аналог адреса, потому что адрес — это что-то, куда я могу вам что-то послать. В данном случае я начинаю разговор и в процессе этого разговора вы что-то создаете каждый раз новое. То есть, если я вам хочу послать 10 монет, то вы создадите себе UTXO на 10, если хочу послать 15 — вы создадите себе UTXO на 150. То есть, это не адрес, не место, куда можно посылать. Что интересно.. Если здесь понятен мой ответ, есть интересное такое продолжение. Понятен, Сергей? 

Да, вполне.

Вот мысль ваша на самом деле очень интересная и правильная, потому что один из недостатков MimbleWimble, может быть единственный, — это то, что я не могу вам просто так послать деньги, если вы не онлайн или я не поговорил с вашим кошельком. Вы сейчас уехали в отпуск, я не могу послать деньги. То есть, ты отсутствуешь, компьютер твой закрыт, я ничего не могу тебе послать, потому что мне для того, чтобы послать нужно с твоим кошельком поговорить. То есть, чтобы твой кошелек помог мне создать эту транзакцию. И мы как раз сейчас работаем над такой фичей, которую называем one-sided payments, которая позволяет пользователю опубликовать не адрес, а вот эти готовые или полуготовые UTXO, которые потом отправители могут использовать для создания транзакции без участия получателя. Но эта фича, которую мы добавляем на MimbleWimble, на оригинальном MimbleWimble её не было. И всё равно это сложно назвать адресом. Это как бы такая заготовка. Я это называю «кассовый ящик» такой. То есть, я могу опубликовать UTXO в 1, в 5, в 10, в 50, в 100, а потом ты можешь посылать мне в принципе любую линейную комбинацию этих чисел.

У меня в связи с этим возник вопрос. Если у нас протокол полностью интерактивный, то что тогда у нас с холодным хранением?

Холодное хранение — это достаточно непростая вещь. Именно поэтому. Сейчас мы как раз работаем над интеграцией с Trezor T, и работа пока ещё идет. Там технические детали я не очень в состоянии обсуждать глубокие, но с холодным хранением действительно из-за интерактивности есть проблема. Кстати говоря, вот этот one-sided payments, он в некотором смысле её решает, потому что он позволяет мне на полностью отключенном от интернета устройстве создать вот этот набор UTXO и потом принимать на них платежи. То есть, мой ключ ни коим образом тогда не подвергается риску, но в этой фиче есть небольшая проблема с конфиденциальностью. То есть, там она менее конфиденциальная. Можно увидеть, какие суммы посланы на эти уже заготовленные UTXO. 

У меня тогда следующий вопрос, связанный тоже с конструкцией MimbleWimble. И тут рубрика «Вопросы от слушателей» вклинивается в наше повествование, ибо это Его Хомяков — гость нашего прошлого выпуска. Мы с ним подискутировали в чате и в результате я бы сформулировал вопрос так: «Из-за того, что в блокчейне MimbleWimble не хранятся транзакции, а хранятся какие-то пруфы, чтоб переходы из стейта в стейт были выполнены корректно, нет ли у нас проблемы с возможностью верификации блокчейна, начиная от генезиса? То есть, есть ли такая опция у пользователя — прийти прям как абсолютно свежий и новый пользователь, взять генезис и переиграть все транзакции, убедиться, что всё на самом деле корректно, как есть в биткоине? Или MimbleWimble такая возможность и не нужна по сути?» 

Такая возможность не нужна. На блокчейне MimbleWimble можно проверить вообще как на одну большую транзакцию с огромным количеством инпутов и огромным количеством output. Импуты — это майнинг. То есть, мы можем себе представить что такое текущее состояние блокчейна MimbleWimble? Это переход от того, что было на сегодняшний день намайнено к текущему состоянию блокчейна. Окей? На каждую транзакцию сохраняется элемент, который называется кернел, который содержит вот эту подпись и доказательство, что сумма равна нулю. Вот это то, что сохраняется на каждую транзакцию. То есть, количество транзакции можно увидеть, а переиграть их невозможно. Это как раз механизм, который называется cut-through, который убирает из блокчейна все промежуточные состояния и показывает только последнее состояние. В принципе, узел может хранить историю транзакции, если он этого хочет, но для верификации блокчейна это не нужно.

То есть, если я сделал какое-то время назвал транзакцию, у меня нет никакого способа доказать, что действительно она включена в блокчейн, потому что она..

Есть. Вот через этот кернел как раз можно доказать, что она точно блокчейн.

А если, например, я осуществляют атаку 51%? Вот в биткоине и в других валютах тоже я должен перемайнивать всю цепочку с того момента, который я хочу, грубо говоря, переписать. И чем глубже я хочу поменять историю, тем мне это будет сложней сделать. А в MimbleWimble если обладаю, например, мощностями в 51%, то какие у меня возможности по изменению истории?

Возможности те же самые, потому что блокчейн всё равно присутствует. То есть, в хедере каждого блока содержатся merkle tree всех хедеров остальных блоков, все proof, proof of work. То есть, если вы хотите сделать атаку, то надо пересчитывать всё, чтобы какая-то транзакция изменилась или не произошла. То есть, вам надо с того блока, в котором она замайнена, вам надо будет всё пересчитывать.

Давайте ещё такой вопрос обсудим, связанный именно с протоколом, а потом уже перейдем к проекту Beam, как конкретной имплементации этого протокола. Вот я смотрел недавно, готовясь к этому разговору, видео, где Андреас Антонополос объясняет MimbleWimble  и разницу между Beam и Grin, но к этому мы тоже потом придем. И высказывает такую мысль, что раньше в приватных криптовалютах первых, скажем так, поколений — Monero и ZCash, — нам приходилось платить производительностью за приватность. То есть, у нас были огромные тяжелые транзакции, большой блокчейн и т.д. А в MimbleWimble мы наоборот получаем и приватность, и вместе с тем более маленький размер блокчейна. Вот действительно ли это так? И для меня это звучит немножко too good to be true. Должны же быть какие-то трейдофы? Или MimbleWimble такой гениальный, что лучший по всем параметрам?

Пожалуй, да. То, что сказал Андреас совершенно верно. Действительно, MimbleWimble — это первый протокол, в котором за счет упрощения системы, за счет отказа от скриптов биткоиновских, и за счет отказа от адресов стало возможным делать небольшой блокчейн. Цена за это — это интерактивность. То есть, интерактивность — это мы платим за отсутствие скриптов и адресов. Действительно, этот блокчейн гораздо меньше, чем Monero и ZCash. Я вынужден подписаться под тем, что Андреас сказал. Действительно так.

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

Во-первых, сначала об отношении и сотрудничестве. Конечно, мы  в некотором смысле конкуренты Grin. Но отношение у нас к нам очень уважительное и почтительное. Мы достаточно часто общаемся — наши разработчики общаются с разработчиками Grin по каким-то техническим вопросам, иногда не по техническим вопросам. То есть, у нас установились достаточно хорошие рабочие отношения. Мы с одной стороны конкуренты, с другой стороны оба проекта разрабатывают, развивают протокол MimbleWimble, поэтому в каких-то вопросах улучшения протокола мы очень хорошо сотрудничаем. И конкуренция я не думаю, что какая-то жесткая. Мы не пытаемся что-то выиграть у Grin или Grin что-то выиграть у нас. Мы на самом деле вместе пытаемся продвинуть эти идеи конфиденциальности и протокол MimbleWimble в мир. У нас общих целей, чем вопросов кому что достанется. Но понятно, что конкуренция в некотором смысле есть, мы смотрим, как рынок реагирует и всё прочее. Это как мы строим отношения с проектом Grin.

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

Да, пожалуй, это очень важные два отличия. Но есть, пожалуй, ещё отличие. Мы считаем, что у нас лучше имплементирован dandelion, потому что этот протокол, который прячет ваш адрес IP и усложняет очень сильно такие атаки по триагуляции, сетевые атаки. У нас он имплементирован лучше, потому что там всегда добавляются дополнительные decoys..

Примеси буквально.

Примеси, да. Decoy, импут для того, чтобы ещё лучше скрыть источник транзакции. Наша вот инновация, что я упомянул one-sided payments. Мы это сейчас делаем. То есть в Grin’е этого нет. Также у нас есть очень важная техническая подсистема, которую мы называем SBBS — Secure Bulletin Board System, которая позволяет пользоваться MimbleWimble с точки зрения юзера, как будто это Биткоин. Или почти как будто. Вот мы говорили раньше, MimbleWimble для создания транзакции нужно установить связь между кошельками. Как установить эту связь между кошельками? Вот в имплементациях Grin один вариант — просто создать прямой коннекшен по IP, что в общем большая проблема с точки зрения privacy и техническая проблема. Если я не очень продвинутый пользователь — я сижу на своем домашнем компьютере и как мне открыть для вас порт вообще мне не очень понятно. Я как пользователь не очень умею это делать. Это один вариант — в базовом  MimbleWimble. А второй вариант — это просто посылать друг другу файлы. Если вы скачаете мобильный кошелек Grin’а один, который сейчас разрабатывается. То там просто открываешь его и написано: «Хотите получить деньги? Свяжитесь с отправителем. Он создаст файл, пошлет вам, вы этот файл импортируете внутрь программы, она вам выдаст другой файл, пошлите его пользователю обратно». То есть, это MimbleWimble — надо посылать информацию между пользователями. Что мы сделали? Мы построили такую систему обмена сообщениями, которая распределена и лежит в наших узлах. Кошельки создают себе временные адреса в этой системе, которые никакого отношения вообще к блокчейну не имеют. Просто такой рандомальный вообще набор знаков, по которому можно обратиться. То есть, кошелек открывает в себе такой месседж бокс в этой системе — это Distributed hashtable.То есть, она разбросана по узлам. И соответственно другой кошелек может начать со мной таким образом разговаривать. То есть, когда я с помощью кошелька Beam посылаю тебе деньги, то для того, чтобы это сделать, я говорю: «Пришли мне адрес», ты заходишь в кошелек, нажимаешь кнопку receive — там появляется адрес, точно как в биткоине или в других криптовалютах. Ты мне посылаешь этот адрес и я по этому адресу ввожу, нажимаю кнопку Send, вставляю этот адрес и посылаю деньги. То, что происходит — по этой системе SBBS кошельки устанавливают между собой связь и начинают посылать сообщения для пользователя, это совершенно прозрачно и удобно, и голова у него не болит. И он даже не ощущает всей сложности происходящего.

Да, у меня по этой теме тоже.. Мы хотели немножко позже обсудить, но давайте сейчас уже обсудим, раз мы к ней пришли. Вот у меня такое рассуждение приходит в голове — окей, у нас протокол интерактивный, допустим. Значит, у нас кошельки должны общаться, но как они будут понимать к кому обращаться? Понятно, что если протокол требует переслать какой-то файл какими-то другими способами — через мессенджер или через почту или что угодно — мы практически проблему аутентификации, проблему identity спихиваем на другие протоколы. Окей, они её решают, мы просто на это надеемся. Вот в конструкции, где вы поддерживаете сеть этих временных identity и обеспечиваете общение между кошельками — мне в этом видится некоторая угроза децентрализации, потому что всё-таки эта сеть находится, как я понял, под вашим контролем и вы при желании можете, например, препятствовать общению каких-то конкретных кошельков, осуществлять цензуру. Вы можете так сделать или нет?

Нет, сеть ни в каком случае не находится под нашим контролем. Я же сказал, она распределенная и узлы сети просто также являются узлами этого distributed hashtable. То есть, она ни в коем случае не централизована — это очень важно. 

А трафик между этими узлами как-то зашифрован или любой его может перехватить?

Нет, это всё обе стороны зашифрованы между кошельками. 

Просто если Алиса хочет Бобу что-то передать и зашифровать публичным ключом Боба, она должна знать публичный ключ Боба. Но если у Боба публичный ключ каждый раз новый, то как она может это сделать?

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

Да, вопрос в том — что значит послать мне? Мне — это на куда?

На вот этот адрес. То есть, ты сначала мне для того, чтобы начать транзакцию, посылаешь мне в телеграме свой адрес.

Окей, то есть всё-таки мы бутстрепим этот протокол из какого-то внешнего источника.

Да. 

Окей.

Собственно говоря, так же, как это происходит в биткоине — то есть, user experience тот же самый. Теперь дефолтный адрес этот, он в принципе стандартно действует 24 часа. В принципе, я могу создать и постоянный адрес. Опять же, это не адрес в смысле блокчейна, но адрес в смысле SBBS. То есть, могу создать постоянный адрес и мой кошелек будет всё время слушать сообщения, которые придут на этот адрес и сможет принимать транзакции от людей, которые посылают информацию ему. Опять же, интерактивность никуда не уходит в данном случае. Кошелек всё равно должен быть онлайн и должен эти транзакции создавать. Но с точки зрения пользователя — он один раз послал адрес и ему можно посылать по сколько угодно раз деньги. Так же, как он послал бы свой имейл адрес или телеграм handle.

Я предлагаю тогда, чтобы закруглить разговор про безопасность на сетевом уровне, потом мы пойдем в другие аспекты имплементации, можно ли пользоваться Beam через Tor? Как-то вы прорабатывали это взаимодействие? Тестировали? 

Пока не тестировали. Я думаю, что можно пользоваться Beam через Tor. Но Dandelion в принципе делает ту же самую работу. То есть, архитектура Dandelion как раз очень похожа на Tor. В том смысле, что информация не выходит в сеть, не транслируется всем сразу. Когда я посылаю транзакцию в узел, вот я с тобой сделал транзакцию и я посылаю её в узел — теперь мой узел не сразу её рассылает всем, а во-первых, сначала он добавляет к ней вот эти decoy импуты и посылает в следующий узел. Следующий узел мерджит эту транзакцию, если у него есть, с другими транзакциями, также с дикой импутами, посылает в третий, четвертый, пятый и потом уже в какой-то момент она рассылается всем узлам. То есть, это в принципе очень похоже на архитектуру Тора. Наверное, использовать Тор — это будет ещё более безопасно, но я честно говоря не уверен. Хотя, в какой-то момент у нас в роудмапе есть использование. Мы хотим эту интеграцию сделать в конце года. То есть, это наверное, ещё улучшит безопасность.

Давайте тогда перейдем к разговору про другой аспект имплементации, а именно про proof of work. Как я понимаю, Beam использует в качестве proof of work Equihash? Для начала давай поговорим про то, зачем Equihash? И какое отношение у Beam к ASIC-resistance?

С удовольствием. Зачем Equihash? Хотелось выбрать алгоритм, который не дает слишком большого преимущества асикам, поэтому был выбран Equihash — потому что он memory hard. Отношение к асикам у нас не отрицательное, скажем так, неплохое. Но мы решили, что на первые 17 месяцев мы хотели бы систему как можно больше демократизировать и дать ей подрасти. И только потом дать людям возможность делать асики. Поэтому мы объявили о двух хард форках, один из которых мы уже скоро будем исполнять. Хард форк изменит, внесет небольшие изменения в алгоритм майнинга. Поскольку мы это сказали с самого начала  — это был сигнал разработчикам на асиках, что не стоит сейчас беспокоиться, поскольку будут изменения. Вот у нас будут изменения летом и будет потом ещё одно изменение зимой. И после этого уже изменения не будет, и люди смогут делать асики. 

Тогда вопрос тоже по этой же теме  от Дмитрия Ховратовича, который наш гость этого подкаста, и слушатель подкаста, и разработчик вместе с Алексом Бирюковым функции Equihash. С какими параметрами Equihash у вас используется и почему?

На сегодня у нас используется 150 и 5. После хард форка параметры чуть поменяются..

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

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

У нас вопрос от нашего слушателя Евгения Ткачука: «Будете ли вы сопротивляться асикам?» Как я понял, вот в ближайшие N месяцев ещё да, а потом нет, правильно?

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

Здесь я могу сделать такое едкое, скажем так, замечание, что параметры неизвестны, но вам-то они могут быть известны. Так что, если вы захотите, вы можете как инсайдеры начать уже разрабатывать асики для будущего хард форка.

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

Окей. А вообще сейчас насколько децентрализован майнинг у вас? 

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

Есть какое-то число? Сколько топ пулов занимают больше 50% хэшлейта?

Я думаю, 4-5.

То есть, получаются цифры примерно тех же порядков, что и у биткоина, и у Эфириума, насколько я помню?

Да. Возможно, это вообще такой закон природы, что так всегда получается.

Я хочу спросить про количество транзакций в секунду. Я так понимаю, вы не обещаете количество транзакций в секунду сильно больше, чем в биткоине и в существующих privacy coin’ах. И гооврите о том, что основная цель у вас — это не Medium of Exchange, а Store of Value, правильно?

Мы действительно не обещаем большой скорости, потому что proof of work —  это медленное дело. У нас сейчас скорость теоретическая идет 17 транзакций в секунду. Просто потому что у нас блок каждую минуту и в блоке примерно тысяча транзакций. Вот делится одно на другое — получается 17. Мы изначально считали, что наверное мы будем Store of Value, но мы будем также и Medium of Exchange. То есть, я не думаю, что эти вещи так сильно противоречат друг другу. В какой-то мере да, но мы хотим, чтобы у нас также были возможно быстрые трназакции. Мы вот совсем недавно сделали демонстрацию Лайтнинга и будем дальше над этим работать. То есть, мы понимаем, что сильно увеличить скорость транзакций на базовом леере. Может быть, будем в скором времени изучать directer secret graf, golsdar. Это сможет позволить достаточно здорово увеличить скорость транзакций. В любом случае, в дополнение к этому мы будем разрабатывать Лайтнинг.

Если говорить про Store of Value, то как будто здесь в первую очередь важна стабильность. И один из важнейших критериев стабильности — это размер системы, по которому у нас пока лидирует биткоин. Планируете ли вы его по размеру обгонять или в любом случае вы предполагаете, что будет существовать большой сам Биткоин и рядом с ним Beam?

Это вопрос такой теоретический. Я думаю, что да, я думаю, что правильно сказать, что биткоин будет наверное ближайшие много лет самой большой криптовалютой, хотя опять же, там очень серьезная проблема с конфиденциальностью. И без конфиденциальности в больших масштабах и Store of Value тоже становится проблематичным, потому что мы не любим, чтобы все знали сколько у нас средств и сколько у нас денег. Но я думаю, что правильней сказать, что да, Биткоин будет большим, а Beam или другие конфиденциальные валюты будут рядом. Уж насколько близко к нему — это время покажет.

Строго говоря, если мы не собираемся часто проводить транзакции, а собираемся действительно использовать криптовалюту как Store of Value, то из Биткоина можно заморочиться и сделать достаточно приватно при помощи миксов, покупать у майнеров и т.д. Вот так ли велика здесь ценность, которую Beam предлагает в рамках Store of Value в виде приватности?

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

Я думаю, что да, что он гораздо ниже, потому что любые добавление приватности сейчас в Биткоин — это будут какие-то патчи, а база всё равно остается открытой. И то, что вы упомянули подписи Шнора — это только позволяет скрыть какую-то часть скриптов, а ни в коем случае не скрывает отправителя, получателя и сумму. То есть, вся эта информация доступна в блокчйне, куча компаний занимается дата майнингом этой информации, из неё можно вычислить очень-очень много всего о Биткоине. Поэтому я думаю, что довести Биткоин до уровня privacy MimbleWimble — это невозможно.

Тогда вернемся к первой части вопроса. Может быть, для Store of Value достаточно той небольшой приватности, которую можно достичь в Биткоине? 

Смотрите, мне кажется, что не совсем правильно смотреть на что-то, что это только Store of Value. Потому что ведь всё равно происходят какие-то транзакции, люди что-то периодически продают, переводят его в какой-то другой тип, пересылают её от одного к другому. То есть, мы не можем прям так изолировать два этих юзкейса и сказать, есть Store of Value — то есть, просто человек купил и оно у него лежит всегда. Нет же, он захочет в какой-то момент продать, наверное, кому-то передать, кому-то послать. И тут, соответственно, конфиденциальность очень важна. И даже если мы просто хотим продать, да? Мы вот сейчас видим все эти Whale alerts — когда кто-то переводит на биржу огромное количество биткоинов, так народ уже сразу начинает продавать, потому что знают, что сейчас начнется какой-то дамп. Короче, в любом сценарии нужна конфиденциальност. Store of Value — если вот я просто держу у себя биткоин и я принял всякие меры предосторожности, чтобы никто не узнал, что это мой адрес — может быть, это good enough. Хотя, тоже нельзя быть на 100% уверенным. И тут тоже Store of Value — если кто-то знает, что у меня есть крупная сумма в биткоине — это рисковано. Если кто-то узнает об этом и меня сможет деанонимизировать — это проблематично. Поэтому я думаю, что конфиденцальность нужна для любых вещей. Мы не можем сказать, что деньги могут работать без конфиденциальности. 

Мы здесь в любом случае говорим про некоторый трейдоф, и в случае с Beam можно говорить, что если мы предположим, что Beam технически не уязвим, всё равно возможны атаки рыночные. То есть, просто кто-то возьмет на бирже обвалит курс. И в случае с Beam это сделать проще просто потому что меньше объем.

Пока во всяком случае.

Как на твой взгляд, в какой момент приватность Beam  начнет оправдывать вот эти риски? Или уже оправдывает?

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

Хотел просто небольшое добавление сделать. Раз уж мы говорим про рыночные разные вещи, размер рынка и т.д. Просто для полноты картины я тут открыл Coin Market Cap, чтобы дать какой-то контекст. На Coin Market Cap Beam находится на 144 месте на момент записи по капитализации с капитализацией, округляя до миллионов, 38 миллионов. Grin находится на 100-м месте с 68 миллионами. А другие приватные валюты, например, Monero — из приватный валют самая большая по капитализации, 1,72 миллиарда на 13-м месте, ZCash на 24-м, и всё. Где-то там Dash ещё есть. 

Да. 

Вот ты упомянул токены. У нас слушатель Олсанек спрашивает: «Что в Beam со смарт-контрактами?» Причем не обязательно Тюринг полными в духе Эфириум, но и такие как в Биткоине, например, мультисиг, атомик своп, таймлок и т.д.

Да, с такими как в Эфире, такие смарт-контракты под Turing Complete не очень возможны. По крайней мере, не в полностью распределенном виде. А вот что касается Биткоин-подобных скриптов, то это как раз да, можно реализовать. Технология называется (45:10) Scriptless scripts. То есть, это не в полной мере скрипты, как в Биткоине. Это скорее криптографический примитив, который как раз позволяет сделать мультисиг, таймлок, эскроу и другие вещи. Как раз вот вся эта история с Лайтнингом, которую мы опубликовали, там как раз реализованы вот эти вот безскриптовые скрипты, которые позволяют делать, например, таймлок.

Можешь поподробнее рассказать, как они работают? Потому что я читал исходный MimbleWimble paper. И там написано прямым текстом: «Извините, но нам придется от скриптов избавиться». И математика там так выглядит, что действительно нет никакого места, где проверять какие-то дополнительные условия можно или потратить монеты или нет. 

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

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

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

Меня среди ваших фич заинтересовало ещё opt-in auditability. И я так понимаю, вы во многом делаете на неё упор тоже? Можете рассказать, что это за фича и кому она нужна?

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

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

Это они должны договариваться между собой, потому что конфиденциальность Боба, если он этого не хочет, это не нарушит при условии, что Алиса на это согласна. Потому что Алиса, например, может сказать: «Я бизнес. Я к любой своей транзакции хочу прикреплять свой сертификат KYC, например. И я требую от своих контрагентов того же». Контрагент может не согласиться — тогда транзакция не случится. Это очень зависит от конкретного сценария. Например, если теоретически кто-то переводит крупные суммы между двумя компаниями, то они обе должны будут предоставить о себе всю информацию с тем, чтобы каждый из них смог потом аудиторам её показать. Опять же, вся информация зашифрована и увидеть её может только тот, у кого есть ключ. Но понятно, что тут некая информация раскрывается теперь. Если речь идет о мелкой транзакции, когда я покупаю кофе, то тогда возможно  от меня не будет требоваться никакой идентификации. И, соответственно, эта Алиса, которая от меня получила 2 бима за чашку кофе, она соглашается у меня их принять без того, чтобы я какую-то информацию о себе раскрываю. И там будет много сценариев. То есть, мы сейчас только начинаем работать над этой функциональностью. Там будет много сценариев и в каждом сценарии пользователь сможет выбирать — он хочет какую-то информацию от другой стороны или не хочет? Хочет он выдать квитанцию, например, или не хочет? Требует ли он прикрепления договора или инвойса со стороны получателя. И здесь как раз вот этот протокол MimbleWimble, в котором две стороны должны договориться, он очень здорово работает, потому что нам в любом случае надо договориться для создания транзакции. То есть, надо поговорить двум кошелькам. А здесь они могут обсудить ещё всякие дополнительные вопросы: А какая документация требуется? Хочу ли я иметь возможность раскрывать информацию или нет?

Но при этом сценарий, когда Алиса продает Бобу чашку кофе, Алиса при этом предоставляет отчетность в налоговую, а про Боба неизвестно ничего — он тоже возможен?

Да, технически он возможен. Тут нужно понимать — тут есть вопросы технические, есть вопросы регуляторные: «Что, собственно, регулятор на это скажет?» Технически это однозначно возможно. И, конечно, возможно технически, когда Алиса переводит Бобу, как сегодня, какие-то средства и никто про это вообще не имеет возможности узнать.

У меня такое есть не то что возражение, но я тут поиграю немного в адвоката дьявола. Возможен ли такой сценарий, когда хотя auditability,  она техногически имплементирована, как opt-in, по факту все крупные игроки, все биржи, все магазины, которые принимают Beam, к ним постучались регуляторы, регуляторы сказали: «Требуйте отчетность от вашиз контрагентов, требуйте KYC». И хотя технически можно сделать поиск конфиденциальной транзакции, по факту, если я что-то собираюсь реальное купить, мне нужно всё равно давать паспорт, проходить KYC и т.д. Не получится ли так, что фактически anonymity set людей, которые хотят остаться полностью конфиденциальными станет настолько маленьким, что смысл системы пропадет?

Теоретически, наверное, это возможно, но тут смотрите, как штука получается —    ведь то, что вы сказали с регулятором — это может произойти в любом случае. Они могут сказать: «Так, ребята, требуйте от всех KYC, от всех auditability. То есть, вообще мы запрещаем пользоваться в этих местах конфиденциальными валютами». Потому что я не представляю ситуацию, когда регулятор что-то такое скажет для Beam’a, но при этом скажет: «Monero и Grin пользуйтесь как хотите». Не логично. Соответственно, мы смотрим в то будущее, когда регуляция теоретически может очень усилиться. Не везде, в разных местах, но в разных странах это будет по-разному. Но в какой-то момент регулятор может потребовать вот именно того, что вы сказали. И, соответственно, транзакции с бизнесом могут требовать KYC в определенных случаях. Транзакции между частными людьми не будут требовать KYC в любом случае. То есть, это похоже на кэш, как сегодня с кэшем. Когда вы приносите крупную сумму в какую-то организацию, то вам нужно показать паспорт и объяснить, откуда вы эту сумму взяли. Если вы с друзьями играете в покер и платите им 100 долларов, получаете, то это ваше частное дело, никто не имеет никакой возможности в это соваться. 

Да, но здесь я предлагаю всё-таки ещё помнить, откуда мы все пришли и что прелесть криптовалюты и в том числе Beam’а как раз в том, что что бы не сказал регулятор, мы всё равно имеем возможность поступить по-своему. И в случае с Beam — об этом ещё никто и не узнает. 

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

 И потом, если он не согласен на конфиденциальность, он сможет её нарушить другими способами, а не через криптовалюту.

Тоже вариант на самом деле.

Давайте тогда ещё обсудим такой вопрос от Андрея Соболева: «Почему имплементация на C++, а не на Rust’е?» И я добавлю: или на каком-то другом языке?

У нас был такой консервативный более подход, потому что C++ — это всё-таки язык с очень длинной историей и с большим количество комбиляторов, очень-очень стабильный. Rust — это вещь достаточно новая, язык очень интересный и во многом прогрессивный, но мы решили более консервативный подход здесь взять и использовать что-то, что уже десятками лет себя зарекомендовало. В Rust’е пока не такое большое количество комбиляторов. У них сколько там? 10? У них иногда ещё находят баги. То есть, мы решили пойти по более протоленой дороге в этом смысле и команда наша гораздо лучше знает С++, имеет в нем большой опыт. То есть, эта комбинация сложилась и мы решили использовать С++. 

Как я прочитал в вашем роудмапе, у вас на осень 2019 года, то есть этого года, запланировано вебпортирование на Rust. Вот это имплементация ещё одного клиента или это переписывание существующего?

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

Очень хороший получился переход к следующему вопросу от слушателей. Тоже я агрегирую несколько реплик в чате от наших слушателей Герш и Никиты. Как развивается сообщество разработчиков вокруг Beam? И можешь ли привести какие-то примеры самых интересных или многообещающих проектов, которые созданы вокруг Beam, но не аффилированы напрямую с компанией?

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

Давайте тогда, плавно двигаясь к завершению, пообсуждаем ваши ближайшие планы. И вот один из аспектов, которые я только что упомянул — это atomic swaps с Биткоином и другими криптовалютами. Хочется техничеких подробностей, опять-таки, как это устроено со стороны Биткоина и со стороны Beam? Должен ли Биткоин вообще знать, что какой-то Beam пытается с ним atomic swaps сделать? 

В ходе Биткоина мы никаких изменений не делали, понятно. То есть, это используются примитивы Биткоина и Beam’а. И эти две транзакции, которые связаны между собой и одна не может произойти без другой. Вот это, опять же, на моем техническом уровне то, что я могу вам сказать. 

По сути, те же самые хэшлоки запираем на одну и ту же хэшвену?

Да, используются хэшлоки.

Ещё один аспект вашего будущего развития, как я вижу из roadmap, который крайне меня интересует — это 2nd layer. Вот можешь рассказать побольше про имплементацию Лайтнинга? Или корректно ли будет назвать Лайтнингом то, что вы собираетесь реализовывать? Как вы смотрите на 2nd layer? И что здесь возможно для Beam?

Возможно практически всё то же самое, что возможно для Биткоина. То есть, Лайтнинг мы уже опубликовали разработку то, что мы делали proof of concept. Для начала мы сделали канал просто payment channel между двумя.. В Лайтнинге же есть две части. Есть часть быстрого перевода денег оффчейн между двумя кошельками — это одна часть, которая тоже требует поддержки разных криптографических примитивов между кошельками. И есть часть раутинга. То есть, как мне заплатить человеку, который находится на другом континенте через несколько шагов? И эта проблема на самом деле очень сложная, потому что там нужно, чтобы на каждом шаге было залочено достаточное количество денег, чтобы я мог его послать. Мы начинаем сейчас с первой части, когда можно будет между двумя кошельками просто мгновенно посылать деньги — открыть канал и посылать туда сюда деньги, а потом в какой-то момент его закрыть точно так же, как в Биткоине. Раутинг — это следующая часть, мы ещё посмотрим его сами или с кем-нибудь запартнеримся для этого. Но в общем случае это достаточно тяжелая проблема — построить такую децентрализованную сеть, где можно перевести тысячу способов, тысячу разных маршрутов деньги от одного кошелька к другому по всему миру — это сложно. То есть, будет много крупных банков или организаций, которые будут держать эти лайтнинг хабы и к которым все будут подключаться, и которые между собой будут тоже подключаться. Что-то похожее на архитектуру ASP, когда каждый подключается к своему ASP, а они между собой связаны толстыми каналами. Я думаю, что в итоге это будет так, потому что полностью децентрализованность там сложно представить. Но мы считаем, что это важная, интересная тема, очень про неё много идет разговоров сейчас в мире, и мы считаем, что Beam тоже должен там быть. 

Да, вот у нас следующий вопрос от слушателя Евгения Ткачука: «Кого вы видите своими пользователями? На какие рынки ориентируетесь?» Я так понимаю, это в первую очередь бизнес, если мы говорим про конфиденциальности и auditability? 

Смотрите, на самом деле у меня ответ на это — всех, мы видим пользователями всех, потому что мы считаем, что  мы считаем, что для любой финансовой деятельности нужна конфиденциальность — это совершенно понятно. То есть, для любого перевода конфиденциальность желательна. На сегодняшний день наши пользователи — это, наверное, люди, которые больше понимают необходимость конфиденциальности, это люди, которым это важно. Пока знания в этой области растут, но огромное количество людей ещё с большим удовольствием пользуются Фэйсбуком и открывают всю свою информацию на весь мир и совершенно их это не беспокоит. Такие люди попозже к нам придут, когда у них начнутся проблемы из-за отсутствия конфиденциальности. Соответственно, вот эти наши пользователи, также бизнесы, которые в этой области — например, VPN’ы. Уже достаточно много VPN’ов начали принимать Beam, и мы работаем с ними, чтоб больше и больше этого было. То есть, вот этот сегмент сегодня, но в будущем мы хотим вырасти совершенно на всех и да, прийти к бизнесу и показать, что единственно возможная вообще криптовалюта, которую они могут использовать по-настоящему — это криптовалюта, в которой есть и конфиденциальность, и возможности аудита.

Давайте, наверное, перейдем к заключительному блоку вопросов, который у нас заготовлен про Beam, как компанию. Для начала я хочу спросить, какая была мотивация выбрать именно формат компании, стартапа, а не, например, фаундейшн? И как организация разработки Beam можно, например, сравнить с ZCash, где есть две сущности — Electric Coin Company и Foundation?

Да, отличный вопрос. На самом деле, мы сейчас как раз находимся в процессе создания фаундейшена. И с самого начала была идея, что компания привлечет инвестиции и начнет разработку проекта, что собственно и произошло. В какой-то момент, — и этот момент сейчас наступает, — создается фаундейшн, который non profit, который получается часть founder’s reward из блокчейна автоматически, и который использует эти средства для продолжения разработки. С помощью компании или без помощи компании, там посмотрим какая будет ситуация, но фаундейшн — это отдельная организация, не связанная с компанией и вообще с другими людьми в руководстве. И фаундейшн как раз в долгосрочной или среднесрочной перспективе возьмет на себя дальнейшую разработку проекта. То есть, он будет в какой-то момент уже строить свой roadmap, выдавать баунти разработчикам, либо он может так же работать с компанией и просить у компании сделать что-то, но это будут две отдельных сущности. На самом деле, во многом похожи на ZCash в этом смысле.

Если говорить про фаундейшн, я правильно понимаю, что это как раз тот самый Beam Sovereign Money Foundation, упомянутый в roadmap?

Да.

Вот если говорить про него, то достаточно ли у вас большое и вовлеченное сообщество, чтобы сформировать этот foundation, чтобы он не копировал полностью людей из компании?

Ну, foundation уже с самого начала будет состоять не только из людей из компании Beam, у foundation будет Совет директоров, в который не будет или минимально будет проходит может быть 1, связанный с компанией Beam. А по поводу разработчиков — это, как я упомянул, мы сейчас начинаем развивать девелопер комьюнити. И это будет задача foundation одна из основных — создать этот централизованный комьюнити разработчиков, которые будут продолжать делать контрибьюшн проект.

Я бы ещё хотел спросить про компанию и её финансирование, скажем так. На текущий момент, правильно ли я понимаю, что есть два источника денег для компании? С одной стороны — это обычные традиционные инвестиции, VC, а с другой стороны — это что-то похожее на founder reward из Zcash? Автоматическая награда из блока? Так ли это? 

В общем да. В общем, да, это так.

Как-то можешь подробней рассказать, как устроен механизм founder reward? И сколько процентов награды вы сейчас получаете?  И как это число будет меняться в будущем?

Founder reward устроен следующим образом — 20% от всего намайненного идет в трежери, вот в этот фонд, из которого примерно 35% идет инвесторам, которые вложили деньги, 45% идет команде и советникам, всем кто работает над проектов. И оставшиеся 20% идут в фондейшн.

Правильно ли я понимаю, что такая модель монетизации подразумевает всё-таки рост курса?

Скажем так, при росте курса она работает лучше, да. Подразумевает в каком смысле? У фондейшена, например, есть какое-то количество монет Beam. Если эта монета Beam стоит 1 доллар 40 -это очень хорошая сумма, но если она будет стоить 10 долларов, сумма будет гораздо лучше. Соответственно, можно будет гораздо больше всего сделать.

Подразумевает в том смысле, что инвесторы и фаундеры рассчитывали на то, что курс будет до какого-то по крайней мере предела расти.

Я бы не сказал, что он будет выше какого-то минимума. Курс будет расти, конечно. Это понятно, что если курс не растет, то это финансово мне не интересно. 

И я так понимаю, что именно для этих целей или может быть по каким-то ещё причинам у вас ограниченная миссия, как в биткоине? Я, кстати, как сторонник концепции hard money это очень поддерживаю. 

Думаю, что да.  Скажем так, я бы не сказал, что ограниченная миссия у нас потому, что мы хотели для наших инвесторов.. Это не связано с founder reward, скажем так. Мы просто считаем, что более правильно — это ограниченная ремиссия, что более понятно на сегодня рынку криптовалюты и это более правильно с точки зрения hard money, поэтому это сделали так. Соответственно, наверное, из-за этого также модель трежери, они может быть чуть более привлекательной.

Да. И ещё такой вопрос. Как устроены сейчас governance разработки? Вот есть компания Beam — вы внутри себя принимаете, как разработчики, какие-то решения и их имплементируете. А как потом майнеры принимают или не принимают эти решения? Что будет, если им не понравится обновление?

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

А вы получаете от майнеров какую-то обратную связь? 

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

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

В Израиле во многих областях очень много всего происходит. В Израиле очень много блокчейн проектов. Здесь тоже интерес к Биткоину появился очень рано, и тут есть Посольство Биткоина. И очень много блокчейн проектов в разных областях разного качества. Из таких интересных — может быть, StarkWare, например, который один из основателей  ZCash делает. Daglabs, которые как раз делают даг систему. Кедит — очень интересная компания, которая делает ZK, Zero Knowledge всякие решения для энтерпрайз. Есть такие популярные проекты, как Bancor, например. Colu, Coti. В общем, проектов очень-очень много, много народу этим интересуется. Здесь очень активное комьюнити и разработчиков, и представителей бизнеса. При том, что государство пока не так уж открыто к блокчейну, но в принципе это вполне законно и тут даже есть пара бирж, где можно купить или продать Биткоин, но эта часть пока меньше развита. И регуляция пока здесь не очень понятная по поводу биткоина. Действительно, очень много интересных проектов, очень много талантливых людей, которые в эту область пришли и стали ей заниматься.

Здорово. Я думаю, что у нас закончились заготовленные вопросы. Если какие-то ещё есть темы, которые хочется обсудить, то давай их обсудим. Какие-то, может, рекламы, объявления, предложения?

Я просто могу сказать, что я всем рекомендую скачать себе кошелек Beam, каким-то образом приобрести или наш комьюнити фосет попросить, получить там какие-то монетки, поиграть с ними. Попробуйте обязательно наши мобильные кошельки на IOS и Андроиде, прекрасные, очень удобные и красивые. И я всем очень рекомендую думать о своей конфиденциальности, когда мы что-то делаем в интернете с криптовалютой, с валютой или вообще с чем бы то ни было. Надо всегда думать о том, кто на это смотрит сейчас и кто на это сможет посмотреть в будущем, и что может из этого выйти. Понимать цену конфиденциальности и стремиться к ней всеми возможными способами. 

Отлично. Спасибо большое.

Да, спасибо. Очень интересный получился разговор у нас. 

И на этом мы завершаем наш выпуск. Это был подкаст Базовый Блок. У нас быд в гостях Александр Зайдельсон из его компании Beam. И с нами был Иван Иваницкий.

И я Сергей Тихомиров.

Подписывайтесь на наш подкаст, рассказывайте, ставьте лайки, шеры, ретвиты. У нас есть сайт basicblockradio.com, где все наши выпуски и все наши шоуноты можно скачать и посмотреть.  Также basicblockradio — наш handle во всех социальных сетях. Кроме того, у нас есть Patreon и мы будем крайне вам благодарны, если вы подпишитесь на пожертвования. Таким образом мы сможем делать подкаст лучше. Напоминаю, что у нас есть акция с конференцией TerraCrypto и в шоунотах будет ссылка, как получить бесплатные билеты или билеты со скидкой на конференцию о майнинге, которая пройдет 25 июля в Москве. На этом мы завершаем наш выпуск. Спасибо за внимание и всем пока.

Спасибо. Всем до свидания.

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