首页技术文章

精通比特币系列之一

更新时间:2018年04月20日 15时36分27秒 来源:黑马程序员

当下,要问最火爆的概念是什么,那么这个桂冠必定被”区块链”摘得,自正月以来,“比特币”、“区块链”、“ICO”等等概念铺天盖地,占据了各大版面,刷爆了我们的朋友圈,币市井喷式的爆发让很多传统行业的人惊掉了下巴,同时又匪夷所思的发问:比特币到底是什么?区块链又是什么?两者有什么关系?比特币在哪里?能拿在手里么?...


从时间顺序讲,是先有比特币,后有区块链;从从属关系讲,区块链是从比特币上抽离出来的概念,比特币是区块链上的应用,由于比特币是区块链的始祖,虽然其与时下区块链概念有一些区别,但它仍极具代表性,所以,在这里我们主要介绍比特币(BTC,bitcoin),我们将用一系列文章,从最基本的概念聊起,细数一下比特币的前世今生,从多个角度看看比特币,从比特币入手,逐步开启认知区块链的大门。


关于区块链,我们听到最多的描述是:区块链是一个去中心化的,不可伪造,匿名的,基于密码学的分布式账本,


这里面涵盖的信息比较多,我们先了解一下比特币的基本信息,如下图:

1524209003104_QQ截图20180420152309.png

说说中本聪:


比特币的创始人“中本聪”是一个神秘人士,至今无法确定其身份,他是“密码朋克”组织成员之一,“密码朋克”一个汇集精英IT极客的加密邮件系统,维基解密网创始人阿桑奇、万维网发明者Tim-Berners Lee爵士等都是其成员。在2008年金融危机爆发之后,政府和银行管理经济的能力遭到各方质疑,信用降入谷底,政府随意增发美元,导致物价飞速上涨,中本聪对这种中心机构随意影响市场的现象十分不满,他想建立一个无需中心机构参与的金融系统,重塑金融秩序,即将货币去中心化,所以他在2008年10月31日发布了比特币白皮书,即《比特币:一种点对点的现金支付系统》, 并在次年(2009年1月3日)发布了首个比特币系统客户端,公诸于世,最初比特币系统仅有几个人共同使用,且由中本聪自己负责维护代码,后期随着比特币社区人才的加入,中本聪逐渐隐退,从此销声匿迹,将所有维护工作交给社区人员,现在比特币有一个专业的核心开发团队维护,社区良性发展。


说说比特币系统:


比特币系统是一个开源的软件,它对所有人都是开放的,每个人都可以下载并运行,只要在上面创立账号,每个人都可以参与到比特币的交易中来,包括接收和发送比特币。


我们都知道比特币系统是一个电子交易系统,既然存在交易,那么就一定需要货币媒介,在比特币系统里面,起到流通媒介的货币我们称之为比特币(BTC),那么它从哪里来呢?比特币系统是去中心化的,没有中心发行货币机构,那它到底如何产生呢? 对此,比特币系统有一个独特的发行比特币机制,即挖矿,挖矿使得比特币从无到有的产生,并且比特币系统制定了一个挖矿产生BTC数量的递减规则,随着挖矿的进行,货币持续发行量逐渐减少,最终完成全部比特币的发行工作,使系统内比特币数量稳定在一个2100万这个数值,且永不增发。


至此我们了解到比特币的产生来自于挖矿,挖矿又是什么?谁负责挖矿?想深入了解比特币网络,我们需要先了解几个概念。


说说比特币的相关概念:


节点:每一个运行比特币客户端的设备都是一个节点,节点与节点间互联,同步数据,从而构成整个比特币网络


矿工:每个拥有强大计算能力的节点都可以成为矿工,他们通过运行比特币的挖矿程序进行挖矿


挖矿:由矿工执行挖矿,矿工在设备上(也可能是专业的挖矿设备)上运行一个程序,这个程序会拼命的找一个满足要求的数字,如果找到了,那么这个矿工就有会争取到记账的权利,有权对网络中存在的转账交易进行打包,并且记录到账本中,进而得到比特币奖励,这个过程很像开采埋藏在地底下矿物的过程,所以我们称之为挖矿,并且该过程没有捷径可走,从而有效避免了作弊的可能


算力:算力即计算的能力,上面说了,挖矿要运行计算程序,找到目标数字,这个算力就是矿工设备的计算能力,即每秒钟能做多少次运算查找,查找这个数字的过程是运行一个哈希算法(一个密码学算法),我们称之为“哈希碰撞”,算力的单位是hash/s,即每秒种能碰撞多少次,算力越强,计算速度越快,获得记账权的几率就越大


共识机制:是指被整个区块链网络共同认可的、能够让陌生节点间达成共同认可的规则,只要节点按照这个规则做事,做出来的结果就会得到对方的认可,从而达到彼此信任的目的。比特币网络使用的共识机制是POW(Proof of Work,工作量证明),上述所说的比特币挖矿过程就是POW共识机制,共识机制还有很多其他的方式,如POS(Proof of stake,权益证明),DPOS(Delegated Proof of stake,股份授权证明机制)等等


区块,区块链:所谓区块就是账本的一页,里面记录了在一个时间段内(比特币系统10分钟出一个区块)整个比特币系统产生的所有交易,每个区块被打上时间戳(时间戳就是把产生这个区块的具体时间),按照严格的先后顺序,连接起来,形成一个账本,这个账本就是”区块链“


介绍的概念比较多,我们整理一份导图,梳理一下:


1524209040339_QQ截图20180420152334.png

现在我们模拟一下整个交易流程,以方便大家理解比特币系统:


Alice是一个客户,她想买一杯咖啡,向Bob支付0.1个比特币,具体过程如下:


Alice登录自己的钱包(比特币客户端,或者其他比特币钱包),输入对方Bob的地址(相当于银行卡号),输入转账金额0.1BTC,选择交易手续费(手续费可以为零,那么这条交易被写入区块链的优先级会降低,转账就会被延迟),点击发送,那么这条交易就会被发送到比特币网络中去,当某个矿工收到这笔交易之后,会先校验一下这笔交易的有效性(校验过程我们后续再讲),当确定这是一笔有效的交易之后,会把这笔交易暂存到本地的“待确认交易池”中,同时将这笔交易广播到其他节点,每一个节点都可以独立验证这笔交易的有效性,然后再向外传播,通过这种P2P网络,这笔交易迅速的在整个网络中发布。当一个新的挖矿周期开始时(10分钟),矿工会从“待确认交易池”中取出合适的交易,将交易打包,随即开始挖矿,即做哈希碰撞,试图最先找到那个符合条件的目标数字,一旦某个矿工A算出这个数值,矿工A便向整个网络公布结果,所有其他矿工收到这条消息后,立刻停止运算,验证这个数值是否有效,当其他节点确认该数值有效后,矿工A得到记账权,将他打包的区块添加到区块链上,同时获得新生的比特币奖励,整个网络同步最新的账本,随即进入下一轮挖矿竞争中去,循环往复。


当包含Alice的这笔转账的区块被矿工写入到区块链之后,Bob的账户中便会收到Aclie的转账。实际网络中,需要6个区块确认之后,Bob才能使用这笔转账,这是比特币系统为了安全而设置的限制,我们后续再讲。


同样,我们画一个图,便于理解:

1524209068340_QQ截图20180420152414.png



和我们在线交谈!