写点什么

(28DW-S8-Day4) 区块链里面 2 个核心问题

用户头像
mtfelix
关注
发布于: 2021 年 02 月 24 日
(28DW-S8-Day4) 区块链里面2个核心问题

今天来学习 2 个核心问题:为何要记账、以谁为准。

为何要记账

就是网络上的节点,为什么要争先恐后去给别人广播的交易信息记账。 利益驱动,记账是有偿的,包含手续费和打包费。

手续费

为什么要有手续费

从文献[5]来看,原因如下。

随着比特币的发展,没有手续费的交易基本不会被矿工打包确认,所以很多比特币客户端、钱包就自定义了手续费标准。 这导致不同的比特币客户端,转账的手续费可能不一致。 目前,主流的手续费标准是按照字节收费:每千字节收取 0.0001BTC 的手续费(不足一千字节的交易按照一千字节算)。

字节大小和比特币网络的拥堵情况,是影响手续费的主要因素。除了这两大因素外,币龄(也称为币天)等因素因为会影响交易被打包确认的优先级,所以也会影响手续费。

打包费

打包费是中本聪设计的:

  • 每 10 分钟打一个包

  • 最开始一个包奖励 50 个 BTC

  • 四年后,减为 25 个 BTC (过四年,减半)

比特币一共多少个?

比特币的增加就是打包奖励出来的。但总数固定(不会无限通胀):

sum = 50BTC 每小时 6 个十分钟 x 24 小时 x 365 天 x 4 年 x (1+1/2+1/4+1/8+1/16...) ~= 2100 万

以谁为准

大家都会全抢着去记账,如何确定是谁

知乎上一个形象的比喻就是,一个富人家有 N 个闺女要嫁出去,比赛解数学题,每个题目对应一个闺女。最先解出第 i 个题目的,可以娶第 i 个闺女。

工作量证明:挖矿

中本聪设计的确认算法叫工作量证明。

每个 node 都要去解一个很难的数学题,做出来的就有权利打包。 这个难题没有精巧快速解法,只能暴力破解,一个个数尝试。 这个过程称为挖矿!

SHA256 算法

输入任何长度字符串(e.g. 一个 10G 的电影、"apple"),输出 256 位二进制

  • 输入改变一点点,输出就会发生很大变化,且没有规律

  • 正向算很 easy

  • 反向算很难,几乎不可能

具体咋算

每次获取一个打包权利,都要求计算出一个符合要求的 SHA256 hash 值。

string = 前块头部+账单+时间+随机数

hash 值 = SHA256(SHA256(string))

工作难度:参数 n 的控制

难度:要求 hash 值的前 n 个数字是 0。

因为只能不算的换随机数来算,如何设置 n 来控制:

  • 比特币设计:10 分钟出一个块

  • 要计算出前 n 个数都是 0, 需要(1/2)^n 次计算。

  • 假设一共 10000 个矿机,每个矿机 14T/S=1.4x10^13/s.

  • 那 10 分钟全球一共能算多少次:1.4x10^13/s * 10^4 * 600s = 8x10^19。

  • 推算出 n=66。

后续:如何防伪、如何防止双重支付、保密

参考文献


发布于: 2021 年 02 月 24 日阅读数: 23
用户头像

mtfelix

关注

内心平静是一生的追求 2018.01.17 加入

简单的技术人

评论

发布
暂无评论
(28DW-S8-Day4) 区块链里面2个核心问题