当前位置:首页 > 比特币新闻 > 正文

白话白皮书丨比特币BTC,开山鼻祖中本聪

来源: 互联网时间:2018-03-06 16:03:34

《比特币白皮书》

http://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system

原文作者:中本聪(Satoshi Nakamoto)

作者邮箱:[email protected]

中本聪提出了一个完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。所以比特币系统是一个支付系统的解决方案,要解决的两个主要问题,一个是去中心化的p2p系统,一个是支付要解决的双花(重复支付)问题。

1. 链(Chain)怎么形成?

由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。


竞争记账:每个节点都可以争取记账,看谁最先计算出满足条件的哈希(HASH)值。

涉及技术:共识机制(POW\POS\DPOS\POOL)、密码学(SHA256算法)

广播:P2P(peer-to-peer的缩写)系统
涉及技术:通信协议

核对:全网其他有效节点核对该区块记账的正确性,并盖上时间戳,确认区块合法。
涉及技术:时间戳

存储:账簿是分区块存储,区块与区块相连形成链状结构。
涉及技术:分布式结构、信息技术

备份:每个参与交易者都是区块网络的节点,每个节点都有一份完整的公共账簿备份,也就是分布式账本。

涉及技术:区块化数据库(默克尔树)

2. 区块(Block)怎么形成?

记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识。

一个区块相当于一张纸,分两个部分:区块头(记录当前区块的元信息)和区块体(实际数据)。

交易就是点对点转账,在确认交易真实性后,将交易数据写入数据库(区块),才算交易成立,对方才能真正收到钱。产生一个区块时间为10分钟,通过动态调整难度系数,来控制区块的产生速度。

根据比特币协议,一个区块的大小最大是 1MB,而一笔交易大概是500字节左右,因此一个区块最多可以包含2000多笔交易。矿工负责把这2000多笔交易打包在一起,组成一个区块,然后计算这个区块的 Hash。然后矿工以此获得奖励,并记入当下这个区块第一条交易,新增比特币生效。

所谓Hash就是计算机可以对任意内容,计算出一个长度相同的特征值。区块链的 Hash 长度是256位二进制数字。而且可以保证,只要原始内容不同,对应的 Hash 一定是不同的。
Hash和区块头一一对应,Hash = SHA256(区块头)。


而矿工的工作是计算区块头中的随机数即nonce的数值,使其满足SHA256(SHA256(Block_Header))

区块头的大小为80字节,由4字节的版本号、32字节的上一个区块的散列值、32字节的Merkle Root Hash、4字节的时间缀(当前时间)、4字节的当前难度值、4字节的随机数(nouce值)组成。区块包含的交易列表则附加在区块头后面,其中的第一笔交易是coinbase交易,这是一笔为了让矿工获得奖励及手续费的特殊交易。

3. 交易(Transaction)怎么形成?

一次操作,导致账本状态的一次改变,如添加一条记录。需要解决两个问题:①防止冒用你的名义,②防止双花。

非对称加密(通常使用椭圆曲线算法生成密钥对),就是加密和解密需要两把钥匙:一把公钥和一把私钥。你用私钥加密信息,别人用你的公钥解开,从而证明这个信息确实是你发出的,且未被篡改,这叫做数字签名。非对称加密保证了支付的可靠性,解决了你就是你的问题,防止冒用。

比特币协议规定,申报交易的时候,除了交易金额,转出比特币的一方还必须提供以下数据。

上一笔交易的 Hash(你从哪里得到这些比特币)

本次交易双方的地址

支付方的公钥

支付方的私钥生成的数字签名

验证这笔交易是否属实,需要三步。这个就能防止双花。

第一步,找到上一笔交易,确认支付方的比特币来源。

第二步,算出支付方公钥的指纹(所谓指纹,就是一个比较短的、易于传播的哈希值。),确认与支付方的地址一致,从而保证公钥属实。

第三步,使用公钥去解开数字签名,保证私钥属实。

经过上面三步,就可以认定这笔交易是真实的。

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。

你可能感兴趣