Биткойн или Биткоин (англ. Bitcoin, от bit — «бит» и coin — «монета») — пиринговая платёжная система, использующая одноимённую расчётную единицу и одноимённый протокол передачи данных. Для обеспечения функционирования и защиты системы используются криптографические методы. Вся информация о транзакциях между адресами системы доступна в открытом виде.

биткоин

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

Разные авторы по-разному классифицируют биткойны. Чаще всего встречаются варианты: криптовалюта, виртуальная валюта, цифровая валюта, электронная наличность.


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

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

Одна из главных особенностей системы — полная децентрализация: нет центрального администратора или какого-либо его аналога. Необходимым и достаточным элементом этой платёжной системы является базовая программа-клиент (имеет открытый исходный код). Запущенные на множестве компьютеров программы-клиенты соединяются между собой в одноранговую сеть, каждый узел которой равноправен и самодостаточен. Невозможно государственное или частное управление системой, в том числе изменение суммарного количества биткойнов. Заранее известны объём и время выпуска новых биткойнов, но распределяются они относительно случайно среди тех, кто использует своё оборудование для вычислений, результаты которых являются механизмом регулирования и подтверждения правомочности операций в системе «Биткойн» (см. метод доказательства выполнения работы).


Принцип работы

Биткойны существуют только в виде записей в распределённой базе (см. Blockchain), в которой в общедоступном открытом (нешифрованном) виде хранятся все транзакции, с указанием биткойн-адресов отправителей/получателей, но без информации о реальном владельце этих адресов[11]. В базе нет отдельных записей о текущем количестве биткойнов у какого-либо владельца. Лишь на основании цепочек транзакций становится понятным текущее количество биткойнов, связанных с тем или иным биткойн-адресом. То есть можно увидеть, что на адрес поступил 1 биткойн, а по другой транзакции на этот же адрес поступило 2 биткойна, третья транзакция отправила с этого адреса 1 биткойн. Но в базе не хранится отдельной записи, сколько всего сейчас биткойнов числится за данным адресом — просто предоставляется возможность в любой момент это легко подсчитать. Такие подсчёты автоматически делают клиентские программы, пользователь может и не замечать раздробленности информации.

блокчейн

Ключи

Каждый пользователь системы может генерировать неограниченное количество пар ключей (алгоритм ECDSA с параметром secp256k1). Размер закрытого ключа — 256 бит, а соответствующего ему открытого ключа — 512 бит.

Основное использование ключей — создание биткойн-адреса и подтверждение правомочности формирования транзакций. Но они могут использоваться и для цифровой подписи или шифрования при переписке.

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

Хранить ключи можно на любом носителе, не только на карте памяти, но и в бумажном виде. Существуют онлайн кошельки, например, Blockchain.info, Circle Snapcard или Coinbase, которые достаточно просты в использовании. Но проблемы с сайтом такого сервиса могут приводить к потерям.

Адресация

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

Биткойн-адрес является последовательностью байт, полученных в результате преобразования открытого ключа. Чаще всего кодированием Base58 адрес записывают как строку длиной до 34 букв латинского алфавита и цифр. Первый символ адреса является всегда единицей для обычных адресов или тройкой для адресов созданных с использованием мультиподписи. Часть символов является контрольной суммой, проверяющей корректность основной части адреса, которая, в свою очередь, является полностью случайным результатом операций хэширования открытого ключа. Такие адреса как 1111111111111111111114oLvT2 или 1BitcoinEaterAddressDontSendf59kuE являются корректными, однако наличие у кого-либо соответствующего им приватного ключа вычислительно неосуществимо, поэтому такие адреса могут использоваться например для уничтожения биткойнов. Адреса с небольшим количеством неслучайных символов могут быть получены в распоряжение путём перебора.

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

Если секретный ключ утерян, биткойн-сеть не примет никаких других доказательств права собственности. Создать для существующего адреса новый ключ не получится, так как уникальной паре ключей всегда соответствует свой адрес. Биткойны, связанные с адресом, для которого нет закрытого ключа, становятся недоступными, фактически утрачиваются. В конце ноября 2013 года на BBC прошёл сюжет о британце, который на местной свалке искал выброшенный им ранее свой старый компьютерный жесткий диск с секретным ключом к адресу, на котором ещё с 2009 года хранилось 7,5 тыс. биткойнов. Из новостей британец узнал о значительном росте курса биткойна и «осознал, что натворил». На момент «раскопок» стоимость утраченных биткойнов превысила 7,5 млн долларов.

Конфиденциальность

Традиционная модель достигает секретности путём ограничения доступа к информации. О сделке могут знать только две стороны и банк. В системе «Биткойн» все транзакции публичны, хранятся в открытом нешифрованном виде, а секретность достигается отсутствием персонификации владельцев адресов. Сатоси Накамото для конфиденциальности рекомендует создавать отдельные адреса для каждой транзакции. Это осложняет сопоставление адресов с одним владельцем.

По мнению ряда авторов, биткойн-адреса являются псевдонимами пользователей системы. Если связать биткойн-адрес с конкретным человеком, то исчезает анонимность всех транзакций с использованием этого адреса. В июле 2011 года было показано, что на основе общедоступной информации возможно связать многие открытые ключи как друг с другом, так и с определённой внешней идентифицирующей информацией. Обменники, магазины и хранилища кошельков, опираясь на e-mail, IP, номера кредитных карт и т. п., способны выявлять и персонифицировать значительную часть операций.

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

Также для сохранения конфиденциальности может быть применён «биткойн-миксер», который в одной транзакции смешивает на входе биткойны разных пользователей и производит одновременно много платежей. Это затрудняет сопоставление, кто куда платил.

Транзакции

Биткойны могут быть переданы любому, кто сообщит корректный биткойн-адрес или открытый ключ. Минимальная передаваемая величина 10−8 биткойнов получило название «сатоши» — в честь создателя Сатоси Накамото, хотя сам он использовал для обозначений минимальной передаваемой величины слово «цент». Для передачи биткойнов текущий владелец создаёт новую транзакцию, которая помимо указаний о количестве передаваемых биткойнов содержит подписанный инициатором хеш предыдущей транзакции, по которой биткойны были получены. Предыдущая транзакция становится «входом» текущей транзакции. Также указывается публичный ключ или биткойн-адрес нового получателя («выход») (см. схематическую структуру на рисунке). Транзакция широковещательным запросом по открытым каналам без шифрования отправляется в сеть. Остальные узлы сети, прежде чем принять транзакцию к обработке, проверяют подписи. Правильность подписи свидетельствует, что инициатор действительно является владельцем секретного ключа для адреса «выхода».

Транзакции поддерживают произвольное количество «входов» (ссылок на предыдущие транзакции, в том числе в пользу разных адресов) и «выходов» (указания о получателях). Значения со всех «входов» суммируются, и сумма распределяется по «выходам».

Особенностью протокола является невозможность взять лишь некоторую часть биткойнов из «входа». Если на адрес было передано 2 биткойна одной транзакцией, то при следующей операции с указанием этой транзакции в качестве «входа» автоматически будет подразумеваться передача 2 биткойнов. Однако их можно распределить на несколько «выходов», один из которых может указывать на этот же адрес, то есть часть биткойнов будут переданы самому себе («сдача»). Но остаток не обязательно отправлять на адрес из входного списка. Например, «Bitcoin-qt» отправляет каждый остаток на новый биткойн-адрес из резерва заранее созданных адресов.

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

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

Комиссионные сборы

В системе «Биткойн» не предусмотрено обязательной комиссии. Пользователи могут добровольно установить любой её размер. Если сумма «входов» транзакции больше суммы «выходов», то разница считается комиссией и она достанется создателю блока с данной транзакцией. Различные программы-клиенты имеют свои правила и настройки относительно комиссии и чаще всего рекомендуемый размер комиссии они вычисляют автоматически.

Тот, кто генерирует новый блок, может по своему усмотрению добавлять в него транзакции из очереди. Например, он может отобрать только транзакции с комиссией. По состоянию на начало 2015 года обычно 50 000 байт в блоке резервируется под приоритетные транзакции вне зависимости от комиссии. За счёт транзакций с комиссией величина блока может достигать 750 000 байт. Между компьютерами сети «Биткойн» установлено ограничение скорости в 15 килобайт в минуту для ретрансляции информации о транзакциях без комиссии, которые ещё не включены ни в один блок. Таким образом, нет гарантии, что транзакция без комиссии будет включена в ближайший блок.

биткоин

Блоки транзакций

Основная последовательность блоков (чёрные) является самой длинной от начального (зелёный) до текущего. Побочные ветви (фиолетовые) отсекаются.

Отдельные транзакции объединяют вместе с другими транзакциями в специальную структуру — блок. Информация в блоках открыта, не шифруется, её можно быстро перепроверить.

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

Первая транзакция в блоке всегда формируется автоматически и передаёт вознаграждение за создание блока. Остальное наполнение блока берут из очереди транзакций, которе ещё не были записаны в предыдущие блоки. Создающий блок участник может сам отобрать включаемые в блок транзакции, например, не взять в блок транзакции без комиссии.

Не всякий сформированный блок будет принят остальными участниками. Требуется, чтобы числовое значение хеша заголовка не превышало установленного значения (параметр «сложность»). Чем меньше задано значение, тем меньше вероятность выполнения условия. В служебной области блока выделено место для произвольных значений. Если хеш заголовка неудовлетворителен, произвольные значения заменяются на новые и расчёт хеша повторяется. Результат хеширования (функции SHA-256) непредсказуем, поэтому нет алгоритма целенаправленного изменения произвольной области для достижения желаемого результата. Обычно требуется большое количество пересчётов. Параметр «сложность» примерно раз в две недели автоматически устанавливается так, чтобы поддерживать постоянной среднюю скорость создания блоков (примерно 1 блок в 10 минут). Если блоки формируются быстрее, то после пересчёта «сложности» достичь цели становится труднее, и наоборот. Поэтому изменение суммарной вычислительной мощности сети лишь очень незначительно изменяет количество создаваемых блоков.

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

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

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

КУРС БИТКОЙН

Комментарии:




Июнь 2018
Пн Вт Ср Чт Пт Сб Вс
« Май    
 123
45678910
11121314151617
18192021222324
252627282930