服装公司网站模板,公司注册地址与办公地址不一致,icp备案网站要先建好吗,英语作文网站#x1f308;个人主页: 鑫宝Code #x1f525;热门专栏: 闲话杂谈#xff5c; 炫酷HTML | JavaScript基础 #x1f4ab;个人格言: 如无必要#xff0c;勿增实体 文章目录 区块链密码学基础引言一、哈希函数1.1 基本概念1.2 数学表达 二、非对称加密2.1… 个人主页: 鑫宝Code 热门专栏: 闲话杂谈 炫酷HTML | JavaScript基础 个人格言: 如无必要勿增实体 文章目录 区块链密码学基础引言一、哈希函数1.1 基本概念1.2 数学表达 二、非对称加密2.1 基本原理2.2 数学基础2.3 应用场景 三、数字签名3.1 工作原理3.2 数学表达 四、默克尔树4.1 结构特点4.2 数学表达 五、零知识证明5.1 基本概念5.2 性质5.3 数学表达 六、同态加密6.1 原理 结论参考资料 区块链密码学基础
引言
密码学是区块链技术的核心基石没有现代密码学的支撑区块链的去中心化、不可篡改等特性将无从谈起。本文将深入浅出地介绍区块链中的密码学基础知识。
一、哈希函数
1.1 基本概念
哈希函数Hash Function是区块链中最基础的密码学工具它可以将任意长度的输入数据映射为固定长度的输出。在区块链中最常用的是 SHA-256 算法。
哈希函数具有以下特性
单向性由输入计算输出容易但由输出推算输入几乎不可能抗碰撞性找到两个不同的输入产生相同的输出是极其困难的确定性相同的输入必然产生相同的输出雪崩效应输入的微小变化会导致输出的巨大变化
1.2 数学表达
对于输入消息 m m m哈希函数 H H H 将生成固定长度的哈希值 H ( m ) h H(m) h H(m)h其中 h h h 的长度固定
二、非对称加密
2.1 基本原理
非对称加密使用一对密钥公钥Public Key和私钥Private Key。公钥可以公开分享私钥需要安全保管。在区块链中最常用的是椭圆曲线加密算法ECDSA。
2.2 数学基础
椭圆曲线加密基于如下方程 y 2 x 3 a x b ( m o d p ) y^2 x^3 ax b \pmod{p} y2x3axb(modp)
其中 a a a 和 b b b 是系数 p p p 是一个大素数。
私钥是一个随机数 k k k公钥 K K K 通过以下方式生成 K k ⋅ G K k \cdot G Kk⋅G
其中 G G G 是椭圆曲线上的基点。
2.3 应用场景
数字签名地址生成身份认证
三、数字签名 3.1 工作原理
数字签名用于证明消息的真实性和完整性。签名过程如下
计算消息哈希 h H ( m ) h H(m) hH(m)使用私钥 k k k 对哈希值进行签名 s S i g n ( h , k ) s Sign(h, k) sSign(h,k)生成签名对 ( r , s ) (r,s) (r,s)
验证过程 V e r i f y ( h , ( r , s ) , K ) t r u e / f a l s e Verify(h, (r,s), K) true/false Verify(h,(r,s),K)true/false
3.2 数学表达
ECDSA 签名算法的核心计算
选择随机数 d d d计算点 R d ⋅ G ( x r , y r ) R d \cdot G (x_r, y_r) Rd⋅G(xr,yr) r x r ( m o d n ) r x_r \pmod{n} rxr(modn)计算 s d − 1 ( h k r ) ( m o d n ) s d^{-1}(h kr) \pmod{n} sd−1(hkr)(modn)
其中 n n n 是椭圆曲线的阶。
四、默克尔树
4.1 结构特点
默克尔树Merkle Tree是一种哈希树用于高效地验证大量数据的完整性。 Root Hash/ \Hash(1,2) Hash(3,4)/ \ / \Hash1 Hash2 Hash3 Hash4| | | |TX1 TX2 TX3 TX44.2 数学表达
对于交易集合 T X { t x 1 , t x 2 , . . . , t x n } TX \{tx_1, tx_2, ..., tx_n\} TX{tx1,tx2,...,txn}默克尔根的计算 M e r k l e R o o t H ( H ( H ( t x 1 ) ∣ ∣ H ( t x 2 ) ) ∣ ∣ H ( H ( t x 3 ) ∣ ∣ H ( t x 4 ) ) ) MerkleRoot H(H(H(tx_1) || H(tx_2)) || H(H(tx_3) || H(tx_4))) MerkleRootH(H(H(tx1)∣∣H(tx2))∣∣H(H(tx3)∣∣H(tx4)))
其中 ∣ ∣ || ∣∣ 表示字符串拼接。
五、零知识证明
5.1 基本概念
零知识证明允许证明者向验证者证明某个命题的正确性而无需透露任何其他信息。
5.2 性质
完整性如果命题为真诚实的证明者可以说服验证者可靠性如果命题为假任何证明者都无法说服验证者零知识性验证者除了命题的正确性外无法获得任何其他信息
5.3 数学表达
以 Schnorr 协议为例
证明者选择随机数 r r r计算 R r ⋅ G R r \cdot G Rr⋅G验证者发送随机挑战 c c c证明者计算响应 s r c ⋅ x s r c \cdot x src⋅x验证者检查 s ⋅ G R c ⋅ P s \cdot G R c \cdot P s⋅GRc⋅P
六、同态加密
6.1 原理
同态加密允许在加密数据上直接进行计算而无需解密。
对于明文 m 1 , m 2 m_1, m_2 m1,m2加密函数 E E E存在运算 ⊕ \oplus ⊕使得 E ( m 1 ) ⊗ E ( m 2 ) E ( m 1 ⊕ m 2 ) E(m_1) \otimes E(m_2) E(m_1 \oplus m_2) E(m1)⊗E(m2)E(m1⊕m2)
结论
密码学为区块链提供了坚实的安全基础。通过哈希函数、非对称加密、数字签名等技术的组合实现了去中心化、不可篡改、匿名性等核心特性。随着零知识证明、同态加密等新技术的发展区块链的应用场景将更加广泛。
参考资料
Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash SystemGoldwasser, S., Micali, S., Rackoff, C. (1989). The Knowledge Complexity of Interactive Proof SystemsMerkle, R. C. (1987). A Digital Signature Based on a Conventional Encryption Function