Как устроен биткоин

Как устроен биткоин

Dark Side

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

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

SHA-256 — алгоритм шифрования, используемый сетью биткойн.

Блокчейн — цепочка блоков, из которых собственно состоит биткойн.

Блок — единица записи информации в сети биткойн. Блок состоит из заголовка и списка транзакций.

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

1) решением задачи;

2) фактом эмиссии новых монет;

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

4) списком всех этих транзакций, с указанием кошельков отправителя и получателя, времени и суммы а также public message.

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

Теперь немного остановимся на деталях. Во первых следует знать что алгоритм, по которому происходит хэширование включает в себя некоторые элементы защиты от взлома. Например, хэш каждого блока алгоритмически непосредственно связан с предыдущим блоком. То есть, если условно представить себе хэш функцию в виде x*y*z=f, то х — это будет хэш предыдущего блока. Что это значит? Это значит что каждый последующий блок неразрывно связан с предыдущим, и если какой нибудь нечестный майнер в какой-то момент решит сгенерить невалидный блок, то остальные участники сети не подтвердят его, т.к. в нем не будет использован хэш предыдущего блока. А если он решит изменить и хэш предыдущего блока, то прийдется делать это и для предпредыдущего, и так далее до самого первого блока. Что потребует от него такое количество работы, которое на данный момент практически не под силу одному человеку или даже крупной организации. Это один из главных защитных механизмов биткойна от взлома.

Теперь давайте рассмотрим механизм награды. Когда найден новый блок в самом его начале записывается особая транзакция — «generated». Она свидетельствует о создании новых монет. Изначально награда за блок составляла 50 монет, но согласно алгоритму каждые 200 тысяч блоков она будет уменьшаться в 2 раза, например на данный момент она составляет 25 монет, а когда будет найдено 400 тысяч блоков станет 12,5 и так далее.

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

Для начала вы можете ознакомиться с этим графиком.


Во первых полезно знать что всего биткойнов может быть 21 миллион. Для начала это может показаться неудобным, ведь 21 миллион это слишком мало денег чтобы обеспечивать нормальное функционирование современной экономики. Но это также предусмотрено создателем и у биткойна есть такое качество как масштабируемость, т.е. 1 монету можно разделить не на 100 частей, как это обычно принято с традиционной валютой, а вплоть до 8 знака после запятой. Таким образом за единицу можно принять 0,00000001 БТС что в итоге нам дает 10^14 единиц валюты, или 100 триллионов. На данный момент суммарный ВВП Земли составляет порядка 70-80 триллионов, т.е. теоретически биткойн может заменить все деньги на Земле.

Однако давайте вернемся к графику. Как вы видите, он представляет собой экспоненциальную кривую, которая четко определяет сроки и объемы эмиссии новых монет. Каждый блок находится примерно раз в 10 минут, и этот показатель будет плюс-минус неизменным до того времени как будет добыта последняя монета. А будет она добыта в 2140 году. За счет чего достигается такое четкое следование графику?

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

Теперь давайте рассмотрим из каких элементов состоит сеть биткойн. Простейший ее узел — это кошелек.

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

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

Следующий важный параметр вашего кошелька это адрес. Адрес представляет собой уникальную буквенно-числовую строку длиной в 34 символа, например вот такую — 1AndaMRzGuKLaF6kjL4BoYX4p3GnoV7Fbo. Очень важно не путать понятие кошелька и адреса — кошелек один, а адресов у него может быть сколько угодно. Это еще одно из преимуществ биткойна, позволяющее вам дифференцировать свои финансовые потоки. Для того чтобы получить свой адрес вам необходимо запустить свой кошелек и перейти на вкладку «Получение монет» (Receive). Изначально там уже будет один адрес, но если у вас будет необходимость то вы можете создать сколько угодно еще нажав кнопку «Новый адрес». Зачем это нужно? Если вы обычный человек и вам нужен один адрес то вы вполне можете обходиться первым. Но если вы например ведете частную предпринимательскую деятельность, получая одинаковые платежи от разных людей, то вам нужен какой-то инструмент чтобы понимать от кого пришел платеж. Разные адреса — это как раз такой инструмент. Принимая платеж от человека вы каждому даете уникальный адрес и потом всегда сможете проверить от кого поступили деньги.

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

Следующим важным узлом сети являются майнеры. Майнеры это собственно люди благодаря которым биткойн существует. Т.к. в сети постоянно проходят транзакции им соответственно всегда нужны подтверждения. Подтверждения это новые блоки, а новые блоки находят майнеры. Так что же такое майнинг и кто такие майнеры? Майнинг это процесс поиска новых блоков, а майнерами называют:

а) программное обеспечение, которое собственно и осуществляет управление поиском блоков (например cgminer или bfminer);

б) аппаратную часть (компьютеры с соответствующими видеокартами или АСИКи);

в) а также тех людей которые этим занимается.

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

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

Мощность (Hashrate) сетиСложность (Difficulty)20100,0000007 Тхэш/с1201325 Тхэш/с2 980 000201413 755 Тхэш/с1 418 000 000Чтобы вам стали более понятны эти цифры приведу небольшое сравнение. На планете Земля есть рейтинг супер-компьютеров, 500 самых вычислительно продуктивных машин человечества. Так вот, если сложить их вычислительную мощность вместе, они будут в 200 раз менее производельными чем сеть биткойн. Это опять таки к слову о попытке взломать биткойн грубой силой.

Как же получилось что мощность сети настолько выросла за какие-то пару лет? Конечно, это во многом связано с тем, что биткойн в какой-то момент стал финансово выгодным. Когда его цена выросла до нескольких долларов за штуку особенно умные люди задумались как бы оптимизировать процесс их добычи и повысить свою прибыль? Тогда на смену обычным процессорам пришли видеокарты. Оказалось что графические процессоры намного лучше подходят для перебора хэша и это было первой революцией в сфере майнинга. Когда эта информация стала достоянием общественности видеокарты ATI Radeon сметались с полок магазинов подчистую. Но человеческая изобретательность не знает предела, и в какой-то момент инженеры и программисты собравшись вместе придумали АСИК — чудо машину для копания биткойнов. Т.е. АСИК они конечно не придумали, они были известны давно, они придумали как сделать АСИК конкретно для биткойна. Первые разработки начались в 2012 году, но фактически они поступили в продажу и получили распространение в 2013.



Report Page