1.普通数字货币:非对称加密
缺点:很难防御double spending attack(双花攻击)
2.区块链货币(例:比特币): 防御 double spending attack
(1)A—>B的交易存在两个指针,分别是A指向B的指针,A指向交易币来源的指针
(2)A—>B的交易要知道A需要知道B的地 址(相当于银行账户)和B要知道A的公钥
注意:比特币本身并没有告知B地址的机制,必须借助第三方网站
不仅是B本身要知道A的公钥,其他所有节点都需要知道A的公钥已验证交易的合法性
A的币的来源中存在A的公钥的hash,所以不存在假冒A的情况
3.区块链常识
hyperledger(联盟链):成员享有投票权
block chain(区块链):去中心化的账本
Block Header(区块头) :被取hash
Block Body(块身) :存储transaction list(交易列表)
revsion(协议):Paxos(能够保持一致性)
hash of previous block header(指向前一个区块的指针) Merkle root hash(merkle tree的根hash值)
target(挖矿的难度阈值)
nonce(随机数)
H(block header) <= target : block header存储target的编码
full node——fully validating node(全节点):保存所有信息
light node (轻节点):只保存block header的信息,一般来说无法独立验证交易的合法性,系统中占大多数
![[Pasted image 20240321214500.png]]
指针在上面只因为只有Block header里存在hash指针串联
4.distributed consensus(分布式共识)
例:distributed hash table(分布式hash表): 取得的共识:hash表中存在哪些key-value pair(键值对)
impossibility result(不可能结论):
(1)FLP impossibility result:在一个asynchonous(异步系统:网络传输没有上限),只有一个成员存在问题,也不可能达成共识
(2)CAP(Consistency(一致性) Availability(容忍性) Partition tolerrance(分区可用性)) Theorem: 这三个原理最多只能实现两个
5.Consensus in Bitcoin(比特币中的共识协议)
(1)sybil attack(女巫攻击):某一个平台掌握一半以上的membership(账户)来掌控投票结果——简单直接投票不行的原因
(2)算力投票:H(block header)<=target,找到一个nonce使上列等式成立的账户获得创建下一个区块的权力(和记账权)
注意:插入区块遵从longest valid chain(最长链原则)
在中间插入区块也叫做forking attack(分叉攻击)
在同时发布区块的情况下,先找到下一个区块的链是longest valid chain(最长合法链)
(3)block reward(出块奖励):获得记账权的节点会获得coinbase transaction(铸币交易)的权力
注意:铸币交易是发行比特币的唯一方式
最开始一个区块50个BTC,在21W的区块后减半,最多发行2100w枚
节点的hashrate(每秒钟尝试的nonce数目)越高获得记账奖励的机会越高
![[Pasted image 20240406193131.png]]