你真的会玩比特币吗?

2017 年 7 月 27 日 i黑马 云时代架构

 

 授权丨云时代架构

文丨李艳鹏


比特币系统是当下最流行的电子货币之一,也有很多山寨币,但是思想甚至源码都是来自于比特币。


朋友圈里有很多介绍性的文章,也有人试图通过漫画来生动的解释比特币的特性,但是始终不得要领,总是有些问题想不清楚。


为了弄清楚这些问题,最近深入的研读了几本比特币的书籍以及中本聪本人发表的比特币论文,感觉茅塞顿开,迫不及待的与大家分享我的理解,希望与大家共同探讨、共同进步。


1


比特币的发展历程


自从2009年一个自称中本聪(对,是日本人...)的人在一个隐秘的密码学讨论组上发布了一篇叫做《比特币:一种点对点的电子现金系统》的报告,比特币就出现了,并且得到了越来越多人的关注。


比特币从最初的几分钱到现在上万元的价格一路上涨,价格有过猛涨,有过大跌,但是价格的总体趋势是不断增加的。挖矿由一开始的个人电脑到后来的矿机,再到后来的矿池也经过了几代的发展。


政策上得到了一些国家的支持,也有一些国家反对,还有一些国家对比特币的态度很暧昧。最有意思的是,2010年5月21日,在第一次比特币交易中,佛罗里达程序员Laszlo Hanyecz用1万BTC购买了价值25美元的披萨优惠券,这些比特币在最近价值已经上亿了。这些都见证了比特币神奇的发展历史。


2


区块链的前世今生


虽然比特币没有完全得到各国政府的认可,也并不是一个标准的金融组织,但是比特币十几年如如一日的挖矿活动从来没有停止过,比特币交易随时随地都在进行,无疑是一个成功的金融产品,从技术上,比特币的每一项技术点,例如:非对称密码学、P2P网络、共识机制、智能脚本等,都不是创新,但是这些技术组合形成的比特币就是一个大大的创新。


由于比特币的成功,比特币的核心技术区块链越来越多的得到大家的关注,以至于区块链被认为是互联网金融行业的下一个风口,各行各业都在研究区块链,并为区块链寻找使用场景。


有个不恰当的例子,但是很生动,区块链技术就想是一个锤子,满世界的找钉子,好不容易找到的几个钉子,一看还是螺丝钉,还得换成螺丝刀才行,不过非得要用锤子砸进去,也不是不可以,就是有点费力气。


上面这个例子生动的说明了区块链技术的现状,比如,有的企业里面使用区块链做存储、有的企业里面使用区块链做客户的账务、也有的公司里面使用区块链保存电子资产,这些都是在为区块链找场景,虽然区块链还没有得到全面的应用,但是无疑区块链在金融领域已经初露头角。


另外一个现象是很多公司为了炒作新概念,声称产品使用了区块链,例如某某电子资产公司使用了区块链,仔细了解,人家使用的私有链,这让人觉得匪夷所思,私有的区块链是为了提高性能,肯定不是,区块链最难说清楚的就是性能,那是安全,私有的安全在于私有产品的建设,不在于是否使用区块链,那么私有链的使用是为了什么呢?这里读者可自行YY。


实际上,区块链分为共有链、私有链和联盟链


共有链对参与的节点没有限制,整个系统运行在公网上,没有中央机构的控制,自由发展,自发组织,典型的案例就是比特币。


私有链,顾名思义就是一个组织内部运行的区块链系统,这种系统运行在组织内,很难保证去中心化,在一个组织内本身就是个中心化的产物,因此,我一直认为凡事私有链都不要说具有去中心化的特点。


3


比特币是什么


比特币是一种利用点对点技术实现的电子现金系统,它允许一个组织直接与另外一个组织进行在线支付,而不需要中间的权威的清算机构。


在比特币的世界里,如果你想拥有比特币,你需要申请一个比特币地址,就像你到银行存款,需要开立一个账户,然后,你就拥有这个账号,有了自己的账号,你可以向你的账号存款,别人也可以给你的账号转账,当你需要提款的时候或者给别人转账的时候,你需要出示一个能够打开这个地址的钥匙,也就是你的私钥,就像你在ATM上取款的时候需要提供密码一样。


与银行发行的法定货币不同,法定货币的发行是由各国央行来统一管理的,大家都相信央行是靠谱的,不会记错账,也不会被人攻击。然而,比特币的发行并不需要央行这样的权威机构,它允许一笔交易从一个组织直接结算给另外一个组织,省去了权威机构结算的环节,提高了交易和结算的效率,节省了交易的成本,尤其是跨境交易的成本。


4


区块链是如何存储的?


对于一个现金账户系统,首先要解决的是如何记账,把账记在哪里,账户如何存储等。例如,你在中国银行存款,中国银行为你开立账户,你的账户就存储在中国银行的服务器上,而你在建设银行存款,建设银行为你开立账户,你的账户就存储在建设银行的服务器上。


如果你需要转账给同一个银行的其他人的账户,你需要通过这个银行为你转账和结算,如果你需要转账给其他银行的其他人的账户,你需要通过银联为你转账和结算,尽管一个普通用户感知不到如此多的过程,不过这些步骤确实是存在的,从这个过程中我们看到记账的账户系统是专用的,是中心化的,归某一个组织所有并维护,通常这个组织是权威的、可信赖的。


而比特币并没有中心化的记账系统,而是通过分布式的区块链来记载比特币的拥有权和交易信息。


每个比特币的参与者都拥有一份相同的区块链副本,区块链包含着多个随着时间排序的块,后一个块通过哈希指针指向前一个块,形成一个链,从链的顶端通过这个指针,可以一直找到底端第一个块,第一个块成为创世纪块


每个区块记录着前一个区块的哈希散列值,实际上是前一个节点头的哈希散列值,如果想改变一个区块包含的交易,必须改变这个区块之后所有的交易,由于每个区块的产生是需要条件和时间的,并且条件相当苛刻(后续会在共识机制相关的文章中详细说明)。


因此,一个区块一旦产生,并且被区块链的节点所接受,并且在这个节点之后又产生了一定数量的区块,那么这个区块基本是不可篡改的。


区块链示意图如下:


区块链


从上图可见,区块链是由多个区块组成,每个区块是由区块头和区块体组成的,每一个区块头包含着区块的元信息,同时也包含一个指向前一个区块头哈希值的指针,这个指针是防止区块链被篡改的关键信息。


区块体包含比特币的交易信息,第一个交易是特殊交易,是奖励给挖矿节点的酬劳,这也是唯一一种可以产生比特币的方式,也就是发行比特币的方式,其余的交易都是转账交易,比特币从一个地址支付给另外一个地址,这也是实现比特币价值转移的唯一方式。


总结来看,比特币只有发行和转账两种交易,比特币产生以后只能从一个人转账给另外一个人,而不能凭空消失,比特币发行的总量是有限的,一共2100万,因此是一种通缩性货币。


5


如何证明自己拥有比特币?


上面介绍了区块链的存储,区块链实际上是比特币的账本,记录着谁拥有多少比特币,只不过这个账本是保存在互联网上的、分布式的,并不是由一个中心机构或者服务器来存储。


有了账本,剩下的问题就是比特币的拥有者如何证明自己拥有比特币?


就像你在银行开立了一个账户,等你想给其他人转账的时候,你需要在ATM上插入卡,然后输入密码。卡就相当于比特币的地址,密码就相当于比特币的秘钥,有了正确的地址和秘钥,就可以对外宣称自己对比特币的拥有权,就可以把比特币转账给其他人来做一笔转账交易。


更具体来讲,一笔比特币交易会把一定数量的脚本锁定在一个地址,声明拥有这个地址的用户会通过密匙的签名来证明自己拥有这个地址,然后,花费这笔比特币,这笔比特币被花费后并不会消失,会被锁定在其他人的地址上,其他人可以使用同样的方法来花费这笔比特币。


从上面的过程,我们总结了两个动作,锁定与解锁,这和我们平时锁锁头和开锁头是对应的,在比特币系统里是通过锁定脚本和解锁脚本来实现的:


1. 锁定脚本把比特币关联在一个比特币地址上,证明了比特币归属这个地址。


2. 解锁脚本提供证明,证明这个地址归我所有,这个比特币也归我所有,我可以用来支付。


6


挖矿


既然区块链是分布式的记账系统,每个参与的节点都有一份拷贝,那么谁来负责把一笔交易记到区块链呢?


这不得不引入一个新的概念,就是共识机制比特币是通过工作量证明的共识机制来决定记账权的,通俗来讲,谁证明了自己的工作量最大,谁就负责记账。


工作量证明示意图如下:


 

工作量证明:


工作量大小是通过计算符合某一个标准的比特币区块头的哈希散列值来体现的。


试图争夺记账权的节点称为挖矿节点,挖矿节点会把网络节点上发来的交易进行验证,验证后会存入缓冲区,形成一定的交易存储结构,放在区块体中,然后根据区块的基本信息构造区块头,区块头通常包含前一个区块的哈希散列值、Merkle根(后续文章会详细介绍)、时间戳、难度目标、以及一个填充的随机值。


这里面的随机值是随机产生并且填充的,挖矿过程就是求出一个能够填充本区块头的随机值,让区块头的哈希散列值符合某一个标准,例如:哈希散列值的前某些位为0,难度目标就是用来表达哈希散列值标准的难度系数,可以通过概率算法计算出难度值与挖矿成功的可能性。


网络上的每一个矿机接收并验证了一批交易,然后就开始进行挖矿,视图计算满足某一难度值的区块头的哈希散列值,如果计算成功,则挖矿成功,向全网广播挖矿所得,全网节点验证后,把这个区块连接到区块的最上端,并且在全网达成一致。


矿机需要反复的试验随机填充值来进行求解,一般采用产生随机数,尝试把产生的随机数填充到区块头,然后计算哈希,后续文章会介绍矿机联盟,矿机联盟会把随机数分成多个小区间,分配给联盟中的成员,共同求解。



  本文系云时代架构(ID:cloudate权i黑马发布,作者李艳鹏。如需转载请联系原作者获取授权。

 

—— 黑马六月好文 ——


起底五谷道场大败局

BAT之后,不是JAT,而是SAT

为何线下体验消费成为新风口?

2017年度最具商业价值人工智能公司 TOP50

我为什么不爱玩王者荣耀?

疯狂比特币:刷新了你的三观,和他们的钱包

海底捞新菜单里的秘密

共享单车战事,中场无休

诺基亚:你以为他死了,其实已重回世界第二

680万家夫妻店会被替代吗?




i黑马,让创业者不再孤独。

商务合作:15801105017(微信)


↓↓↓ 来来来,报名周鸿祎创业实验室!

登录查看更多
0

相关内容

比特币(Bitcoin)是一种去中心化的点对点的电子货币。其特征包括:1、去中心化,将铸币权下放给个人,人人都可以生产;2、总量一定,是通货紧缩的货币;3、匿名/即时交易。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
阿里巴巴达摩院发布「2020十大科技趋势」
专知会员服务
106+阅读 · 2020年1月2日
【大数据白皮书 2019】中国信息通信研究院
专知会员服务
137+阅读 · 2019年12月12日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
【白皮书】“物联网+区块链”应用与发展白皮书-2019
专知会员服务
93+阅读 · 2019年11月13日
终于有人把云计算、大数据和人工智能讲明白了!
大数据技术
7+阅读 · 2018年4月2日
【区块链】区块链是什么?20问:读懂区块链
产业智能官
8+阅读 · 2018年1月10日
用深度学习预测比特币价格
Python程序员
11+阅读 · 2017年12月23日
猝不及防!刚刚,马云重大宣布,沸腾了全中国!
今日互联网头条
3+阅读 · 2017年11月23日
A General and Adaptive Robust Loss Function
Arxiv
8+阅读 · 2018年11月5日
Arxiv
14+阅读 · 2018年5月15日
Arxiv
7+阅读 · 2018年1月31日
Arxiv
7+阅读 · 2018年1月18日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关论文
Top
微信扫码咨询专知VIP会员