Logo

Умные контракты, блокчейн и бетховены

Друзья, все чаще в новостях мы встречаем слова: криптовалюта, блокчейн, смарт-контракты, биткоин, NFT.  Илон Маск собирается продавать товары за догикоин. Дети продают рисунки в виде невзаимозаменяемых токенов. Майкрософт создает виртуальные офисные пространства. Сальвадор строит крипто-город. В Украине готовят закон о виртуальных активах. Компании всё больше интересуются возможностью продажи товаров за криптовалюту, а их сотрудники — инвестициями и трейдингом криптой. Современный мир на всех парах несется к веб 3.0 и метавселенным.

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

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

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

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

Структура статьи будет такой:

  • История
  • Технология блокчейн
  • Майнинг
  • Транзакции и адреса
  • Мультиподпись
  • Кошельки
  • Покупка и отправка биткоинов
  • Миксинг
  • Финансовый учет
  • Налоги
  • Управленческий учет

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

В современном мире существуют десятки разных блокчейнов и тысячи криптовалют, но для простоты я буду опираться только на первенца и лидера — Биткойн. Разобравшись в принципах работы первого блокчейна вам не составит труда понять любой другой. Ну что, друзья, берите попкорн и нырнем в этот крипто-океан новых знаний!

История

Идеи цифровых и независимых от центральных банков денег возникали еще задолго до появления Биткоина. Система DigiCash, была разработана нидерландским программистом Дэвидом Чаумом в далеком 1990 году. В 1998 году она  объявила о своем банкротстве — люди еще не были готовы к цифровой валюте. В том же 1998 году американский ученый в области информатики и криптографии Ник Сабо разрабатывает алгоритм децентрализованной цифровой валюты под названием Bit Gold.

Ник Сабо удивительный человек — он написал сотни статей на тему экономики, денег и права. Вы можете почитать его блог.  В девяностых он описал идею “смарт — контрактов”, которая через пару десятков лет легла в основу блокчейна Etherium. А в 2008, незадолго то появления Биткоина, Ник Сабо написал, что хотел бы создать собственную валюту.

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

В январе 2009 года было создано первое программное обеспечение Биткойн и к разработке подключился американский криптоактивист и программист Гарольд Томас Финни. Хэл Финни был первым человеком, которому Сатоши Накамото отправил биткоин. Они с Сатоши плотненько переписывались и Финни помогал пофиксить баги в программном коде Биткоина. Сатоши Накамото отдал Биткоину три года, а потом передал проект программисту Гэвину Андерсену, который сейчас является главным научным сотрудником благотворительного фонда Bitcoin Fundation.

Личность самого Сатоши Накамото до сих пор не раскрыта. В своем экаунте Сатоши указал, что родился 5 апреля 1975 года в Японии. Однако от японца в нем совсем ничего: лингвистический анализ статей и сообщений Сатоши указывают на то, что английский — его родной язык. Некоторые думают, что в дате рождения зашит секрет: мол 5 апреля 1933 года Рузвельт своим указом запретил накапливать золото. Ну а если углубится дальше в нумерологию, то 1975 — 1933 = 42. А 42, как знают все любители фантастики — это ответ на главный вопрос жизни 🙂

Скрывается ли под ником Сатоши Накамото один человек или это группа людей до сих пор никто не знает. Это может быть Ник Сабо, Хэл Финни, Девид Клейман, Крэйг Райт. А может это вообще разработка, которая пролилась из лабораторий ЦРУ, как в 2019 COVID вырвался из Уханьских казематов. Журналисты ищут, но не могут найти автора Биткоина. 

Возможно под этим ником скрывается Пол Солотоши Калдер Ле Ру — глава криминального картеля, торговец оружием, информатор DEA и программист, создавший в 1999 программу E4M для шифрования дисков. Предполагают, что Пол является одним из создателей шифровальщика Truecrypt. Последнее сообщение от Сатоши Накамото было в 2011 году, в котором он пишет, что должен заняться другими делами. Говорят именно в это время Пол решил полностью переключиться с программирования на свои криминальные делишки. С 2012 года Пол отбывает наказание в американской тюрьме, возможно это объясняет то, что намайненные в самом начале биткоины так никуда и не потрачены. 

Солотоши

Неизвестно станет ли криптотайна криптоявью и человечество в итоге узнает, кто же на самом деле такой Сатоши Накамото. Один мой друг говорит, что по задумке, по масштабу, так сказать, мышления, автором Биткоина вполне может оказаться Илон Маск. Как бы там ни было, но Сатоши — один из самых богатых людей мира, ведь на его кошельках до сих пор хранится порядка 1 миллиона биткоинов.

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

Технология блокчейн

Представьте себе книгу, которую вы с интересом читаете. Каждая страница такой книги пронумерована: после первой страницы идет вторая, третья, четвертая и т.д. Вот эта книга и есть блокчейн, а страница — блок. Каждая страница идет за предыдущей, создавая неразрывную цепочку. 

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

Блокчейн — это одноранговая распределенная сеть. 

Слово “одноранговая” означает, что нет вышестоящего органа, регулирующего процесс. В блокчейне отсутствует какой-то центробанк, который бы контролировал, что вы перечисляете деньги со своего счета на счет получателя. Этот контроль от банка нужен для решение так называемой проблемы “двойной траты”. Когда вы пытаетесь отправить одни и те же деньги сразу двум получателям, банк не позволит вам этого сделать: либо напишет денег нет, либо загонит вас в платный овердрафт. Блокчейн же решает проблему двойной траты простым способом — сеть проставляет отметки времени на транзакции и та транзакция, которая записана раньше принимается сетью Биткоин как истинная. 

Слово “распределенная” означает, что блокчейн существует одновременно на множестве компьютеров — участников сети. Эта распределенность создает саморегулирующуюся организацию, где миллионы несвязанных людей гарантируют консенсус — единую истину. Тут сразу вопрос: а можно ли как-то подделать такую распределенную сеть? Теоретически да — для этого надо закупить столько же компьютеров, сколько находится в сети блокчейн, то есть сделать так, чтобы большинство участников сети были, так сказать, ваши. Экономически это не под силу даже преподобному Илону Маску.  

Блокчейн — это такой многоликий беспристрастный нотариус, который подтверждает какой-то факт в конкретный момент времени. Чем больше “ликов” (участников) у такого нотариуса, тем более устойчив блокчейн к риску взлома.

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

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

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

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

В блокчейне Биткойн используется два алгоритма хэширования: ripemd-160 и sha-256. Если захотите вручную потестировать разные хэши — кликайте по ссылке.  

Поскольку каждый блок хэшируется, при замене любой информации в нём хэш получится уже другой. Если страницы в книге связаны возрастающим порядковым номером: 1, 2, 3, и т.д., то в блокчейне блоки связаны ссылкой на хэш предыдущего блока. Заменить какую-то ранню страницу (блок) не выйдет — его хэш поменяется и придется переписывать все последующие страницы.  Другой хэш означает, что цепочка разрывается, а протокол Биткоина этого не допускает. Вот так достигается неразрывность цепочки:

блокчейн

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

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

Майнинг

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

Майниг — это подбор правильного хэша для блока, который пытаются осуществить майнеры (узлы сети). Если правильный хэш найден, то блок записывается в блокчейн (считается добытым), цепочка удлиняется, а майнеры начинают искать следующий блок. За добытый блок майнер получает конкретное количество криптовалюты. Таким образом происходит эмиссия биткоина. 

Здесь небольшая загадка: как вы думаете, сколько системных администраторов в компаниях тихонечко устанавливают майнинг на корпоративные сервера в надежде намайнить дополнительные биткоины к своей зарплате? 🙂

Теперь разберемся, что же такого делают майнеры (узлы сети), чтобы “добывать” блоки.
Каждый биткоин-блок состоит из заголовка, ссылки на хэш предыдущего блока, временной метки, списка транзакций, включенных в этот блок, и служебного поля
nonce.

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

Таким образом перебирая и подставляя разные значения в поле nonce и проводя хэширование блока мы в итоге найдем хэш, у которого в строке будет нужное количество нулей. Напомню, что в алгоритме хэширования SHA-256 найти хэш строку, которая бы полностью отвечала заданной невозможно — на это потребуются миллиарды лет. Поэтому майнеры перебирают миллионы вариантов, чтобы хэш-строка только частью была похожа на заданную, то есть содержала необходимое количество нулей. Вот пример найденного блока: 

block hash

Можно подумать, что стоит докупить вычислительной мощности и нужный хэш блока можно будет найти быстрее. То есть количество заработанных (эмитированных) биткоинов можно резко увеличить? Нет!

Протокол биткоина написан так, что сеть измеряет мощность всех подключенных узлов (так называемое значение хеш-рейт) и автоматически меняет правила: если мощность сети возросла, то количество нулей, которые должны быть в хэше, увеличивается. А значит и добыть блок — найти хэш, в котором будет необходимое количество нулей, становится сложнее. Если мощность сети упала — количество нулей сокращается и добыть блок становится проще. 

Такая ребалансировка проводится автоматически каждые две недели. Сатоши написал этот алгоритм так, чтобы каждый блок биткоина в среднем добывался за 10 минут. Это так называемый механизм “proof of work” — доказательство проделанной работы. Для того, чтобы блок был добыт, то есть найдена хэш-строка от этого блока, содержащая нужное количество нулей, майнерам необходимо затратить огромное количество работы на перебор (вычисление) хэшей. 

Кроме того Сатоши задумал еще такое понятие как халвинг. Халвинг — это двукратное уменьшение награды за биткоин, которое проводится каждые 4 года. Таким образом эмиссия биткоина уменьшается, а его добыча становится более затратной. За первые блоки была награда в 50 биткоинов, а сейчас майнеры получают по 6,25 биткоина за добытый блок. Следующий халвинг будет на блоке 840’000 в 2024 году. 

Эмиссия биткоина ограничена 21 миллионом биткоинов. На сегодняшний день добыто уже 90% всех биточков. Эксперты посчитали, что последняя монета будет добыта к 2140 году. Но и после добычи последнего битка майнеры не отключатся от сети, так как за добытый блок они получают вознаграждение в двух видах: 6,25 биткоинов новой эмиссии и сумму комиссий с каждой транзакции, включенной в добытый блок.

Так что беспокоится о судьбе майнеров в такой отдаленной перспективе не стоит, ведь задолго до этого времени Sycamore от Гугл подумает “эти кожаные мешки только портят планету” и ТеслаБоты возвратят Землю в первозданное состояние 🙂 

Транзакции и адреса

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

Транзакция — это перезапись существующих биткоинов в блокчейне с одного владельца на другого.

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

Транзакция всегда осуществляется в той сумме, которую вы ранее от кого-то получили. Это важный нюанс! Если я вам отправил 10 биткоинов, а вы хотите кому-то отправить 6, то на самом деле вы отправите все 10 полученных от меня биткоинов: 6 вашему получателю, а 4 обратно себе как сдачу. Таким образом при оплате каждая транзакция всегда тратится в ноль. Нет остатков, нет промежуточных значений — либо биткоины с конкретной транзакции все потрачены, либо не потрачены. 

Я тут везде пишу про целые биткоины, но не упомянул про дробные части. Биткоины делятся на сатоши. В одном биткоине содержится 100 миллионов сатоши. Когда один биткоин будет торговаться по цене 1 миллион долларов за монету, один цент будет равен одному сатоши 🙂

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

Каждая сумма биткоинов, которые на вас перечислили называется вход (input), а те, что вы перечислили, называются выходом (output). Транзакция может иметь несколько входов и несколько выходов. Допустим вам нужно из 10, полученных от друга и жены, биткоинов, перечислить за товар 8 битков. В этом случае транзакция будет иметь 2 входа и 2 выхода:

  • 7 поступивших ранее от друга биткоинов (полностью включаются в транзакцию);
  • 3 поступивших ранее от жены битка (полностью включаются в транзакцию);
  • 8 битков перечисляются магазину за товар;
  • 2 биткоина возвращаются на ваш адрес в виде сдачи. 

Теперь уже пора рассказать про адреса биткоина. 

Адрес биткоина — это как номер вашего банковского счета.
Но если номер счета вам присваивает банк, то кто же предоставляет адреса биткоина? Ответ: математика! 

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

Биткоин адрес — это захэшированный двойным способом ваш публичный ключ с дополнительными контрольными полями. Получение биткоин-адреса из публичного ключа ключа можно увидеть на вот этой картинке:

botcoin address

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

Что же такое публичный ключ из которого хэшированием получается биткоин адрес?
Публичный ключ, в свою очередь, это один из пары ключей, созданных с помощью ассиметричного шифрования по алгоритму на эллиптических кривых (ECDSA — elliptic curve digital signature algorithm). Биткоин для своей работы использует кривую secp256k1.

У эллиптических кривых есть конкретные свойства, которые собственно и позволяют их использовать в криптографии, но, чтобы не было как на картинке, я не буду углубляться дальше в этот математический бесконечный и дремучий лес 🙂 

зайцы

  На этом этапе нам просто достаточно знать несколько моментов:

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

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

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

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

Для того, чтобы посмотреть сеть биткоин существуют множество сервисов, которые называются блокчейн-эксплореры. Есть более или менее удобные, тут дело привычки. Я пользуюсь сервисом https://www.blockchain.com/explorerОн удобен и можно просматривать информацию из нескольких блокчейнов, а не только в сети Биткоин.

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

транзакции

Технически это происходит так: 

  • Вы указываете свой биткоин адрес, на котором есть битки, адрес получателя, свой адрес для сдачи.
  • Подписываете транзакцию своим приватным ключом. 
  • Транслируете транзакцию в сеть.
  • Майнеры (узлы сети) проверяют эту транзакцию и, вместе с другими транзакциями, влючают ее в блок. В каждом блоке содержится порядка 3000 транзакций.
  • Блок “добывается” — находится хэш блока с нужным количеством нулей — транзакция считается подтвержденной.  

Мне была интересна технология проверки — то есть, а как сеть Биткоин понимает, что это именно вы, а не какой-то воришка пытается приделать ноги вашим биткам?

Смотрите, когда вы хотите передать полученные ранее биткоины кому-то дальше, то подписываете транзакцию своим приватным ключом, вкладываете свой публичный ключ и транслирует транзакцию в сеть. Протокол биткоина возьмет присланный вами публичный ключ, захэширует его и превратит в адрес биткоина. Далее протокол сравнивает два биткоин адреса: 

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

Если адреса равны, значит все хорошо — вы пытаетесь потратить битки с того адреса, на который ранее кто-то их заплатил.

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

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

Визуально разблокировку транзакции с помощью языка сценариев (коротких команд, написанных на внутреннем Scrypt Биткоина) можно отразить таким способом:проверка транзакции

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

Поэтому, никогда не теряйте свой приватный ключ!

Ведь в Биткоине нет какого-то чата Монобанка или отделения Привата, где по вашему недовольному фейсу вам восстановят доступ к счету. Если вы потеряли приватный ключ, то восстановить его можно только перебором. А перебирать ключи, построенные на алгоритме EСDSA придется очень долго, ведь их количество больше, чем атомов во Вселенной.
Придется ждать пару миллиардов лет… 

Ждун

Также расскажу вам про так называемые vanity-адреса Биткойн.
Это такие адреса, где перед буквенно-циферной абракадаброй красуется ваше имя или название вашей компании. Что-то типа такого: 1KOSTYAqpGw2pNijzfnKcbCG4z3hnrVA.
Мой совет: не делайте такого.
Vanity переводится с английского, как тщеславие. А тщеславие в православии — один из смертных грехов — Аллах за такое по голове не погладит.

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

Кроме того длинные ванити адреса (которые имеют вначале много букв) требуют денег — вам за бесплатно никто их не сделает. Ведь надо  перебором: создать приватный ключ, из него публичный, потом хэшировать, далее смотреть получился ли биткоин адрес с нужными буквами, и если нет, то «Миша, давай по новой». Это тот же майнинг по сути, который стоит ресурсов и денег.

Ванити адрес — это как именной номер на авто — дорого, безвкусно и небезопасно. 

Друзья, поскольку мы тут говорим про транзакции, то наверное надо вспомнить про комиссии. Комиссия за транзакцию — важная составляющая работы блокчейна. С одной стороны, она поощряет людей становится узлами сети (нодами) таким образом расширяя блокчейн. С другой стороны, платность транзакций защищает сеть от спама. 

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

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

Комиссию всегда платит отправитель. Невозможно, как в SWIFT поставить BEN или SHA и ждать, что комиссию банк разделит — в биткойне комисси это всегда OUR, если говорить терминами свифта. Но это незначительный минус, по сравнению с плюсами скорости и простоты.

Представьте, что вам нужно перебросить 100’000 эскудо вашей бледнолицей подруге из славного города Прая. Через банк вы долго будете объяснять финмониторингу что связывает вас с коренной жительницей Кабо-Верде. А с помощью блокчейн вы сможете за каких-то десять минут угостить свою подругу биточками, которые она у себя уже сможет поменять на эскудо. 

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

Дело в том, что на этом этапе плательщик может создать вторую транзакцию с такими же параметрами, но уже не на ваш адрес, а на какой-то свой и “перебить” транзакцию бОльшей комиссией. Сеть увидит, что есть более выгодная транзакция и включит в блок её, а ту что была в вашу пользу проигнорирует. Поэтому, никогда не ориентируйтесь на неподтвержденную транзакцию с незнакомыми людьми — биткоин вам не банк и не Payoneer — висящая в вашем кошельке транзакция еще не гарантирует, что битки вам зайдут.   

Как только блок, в который включена транзакция будет “добыт” статус её поменяется на “подтвержденная”. В этот момент можно уже считать, что битки ваши. Однако лучше получить еще несколько подтверждений — то есть подождать, пока намайнится еще парочку блоков. Для больших сумм считается достаточным наличие 6 подтверждений, то есть когда майнеры намайнят сверху еще 5 блоков. Поскольку один блок добывается за 10 минут, то для 99,9% гарантии лучше подождать часик. 

Ну и чисто для фана ловите интересную статистику — распределение битков по разным адресам:

Bitcoin Distribution

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

Мультиподпись

Друзья-финансисты, у вас может возникнуть вопрос: а возможно ли сделать так, чтобы транзакция биткоина проводилась только тогда, когда ее подписали несколько людей? По аналогии с первой и второй подписью при отправке платежек в банк. Например, у вас в компании есть казначей и бухгалтер и для отправки платежек в банк всегда требуется две подписи. Да, такой механизм есть и он называется мультиподпись (multisignature). В Биткойне мультиподписть появилась с 2012 года.

Мультиподпись — это схема, при которой для подтверждения надо S подписей от N участников. При этом указывается пороговое значение (вес), при котором транзакция считается действительной. То есть устанавливается количество подписантов, необходимых для подписания транзакции. Количество подписей и их вес указывается в схеме подписи при создании кошелька.  

В ситуации с бухгалтером и казначеем стоит выбрать схему 2 из 3, указывающую на то, что транзакция будет действительной при наложении двух подписей из трех. При этом одна подпись (приватный ключ) находится у казначея, вторая — у бухгалтера, а третья — у генерального директора. Таким образом, даже если бухгалтер уедет на Занзибар или тупо не захочет при увольнении отдавать свой приватный ключ, директор возьмет свой приватный ключ и вместе с казначеем без бухгалтера подпишут транзакцию. 

Кроме того, схему мультиподписи 2 из 3 можно использовать для двухфакторной перестраховки: например, на компьютер вы устанавливаете кошелек с одной подписью, на мобильный телефон с другой, а в банковской ячейке или на даче храните третий. В этом случае даже если смартфон или компьютер украдут, у вас все равно останется 2 подписи, с помощью которых вы сможете перевести биткоины.

Также схему 2 из 3 можно использовать среди бизнес-партнеров. Каждый из партнеров получает по подписи, а третью отдают нотариусу или смотрящему. При возникновении конфликта между партнерами, ни один из них без третьей подписи, которая у внешнего арбитра, не сможет перевести деньги. Тем не менее, если один из партнеров уедет на Занзибар, второй партнер сможет принести нотариусу “свидетельство отъезда” и вдвоем они смогут высвободить средства с биткоин-адреса. 

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

Ну вот, дорогой мой читатель, поскольку мы уже разобрались с теоретической основой технологии Биткоин, пора переходить к практической части — кошелькам.

Кошельки

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

Горячие кошельки — это биржа или сервис в интернете, где хранится ваш адрес биткоина (публичный ключ) и приватный ключ. Холодный кошелек — это место, где ключевая пара хранится вне доступа к интернету. В горячем кошельке ваши приватные ключи хранятся на стороне разработчика кошелька, в холодном — на вашем устройстве. Логично, что холодные кошельки более безопасны, так как находятся полностью под вашим контролем.

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

Вы можете создать бумажный кошелек (пару приватного и публичного ключа) вручную с карандашом и калькулятором, используя криптографический алгоритм на эллиптических кривых и хэширование. Но скорее всего вы будете данный адрес создавать с помощью какого-то доверенного сервиса, например www.bitaddress.org 

bitaddress

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

Когда вы сгенерируете новый биткоин-адрес, а потом зайдете в експлорер и укажете его в поиске, то вам покажет, что такой адрес есть и по нему было ноль транзакций. Это понятно, так как любой кошелек уже объективно существует в мире — как и любое число. Поэтому я не представляю, как США хотят контролировать некастодиальные (не биржевые) кошельки. 

Если же експлорер показал, что на таком созданном вами адресе были транзакции — бинго — вы Избранный 🙂 Из триллионов квинтиллионов вероятностей у вас совпало. Что ж, тогда смотрите на моральную составляющую. Вы можете воспользоваться битками, а можете и сжечь этот приватный ключ от греха подальше. Ведь владельцем скомпроментированного адреса может оказаться какой нибудь Sinaloa De Cartel и они будут искать того, кто увёл их деньги. Ну да это все теория — вероятность совпасть двум биткоин-адресам даже меньше, чем вероятность того, в Украине отменят РРО. Возвращаемся к реальным вещам. 

Кроме указанного bitaddress.org вы также можете воспользоваться сайтом coinb.in. Этому сервису уже десять лет — открытый проект под лицензией MIT. На этом сайте можно не только отдельный адрес создать, но и потренироваться с ручными транзакциями. 

Если говорить про аппартаные кошельки, то это устройства, в которых ключевые пары зашиты в крипто-чипы. Вся суть в том, что без апаратного кошелька провести транзакцию не удастся и никакие хакеры через интернет-вирусы не смогут с аппаратного кошелька украсть ваши ключи. Есть несколько давних известных брендов. Например, https://shop.ledger.com/, который почти 10 лет на рынке. Но на мой взгляд, аппаратный кошелек — это как чехол для айкоса — дорогой и ненужный гаджет.

Существует множество десктопных и мобильных кошельков — их десятки, если не сотни, например: Exodus, Electrum, Jaxx, Wasabi Wallet, Trust Wallet и конечно же оригинальный кошелек Bitcoin Core. Есть кошельки мультивалютные (то есть можно хранить в них монеты из разных блокчейнов — Etherium, Solana, Bitcoin), а есть кошельки только для битка.  

Смотрите, выбор кошелька — дело вкуса или привычки. Холодные кошельки (десктопные и мобильные) считаются более безопасными, чем горячие (ваши кошельки на биржах и интернет-сервисах). Общая рекомендация, которую я могу вам дать для выбора кошелька такая:

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

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

Для примера я скачал один кошелек Electrum с официального сайта, а второй кошелек создал на сервисе coinb.in.

Скачав кошель, назовите его на ваш вкус:

кошелек1

Далее, вас спросит какой именно кошелек вы хотите создать. Про мультиподпись я писал выше, а все остальное и так понятно (двуфакторка дает вам допзащиту, а импорт — возможность добавить бумажный кошелек). Мы выбираем стандарт.

кошелек2

На следующей картинке нам предлагают создать сид-фразу или восстановить кошелек из сид-фразы.

кошелек3

У вас не было раньше кошелька, поэтому кликаете “создать” и вот у вас на экране высвечивается:

кошелек4

Здесь я попробую больше пояснить, что это за фраза, зачем она и насколько важна.

Транзакции в Биткойн не анонимны, так как по любому адресу за любой период можно легко посмотреть все операции. А значит, если вы перечислили на адрес какого-то магазина свои битки, то вы сможете увидеть: сколько еще кто-то перечислял туда монет, когда и в каких объемах были траты с такого адреса магазина. 

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

С 2011 года разработчики Биткоина думали над тем как решить эту проблему. В итоге появились BIP32, BIP39, BIP44 и BIP49 — протоколы по улучшению Биткойна (BIP — Bitcoin Improvement Proposal). Эти БИПы объединяются общим названием HD Wallet.  

HD Wallet — это иерархически детерменированный кошелек (Hierarchical Deterministic Wallet).

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

HD wallet

Не будем копать в глубину — кто захочет, сможет нырнуть в статью на Хабре и покопать дно криптографического океана. А нам же достаточно будет знать, что seed-фраза, она также называется “мнемоническая фраза” — это закодированный мастер-ключ из которого разворачиваются все связанные дочерние ключи. Соответственно, зная сид-фразу, которой зашифрован мастер-ключ, вы получаете доступ ко всем дочерним ключам.

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

Таким образом мнемоническая фраза этот тот «пароль» без которого вы не получите доступ к вашим адресам (ключам). Потеряв компьютер, мобильный или аппаратный кошелек вы всегда сможете восстановитить доступ к кошельку (скачав или купив новый) с помощью seed-фразы. Первым мнемоническую фразу в 2011 году стал использовать кошелек Electrum.  

Не храните мнемоническую фразу в текстовых файлах на компьютере или в интернете, не копируйте ее через буфер обмена, так как есть специальные вирусы-перехватчики, которые знают словарь bip39 и понимают, что вы записали/скопировали именно сид-фразу. 

Для дополнительной защиты, при записи seed на бумагу, вы можете заменить, например, второе слово из фразы на следующее за ним в словаре. Когда придется восстанавливать кошелек главное не забыть этот секрет, иначе не сможете получить ключи 🙂 

Для безопасности я порекомендую вам следующее:

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

Кошельки сами вам сгенерируют сид-фразу, но если вы захотите поиграться и потестировать фразы — можете зайти на этот сайт

Покупка и отправка биткоинов

Итак, я создал кошелек Electrum, но он пустой и теперь надо откуда-то взять бетховены.

Большинство людей покупают криптовалюту на бирже или обменнике. Наверное это самый безопасный способ, если выбрать правильную биржу. Список более-менее доверенных бирж можно посмотреть на сайте Биткоина. Там указана и украинская биржа со смешным названием KUNA.

Друзья, можно конечно помогать украинским предпринимателям, зарегистрированным в Прибалтике и Британском оффшоре, но я бы рекомендовал воспользоваться какой-то большой международной биржей. Например, можно открыть свой счет на самой большой бирже мира Binance. Тем более Бинанс в январе назначил руководителя украинского офиса — киевлянина с «говорящей» фамилией Кирилл Хомяков 😉 

Я же, для простоты примера, не буду использовать биржу, а воспользуюсь украинским криптообменником coin24, который работает с 2018 года. Зарегистрировавшись на обменнике вам надо будет пройти идентификацию — сделать три фотки:

  • фото вашей банковской карты, с которой будете платить за крипту;
  • фото вашего симпатичного фейса рядом с карточкой;
  • фото вашей карты рядом с заявкой на покупку битка.

После идентификации можно покупать крипту. Для этого я беру любой адрес из своего кошелька Electrum и указываю его в соответсткующем поле на сайте обменника:

Coin24_1

За свою работу криптообменник берет комиссию — порядка 2%.

Далее я вижу, что криптообменник отправил 0,004 биткоина на мой адрес:

Coin24_2

Я могу проверить с помощью эксплорера и кошелька действительно ли мне битки идут:

Coin24_3

Как вы можете видеть на картинке, данная транзакция еще не подтверждена. То есть она появилась в сети и майнеры ее видят, но блок еще не добыт.

Вы также можете заметить, что кроме моего адреса там фигурирует еще какое-то множество адресов на общий объем 11 биткоинов (почти 400К долларов). Это деньги, к сожалению, не мои 🙂 Просто обменник объединяет в одну транзакцию множество близких по времени операций обмена, чтобы экономить на комиссиях майнеров. Помните я писал, что в Биткоине одна транзакция может иметь много входов и выходов — это как раз такой пример.

Подождав некоторое время, я могу видеть, что транзакция, где указан мой адрес, подтверждена и включена в добытый блок №721619:   

Coin24_4

В принципе с этого момента деньги уже на моем адресе и никуда не денутся, но идеальным считается подождать пока над блоком 721619, в который включена моя транзакция, сверху намайнится еще пять блоков. Пока что в блокчейне «мой» блок самый крайний:

Coin24_5

 

Друзья, теперь пришло время узнать, а как же перечислить полученные биткоины на другой адрес. Для этого я воспользовался сервисом coinb.in, на котором создал второй кошелек. В своем кошельке Electrum, полученные от обменника монеты, я перечисляю в сумме 0.0005 биткоина на свой адрес кошелька coinb.in:

electrum to coinb.in

Как видите, Electrum взял следующий адрес из списка доступных адресов в кошельке и отправляет 0,003589 BTC мне же как сдачу. Это как раз та особенность о которой я писал выше — транзакция всегда тратится в ноль. Как вы можете заметить на скриншоте, комиссия за эту транзакцию составляет примерно $0,3. 

Далее, необходимо подтвердить операцию, подписать и разослать (отправить собственно «платежку» в сеть Биткойн):

Заходим в эксплорер и видим, что транзакция сетью принята и ожидает подтверждения (включения в добытый блок):

transaction

Транзакция имеет один вход с моего адреса и два выхода: на адрес в кошельке coinb.in в сумме 0,005 и на адрес в Electrum в виде сдачи 0,003589. Кошелек Electrum мне тоже показывает, что на адрес сдачи ожидаются биткоины с транзакции. При этом деление адресов на обычные и для сдачи (зеленые и желтые на картинке) условно — это полноправные, можно сказать одинаковые по свойствам, адреса:

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

Миксинг 

Друзья, раз вы уже дочитали до этого места, то и сами понимаете, что анонимность Биткоина существует ровно до того момента, пока ваш адрес (читай ваш псевдоним в блокчейне) не связали с вашей личностью. Специалисты компании Bitfury заявляют, что могут деанонимизировать около 20% владельцев биткоин-кошельков. А участники проекта CryptoLux вообще говорят, что 2/3 владельцев биткоин-операций можно вычислить. Поэтому, когда вы слышете про цифровой юань или крипто-гривну, особо не радуйтесь — информация о доходах и расходах каждого человека станет еще более прозрачна для Большого Брата 🙂 

Компании типа ChainAnalysis  могут вам платно предоставить сервис по анализу криптоопераций. А Crystal может вам визуализировать транзакции для интерактивного анализа даже в бесплатной версии:

Crystal

Как же сделать свои битки анонимными? 

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

Вторым способом анонимности будет покупка или продажа биткоинов за наличку. То есть вы привезли чемодан кэша человеку, а тот перевел битки на ваш свежий адрес. Ну или наоборот: кэш привезли вам, а вы расплатились битками.  

Самый неанонимный способ покупки/продажи битков — это биржи. Конечно, на заре крипто-эры биржи были анонимными. Однако современные биржи строго следуют KYC/AML процедурам и проводят идентификацию своих клиентов. Мало того, крупные биржи (Binance, Coinbase, Kraken) сами идут к госорганам и просят ввести регулирование. И это логично, ведь как только появится регулирование, криптовалюты прочно узаконятся, а значит и операции с криптой начнет использовать больше людей. А это, в свою очередь, принесет биржам больше клиентов и комиссий. Ничего криптоличного — джаст бизнес 🙂 

В отличии от Биткоина, в мире существуют и полностью анонимные валюты. Например, Monero. Монета использует немного другие инструменты криптографии (кольцевую подпись и одноразовые публичные ключи). Логика подсказывает, что обменяв свои битки на монеро, а потом обменяв монеро уже на другой свой адрес биткоина вы разорвете цепочку отслеживания. Этот способ называется chain hopping — прыжки между блокчейнами. Вангую, что в скором времени США (а значит и весь остальной мир) поступят так, как поступила Япония, которая просто запретила биржам проводить операции с анонимными монетами типа Monero, ZCash и Dash. 

Есть еще один способ анонимизации биткоин, который называется миксинг. 

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

Для миксинга существуют отдельные сервисы, например Криптомиксер или  Блендер. Кроме непосредственно смешивания, в миксинге используется также временной лаг. То есть, вы перечисляете на миксер свои битки, указываете адреса на которые вам надо вернуть монеты и ставите промежуток, например, 24 часа. Таким образом вы через сутки получите необходимую сумму на свои адреса, которая никак не связана с адресом отправки. За свои услуги сервис миксера берет комиссию, которая может доходить до 1,5% от суммы. 

Но, друзья, здесь вас также могут подстерегать определенные риски. Что, если в момент, когда ваши битки будут находится в «стиральной машинке» владельцы миксера просто исчезнут? Вот как год назад исчезли братья Амир и Рэйс Кейджи (основатели биржи Africrypt) прихватив клиентских 3,6 млрд долларов. Где потом искать свои бетховены? Ничего не поможет — останется лишь дудеть третью симфонию на флейте и двух кларнетах.  

На этом на сегодня, пожалуй, хватит…  

to be continued