Откуда пришёл Биткоин?

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

 

Предприимчивый торговец Юджин продает кроссовки через онлайн-магазин, и в один прекрасный момент, решает принимать Bitcoin как средство оплаты. Покупатель Моррис, как раз имеет парочку Биткоинов, и решает приобрести новые кроссовки у Юджина.

Адреса и кошельки

Моррис является владельцем, Bitcoin-кошелька, который установлен у него на компьютере. Кошелек – это такая программа, которая предоставляет доступ к множеству Bitcoin-адресов. Адрес – представляет собой строку, состоящую из букв и цифр. Выглядит это следующим образом "1Bс8qza6fn7snSCyJcB2ZcN46biBtkТ4ее". На каждом адресе находится определенное количество Bitcoin.

" Хотя идея Bitcoin-адресов, которые выполняют роль банка очень заманчива, их работа устроена совершенно по-другому. Пользователи Bitcoin могут создать неограниченное количество новых адресов. Учитывая данный факт, схема типа: «Новый адрес -> Новая транзакция», позволяет сохранить анонимность. Таким образом доказать какую-либо связь Морриса и адрес-кошелька просто невозможно."

Создание нового адреса

Юджин создает новый Bitcoin-адрес, на который в скором времени Моррис, сможет отправить плату за кроссовки.

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

Отправление платежа

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

Подтверждение транзакции

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

 

Криптографические хэш-функции превращают набор данных в строку, состоящую из букв и цифр, определенной длины, так называемую хэш-значением. Малейшее изменение исходных данных кардинально изменяет значение хэша. При это определить какому набору данных принадлежит конкретное хэш-значение, практически невозможно. К примеру, возьмём фразу «Bitcoin user» как исходные данные, можно увидеть, как будет изменятся хэш значение при малейшем изменении:

 

  • Bitcoin user>>> 6d0a 1889 084b… (Еще 56 знаков)
  • Bitcoin vser >>> 521d 8bg4 6cca…
  • Bitcoin vcer>>> n1jk 9dd7 2810…

 

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

Представим следующую схему:

           Значение хэш + транзакционный блок + число -> Новое хэш значение

Новое хэш значение + транзакционный блок + число -> Новое хэш значение

Новое хэш значение + транзакционный блок + число -> Новое хэш значение

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

Или же более наглядно:

  •  Bitcoin user???>>> 0000 0000 0000…

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

 

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

 

Финал. Транзакция получила подтверждение

По прошествии времени, платеж Морриса - Юджину, теряется глубоко в потоке более свежих транзакций. Для изменения конечной суммы платежа любому из получателей придется успешно подобрать хэш в объёме работы равной сумме работы Сильвестра и других пользователей. Этот процесс равносилен поиску крупинки золота в тонне песка. Пользователя, сумевшего совершить такой подвиг можно смело назвать Великим.