浅谈区块链之入门

浅谈区块链之入门

Tans 732 2023-02-09

区块链入门

Bitcoin基础概念

区块链 = 区块 + 链

l-1675956705924

区块(Block)

首先需要了解一下区块的头部字段值含义:

lfafafaf

  • Prev Hash: 前一个块的 HashHash值, 如果是创世块,则为 00000....00000
  • Merkle Hash: 将一系列交易数据通过简单的算法变成一个汇总的 HashHash
  • Block Hash: 区块哈希,一个区块的哈希没有记录在头部,而是对头部哈希,作为下一个块的Prev Hash
  • Nonce : 搭配POW,矿工通过不断猜测其值来使头部HashHash值(两次SHA256)的前缀达到几个00

链(Chain)

可以发现,cur_block通过头部的prev hash来找到上一区块,进而找到第一个区块,我们把第一个区块称作创世块

如果攻击者想修改账本,例如如下图:

lfafafafafa

如果要篡改2号块的信息,那么他需要修改3号块的prev hash,但是这又会导致 3号块的block hash改变,因此他又需要修改4号块的prev hash,以此类推…. 也就是他需要修改被篡改块的后继所有区块,但是由于采用**工作量证明(POW)**的方式来进行进行记账,这意味他需要掌握全网51%的算力才行。

交易

在比特币的世界中,假如 A 向 B 交易 2个比特币,那么中间的两个问题:

  • 怎么确定A有没有 2个比特币? 这个好验证,大家一直查帐本呀,造不了假
  • 怎么确定这个是A发的? 这就需要使用类似证书的公钥+私钥来解决了

私钥SK自己保存,通过私钥生成公钥PK(银行卡号),注意这个过程不可逆转。

即 : 公钥—– X —–>私钥 ; 私钥 ———-–> 公钥

A发送消息的时候,用私钥对信息进行签名,然后将公钥签名消息发送给别人,那么接收方可以用公钥对信息解密验证,如果验证成功,那么就是成立的,大家也都认同这个转账消息。

挖矿原理

那么交易信息谁来记录呢?也就是谁来记账呢,也就是谁来打包新的区块并且接到前一个区块呢?

总不能白白干事吧,官方宣布:谁能记一笔账谁就有一笔奖金(bitcoin)~ , 这时候大家都踊跃报名成为记账者,那么产生有竞争,那么就必须挑选一名幸运儿记账了,怎么挑选呢?比特币使用了工作量证明(POW),具体原理:

  • 用户打包好最近比特世界的交易记录,做成一个区块
  • 不断尝试修改区块头部的Nonce字段,使得整个头部的哈希值前缀有X个0(X是官方规定的)
  • 谁先尝试出来,那么就说明算力运气好。(这也解释了为什么会出现显卡难潮)

POW被称作共识机制,当然也有PoS共识机制,为了避免浪费计算机资源,通过保证金来对赌一个合法的块成为新区块,恶意参与者会没收其保证金,进而损失经济经济利益。这种全网1/3的资源才能左右最终结果

以太坊

待更新……

参考资料

  1. 廖雪峰的官方网站
  2. 区块链技术指南