Подтверждение обязательств
Подтверждено
Резерв всех активов клиентов Deribit составляет 1:1 — компания обеспечивает полную прозрачность наших активов. Криптографическое подтверждение обязательств, которое может быть проверено любой стороной, не полагаясь лишь на заключение доверенного аудитора, было впервые предложено Грегом Максвеллом в 2013 году и известно как протокол Максвелла. Первоначальное предложение заключалось в раскрытии информации о количестве и размере аккаунтов клиентов. Deribit использует слегка измененную версию, которая защищает конфиденциальность клиентов и обеспечивает полную прозрачность, предотвращая сокрытие балансов.
Компания Deribit построила схему бинарного хеш-дерева Merkle, в котором листья представляют собой стеганографированные (разделенные на части) балансы наших отдельных пользователей, разбитые по активам. Клиенты могут точно видеть, какие листья в дереве относятся к их средствам, используя уникальный хеш, созданный на основе информации их аккаунта. Установив отдельные обязательства, можно с легкостью проверить, сохраняется ли совокупность этих обязательств Deribit внутри сети.
См. файл ежедневного снапшота здесь.
Подтверждение активов
Подтверждено
Ниже приведен обзор основных адресов кошельков, используемых Deribit. Обратите внимание, что приведенный ниже список не включает адреса активов, хранящихся у сторонних хранителей, таких как Copper Clearloop и Cobo Loop.
Подтверждение ваших активов
1. Каждый день Deribit делает снапшот активов в сети для всех соответствующих требованиям аккаунтов. Активы, которые хранятся у сторонних хранителей, не могут быть включены в отчетность, поскольку они не находятся под непосредственным контролем Deribit. Таким образом, файл данных, полностью доступный для всех заинтересованных сторон, содержит информацию только по тем аккаунтам, активы которых хранятся в Deribit.
2. В отличие от подхода Максвелла, измененная модель подтверждения активов Deribit включает стеганографию (перестановку данных баланса) балансов наших пользователей для защиты конфиденциальности клиентов и предотвращения раскрытия фактических балансов и связи с адресами блокчейна или конкретными пользователями. Это очень важно, поскольку мы раскрываем полный список аккаунтов. Только клиент может распознать свои активы в списке.
3. Во внешнем интерфейсе Deribit (см. здесь) клиенты найдут хеш, позволяющий им убедиться, что их активы включены в файл активов как на уровне основного аккаунта, так и на уровне субаккаунта.
4. Весь код, используемый для создания измененного дерева Merkle Tree Deribit, доступен ниже. Благодаря этому клиенты могли проверить точность данных, представленных во внешнем интерфейсе. Для предотвращения назначения одних и тех же одноразовых случайных чисел разным пользователям с сопоставимыми уровнями активов, что повлечет за собой уменьшение размера обязательств, мы присваиваем каждому аккаунту уникальный идентификатор подтверждения (Proof ID). Используя приведенные ниже инструкции, клиент может преобразовать Proof ID в идентификаторы, найденные в ежедневном файле снапшота и указанные в разделе проверки страницы подтверждения резервов.
5. Совокупность активов, включенных в файл активов, всегда должна быть меньше, чем совокупность активов, доступных в сети. Разница заключается в коэффициенте резерва Deribit, который включает в себя страховые фонды и доходы Deribit. Если общий баланс цепочки выше, чем баланс файла актива (который можно просмотреть во внешнем интерфейсе и в самом файле), это значит, что Deribit имеет подтверждение резервов.
Код пользователя
1. Пользователь может найти свой Proof ID во внешнем интерфейсе. Пользователь может проверить уникальность своего Proof ID, выполнив следующие действия:
A. Проверка подписи
— Получите идентификатор пользователя и подпись Proof ID на странице «Подтверждение резервов»
— Загрузите последний снапшот подтверждения резервов и скопируйте открытый ключ (public_key field in json file)
— Используйте алгоритм подписи Ed25519 для проверки того, что подпись Proof ID использовалась для подписания идентификатора пользователя
инструмент: https://ed25519.altr.dev/ (Base64)
— Сообщение = идентификатор пользователя
— Подпись = подпись Proof ID
B. Подтверждение Proof ID
— Base64url декодирует Proof ID и подпись Proof ID
инструмент: https://cryptii.com/pipes/base64-to-hex (Variant = Base64url, Format: Hexadecimal Group By = None)
— Проверьте, соответствует ли sha1 (декодированная подпись Proof ID Base64url) декодированному Proof ID Base64url
инструмент: https://emn178.github.io/online-tools/sha1.html (Input Type = Hex)
2. Путем вычисления хешей пользователь может получить все свои записи из поля «Обязательства» файла JSON (для увеличения PartNumber до окончания). Сумма записей является суммой, включенной в обязательство.
A. Объедините Table Seed и Proof ID:
format: TableSeed ++ “|” ++ Proof ID
output: 2022-12-02 12:37:32|accountProofId
B. SHA256 hash:
tool: https://emn178.github.io/online-tools/sha256.html (Input Type = Text)
input: 2022-12-02 12:37:32|accountProofId
output (dummy): cc9810645a0119723eb25f3afaab84ae6c219ec492bd04409b91da710c61d264
C. Объедините хеш с PartNumber (в шестнадцатеричном формате):
format: HashFromStep2 ++ “|” ++ PartNumber
input:
— HashFromStep2: cc9810645a0119723eb25f3afaab84ae6c219ec492bd04409b91da710c61d264
— | in hex: 7c
— 1 in hex: 31
output: cc9810645a0119723eb25f3afaab84ae6c219ec492bd04409b91da710c61d2647c31
D. SHA256 hash:
tool: https://emn178.github.io/online-tools/sha256.html (Input Type = Hex)
input: cc9810645a0119723eb25f3afaab84ae6c219ec492bd04409b91da710c61d2647c31
output (dummy): 30d5635e4cc4fd315d38a4415801d5b3078f421263c9eb1f5e36b6d8c8e49bca
E. Base64 encode
tool: https://emn178.github.io/online-tools/base64_encode.html (Input Type = Hex)
input: 30d5635e4cc4fd315d38a4415801d5b3078f421263c9eb1f5e36b6d8c8e49bca
output: MNVjXkzE/TFdOKRBWAHVswePQhJjyesfXja22Mjkm8o=
F. Замените некоторые символы:
‘=’ => ”
‘+’ => ‘-‘
‘/’ => ‘_’
input: MNVjXkzE/TFdOKRBWAHVswePQhJjyesfXja22Mjkm8o=
output: MNVjXkzE_TFdOKRBWAHVswePQhJjyesfXja22Mjkm8o
3. Каждый пользователь может проверить, что наши совокупные обязательства (сумма всех записей по обязательствам) меньше раскрытых резервов в сети (см. адреса ниже).
4. Если общая сумма обязательств меньше резервов кошелька или равна им, это подтверждает, что Deribit предоставила подтверждение резервов, поскольку имеет достаточно резервов. Поскольку снапшоты делаются ежедневно, волатильность рынка и соответствующее влияние на портфели клиентов могут вызвать временную разницу между снапшотами.
Дополнительные резервы (помимо обязательств)
Дополнительные резервы (активы, находящиеся под контролем Deribit, помимо обязательств клиентов), или коэффициент резервов Deribit, включают страховой фонд Deribit, ежедневные доходы Deribit и аккаунты, используемые для платежей и общего управления.
Клиенты Cobo Loop могут выводить активы через Cobo Loop или решить хранить средства в Deribit — это упростит прямой вывод средств пользователями Cobo Loop. В этом состоит отличите от Copper Clearloop, где 100 % активов клиентов всегда хранятся в Copper.
Подтверждение заблокированной маржи
Подтверждено
И, наконец, Deribit публикует конечную точку, которая показывает совокупную заблокированную маржу (MM и IM в каждой валюте) для всей базы пользователей. Эта конечная точка в режиме реального времени показывает, сколько активов хранится на бирже Deribit в качестве маржи по незакрытым позициям. В приведенных выше разделах содержится подробная информация о конкретных активах, которые Deribit хранит от имени клиентов, и о том, как пользователи могут проверить наличие активов, поэтому эта конечная точка обеспечивает дополнительный уровень прозрачности.
См. следующую конечную точку в реальном времени здесь.
Список кошельков
Подтверждено
Все средства в кошельке Deribit общедоступны, и их легко проверить. Средства пользователей всегда обеспечены реальными активами 1:1.
Кошельки Deribit:
Для графического обзора посетите Nansen, CoinMarketCap, or DeFiLlama.
АВТОР