一文带你了解区块链

目录

本文不构成任何投资建议

阅读本文需要15分钟

这篇文章也是我在公司内部分享给大家的文章,主要介绍了区块链发展的大事件,货币的简史,区块链的核心技术,比特币的交易等。

前言

区块链技术伴随着数字货币比特币走向了人们的视野之中,要谈区块链,还是需要先了解下比特币。中本聪为什么要花这么大的心血去造比特币?其核心技术是什么?没有可靠中间人的情况下是如何完成交易的?又存在哪些不足?Libra,DECP又是什么?

区块链大事件

先来简单的了解了区块链的发展的大事件。

区块链的开始,要从这篇白皮书Bitcoin: A Peer-to-Peer Electronic Cash System开始,有兴趣的同学可以读一下。一个名叫中本聪的极客为了表达对政府肆意制造通货膨胀的不满,在2008年底,发表了上面这篇论文,2009年初,搭建了比特币网络,在比特币的创世块中,中本聪留下了这样的一段话:The Times 03/Jan/2009 Chancellor on brink of second bailout for banks。(2009年1月3日,财政大臣正处于实施第二轮银行紧急援助的边缘,这是当天英国泰晤士报头版头条的标题)。中本聪希望通过这个小玩意解决这样的问题:在以后的某个时刻,货币不在由政府来随意印发,从而使我们的财富进行保值。正是这9页A4纸大小的论文,开启了一个新的时代。

2010.5,美国佛罗里达州的一个程序员用1万个比特币购买了价值25美元的匹萨。

在早期,比特币更多的属于技术极客,,并没有多少人关注。

时间来到2013年,发生了很多大事。比如一枚比特币突破了1000美金。比如德国正式承认了比特币的合法地位,这也是第一个认可虚拟货币的国家。同年,年仅19岁的俄罗斯少年V神,认为比特币不是图灵完备(如不支持代码循环的逻辑)的,只能支持简单的转账逻辑、发起了Ethereum项目,支持图灵完美的智能合约,甚至提出了“code is law”。区块链由此进入2.0时代。

随后的几年时间里,诞生了各种各样的ICO,发了各种各样的空气币,吸引了(坑)无数的人。

2016年,IBM发布了企业级的区块链HyperLedger Fabric,得到了政府和企业的广泛关注。

2017年9月4日,央行等七部门联合叫停了非法ICO,促使人们更多的思考区块链技术本身的价值。

2019年6月18日,Facebook联合PayPal,Visa,万事达,eBay,Uber,沃尔玛等多家组织联合发起了Libra项目,其号称要建立一套简单的、无国界的货币,和为数十亿人服务的金融基础设施。

2019年10月24日,陈纯院士向中央做了区块链技术的汇报(消息公布后不到一天的时间比特币涨了40%)。随后央行宣布我们国家可能在明年推出数字货币DCEP。

2020年10月,央行在深圳,苏州展开了DCEP的实验,并且京东宣布支持DCEP。同年,美国正式认可了比特币,日本,新加坡央行也宣布了数字货币的实验。

2021年初,比特币冲上了历史高位,达到了4w美元。

这是大概的历史,下面让我们看下中本聪为什么要花心血造比特币。

货币简史

在中学的课本上,我们就学过,随着人类社会的发展,人们产生了分工,这个时候就需要交换,最早的时候是以物易物。

恩,这是极其不方便的。很快就出现了使用贝壳等稀缺性的物品来作为货币,进行交换。注意,这个时期,往往是没有类似“银行”这种产物的,由于条件的限制,人口比较稀少,活动范围比较狭小,我们每个人都足以记住这些交换。

随着社会的发展,人们的活动范围变大,接触的人越来越多,国家政权随之建立,技术得到进一步发展,比如冶金技术,人们开始使用通过加工的更加标准比如黄金来进行交换,同时人们已经不太可能点对点的发生金融关系了。随之还出现了“当铺”。

黄金也并不是完美的,主要体现在铸币原料的稀缺,携带不便,这个时候变诞生了纸币。与此同时,黄金并没有消失,而是作为了财富保值的手段,只是不用在大家日常的支付中。

随着技术的进一步发展,纸币的劣势也逐渐显现出来,如易造假,流通成本高,电子支付则逐渐成为主流。

好像一切都在向着好的方向去发展,但是也并不是这样。作为政府,在遇到经济危机的时候,第一个想到的就是印制货币,尤其是美国政府,遇到的经济危机,通过印制美元,把风险转移到全世界。如果印制货币的速度和财富增长的速度相同,倒也无可厚非。但是货币的印制速度往往是超越财富是增长速度的,这就导致所有普通人的财富会缩水。如果没有纸质货币,想超发货币是没这么简单的,方法只有发现金矿了。

所以,中本聪希望制造一种总量固定的比特币,来使我们的财富保值。其核心特点是:

  • 去中心化。这意味着没有中心的服务器。
  • 数据难以篡改。所有交易记录全量保存,并公开给所有的人,而且还被加密和校验。
  • 固定的发行量。总共2100万枚。

他是如何实现这些特点的呢?核心技术是什么?挖矿是什么?为什么数据无法篡改?为什么发行量固定?我们接着向下看。

比特币的核心技术

区块链的核心技术包含密码学和共识算法两部分。

先来看密码学,密码学主要分为以下几个部分:Hash算法,对称加密和非对称加密。

  • Hash算法:能任意长度的二进制值(明文)映射为较短的固定长度的二进制值(Hash值),并且不同的明文很难映射为相同的Hash值。主要有MD5SHA256。其主要特点是正向快速,逆向困难,输入敏感,冲突避免,这些特性将在区块链网络中发挥巨大的价值。
  • 对称加密:主要包含DESAES。其主要依赖的技术是:替换密码和置换密码。以及由二者演化出来的 SP网络和 Feistel密码结构。
  • 非对称加密:主要包含RSAECDSA。主要是借助于一些难以解决的数学问题来实现的。

再来看共识算法。共识算法是指一个系统中的节点对不同的提案达成一致的算法,包含CFT和BFT两大类:

  • CFT:Paxos,Raft,其特点是没有作恶节点,但是节点可能无响应。
  • BFT:PBFT,POW,POS。其特点是节点可能无响应,也可能作恶。

比特币是如何完成交易的

看完这些核心技术,让我们来看看比特币是如何综合的利用这些技术的吧。让我们先来思考下,比特币是是如何完成一笔交易的?即在不借助于中心化的机构的情况下如何进行价值转移?

先不接着向下看,我们先来考虑下,会有哪些问题?

  1. 没有中间人如何避免双重支付的问题?
  2. 没有中心化服务器,时间戳来自于哪里?
  1. Alice向Bob发起转账。进行签名后,把这笔交易向全网广播。
  2. 记账节点会对这笔交易争夺记账权,俗称挖矿,争夺成功的节点会获得奖励。
  3. 获得记账权的节点把这笔交易向全网广播,其他的节点验证成功后,会把这个区块加入到自己的账本中(同时收到多个区块怎么办?)。

这是其主要的交易流程,在这个交易流程中,在没有权威机构的情况下,是怎么保证交易顺利执行的呢?我们接着看。

先来看一下区块链长什么样子?

每个块中存储了真正的交易数据,自己的hash,前一个区块的hash。

image-20210113211237847

把每个块连接起来就形成了区块链。

image-20210113211257767

从前面的交易流程中,我们可以看到,其核心是第二步,挖矿。我们来看究竟什么是挖矿。简单的来讲,是需要保证下面的公式成立:

SHA-256(SHA-256 (Block Header)) < Target

我们从区块的数据结构中看到,只有一个Nonce字段是可以随便修改的,Timestamp时间戳是可以在一定范围修改的(这里补充一句,区块链网络中没有中心化的时间戳,具体的时间以本机为准,当然是有一定的范围的,是要大于前11个区块时间戳的中位数,且小于网络调整时间+2小时,网络调整时间是指所能连接所有节点的中位数)。

所以,我们要找个数字,让整个 hash 值小于 Target,所以本质上是求hash值的字符串有几个前缀0。 Target是系统自动调整的,保证平均出块时间差不多。举一个具体的case:

import hashlib
import time
data="HaoJunsheng"
n=1
starttime = time.time()
while n < 2**32:
	str = data + `n`
  # 注意这里是双重Hash,原因是单层Hash存在被长度攻击的可能
	hash = hashlib.sha256(str).hexdigest() 
	hash = hashlib.sha256(hash).hexdigest() 
	if hash.startswith('0000000'):
		endtime = time.time()
		dtime = endtime - starttime
		print(str,hash,"find prev 0 of 7,used time:",dtime)
		break 
	n=n+1

image-20210113211507287

我们再考理性的分析下,挖矿的难度有多高,我们知道使用的算法是SHA256,那么一共有2^256种可能,现在的挖矿难度是寻找前18个零,那么意味着前缀有72bit的零,所以我们挖矿的可能性是1/2^184,这个概率是真的低。我们可以看出,挖矿是真的消耗CPU和电力。据统计,挖矿已经消耗了全球电力的0.13%,是真的浪费啊。

那我们为什么要浪费这么大的资源呢?

为了提高作恶的成本。挖矿节点需要耗费大量的CPU和电力来寻找Hash值,但是其他的节点却可以迅速的验证。

image-20210113211553382

如果有一笔交易被修改,其他的节点可以迅速的感知到。

此外,值得一提的是,比特币提出了新的交易模型,和传统的金融不一样,其不在拥有余额模型,而是创新的引入了UTXO模型(Unspent Transaction Output),这是什么意思呢?

image-20210113211630949

这有什么好处呢?由于没有余额模型,所以在转账的时候不必加锁,可以进行并行的转账。

区块链的局限性

前面我们分析了比特币技术的创新性,的确,为我们提供了在不借助中心化机构的前提下,实现价值的转移。

可是其局限性也是很明显的,下面列举了几条:

  • 去中心化所带来的是成本的急速上升,包括网络传输成本,以及存储成本。当前以太坊的全节点的大小已经有几百个G了,而且还在不断的增长,这么大的存储对于普通人来讲是不乏接受的,所以最后也会演化成几个大玩家之前的游戏。

  • 去中心化还带来了网络处理能力的不足,比特币和以太坊的TPS(transaction per second)只有个位数。Fabric只有几百。我们来看下今年双十一,阿里的tps高达54.4万。很明确的来讲,这样的tps根本无法满足我们在生活中的应用。
  • 我们的智能合约也要公布给所有的人,在现有的技术环境下,很多代码都是有漏洞的,代码公布之后,被别有用心的黑客盯上,将是一个巨大的灾难。一个具体的case,美图秀秀公司发的美图币,因为智能合约的公开,被人找到漏洞,如下所示,这行代码一共造成了60亿人民币的损失。

image-20210113211703907

cnt 和 _value 的计算结果生成了局部变量。第二个参数,即 _value,,可以是一个任意的 256 字节整数,通过将两个 _receivers 注入到 batchTranser(),再加上这个极其大的 _value,我们就能使得量溢出,将其 amount 的量变成 0。通过将量回归到 0,攻击者就可以绕过合理性检测代码,使得 转账方的金额根本没有减少。 最后,出现了一个非常有趣的结果:两个 receriver 的余额上增加了超级大的 _value,而这一切都不会花费钱包里哪怕一毛钱!

  • 数据难以篡改,这个真的是个双刃剑,在现在这个社会,我们的隐私万一被泄露,并且记录到链上,还无法删除,真的是件可怕的事情。
  • 发行量固定。这个固然不会造成通货膨胀,但是这个数量远远不够人们在实际生活中的需要啊,2100万枚必然会造成通货紧缩。
  • 最终结算性问题:国际清算银行在《金融市场基础设施原则》里讲过一个原则,就是你要明确每一笔交易完成的时间点,这个时间点确定了,那就能确定这笔交易最终完成的那个时间点,这个点也是不可回退的一个点。
  • 此外,区块链技术只能保证链上数据的难以篡改,无法保证链下到链上的数据的真实性与可靠性。

最后,在聊聊Libra和DCEP。

聊聊Libra和DCEP

image-20210113211916197

前面有提到,Libra是Facebook联合PayPal,Visa,万事达,eBay,Uber,沃尔玛等多家组织联合发起的。这个事情的影响有多大呢,用央行支付司穆长春的话来说就是震惊了全世界的央行。虽然比特币,以太币也引起了央行的极大关注,但是Libra引起了包括美国,中国,日本,法国在内的多个国家成立了专门的工作组去评估这件事情的影响。那么其核心特点是什么呢?

  • 技体系是区块链技术(其技术体系虽然是区块链,但是和传统的比特币这种技术架构是不同的,其采用的是双层架构体系。即底层采用许可链机制,上层的运营采用中心化的数据库,这样做主要是为了满足支付的需求)
  • Libra具备了价值体系,换句话说没发行一个Libra就必须有资产进行抵押,资产主要是一篮子货币。
  • 强大的治理体系,核心成员包括大型互联网工资,支付公司,银行清算组织,还有一堆学术机构。Libra试图用自己强大的用户基础来推动世界货币体系的变革。

image-20210113211927986

下面看下DCEP,DCEP的全称是Digital Currency Electronic Payment,即数字货币和电子支付工具。技术体系和Libra是很相似的。然后其主要是用来代替纸质的人民币的,同时和人民币一样,具备无限法偿性。相比之下微信和支付宝钱包里面的钱如果支付宝微信破产了,是没有任何保障的。其实,这是DCEP对于个人而言的优势吧。

对于国家来讲,DCEP的生命周期是全部可监管的,反洗钱,反逃税,反恐怖融资的工作更加的便利。

写在后面

这篇文章给大家讲了区块链的发展,货币的发展,比特币的核心原理,希望可以帮助到大家。欢迎大家点赞,转发,谢谢大家。

推荐书籍

区块链原理,设计,与应用

区块链技术驱动金融

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦