您好,欢迎访问三七文档
信息安全研究性专题作业一比特币安全的研究学号:13211152姓名:黄明明院系:电信学院邮件:13211152@bjtu.edu.cn电话:13011265751比特币介绍比特币(Bitcoin),是一种全球通用的加密电子货币且完全交由用户们自治的交易工具。比特币的概念最初由中本聪在2009年提出。与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。2014年8月11日,美国消费者金融保护局(CFPB)就比特币等虚拟货币的风险发出警告,包括成本不明、汇率波动、易受黑客和垃圾邮件攻击等。CFPB认为,比特币仍处于实验性阶段,且虚拟货币账户不设政府存款保险,一旦出了问题,没有相关部门会出手相助,用户将后果自负。2015年11月,台湾地区近3000家全家便利店开始可以使用比特币支付;12月,《连线》网站编辑安迪-格林伯格(AndyGreenberg)透露,比特币的创始人是一位名叫克莱格-斯帝芬-赖特(CraigStevenWright)的澳大利亚金融极客。货币特征去中心化比特币比特币是第一种分布式的虚拟货币,整个网络由用户构成,没有中央银行。去中心化是比特币安全与自由的保证世界流通比特币可以在任意一台接入互联网的电脑上管理。不管身处何方,任何人都可以挖掘、购买、出售或收取比特币。专属权操控比特币需要私钥,它可以被隔离保存在任何存储介质。除了用户自己之外无人可以获取。无隐藏成本作为由A到B的支付手段,比特币没有繁琐的额度与手续限制。知道对方比特币地址就可以进行支付。数量固定比特币的发行数量是固定的,总数为2100万个。发行不受控比特币的产生是由P2P网络节点进行计算而产生的(我们俗称为挖矿),它的创造过程没有任何人为的干预,因此不会造成通货膨胀等,价值也很稳定。交易方便比特币的交易非常方便。全球的P2P网络节点全天候的负责着比特币交易的正常进行,只要有网络你就可以进行比特币的买卖,并用比特币购买任何你想要的商品服务。费用低廉和传统银行不同,比特币的转账交易费用非常的低廉,每次交易只需支付0.0001BTC~0.0005BTC的费用。这些费用用于鼓励全球比特币P2P网络节点对比特币网络的维护。发展历程2008年爆发全球金融危机,当时有人用“中本聪”的化名发表了一篇论文,描述了比特币的模式。2009年,不受央行和任何金融机构控制的比特币诞生。比特币是一种“电子货币”,由计算机生成的一串串复杂代码组成,新比特币通过预设的程序制造,随着比特币总量的增加,新币制造的速度减慢,直到2140年达到2100万个的总量上限,被挖出的比特币总量已经超过1200万个。2009年比特币诞生的时候,每笔赏金是50个比特币。诞生10分钟后,第一批50个比特币生成了,而此时的货币总量就是50。随后比特币就以约每10分钟50个的速度增长。当总量达到1050万时(2100万的50%),赏金减半为25个。当总量达到1575万(新产出525万,即1050的50%)时,赏金再减半为12.5个。产生原理从比特币的本质说起,比特币的本质其实就是一堆复杂算法所生成的特解。特解是指方程组所能得到无限个(其实比特币是有限个)解中的一组。而每一个特解都能解开方程并且是唯一的。以人民币来比喻的话,比特币就是人民币的序列号,你知道了某张钞票上的序列号,你就拥有了这张钞票。而挖矿的过程就是通过庞大的计算量不断的去寻求这个方程组的特解,这个方程组被设计成了只有2100万个特解,所以比特币的上限就是2100万。获取方法首先电脑应该安装了最新版的比特币客户端,打开客户端之后会自动把网络上的全部交易信息数据下载到本地,根据网速的不同这个过程可能要几个小时。此时账户余额是0,用户可以请朋友送一些币,但更可行的办法是去做矿工挖矿或去做商人收购。做矿工挖矿做矿工就是用自己的电脑生产比特币,在早期的客户端中还有挖矿这一选项,但已经取消了,原因很简单,随着参与挖矿的人数越来越多,自己一个人挖矿可能要挖上几年才有50个币,所以矿工一般都组织成矿工行会,大家一起挖。具体的挖矿方法,大家可以自行去网上搜索。这个办法已经很不现实。做商人收购做商人可以用钱去收购矿工挖到的币,也可以搞一个网店卖东西收比特币,更可以去交易所炒币。提供比特币兑换服务的网站很多,几乎已经可以兑换成任何一种货币了。比特币开采难度与已经被开采出来的货币量成正比。越往后开采难度越大,到了2030年2000万个比特币被开采出来后,剩下100万个比特币很可能需要几十年才能被开采出来。并且比特币没有中央发行机构,由网络节点通过复杂计算生成,任何人都可以在电脑上运行比特币软件制造它。流通时,在客户端软件上输入数量1,再要来对方的比特币地址,用给付者的密码签名。之后,这个比特币就是对方的了。比特币面临的安全威胁黑客行为僵尸挖矿比特币的安全机制比特币的密码规则,用来解锁和管理货币交易,每笔交易的信息密码都是唯一且与众不同的。比特币包括两个密钥,私人密钥是用来创建一个数字签名,而公共密钥用来让其他人核对私人密钥,可以理解是一个证明你有密码,但是不要求你将密码信息展示出来。这里主要是用了ECDSA,也就是椭圆曲线签名算法,这个算法有两个特性,注意这两点对下面至关重要a.只要知道私钥,可以算出相应的公钥;b.你用私钥签名过的东西,可以用公钥算一下是不是你签的;同时这两个密钥是可以自己随意创建的,甚至可以不联网创建,因为密钥得地址十分的多,有个经典的比方就是如果有地球上所有沙子那么多的地球,那么这些地球上所有的沙子还没有密钥得地址多。但是如果你丢了或者不记得这个私钥了,那么这个比特币就再也找不回来了,所以这个地址可一定要记住。转账其实是将货币发送到对方的公共密钥,消费的时候你必须证明你是公钥地址(钱被转至的地址)真正的拥有者,通过交易信息和私钥来生成数字签名的过程,可以证明你真正拥有者的身份,网络中得其他节点可在不同的函数中利用该数字签名来核实它是否与你得密钥相符。比特币的余额校验机制进行转账那么就需要知道转账的人是否有足够多的比特币进行转账,而比特币系统中并不会存某个用户的比特币余额,那么如何知道一个用户的比特币余额呢。比特币采取的方式是去验证这些比特币之前所有的交易记录,这些要援引的交易信息叫做进账,如果这些历史交易记录校验完成后发现对不上发送过来的这些比特币,那么会将余额发送给比特币的发送者来更新这几个比特币真正的余额。一旦一笔交易被使用过一次,就会被删除掉,否则人们可能会在不同的交易信息中援引同一进账信息,导致进账重复被使用,所以在核实交易时都会核实该进账没有被消费。比特币的交易顺序问题由于交易信息在比特币网络中是以一个节点一个节点的方式来传递,这就无法保证节点接收到交易信息的顺序和他们创建的顺序完全一致,比如你转比特币给A,同时你也转比特币给你自己,如果你给自己的先到那么你转给A的比特币交易信息在判断余额时会发现中间交易信息已经被消费了那么就会对不上帐,转账就会无效你就可以做到不花比特币但是依然可以买到东西,所以需要整个网络对交易的顺序需要达成一致。比特币采取一种数学竞赛的方式来决定交易到达节点的时间,并同时保护这种顺序,在比特币系统中是通过将交易按组分配来对交易进行排序的,这样的组被称作区块(同一时刻发生的交易会分在同一个区块内),然后将这些区块链接起来,被称作区块链。区块链是用来对交易排序,而交易链则是追踪记录比特币所有权变化的,这些区块是按照时间排列的就是一个链接,未在区块内的交易被成为未确认或者未排序的交易,任何节点都快要将一组未经确认的交易放入区块中,然后向网络中的其他节点广播他们对于下一个区块应该是什么的建议。如果同一时刻有多人同时生成区块(这种概率基本很小),所以就会有当前的区块的下一个区块会有多个选择,为了保证区块链接的顺序性,比特币系统让每个有效的区块必须包括一个特殊数学问题的答案,计算机会计算整个区块的文本,再加上基于加密哈希进行的随机猜测,直到得出一个低于某个特定数值的输出,哈希函数能够从任意长度的文本中创建一段简短的摘要,这个固定输出值是非常复杂的找到他的唯一方法就是随机猜测,这就是所谓的挖矿。一般来说一台电脑需要几年才能猜测出整个输出值,当比特币系统所有的电脑都在猜测的时候那么十分钟就可以在某太机器上成功的猜出答案,当一个节点找到符合要求的解他就会向全网广播自己的结果,并且将他们的交易排在区块链的下一位,猜测的随机性分散了人们找到结果的时间,几乎很难有两个人同时猜到结果,如果同时有不止一个区块被猜测出来,那么又会产生分支,这个时候不同的节点会产生不同的链接方式。比如:A节点是链接到B挖出来的区块,而C节点最新的区块则是D挖出来的区块,而当下一个比特币来的时候,节点会自动切换到最长分支,由于几乎不太肯能发生多次同时发现区块的情况,所以就能保证区块链接的正确性(这里也就是存在的所谓“双重支付”的攻击)。双重攻击双重支付,伪造者A将钱发送给B,B等待交易被确认并加入区块链,在此以后寄出产品,如果A能够产生更长的分支,用于他人的交易替代与B的,B的前将会被抹去,B的交易会被扔回未确认的交易池,但由于A已经用另一半交易替换了与B地交易,其中援引的时同一笔进账那么系统会认为A支付给B比特币的交易是无效的。如果A能提前发现连续几块的比特币,并且不进行流通,那么就很有可能首先双重支付。为了解决这个问题,比特币的哈希加密算法相当的关键,同时比特币每个区块对前一个区块的引用会成为哈希文字的一个部分,对他的任何更改都需要重新寻解,所以前一个区块尚未解开之前,后一个区块无法被解开。所以他不可能提前准备好分支,而一旦他将比特币传输进行交易,如果他再想生成一个更长的分支,那么他需要和整个比特币系统的其他网络进行竞速保证他能更快,同时为了应付计算性能的不断增加,每两个星期全球所有的比特币软件就会提高数学题计算的难度。到底是什么保证了比特币与“普通”虚拟货币不同的特性呢?答案就是——数学。散列首先从散列讲起,散列又叫“杂凑”,国内也有根据其英文(Hashing)译为哈希,其实从名字的“零散地列出来”、“杂乱地凑起来”来看就知道,这是一种信息摘要算法,而摘要的意思和小学语文的把一段文章的中心大意提取出来类似。在计算机中,散列通常是经过某些特定的手段(例如经过一系列复杂的位运算)提取出某段数据的特征、该特征用来校验(比如验证从网络上下载的一个很大的文件的正确性)。语文课上的概括中心大意是根据概括的内容,你能还原出这段讲的内容是什么,而密码学级别的散列则恰恰相反,它使得你提取出来的表示数据特征的代码绝不能还原(或轻易还原)为原来的数据。工作证明那么比特币从哪来呢?就从这些散列函数的运算结果来。想象一下我们计算这么一道题,到底输入什么样的字符串,会得到一个散列结果开头是0?有人说我把该函数反向推导得到一个反函数不就可以获得原始结果吗?那可不行,因为这些散列函数是非常严密的经过无数数学家检验的,具有“密码学”级别安全度的,绝非轻易推导就能推导出来的,获得一个未知的原始结果的方法只能是穷举,换一句话说就是猜,把所有可能的结果一个个代入散列函数进行尝试,如果你恰好获得了开头为0的结果,恭喜你,你解出了该“数学题”,奖励比特币若干,该解题的过程就叫做挖矿(Mining)。刚开始这样的工作是非常简单的,一道题只需要普通个人电脑的CPU就能快速解出最初的几道题,随着挖矿的人数增加题目会越变越难同时获得的收益会越来越低,因为同样的时间内只会产生一定数量的比特币,而分配的过程只会根据按而解出题目的个数。为了获得更多的比特币,有的人把解题的过程编制为显卡的GPU程序,因为显卡的特点大家都知道,就是有很多流处理器可以短时间内做大量运算。买了高性能的显卡的人越来越多,用显卡挖矿的收益越来越少,于是一些人则干脆自己设计硬件,用专用的集成电路(ASIC)进行该解题过程,这类拥有大量专用挖矿集成电路的机器就叫做“矿机”。
本文标题:比特币安全
链接地址:https://www.777doc.com/doc-2273487 .html