Главная » Статьи » Как работает биткоин. Технология блокчейн простыми словами

Как работает биткоин.

Биткоин начало.

В этой статье Вы узнаете:
Кто придумал сеть биткоин (bitcoin).
Каким образом работает биткоин и практически все криптовалюты.
Как устроен блокчейн и вообще что такое блокчейн и зачем он нужен.

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

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

термины:

Биткоин кошелёк- программное приложение для хранения и распоряжения электронной криптовалютой биткоин.

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

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

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

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

Биткоин ферма - очень мощный блок питания и много дорогостоящих видеокарт для компьютера с большим объёмом памяти.

Хеш - кодирует любые слова или цифры в строку символов.
Например слово "биткоин" после обработки специальной функцией хеширования,
превращается в это "9ce83eab9a4e54c278d3e0fefbf1c39abd6ebc46887584a6dcbd5558ceb1b9ac",
а например цифра "1" после обработки той же функцией
превращается в это "6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b".
Выражение "как работает биткоин"
превращается в это "f94352d68a9e352d6daf63e0781f5bf9d223fc1fd39b57d0923bf93c5bd335ad",
тоже выражение только большими буквами "КАК РАБОТАЕТ БИТКОИН"
превращается в это "c80de8cfa787989e2fe6873a879dd93d758872cf12cc6331812239d05cb927f2".
Специальная функция хеширования называется SHA-256.

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

персонажи:

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

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

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

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

31 октября 2008 года, некий Сатоши Накамото (Satoshi Nakamoto) опубликовал статью «Bitcoin: A Peer-to-Peer Electronic Cash System» (она же на русском) в которой подробно (на восьми страницах) описал работу биткоин. Спустя некоторое время, в начале 2009 года он запустил сеть биткоин и выпустил первую версию биткоин кошелька.
Кто такой Сатоши Накамото (Satoshi Nakamoto), или это псевдоним человека, или это группа людей, никому неизвестно. Так как Сатоши всегда выходил в интернет, используя сеть Tor и другие средства для создания анонимности. С середины 2010 года Сатоши Накамото (Satoshi Nakamoto) внезапно перестал участвовать в дальнейшей разработке своего проекта биткоин.


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

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

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

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

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

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


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

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

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

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

Ох как бы мне хотелось описывать всё очень доступным языком, но чувствую предыдущий абзац с этими ключами, получился каким то сложным. К сожалению мне просто необходимо было расписать применение ключей наиболее подробным образом, иначе Вы можете не понять на чём основано решение вопроса безопасности системы биткоин.
Например, возьмём нашу смоделированную ситуацию, где Маша отправила Кате 2 биткоина. Что например помешало тому же Анониму, перехватить транзакцию Маши и подменив данные отправить биткоины себе?
Отправляя биткоины Кате, кошелёк Маши создал новую, общедоступную транзакцию, как бы сообщая пользователям сети, что я отправил 2 биткоина на кошелёк Кати, транзакция же в свою очередь попала в хранилище неподтверждённых транзакций. Теперь "толстые кошельки" будут проверять эту транзакцию путём привязанных к цифровой подписи вычислений, чтобы убедится что цифровая подпись соответствует тексту в сообщении и у отправителя транзакции имеется приватный ключ от этой транзакции, при этом они никогда не увидят сам приватный ключ Маши.
Важным моментом является тот факт, что цифровая подпись также всегда уникальна и абсолютно новая для каждого сообщения и если бы Аноним умудрился изменить текст в транзакции Маши (например подставив туда свой номер кошелька), то сама сеть биткоин отклонила бы такую транзакцию, так как цифровая подпись и текст в сообщении не совпадают. Повторное использование подписи для транзакций тоже невозможно.


баланс биткоин кошелька

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

Давайте посмотрим, что произошло в момент отправки биткоинов для кошелька Кати.
Кошелёк Маши отправил в сеть подписанное сообщение о переводе (создал транзакцию выхода) двух биткоинов на кошелёк Кати и дополнительную транзакцию входа на 1 биткоин для самого себя (зачем вторая транзакция расскажу ниже). Указав в качестве транзакции входа (откуда в кошельке появились биткоины), ссылку на предыдущую транзакцию от Коли, где Коля когда то перевёл Маше 3 биткоина. Сеть (то есть "толстые кошельки" онлайн) проверили цифровую подпись транзакции Маши на предмет владения приватным ключом от этой транзакции.
Далее пошла проверка транзакции входа указанной в ссылке. Сеть стала проверять, правда ли Коля когда то отправлял Маше 3 биткоина и не успела ли Маша их куда либо истратить.
Проверив все состояния, сеть убедилась что транзакция верная и подтвердила её, отправив транзакцию из временного хранилища в новый блок.
Для кошелька Кати, в общем списке транзакций (блокчейн) теперь есть запись о транзакции входа на 2 биткоина, где отправитель кошелёк Маши.
И для кошелька Маши, тоже появилась транзакция входа на 1 биткоин, где отправитель сама Маша.
При этом ссылка на входящую транзакцию 3х биткоинов для Маши от Коли стала израсходованной и её больше нельзя использовать.

Почему так? Зачем появилась вторая транзакция на 1 биткоин?
Потому что работа биткоин устроена по принципу израсходовать транзакцию входа полностью, что бы не сохранять много информации о старых входах в новые блоки. А так как подходящей транзакции входа равной двум биткоинам не нашлось, пришлось создать выход на 2 биткоина и вход на 1 биткоин (как бы сдача с трёх биткоинов от транзакции Коли).


биткоин блок

Вы уже наверно сами догадались, биткоин блоки - есть основа блокчейн (той самой огромной портянки файлов), ведь все совершенные кошельками пользователей транзакции, и входящие и исходящие, записываются именно в эти самые блоки.
Если представить, что сам блокчейн это огромная книга
(давайте условно так и сделаем), то блоки в этой книге, будут играть роль страниц, имеющих свой заголовок, абзацы и порядковый номер. Одно только отличие таких страниц от обычных в том, что заголовок каждой новой страницы, это хеш состоящий из хешей абзацев предыдущей
(хэш-дерева Меркла [7][2][5], подробнее об этом в оригинальной статье Сатоши Накамото. Стр.7).
И если хеш-заголовок страницы не совпадает с хешем абзацев предыдущей страницы, значит кто то вырвал оригинал и вклеил подделанную страницу. Из этого следует, что страница испорчена. Надо подделанную страницу вырвать и взять точную копию оригинала. Биткоин кошельки умеют самостоятельно проверять подлинность страниц и скачивать новые подлинники.
Более того, если какой либо кошелёк заметил подмену, он сразу сигнализирует сородичам в сети о подделке страницы и те начинают перечитывать свою копию книги, проверяя подлинную сохранность своих страниц (блоков). Давайте теперь посмотрим, как появляются новые страницы (блоки) в книге блокчейн.

Все узлы ( "толстые кошельки" онлайн) могут выбрать из общего пула неподтверждённых транзакций, любые которые ему нравятся. Обычно узлы выбирают транзакции с самой высокой комиссией, которую можно на ней заработать. Сбор транзакций проходит до тех пор, пока их суммарный размер не достигнет обговорённого лимита. Изначально максимальный вес блока был равен 1 Мб, на данный момент некоторые блоки даже превышают пределы 2 Мб, благодаря активации протокола SegWit.
Собрав необходимое количество транзакций, узел начинает составлять из них не подделываемый список путём парного сложения транзакций в хеш. Затем полученные хеши, также парами в хеш и так до тех пор, пока не получится один хеш, так называемый - корень дерева.
Такое сложение хешей, даёт возможность в будущем удалять ненужные (потраченные) транзакции из старых блоков, оставляя в блоке только их хеш. Это даёт возможность очистить блоки (и не делать портянку ещё больше) от так называемого мусора и в итоге ничего не нарушится.

Итак, хеш транзакций готов, что ещё делает узел чтобы завершить создание нового блока?
А дальше ему предстоит добавить ссылку на предыдущий блок (ну это совсем не сложно ведь подлинная книга блокчейн со всеми, в том числе и свежими страницами, у узла всегда "под рукой") в заголовок новоиспечённого блока, затем создать хеш (он же заголовок) таким образом, чтобы он был меньше некоторого, заранее заданного числа (внутри блока это число записано как "target").

Каким образом узел будет искать подходящий хеш новому блоку биткоин?
Да всё предельно "просто". Узлу необходимо в конец получившегося хеша добавлять поочерёдно число (число добавку называют "nonce") в конец заголовка созданного блока, чтобы результат был меньше "target". Какой узел первым решит такую задачу, тот блок и будет новой страницей в книге блокчейн, Из этого следует, чем быстрее узел хочет найти нужный "nonce", тем больше мощностей ему понадобится. При этом ещё и "target" меняется в большую, или меньшую сторону каждые 2016 созданных блоков (примерно каждые 2 недели), соответственно меняя при этом сложность задачки и создания нового блока.

С какой целью сделаны эти затруднения поиска подходящего хеша?
Всё дело в том, что по задумке работы биткоин, каждый новый блок должен создаваться примерно с периодичностью 10 минут, т.е прошло 10 минут - появился новый блок, ещё 10 минут и опять новый блок, еще 10 минут и снова блок и т.д.
Но так как в процессе работы биткоин задействовано огромное количество узлов (они же майнеры), то представляете сколько блоков эти узлы могут на создавать единовременно.
И что самое важное, всё это вполне законно по уставу биткоин. Далее, все эти копии блоков будут вклеены в книгу блокчейн и одна группа кошельков будет читать одну копию страницы, другая группа другую, третья третью и т.д. Сколько будет условных копий страниц в книге блокчейн, столько и групп кошельков будут придерживаться своей копии страницы считая её оригинальной (но на всякий случай другие копии страниц они тоже сохраняют)
В итоге конечно сеть биткоин исправит ситуацию и та группа которая первой вклеит в книгу блокчейн свою следующую страницу (новый блок) и будет истиной, а дубли страниц будут удалены из блокчейн (при этом записанные в них транзакции снова попадают в список неподтверждённых).
Короче, чтобы не происходили (или хотя бы максимально сократились) такие казусные моменты с созданием новых блоков и была придумана задачка для действующих узлов с использованием nonce и target.

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


Технология майнинга биткоинов.

Дело в том, что при создании каждого нового блока, в начало списка транзакций записывается специальная транзакция "coinbase transaction" входом этой транзакции является "coinbase"
(т.е. отправитель сама система), сумма указанная в этой транзакции, равна сумме всех комиссий в блоке плюс 12.5 BTC, а получатель транзакции тот кошелёк, который пытается выпустить этот новенький, готовый блок в сеть. Вот Вам и мотив создания новых блоков.

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

Всего для майнинга, сеть биткоин готова выделить 21 000 000 биткоинов.
За каждый созданный майнером новый блок, сеть сейчас даёт вознаграждение 12,5 биткоина.
В будущем эта цифра будет только уменьшаться, так как каждые 210 000 блоков
(примерно раз в 4 года) вознаграждение уменьшается в два раза.

Предполагаю Ваш вопрос про майнинг на домашнем компьютере.
Заниматься майнингом биткоинов на своём ПК сейчас бессмысленно!
Потому что сложность сети стала настолько велика, что параметры "target" сильно занижены и не каждая мега-ферма биткоинов может найти необходимый "nonce".
Более того, так оно теперь и есть!
В большинстве случаев узлам приходится прописывать в "coinbase data" так называемый
"extra nonce", так как для текущего "header" часто не удаётся найти нужного "nonce".

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

Пулы для майнинга криптовалют Вы можете посмотреть в специальном разделе сайта
Майнинг Криптовалют.


Как начать зарабатывать биткоины?

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

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

Для начала Вам необходимо получить сам кошелёк биткоин.
Можете использовать онлайн кошелёк от сервиса blockchain.com
Также Вам может пригодится микро кошелёк, куда Вы будете складывать мелкие суммы,
а затем переводить их скопом на основной кошелёк.
Микро-кошелёк FaucetPay

Проекты для заработка биткоинов можно посмотреть в разделах сайта
Буксы для заработка и в разделе Краны криптовалют.

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

Мы работаем с Payeer, ЮMoney, PerfectMoney, AdvCash, RegRu
6EB5-2BDE-3AF0-9048 Промокод скидка 5% на заказ домена или хостинга в REG.RU
© Lnterzarabotok.ru, 2016- 2024
Обратная Связь