上山打老虎 发表于 2021-7-9 09:30:22

了解区块链&比特币

  https://www.bilibili.com/video/av45247943
  假如有ABCD四个比特币交易者,其中A交易给B者10个比特币(BTC),而这条信息要广播给其他所有的交易者知道.

  假设这种交易一直在进行,而区块链的一个"块"大概有4000条这样的交易信息.(账单),大概大小为1M.

  这个账单呢会将它打包,打包为一个区块.(为什么要去打包,谁来打包?) ,因为区块链的去中心化,不能像国家银行那样有统一中心化管理,所以为了获得这个打包的权利,会有一道"算法题"出现,哪个交易者破解了该题,就获取了打包的权利,并且获取了比特币设计的奖励(即比特币),俗称"挖矿成功"了. 所以矿工(交易者)去挖矿(赚取BTC)的源头在于打包权利获取的系统奖励和交易者扣除的手续费.
  1. 以谁为准?(网络延迟造成每个交易者收到的广播顺序可能不是相同的,以谁的为准去记录区块呢?)
  中本聪提出工作量证明(挖矿),每一个参与的用户都要去做一个很难的数学题,这个很难的数学题你把它做出来了,就获得了打包的权利.
  你进了打包了,就会获得手续费以及打包奖励.
  2. 为何要记账?(凭什么你广播给我,我就要收着呢,凭什么我要用自己的计算资源(电脑,GPU,矿机)去记录一个与我无关的账目呢?)
  记账有奖励:
  (1)手续费的收益. A支付给B,10个比特币,10要额外花费一些支付用于给打包者手续费.
  (2)打包的奖励. 根据中本聪的设计,打包会提供50个比特币的奖励,并每四年减半,也就是总的比特币的数量为:
  50个×6(一个小时有6个10分钟,因为打包为10分钟一次)×24小时×365天×4年×(1+1/2+(1/2)二次幂+(1/2)三次幂+........(因为减半)) ≈ 2100万 个 比特币
  3. 如何防伪?(防止篡改的区块交易信息)
  4. 如何防止双重支付?
  5. 如何进行保密?(信息都是公开的,别人会知道你有多少钱了吗?)
  6. 要怎样的工作量证明?
  之所以需要矿机或者上万台的专业挖矿机去计算这个算法问题,是因为这个问题与密码破解是有一样的难度的,我也在想这是不是也有可能是有一部分***在挖矿的过程中,
  同时利用这样的矿机进行了密码暴力破解同时制造了比特币勒索病毒.
  (李永乐):假设求解的问题为某字符串解释为sha256后,规定的其前面的二进制的数位为0000000111,要确定每位去碰撞到那个数值,概率均为1/2,那么难度总系数为(1/2)^n.
  (中本聪):需要每10分钟出一个块,怎么去保证呢,就是调整李永乐说的调整n的难度.让接入区块链的计算能力与n实现与规定时间的均衡.
  假设世界上有1万台矿机,每个矿机的运算能力在14T/s,(即1秒钟执行14T次哈希运算),1T是10的12次方,即1.4×10^13/s
  10分钟出现一个区块(根据中本聪设计), 10分钟为 600秒
  计算次数 1.4×10^13(每台矿机1秒的计算能力) × 600s(10分钟,区块出现世界) × 10^4 (1万台矿机) = 8×10^19次 (假设全世界1万台矿机,在这个10分钟里计算的次数)
  根据设定10分钟内"打包权利的计算题"的难度n,来调整总计算量与求解出的时间配置.

  
文档来源:51CTO技术博客https://blog.51cto.com/u_11956468/3014318
页: [1]
查看完整版本: 了解区块链&比特币