一、第一个web3应用

使用公钥加密的数据必须用与之对应的私钥才能解密 。
使用私钥加密的数据必须用与之对应的公钥才能解密 。
不能通过公钥推导出私钥 。
用私钥能不能推导出公钥呢?我选用的算法公私钥的地位是对等的,均不能推导出另一半 。但存在一些非对称算法是可能通过私钥推导出公钥的,这种也是可以用的,不过需特别注意公私分明 。
使用非对称加密前大家都把各自的公钥公开并托管在某个信息平台上,而私钥则谨慎的秘密收藏 。
非对称加密的主要应用场景有二,加密通信和数字签名 。
加密通信 。Alice要给Bob发信息又不想被其他人知道 。可使用Bob的公钥加密后发给Bob 。因与之对应的私钥只有bob掌握,只有他能解密Alice的信息,其他任何人都不能,从而满足加密通信 。(现实中多使用对称加密,非对称加密则用于对称密钥交换,对称加密效率更高,一般状态下,实现同等加密效力,对称的AES算法比非对称的RSA大约快5000倍,ECC稍强但也没好多少) 。
数字签名 。Bob要向Alice借钱,为防Bob事后否认,Alice要求Bob写借条并用Bob的私钥加密,再将加密后的密文和加密前的原文一起发给Alice,Alice用Bob的解密并与原文一致,则能证明借条是Bob写的而非他人伪造 。因为能用Bob的公钥解密的,就一定是用Bob的私钥加密的,所以一定是Bob自己写的 。(真正的数字签名还有生成摘要等环节,这里略去不表) 。
前文说过区块链不要求用户使用帐号密码登录和身份确认,但会要求用户对其所作的操作做数字签名 。在矿工验证签名有效后,提交到区块链操作才生效,他的好处之一是任何其他人,包括系统构建者都无法伪造用户的操作,用户也无法对自己已经实施的操作抵赖 。
Hash账号和公钥的关系满足以下三个条件:
1、相同的公钥生成出的Hash账号总是相同的 。
2、任意不同的两个公钥无法生成出相同的Hash账号 。
3、无法通过Hash账号解算出公钥的值 。
Hash账号即是身份,也是地址 。

一、第一个web3应用

文章插图
以上信息对于区块链系统十分重要,后面还会谈及,但其内容就稍显寡淡冗长 。
区块链
下图是一个区块链的入口信息 。链的名称为Web3,用来运行一个基于NFT的域名系统(NFT是什么?这个以后解释) 。可以看到Hash号账输入框里的值就是上一环节生成的Hash帐号 。
初次使用时短名字是空的,可以自己设一个又酷又短又好记的短名字 。短名字只能以字母和数字组成且必须是字母开头 。填好后点“重置短名”按钮,使短名生效 。我的短名字是“xyz”
微应用
有了hash账号,区块链和短名字之后就能部署微应用了,点击界面中部树形控件的右上角的“+”按钮添加一个微应用 。
先给微应用命一个名,我这里用字母x,大家可以用多几个字符,微应用名和短名字一样只能是字母和数字组成且必须以字母开头 。同一Hash账号下不能有两个或以上同名的微应用 。
Http节点就是你的web应用绑定的节点,我的是192.168.0.213:26101 。Udp节点要另指定一个,ip要和Http节点的一样,我的是192.168.0.213,端口用一个空闲的端口即可,我用的27101 。如下图 。
微应用创建成功后点击“上线”按将其发布到区块链 。上线成功后会显示短地址和长地址 。长地址是账号地址,短地址是长地址的助记符 。
这两个地址的最后一段 web3是区块链名 。倒数第二段短的xyz是短名,长的是Hash账号,再往前x是我的微应用名 。形式上和域名一模一样,内在逻辑又完全不同,会有些费解 。
前面的“”则是协议头 。
访问区块链上的微应用
一、第一个web3应用

文章插图
下载区块链专用的web3浏览器Peep,解压 。
注意:
整个路径中不能出现中文或别的非ASCII字符 。
如果你的机器里有虚拟机或是VPN,则可能会生成多个虚拟网卡,这时peep可能会选错本机的IP地址,需要手动调整 。在Peep根目录下找到目录,打开里面的.json,将正确的ip地址填入字段 。
然后返回Peep的解压目录,在里面找到peep.exe,双击打开
点击地址栏后边的“+”按钮打开一个新的窗体,在里面输入微应用的地址,长的短的都行,效果一样 。如下图 。
浏览图片
播放视频
网站是要给其他人访问的,光自己能访问可不顶用,叫远方的朋友也试一下,让他也下载Peep,把地址发给他,短地址、长地址都行 。果然可以打开,可以在公网上自由访问 。到此,第一个web3应用就建成了 。
工具下载地址
【一、第一个web3应用】这两个工具对运行者都并不十分友好,配置稍显复杂 。现在是验证阶段区块链服务所在的机器性能也很有限,调整也较频繁,历史数据常常会清空,望大家谅解 。