【金融】区块链技术——比特币、区块链、如何交易、攻击比特币、比特币历史与未来

177 阅读4分钟

区块链技术——比特币、区块链、如何交易、攻击比特币、比特币历史与未来

比特币

接下来我们将从以下三个方面进行介绍:
在这里插入图片描述

什么是区块链

解决账本中心化

在这里插入图片描述
法币是由我们信任的中心化机构来记账的,有没有非中心化的方式呢

防止篡改

在这里插入图片描述

哈希函数

将任意长度字符串,转换成固定长度(例如256位)的输出,输出掖被叫哈希值

特点:

  • 很难找到两个不同的x和y,使得h(x)=h(y),也就是说。两个不同的输入,会有不同的输出
  • 已知输出,很难找到对应的输入

区块

  • 将总账本拆分成区块
  • 每个区块记录一段时间内的交易

区块链

在每个区块上,增加区块头,其中记录副区块的哈希值,将所有区块按顺序连接起来,形成区块链,子区块存储父区块的哈希值,若不一样则有人进行了修改

核心功能

创造信任,法币依靠政府公信力,比特币依靠技术。

如何交易

地址和私钥

私钥:一串256位的二进制数字,地址是由私钥转化来的,但地址不能反推私钥,地址及身份,一个地址、私钥产生后,只有进入区块链账本,才被大家知道

银行密码和私钥不同:

  • 银行卡密码可以修改,私钥一旦生成,无法修改
  • 银行卡需要申请,(地址、私钥)

数字签名技术

  • 签名函数Sign:(张三的私钥,转账信息:张三转10元给李四)=本次转账签名
  • 验证函数Verify:(张三的地址,转账信息:张三转10元给李四,本次转账签名)=True
  • 签名只能由私钥持有者签名,任何人可以通过验证函数Verify(),来验证此次签名是否由持有张三秘钥的张三本人发出。是则返回true,不是返回false。
    比特币中,私钥就是一切

记账人

除了我之外的任何人(包括记账人),都无法动用我们的钱,除非由私钥

中心化记账的缺点:

拒绝服务攻击
厌倦后停止服务
中心机构易被攻击,比如破坏服务器、网络、监 守自盗、法律终止、政府干预等

去中心记账

  • 去中心化,人人都可以记账,每个人都可以保留完整账本。
  • 任何人都可以下载开源程序,参与P2P网络,监听全世界发送的交易 ,参与记账
  • 获得记账权的记账节点,将得到50个比特币的奖励,每21万个区块后,奖励减半,总量约2100万枚,预计2040年开采完。
  • 记录一个区块的奖励,也是比特币唯一 的发行方式

分配记账权POW

找到某随机数,使得以下不等式成立,SHA256哈希函数(随机数、父区哈希值、交易池中的交易)<某一特定值

难度调整

  • 每个区块之间时间间隔并不是正好十分钟
  • 比特币每隔2016个区块(两周)会加大或减小难度,使得每个区块的平均时间是10分钟

攻击比特币

篡改交易

由于哈希函数和去中心化,无法篡改

拒绝服务攻击

不收入某项交易,该矿工不接受,其他旷工接受

双花交易攻击(double spending)

同一笔钱花两次,会验证账户上是否还有钱,看交易池中已有交易,该用户没有该款项,则不会达成交易。

分叉

两个矿工同时发现矿,会形成两个区块,同时公布两个区块,有的跟着A区块,有的跟着B区块,之后全网会知道这两个区块,但只有一条主链,怎么判断主链呢,区块最多的则为主链,即A和B谁先发现新区快谁就为主块。
<问题1>分叉前用废区块的钱进行了支付,然后一直顺着另一区块往下挖
<问题2>51%算力的问题
在这里插入图片描述

比特币历史与未来


在这里插入图片描述

如何更新

P2P的网洛,更新后有的节点不升级到最新版本怎么办:

  • 软分叉:软版本节点,不接受老版本节点产生的区块。但老版本节点接受新版本节点产生的区块。
    解决方式:更新成新节点
  • 硬分叉:新版本节点,不接受老版本节点产生的区块。但老版本节点也不接受新版本节点产生的区块

核心开发人员、矿工、投资者、普通用户、商家、支付