本文目录:
- 一.前言
- 二.什么是区块链?
- 三.为什么要分布式记账?
- 四.区块链是长什么样的呢?
- 五.如何用密码学技术保障交易数据完整安全?
- 六.如何获得记账权?挖矿?共识算法?
- 七.双重支付是否会发生呢?
- 八. 区块链在现实中的应用又有哪些呢?
- 九. 未来展望
- 十.参考文献
一.前言
在当今互联网时代,网上购物是一项必不可少的技能,我们最关注的是网上支付的安全性,以及个人隐私的保密性。在交易中,买家和卖家的信任是基于第三方支付机构(如支付宝),而在我们印象中,第三方支付机构的信用绝大多数时候是有保证的。
图 1 传统的电子商务
但是,这种方式并没有我们想象中的完美,一方面,用户需要支付交易之外的中介费用,把个人信息交给他们作为担保;另一方面,它们作为中心化的公司机构,就有可能存在人为风险导致系统出现故障,黑客入侵攻击导致用户数据隐私泄露,又或者出现不可抗拒的意外导致机器出现损毁等等一系列让人难受的问题。
所以,我们就需要思考能否实现一个系统,直接能够解决交易双方的信任问题,又能保障用户隐私,这样的话陌生人之间也能无顾虑地进行交易(剁手),消灭可恶的中介。
二.什么是区块链?
2008年,在论文《比特币:一种点对点的电子现金系统》中,作者中本聪提出了一种创新的解决思路,巧妙地融汇了密码学,网络科学,计算机科学,社会学等学科的现有产物和技术,架构出了比特币的底层技术–区块链。
图 2 交易方式的变迁
区块链,这个原本“高冷”的技术词汇,近年来频繁地进入人们的视野,引起了当前一波又一波最为火热的争议,投资者为它疯狂,技术极客为它痴迷。到底什么是区块链呢?一般人都是因为比特币,才知道区块链是比特币的一项关键的底层技术。
根据百度百科的定义,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式[1]。
通俗的说,它就像是一个分布式的数据库账本,加密后被放到网络上,每个人都可以有一份备份,大家都来一起维护,所以能安全地记录着所有交易信息。
三.为什么要分布式记账?
人类社会的交易方式随着时代不断变迁,从远古时代的以物换物,到黄金、纸币,再到支票、移动支付,我们的交易方式变得越来越方便快捷,但同时伴随的代价是银行等中心化机构向用户索取不菲的记账费用,以及不必要的用户隐私信息。
我们每天都使用的互联网很好地解决了信息的传输问题,但是在价值转移方面却不太在行,所以电子交易系统采用的是传统货币交易那套基于第三方信任机构的方法。但是经历过金融危机的人都明白,政府、银行也不是永远靠得住的,也有可能倒闭、破产。财富只有掌握在自己的手上才是最真实的。
区块链的创新之处在于创建了一个基于密码学而非信任模型的公有账本,交易数据记录在区块链上,这样的一个分布式账本拥有任何人可以审查、无法篡改的特性,提高了电子交易系统的分散性和安全性。系统的安全性在一定条件下是可证明的。
在区块链的分布式的点对点网络中,用户的账本都是人手一份,交易可以在用户之间直接进行。在这样的交易体系中,做假账干坏事是非常难、作恶成本非常高的。
下面我们举一个例子:小青蛙和爸爸妈妈都各自保管着一本账本,每本账本都记着一样的交易条目,每个人想买东西时,必须先告诉其他两人,大家都同意后,在各自账本中加上一条相同交易记录,才能付钱交易成功。
有一天,小青蛙看上了一件心爱的玩具,但是很昂贵,爸爸妈妈绝对不可能同意买的。小青蛙忍不住诱惑,偷偷地在自己的账本写上了这条交易,然后叫店家取货给小青蛙。但是店家到网络上一查小青蛙家的三本账本,发现爸爸妈妈并没有同意这项交易,所以店家就中断了与小青蛙的交易,小青蛙的小心思也就无法得逞了。
图 3 分布式网络 ………….. 图 4 中心化网络
四.区块链是长什么样的呢?
顾名思义,区块链就是由一个个区块组成的一个链式结构,除了创世块(第一个区块)之外,每个区块都记录着上一个区块的地址,根据地址就能追溯找到前一个区块。
图 5 区块链的主链和侧链
具体到每个区块的结构,区块有区块头和区块体两部分构成。区块头封装了当前版本号(version)、前一区块地址(Prev-block)、时间戳(timestamp)、随机数(nonce)、当前区块的目标哈希值(target bits)、Merkle根(Merkle-root)等信息。区块体则主要包含交易计数和交易详情,所有交易构建成一棵Merkle树。
在这里,交易信息并不会包含用户的个人隐私,因为进行交易只需要提供个人钱包地址,钱包密码,对方钱包地址以及转账金额就可以了。
目标哈希值:用于调整挖矿难度(“挖矿”后面还会解释)。
随机数(nonce):一个在加密通信只能使用一次的数字。在认证协议中,它往往是一个随机或伪随机数,用来避免攻击。
Merkle树:在密码学及计算机科学中,Merkle树,又称哈希树(hash tree),是一种树形数据结构,每个叶节点均以数据块的哈希作为索引,而除了叶节点以外的节点则以其子节点标签的加密哈希作为索引。从点对点网络下载得到哈希树后,即可根据可信的顶部哈希值对其进行校验,验证数据是否完整、是否遭受破坏。简单来说,Merkle树的作用就是生成一串容易验证交易信息完整性的数字。
图 6 区块结构
五.如何用密码学技术保障交易数据完整安全?
记录着交易信息的区块在错综复杂的网络上自由的传输, 我们的财富此时在区块链其实就是一串二进制的比特符号,先不说有可能被黑客攻击修改我们的交易信息,网络信道的噪声等传输时出现的问题也是大量存在。在这个过程中,我们就需要想办法保证区块信息的完整性和安全性,这里我们借助了密码学的工具来解决这个问题。
我们需要理解的第一个密码学的基础知识是哈希函数(hash),哈希函数是一个数学函数,具有以下三个特性:
1.其输入可以是任意长度的字符串;
2.产生固定长度的输出,区块链技术中,输出长度为256比特长度;
3.计算难度不高,计算时间与输入长度成正比;
哈希函数为什么是安全的呢?
攻击哈希的过程难度高,但是验证简单。因为哈希函数具有单向性,一个输入对应唯一一个输出,而输出对求出输入值并没有帮助,所以你只能用一个个数字代进哈希函数里面猜。这就像是做一道数学高难度的计算题,解题过程很漫长,但是判断结果对错只需要对一下答案即可。
在现实中,我们是如何保证一份文件的有效性的呢? 我们会给文件签上我们的大名,因为字迹是每个人特有的,只有你自己才能签出自己的风格;或者我们也可以改个章,因为这个章只有一个,别人伪造不出来,具有唯一性。同样的道理,密码学中的数字签名这种技术,解决的就是数字世界里的签名问题。这种签名用到了哈希函数以及加密算法,具有安全有效、容易验证等等优点。
图 7 椭圆曲线数字签名算法[2]
Alice想要传一份重要的文件给Bob,为了保护文件不被修改,所以决定给文件附上一个数字签名,好让Bob验证。
步骤一,Alice计算出文件内容的哈希值,唯一的文件只能计算出一个唯一的哈希值(即签名);
步骤二,用一个私有的秘钥和公开的加密算法,将签名加密成一串已经失去原样的数字;
步骤三,将加密后的签名和文件组合到一起发送给Bob;
步骤四,Bob收到信息后取出加密后的签名,用公开的秘钥就能解密出签名的明文;
步骤五,Bob用哈希函数计算出传过来的文件的哈希值,与解密出来的签名一对比,就可以验证文件是否被修改了。
六.如何获得记账权?挖矿?共识算法?
在之前,我们的支付系统通过的是银行等中心化机构来维护管理,银行出于能够从我们身上获利的原因,无怨无悔地帮我们记账。而到了区块链的世界,记账一样是需要时间、资源等成本的,别人凭什么帮你记账呢?我们说区块链就像是一个分布式的账本,没有了中心,没有了领导,再也不能强制性地布置记账的任务。
图 8 区块链交易流程(图片来自网络)
为了实现区块链上不同账本节点上的账本数据的一致性和正确性,大家就确立了一套规则(共识算法),利用人“趋利避害”的天性,让愿意为集体服务记账的人得到奖励,所以大家记账的积极性也就起来了。
奖励的机制也非常简单,第一个收录交易信息的人,就可以得到一定量的数字货币奖励。但是,当记账的人数多起来后,就有可能有两个人同时听到用户广播出来的交易信息,同时宣称记录下了交易,为了争夺奖励,两人争论得不可开交。这时,我们又再改进规则,谁先解出我给出的一道难题,谁就可以获得令人垂涎的记账权。
做题是一个既需要智商,有需要运气的过程,那么将解题交给计算机来做时,这其实就变成了一个算力的比拼。比特币系统用到的共识算法叫做工作量证明(POW),参赛者就是系统中的所有节点,大约每10分钟一轮比赛,算力越大的节点,胜利的概率也就越高,获胜者得到一次记账权力以及一笔比特币奖励。
POW共识算法就是巧妙在设计一个以利益激励机制为驱动的系统,保证系统能够长久平稳的运行。因为这个过程就类似于在真实世界里挖掘矿物,消耗电力等资源,获得贵金属等更有价值的资源,所以又被成为“挖矿”。
因此,我们可以感受到区块链规则的巧妙,经过挖矿这个环节,数字货币被源源不断地铸造出来,但又因为铸造速度遵循着既定的规则,所以不会发生现实世界中的通货膨胀。虚拟货币经济系统仍然平稳可持续地运行着,至今没有发生过大的事故。
图 9 规模巨大的矿机群(图片来自网络)
七.双重支付是否会发生呢?
双重支付又叫双花,双花问题是一个头等重要的问题,指的是一笔数字现金在交易中被重复使用。如果同一货币如伪钞一般可以被多次支付使用,货币就会快速贬值,无人愿意使用而最终消亡。
传统货币法币由政府或权威机构背书,所以解决的方法很简单:银行会在法币上印上一个唯一的编号,在交易时我们只要通过防伪标志判断它是真币并收入囊中,双重支付就不会发生。
但是数字货币就不同,交易在互联网上进行,普通人无法凭空创造货币,所以只能委托有支付牌照的第三方平台(如银行网银,支付宝等)来帮助我们完成交易。交易是否有效也就交由第三方帮助我们验证,他们只要定期对账本进行清算对账,双花问题也就能够解决。
比特币这种弱中心化的数字货币,又是如何解决双花问题呢?用到的技术是时间戳。第三方的信任中心让我们不放心怎么办,那就把所有交易公开(又不泄露隐私)所有节点都来验证一下,诚实的人总是大多数吧。每个节点在网络延迟是不一样的,收到区块的时间也就不一样。时间戳让交易拥有不可篡改、可追溯的特性,保证了区块在网络上广播后,我们能追溯到上一个区块,然后就能找到哪笔交易是第一次发生的。后面的验证者只要发现侧链中存在超过1小时都没有验证的区块,就会自动放弃这条侧链,避免了攻击的发生。
图 9 双花攻击
当一笔交易数据被打包到一个区块中后,就算是完成了一次确认,只要区块被认可确认的次数达到6次(花费1个小时),这笔交易就是不可逆转的了。因为每次确认都需要完成一次工作量证明,攻击者的算力基本上是无法超越别人6次确认的所用到的算力。对于诚实的节点来说,工作量证明共识算法是一个付出劳动收获回报的过程;而对于攻击者而言,通过6次以上的工作量证明来发动攻击,成本代价过于高昂,还不如老实遵守规则挖矿赚的钱多。因此,双花攻击就是一个小概率事件,几乎不可能发生。
八. 区块链在现实中的应用又有哪些呢?
几十年来,我们见证了互联网的繁荣发展,从幼苗成长为参天大树、开花结果,过程令人惊叹。互联网技术已经与各行各业深度融合,但是互联网在信任的建立、维护以及安全上存在致命的先天缺陷。而区块链技术的出现恰好就弥补了这一块的缺陷,我们可以想象到区块链将会发展成一张无与伦比的价值网络,推动一切资产的数字化、证券化,改变社会原有的生产关系,极大地提高社会生产力。下图是区块链构想的应用场景:
图 10 区块链应用场景[3]
1、区块链+金融
区块链具有天然的金融属性,我们可以看到除了发行数字货币之外,还有大量的潜在应用,如支付、保险、众筹、结算和清算等等。这里举一个跨境支付的例子:传统通过银行进行跨境支付,到账时间通常长达几天甚至一个星期,手续费也不菲(每笔20~250元)。除此之外,银行为了防止洗黑钱,跨境支付还需要双边的用户向银行提供大量的开户资料和证明,过程冗长麻烦。
如果用区块链技术在银行等金融机构之间实现资金和资产的转移,用户就能够提高实时性,少交手续费,而银行也能提高运行效率和监管效率,取消了银行之间复杂的对账和结算的过程。
2、区块链+游戏
区块链游戏有如下的特点:当游戏开发完成后,规则完全公开,没有后门;玩家可以相互监督不可能作弊;不需要一个中心化的游戏组织者;游戏道具自由交易,价格由交易双方自行决定,系统不受手续费;加入游戏后,获得的道具归玩家所有,而不是开发者所有。
可以想象,在这样的区块链游戏中,玩家参与的积极性高涨,游戏中道具就是我们网上钱包里的资产,我们可以拥有资产后坐等升值,也可以转售他人换取货币,这是一种和现实世界一样的挣取财富的满足感。
图 11 小米的加密兔
3、区块链+供应链
区块链信息难以篡改的特性在供应链中可以发挥很大的作用:一切信息都在链条中留待查证,如果有人故意输入了虚假的信息,也会被节点中各方接收到。这使得造假成本变高了,因为造假证据将被永久记录。所以区块链特别适合多方协作(例如跨境交易)中的信息防伪溯源。
落地应用:阿里巴巴的跨境商品防伪溯源、京东商城的食品溯源。
4、区块链+版权保护
随着移动互联网的发展,大量文字、音乐、视频等内容以数字化的形式被放到了互联网上,这不仅让数字版权侵权变得更为容易,而且非常隐蔽难以追责,这也成为很多内容企业或个人创作者的痛点。相对于亿计的微数字作品的产生与传播,传统的确权、授权与维权方式已力不从心,而生来带有强信任的区块链技术在版权领域将起到重要作用。
对于原创作品的登记注册,区块链技术可以非常方便地把时间戳与作者信息、原创内容等元数据一起打包存储到区块链上。至于版权确认,所有涉及版权的使用和交易环节,区块链都可以记录下使用和交易痕迹,并且可以看到并追溯它们的全过程,直至最源头的版权痕迹,所以确权也简单可行。版权验证只需要使用密码学的数字签名就可以解决。
九. 未来展望
在目前,因为具有金融的天然属性,区块链技术是一个很火热的话题,人们对区块链有过高的期待,盲目投资各种代币,热炒区块链概念。但是却少有人研究热点背后的技术原理。作为一个理性的人,我们更应该深入探索区块链的内在,你会发现比起区块链表面的浮华,它的技术原理机制是更加令人好奇和吸引人的地方。
经过这篇文章对区块链的科普,你是否对区块链有了一个基本的认识,或者解决了一些之前的疑惑呢?如果你对区块链感兴趣,不如尝试阅读更多的书籍文献,更加深入到区块链的世界里探索吧!
十.参考文献
[1] 百度百科:区块链. https://baike.baidu.com/item/区块链.
[2] ZibinZheng, ShaoanXie,HongningDai,Xiangping Chen, andHuaiminWang. An overview of blockchain technology: Architecture, consensus, and future trends. In Proceedings of the 2017 IEEE BigData Congress, pages 557–564, Honolulu, Hawaii, USA, 2017.
[3] 鲸准研究院. 2018中国区块链行业分析报告. 2018,02.
来源:CSDN
作者:任志丰
链接:https://blog.csdn.net/renzhff/article/details/81182514