Web3简介——把信任交给算法

以太坊、区块链、合约都是什么啊?
第一次看到合约这个词不小心想到了明日方舟的危机合约还有救吗...

第一节:Web的进化

在介绍Web3之前,我们先来聊聊这个Web,1990s 至2000s 初期,计算机的快速流行,让普通人也可以拥有个人电脑,但是拥有了电脑之后,普通人又不能像程序员一样去用电脑编写程序——而是想要把它做成日常的无论是工具也好还是消遣的方式。
人类最重要的识别一个物品的器官是眼睛,所谓“博人眼球”就是指物品非常漂亮吸引读者注意力(视觉)。
另一方面,当时除了单纯的计算机之外,还有一个非常重要的东西——网络,它做的是将一台电脑和另一台电脑通过无论是以前的电信号还是如今的光信号连接起来,传输信息。于是,一台计算机的信息就可以传输到另一台计算机上。服务器也可以把信息传给计算机——于是,好玩的内容就来了。

如果我们在服务器里面部署一个页面然后24/7像大众展示一个精心制作的页面,不仅可以增加网页的知名度,还可以让人们了解其中的信息

Web1:Read Only 时代

约 1990s – 2000s 初

网页的内容全部由网站方生产,也就是访客无法增删改网页的内容,只能看。

特征

  • 以HTML的静态网页为主,几乎没有什么交互,以展示信息为主要功能(我的博客就是这样的)

  • 单向传播,数据只能从网站发送到用户,用户不能共建

  • 内容放在服务器上,中心化管理,网站方完全控制网站内容


攻击角度
由于以服务端为主,所以以服务器数据库的攻击为主,例如SQL注入、弱口令等方式,而用户侧因为几乎不上传内容,所以风险比较低

而之后,由于互联网的快速发展,普通的只读网站已经满足不了人们的需求了,人们更想要自己上传、搜索一些内容...

Web2:Read & Write 时代

约 2000s 中 – 至今

用户不仅能看,还能生产内容、互动、社交。但是由于网站仍然由平台服务器搭建的,所以平台依旧掌握数据和规则。
你现在的浏览器搜索、刷视频、直播等各种内容都是Web2产生的

特征

  • 用户生成内容(UGC):发帖、评论、上传、点赞、直播。

  • 强交互:JavaScript、AJAX、SPA、移动 App。

  • 平台中心化:账号、数据、推荐算法、支付、身份都由平台控制。


攻击角度
由于增加了用户的输入侧,所以攻击面非常大,从前端到后端。XSS、CSRF、IDOR、SSRF、信息泄露(由于数据仍然在平台,一旦骇入服务器,就可以拿到大量的用户敏感数据,用户对数据主权和规则缺乏控制)等等各种问题都会出现。

这也就是我们现在面临的处境,虽然平台都保证保护用户数据,但是仍然会有很多的信息泄露...而且把自己的敏感信息给别人总觉得不放心,相信未来的web模式肯定把数据存储在用户个人上...

Web3:转移读写的归属身份

Web1 是只读的,Web2 是读写的,Web3 将是读-写-拥有的。

也就是,Web3下,互联网的所有权和控制权不再是平台,而是用户,而web2和web3的区别,也在下面给列出了

层面Web2 的归属Web3 主张的归属
身份平台账号(微信、Google 账号)钱包地址 / 去中心化身份,私钥自持
数据与资产存在平台服务器,平台控制链上记录,用户通过私钥控制
规则制定平台单方修改协议与社区治理(代币投票、DAO 等)
不过这里面有很多陌生的词汇:什么是钱包?还有私钥是什么? 以及刚刚接触Web3的你也会产生很多其它的疑问:怎么一个Web还要和加密算法联系起来?还有什么是合约?加密货币这种东西又是怎么和web3联系起来的?以太坊又是啥?区块链是什么? 没关系,我们慢慢解释。

第二节:Web3 INTRO

开始具体讲解之前,我先给一个基础的框架, 区块链 是靠 加密算法 和 私钥 来保护安全的,而有了 私钥 ,就有了 钱包 ,你可以用 私钥 打开自己的 钱包 ,里面放着的是 加密货币 。管理资产、制定规则的核心大脑叫做 智能合约 。而这些都建立在 以太坊 上。

什么是区块链?

相较于Web2的中心化,Web3的不同之处就在于“去中心化”。举个例子,Web2的时候,你从村委会借10元,只有村委会记着这件事情,假设某一天村委会突然消失了,这借的10元的凭据也就消失了,又或者,假设村委会很黑心,把10元改成了15元,这个凭据在它手上,你没办法改——这暴露了Web2的两个致命的问题,信息的中心化、备份少或无导致其易遭到篡改。
而区块链则是让每个村民都有记账本,你从村委会借10元,其他所有村民都会记录这笔账,那当出现上面的两个情况的时候:1.村委会突然消失了——其他村民手上还要备份,仍然记得你借了10元。2.村委会把10元改成15元——无法改,因为区块链按照少数服从多数原则,只有51%以上的人改了才能在最终的结果上改。
这里就可以看出区块链的特性

  • 去中心化(Decentralization)

  • 不可篡改(Immutability)

  • 公开透明与匿名性(Transparency & Pseudonymity) 任何人都可以查账,但是记录的不是你的真实名字,而是你的地址(之后的公钥私钥会讲)


所以,区块链本质是一个去中心化的、通过所有参与者共同维护的分布式数据库

在区块链的世界里,用户与用户是没有信任的,一切的存储都要用密码学(哈希&签名)来保证,防止数据错误,也用来防止被不法分子造假。

下面是具体的介绍

区块 Block


区块实际上就是一段数据结构,每一个区块(Block),在计算机里实际上包含两个主要部分:区块头(Block Header) 和 区块体(Block Body)。

  • 区块体——真正的交易记录 相较于Web2的交易内容可能是形如 张三给李四转了 100 块 ,Web3的记录是以代码和地址构成的,eg A 地址 给 B 地址 转了 2 个 ETH or C 地址 给 D 地址 转了 0.5 个 BTC ,当然,一个区块不可能就只装一条交易记录,通常会打包几百几千个这样的交易记录。
  • 区块头——标签 这是区块从单个变成链的关键,这里包含了前置节点的哈希,时间戳(什么时候被打包出来的),以及一个叫默克尔根(Merkle Root) 的指纹(算法先不研究,只需知道这是该区块所有交易汇总之后的唯一指纹)区块头的所有信息加起来,再算一次哈希,就是这个区块自己的指纹。
聪明的你发现了一个关键信息,刚刚说到的前置节点——链——那不就是链表吗?!那我理解了呀,区块链在数据结构上原来就是一个单链表,只不过是把指针换成了前一个区块的哈希值。

哈希 Hash

我们把一页账本叫做一个区块,而每个区块都有它独一无二的指纹——哈希值。这个哈希值是根据账本里的内容动态变化的,也就是说,如果你改了账本里的任何一个字,哈希都会彻底改变(雪崩效应,之前的PRNG讲过)。不过具体的哈希算法我们后面的文章会讲到

什么是随机?PRNG真的随机吗?

把这两者结合起来看


[ 区块 1 ]                  [ 区块 2 ]                  [ 区块 3 ]
+-----------------+         +-----------------+         +-----------------+
| 交易记录:      |         | 交易记录:      |         | 交易记录:      |
| 张三 -> 李四 10 |         | 李四 -> 王五 5  |         | 王五 -> 赵六 2  |
+-----------------+         +-----------------+         +-----------------+
| 父哈希:0000... |         | 父哈希:Hash_1  |         | 父哈希:Hash_2  |
+-----------------+         +-----------------+         +-----------------+
        |                           |                           |
        v (哈希运算)                v (哈希运算)                v (哈希运算)
    [ Hash_1 ]  ------------>  [ Hash_2 ]  ------------>  [ Hash_3 ]
     (区块1指纹)                 (区块2指纹)                 (区块3指纹)

这就是为什么黑客很难篡改数据的原因:改区块的数据 = 区块指纹改变 = 后区块的前置节点对不上 = 后区块作废

区块链规则:只认定最长的链。黑客就算尝试修补扩张链长,但是正规军早就延长了链表长度,黑客算出的短链分支会被全网直接丢弃。除非黑客掌握了全网超过 51% 的算力,才能比正规军算得更快,完成篡改。但在比特币或以太坊这种庞然大物面前,这几乎是不可能的....

共识机制 PoW PoS

到底谁有权利记账?谁来把大家喊的这笔账打包到新的一页上?不能随便乱抢。
  • PoW——工作量证明 也就是“挖矿”。谁能先算出一道极难的数学题,谁就能获得打包记账的权利,并获得奖励(比如BTC)。这就需要消耗巨大的算力。
  • PoS——权益证明 本质上就是押钱,谁押的钱多,谁被抽中记账的概率就大(目前以太坊的工作方式)。不过呢,如果是恶意押钱,就会被没收(Slashing)。

风险

信任转移并不能保证绝对的安全,而是从一个尽量将风险从未知转移到已知...
  • 不可篡改信息的代价 在Web2时代被黑客盗号,客服可以帮你回滚数据,但是区块链的不可篡改性意味着你如果转错账、或者被黑客骗着签了名,没有任何人能把钱退回来。
  • 智能合约的重灾区 BTC的账本只允许转账还好,但是后来的以太坊(Ethereum) 在这个账本上加上了“计算功能”,允许写代码——合约。有代码就有漏洞,所以就会有很多黑客通过合约的漏洞来转走资金。

为什么Web3要和密码学紧密结合

因为需要你在一个没有客服、没有密码、全网公开的互联网上,证明 “你是你” 的同时防止被别人冒名顶替。

非对称加密(公钥密码学)

从欧几里得到 RSA RSA的介绍里面讲过(包括RSA也是非对称加密的一种),这里就简单提一下,非对称加密就是指加密和解密用的不是一把钥匙,也就是,私钥一直在接收者这里,从来没有泄露,而公钥是由私钥通过数学算法推导出来的。可以公开给任何人。
      私钥                  公钥(锁) --->             
      接受者-----------------公 网------------发送者
      私钥解密         <---公钥(锁)加密后的密文

而在Web3当中,私钥本质上是一串 256 位的随机数(通常是 64 个十六进制字符,比如 e9873d79...,这又和我们之前讲的PRNG联系起来了,但是实际上这个随机数是TRNG为种子的CSPRNG,因为通过普通算法模拟随机的PRNG不安全但是TRNG又太贵了...这么重要的地方就别用PRNG了啊喂!)。公钥则是通过算法从私钥这里算出来的。地址(Address)则是哈希了公钥之后再截短,这样就是常见的钱包地址。

数学是优雅的——Cola_CaO

非对称加密有两个非常关键的数学优点

  • 单向推导性 通过私钥可以轻易算出公钥,但是反过来则非常非常的困难。

  • 双向验证性 理论上来说,公钥和私钥的一开始可以想象成两把A钥匙和B钥匙,你既可以把A钥匙当作公钥,B钥匙当作私钥,也可以把B钥匙当作公钥,A钥匙当作私钥——这两者本质是相同的,只是你赋予他们的角色不同。用私钥“锁”上的数据,只有对应的公钥能“解”开;用公钥“锁”上的数据,只有对应的私钥能“解”开。(不过在以太坊里用的是ECDSA,在那里它是作为单向使用的)

数字签名

虽然有了公钥和私钥,但是区块链怎么验证这笔交易是你发的呢?这就是数字签名要做的事情。

我们来看一个标准的交易流程:
你要发起一笔交易:A 转给 B 10 ETH

  • 第一步:生成签名 把交易内容加上私钥通过复杂的非对称数字签名算法(比如以太坊用的就是 ECDSA 椭圆曲线算法) 输出一个谁都看不懂的乱码——数字签名。

  • 第二步:广播 把交易内容,公钥/地址,签名一起广播给全网。

  • 第三步:全网验证 矿工验证签名方程,验证解出来的内容是否等于你发出来的广播来判断你是不是你


具体的流程如下
发送者(用私钥签名) ---------------------------------> 全网矿工(用公钥验证)
[交易内容] + [私钥] => (哈希/签名算法) => [数字签名] -----> 用 [公钥] 验签 => 通过=确认身份

风险

你已经发现了,在这当中,私钥的作用非常之大,可以说,它就是你掌控资产的最高指令root,一旦泄露,被黑客抓到,他们可以瞬间把你的资产全部转移,而且更关键的在于私钥是无法修改的,你只能眼睁睁地看着他们把你的资产转走。这也是Web3相较于Web2的所谓Double-edged sword 优点在于私钥、钱包都是你自己保管的,一般情况下是绝对不会被别人知道的,但缺点就在于,因为Web3去中心化导致的没有服务器来保管你的密码,不能靠之前的 账号+密码 来判断身份,且也没有所谓的客服帮你回滚数据——一旦资产转移,就永远没办法回滚回来...

以及Web3特有的一些风险比如:

  • 无限授权(Approve)钓鱼:其实黑客根本不需要偷走你的密钥,他们要做的只是诱导你点击一个“签名”,授权一个智能合约随意调用你的钱包,转走你的代币。数字签名不仅用于转账,还用于授权——风险所在之处

  • 助记词(Mnemonic)的生成:因为私钥太长了,足足64个的16进制字符,普通人根本没办法记下来,所以衍生出了“助记词”的概念,它可以是12/24个英文单词,助记词 = 私钥的简单版,(本质上助记词是一个种子,来推出所有私钥)黑客有时候也会来诈骗你的助记词...

钱包(Wallet)是用来装钱的吗?

实际上,钱包并不是用来装钱(ETH、BTC...),但是钱包里装的,确实比钱更重要的东西——私钥、助记词和地址
ps.那有人要问了:那ETH这种存在哪里?你好好回想一下,Web3与Web2的区别在哪里——去中心化。也就是说,ETH并没有存在你的私人账本下,而是存在了区块链的公共账本上。钱包的作用只是帮你用私钥来签个名,告诉别人你的身份

工作原理

本质上的钱包是一个签名器,工作原理如下:

  • 1.钱包从本地取出你的私钥

  • 2.钱包把你写的具体的转账内容和私钥结合起来,然后自己在本地计算出数字签名

  • 3.打包 公开的转账内容 + 公钥 + 数字签名,然后通过 RPC(Remote Procedure Call,远程过程调用,一种通信协议)广播到区块链上。


钱包的种类


和银行卡的支付模式差不多(可以选择直接绑定微信支付宝,也可以线下取款,甚至可以绑定U盾之类的来确保安全)

1. 热钱包(Hot Wallet) 它的私钥是存储在联网的设备上的(例如手机App,计算机浏览器插件...),优势在于它的交易很方便,但是缺点就是容易被钓鱼,或者电脑中了病毒之后,私钥这些就会被偷取...

2. 冷钱包(Cold Wallet / 硬件钱包) 相较于之前的热钱包,这个一看就知道它是存储在非联网设备中(比如U盘),优点在于极高安全性。你发交易时,交易内容传进硬件,硬件在内部用私钥签名,然后把签名传出去。而且因为物理限制,黑客不能用网络偷走(难不成来线下真实你?)但是既然是物理的物品,那肯定有丢的可能性,你需要自己保管好这个硬件(如果丢了,只要助记词还在,还能找回;如果助记词泄露,硬件也没用)。

3. 托管钱包 / 交易所钱包(Custodial Wallet) 你的钱包在交易所的账户里,私钥在交易所手里不在你自己手里,优点在于忘记密码可以自己重置,而缺点就和Web2一样,如果交易所被黑了,你的资产就可能归零。

Not your keys, not your coins.

保管好你的钱包

在Web3的世界里,钱包是黑客最馋的那块肥肉,也是资金被盗的重灾区,一般来说,黑客会通过在搜索引擎花钱买广告,做个假的 MetaMask 网页。你一下载,生成的助记词直接发到了黑客服务器——供应链攻击,亦或者,你在钓鱼网站上点了签名,把代币的支配权给授权给了黑客...——授权钓鱼

所以一定要查明网站是否为官网,助记词最好物理隔离(写在本子、纸上),放在具有联网功能的电子设备里保不准哪天就给你黑了。

智能合约(Smart Contract)是什么?

code is law

既然是智能合约,那他肯定有和传统合约不同的地方。
传统合约(Web2时代): 靠的是现实的法律约束,如果违约了,就会由法院来处理
智能合约(Web3时代): 靠的是纯纯的代码和机器来运作

智能合约是部署在区块链上的一段不可篡改、自动执行的计算机代码

没错,除非代码写了修改逻辑,否则就算是开发者自己也没办法改,而且只要满足了运行的条件,代码就会自己运行,没有人能阻拦。
也就是说,区块链是一个新的世界,而智能合约则是制定世界运行的常理,就像太阳一定是东升西落一样。

为什么智能合约会和Web3联系起来?

一开始,在早期的 BTC 时代,区块链只能做“转账”这件事情,直到后来Vitalik Buterin 发明了以太坊(Ethereum),在区块链里加入了虚拟机EVM。之后,区块链就不仅可以记账,还能运行图灵完备(指的是理论上可以计算任何可计算的问题,例如Python,C,Java,你可以把合约的语言能力和他们对照)

而合约要做的,其实就是这些事情

  • 发币(ERC-20):一段代码定义了这个币的出生——姓名、总量、如何转

  • 去中心化交易所(DEX):一段代码管理资金池,自动完成币与币的兑换

  • NFT(非同质化代币)归属:一段代码记录“这个图片(元数据里URL指向的图片文件,不一定真的是图片)的归属权(token)属于谁”


而正是因为Web3的特殊性,其中的智能合约一旦部署无法停机,无法修改,因此一旦被黑客发现了漏洞,就会写个脚本之后抽干合约里的钱,甚至因为去中心化的缘故,你报警都找不到他。只要有漏洞(如重入攻击、权限校验缺失),黑客就能瞬间卷走所有资金。这也体现了合约安全审计员的重要性。

不过,虽然理论上不能修改合约,但是很多项目都采用“升级合约(Proxy)”机制——在“不可变”的框架下,实现“逻辑可替换”的效果,同时让合约地址和存储数据保持不变

案例

2023 年跨链桥项目 Orbit Chain 被盗 8100 万美元;2022 年 Ronin 跨链桥被盗 6.24 亿美元。很多时候根本不需要什么高阶代码漏洞,黑客只要拿到管理员的私钥(权限校验缺失),或者在代码里发现一个简单的 “允许任何人调用提款函数” 的 Bug,钱就没了。
其实大多数时间并非黑客的手段高深,只是开发者犯了低级错误

什么是以太坊(Ethereum)?

以太坊让原本枯燥死板的交易增加了规则的“创造模式”

相较于比特币只能记录转账这样的死账本,以太坊在这个账本上加入了 “操作环境(EVM)”

EVM(以太坊虚拟机) 以太坊的核心,可以把它理解成一个运行在全网几万个节点上的超级计算机。开发者用Solidity语言编写智能合约。只要部署上线,EVM就会绝对忠诚地执行。

而Ethereum则是目前 Web3 生态最庞大、资金最密集、开发者最多的公链。Web3的GitHub说是...

以太坊的货币——ETH(以太币)

由于你在以太坊上面运行的各种程序代码比如转账发币交易NFT都是需要消耗计算资源的,如果完全免费,那一定会有很多人去薅羊毛,甚至会有人写恶意代码把网络瘫痪了。为了防止过量资源浪费,以太坊引入了 “Gas 费(燃料费)” 机制。

ETH有它专门的作用

  • 本身作为虚拟货币 具有价值存储的功能,和BTC一样是一种数字资产

  • 充当支付费用 任何智能合约的执行,都必须用 ETH 支付手续费,相当于以太坊世界的货币。而手续费最后会给到充当交易节点的人的手上。


节点


或许你有疑惑:以太坊由几万个节点组成,那这些节点难道就像Web2的服务器一样,需要固定的节点来维持吗?——并非,你想想,这可是Web3!Web3的特性是什么?去中心化,节点一定不会是永远固定的。

那你又要问了,既然不是固定的,那是怎么样才会保持长期都有几万个节点在线的呢?答案上面已经出现了:作为节点的无论是个体还是企业,都能拿到ETH作为回报,有了回报就有动力去维持节点,当然,既然你要承担这个节点的责任,那规矩得先立好,这样用起来才不烧心——保持较高的在线稳定性。如果你质押了 ETH 成为验证者,长时间离线会损失奖励甚至被处以轻微的惩罚,因此参与者(无论是个人还是机构)都有动力让自己的节点尽可能稳定在线。
这些参与者的构成可以是家庭、个人爱好者,也可以是云服务、数据中心,还可能是质押服务商&机构。但他们都有一个共同点——只当节点,不是中心。每一个节点的存在都是一份独立的运营与备份。

以太坊的双层架构

以太坊的底层设计十分巧妙,分为两层
  • 1. 执行层(Execution Layer):处理交易和智能合约(EVM运行的地方)
  • 2. 共识层(Consensus Layer):负责决定谁来记账,这里来打工。以前以太坊是靠PoW来决定的,直到2022年9月之后以太坊升级,全面转向了PoS,这就意味着你不需要去买高额的矿卡去挖矿了,而是 质押(Stake)32 个 ETH 成为验证者,系统就随机抽你记账(一定会有任务,但是不一定会是高额奖励的任务),记对了给你利息,记错了或者作恶,就没收你的 ETH(Slashing)。
顺便,如果你想了解你是怎么赚到ETH的,这里有一个流程:
  • 1. 证明(Attestation):只要你是活跃验证者,那一定会在每个时段(约6.4min)分到一个任务,你要做的就是发表对链的状态表达看法(投票):确认当前区块为最新区块 + 确认验证者本身是从公认起点(目标区块,相当于整个旧区块链的最后——可以理解为一个存档点)链到这个链头的。
即 “我认可 源 → 目标 这条链是合法的。同时我看到的最新区块是 链头。”
  ┌──────────┐      ┌──────────┐      ┌──────────┐
  │  源区块  │─────▶│ 目标区块 │       │  链头    │
  │ (Source) │      │ (Target) │  ╳   │ (Head)   │
  └──────────┘      └──────────┘      └──────────┘
       已确认的链段 ◀──┘                 待确认/可能分叉
  
投票的方式也很直接:你有多少ETH质押,你就有多少票,一旦投的票超过了整个投入的ETH的2/3时,该检查点就被“证明(Justified)”,最后就进入了区块链中。而之前提到的激励计算则是当你的计算最后是正确且及时的时候,就可以拿到全部奖励。
  • 2. 出块(Block Proposal):真正靠运气的部分,每个时隙(12秒)全网只有一个验证者能被选中来打包区块并赚取额外奖励。可以认为是赚外快,当然,是否被抽中的概率也是取决于你质押的ETH的数量的。别理解错,并非是质押3200个ETH就能提高100倍的概率,每32个ETH都是一个彩票号码,而你押的3200就相当于100个彩票号码,每个号码被抽中的概率相同。

以太坊的隐患

黑客的目标可不止一个合约,而是整个生态

体现在以下几点:

  • 1. 智能合约漏洞 不多说了,每个合约都可能成为攻击面,一旦被发现了漏洞后果就是钱包突然空空...

  • 2. 私钥与授权风险:万一点错了一个授权,就可能被资产清空了

  • 3. MEV——黑暗森林法则 :在以太坊上,交易的排序是由验证者决定的。黑客或矿工可以通过“抢跑(Front-running)”你的交易来套利。eg你想买一个暴涨的币,机器人发现之后就以迅雷不及掩耳之势先比你买了,这样导致那一瞬间的币又涨了,而当你买的时候,机器人已经把刚刚买的价格低一点的币给卖给 去中心化交易所的资金池(Pool),你买的是机器人高价卖出去的那部分,空手套白狼属于是。

第三节:总结

其实Web3目前还不能完全普及到我们的日常生活中,因为它太自由了,虽然摆脱了中心化管理,但是也导致了没有人会因为你犯错而替你买单,落子无悔。Web3描绘的是一个人与人完全不需要信任的世界,只有完全的理性——这就是Double-edged sword ,不过我现在也只是刚刚入门了解一下Web3啦,如果要具体学的话...先让我把Web2学好吧

鸣谢:YMSora,Deepseek

Cola_CaO
2026.10.20