查看原文
其他

区块链安全 | 浅析区块链起源及安全问题(一)

2018-03-03 挽梦雪舞 看雪学院

区块链是一个分布式账本,是一种通过去中心化、去信任的方式集体维护的可靠数据库的技术方案。安全性将是区块链应用最大障碍,制约区块链发展的最重要的原因,很可能是安全问题。区块链面临着算法安全性、协议安全性、使用安全性、实现安全性和系统安全性的挑战。


区块链现在很热,值得我们去关注这块技术和应用,为了方便大家交流区块链安全技术,特开设此版块,受到大家的热烈欢迎,现已有很多热心会员在此版块发帖、回帖与大家分享、交流。


本文介绍了区块链的起源和安全问题,由于文章较长,将分为二个部分放出与大家分享,欢迎更多的人能够加入我们的讨论 :)


——看雪小编



<前言>00


回忆几年前看雪的发展之路可谓荆棘铺路,曲折重重,后来随着生活所迫,走上了学习技术的道路,在之后由于家庭的羁绊,工作的繁杂,生活的艰辛,以及时间的流逝,让我渐渐淡出了看雪,甚至趋于忘却……


而现在我十分感谢我的表弟,是他让我回到了阔别已久的看雪——就在前天,也就是2月25号,我的表弟从网吧回来之后,参加了一场过年后很普通的家庭聚餐。在聚餐上,他从始至终都带着一脸的沮丧与不甘,因为平时的忙碌,我和他已经很久没见面了,联系自然也少了很多,但从小我们的关系一直都很好,即便随着年龄的增长,也未曾有所淡化,反而如美酒般愈发浓厚。


所以刚吃完饭,他就按耐不住冲动,推开椅子就跑过来和我聊天,接着就问我有没有玩今年很火的“吃鸡”啊?然后就开始抱怨,向我倾诉苦水,说他自己没有注意到外挂的更新,结果steam账号被“万恶的”蓝洞官方永久封停的丑事。说就说吧,但他一个22岁的小伙子了,年纪也不小了,可是一谈起游戏,就像长不大的孩子一样,激动地手舞足蹈,张牙舞爪,脸还憋得通红,真不知道他到底是被这件事气得郁闷,还是见到我激动得不能自已。我也是无语了啊。。。对此,我只能是默默地注视着他,机械式地反复点头示意我在听……



一刻钟过后,感觉苦水倾泻得差不多了,他激动的情绪也终于稳定下来了,于是我们的聊天才算是真正开始,步入了正常的范畴。。我也很无奈呀!他就开始问我:“知道吾爱破解不?那个外挂就是吾爱破解开发设计的,感觉很牛X啊!我就也想自己研究个外挂玩玩,但我看了一下那个里边没啥玩意儿啊,我就想到黑客技术,然后就去找相关论坛,最后看到那个看雪论坛,这名字挺有诗意的,我点进去才发现好家伙,这论坛都有18年的历史了,感情它建立的时候我还不会走路吧?……”


就这样,从他提到看雪论坛之后,对于他后面的话我已经记不清了,当时脑海里只是充斥着几个疑问和满满的回忆~~我疑惑他说的看雪是不是曾经的那个我所熟知的看雪,会不会是同名网站?抑或是换了站长及管理的新看雪论坛?如果是我童年的回忆,那么如今的看雪发展成什么样了?……


接着脑海中涌现的便是曾经的种种美好回忆,那是青葱岁月的见证,是属于年少轻狂时代的向往与追求。直到今天写到这儿,我才回想起来当时既然表弟他都说了是拥有18年的历史的,那肯定就是我心里回忆起来的那个看雪论坛啊,只不过不清楚是否论坛的管理团队已经有所变动,如今具体变成了什么模样罢了。


于是在聚餐结束的第二天就赶紧找到了看雪论坛,接着就发现现在加入的条件变松了,不需要邀请码了,便果断注册了一个账号,时隔数年,我终于有了看雪的账号,看着注册成功的提示语,我激动的心情久久难以平静下来,这感觉真是恍若隔世啊!而恰逢其时的,我刚回归看雪就遇到了【区块链安全】这个板块的开设,而我2017年年底刚好对这块内容做过一些粗浅的研究,颇有种回家被迎接的感觉,于是决定在论坛潜水多年的我正式开始崭露头角,燃起烛光之焰!


PS:因为早年想要加入论坛需要邀请码嘛,我那时技术小白一个,自然拿不到了,只能当个游客潜水等待时机,而现在时机已经成熟!



<正文>01引言


首先说一下近况吧!随着区块链日益发展壮大,并被越来越多的各界人士所熟知,接着近些年来区块链呈现井喷式的速度被各行各业所垂青,无论是在证券市场、支付系统、票据与供应链金融,还是在客户征信与反欺诈等应用场景中都具有很大的应用前景。


而与此同时,在享有“互联网之后最具颠覆性的创新技术”之名的区块链技术应用背后的安全问题也毫无疑问成为了不可忽略的重要一环。

接下来我将为大家简单介绍区块链的相关知识,并浅析区块链技术可能存在的诸多安全问题。



02 区块链历史背景


自1983年D.Chaum发表第一篇电子现金论文以来,各界人士在电子现金方面的研究一直没有间断过,直到中本聪在2008发表了“一个新的电子现金系统”的白皮书,2009年在一个开源的区块链上运行比特币才让区块链正式进入大家的视野。下图为区块链前期发展起源历史时间轴。



随着相关科技的不断研究深入,如今在密码学领域和去中心化计算网络上都产生了新的进展,从而带来了区块链技术(blockchain)这类前沿技术。与此同时,中国工信部在2016年将其定义为一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术在互联网时代的创新应用模式。


具体而言,区块链技术本身最早是在2008年得到提出,中本聪在一次密码学探究分享会上提出了比特币的概念及其背后的技术方法。比特币这套虚拟数字货币运行系统的底层所运用的技术即是区块链技术及其思想的原型。于是便有了区块链技术与比特币息息相关这一说法,直到后来又衍生出许多山寨币,但实际上它们之间是有许多相似共通之处的!


在区块链这一名词被正式提出之前,比特币是为世人所知的,而潜藏在比特币背后的区块链,就是被设计用来达到一种去中心化的、无需信任的货币运行平台。在这个平台之中,任何互不了解的人都可以通过加入该总账,通过点对点的记账、数据传输、认证或是合约等等,而不需要借助任何一个中间方或者说是中介性质的人就能来达成所谓的信用共识。


其中这个总账包括了他们过去所有的交易记录、历史数据以及其他的相关信息,所有信息都进行了分布式存储并且透明可查,同时还以密码学协议的方式进行加密处理,保证其不会被非法篡改,当然这也并非绝对安全,这就涉及到区块链安全及密码学的知识,我会在下文讲到。


接着,到了2010年的时候,比特币正式成立了交易所,趋于正规化、产链化,并因此逐渐被更多人所了解。至2011年开始,比特币的全球化趋势愈加强烈,对于与之密切相关的区块链技术进行相关投资和研究的机构也顺应时代潮流,如雨后春笋般迅速增多,而借此机会区块链技术从初级的实现程度,到后来不断得到补充和完善。那么站在前台的比特币自然也随之获益,区块链技术的飞速发展让比特币这一货币体系也得到了迅速的成长机会,但其设计之初那种相对简单的货币运行体制也开始面临着一系列安全问题领域的挑战:文件访问权限的丢失,服务器密码的泄漏、货币失窃、匿名货币难以追踪监管等诸多漏洞层出不穷,这逐渐让人们发现了这个货币体制的缺陷。


这些缺陷不足开始影响到人们对于比特币的信任,跌重而来的就是对其货币价值的影响,这就在一定程度上造成了人们对比特币的信任危机,可俗话说得好,“危险与机遇并存!”    于是一些善于审时度势的人便以此作为契机,伴随着蝴蝶效应,更多的人开始增加对于比特币的背后——底层区块链技术的关注。


由此,在2015-2016年期间,区块链技术终于度过了停留在理论和初步研究的阶段,开始走向应用,面相市场,迎向更多的人们。于是许多传统的金融机构、创业企业及其他相关组织较为普遍得开始从实际应用的方面使用了该项区块链技术,具体涉及到许多领域,比如交易结算、创新性的物联网,以及数字资产管理、股权交易、公证、各种供应链等众多金融领域。随着行业的不断发展,世界上各个国家及地方组织也开始加强了对区块链技术的潜在价值研究及相关领域的监管。


区块链技术经过20多年的发展,到了现在,这种最初隐藏在数字虚拟货币——比特币背后的底层分布式账本技术逐渐走向了公众的视线,甚至在未来将成为学术界乃至金融等产业界的“热点”话题,随着对区块链技术不断地深入研究,并且被更多的相关人士重视,以及越来越多的互联网、安全界的大佬、专家投身加入到这一行列中,其未来发展潜质绝不可小觑,甚至有可能超过那些虚拟数字货币本身的价值!至少在当前,它们已经从那些虚拟数字货币的背后走了出来,与其并排而站!关于区块链技术的历史背景就讲到这里,想要更深入了解的朋友自行Google、百度。



03 区块链的定义、分类、特点


讲了半天的区块链技术历史背景,那么接下来就具体谈谈到底什么是区块链?什么是区块链技术?




首先我引用了Google上对区块链的介绍来为其定义,毕竟这个是比较权威、官方一点的,描述更为准确精炼。


区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。该技术方案让参与系统中的任意多个节点,把一段时间系统内全部信息交流的数据,通过密码学算法计算和记录到一个数据块(block),并且生成该数据块的指纹用于链接(chain)下个数据块和校验,系统所有参与节点来共同认定记录是否为真。 


在写这篇文章的时候,论坛刚好有位朋友发了个相关介绍的帖子,于是便顺带引用过来更形象诙谐地诠释一下区块链,这是他的原帖——[转帖]秒懂区块链


区块链是女生的福音~~

假如你是一位女生,在某个晚上,你男票跟你说了一句:"我爱你一生一世"; 然后,你把这句话发给了你的闺蜜、爸妈、朋友圈、公众号、微信群等,你男票再也无法抵赖,你打赏点小费感谢他们给你记住并作证,这个小费就是token。

你、你男票、"我爱你一生一世"这句话、说这句话的时间地点等信息,打包起来形成一个结构化的信息包,这个信息包就叫"区块"。而你的闺蜜、爸妈、朋友圈、公众号、微信群等节点就是链。最后你男票如果不承认说过这句话,当了负心汉;你翻出这个账本对质,把他臭骂一顿,这就是区块链应用。

还有啊,你男票这个节点会永远被踢出网络,如果你对朋友圈足够大,这个男的可能永远找不到女朋友了。


更具体一点的介绍~~~


区块链是一种类似于NoSQL(非关系型数据库)这样的技术解决方案的统称,就好比MySQL这种主流的web数据库的名称,而且这时需要特别注意的一点就是,因为仅从区块链这个名称上看,如果没有真正去接触过的话,一般人普遍会按照惯性思维把它默认成是一种特定的技术,但实际上它并不是专指某种特定的技术。


而且实现区块链的方式种类也有很多,目前最常见的有三种,包括POW(Proof of Work,工作量证明),POS(Proof of Stake,权益证明),DPOS(Delegate Proof of Stake,股份授权证明机制)等。 上文提到过区块链之前是站在比特币背后的底层技术,现在换个说法就是比特币也可以看成是区块链技术的首个在金融领域中的应用,而且是大获成功啊! 总而言之,它们之前是密切关联的,之后就不再赘述。接下来就该谈谈它的分类了。


分类:主要有三种:公有链(eg:比特币)、联盟链(eg:R3CEV)、私有链(eg:DAH)


对于公有链和私有链的区分,我们可以结合区块链的定义,便可以基本认为必须具有以下四点要素的才能被称为公开区块链技术,也就是简称公有链;反之,如果只具备前三点要素,我们就可以认为它为私有区块链技术,同样简称为私有链。所以简单来讲是否具备第四种要素是区别公有链和私有链的关键所在。


1、点对点的对等网络(权力对等、物理点对点连接)

2、可验证的数据结构(可验证的PKC体系,不可篡改数据库)

3、分布式的共识机制(解决拜占庭将军问题,解决双重支付)

4、纳什均衡的博弈设计(合作是演化稳定的策略)


作为一个完美主义者,我为了更好的诠释上述三种区块链分类的具体定义,便再次引用了Google上的定义,仅供大家参考。


公有链所有的机器都是在公开的网络上面,数量极其庞大,所以没有人能够控制这样的机器去达到个人的 目的,比特币就是一个典型公有链的例子。


联盟链由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程,其他任何人可以通过该区块链开放的API进行限定查询。


私有链仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。


分类简单介绍完了,到了特点了,这个是比较多一点的,因为我对于区块链的特点和特性区分不清,所以在这里就混为一谈了,不足之处欢迎大佬指点迷津。


特点分布式即为去中心化(Decentralized)、匿名性即为去信任(Trustless)、 开放性(高度透明)基本等同于开源(Open Source)、加密安全性(不可篡改)、集体维护(Collectively maintain)、可靠数据库(Reliable Database)、隐私保护(Anonymity)


从小学学语文开始,老师就告诉我们理解一个东西,包括它衍生或者说引申出的东西,都要从其根源,即其本身的属性定义出发,所以在这里我再次结合围绕区块链技术的定义对于其诸多特点特性做一个简单的介绍,同时配上几个例子,使之更加通俗易懂,增添几分趣味性。


去中心化:也就是说所有的交易都是点对点发生的,无需任何的信用中介或集中式清算机构;  更具而言就是整个网络没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的,且任一节点的损坏或者失去都会不影响整个系统的运作。因此也可以认为区块链系统具有极好的健壮性。

当我们要网购的时候,如今通常有两种途径,一种是淘宝、京东、阿里巴巴等网站(后面就仅拿淘宝举例),另一种则是目前很火的微信的微商。在淘宝买东西的时候,我们的钱先是支付给了与之相关的阿里巴巴,然后是卖家发货,等我们收到货之后,阿里巴巴才会把钱转给卖家。这其中还涉及到网银充值、付款限额、资金提现等等许多复杂的流程,但这样确实在很大程度上保障了我们作为买家的权益,而阿里巴巴则是这场交易的中心,充当了中介性质的中间方。


但在微信上买东西的时候,则存在一定风险了,因为没有类似于上述阿里巴巴这样的中间方,我们的钱一般会以发红包的形式,直接通过微信支付到卖家手里,而一旦等对方拿到了钱,就完全可以直接把我们拉黑,不予理会!这就有点类似于区块链的诈骗了!那么这个日常生活中的小场景就是所谓的去中心化!


去信任任意两个节点间的数据交换无需互相信任,完全依靠区块链中的交易历史和数据的可追溯,以及共识机制来保证数据交换的正确且不可逆的执行。 参与整个系统中的每个节点之间进行数据交换是无需互相信任的,整个系统的运作规则是公开透明的,所有的数据内容也是公开的,因此在系统指定的规则范围和时间范围内,节点之间是不能也无法欺骗其它节点。 


上面关于微信购买是有风险的,当然那一般是基于陌生人的!那么我们一般什么时候会在微信上买东西呢,很多时候是当对方是我们的熟人朋友时,不同于之前暗指的陌生人,因为社交关系的建立会产生彼此之间的了解与信任,这让我们可以较为放心地进行交易。


而突破这种所谓陌生人之间的障碍也很简单,我们可以假设这样一样场景:一个微商,建立了一个微信群,他只在这个微信群里售卖产品,群里的其他人也只和群中人进行交易。那么形成一笔交易时,微商在群里@所有人说,我将XX物卖给XX,售价X元。购买者也@所有人说,我花了X元向XX处购买了XX物。这样一来,群里的人都见证了这笔交易,在潜意识中就达成了共识,那么以后的交易就绝不能翻脸不认账了。而这两条消息记录一旦发出去了就如同泼出去的水,绝不能更改,这也是区块链的第四个特点,加密安全性(不可篡改)。


开放性:整个区块链网络中的数据是公开透明的,每个节点(参与者)都可自由加入该网络中,下载到所有的数据。

加密安全性:跟当前银行网银系统(特别是公司网银系统)的加密机制类似,区块链的数据结构和交易流程中大量的使用了公私钥来进行加解密,以保证数据的安全性。基于该技术基础,甚至可以应用群组签名来保证共有数据的安全性。另外区块链采取单向哈希算法,每个新产生的区块严格按照时间线形顺序推进,时间的不可逆性导致任何试图入侵篡改区块链内数据信息的行为都很容易被追溯,导致被其他节点的排斥,从而可以限制相关不法行为。 

集体维护:系统中的数据块由整个系统中所有具有维护功能的节点来共同维护的,而这些具有维护功能的节点是任何人都可以参与的。 


可靠数据库:整个系统将通过分数据库的形式,让每个参与节点都能获得一份完整数据库的拷贝。除非能够同时控制整个系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,也无法影响其他节点上的数据内容。因此参与系统中的节点越多和计算能力越强,该系统中的数据安全性越高。 

隐私保护:由于节点和节点之间是无需互相信任的,因此节点和节点之间无需公开身份,在系统中的每个参与的节点的隐私都是受到保护的。


同时顺便提一下,如果一个系统不具备这些特点特征,就不能将其视为基于区块链技术的应用。



更多精彩敬请期待第二部分哦!





本文由看雪论坛[区块链]版块 挽梦雪舞 原创

转载请注明来自看雪社区


热门阅读


点击阅读原文/read,

更多干货等着你~

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存