Многие, кто заходят в криптосферу, на самом деле плохо понимают базовые вещи: ончейн-приватные ключи, публичные ключи, основные блокчейны, криптобиржи и кошельки, как они связаны между собой. Я и сам в течение долгого времени не мог разобраться, как именно они связаны. Сегодня в выходной, просто и наглядно, объясню и разъясню все это:
Приватный и публичный ключи — это по сути длинные строки. Если очень просто: приватный ключ = пароль банковской карты, публичный ключ = номер банковской карты. Разные публичные сети = разные банки (например, биткоин-сеть = Китайский банк, Ethereum-сеть = Промышленный банк, bsc на Binance = Строительный банк). Биржа = обменная «касса» для обмена активов. Кошельки бывают горячие и холодные: отличие в том, подключены они к сети или нет. Если кошелек хранится на устройствах, подключенных к интернету, например на телефоне или компьютере — это горячий кошелек. Если он хранится на аппаратном устройстве без подключения к интернету, и внешнее взаимодействие происходит через QR-код, Bluetooth и т.п., при этом на самом этом устройстве нужно нажать действие подписи, чтобы перевести активы — это холодный кошелек. Например, кошелек keyPal, который продает TP, — это холодный кошелек.
I. Приватный и публичный ключ
Непереопределяемое (необратимое) алгоритмическое шифрование «приватный ключ x =→ публичный ключ» (публичный ключ — это адрес кошелька). Приватный и публичный ключи однозначно соответствуют друг другу: одному приватному ключу соответствует один публичный ключ. Зная приватный ключ, можно узнать публичный ключ, но так как алгоритм шифрования необратим, из публичного ключа нельзя вывести приватный ключ. То есть у каждого адреса кошелька есть ровно один уникальный приватный ключ. Например, bsc-кошелек соответствует одному приватному ключу, а биткоин-кошелек — другому. Поэтому, если, например, кошелек Binance преобразовать в приватный ключ-кошелек, вы увидите много приватных ключей: среди них будут приватные ключи bsc-сети, приватные ключи ethereum-сети и приватные ключи биткоин-сети. Скопируйте эти приватные ключи и импортируйте их, например, в кошелек TP — и вы восстановите адреса кошельков соответствующих цепочек, сможете видеть активы, которые там хранятся.
II. Торговая платформа, пополнение, снятие и переводы
Биржа похожа на большой обменный пункт (money changer). Когда вы открываете счет на бирже, биржа автоматически создает для вас аккаунты во всех крупных публичных сетях (то есть у вас появляются адреса кошельков соответствующих блокчейнов; адрес кошелька, по сути, является публичным ключом, а соответствующий приватный ключ находится под управлением биржи). Это как открыть счет в таком пункте: он сам заводит вам банковские карты в разных банках. Например, адрес кошелька для биткоина — это номер карты китайского банка, адрес кошелька для Ethereum — это номер карты банка «ICBC», адрес кошелька bsc на Binance — это номер карты строительного банка. На каждой такой банковской карточке есть уникальный пароль — это и есть приватный ключ. Магия блокчейна в том, что кому принадлежит этот пароль (приватный ключ), тот и владеет активами в кошельке. То есть если вы знаете пароль карты, то активы на ней ваши. Тогда возникает вопрос: а не сломает ли компьютер этот пароль? На самом деле вероятность взлома практически равна нулю — это несравнимо с 6-значным банковским паролем. Приватный ключ имеет 2^256, то есть около 10^77 вариантов. Самый мощный в мире суперкомпьютер за секунду может выполнить 10^18 операций. В понятных цифрах: 10 миллионов миллиардов (10^15) за секунду — это лишь 10^15, а нужно 10^18. Если перебирать все варианты для взлома, потребуется примерно 10^77 ÷ 10^18 = 10^59 секунд, то есть 10^51 лет. Даже от Большого взрыва до нынешнего момента прошло всего около 10^10 лет. То есть это примерно в 10^41 раз дольше, чем возраст Вселенной. Поэтому, чтобы взломать, сначала надо арендовать самый передовой суперкомпьютер, а затем поставить «маленькую цель» — жить дольше Большого взрыва на 10^41 лет. И еще: все адреса кошельков находятся в блокчейне, а блокчейн — это публичная и прозрачная система. Поэтому достаточно скопировать адрес кошелька, например, в наблюдательный кошелек TP, чтобы увидеть, сколько активов на нем лежит — как если бы вы знали номер карты и могли узнать, сколько денег на ней. Эти адреса кошельков «исполняются» on-chain: то есть ончейн происходит только тогда, когда речь идет о пополнении и переводе. В обычных операциях внутри биржи обмен активов происходит в рамках «кассы» (этого пункта), без прямого ончейна. За каждую сделку пункт удерживает определенную комиссию на покупку и продажу — это источник прибыли биржи. Поэтому биржа централизованная, а блокчейн — децентрализованный. У биржи есть свои собственные серверы локальной базы данных: в базе записываются сведения об активах каждого пользователя. Это как бухгалтерская система пункта учета. База данных выглядит примерно так:

会根据用户唯一的ID号,进行管理后面的数据项,比如用户1交易时,当前有200枚USDT,5枚BNB,他想用USDT买BNB,BNB假如100U一枚,买1枚后数据库记录的USDT就变成100U,BNB数字变成6,再比如用户1从欧意通过波场链转账充值到币安时,整个过程其实跟银行转账一样,需要先选转那家银行(公链),再填银行卡号(即公钥,钱包地址),再填转账金额200元(USDT200),最后输入转账密码(私钥),即完成整个转账过程,只不过采用比如指纹或者数字密码代替了密钥(系统通过将密钥绑定映射到了指纹上),用户1充值的200USDT到了币安的波场钱包,交易所扫描到钱包资产增加,就把这个用户1的波场钱包里面的USDT转移到交易所自己的热钱包(相当于钱庄柜台),同时在交易所本地的数据库账本USDT数字增加200,当把所有用户USDT资户都归集完到这个热钱包后,每隔一段时间就存入冷钱包(相当于钱庄的保险柜),提币流程也一样,当热钱包资金不够时,就从冷钱包提取一部分出来。
То есть учетная запись пользователя на платформе, созданная биржей. Она выполняет роль управления всеми приватными ключами и кошельками пользователей в сети. Здесь возникает вопрос: у одного пользователя может быть несколько приватных ключей. А если пользователей — сотни миллионов, то объем приватных ключей, которыми нужно управлять, огромен и к тому же легко что-то потерять. Именно так выглядела модель управления приватными ключами в ранних биржах. Сейчас биржи внедряют технологию HD (иерархические детерминированные ключи) — управление приватными ключами по древовидному пути, как показано ниже:

Биржа использует форму «корневой приватный ключ + номер протокола в блокчейне + порядковый номер пользователя», чтобы сгенерировать конечный приватный ключ; затем приватный ключ снова генерирует адрес кошелька. Таким образом достаточно помнить один корневой приватный ключ — и вы знаете приватные ключи и адреса кошельков всех пользователей. Например, корневой приватный ключ + m/44'/XX'/0'/0/ + порядковый номер пользователя позволяет сгенерировать приватный ключ для этой цепочки, где XX=0 — это биткоин-сеть, XX=60 — bsc и ethereum-сети. Они относятся к EVM, поэтому на самом деле приватные ключи, публичные ключи и адреса кошельков, сгенерированные этими двумя публичными блокчейнами, будут одинаковыми. Это как если бы один и тот же пользователь открыл в одном и том же имени, например, сберегательный и расчетный счета в двух разных банках: номер карточки один и тот же, только активы лежат в разных банках. XX=195 — это сеть Tron (TRX). Например, CZ — сотрудник Binance №1, а He Yi — сотрудник Binance №2. Когда He Yi регистрирует аккаунт на Binance, в сети биткоина он создаст приватный ключ биткоина по формуле корневой приватный ключ + m/44'/0'/0'/0/2. Этот приватный ключ затем порождает публичный ключ, то есть и биткоин-кошелек He Yi. Аналогично в сети bsc приватный ключ генерируется как корневой приватный ключ + m/44'/60'/0'/0/2, он затем порождает публичный ключ — то есть bsc-кошелек He Yi. Поэтому достаточно управлять одним корневым приватным ключом, чтобы управлять всеми кошельками этой биржи. Принцип холодного кошелька такой же: корневой приватный ключ генерируется из seed-фразы (mnemonic), и после импорта этого корневого приватного ключа вы получаете активы этого пользователя во всех сетях.