Представь, что кто-то отправляет тебе 5 BTC.

Мы уже знаем, что это количество может быть представлено одним или несколькими UTXO... Но теперь возникает важнейший вопрос...

ЕСЛИ UTXO — ПУБЛИЧНЫЕ ДАННЫЕ, ПОЧЕМУ ПОТРАТИТЬ ИХ МОЖЕТ НЕ КАЖДЫЙ?

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

И вот здесь самое важное: ЭТИ УСЛОВИЯ ЗАДАЮТСЯ ПРИ СОЗДАНИИ ВЫХОДА, А НЕ КОГДА КТО-ТО ПЫТАЕТСЯ ЕГО ПОТРАТИТЬ...

Давай разберёмся шаг за шагом.

КАК UTXO СВЯЗЫВАЕТСЯ С ОПРЕДЕЛЁННЫМ КЛЮЧОМ?

Представим, что у Анны есть два математически связанных криптографических элемента:

ЗАКРЫТЫЙ КЛЮЧ, который нужно хранить в секрете и который позволяет создавать цифровые подписи.
И ОТКРЫТЫЙ КЛЮЧ, который позволяет проверять эти подписи... Чтобы получить биткоины, Анна сообщает адрес.
В одном из распространённых типов адресов, известном как P2WPKH, содержится закодированное представление криптографического отпечатка её открытого ключа.

Этот отпечаток получают с помощью хеш-функций. Это не закрытый ключ.

Теперь представим, что Бруно отправляет ей 5 $BTC .

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

ГДЕ ЗАПИСЫВАЕТСЯ ЭТО УСЛОВИЕ?

В поле выхода под названием scriptPubKey.

В нашем примере с P2WPKH это поле содержит хеш открытого ключа Анны....

Когда транзакция подтверждается, это условие записывается в блокчейн.

Если выход ещё не был потрачен, он является UTXO.

И КАК BITCOIN УЗНАЁТ, ЧТО АННА МОЖЕТ ЕГО ПОТРАТИТЬ?

Предположим, Анна хочет использовать эти 5 BTC.

Чтобы авторизовать расходование, она создаёт ЦИФРОВУЮ ПОДПИСЬ с помощью своего закрытого ключа; подпись связана с данными новой транзакции.

Также она предоставляет свой открытый ключ.

При таком типе операции оба элемента включаются в структуру под названием witness, используемую в SegWit.

Теперь в дело вступают узлы Bitcoin.

ЧТО ИМЕННО ОНИ ПРОВЕРЯЮТ?

Во-первых, они вычисляют хеш предоставленного открытого ключа и проверяют, совпадает ли он с хешем, записанным в scriptPubKey.

Во-вторых, они математически проверяют, действительна ли цифровая подпись для этого открытого ключа и подписанных данных операции.

Если обе проверки пройдены успешно, условие расходования считается выполненным.

Чтобы транзакция была действительной, она также должна соответствовать остальным правилам Bitcoin.

А ЧТО, ЕСЛИ СОСЕД АННЫ ПОПЫТАЕТСЯ ПОТРАТИТЬ ЭТИ БИТКОИНЫ?

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

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

А если он воспользуется открытым ключом Анны?... Этого тоже недостаточно.

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

BITCOIN НЕ ПРИНИМАЕТ ЛЮБОЙ КЛЮЧ. ОН ТРЕБУЕТ АВТОРИЗАЦИЮ, УДОВЛЕТВОРЯЮЩУЮ КРИПТОГРАФИЧЕСКОМУ УСЛОВИЮ, УСТАНОВЛЕННОМУ ДЛЯ ЭТОГО ВЫХОДА.

И вот что удивительно: чтобы подтвердить эту авторизацию, Анне не нужно раскрывать свой закрытый ключ.

ЗАКРЫТЫЙ КЛЮЧ ИСПОЛЬЗУЕТСЯ ДЛЯ ПОДПИСАНИЯ. ОТКРЫТЫЙ КЛЮЧ ПОЗВОЛЯЕТ ПРОВЕРИТЬ ПОДПИСЬ.

ВСЕ UTXO РАБОТАЮТ ИМЕННО ТАК?

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

ТАК ЧТО ЖЕ ЗНАЧИТ КОНТРОЛИРОВАТЬ БИТКОИНЫ?
Это значит располагать средствами, необходимыми для выполнения условий расходования определённых UTXO.

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

И есть ещё одно различие, которое нельзя упускать из виду.

КРИПТОГРАФИЧЕСКИЙ КОНТРОЛЬ НЕ ОБЯЗАТЕЛЬНО ОЗНАЧАЕТ ПРАВО СОБСТВЕННОСТИ.

Если кто-то незаконно получит закрытый ключ, он может суметь потратить определённые UTXO. Но это не делает его законным владельцем этих средств.

Bitcoin проверяет технические условия, а не удостоверения личности и права собственности.

ТЕПЕРЬ ВОЗНИКАЕТ ЕЩЁ ОДИН ВОПРОС...

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

Это напрямую подводит нас к следующему разделу
ЧТО НА САМОМ ДЕЛЕ ДЕЛАЕТ БИТКОИН-КОШЕЛЁК?...

#CRİPTO #bitcoin #claves