>财经>>正文

技术入门:比特币怎么来的,为什么这么贵?

原标题:技术入门:比特币怎么来的,为什么这么贵?

小白入门:比特币是什么?

《比特币白皮书》

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

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

《比特币白皮书》[摘要]:本文提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。虽然数字签名(Digital signatures)部分解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付(double-spending)的话,那么这种系统也就失去了存在的价值。我们在此提出一种解决方案,使现金系统在点对点的环境下运行,并防止双重支付问题。该网络通过随机散列(hashing)对全部交易加上时间戳(timestamps),将它们合并入一个不断延伸的基于随机散列的工作量证明(proof-of-work)的链条作为交易记录,除非重新完成全部的工作量证明,形成的交易记录将不可更改。最长的链条不仅将作为被观察到的事件序列(sequence)的证明,而且被看做是来自CPU计算能力最大的池(pool)。只要大多数的CPU计算能力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成最长的、超过攻击者的链条。这个系统本身需要的基础设施非常少。信息尽最大努力在全网传播即可,节点(nodes)可以随时离开和重新加入网络,并将最长的工作量证明链条作为在该节点离线期间发生的交易的证明。

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

1. 链(Chain)怎么形成?

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

Ø 竞争记账:每个节点都可以争取记账,看谁最先计算出满足条件的哈希(HASH)值。涉及技术:共识机制(POW\POS\DPOS\POOL)、密码学(SHA256算法)

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

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

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

Ø

备份:每个参与交易者都是区块网络的节点,每个节点都有一份完整的公共账簿备份,也就是分布式账本。涉及技术:区块化数据库(默克尔树)默克尔树是一种二叉树,由一组叶节点、一组中间节点和一个根节点构成。最下面的大量的叶节点包含基础数据,每个中间节点是它的两个子节点的哈希,根节点也是由它的两个子节点的哈希,代表了默克尔树的顶部。默克尔树的目的是允许区块的数据可以零散地传送:节点可以从一个源下载区块头,从另外的源下载与其有关的树的其它部分,而依然能够确认所有的数据都是正确的。默克尔树协议对比特币的长期持续性可以说是至关重要的。在2014年4月,比特币网络中的一个全节点-存储和处理所有区块的全部数据的节点-需要占用15GB的内存空间,而且还以每个月超过1GB的速度增长。简化支付确认(SPV)协议允许另一种节点存在,这样的节点被成为“轻节点”,它下载区块头,使用区块头确认工作量证明,然后只下载与其交易相关的默克尔树“分支”。这使得轻节点只要下载整个区块链的一小部分,就可以安全地确定任何一笔比特币交易的状态和账户的当前余额。

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

记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识。一个区块相当于一张纸,分两个部分:区块头(记录当前区块的元信息)和区块体(实际数据)。交易就是点对点转账,在确认交易真实性后,将交易数据写入数据库(区块),才算交易成立,对方才能真正收到钱。产生一个区块时间为10分钟,通过动态调整难度系数,来控制区块的产生速度。根据比特币协议,一个区块的大小最大是 1MB,而一笔交易大概是500字节左右,因此一个区块最多可以包含2000多笔交易。矿工负责把这2000多笔交易打包在一起,组成一个区块,然后计算这个区块的 Hash。然后矿工以此获得奖励,并记入当下这个区块第一条交易,新增比特币生效。所谓Hash就是计算机可以对任意内容,计算出一个长度相同的特征值。区块链的 Hash 长度是256位二进制数字。而且可以保证,只要原始内容不同,对应的 Hash 一定是不同的。Hash和区块头一一对应,Hash = SHA256(区块头)。

而矿工的工作是计算区块头中的随机数即nonce的数值,使其满足SHA256(SHA256(Block_Header))<target,而这个计算过程就是工作量证明,既共识机制。

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

以下当前难度值的公式:

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

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

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

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

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

本次交易双方的地址

支付方的公钥

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

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

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

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

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

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

拓展资料:

ü 关于密钥:

比特币密钥长度:256位

公钥哈希值=RIMPED160(SHA256(公钥))

比特币地址=1+Base58(0+公钥哈希值+校验码),以0x开头的42位16进制哈希值字符串。

校验码=前四字节(SHA256(SHA256(0+公钥哈希值)))根据协议,公钥的长度是512位。这个长度不太方便传播,因此协议又规定,要为公钥生成一个160位的指纹。160位是二进制,写成十六进制,大约是26到35个字符,比如 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2。

ü 对数字货币的理解:

“我们定义,一枚电子货币(an electronic coin)是这样的一串数字签名”,很容易让人误解的是这里的电子货币是个具体数字,其实它是一条加密的记录(数据),也就是说你拥有的交易记录才是你的数字资产,唯一表示你身份的是你的公钥(钱包),证明你所有权的是你的私钥(密码)。当你拥有支付一条记录时,你就拥有了一定数量的所谓比特币,这时候你就可以创建一条新的记录把它花出去,那么会重复图中的过程,你需要用别人的公钥创建一条新的新的记录,这里需要注意的是,这条新的记录里面包含了你从别人那里收到这条记录的信息,如此循环往复形成了一个交易链条。返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
投诉
免费获取
今日搜狐热点
今日推荐