Система биткоинов как работает
Что такое биткоины
И можно ли на них зарабатывать
С начала 2017 года биткоин подорожал в 51 раз.
Деньги, которых не существует, стоят дороже нефти и золота. Расскажу, как на этом можно заработать.
В мае 2017 года я попробовала торговать биткоинами. За 2 недели заработала 30%. Потом за месяц потеряла 15%.
Торговля криптовалютой — занятие рискованное. Вот что следует знать, если вы любите такой риск.
В Н И М А Н И Е
В этой статье описан личный опыт автора. Если вы планируете покупать и продавать биткоины, рекомендуем сначала уточнить в поддержке своего банка, как банк относится к таким операциям, чтобы избежать внезапной блокировки.
Что такое биткоин
Биткоин — это цифровые деньги. Физически этой валюты не существует, есть только специальные реестры, в которых ведется учет, сколько у кого биткоинов и кто куда их переводит. Эти журналы называются блокчейнами.
Это похоже на то, как устроены безналичные платежи в банках: когда вы платите картой в магазине, вы тоже не передаете никому никаких физических денег или золота. Просто где-то в банковском реестре прописывается ваша операция.
Биткоины отличаются от обычной валюты тем, что реестры хранятся не централизованно в банках и платежных системах, а одновременно на всех компьютерах, которые заняты биткоинами. Любой человек может посмотреть все операции со всеми биткоинами за всю историю.
Реестры защищены криптографией. Подделать их одновременно у всех нельзя. Невозможно переписать данные в блоках и заявить, что у кого-то теперь есть миллионы. Биткоин в этом смысле довольно защищенный. Правда, уже существует атака, которая позволяет дважды рассчитаться одними и теми же биткоинами, поэтому сказать, что биткоин абсолютно безопасен, нельзя.
Откуда берутся биткоины
Обычную валюту выпускает государство. Очень опосредованно она связана с запасами золота, но по факту она не связана ни с чем — сколько государству нужно, столько оно и напечатает.
Биткоины не связаны с каким-то одним государством. Новые единицы биткоина появляются в процессе того, как компьютеры в этой платежной сети обслуживают нужды этой же самой сети.
Например, где-то в Китае человек заплатил биткоинами за пиццу. Эту операцию нужно записать в реестры на всех компьютерах, которые подключены к биткоиновой сети. Чтобы записать операцию в реестр, нужно припечатать ее специальной подписью, как сургучной печатью. Эту подпись нужно рассчитать, это сложная компьютерная задача.
Где-то в Венесуэле стоит компьютер, который обслуживает биткоиновую сеть. Он только что вычислил эту криптографическую подпись. В знак благодарности владелец этого компьютера получает вознаграждение в виде биткоин-копеечки.
Для венесуэльца, который установил компьютер в режим вычисления криптографических подписей, это выглядит так: его компьютер что-то там себе шуршит, а ему на счет капают биткоин-копейки. Компьютер как будто добывает биткоины, хотя на самом деле он просто шифрует и припечатывает чужие операции. Такая как бы «добыча» биткоинов называется майнингом.
На самом деле добываются не сами биткоины, а «сургуч» для защиты реестров. Биткоины — это вознаграждение за службу.
Количество биткоинов ограничено — их может быть максимум 21 000 000. Летом 2020 года майнеры добыли около 90% монет.
Майнинг — отдельная большая тема. В двух словах: оборудование дорогое, эффективность низкая, вам придется конкурировать с мегаваттными китайскими майнинговыми кластерами, которые строят на базе электростанций. О майнинге мы написали отдельную статью и опубликовали рассказ читателя.
Зачем нужен биткоин
Криптовалюта позволяет переводить деньги под псевдонимом и без участия банков.
в среднем стоит перевод биткоинов в начале апреля 2021 года, по данным bitinfocharts.com
За биткоины можно купить билет «Эйрбалтик», компьютер «Делл». Можно даже пожертвовать биткоины буддийскому храму в Сеуле.
Биткоинами торгуют на бирже, в них вкладывают деньги.
Для переводов и оплаты услуг используют биткоин-кошельки. В них хранятся цифровые ключи, необходимые для транзакций. Если вы потеряете приватный ключ, то деньги пропадут навсегда. Их нельзя вернуть, позвонив в банк. У системы биткоинов нет ни единого центра, ни регулятора. По данным chainalysis.com, около 20% биткоинов потеряно, на начало 2021 года это примерно 140 млрд долларов.
Под псевдонимом — это не анонимно
Реестры операций биткоина содержат всю историю операций за все время по всем кошелькам. Если вы купили за биткоины что-нибудь нехорошее, а потом как-то стало известно, что за вами числится этот кошелек, то заинтересованный человек сможет увидеть все ваши операции.
Например, если вы купили билет на самолет за биткоины и указали при оплате свои личные данные, то заинтересованные спецслужбы уже смогут вас идентифицировать.
Есть, конечно, средства полной анонимизации платежей, но они стоят дорого.
Это законно?
1 января 2021 года вступил в силу закон о цифровых активах. Теперь криптовалюта законна, но ее нельзя использовать для оплаты товаров и услуг в России. Биткоины можно выпускать, продавать и покупать. Все владельцы криптовалюты обязаны подавать налоговую декларацию.
Важное пояснение
Мы приводим базовую схему покупки и продажи биткоинов через обменник и биржу. Все примеры в рублях, чтобы было понятно.
Дальше вы можете оптимизировать схему под свои нужды: завести долларовую карту, зарегистрироваться в удобной платежной системе или искать анонимные пути обмена денег.
Универсального способа нет. Если у вас есть свой рецепт торговли криптовалютой — приходите в комментарии.
Как купить биткоин через обменник
Интернет-обменники работают по тому же принципу, что и уличные, меняющие евро и доллары. Они покупают биткоины по цене ниже биржевого курса, продают — дороже. На разнице зарабатывают.
В 2017 году я выбирала обменник на сайте-мониторинге «Локалбиткоинс». Покупка криптовалюты заняла 10 минут. Еще 20 минут биткоины шли на мой кошелек. В 2021 году «Локалбиткоинс» на территории России не работает.
Сейчас лучшие курсы обмена электронных денег можно выбрать на сайтах-мониторингах bestchange.ru и okchanger.com.
Как пользоваться. Вводим в поиске сумму, на которую хотим купить биткоины. Выбираем самый низкий курс, подходящий способ оплаты.
Для каждого обменника сайт-мониторинг дает отзывы и дополнительную информацию: какую минимальную сумму можно обменять, будут ли дополнительные комиссии и нужна ли верификация. Курс меняется в течение дня.
Выбираем подходящий обменник и переходим на его сайт.
Если продавец согласен на сделку, он резервирует нужную сумму. Когда вы перечислите ему рубли, он отправит на ваш кошелек биткоины. Теперь вы можете купить что-то или перевести монеты в более защищенный кошелек на ПК или флешке.
Минусы. Курс в обменниках сильно завышен.
Для больших сумм комиссии меньше. С обменниками можно договориться об индивидуальных условиях.
Рынок обменников в интернете никто не регулирует. Никто не гарантирует безопасность сделок. Если сомневаетесь — не переводите деньги либо попробуйте сначала обменять небольшую сумму. Учитывайте гигантскую комиссию обменников при покупке товаров или вложении денег в биткоины.
Как купить биткоин через биржу
Биржи — это интернет-площадки для торговли криптовалютой. На них встречаются продавцы и покупатели биткоинов. Если продавцов больше, курс падает. Если больше покупателей — растет.
Чтобы зарегистрироваться на небольшой бирже криптовалюты, достаточно адреса электронной почты, но чтобы торговать, придется пройти верификацию. Крупные площадки требуют скан паспорта или водительских прав, адрес и телефон. Чем больше сумма, которую вы меняете, тем больше персональных данных придется раскрыть.
Бирж много: binance.com, bitfinex.com, exmo.me, coinbase.com, cex.io. При выборе обратите внимание на два пункта: курс продажи валюты и система ввода денег.
Мой опыт. В 2017 году мне подошла биржа «Эксмо». Я переводила рубли на нее через «Киви». Хотя теперь этот способ уже исключили. Деньги шли на биржу почти 2 часа. Перевод в биткоины мгновенный.
Как пользоваться. На сайте биржи нажимаем «Купить криптовалюту» и вводим нужную сумму. Биржа принимает платежи с карт «Виза» и «Мастеркард».
Минусы. Биржи иногда блокируют вывод средств на 1—2 дня после пополнения счета. Объясняют это правилами платежных систем. Информация о блокировках указана на странице ввода денег.
Сэкономить можно, если использовать долларовую или евровую карту или зарегистрироваться в международных платежных системах Payeer или ADVCash и пополнять через них. В этом случае комиссии могут быть меньше.
Чтобы подобрать самый удобный и дешевый способ обмена, придется зарегистрироваться и верифицироваться в нескольких сервисах. Придумайте заранее, куда будете записывать пароли и кому готовы дать паспортные данные.
Анонимные способы ввода и вывода денег дороже легальных и намного рискованнее. Пользоваться биткоинами — все равно что ходить по улице в маске, но с прозрачными карманами. Система не раскрывает владельца кошелька, но все транзакции записываются в открытом блокчейне. Иногда госслужбам удается связать биткоин-кошельки с реальными людьми по IP-адресу или адресам доставки покупок.
Чтобы достичь анонимности, пользователи несколько раз переводят деньги между новыми биткоин-кошельками, используют анонимную сеть «Тор» и биткоин-миксеры, например bitcoinmix.org. В миксере транзакции разных пользователей дробятся и смешиваются. В итоге остается тайной, кто, сколько и кому перевел. Услуга обходится в 1—5% от суммы.
На форумах можно найти человека, который обменяет биткоины на наличные деньги. Отследить их также почти невозможно. Впрочем, такой способ обмена очень рискованный: на форумах можно наткнуться на мошенников и остаться без денег.
Как продать биткоин
Допустим, с тех пор как вы купили биткоины, их курс настолько вырос, что перерос все ваши издержки на комиссии и переводы. Пора продавать биткоины и забирать заработанные деньги. В этой ситуации можно снова воспользоваться обменниками либо вывести деньги через биржу.
Опыт. Я вывожу средства с биржи «Эксмо» на карту «Виза» или «Мастеркард». Перевод с биржи на карту занимает меньше минуты.
Комиссия. Биржа берет за вывод денег 3—6%. Переводить биткоины на кошелек биржи можно без комиссии.
Не переводите биткоины прежде, чем вам отправят за них рубли. Транзакцию в биткоинах нельзя отменить.
Как зарабатывать на биткоинах
В сети можно найти много обучающих видео, блогов и форумов, где обещают доход 20% в месяц. Общий смысл: покупать биткоины по минимальному курсу с минимальными комиссиями и продавать по максимальному курсу и тоже с минимальными комиссиями.
Кажется, что торговать валютой просто, но не стоит рисковать сразу. Курс биткоина меняется очень быстро и резко. Для начала попробуйте торговать суммой, которую не жалко потерять. Когда получится стабильно зарабатывать, можно играть по-крупному.
Меньше всего рисков при торговле по тренду. Для этого нужно завести деньги на биржу, дождаться момента, когда курс упал и только начинает расти, а затем купить биткоины и ждать, когда курс достигнет пика. С такой стратегией безопаснее не хранить биткоины на бирже, а переводить их на отдельный кошелек.
Торги на бирже — это работа. Игроки следят за курсом валют постоянно, сверяются с китайскими биржами. Чтобы не пропускать колебания курса, можно настроить оповещения в приложении биржи. Как только биткоин начнет падать или расти, сработает будильник.
Еще зарабатывать можно на ICO. Initial Coin Offering — это аналог краудфандинга или выхода на биржу. Вы вкладываетесь в новую компанию, стартап, а за это получаете токены — подобие акций. Если повезет и компания вырастет, получите доход.
Закон устанавливает общие требования для ICO: токены должны выпускать в информационной системе, которая входит в реестр ЦБ. Как это будет работать на деле, пока непонятно. Раньше компании выходили на ICO без продукта и настоящего бизнеса, просто с целью собрать деньги с вкладчиков и уйти в закат. Поэтому вкладывайте в компании на свой страх и риск.
Вложения в ICO и в новые криптовалюты — высокорисковые. Чтобы оценить перспективность стартапа, нужно разобраться в блокчейн-технологиях и бизнесе.
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 хотя бы немного вырастет.