入门Web3.0-身份系统及交易RTFM

论坛 期权论坛 期权     
期权匿名问答   2022-11-11 09:04   5825   0
要了解Web3.0的更多信息,重要的是清晰了解其身份系统。系统里面各自的逻辑关系和影响面,都散落在中英文互联网的各个角落里,我发现大家更多时候讨论的时候,都是断章取义的,要么缺乏系统性,要么解释得不够详尽。
当然,这篇内容需要对用了区块链技术的加密货币及应用有一定程度上的认知,笔者以前的文章有所提及:
入门比特币 - Bitcoin RTFM
入门以太坊 - Ethereum RTFM
对新事物来说,组成新事物的基础模块之间的相互逻辑,是重中之重,这能有利于你对以此为基础的拓展性场景有更清晰和准确的判断。而Web3.0的基础模块之一:身份系统关系,更是理解其他基础模块的起点。
为了呈现更清晰的身份系统关系,我将按照钱包→交易所→私钥→公钥→地址→交易这个递进关系的流程,详细地梳理一次:

钱包
托管型钱包是把用户私钥储存在自己的服务器中,这种做法的优点是:如果用户丢失私钥,可以在服务器端恢复自己的账户,如果用户更倾向于便捷地使用钱包,会选择托管类型的钱包。同样,托管型钱包的缺点也很明显:服务商可以随时冻结用户资产,也有遭受网络攻击的危险。
非托管型钱包则是不提供服务器端的解决方案,私钥会被加密储存在用户的设备中,用户100%掌控自己的资产,但非托管型钱包最大的缺点也在于此:用户如果丢失了自己的助记词,那么用户将无法恢复自己的资产。

交易所
交易所的核心功能就是:充值、提现、下单、订单撮合、资金结算,对于所有中心化的交易所(CEX)来说,所有的这些环节均有交易平台本身协助完成,而去中心化交易所(DEX)则是把上述所有环节都放在链上,通过智能合约执行全部操作,这样子用户的整个交易过程就无需任何第三方介入处理。
目前的CEX交易流程类似券商,用户把自己的虚拟货币资产转入交易所,然后在交易所的监督下完成账户与账户之间的交易,最后用户再把资产提到自己的钱包上;在CEX中用户开户要做KYC(Know Your Customer)认证,维护自己的个人资料等;如Binance
而在DEX里面,交易流程就会简化了很多,它们没有KYC认证、也没有充值、提现的步骤,用户使用自己在DEX申请的地址与DEX的智能合约地址交易,用户始终掌握着资产本身;如MetaMask
交易的本身,就是货币转移的场景本身,在CEX里,每一个交易的背后,其实是数据库中通过增减用户资产的字段达到货币转移的目的,而在DEX里,支付方使用数字签名把代币转移到收款方的地址上,其中数字签名在数学上表示支付方和收款方公开地址相关联的加密信息,这段加密信息会固化在交易的链条里,一直延展下去。
DEX比CEX最大的优势就是安全,相对于CEX来说,DEX的交易处在攻击分散的计算机网络中,没有单一攻击点,这样子使异常攻击变得额外困难,也正因为这个原因,DEX比CEX更耗能,执行效率更低(大部分都在公链上运行),所以一笔交易确认的时间往往会比CEX的长很多,这样子对于那些高并发的实时交易场景来说,就容易形成支持不足。
其次DEX比CEX更注重隐蔽性,因为交易不需要对KYC进行验证,交易往往能在匿名环境下自由交易,非常适合无信任状态下的陌生人交易场景。

私钥
设备安装了钱包,钱包根据设备随机数生成私钥,在用户计算私钥时,有些钱包会加入用户端的信号、声音、图像等更多的随机因素来增大整个熵池,这样子生成的随机数质量最高;
私钥本质上可以理解为就是一堆随机数,具体一点:是一堆一共256位,由0和1组成的数字,基于有256位这么多不容易保存,用比特币举例,阿聪就把这串256的数字基于Base58编码转换成一段容易备份的样子,这就是私钥的基本形态,如下所示:
KwYHFL7WfhJPkfQkp1LsUwHvy1Pd9KynuxjjVDMZvRSV5D9VJq3v
Base58是一种编码方式,它的目的主要是为了避免产生混淆的编码,例如数字0和字母O、小写字母i对应的大写I和大写字母L对应的小写字母l这种非常相似的字体混淆,目前Base58主要用于产生Bitcoin的钱包地址;
私钥能生成的总数为2的256次方,短短一个数学表达式就能表达完整,但是这个结果无法用常见事物描述,2的256次方数学结果是1.1579209e+77,简单看就是1.15 ×10的77次方,而地球上的水分子总数为0.47 ×10的47次方,换句话说私钥的总数比地球上的水分子总数还要多很多个数量级,也就是如果你打算用暴力碰撞去获取特定私钥,无疑在地球上去寻找一个特定水分子。
基于上面的论述,私钥的安全性取决于2点:足够随机的生成方式+足够大的可生成范围。数字钱包是一个管理私钥(生成、储存、签名)的工具,钱包并不保存资产,资产是在链上。
私钥和助记词在功能层面是一致的,助记词的出现,顾名思义是为了解决私钥依然难以记忆、不方便使用的问题;私钥本身尽管已经经过优化,但是仍然很长很臭,在人机交互的领域里,词语更有助于被写在纸上让人清晰理解或在电话中被说出来,更易于传输和转录信息,所以比特币社区基于BIP39协议(Bitcoin Improvement Proposals的第39个改进建议),将这些随机数通过特定编码转化为词库中的单词,俗称助记词,如下所示(私钥是有大小写区分,但助记词是没有的):
candy maple cake sugar pudding cream honey rich smooth crumble sweet treat
对助记词钱包来说还有个好处,就是一组助记词可以派生出超级多个私钥,每个私钥可以对应一种币种或者一种用途的账户,毕竟一个人可以有很多账号的需求,就和一个人有多张银行卡一样的道理;这个时候你不需要记录每个私钥,只要记录好一组助记词就可以掌握所有资产。
只有使用的助记词钱包都遵循了BIP32、BIP39、BIP44协议的,就可以互相使用。私钥和助记词都不能发在联网设备中,而应该认真抄写在纸上或者放在冰甲助记词板中。
对BIP32来说,本质上就是为了避免管理一堆私钥的麻烦提出的分层推导方案,达到只需保存一个私钥,其他子私钥、孙私钥可以推导出来。对BIP39来说,本质上就是通过定义助记词让私钥备份和储存得更友好。对BIP44来说,本质上就是给BIP32的分层路径定义规范。

公钥
公钥和私钥都是建立在区块链网络上加密货币中不可或缺的组成部分,两者都属于公钥密码学(PKC)的范畴;
PKC的目的就是简单从一种状态转变到另一种状态,同时需要杜绝这一过程逆转的可能性,在这个过程中,某笔支出确实经资金所有者签署,而不是伪造的,而且还要证明你携带某个秘密,但不会暴露这个秘密。基于PKC的数学函数,是一种易于单向计算,但是计算机却要花费大量时间(数千年)才能算出正确答案的数学问题,这正是它的安全性所在。
对私钥来说,它解锁的是你访问自己加密货币的访问权限,用户可以用私钥证明自己是支出交易或发送消息的人,而公钥更像是接收加密货币的地址。
拥有私钥可以恢复公钥,但仅使用公钥是不可能获取私钥的。理论上一个用户可以利用他手上的私钥创建很多公钥,私钥自始至终只有一个。当他把他手上创建好的公钥地址对网络上的所有用户公开,所有用户都可以给他发送加密货币,从一定程度上来说,这些加密货币是属于这个用户的,所以只有他能利用自己手上的私钥,去访问发送到了这个公钥地址的加密货币。

地址
既然有了公钥,那为什么在加密货币里还需要用“加密货币地址”来收款,而不是直接用公钥收款呢?当我们作为收款方的时候,唯一需要暴露在公共网络里的就是收款地址,如果直接用公钥作为收款地址,那么收款方的公钥就会暴露,虽然当代密码学的基础是相信公钥算不出私钥,但这个算不出来理论上只是难实现,毕竟公钥和私钥是存在明确的数学关系。
所以我们使用公钥单向加密后的地址来收款,会让整个系统更安全。即使未来计算机有了跨越式的发展,椭圆曲线密码学被破解,地址中的币也难被拿走。
综上,我们可以知道:私钥是随机选出,私钥通过椭圆曲线算出公钥,公钥通过两次哈希加密就得到地址,所有的步骤都是公开且单向的。

交易


如果Alice要通过公共网络向Bob发送消息,消息内容包含1 BTC,这个时候Alice可以使用自己的私钥加密信息,然后将信息发送给Bob,同时Alice也使用Bob的公钥为自己发送给Bob的消息加密;这个时候在公共网络上,所有收到消息的人都可以用发送者Alice的公钥进行验证,便可确认这个消息是由Alice发出来的(因为只有Alice使用私钥加密得到的信息,才可以用这个公钥来解密),但是其他人只能获知Alice发东西比Bob这个行为确实发生了,但是加密内容是无从获知的,因为其他人只有自己的公钥/私钥、Alice的公钥、Bob的公钥,没有办法对上述内容解密出来,为自己所用。
这个时候Bob收到信息之后,Bob能用Alice的公钥解密,再用自己的私钥解密出Alice用自己公钥加的密,这个时候信息就完全被解开了,Bob可以查看和拥有了Alice发给他的消息内容本身,当然也包括那1 BTC本身。这么做可以保证这个信息确实是由Alice自己发送的,她不能否认或难以否认,毕竟只有她的公钥才能解开她私钥加的密,另外还保证了信息自Alice发送后到Bob签收为止,没有做过任何修改。
下面是关于上面基础模块的一些应用层的梳理:

ETH的总账本:Etherscan
Etherscan是一个可以免费查询以太坊在链上的所有公开交易数据,例如你想查询一个钱包地址为XXX的所有交易信息,它将能为你查询到该地址下ETH的总量、总价值和总交易量,在明细里面更能知道在什么时候、哪个交易地址向哪个接受地址转了多少ETH之类的

Web3.0的社交关系:Cyberconnect、Lens Protocol 、Relation
所谓社交图谱,它本质上是三个基础的协议,既不是社交软件,也不是什么公链,而是对所有Web3.0都开放访问的基础设施,主要是解决以前Web2.0两个最核心的问题:
数据割裂:在之前,每当市场出现一个热门的社交应用,用户必须从头开始,重新注册一个社交账号,然后添加好友之类的,这对用户来说超级花时间。用户没法将自己搭建好的关系图谱移植到新的产品上,体验上给用户很大的割裂感。
委托代理问题:在Web2.0的时候,用户是委托人,平台是代理人,当委托人和代理人利益不同且信息不对称的时候,产生冲突,委托人无法确保代理人始终会以用户最大利益去处事,每个人在平台上形成的所有数据资产都被所属公司/国家控制着,更甚者就是将用户社交图谱的数据谋取不正当利益。
这之后,社交图谱协议的引入,用户不再需要通过手机号、邮箱等注册方式来获得一个身份,开发人员可以轻松通过社交图谱协议集成到自己的Dapp中,无需再构建自己的社交图谱数据库,节省开发时间。用户不管切换到哪个产品下,自己的网络关系都会被携带和补充上去。

Web3.0的域名系统:app.ens.domains
在互联网早期,我们只能通过输入IP地址来浏览网页信息,后来有了DNS(域名服务),才将域名和IP地址关联起来。每次你输入域名DNS就会负责将域名转化为IP地址传送给计算机。
ENS主要作用就是将Web3上复杂的标识符(如加密钱包地址)转换后可在以太坊区块链上注册的域名,你可以购买类似jacob.eth的域名,然后关联到你的以太坊钱包地址,然后每次要接收人收款的时候,你就可以分享你的ENS域名给他,不必使用复杂的钱包地址。
ENS建立在以太坊上,这是一个去中心化的网络,ENS提供的域名本质上是一种所有权记录在以太坊区块链上的代币,你可以理解为一个NFT的存在,这意味着你确实也可以在NFT市场上交易你的.eth域名。

(未完待续)
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:400157
帖子:80032
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP