很多人进入币圈其实对基础的东西链上私钥,公钥,各大公链,交易所,钱包,之间的关系都不是很了解,我也曾在很长的一段时间弄不清楚他们之间的联系,今天周末闲来无事,简单形象比喻讲解普及一下:

私钥和公钥实际上就是一串长长的字符串,简单讲,私钥=银行卡密码,公钥=银行卡卡号,各大公链=各家银行(比如比特币链=中国银行,以太坊链=工商银行,bsc币安连=建设银行), 交易所=资产置换的钱庄,钱包分热钱包和冷钱包,区别在于是否联网,比如存在于手机,电脑这些联网设备上的叫热钱包,存于断网的硬件设备,跟外界采用扫码,蓝牙进行握手交互,需要在这个硬件上按下签名动作才能转移资产的钱包,如TP钱包卖的keyPal钱包,就是冷钱包。

一、私钥和公钥

私钥 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钱包,所以只需要管理一个根私钥就管理了这个交易所的所有钱包,冷钱包的原理也是一样,由助记词生成这个根私钥,导入这个根私钥之后,就得到了这个用户在所有链上的资产