Bitcoin что такое. Как создать биткоин кошелек

01.08.2019 Проблемы

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

Биткоин это деньги новой эры. В 2008 году человек по имени Сатоши Накомото предложил Биткоин, как электронную платежную систему в противовес банкам. Все транзакции в сети анонимны, то есть, не нужно платить налоги. Биткоин код открыт для всех, но проследить, кому именно были отправлены деньги, невозможно. Банки берут за свои переводы просто колоссальные комиссионные, особенно, при отправке денег в другую страну.
Перевод Биткоинов осуществляется без уплаты больших комиссий, отправлять можно любую сумму, в любую точку земного шара, деньги поступают на счет получателя в течении 20-30 минут в зависимости от загруженности сети, все транзакции в сети никем не контролируются. Согласитесь, Биткоин выгодно отличается от денежной системы тем, что обычным людям намного удобнее совершать переводы денег между собой без посредников.
Биткоин работает на технологии Blockchain, которая представляет из себя децентрализованную сеть. Денежная система работает благодаря указаниям из центра, то есть, из правительства. Если у центра возникают какие-либо проблемы, перестает работать вся система. Если отключить главный офис любой платежной системы (например, WebMoney), вся система перестанет работать, так как вся необходимая для работы информация станет недоступна в связи с закрытием центра.
Blockchain работает таким образом, что каждый участник сети является ее центром, который хранит всю информацию на своем компьютере путем постоянной синхронизации с сетью. Следовательно, отключение одного или нескольких участников не способно нарушить работу сети. Децентрализованная система позволяет избежать заморозки или блокировки средств участников, внутри системы невозможна отмена платежей, вашими средствами управляете только вы. Более подробно про Blockchain читай .
Копирование или подделка Биткоинов невозможна в принципе, так как вся информация о происхождении той или иной монеты записана в блокчейне. Точно также, невозможна подделка информации в самом Blockchain, так как информация о всей сети находится у всех участников. Blockchain существует до тех пор, покуда существует хоть один компьютер с информацией о сети. Как видим, Биткоин надежная, безопасная и защищенная от подделки платежная система.

Bitcoin часто сравнивают с золотом. Биткоин ограничен в количестве и его сложно добывать, как и золото. 21 миллион монет – лимит Биткоина, больше этого количества не может быть произведено майнерами. На середину января 2018 года добыто почти 18 миллионов Биткоинов. С каждым годом усложняются условия для добычи Биткоина, по подсчетам, последний Биткоин будет добыт в 2039 году.
Сатоши - это одна стомиллионная часть Биткоина. Поскольку выпуск Биткоина ограничен, было принято решение раздробить целое число монеты на мелкие части. Один сатоши это минимальное значение цены Биткоина, что-то наподобие одной копейки в денежной системе российского рубля. Для удобства представляем вашему вниманию список обозначений сатоши по отношению к Биткоину:Как создается Биткоин. Новые Биткоины добываются так называемыми майнерами благодаря вычислительным мощностям компьютеров. Чтобы создать новый блок для записи транзакции, компьютер должен решить математическую задачу. Чем мощнее компьютер, тем быстрее он решает задачи и, соответственно, быстрее создаются блоки. Создание новых блоков приносит майнерам вознаграждение в виде Биткоинов. То есть, новые Биткоины создаются сетью после каждого решения компьютером математической задачи. Владелец компьютера, решившего задачу, становится обладателем новых Биткоинов. Награда за создание одного блока – 12.5 Биткоинов. Таким образом, каждый желающий может участвовать в процессе создания Биткоинов.Почему Биткоин растет в цене? Монета постоянно дорожает из-за многих факторов. Первое, это популяризация. Насколько уникальна и удобна система, на которой работает Биткоин, мы уже убедились. Чем больше людей знает и понимает, как работает Биткоин, тем дороже он стоит, поскольку его скупают все больше и больше. Второе, это уникальная технология, благодаря которой обмен денег становится проще, быстрее и удобнее. Третье, активное внедрение технологии Blockchain в финансовый сектор мировой экономики.

Я думаю, что рост Биткоина продолжится. Я считаю, что Биткоин недооценен на данный момент. Биткоин фактически представляет собой деньги, которые с течением времени только дорожают. Если во всем мире любая валюта создана так, что она подвержена инфляции и с каждым днем дешевеет. А Биткоин наоборот, дефляционная валюта. С течением времени Биткоин становится только дороже. Многие эксперты уверены, что Биткоин может сделать мировую финансовую систему лучше, быстрее и удобнее. Биткоин это не пузырь и не финансовая пирамида, за ним стоит уникальная технология обмен денежными средствами. Мы рекомендуем вам после прочтения этой статьи купить себе определенное количество Биткоинов, необязательно целый Биткоин, монету можно купить в тысячных или миллионных долях (100 тысяч сатоши стоят приблизительно 13 долларов). И вы сами увидите, как через маленький промежуток времени инвестиции в Биткоин принесут вам прибыль. Купить Биткоин по самому выгодному курсу можно на крипто бирже

Не так давно в очередном недельном отчете по моим инвестициям, я рассказывал о , как о новом перспективном инвестиционном инструменте. Только за первую неделю торговли Биткоинами я заработал более 200$ при депозите 800$, т.е. 25% за неделю. Ради справедливости отмечу, что мне немного повезло, т.к. я покупал монеты Bitcoin при сильном восходящем ценовом тренде (цена поднималась выше 1000$). После публикации отчета, от читателей ленивого блога сразу же посыпались вопросы типа:

  • что такое биткоин (bitcoin)?
  • не поздно ли инвестировать в биткоины?
  • как заработать на биткоинах?
  • где взять\купить биткоины?
  • как покупать биткоины на и ?

На эти и другие вопросы я обещал ответить подробным обзором, который вы сейчас и читаете. Итак, начнем с того, что вообще такое биткоины (bitcoin)? Этот вопрос был самым распространенным среди читателей.

Биткоин (bitcoin) — что это такое?

Я веду этот блог уже более 6 лет. Все это время я регулярно публикую отчеты о результатах моих инвестиций. Сейчас публичный инветпортфель составляет более 1 000 000 рублей.

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

Дословно биткоин (bitcoin) — «bit» единица информации, «coin» монета. По сути биткоин (официальное сокр. BTC) — это электронная платежная система (валюта), не имеющая единого информационного центра, поэтому у системы нет единого владельца. Можно сказать, что битки принадлежат тем, кто ими пользуется. Кстати, чаще всего в сети bitcoin называют именно битками.

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

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

  • LiteCoin (сейчас курс LTC колеблется в диапазоне 25-40$);
  • Namecoin (сейчас курс NMC колеблется в диапазоне 5-10$);
  • PPcoinn (сейчас курс PPC колеблется в диапазоне 3-5$).

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

Биткоин (bitcoin) для чайников


Для того, чтобы полноценно разобраться что же такое bitcoin перечислю основные отличия биткоинов от привычных денег:

  • Биткоины ничем не обеспечены

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

  • Нет единого центра

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

  • Ограниченное количество валюты

Исходный код системы запрограммирован таким образом, что изначально известно максимальное количество монет в системе (21 млн. монет). Запрограммировано не только максимальное количество, но и динамика эмиссии (выпуск новых монет), которая сейчас составляет 25 монет каждые 10 минут. Монеты распределяются среди, так называемых, майнеров, о которых я расскажу чуть позже. Каждые 4 годы эмиссия снижается вдвое.

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

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

  • Нет комиссий за транзакции

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

  • Полная анонимность биткоинов

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

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

Основные недостатки биткоинов

  • Нет единого регулятора

Так как нет единого центра, нет и возможности отменить операцию с биткоинами.

  • Сложность использования

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

  • Риск стать запрещеной валютой

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

Существует всего два способа как можно заработать на биткоинах:

  • Заработок на майнинге биткоинов

Майнинг (mining - добыча ископаемых) — добыча виртуальной валюты биткоин за счет вычислительных мощностей компьютера. Этот процесс нужен для обеспечения жизнедеятельности сети, именно майнеры (шахтеры виртуальной валюты) обеспечивают анонимность, безопасность и оперативность транзакций в системе bitcoin. Заработком для майнеров является новые монеты в системе (25 монет каждые 10 минут), которые распределяются среди майнеров. В настоящее время расчеты в системе bitcoin настолько сложны, что использование обычного компьютера для майнинга принесет только убытки (электроэнергия, амортизация и пр.). Для того, чтобы объединить вычислительные мощности майнеры объединяются в пулы, прибыль в которых делится пропорционально объёму произведенных расчетов.

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

  • Заработок на торговле биткоинами

Этот способ можно разделить на два: пассивное инвестирование в биткоины и активное спекулирование на курсе. Первый способ заключается в банальной покупке биткоинов и консервированием их под матрасом, в надежде, что через пару лет они будут стоить в десятки раз больше, чем сейчас. Кстати, недавно читал статью ведущего аналитика Bank of Amerika, который провел исследование и утвержает, что цена битков будет только расти минимум до отметки 300$ (сейчас цена за 1 BTC=2500$).

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

Этот вариант очень похож на торговлю валютами на форексе, кстати, на бирже BTC-E.nz можно даже торговать с помощью торговой платформы MetaTrader 4. Именно, заработок на торговле биткоинами является наиболее прибыльным для частных инвесторов, т.к. не требует больших вложений. Инвестировать можно начать со 100$. Теперь давайте разберемся, где можно взять\купить биткоины.

Где взять биткоины?

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

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

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

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

Всем профита!

О криптовалютах, которыми можно расплачиваться в интернете, сегодня знают все пользователи сети, а если вы еще не успели узнать про криптовалюту у нас есть . И хотя на данный момент уже существует более десятка разных электронных валют, экспресс анализ которых вы можете посмотреть по ссылке , все же пальму лидерства среди виртуальных денег уверенно держит самая первая криптовалюта – bitcoin. В 2009 году, когда появился биткоин, стоимость одной виртуальной монеты равнялась 1$, а сейчас его актуальный .

Как выглядит биткоин

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

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

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

Монеты Bitcoin

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

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

  1. Из любого металла отливается монета оригинального дизайна
  2. На одну сторону монеты наносится номинал – 0,1 btc, 0,5 btc, 1 btc, 10 btc и др.
  3. Затем для каждой монеты генерируется уникальный биткоин адрес, который наносится на нее и закрывается голограммой
  4. Сверху голограммы прописываются первые 8 символов публичного ключа, чтобы покупатель монеты мог убедиться в ее подлинности.

Металлические монеты биткоин являются просто носителями уникальных биткоин-адресов и по факту не имеют преимуществ перед Bitcoin в электронном виде.

Эмиссия новых биткоинов

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

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

Майнинг биткоинов на компьютере и ASIC: рентабельность "фермерской" деятельности в 2017-2018 году

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

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

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

Как майнить биткоины в 2018 году: в пуле или самостоятельно?

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

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

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

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

Преимущества криптовалюты Bitcoin

Популярность криптовалюты 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
  • протокол
  • структуры данных
Добавить метки