Биткоин что это и как работает
Перейти к содержимому

Биткоин что это и как работает

  • автор:

Биткоин что это и как он работает простыми словами?

Биткоин — первая и самая популярная в мире криптовалюта.

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

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

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

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

Если лимит традиционных валют неограничен, то биткоинов не может быть больше 21 млн. Большую часть биткоинов уже сгенерировали, они находятся в обращении. Часть монет утеряна навсегда, а точнее около 30% всего объёма биткоинов (владельцы некоторых биткоин-кошельков забыли от них пароль).

Биткоины «появляются на свет» благодаря майнерам («добытчикам»). Майнинг — процесс генерации криптовалюты с помощью вычислительного оборудования. За добычу биткоинов майнеры получают вознаграждение.

Как купить биткоин?

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

Удобно совершить операцию по покупке биткоина можно на бирже Bybit. Здесь для использования фиата нужна верификация, но из преимуществ — огромное количество торговых пар, возможность торговать к фиатным валютам, а также простой ввод и вывод (моментальный). А вообще писать статью про лучшие биржи — можно прочитать и выбрать + и — любую подходящую для вас биржу.

Кто придумал биткоин и кто развивает его сейчас?

Концепция биткоина была впервые описана в техническом документе (whitepaper), опубликованном 31 октября 2008 года. Его автором был некто под псевдонимом «Сатоши Накамото», однако до сих пор неизвестно, кто именно скрывается за этим именем — один ли это человек или группа разработчиков. Все сообщения, публикации и другие «цифровые следы» Накамото можно почитать на сайте Satoshi Nakamoto Institute (на английском).

Сеть биткоина запустили 3 января 2009 года, но официальным днем рождения проекта считается 9 января, когда в свободный доступ выложили ПО для ноды.

С середины 2010 года Накамото перестал участвовать в развитии биткоина. После этого за дальнейшую разработку и координацию функционирования сети теперь отвечает сообщество разработчиков. Конкретное предложение по улучшению кода биткоина называется Bitcoin Improvement Proposal (BIP).

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

Правда ли, что биткоин — финансовая пирамида?

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

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

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

Из чего складывается ценность биткоина?

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

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

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

Говорят, что биткоин анонимен. Это так?

Это еще одно широко распространенное заблуждение. Скорее, можно говорить о псевдоанонимности. Другими словами, движение средств и текущий баланс адреса может увидеть любой человек, но сказать, кому именно они принадлежат, довольно сложно.

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

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

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

Биткоин. «Что это такое ваш Bitcoin простыми словами?»

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

Содержание статьи:

Что такое Биткоин простыми словами?

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

История создания Bitcoin

История этой цифровой валюты началась в 2008 году, когда неизвестный автор или группа авторов, известных под псевдонимом Сатоши Накамото, опубликовали whitepaper, в котором был описан принцип работы цифровой валюты и блокчейна. Первая транзакция с использованием криптовалюты Биткоин была совершена в январе 2009 года. С тех пор Bitcoin стал набирать популярность, которая не падает и по сей день.

История изменения цены Bitcoin

Цена этой криптовалюты имеет очень высокую волатильность, то есть часто изменяемую цену. Начиная всего с $0.003 в 2009 году, она быстро росла и достигла $10 к 2011 году. Этот взлет продолжился, и к 2017 году цена криптовалюты BTC достигла пика в $19,000. Однако, как и любая другая криптовалюта, Bitcoin подвергся колебаниям, и в 2018 году было падение цены до $3,809.

Сколько стоил Биткоин после? В последующие годы он вновь продемонстрировал рост, и к 2021 году цена этой криптовалюты составляла $46,319. Именно тогда Bitcoin начали называть новым золотом, золотом блокчейна, цифровой валютой будущего, так как для многих обычных обывателей он предоставлял невероятные возможности быстро разбогатеть.

Что же происходит сейчас? В 2024 году цена криптовалюты BTC выросла, составив максимум $49.000$. Этот рост сложился на ожиданиях принятия спотового ETF, сейчас же после принятия цена была заложена в рост и идет снижение. Сейчас же в 2024 году после халвинга мы будем наблюдать интерес к блокчейну и цифровой валюте.

Защита, безопасность, доверие к монете BTC

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

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

Преимущества монеты

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

Недостатки монеты

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

Отличия от обычных денег

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

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

Как купить Bitcoin

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

Выбор биржи криптовалют

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

Регистрация аккаунта

Регистрируйтесь по коду 50318 как на скрине Bybit, если нет кода с главной странице — вводите BONUS24. Вы получите от 30$ до 5.020$ за регистрацию/торговлю и самые низкие комиссии на 80%, пополнение с карты без комиссий.

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

Пополнение счета

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

Мы записали видео в телеграмм канале ( пособие для новчков ) или можно посмотреть ниже

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
  • протокол
  • структуры данных

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

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

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

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

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

  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
  • криптовалюта

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

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