DeFi. Мои ключи - мои деньги: так ли это? Технические и организационные тонкости
Вопрос ребром
Знаете, что больше всего меня поражает в Web 3.0 & Web3 (WW3) индустрии? Нет, не поведение неофитов, которые пародируют хомяков, и даже не эксцентричные поступки инфлюенсеров pumpfun… Меня больше всего удивляет, когда люди, едва-едва коснувшись многогранной сложности WW3, начинают налево и направо объяснять всем, “как это устроено”. И объяснять - при этом в подавляющем большинстве случаев - неправильно (да ещё и за деньги).
Один из подобных мифов гласит: “Криптовалюты не хранятся у вас на кошельке - они хранятся в блокчейне”.
Конечно, вроде бы всё верно: а где им ещё хранится? И токенам тоже. Ведь токен, скажем, ERC-20, - это что такое?
- Это контракт: например - такой,
- Который имплементирован в конкретный чейн:
- По конкретным же правилам.
Всё. А коин - это нативный токен блокчейн, поэтому он от него вообще не отделим. В этом вся соль монет: они служат мерилом переносимой ценности (value) в блокчейнах и подобных системах.
Но в чём тогда проблема?
Да в том, что при таком, упрощённом, подходе, фраза “мои ключи - мои деньги” не работает: абсолютно. Вдумайтесь: если токены/коины хранятся не у вас, что они не ваши. По крайне мере - психологически: а, как мы знаем из поведенческой экономики, это - самый важный, значимый аспект.
Фактически, если упростить и ввести аллегории, получаем вот такой набор:
- Пусть у нас есть посёлок на 100 домов. Каждый дом - уникален. Это - чейн. Посёлок - кроссчейн/мультичейн/омничейн (в зависимости от контекста).
- В каждом доме есть набор своих коинов (основных денег) и токенов (дополнительных).
- Токены хранятся где попало: то под подушкой, то в маленьком сейфе, а вот коины - исключительно во встроенном/вмонтированном и довольно защищённом и большом сейфе.
- И дальше - начинается то, что многие не учитывают: факт доступа к этому самому сейфу и сейфам поменьше.
Ведь можете получить доступ к сейфу классическим путём: через ключ. Но можете через шифр. Или через шифр + ключ. А ещё? Через отпечаток пальца. А ещё? Через сложный набор замков и ключей (навроде криптекса). А ещё? Посредством голосовой идентификации. А ещё? Через прохождение головоломок в стиле И. Джонса. А ещё? Много какими способами.
Для нас же важно, что вы можете получить доступ:
- С помощью одного примитива (скажем, ключ);
- С помощью разных примитивов (ключ + отпечаток);
- С помощью коллективного доступа (аналог мультисига);
- С помощью индивидуального доступа.
И никто эти варианты не запрещает совмещать. И в блокчейн - в том числе!
- Если у вас EOA - то самый простой способ доказать право пользования, владения и распоряжения активами - это приватный ключ. Но даже здесь есть развилка: приватный ключ можно создать через SEED и тем самым можете, например, владеть мультичейн-активами сразу, а можно через приватный ключ и изначально всё ваше добро будет в одном чейне (но не обязательно, т.к. механика вполне может совпадать в разных чейнах, но равно и наоборот - генерация сид-фразы может быть слишком уникальна даже на уровне кошелька: см. проблемы с деривацией).
- Но ведь есть кошельки, особенно - в эпоху абстракции аккаунта, которые не имеют приватного ключа в строгом смысле этого слова. Самый банальный пример - это как раз мультисиг (EVM или NON-EVM - не так важно). Да, технически мы через 1 шаг всё равно придём к ключу (у одного из подписантов, и то - не в каждом случае), но погодите потирать руки - ниже поясню, какой аспект здесь важен именно.
- Но это лишь начало… Ведь можете создать кошелёк через passkey и множеством связок с OAUTH 2.0: и тогда приватный ключ для большинства случаев будет делом абсолютно эфемерным, а в ряде аспектов - абсолютно не достижимым.
- А ещё ведь можете хранить свои токены на каком-то протоколе: скажем, сделать пул на Uniswap, заняв токены предварительно на AAVE, полученный LP-токен пойти и залочить на Velodrome и т.д. Тогда технически токены ваши будут у децентрализованного, но кастодиана, но они всё ещё будут ваши. Понимаете?
Поэтому фраза “мои ключи - мои деньги” не так проста, как кажется. Но давайте разбираться…
- Passkey и связки подобного рода;
- Мультисиги;
- Аппрувы для/от смартов;
- Регистрация на airdrop не через EOA;
- Прочее.
Всё это случаи, когда докопаться до приватного ключа если и можно - то через 1-2-3 шага, а чаще - его попросту нет, т.к. он превращается в абстракцию, которая подтверждает доступ через… доступ.
Вспомните Paypal: не знаю как вы, но когда я работал с обменником, в далёком 2010-ом, а PP ещё не пришёл в СНГ толком, то можно было отправить… деньги на email (прямо как в фильме “Старик Хоттабыч”) и даже если человек ещё не зарегистрирован был в “палке” - он всё равно становился номинальным получателем отправления, т.е. такой себе дериватив на подтверждение доступа.
Просто сейчас это вшили в открытые и децентрализованные системы и всё стало совсем не просто (хотя и удобно).
Почему это важно?
Потому что когда вы изучаете типы адресов Биткоина, когда пытаетесь разделить UTXO и не UTXO подходы, когда создаёте wNFT и прочие смарт-кошельки, когда углубляетесь в абстракцию аккаунта, а ещё юзаете шамира и/или мультисиги, вы принимаете правила определённого рода и на отдельных уровнях абстракции вам придётся признать, что мы далеко ушли от блокчейна 2009-го года: не только по скорости транзакций, например, или объёму блока, но и по способам создания кошелька, способам владения оным, а ещё и распоряжения, т.е. наша цифровая собственность всё ещё наша, но дойти до фразы “мои ключи - мои деньги” уже за одну итерацию может не получиться.
Но это как раз нас и наталкивает на ответ: да, безусловно, токены не хранятся у вас на кошельке/аккаунте, но и хранятся они там тоже. Просто не нужно смешивать эти сущности и будет вам счастье.
Вы же можете быть стоматологом, отцом, сыном, водителем и блогером одновременно? Да, почему нет. Порой - одномоментно даже. Но вы всё ещё вы в этом случае.