比特币
何为比特币?
比特币(Bitcoin)是世界上首个去中心化的数字货币,也被称为加密货币。它是一种基于密码学原理构建的货币形式,不依赖于任何中央机构或政府,而是由用户和矿工组成的全球性点对点网络运作。
基本特点
- 去中心化:比特币不受中央银行或政府的控制,交易记录在区块链上,每个参与者都可以拥有一份完整的交易记录副本。
- 匿名性:虽然比特币交易是公开的,但交易参与者的身份信息是匿名的,仅通过地址进行识别。
- 有限供应:比特币的总供应量被设定为2100万个,通过复杂的算法逐渐减少以控制通胀。
技术基础
- 区块链:比特币的交易记录在区块链上,这是一种不断增长的数据链,每个区块包含一批交易信息并通过密码学链接。
- 加密算法:比特币使用SHA-256哈希函数来确保数据的完整性和安全性。
- 数字签名:使用椭圆曲线数字签名算法(ECDSA)来验证交易的合法性。
比特币“从何而来?
比特币的诞生源于2008年全球金融危机之后,人们对传统金融体系的不信任。中本聪(Satoshi Nakamoto),比特币的创始人,在2008年10月31日发布了比特币白皮书,提出了一个新的货币系统概念。
发行机制
- 挖矿:比特币通过一个称为“挖矿”的过程产生。矿工通过解决复杂的数学问题(工作量证明),竞争获取记账权,从而获得新产生的比特币作为奖励。
- 交易记录:每笔比特币交易都会被记录在区块链上,确保交易的透明度和不可篡改性。
比特币的特点
- 无需中介:比特币交易不需要银行或金融机构的参与,减少了交易费用和时间。
- 全球流通:比特币可以在任何地方流通,只要有网络连接,无国界限制。
运行机制
区块链
区块链是比特币的核心技术,每个区块包含一批交易信息,通过哈希链接在一起。区块的哈希值是区块唯一标识。
去中心化电子记账系统
问题:
-
账单以谁的为准? 当A和B同时交易时,如何确定交易顺序?
- 解决方案:通过工作量证明机制(PoW),矿工竞赛决定记账顺序。
-
为什么要记账? 为什么要在自己电脑上记录别人的交易?
- 激励机制:记账有奖励:
- 手续费:交易者支付一定的手续费给记录交易的矿工。
- 打包奖励:每10分钟打一个包,获得50个比特币的奖励,每4年减半。
- 激励机制:记账有奖励:
数学计算:
50∗6∗24∗365∗4∗[1+1/2+(1/2)^2+…]=2100万
因此,运行区块链只需要准备2100万的打包奖励费用。
工作量证明——挖矿
哈希函数:
- 把任意长度的输入通过散列算法变换成固定长度(256位)的输出,常见的哈希算法是SHA256。
- 哈希计算正向容易,反向计算困难至极。
原理:
应用层
- 钱包:比特币钱包用于存储用户的私钥和地址,管理交易。
- 交易:用户可以通过钱包发送和接收比特币。
激励层
- 挖矿奖励:比特币通过奖励给创建新区块的矿工的方式产生,奖励大约每四年减半。目前每10分钟产生一个新区块,奖励12.5个比特币给矿工。
- 交易费用:所有交易都需要支付手续费给记录区块的矿工,交易费不足的交易会被矿工拒绝。
共识层
- 拜占庭将军问题:在分布式网络中如何达成共识,避免少数节点作恶。
- 工作量证明机制(Proof of Work, POW):通过竞赛解决数学难题,获取记账权。
- 挖矿:SHA256(SHA256(Version+HashPreBlock + Merkle_root + Timestamp + Bits + Nonce)) ≤ 难度目标Bits
“双花”问题
如何保证每一笔数字现金只被花掉一次,避免重复支出?
- 解决方案:区块链为每一笔交易加入时间戳,使用UTXO模型。
51%攻击
51%攻击并不能修改数据,但可以进行“双花”攻击。
为什么区块10分钟发布一次
- 原因:区块间隔时间短会导致交易少、浪费大、网络延迟影响大,容易分叉。
如何保证区块发布时间保持在10分钟
- 难度调整:每完成2016个块,根据出块平均时间调整一次难度。
网络层
- P2P网络:点对点技术,没有中心服务器,依靠用户群交换信息,具有耐攻击、高容错的优点。
数据层
- 非对称加密:
- 公钥和私钥成对出现,公钥公开,私钥保密;
- 私钥加密(签名)的信息只有对应的公钥才能解密(验签);
- 公钥加密的信息只有对应的私钥才能解密。
- 公钥加密,私钥解密;
- 私钥签名,公钥验签。