Как работают криптовалюты на примере bitcoin
Перейти к содержимому

Как работают криптовалюты на примере bitcoin

  • автор:

Биткоин: Что, Как и Зачем

Если поинтересоваться у людей вокруг, слышали ли они что-нибудь о Биткоине, то наверняка каждый ответит: «о да, конечно». Уже несколько лет криптовалюты подгоняются под религиозные нормы, кто-то зарабатывает на них огромные деньги, а целые государства не знают, как относиться к новым технологиям.

Тем не менее что это, как это работает, и зачем оно всё нужно? Чем это лучше существующих платежных систем и причем тут видеокарты? Об этом и не только будет идти речь в данной статье.

Оглавление
  • Основная идея
  • Преимущества
  • Надежность
  • Курс криптовалюты
  • Законодательное регулирование
Основная идея

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

  1. Взял 50 денег у Саши
  2. Занял 8 денег Пете
  3. Занял 100 денег Васе
  4. Отдал 130 денег Маше
  5. Занял 36 денег Роме

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

В какой-то момент хитрый Вася пробирается в дневник Коли и заменяет запись «Занял 100 денег Васе» на «Купил гречки на 100 денег». И однажды Коля лезет в дневник, чтобы показать Васе запись о его долге, но с удивлением не находит соответствующей строчки. Дневник взломан. Коле своих денег не видать.

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

Такая последовательность называется хэшем, а md5sum — хэш-функцией.

Чтобы уж наверняка, Коля решает: «Я подкину работу злоумышленникам: буду хэшировать и текст новой записи, и хэш предыдущей.» То есть каждый новый хэш теперь связан с предшествующей записью! И куда без начального хэша (любой последовательности символов, например da7c8) для первой строки. Теперь таблица займов выглядит так:

  1. Взял 50 денег у Саши 69ab8
  2. Занял 8 денег Пете 27825
  3. Занял 100 денег Васе e709a
  4. Отдал 130 денег Маше fdb876
  5. Занял 36 денег Роме bd3d7

В первом пункте «69ab8» — хеш для начального хеша «da7c8» и записи «Взял 50 денег у Саши».

Во втором пункте «27825» — хеш для свежесформированного хеша «69ab8» и записи «Занял 8 денег Пете».

В третьем «e709a» — хеш для предыдущего хеша «27825» и текста данной строки «Занял 100 денег Васе».

И так далее аналогично.

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

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

  1. Взял 50 денег у Саши (210) 69a00
  2. Занял 8 денег Пете (172) ff800
  3. Занял 100 денег Васе (654) e7f00
  4. Отдал 130 денег Маше (323) a6c00
  5. Занял 36 денег Роме (901) bd300

В первом пункте «69a00» — хеш для начального хеша «da7c8» и записи «Взял 50 денег у Саши».

Во втором пункте «ff800» — хеш для свежесформированного хеша «69a00» и записи «Занял 8 денег Пете».

В третьем «e7f00» — хеш для предыдущего хеша «ff800» и текста данной строки «Занял 100 денег Васе».

Теперь нет необходимости прятать дневник, вся история публична, но изменить любую запись в ней слишком трудоемко для хакеров. Коля берет себе в напарники пять друзей, с которыми делится своим дневником. Для каждой новой записи они вместе начинают подбирать подходящий нонс, так быстрее. Тот, кто находит заветное число первым, вносит запись в дневник и получает за это небольшое вознаграждение. Чтобы угадавший получил награду, запись должна заканчиваться фразой «перевести X денег пользователю Y», где X — награда пользователю Y за подобранный нонс.

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

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

Несколько технических уточнений

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

Структура блока Биткоина

Биткоины могут быть переданы любому, кто сообщит корректный биткойн-адрес или открытый ключ. Для передачи Биткоинов текущий владелец создаёт новую транзакцию, которая, помимо указаний о количестве передаваемых Биткоинов, содержит подписанный инициатором хеш предыдущей транзакции, по которой биткойны были получены. Предыдущая транзакция становится «входом» текущей транзакции. Также указывается публичный ключ или биткойн-адрес нового получателя. Узлы сети, прежде чем принять транзакцию к обработке, проверяют подписи. Правильность подписи свидетельствует, что инициатор действительно является владельцем секретного ключа для адреса «выхода».

Структура транзакции

Однако есть проблема. Цепочка блоков в сети имеет очень большой размер (в сентябре 2020 превысил 300 Гб), и далеко не все узлы могут её выкачать. Например, телефоны или кассовые аппараты. Тем не менее им нужно знать о факте включения той или иной транзакции в блок. Для этого был придуман протокол SPV — Simplified Payment Verification.

«Легкая» верификация основана на структуре дерева Меркла — это двоичного дерева, конечные узлы которого — это хеши транзакций, а внутренние вершины — результаты сложения значений связанных вершин. Вот пример хеш-дерева с тремя транзакциями-листьями:

Дерево хешей с тремя вершинами

Построение дерева происходит следующим образом:

  1. Вычисляются хеши транзакций, размещенных в блоке: hash(L1), hash(L2), hash(L3) и так далее.
  2. Вычисляются хеши от суммы хешей транзакций, например hash(hash(L1) + hash(L2)). Так как дерево Меркла является бинарным, то число элементов на каждой итерации должно быть четным. Поэтому если блок содержит нечетное количество транзакций, то последняя дублируется и складывается сама с собой: hash (hash(L3) + hash(L3)).
  3. Далее, вновь вычисляются хеши от суммы хешей. Процесс повторяется, пока не будет получен единый хеш — корень дерева Меркла (merkle root). Он является криптографическим доказательством целостности блока (то есть того, что все транзакции находятся в заявленном порядке). Значение корня фиксируется в заголовке блока.

Имея дерево Меркла можно построить доказательство включения транзакции в блок как путь от хеша транзакции до корня. Этот механизм используется в SPV. Клиент выкачивает только заголовок блока с его хешем. Имея интересующую транзакцию, он запрашивает доказательство у узла содержащего всю цепочку.

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

SVP позволяет существенно снизить нагрузку на сеть и ускорить процесс проведения. Например, 5 переводов максимального размера в сумме весят около 500 килобайт, при этом дерево Меркла при таких же условиях будет иметь размер не более 140 килобайт.

Преимущества

Зависимость количества биткоинов в сети от времени

  1. Децентрализация Важной особенностью Биткоина, которая привела к его популярности, является децентрализованная природа этой платежной системы. Иначе говоря, Биткоин не находится под контролем государства, организации или конкретного человека. Программный код является полностью открытым, а участники системы разбросаны по всему миру. Всякий, кто захочет присоединиться, сможет сделать это без препятствий.Истории транзакций и балансы кошельков фиатных валют хранятся на специальных серверах, которые принадлежат финансовым организациям. Такие хранилища нередко взламываются, что довольно неприятно для простых пользователей. В Биткоин-системе нет ничего, что могло бы контролировать данные. Более того, все данные в этой сети доступны публично. И, как мы убедились выше, изменить их практически невозможно.
  2. Анонимность В отличие от традиционных финансовых систем, Биткоин вовсе не потребует от вас аутентификации по паспортным данным. Вы — это ваш адрес в Биткоин-сети. Вы можете получить сколько угодно адресов. Возможность совершать финансовые транзакции будет зависеть лишь от того, достаточно ли на Вашем счету средств. И к слову, любой человек может посчитать состояние вашего счета, но не может знать о Вас ничего, кроме истории транзакций и адреса вашего кошелька.
  3. Стабильность Нельзя изменить какой-то блок в блокчейне. Это практически невозможно. В противном случае пришлось бы одновременно изменить огромное количество записей на миллионах компьютеров по всему миру. Поэтому никакую транзакцию нельзя отменить или подменить на другую.
  4. Ограниченная эмиссия Традиционные фиатные деньги имеют неограниченную эмиссию, так как центробанки всегда могут напечатать столько денег, сколько им нужно. Вспомним аналогию с золотом. Чем сложнее добывается золото и чем меньше его запасов, тем оно больше ценится. Это механизм контроля инфляции. В Биткоине реализован схожий механизм: система постепенно уменьшает количество суммарно добываемых в единицу времени биткоинов. Это выглядит как функция обратной пропорциональности. И да, когда-то настанет момент, после которого количество биткоинов в мире станет постоянной величиной. Прямо как объем запасов золота на Земле.

А если по-человечески, то вот цитата Медузы о том, чем блокчейн лучше существующих платежных систем:

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

А насколько это безопасно?

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

А что там случилось?

15 августа 2010 года, ещё до широкого распространения системы, было создано 184 млрд биткойнов. Программый код не предусматривал сумм выше определенного значения, и в результате значение суммы переполнилось. Сделку быстро заметили, и в течение нескольких часов была выпущена версия программы 0.3.1, заменяющая старую цепочку на новую, не содержащую «грязных» ошибочных блоков. В результате такого хардфорка какое-то время даже существовали две версии биткоина, одна из которых содержала ошибочные блоки и вводила пользователей в заблуждение. Однако, новая версия стала доминирующей уже через 19 часов. Эта версия используется по сей день.

Потенциальные угрозы все-таки существуют. Например, взлом приватных ключей и так называемая «Атака 51%».

Взлом приватных ключей

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

Цифровая подпись создается с помощью хэширующего алгоритма и асимметричного шифрования (подробнее о шифровании можно почитать тут).

Принцип ассиметричного шифрования можно объяснить так:

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

Приватные ключи связаны с биткоин-адресами функцией хеширования SHA-256. Она выдает шифр в виде последовательности 256 битов. То есть возможно 2^256 = 10^77 вариантов хеша. В настоящее время вычислительных мощностей всех компьютеров всего мира не хватило бы, чтобы перебрать все варианты за приемлемое время.

Угроза становится реальной ввиду развития квантовых компьютеров. Пока эта угроза далека (здесь есть подтверждение), но всё-таки она существует.

Атака 51%

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

На ранних этапах развития криптовалюты такая угроза очень значима. На данный момент для осуществления такой атаки в сети Bitcoin требуется вычислительная мощность, во много раз превышающая мощность всех суперкомпьютеров из рейтинга TOP-500 (500 самых мощных в мире суперкомпьтеров). После массового перехода майнеров с видеокарт на специально разработанные для добычи биткоинов интегральные схемы, защита от такой атаки стала ещё сильнее. Кроме того, у злоумышленников при таком вломе нет возможности проводить любые транзакции по своему усмотрению, поскольку у них нет чужих приватных ключей, необходимых для подписи транзакций.

Существует схожая «Атака Сивиллы», в которой злоумышленники могут избегать настоящих узлов в сети, если они создают достаточное количество поддельных или идентичных (Sybil идентификаторов). Затем они могут отказаться от приема или передачи блоков, эффективно блокируя других пользователей в сети. С такой угрозой неплохо справляются «алгоритмы конценсуса», такие как «доказательство работы» (Proof-of-Work) и «доказательство доли», (Proof-of-Stake)

Подробнее об алгоритмах консенсуса

  • Proof-of-Work Доказательство работы (или консенсус Накамото) было «изобретено» задолго до биткойна еще в начале 90-х и применялось в основном для защиты от спама. В случае доказательства работы хеш сообщения, объединенного со специальным полем (тот самый nonse из истрии о Коле с Васей), должен быть меньше определенного значения (или начинаться с определенного числа нулевых битов). Nonce не несет смысла для самого сообщения — это поле перебирается автором доказательства, пока не будет найдено подходящее значение. Название «доказательство работы» отражает тот факт, что для нахождения nonce надо совершить вычислительную работу, ожидаемое количество которой измеримо. Например, если нужно, чтобы первые 16 бит хеша равнялись нулю, то в среднем нужно перебрать 65536 значений nonce.Консенсус Накамото решает главный бич анонимных сетей — атаки Сибиллы. Чтобы обладать реальной силой (наличие которой пытаются имитировать злоумышленники) в консенсусе Накамото, нужно обладать реальной вычислительной мощностью, которую нельзя подделать.
  • Proof-of-Stake В 2011 году в качестве альтернативы PoW был разработан алгоритм консенсуса PoS, призванный исправить основные недостатки предшественника.В нескольких словах, алгоритм консенсуса Proof of Stake заменяет технологию майнинга PoW механизмом, в котором блоки проверяются в соответствии с долей участников. Валидатор каждого блока определяется вложенной криптовалютой, а не количеством выделенной вычислительной мощности. Каждая система PoS может реализовать алгоритм по-разному, но в общем случае блокчейн обеспечивается псевдослучайным процессом выборов, который учитывает богатство узла и возраст монеты (как долго монеты заблокированы или находятся в доле), а также фактор рандомизации.

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

— известная биржа, работающая не только с Bitcoin, но и другими менее популярными криптовалютами. В 2014 году биржа лишилась 13 000 BTC и 300000 Litecoin в результате атаки.

  • В январе 2015 года стало известно о взломе крупной европейской биткоин-биржи Bitstamp. Тогда хакеры сумели похитить 18,977 BTC.
  • 19 июля 2017 года Parity подвергся хакерской атаке, в ходе которой злоумышленникам удалось украсть 153,037 ETH.
  • В 2016 у биржи Bitfinex неизвестные похитили с платформы 119 756 BTC.

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

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

Законодательное регулирование

Правовой режим биткоина значительно различается в разных странах. В одних странах биткоины признаются в качестве расчётной денежной единицы (например, в Германии),, в других (например, в Японии) Bitcoin является законным платёжным средством с налогом на покупку. В некоторых странах (например, в Китае) операции с биткойнами запрещены для банков, но разрешены для физических лиц (но при этом страна лидирует в области майнинга из-за наличия крупнейших производственных мощностей). В Швейцарии на криптовалюты распространяются такие же правила, как и на иностранные валюты, и эта страна является одной из самых благоприятных юрисдикцией для Bitcoin-стартапов.

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

  • как это работает
  • bitcoin
  • криптовалюта

Биткоин для «чайников»: инструкция для начинающих пользователей криптовалюты Bitcoin

Автор Редакция Profinvestment Эксперт Сергей Воробей Обновлено Дек 15, 2023

0 11 387

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

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

Коротко о главном

  • Биткоин – это криптографическая валюта, которая была создана в 2009 году неизвестным человеком под псевдонимом Сатоши Накамото.
  • Общее количество биткоинов ограничено, их максимальное количество составляет 21 миллион. Монеты BTC можно дробить до восьми десятичных знаков, минимальная единица называется «сатоши».
  • Биткоины хранятся в неизменной блокчейн-сети, а доступ к ним осуществляется через специальные кошельки. Безопасность биткоин-кошелька зависит от пользователя: если ключи утеряны или украдены, биткоины могут быть потеряны навсегда
  • Биткоины не подконтрольны ни одному правительству или финансовому учреждению. Но сервисы для работы с ними, такие как биржи, обычно учитывают требования правительства.
  • Биткоины создаются в процессе майнинга, когда мощные компьютеры выполняют сложные математические вычисления.
  • Bitcoin можно купить на бирже криптовалют за традиционные валюты или другие криптовалюты. Также для покупки могут использоваться обменники и другие сервисы.

Читайте также: как купить биткоин выгодно.

Общая инструкция по работе с биткоином

✅ Инструкция по использованию Bitcoin «для чайников»:

  1. Создайте биткоин-кошелек для хранения, отправки и получения монет. Выберите надежное приложение для создания кошелька, в процессе создания обязательно запишите сид-фразу, которая будет нужна в будущем для восстановления.
  2. Никому не сообщайте свою сид-фразу и приватный ключ.
  3. Приобретите биткоины через биржи криптовалют, P2P-торговлю, обменники, телеграм боты или другим способом. Для получения BTC нужно предоставить сервису адрес своего кошелька.
  4. Для перевода биткоинов другому пользователю или сервису необходим адрес кошелька получателя. Обязательное условие – уплата комиссии. Она идет не сервису, а майнерам, которые поддерживают сеть.
  5. Проверяйте адреса и суммы перед отправкой, так как транзакции биткоина необратимы.
  6. Не храните большие суммы биткоинов на биржах.
  7. Если вас интересует инвестирование в Bitcoin, убедитесь, что осознаете все риски. Курс криптовалюты волатилен и никто не может дать гарантий прибыли, тем более в короткий срок.

Что такое биткоин и как он работает

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

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

Основные принципы работы:

  • В основе работы лежит так называемый блокчейн – публичная книга, где записаны данные абсолютно обо всех операциях в сети. Все осуществляемые между пользователями транзакции «упаковываются» в блоки, а блоки затем добавляются в цепочку – отсюда и название «цепочка блоков», blockchain. Изменить информацию, добавленную в блокчейн, технически невозможно. Таким образом, блокчейн дает сразу и прозрачность, и надежность.
  • Хранение криптовалюты и управление средствами осуществляется при помощи закрытого и открытого ключа. Их совместная работа позволяет владельцу кошелька создавать и подписывать отправляемые транзакции.
  • Поддержка сети и генерация новой валюты обеспечивается майнерами. Перед добавлением в блокчейн каждая транзакция должна быть проверена на предмет ее честности и правомерности. Проверкой транзакций и занимаются майнеры. За каждый сгенерированный блок транзакций они получают определенное вознаграждение (на текущий момент это 6,25 BTC). Каждые 4 года проходит халвинг и вознаграждение уменьшается вдвое. Приблизительное время между блоками составляет 10 минут.

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

Преимущества биткоина перед фиатными деньгами

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

  • Высокая делимость. 1 монета BTC делится на 100 000 000 сатоши, что позволяет отправлять даже очень мелкие переводы.
  • Бесплатное хранение и низкая затратность. Если вам нужно перевести деньги из страны в страну, то в биткоине это сделать удобнее, чем через банк. Банковские международные переводы могут занимать несколько суток и сопряжены с большой комиссией. Bitcoin же позволяет перевести средства в любую точку мира гораздо быстрее и дешевле. Плюс, за банковский счет нужно платить, а биткоин-кошельки не взимают никакой платы за хранение.
  • Отсутствие государственного регулирования. Хотя правительства некоторых стран пытаются запрещать биткоин, не признают его как платежное средство, но технически запретить частные транзакции с ним они не могут. Сеть не управляется единым централизованным органом, на который можно «надавить», и в это ее сила. Поэтому разумнее поступают те страны, которые применяют по отношению к криптовалютам разумное регулирование.
  • Невозможность подделки. Сделать фальшивый биткоин невозможно. Это валюта, которая существует только в цифровом виде и основывается на специальном программном коде. Невозможно обойти блокчейн, в котором записаны все транзакции и все выпущенные BTC.

Таким образом, Bitcoin имеет все шансы со временем стать альтернативой мировым валютам. А пока он представляет интерес как актив, который сравнивают с золотом по инвестиционным характеристикам.

Как пользоваться биткоином

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

Кошельки

Приватный биткоин-кошелек

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

Основные виды биткоин-кошельков с примерами:

  • Десктопный (на ПК или ноутбук) – Bitcoin Core, Electrum, Wasabi.
  • Мобильный (на смартфон или планшет) – Green, Bitcoin Wallet, Samourai.
  • Веб (онлайн-сайты с функционалом кошельков) – Blockchain, Coinomi, BitGo.
  • Аппаратные (физическое USB-устройство, на котором ключи хранятся в автономном режиме) – Ledger, Trezor, KeepKey.
  • Бумажные (распечатанные на бумаге ключи с целью их хранения автономно от интернета) – можно создать на сайтах bitaddress.org, https://bitcoinpaperwallet.com/.

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

Читайте также: инструкция, как открыть биткоин кошелек.

Адреса

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

  • Стандартный формат P2PKH (Legacy) – пример 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN4.
  • Обновленный формат P2SH ( Segwit)– пример 3J98t1WpEZ78CNmQviecrnyiWrnqRhWNLy.
  • Самый совершенный на текущий момент формат Bech32 – пример bc1qar0srrr7xfkvy5l683lydnw9re59gtzzwf5mdq.

У вас не получится отправить монеты на тот адрес, формат которого не поддерживается выбранным кошельком. К примеру, Bech32 пока поддерживается далеко не всеми программами.

Отправка и получение биткоина

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

Отправка биткоина из кошелька

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

Читайте также: инструкция по отправке и получению биткоина на адрес кошелька.

Комиссии в сети биткоин

Регулировка комиссии позволяет увеличить или уменьшить сборы, тем самым настроив соотношение между скоростью транзакции и затратами. Оптимальную комиссию можно посмотреть на сайтах https://bitcoinfees.earn.com/, https://privacypros.io/tools/bitcoin-fee-estimator/, https://btc.network/estimate и других.

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

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

Обозреватели транзакций биткоина

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

  • количество подтверждений майнеров;
  • сумма;
  • комиссионный сбор;
  • адрес отправителя;
  • адрес получателя;
  • время и дата.

Вся эта информация – открыта и доступна для просмотра любому желающему. Кроме того, это полезно в случае, когда вы сомневаетесь, существует ли транзакция и не зависла ли она в процессе обработки. Удобно смотреть перечисленные сведения на сайтах https://blockchair.com/ru/bitcoin, https://blockchain.info/explorer?view=btc, https://explorer.bitcoin.com/btc.

Неподтвержденная транзакция биткоин

Читайте также: что такое биткоин транзакция, как проверить и отследить.

Биткоин миксеры

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

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

Примеры биткоин-миксеров: BitMix, BitcoinMix, Coinomize .

Работа с биткоин-миксером

Как майнить биткоин

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

  • Воспользоваться калькулятором майнинга и выбрать оборудование, которое подойдет вам по совокупности таких параметров как хешрейт (скорость вычислений), стоимость, энергозатратность. Это обязательный этап, который позволит заранее рассчитать, окупится ли ваша затея. В то же время стоит учесть, что курс монеты может упасть, что снизит и прибыль. Как и любые инвестиции, майнинг сопряжен с риском.
  • Купить оборудование. Биткоин на сегодняшний день майнится только при помощи ASIC – интегральных микросхем, функционал которых нацелен именно на добычу Bitcoin, поэтому обеспечивает максимально возможную мощность.
  • Установить и настроить программное обеспечение. Сюда входит и биткоин-кошелек, и специализированное ПО, контролирующее процесс майнинга. Примеры программ: MultiMiner, CGMiner, EasyMiner.
  • Присоединиться к майнинг-пулу. Соло-майнинг в целом гораздо менее эффективен, чем групповой, а в случае с Bitcoin это вообще не вариант, поскольку из-за высокой сложности вычислений генерация блока в одиночку может занять сотни лет.

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

Как получить биткоин бесплатно

Небольшие суммы BTC (в размере нескольких сатоши) можно получать с биткоин кранов или игр. Кран – это сайт, зарабатывающий на размещении рекламы и делящийся частью своей прибыли с пользователями. Для получения небольших долей биткоина на регулярной основе нужно зарегистрироваться и указать свой адрес кошелька. Затем раз в определенный период времени, например, 15 минут, решать капчу и получать криптовалюту. Доход с такого способа небольшой. Но с учетом минимальных трудозатрат и растущей ценности BTC, иметь некоторое количество биткоинов на своем счету не помешает.

Биткоин кран для бесплатного заработка криптовлаюты

Читайте также: способы, как бесплатно получить биткоины.

Покупка и продажа биткоина

Торговать BTC можно несколькими способами:

Биткоин-обменник для продажи и покупки криптовалюты

  • Криптовалютные биржи. Почти все торговые площадки поддерживают работу с Bitcoin. Для работы с ними потребуется создать и (возможно) верифицировать аккаунт, пополнить счет, затем создать торговый ордер на покупку BTC. Полученные средства вывести на внешний кошелек, если с ними больше не планируется выполнять операций, так как криптобиржи не созданы для долговременного хранения на них своих активов. Примеры популярных бирж с биткоином: Binance, Bybit, OKX, Currency.com, Huobi, MEXC Global, EXMO.
  • p2p-обменники. Биржи с прямым обменом активов между пользователями, которые не занимаются хранением активов. Фиатные средства участники переводят друг другу сами, а криптовалюта на время сделки задерживается на эскроу-счету, откуда выпускается только после выполнения обоими контрагентами заданных условий. p2p-платформы с биткоином: Binance P2P, Bybit P2P, OKX P2P, Huobi P2P, Garantex, Bitzlato, LocalBitcoins, LocalCryptos, Paxful.
  • Биткоин-обменники. Сервисы, предлагающие большой ассортимент платежных направлений – с их помощью можно купить биткоин с банковской карты, Киви, юMoney, за альткоины и мн.др. Подобрать подходящий обменник, который имеет оптимальный курс и предлагает нужное направление, поможет сайт BestChange. Некоторые проверенные редакцией Profinvestment.com обменники: Matbea, Magnetic Exchange, Kassa, 365cash, Bitality, Kursov24.
  • Платежные системы. Такие ЭПС, как AdvCash, Capitalist или Payeer позволяют пользователю управлять счетами как в криптовалюте, так и в фиате, и свободно обменивать средства между ними в любых направлениях. Таким способом можно легко купить биткоин или продать его.
  • Телеграм боты от различных обменников и бирж. @Baksman_wallet_bot, @btc_change_bot, @BitpapaExpressBot.
  • Криптоматы.

Читайте также: как безопасно продать биткоин.

Боты для торговли биткоином на биржах

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

бот для торговли биткоином на биржах Revenue Bot

Некоторые роботы имеют фиксированную абонентскую плату, другие берут процент с прибыли. Есть и бесплатные варианты, к примеру, Stratum Bot позволяет бесплатно пользоваться версией для биржи YoBit. Программы обычно предоставляют готовые стратегии, из которых можно выбрать, а также возможность создать свою собственную стратегию. Чем дороже тариф, тем больший объем функций он предлагает.

Читайте также: лучшие криптовалютные боты для торговли на биржах.

Индекс страха и жадности биткоина

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

Этот параметр аккумулирует в себе несколько факторов: текущая волатильность, настроение рынка, доминирование рыночной капитализации биткоина над остальными криптовалютами, импульс изменения рынка, активность по ключевым словам в Google Trends и Twitter. Посмотреть текущий индекс страха и жадности можно в соответствующей статье на нашем сайте. Обновляется он один раз в сутки.

Индекс страха и жадности биткоина

Запрещен ли биткоин

Хранение, майнинг, торговля биткоином не запрещены в России, Украине или Беларуси. Однако есть другие ограничительные меры. К примеру, с января 2021 в России запрещено использовать BTC для покупки товаров или услуг, а также любым способом рекламировать такой вид оплаты.

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

Перспективы

Большинство экспертов единогласно говорит о росте ценности биткоина в 2021 году – до $30 000, до $50 000 и даже до $100 000. Отмечается, что сейчас валюта имеет по-настоящему устойчивый рост, который уже не похож на хайп 2017 года. На Bitcoin обратили внимание многие институциональные инвесторы, крупные компании, платежные системы. Все это говорит в пользу дальнейшего роста и развития криптовалюты.

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

Читайте также: что будет с биткоином в ближайшее время. Аналитика.

FAQ

Что такое биткоин простыми словами для чайников?

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

Сложно ли освоить биткоин начинающим?

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

Как купить биткоин новичку — пошаговая инструкция:

Для начала следует определиться со способом покупки:
1. На бирже, например, Binance. Регистрируемся, при необходимости проходим верификацию. Пополняем счет удобным способом и покупаем биткоин, создав ордер на покупку. Потом биткоин можно вывести со счета.
2. В обменнике, например, Prostocash. Указываем свои реквизиты, создаем заявку на обмен и оплачиваем ее, переводя деньги на реквизиты, выданные обменником. Вскоре биткоин поступит на указанный вами адрес кошелька.
3. На p2p-бирже (например, Bybit P2P). Находим подходящего контрагента, создаем заявку и оплачиваем ее. Получаем BTC на биржевый счет, чтобы использовать его или же вывести на кошелек.
Есть и другие способы (такие как платежные системы AdvCash, Payeer), но эти самые распространенные.

Где узнать все про криптовалюты и биткоин для чайников?

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

Как начать зарабатывать на биткоине начинающим?

Для начала следует понять, что криптовалюта, даже самая популярная, не гарант заработка. Она очень волатильна, может несколько раз за год существенно падать и расти. Один из простых способов заработка — вложиться в лендинг криптовалют и получать пассивный доход. Трейдинг — более рискованное вложение. Можно рассмотреть копитрейдинг. А в самом начале советуем попробовать биткоин-краны, которые дадут понимание работы с криптой и небольшое количество сатоши (долей Bitcoin).

В чем сложность трейдинга биткоином для новичков?

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

Заключение

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

Как работают криптовалюты. С картинками

Добрый день, меня зовут Павел Поляков, я Principal Engineer в каршеринг компании SHARE NOW, в Гамбурге в ���� Германии. А еще я автор телеграм канала Хороший разработчик знает, где рассказываю обо всем, что обычно знает хороший разработчик.

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

Как работают криптовалюты. С картинками.

В 2008 году Lehman Brothers Holdings Inc. подало прошение о банкротстве. Это ударило по вере общества в банки так сильно, что появилась новая категория активов, которая управляется без формальной банковской активности. Первая криптовалюта, bitcoin , появилась в 2008 году. Автором было неизвестное лицо или группа лиц под именем Сатоши Накамото. Идея заключалась в том, чтобы создать децентрализованную цифровую валюту с открытым исходным кодом, без центрального банка или центрального администрирования. Вот ссылка на оригинальную белую книгу (white paper).

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

Bitcoin ≠ Blockchain

Когда люди используют слова Bitcoin и blockchain как синонимы это не верно. Но люди все еще делают так, это популярное заблуждение.

Bitcoin это не просто монета, а еще и протокол, который основывается на технологии блокчейн. Протокол это набор правил, с помощью которых участники сети общаются друг с другом. Например, часть Bitcoin протокола регулирует как должны управляться приватные и публичные ключи, как происходит майнинг, чтобы подтверждать транзакции и тому подобное. Ethereum , waves , neo , ripple и некоторые другие криптовалюты имеют похожий на Bitcoin протокол.

Этот протокол, как, например, Bitcoin и Ethereum , включает в себя определение монеты, которая, как правило, названа в честь протокола. Эта монета и делает использование протокола интересным для людей. Она используется, чтобы вознаградить людей, которые “добывают” или майнят (mine), чтобы добавить блоки к блокчейну и, что еще более важно, чтобы покупать что-то друг у друга.

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

Безопасная альтернатива традиционным банкам ��

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

Клиент-серверная архитектура

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

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

Blockchain

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

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

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

Майнинг bitcoin

Теперь, когда мы обсудили как основы блокчейн, давайте посмотрим как в протоколе bitcoin происходят транзакции. К примеру, Боб хочет послать 1 BTC Алисе.

Боб проводит транзакцию, чтобы послать деньги Алисе. Транзакция, которую инициировал Боб, изначально сохраняется в Mempool (место, где содержатся все неподтвержденные транзакции). Для того чтобы транзакция из Mempool попала в Bitcoin блокчейн, майнеры, сперва, должны решить математическую проблему. Ее решение, как правило, занимает 9 минут. Майнер, который решит эту проблему первым, заявляет другим участникам сети, что он успешно ее решил. Теперь другие майнеры проверят, является ли добытый блок действительно тем, что хочет добавить Боб, или это хакеры пытаются взломать сеть. После того как все будет проверено, транзакция будет успешно размещена в блокчейне и Алиса получит 1 BTC от Боба.

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

Математическая проблема

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

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

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

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

Алгоритм SHA 256

Представим, что у нас есть файл. Мы можем обработать этот файл с помощью алгоритма SHA 256. На выходе мы получим хэш — 64 символа, каждый из которых может быть любым шестнадцатеричным символом. 4 бита на символ.

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

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

На этом вебсайте вы можете попробовать сами.

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

Цепь блоков

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

Первый блок в блокчейне так же известен как блок Зарождения (Genesis block). Значение предыдущего хэша в этом блоке — 0 . Наша транзакция, та что между Бобом и Алисой, находится в третьем блоке, который был успешно добавлен. Значение предыдущего хэша в этом блоке это значение хэша в блоке номер два.

Распределенные P2P сети

Теперь давайте немного уменьшим масштаб и посмотрим, как блокчейн вообще существует в децентрализованной распределенной peer to peer (P2P) сети.

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

На изображении ниже приведен пример P2P сети с майнерами и пользователями.

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

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

Когда блок будет успешно добавлен, то P2P сеть будет иметь следующий вид.

Завершаем

Вот и все. Это было быстрое введение в то как работают криптовалюты. Я надеюсь вы научились чему-то, когда читали этот пост.

Если вы хотите дополнительно разобраться в вопросе, я рекомендую ресурсы ниже:

  • Белая книга Bitcoin
  • Белая книга Ethereum
  • Bitcoin ₿ in 100 Seconds // Build your Own Blockchain
А еще.

Здесь говорю опять я, Павел. В конце еще раз приглашу вас в свой Telegram-канал. На канале Хороший разработчик знает я минимум три раза в неделю простым языком рассказываю про свой опыт, хард скиллы и софт скиллы. Я 15+ лет в IT, мне есть чем поделиться. Все это нужно разработчику, чтобы делать свою работу хорошо, работать в удовольствие, быть востребованным на рынке и получать высокую компенсацию.

А для любителей картинок и историй есть �� Instagram.

  • Open source
  • Программирование
  • Хранение данных
  • Распределённые системы
  • Криптовалюты

Bitcoin. Как это работает

О Bitcoin я узнал относительно недавно, но он меня сразу подкупил своей идеей p2p. Чем глубже я зарывался в их Wiki, тем больше проникался этой идеей. Ее реализация красива и элегантна с технической точки зрения.

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

Настоящие деньги?

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

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

Сложность добычи

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

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

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

В Bitcoin процесс добычи монеток тоже требует ресурсов и времени. Но в данном случае это не человеческие ресурсы, а компьютерные.

Условно ограниченный ресурс

Чем дольше добывается золото, тем труднее (затратнее по ресурсам) становится его добывать. Это гарантирует, что инфляция будет под контролем.

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

Здесь видно, что общее число монеток стремится к 21 000 000. Подробности работы Bitcoin будут рассмотрены далее. А пока нужно знать две вещи: монетки появляются в системе пачками приблизительно каждые 10 минут, количество монеток в одной пачке — 50, и оно уменьшается вдвое каждые 4 года.

Материальность

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

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

Сложность добычи, ограниченный ресурс, материальность — эти свойства, плюс использование криптографии для обеспечения безопасности, позволяют использовать Bitcoin в качестве денег. На них основано ядро Bitcoin. Это не просто договоренности. Все они заложены в системе by design, и по-другому она работать не будет. Настало время рассмотреть этот самый дизайн.

Цепочка блоков

Любая электронная платежная система должна где-то и как-то хранить транзакции. В Bitcoin вся информация хранится в цепочке блоков. Блоки передаются в формате JSON. Каждый блок содержит заголовок и список транзакций. Заголовок состоит из нескольких свойств, среди которых есть хэш предыдущего блока. Таким образом вся цепочка блоков хранит все транзакции за все время работы Bitcoin.

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

На момент написания статьи количество блоков в цепочке было равно 110 968, и, как я уже говорил ранее, это количество приблизительно через каждые 10 минут увеличивается на 1. Это значит, что кто-то из участников смог создать новый блок.

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

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

Блок

Рассмотрим содержимое блока и процесс его генерации более подробно. Пример блока можно найти на все том же Bitcoin Block Explorer. Блок состоит из заголовка и списка транцакций. Заголовок состоит из следующих свойств:

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

ver — Версия схемы блока. На данный момент у всех блоков одна версия — 1.

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

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

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

time — uint32_t представляющее время создания блока. Максимально допустимый год — 2106.

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

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

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

Например, версия никогда не меняется. Хэш предыдущего блока обновляется тогда, когда кто-нибудь нас опередит и сгенерирует новый блок. Merkle root обновляется при добавлении транзакции. Время — каждые несколько секунд. Bits (целевое значение, сложность) — каждые две недели. Все это слишком долго. Чтобы не ждать, пока обновится одно из свойств и существует nonce.

Рассмотрим гипотетическую ситуацию. Все значения nonce были проверены и ни одно из них не подходит. За это время ни одно другое свойство не изменилось. Происходит переполнение nonce и оно снова начинается с нуля. Получается, что далее хэши будут повторяться. Чтобы избежать подобных ситуаций, после переполнения nonce, меняется специальное свойство одной из транзакций. После этого обновляется Merkle root и хэши заголовка блока уже не будут повторяться.

n_tx — Количество транзакций в списке.

size — Размер блока в байтах.

Транзакции

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

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

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

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

ver — Версия схемы транзакции. Пока она ни разу не менялась, так что везде равна 1.

vin_sz — Количество предыдущих транзакций, из которых деньги переводятся на новые адреса. Одна или более.

vout_sz — Количество адресов, на которые переводятся деньги. Один или более.

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

size — Размер транзакции в байтах. Подразумевается размер транзакции в формате JSON.

in — Содержит список входов (источников) транзакции. В качестве входов используются выходы предыдущих транзакций (prev_out). У каждого выхода есть следующие свойства:

hash — Хэш предыдущей транзакции.

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

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

После списка входов транзакции (in) указывается список выходов (out), т. е. адресатов. Каждый выход имеет следующие свойства:

value — Содержит количество денег, которые будут переведены по новому адресу. Они берутся из предыдущих транзакций. Поэтому данное число не должно превышать их сумму. Например, мы хотим взять 10 монеток из одной транзакции и 20 из другой и направить 25 по новому адресу. Чтобы оставшися 5 монеток не пропали, мы посылаем их самим себе, как сдачу. Таким образом в нашей транзакции будет два адресата, одним из которых являемся мы сами. Value всегда указывается в наномонетах, чтобы избежать дробных чисел.

scriptPubKey — Это свойство, вместе с scriptSig составляют сценарий на модифицированном Forth-like языке. ScriptPubKey содержит операторы языка и хэш публичного ключа получателя транзакции. Сценарий проверяет транзакцию на валидность. Использование подобного сценария дает богатые возможности для описания условий получения денег адресатом. Например, можно заставить получателя указывать пароль вместо ECDSA.

Суммарное количество денег на входе транзакции всегда равно суммарному количеству на выходе. В противном случае деньги либо возникали из воздуха, либо исчезали из оборота. Но в самом начале был график, по которому видно, что число денег экспоненциально растет. Так откуда берутся новые деньги в системе?

На мой вкус, эмиссия денег реализовано просто и элегантно. В каждом блоке первая транзакция в списке является особой транзакцией. У нее всегда один вход, у которого вместо свойства scriptSig есть свойство coinbase. Это свойство может содержать что угодно.

Выход у транзакции также всегда один. Он перенаправляет 50 монеток тому, кто сгенерировал блок, в котором расположена эта транзакция. Это своего рода награда за потраченное время и ресурсы на генерацию блока. Создавая новый блок в цепочке, клиент вносит вклад в работу Bitcoin.

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

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

Заключение

Proof of work (доказательство работы) — результат работы, которого трудно добиться, но легко проверить. Работа сети Bitcoin основана на этом принципе. Проверить хэш (результат работы) можно за доли секунды. А для того, чтобы его подобрать, требуется много работы.

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

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

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

Как только Bitcoin попал на рынок, его ценность определяется исключительно уровнем доверия к системе. Чем больше человек будут доверять, тем больше купят Bitcoin, тем больше долларов в него вложат и, как следствие, тем дороже будет Bitcoin.

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

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

  • bitcoin
  • платёжные системы
  • электронные деньги
  • p2p
  • протокол
  • структуры данных

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

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