SYSTEM: ONLINE
VER. ...
SLEET LOG
SLEET'S LOG
/2025年4月12日/1 MIN READ

Web3 入门学习笔记

学习笔记

综述

Web 1:静态门户,只读

Web 2:可读可写

Web 3:可拥有

密码学

区块链底层安全机制的保障。

概览

  1. 加密算法 / 解密算法(对称加密、非对称加密)

  2. 数字签名

  3. 哈希(散列函数)

科尔霍夫原则

对于一个密码学系统,应当仅有密钥是保密的,其余算法和一切参数都应该是公开的。

并不一定要数学上完全不可破解,只要在现实中不可能破解即可。

对称加密

概念:加解密时使用相同的密钥

古典密码学 - 凯撒密码:单表代换

凯撒密码加密时,会将明文中的每个字母、都按其在字母表中的顺序往后(或往前)循环移动固定数目

现代对称加密算法

  1. 分组密码:DES / AES

  2. 流密码:伪随机数生成器(PRG)

优点:效率高

缺点:双方必须事先共享密钥

非对称加密

概念:加解密使用的密钥不同。分为公钥(对外公开)和私钥(只有自己知道)

缺点:效率较低。

传统使用方式:通过非对称交换密钥,再用对称加密通信。

椭圆曲线 ECC

因为并不是在每个群上的离散对数都是难解的,但是在某些椭圆曲线群上难解,因为一个群对应一组 abcde 参数

比特币选取的曲线是 secp256k1

加解密

a 给 b 传消息。a 用 b 的公钥加密完消息,b 用自己的私钥解密

在没有私钥的情况下,其他人无法获取到明文相关信息

数字签名

a 想证明某个消息是自己发的。

a 用自己的私钥签名,其他人可以用 a 的公钥验证签名有效性

在没有私钥的情况下,无法伪造签名

ECDSA:基于椭圆曲线的数字签名算法

消息摘要

  • 把无穷空间内的消息映射到有限空间内的摘要(哈希)

  • H(M) = x

  • 碰撞:不同的内容可能会被哈希成相同的结果

  • 确定性算法:无论哈希多少次,或者换设备换时间进行哈希,得到的结果都是一样的

  • 消息一旦改变,摘要也会改变

哈希算法性质

  • 不可逆(单向性):拿到哈希值的人,无法知道原始明文是什么

  • 抗碰撞:无法找到两个摘要相同的不同消息(计算意义上不可能)

  • 确定性

  • 混淆性

  • 不可预测性

钱包地址

每个地址实际上对应了一对公私钥对

随机出一个私钥 -> 用私钥产生公钥 -> 把公钥进行一些乱七八糟的转换 -> 得到地址

私钥是证明你拥有该账户的唯一方式。一旦私钥泄露,该账户将被别人拥有

交易

实际上实现了一个数字签名的过程(用私钥对其进行签名)

每个交易就是一条 message。先对 message 进行哈希,再对它进行签名

靠哈希算法性质维护最长链,防止攻击

每一个块的头部,都包含了上一个区块的哈希(链式结构)

想要修改之前区块中的某个内容,从那个块开始的、所有后面的块都要进行修改,哈希值也会完全不同

枚举哈希很难,所以很难对抗全网算力计算出新的链

默克尔树

基于哈希的树状结构。依靠哈希来快速确认某个值是否在一个集合中。

常用于区块存储交易、发行白名单确认等场景。

默克尔树

原理

l1、l2、l3、l4 分别进行哈希。l1 和 l2 哈希后的结果再一起进行哈希,得到 hash0;l3 和 l4 哈希后的结果再一起进行哈希,得到 hash1。最后 hash0 和 hash1 再次进行哈希,得到最终值

同样是只要 l1、l2、l3、l4 其中有一个产生了变化,整个哈希后的值都会变

如何验证是不是在一个集合

假设要验证 l1,那么只要得到 l2 哈希后的值,以及 hash1,然后和 l1 一起验算,看最后得到的哈希值正不正确

Article Index