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

Разработчики Blockstream ранее уже работали над решением, обеспечивающим наилучшее доказательство наличия резервов (proof-of-reserves) в отрасли, которое широко совместимо с тем, как большинство Биткоин-бирж хранят свои накопления. BIP был подан к рассмотрению разработчиков Bitcoin, а сами представители Blockstream принялись разрабатывать инструмент для обратной связи с отраслью.

С чего все началось

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

Традиционный подход

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

    1. Неосторожность пользователей. Как мы уже выяснили, каждая биржа использует подход «сделай сам», и решения доказательства наличия резерва являются техническими и незнакомыми. Пользователям приходится выяснять, как работают хранилища каждой отдельной биржи, с которыми они сталкиваются. Это приводит к тому, что люди больше верят и меньше проверяют.
    2. Перспектива взлома. Доказательство наличия резервов требует от обслуживающего персонала биржи демонстрации владения приватными ключами, связанными с кошельками биржи. Зачастую это включает перемещение всех средств на новый адрес — и создаёт мощный вектор для атаки хакерами, которые могут попытаться завладеть хранилищем.

Как работает Proof of Reserves

Как утверждают разработчики, вместо создания новомодного решения с нуля инструмент Proof of Reserves от Blockstream использует уже проверенные методы.

Если попытаться объяснить самым простым языком, Proof of Reserves позволяет бирже доказать, сколько биткоинов она могла бы потратить без необходимости создавать «живые» транзакции или подвергать себя риску перемещения средств.

Но если вдаваться в подробности и пытаться понять, что делает инструмент, давайте сперва разберёмся, что такое UTXO. Поскольку при каждом переводе биткоинов на протяжении всей истории существования сети используются одни и те же монеты (в рамках общего запаса монет, добытого на блокчейне, а не нарисованного, например, банком или другой третьей стороной), сегодня вы отправляете ровно те же монеты, которые получили до этого. Однако до тех пор, пока вы не потратили монеты, переведённые вам ранее, они будут считаться неизрасходованными (или в терминологии блокчейна — неизрасходованные выходы, Unspent Transaction Output или UTXO). Особенность же UTXO в том, что их нужно «израсходовать» или «потратить» всякий раз, когда они используются в качестве входов. То есть при отправке, например, 0,001 BTC из 5 BTC, которые были в виде UTXO у вас на кошельке, вы отправляете первую часть адресату, а вторую — самому себе. Сейчас многие кошельки делают это автоматически.

Используя инструмент, биржа сперва создаёт одну транзакцию, которая тратит все неизрасходованные выходы биржи (UTXO) и добавляет дополнительный неверный вход. При включении одного неверного входа вся транзакция становится недействительной и будет отклонена сетью при оповещении сети. Однако транзакция собрана таким образом, что её всё ещё можно использовать в качестве явного доказательства всех биткоиновых UTXO, которые может потратить биржа. Инструмент как бы обнажает все UTXO, выводит их наружу, а UTXO, как мы уже поняли, подтверждают наличие «неизрасходованных выходов», а значит и самих биткоинов на кошельках биржи.

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

Proof of Reserves написан на Rust, и в настоящее время поддерживает кошелек Bitcoin Core и Trezor. Поддержка Ledger также скоро появится.

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