小白也能懂的Web3技术入门指南( 三 )


我们能看到 , 当前互联网模式下 , 互联网服务的特点是:
服务由特定的公司运营 。 如果服务器宕机 , 用户服务就可能中断 。 当然 , 无数工程师呕心沥血确保了各种互联网中心化服务的稳定性 。
基于这些服务 , 用户之间的交互 , 即使看起来是完全个人对个人的 , 都通过一个中心服务器完成 。 这背后的底层逻辑是 , 用户“信任”这些公司服务器是公正的 , 它们按照所承诺的方式服务用户 。
这也是当前大公司提供的互联网服务看起来比小公司更“可靠”更有“信誉”的原因 。 因为大公司当前的用户体量 , 服务的技术和运营能力更可能赢得用户“信任” 。
所以 , 在本质上 , 当前的互联网应用模式 , 是提供服务的公司做了保证 ,使用服务的用户选择了相信 。
那“去中心化”是什么?最基本的一点 , 就是没有中心化服务器 。
以太坊上并没有一个架设在众生(众节点)之上的总服务器 ,也没有任何提供特定服务的服务器 。 或者说 ,以太坊上 , 并没有面向特定应用的服务器的概念 。 只有完全平等的“全节点” , 每一个都保存着全网络的信息状态 。
在以太坊上 , 任何用户都可以直接发起和另一个用户的交易 , 这个交易的合法性和正确性不需要一个大公司服务器来保证;而也正是因为用户互动可以彻底的点对点化 , Web3用户再也无需把自己的账户信息交由某个大公司保管以完成服务 。
用户的账户信息完全在自己手中 , 当用户A和B发生了交易比如以太币转账 , 这个操作由以太坊网络整体确保正确完成 。
前面说过 ,以太坊网络本质上是一个通用计算机;用户发起的交易 , 是唯一驱动这个世界计算机产生“状态变化”的机制 。 但前面也说过 , 以太坊并没有超越的人工智能;或更明确的 , 在以太坊上没有任何掌控全局的程序来担任互联网的服务器仲裁者的角色 。
那么 , 问题来了:没有人或AI去监管 , 又做到了交易的完全可信赖性 。 这么妙不可言的事情 , 究竟是怎么实现的呢?
答案是 ,依靠的不是“信任” , 更不是魔法 , 而是一种基础和绝对可信的科学——数学 。 以下用一种简单的解释来讲一下 , 数学如何从最底层支持了这个美妙的去中心化系统 。
有一种很有趣的数学 , 叫做非对称密码学 。
大家稍微记住几个名词:
公钥:一个大的数字 , 一般用一串16进制数来表示 。
私钥:一个更大的数字 , 用一串更长的16进制数字来表示 。
数字签名:是一种信息加工方式, 把任意二进制信息通过\"私钥\"进行数学运算处理 , 得到了一个被称之为数字签名的字符串 。
简单类比一下 , 可以把公钥看做是账户号码 , 号码对外公开;私钥是密码 , 只有用户自己知道 。 公钥和私钥一一配对 。
一个奇妙的属性是 , 知道私钥 , 可以很简单推出公钥;但反过来不行 , 知道公钥 , 是无法推导出私钥的 。 这也是“非对称”的来源 。
“非对称密码学” 这种美妙的数学理论保证了一个结果:任何一个拿到公钥和数字签名信息的人 , 都能通过标准的数学方法来确认 , 这个数字签名是这个公钥所对应的私钥加工或者说“签名”而成的;并且数学理论确保了 , 只有这个私钥才能得出这个数字签名结果 。
所以 , 数学理论给我们保证了 , 这个带有数字签名的信息 , 确实是由拥有对应私钥的人“签名”发出来的 ,其他人无法伪造 。
但这和我们说的去中心化交易有什么关系呢?
在以太坊体系里 , 我们每个人的账户地址 , 是一个公钥 。 这不是比喻 , 而是字面意义上的 。 如果读者使用过以太坊相关软件 ,都知道以太坊的账户是以十六进制地址来表示的 ,这个地址不是别的 , 正是密码学意义上的公钥 。
那么 ,用户的私钥在哪里呢?
事实上 ,每个第一次使用以太坊的人都会被Web3账户管理软件提示 ,要记住一串助记词 , 并会被软件反复提醒 , 不要告知任何人助记词 , 更不要丢失助记词 ,否则账户再也找不回来 。 这个助记词 , 就是私钥的某种映射;简单一点来理解 , 这一串助记词是私钥本身 。
Web3的账户管理软件 , 也就是所谓的Web3“钱包” , 正是替用户在本地储存管理私钥 , 以及帮用户生成经过私钥数字签名的交易请求发到以太坊 , 从而成为用户Web3网络的事实入口 。
(这里还有个小细节 , 用过MetaMask等Web3钱包的读者会知道 ,要额外设置一个密码进入钱包 。 但一定要注意 , 这个密码并不是以太坊的密码 。 以太坊账户没有密码 , 用户的私钥就是访问账户的唯一和最高凭证 。 这个密码仅仅用来保护在本地储存的以太坊账户私钥信息 , 甚至密码本身都不做联网储存同步:私钥信息本身不会同步到服务器 , 钱包密码就没有任何理由做线上同步了 。 钱包工具是一个本地化软件 。 )

推荐阅读