主页 > imtoken安全吗 > 比特币的密码学原理 比特币

比特币的密码学原理 比特币

imtoken安全吗 2023-12-18 05:07:15

比特币密码学原理

散列

比特币使用 SHA-256 作为其哈希函数

哈希加密的本质:抗碰撞、隐藏、解谜友好。

符号

比特币账户使用非对称加密的公私钥对,保证交易是“安全的”,即在网络传输过程中不会被篡改。

用于签名的私钥

比特币钱包密码忘记_比特币 挖矿 原理 hash_比特币的密码学原理

公钥用于验证签名

这个操作在生成公私钥的时候需要一个好的随机源,即生成的公私钥对很难和过去的账户产生哈希碰撞

比特币区块使用的数据结构

哈希指针:哈希值而不是指针

Merkle Tree:二叉树比特币的密码学原理,底层存储每笔交易信息,上层进行哈希处理,保证交易不可篡改。

比特币钱包密码忘记_比特币的密码学原理_比特币 挖矿 原理 hash

对于轻节点,验证默克尔证明是 θ(log(n))。

对于轻节点,验证非成员资格的证明是 θ(n)。

39.png

交易资讯

比特币采用UTXO模型,即每笔交易都需要说明钱的来源比特币的密码学原理,in=out(零钱给自己)。 发出的交易会被放入UTXO集合,等待矿工打包形成新的区块。

比特币的密码学原理_比特币 挖矿 原理 hash_比特币钱包密码忘记

这种结构可以防止双花攻击(double spending)

分布式共识与挖矿

为了保证分布式数据库的一致性,比特币采用了 POW 共识机制。

矿工会将一些交易打包到新的区块中,并不断尝试Nounce值(指数分布),即使该区块的哈希值小于难度值Bit。 被计算的矿工将获得记账权并公布区块,供他人验证交易的合法性和Nounce值。 价值的正确性,通过它可以获得交易手续费和区块奖励。 我们假设大多数节点都是“诚实的”,从长远来看,每一笔合法的交易都会被写入区块。

但由于51%算力的可能性,仍然存在分叉攻击的可能。

比特币 挖矿 原理 hash_比特币钱包密码忘记_比特币的密码学原理

块状结构

40.png

比特币网络、脚本语言和分叉

网络:p2p网络。 节点分为两种:轻节点(只有区块头信息)和全节点(完整的区块信息和UTXO集合)。 轻节点无法独立验证交易的合法性和正确性,需要向全节点请求默克尔证明。

脚本语言:一种极其简单的脚本语言,只使用堆栈空间。

比特币的密码学原理_比特币钱包密码忘记_比特币 挖矿 原理 hash

软分叉:旧节点识别新节点,反之则不行。 通常会分叉但不会伸长,通常最终会变回链条。

硬分叉:新节点承认旧节点,反之亦然,或者双方互不承认。 除非升级所有旧节点,否则它将继续分叉。

关于匿名、零知识证明和分布式共识的思考

1、匿名性:比特币的匿名性并不完备。 与现实世界的交易交互,公钥地址跟踪很容易暴露比特币钱包与真人之间的对应关系。 所以一个钱包最好只用一次。 使用洋葱路由来屏蔽 ip 地址。

2. 零知识证明挖掘

3.分布式共识的思路暂时不能补坑。 希望这学期能学完分布式系统,把坑填上。

AMA 明天打补丁,下次更新以太坊