Начальный Урок 2 4 мин чтения

Как работает Биткойн, от начала до конца

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

Никто не отправляет биткоин кому-либо. Ничего не выходит из вашего телефона и не приходит на телефон другого, никакой файл не пересекает интернет, неся в себе ценность. То, что пересекает, — это объявление: короткое сообщение, говорящее, что определенные монеты, которые до сих пор могли быть перемещены только тем, у кого есть ключ, теперь могут быть перемещены только тем, у кого есть другой. Все остальное — это сеть, соглашающаяся с этим объявлением.

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

Назначение и сумма. Никаких имен, никаких документов, никаких учреждений посередине.

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

Осталось авторизовать. Кошелек подписывает транзакцию вашим приватным ключом, который ни в коем случае не покидает устройство. Подпись не раскрывает ключ; она доказывает, для тех, кто хочет проверить, что тот, кто написал это сообщение, имел ключ, способный перемещать эти монеты. Это цепочка подписей из Урока 1, получающая еще одно звено.

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

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

Теперь она ждет. Каждая из этих машин хранит действительные транзакции, которые еще не вошли ни в один блок, в зале ожидания, называемом mempool. Это не очередь по порядку поступления. Тот, кто собирает следующий блок, выбирает, что будет внутри, и выбирает по тому, кто платит лучше за пространство — комиссия. Платить мало в загруженный день — это ждать; платить хорошо — это попасть в следующий блок. Это аукцион, и вы сделали свою ставку, когда нажали "отправить".

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

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

Теперь у платежа есть одно подтверждение. С этого момента каждый блок, сложенный сверху, — это еще одно. Не существует штампа "окончательный": существует глубина. Отменить платеж с одним подтверждением потребовало бы переделать блок; отменить с шестью — переделать шесть, и быстрее, чем остальной мир строит следующие. Поэтому дом подождал бы несколько подтверждений, а хлеб выдается сразу — пекарь рискует всего лишь несколькими центами, и он это знает.

Не существует штампа окончательный. Существует глубина: каждый блок, сложенный сверху, — это еще одно подтверждение.

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

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