كثير من الناس يدخلون سوق العملات الرقمية في الواقع ولا يفهمون جيدًا الأساسيات: مثل المفاتيح الخاصة والعامة على السلسلة، وسلاسل كبرى مثل مختلف الشبكات العامة، والبورصات، والمحافظ، وعلاقة كل ذلك ببعضه البعض. وقد مررتُ أيضًا بوقت طويل لم أكن أعرف فيه كيف ترتبط الأمور معًا. واليوم عطلة نهاية الأسبوع، وبلا شيء يُذكر، سأشرحها بشكل بسيط وواضح عبر تشبيه سهل للفهم:

المفتاح الخاص والمفتاح العام هما في الواقع مجرد سلسلة طويلة من الأحرف. ببساطة: المفتاح الخاص = كلمة مرور بطاقة البنك، والمفتاح العام = رقم بطاقة البنك. أما السلاسل العامة الكبرى (مثلًا: سلسلة البيتكوين = بنك الصين، وسلسلة الإيثيريوم = بنك إندونيسيا، وBSC الخاصة ببينانس = بنك الإنشاءات). البورصة = «سُماسرة/حانوت» تبادل الأصول. المحافظ تنقسم إلى محافظ ساخنة ومحافظ باردة: والفرق هو ما إذا كانت متصلة بالإنترنت. فإذا كانت موجودة على أجهزة متصلة مثل الهاتف أو الكمبيوتر تُسمّى محفظة ساخنة. أما إذا كانت محفوظة على جهاز عتادي غير متصل بالإنترنت، وتتم عملية “التصافح/التبادل” مع العالم عبر مسح رمز (QR) أو البلوتوث، ولا بد من الضغط على جهاز العتاد لإجراء عملية التوقيع كي يتم تحويل الأصول—فهذا يُسمّى محفظة باردة. وعلى سبيل المثال، محفظة keyPal التي تُباع من خلال محفظة TP هي محفظة باردة.

一、私钥和公钥

私钥 x 不可逆加密算法=公钥(公钥也就是钱包地址)。私钥和公钥是一一对应的关系,也就是一个私钥对应一个公钥。知道了私钥,就知道了公钥,但加密算法不可逆,所以公钥推导不出私钥。也就是说一个钱包地址都有对应的唯一一个私钥。比如bsc钱包对应都一个私钥,比特币钱包又对应一个私钥。所以比如币安钱包转换成私钥钱包后,会看到很多条私钥:有bsc链钱包的私钥、有以太坊链钱包的私钥、有比特币钱包的私钥。复制这些私钥导入到比如TP钱包,就恢复相应链的钱包地址,可以看到对应链钱包里面存的资产。

二、交易所、充值,提现转账

交易所就像一个大的钱庄。当你在一个交易所开通账户时,交易所会自动帮你在各大公链开通账户(也就是拥有了各大公链的钱包地址,钱包地址也就是公钥,对应的私钥由交易所管理)。这就相当于你去这个钱庄开通了账户。钱庄自动帮你开通了各家的银行卡:比如比特币钱包地址=中国银行卡号,以太坊链钱包地址=工商银行卡号,bsc币安连钱包地址=建设银行卡号。其中每个银行卡号都对应有一个唯一的密码,这就是私钥。区块链的神奇之处在于:谁拥有这个密码私钥,钱包里面的资产就是谁的。这就相当于只需要知道了银行卡密码,那银行卡里面的资产就是你的。那就有人问:既然是密码,会不会被计算机破解?实际上可能性几乎无限接近于0。这不是6位数的银行卡密码所能比的:私钥有2^256,也就是10^77可能性。世界上最牛的超级计算机一秒可以算10的18次方。这是什么概念?一秒钟数1000万亿也不过是10的15次方。这台超级计算机穷举破解大概需要10^77➗10^18 = 10^59秒,也就是10^51年。宇宙大爆炸到现在也不过10^10年,所以比宇宙大爆炸还要长10^41倍。所以要想破解,先把世界上最先进的超级计算机租下来,然后定个小目标:活到比宇宙大爆炸还要久10^41年吧。对了,所有的钱包地址都是在链上,而链上具有公开透明的特点。所以只要复制这个钱包地址到比如TP的观察钱包,都可以看到这个钱包里面有多少资产,就好比知道了银行卡号,可以知道这张银行卡里面有多少钱一样。这些钱包地址都是链上执行,也就是说只有当涉及到充值转账时才会涉及到链上;平常的交易在这个钱庄里面进行资产兑换就行。每笔交易钱庄收取一定的买卖手续费,这是交易所盈利的来源。所以交易所是中心化的,链上是去中心化的。交易所本身有自己本地数据库服务器,数据库里面记录有每一位用户的资产信息,就好比钱庄有个记账系统一样。数据库就像以下表格:

根据用户唯一的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和以太坊链,它们都属于EVM,所以实际上这两个公链生成的私钥、公钥钱包地址都是一样的。这就相当于该用户开办的建设银行和工商银行卡号一样,卡号一样,只不过资产处在两家不同的银行。XX=195是波场链。举个例子:CZ是币安的1号员工,何一是币安的2号员工。何一在币安平台开户时,账户比特币链上会以根私钥+m/44'/0'/0'/0/2生成一个比特币私钥。这个私钥再生出公钥,也就是何一的比特币钱包。同时bsc链上也会以根私钥+m/44'/60'/0'/0/2生成一个bsc链私钥,这个私钥再生出公钥,也就是何一的bsc钱包。因此只需要管理一个根私钥就管理了这个交易所的所有钱包。冷钱包的原理也是一样:由助记词生成这个根私钥。导入这个根私钥之后,就得到了这个用户在所有链上的资产。