Блог им. Rondine
Вспоминается старый анекдот о трех женщинах в купе, модифицированный на злобу дня. Одна мечтала встретить юриста, другая — опытного финансиста, а третья — мужчину, хорошо разбирающегося в криптовалютах. Тут с верхней полки спускается чувак и произносит:
— Разрешите представиться: юрист, участник финансового рынка и криптоэнтузиаст со стажем.
Подумалось, что без вводной матчасти в небольшом объеме не обойтись, т.к. без оной ФЗ о Цифровых валютах и цифровых правах будет малопонятен. Подготовленная же публика может пропустить.
Для дальнейшего анализа закона достаточно разобраться в нескольких вопросах:
1. Где находится криптовалюта и что в действительности хранит кошелек
Начнем с распространенного заблуждения. Криптовалюта не хранится ни в компьютере, ни в телефоне, ни в аппаратном кошельке. Она существует в блокчейне в виде записей о количестве криптовалюты, связанных с публичными адресами.
Кошелек показывает пользователю балансы на этих адресах и хранит ключевой материал с приватными ключами, необходимый для распоряжения средствами. Его главная функция — сформировать операцию и подписать ее приватным ключом, соответствующим публичному адресу, с которого списываются активы. Помимо этого, кошелек предоставляет пользователю удобный интерфейс: показывает активы и историю операций, рассчитывает комиссию, позволяет выбрать получателя и взаимодействовать со смарт-контрактами.
Поэтому утрата телефона, компьютера или аппаратного устройства сама по себе еще не означает утраты криптовалюты: кошелек можно восстановить по сид-фразе. А вот утрата сид-фразы без сохраненной резервной копии означает утрату возможности восстановить доступ. Если отдельный приватный ключ использовался без сид-фразы, его утрата также лишает пользователя возможности распоряжаться средствами на соответствующем публичном адресе.
Иными словами, кошелек хранит не криптовалюту, а возможность ею распоряжаться – приватные ключи.
2. Горячее и холодное хранение
Для хранения ключевого материала с приватными ключами используются горячие и аппаратные, обычно называемые холодными, кошельки. Различие между ними состоит не столько в наличии физического соединения с интернетом, сколько в том, где находится ключевой материал и доступен ли он программному обеспечению подключенного устройства.
В горячем кошельке ключевой материал хранится в зашифрованном виде на телефоне или компьютере и при подписании операции обрабатывается программным обеспечением этого устройства. Поэтому удобство горячего кошелька сопровождается рисками, связанными с вредоносными программами и компрометацией компа или телефона.
В аппаратном кошельке ключевой материал изолирован внутри отдельного устройства, как правило — в защищенном чипе. Rabby, MetaMask или иной кошелек с интерфейсом формирует операцию и передает ее аппаратному кошельку на подпись. Устройство подписывает операцию внутри себя и возвращает готовую подпись, но не передает интерфейсу сид-фразу или приватный ключ.
Таким образом, аппаратный кошелек может быть подключен к телефону или компьютеру, имеющему доступ в интернет. Смысл холодного хранения состоит не в отсутствии кабеля как такового, а в том, что секретный ключевой материал не покидает защищенное устройство.
3. Как из сид-фразы получаются публичные адреса
Сид-фраза — это не набор слов, непосредственно подписывающий операции. Сначала из нее вычисляется исходное двоичное значение — seed. На его основе создается корневой расширенный приватный ключ — master xprv, от которого по заданным путям деривации последовательно выводятся дочерние ключи.
Из каждого конечного приватного ключа математически получается публичный ключ, а из него — соответствующий публичный адрес в блокчейне. Процесс детерминирован: одинаковая сид-фраза и одинаковый путь деривации всегда приводят к одним и тем же ключам и адресам.
Например, для Ethereum часто используется путь:
m/44'/60'/0'/0/address_index
Первые элементы пути определяют стандарт, сеть и ветвь учетной записи, 0 без ' говорит, что сдача не используется, а последний элемент — address_index — номер конкретного адреса. Меняя этот индекс, кошелек может последовательно получать множество публичных адресов из одной сид-фразы.
Хранить отдельно миллиарды приватных ключей не требуется. Имея исходный ключевой материал с приватниками и путь деривации, кошелек способен заново вычислить нужный дочерний приватный ключ. В пределах одной стандартной ветви Ethereum можно теоретически получить 2³¹, то есть 2 147 483 648 публичных адресов, которые будут контролироваться таким же количеством приватных ключей.
Вся эта иерархия — от сид-фразы до master xprv, дочернего приватного ключа и публичного адреса — показана на соответствующем слайде.
Пока лишь нужно запомнить, что из одной лишь сид-фразы, закинутой в кошелек, пользователь может развернуть и контролировать в своем кошельке 2,147 млрд. публичных адресов в блокчейне.

4. Публичный адрес и приватный ключ
Баланс криптовалюты отражается в блокчейне применительно к публичному адресу. Сам публичный адрес можно свободно сообщать другим лицам: он используется для получения средств и просмотра связанных с ним операций. На практике светитьть публичным адресом нельзя во избежание связывания публичного адреса и находящемся на нем активами с конкретным лицом.
Возможность распоряжаться активами определяется приватным ключом. Именно с его помощью создается цифровая подпись, подтверждающая право инициировать расходную операцию с соответствующего публичного адреса.
Отдельный приватный ключ можно экспортировать из одного программного кошелька и импортировать в другой — например, из MetaMask в Rabby. После импорта другой кошелек покажет тот же публичный адрес и тот же баланс, поскольку сами активы находятся не в MetaMask или Rabby, а учитываются в блокчейне.
При этом компрометация конечного приватного ключа обычно ставит под угрозу активы только на соответствующем публичном адресе. Она сама по себе не раскрывает сид-фразу и не позволяет получить приватные ключи соседних адресов. Иная, более опасная ситуация возникает при компрометации сид-фразы или расширенного приватного ключа вышестоящей ветви: тогда под угрозой оказываются все выводимые из них дочерние ключи.
5. Архитектура типовой централизованной биржи
Централизованные криптовалютные биржи — CEX — существуют уже достаточно давно и выработали достаточно устойчивую модель работы. В отличие от традиционного финансового рынка, где функции обычно распределены между биржей, брокером, клиринговой организацией и депозитарием, CEX совмещает в одном лице организатора торговли, брокера или дилера, расчетную инфраструктуру и кастодиана.
Крупные биржи и другие централизованные криптопровайдеры также используют иерархическую инфраструктуру ключей из сид-фраз. Из контролируемого ими корневого ключевого материала с приватниками они могут получать большое количество публичных адресов в различных блокчейнах. На практике такая инфраструктура может быть значительно сложнее обычного пользовательского кошелька и включать несколько независимых ветвей ключей, аппаратные модули безопасности, многостороннюю подпись, горячие и холодные контуры хранения.
Однако для понимания общей модели достаточно следующей упрощенной схемы.
6. Модель взаимодействия CEX с клиентом
Для приема криптовалюты CEX закрепляет за клиентом индивидуальный публичный адрес биржи в соответствующем блокчейне и связывает этот адрес в своей внутренней системе с идентификатором клиента — UID. Выдать 25% населения Земли по индивидуальному публичному адрему из одной сид-фразы (как мы помним сид-фраза генерит 2,147 млрд. адресов) вообще не проблема.
Публичный адрес индивидуален для целей распознавания поступления, но приватный ключ от него контролирует биржа. Поэтому такой адрес нельзя считать личным кошельком клиента: клиент видит его и может направлять на него средства, однако самостоятельно распоряжаться находящейся на нем криптовалютой не может.
Одновременно с этим CEX ведет внутреннюю учетную запись клиента и отражает на ней остатки по каждому активу. Функционально такая запись напоминает цифровой счет, предусмотренный новым законом. Существенная разница состоит в том, что цифровой счет является установленной законом формой учета, тогда как внутренний учет иностранного CEX ведется на основании договора с клиентом и правил самой биржи.
7. Omnibus-модель и внутренний учет CEX
После поступления криптовалюты и получения необходимого количества подтверждений CEX распознает перевод по индивидуальному публичному адресу и начисляет соответствующую сумму на внутренний баланс клиента.
Затем поступившие активы переводятся с индивидуального депозитного публичного адреса на общий операционный, или omnibus-адрес, либо на один из совокупности общих публичных адресов биржи. Там они смешиваются с однородными активами других клиентов.
С этого момента индивидуализация клиентских остатков сохраняется уже не в блокчейне, а во внутренней учетной системе CEX. Блокчейн показывает совокупное количество активов на публичных адресах биржи, а сама биржа знает, какая часть этого общего пула учтена за каждым клиентом.
Таким образом, между блокчейном и внутренним учетом биржи существуют два параллельных уровня:
8. Торговля внутри CEX и вывод на внешний адрес
Торговля между клиентами CEX происходит без перемещения криптовалюты в блокчейне. Если один клиент продает актив, а другой его покупает, биржа изменяет записи на их внутренних учетных записях. Остаток на общих публичных адресах CEX при этом вообще не изменится.
Блокчейн вновь появляется в этой конструкции при выводе средств. Биржа уменьшает внутренний баланс клиента и направляет соответствующее количество криптовалюты на указанный им внешний публичный адрес. Такая транзакция совершается не с первоначального индивидуального депозитного адреса клиента, а с одного из общих операционных адресов CEX, обслуживающих выводы множества пользователей.
Именно разграничение блокчейн-учета и внутренних записей позволяет понять, что в действительности делает цифровой депозитарий, зачем закон вводит цифровые счета и каким образом должно подтверждаться равенство между клиентскими остатками и активами, находящимися во внешнем контуре. Без этой матчасти новые юридические конструкции действительно трудно увидеть в их практическом содержании.


Предыдущие выпуски:
Анонс
Или опять буратин лохов ищут?