主页 > imtoken钱包劫持 > 区块链——一些基本概念

区块链——一些基本概念

imtoken钱包劫持 2023-01-30 06:31:07

散列

抗碰撞性(collision free):是指在密码学中,对于一个散列函数已经花出去的比特币称为,很难找到两个不同的输入使得散列后的输出相同。 抗碰撞性是加密散列函数的一个属性:如果很难找到两个散列到相同输出的输入,则散列函数 H 是抗碰撞的; 也就是说,两个输入 a 和 b 使得 H(a) = H(b ),并且 a ≠ b。

隐藏:哈希函数的计算过程是单向的,不可逆的。 给定一个输入X,可以计算出它的哈希值H(X),但是通过H(X),很难知道它的输出是X。当然暴力破解也是一种解决方法。 隐藏特性的前提是:(1)输入空间大; (2)投入分布比较分散。

数字承诺(数字相当于一个密封的信封):通过抗碰撞和隐藏的性质,可以获得数字承诺的性质。

请参考数字信封和签名

Puzzle friendly:如果想让计算出的哈希值在一定范围内,只能一个一个的尝试输入。 很难直接找到某个值,使其哈希值在某个范围内。 这就是挖矿的意思。 挖矿就是对区块中的一些信息+随机数进行hash,使得结果的前K位为0,可以满足要求。 挖矿没有捷径,只能多多尝试。 于是工作量证明(POW)诞生了。

工作量证明(POW):经过大量的尝试,得到符合要求的结果。 这个过程称为工作量证明。

比特币可以当钱花吗_已经花出去的比特币称为_比特币怎么用出去

符号

私钥用于签名,公钥用于验证签名

如何保证两个人的公钥和私钥不一样呢?

理论上可以做到,实际做不到,而且它的概率比地球爆炸的概率还低

数据结构

哈希指针:与普通指针的区别:普通指针指向内存的起始地址,但是哈希指针除了保存起始地址外,还会保存指向内存的哈希值,从而可以方便的验证这个块是否内存(此块)已被篡改。

比特币可以当钱花吗_比特币怎么用出去_已经花出去的比特币称为

tamper-evident log:防篡改日志,在区块链中使用前一个块中的哈希值保存在后一个块中。 牵动全身!

数据结构-hash

Merkle tree:通常是time-for-space。 与链式区块一样,根哈希也可以检测区块链是否被篡改。 您可以使用登录时间来定位哪个块已被修改。

Merkle tree

全节点:包含真实交易数据的节点。

轻节点:只包含哈希头的节点。

已经花出去的比特币称为_比特币可以当钱花吗_比特币怎么用出去

默克尔证明

注意:哈希指针不能有环。 否则会造成循环依赖,造成死锁。

共识协议双花攻击(double spending attack)

共识协议

转账时输入A,说明两件事:(1)货币来源,证明我有钱转给你。 (2) A 的公钥 (3) A 的公钥的哈希值,即币源区块的输出哈希值。 这样通过(2)和(3)来验证是真的A转账,还是某个A'冒充A,比如利用A转账骗钱。

比特币分叉攻击中的分布式共识共识

比特币怎么用出去_已经花出去的比特币称为_比特币可以当钱花吗

分叉攻击

普通叉子

如果两台机器同时挖矿,就可以同时产生两个区块,连接到合法链的末端。

正常分叉

比特币实施

比特币:基于交易的分类账

已经花出去的比特币称为_比特币可以当钱花吗_比特币怎么用出去

以太坊:基于账户的分类账

UTXO(未花费的交易输出)

指那些收到的比特币,但没有花费的数据,全部存储在 UTXO 数据结构中。 用途:为了防止双花,用于验证双花。 换句话说,UTXO 保留了所有未被花费的比特币。

手续费

为什么大家都争着拥有这个记账权?因为获得记账权的节点可以获得两种奖励(1)区块奖励已经花出去的比特币称为,占据了大头(2)交易手续费

伯努利试验

伯努利试验:具有二元结果的随机试验