您好,欢迎访问三七文档
疯狂者游戏——全网唯一不可伪造数据比特币原理(概述)中山大学计算机(研)张小秋——mywcyfl@163.com2020/3/50“比特币”是什么?2020/3/5张小秋——mywcyfl@163.com1比特币是一种虚拟货币(数字货币)。比特币是一种由开源的P2P软件产生的电子币,数字币,是一种网络虚拟资产。比特币也被意译为“比特金”。比特币基于一套密码编码、通过复杂算法产生,这一规则不受任何个人或组织干扰,去中心化;任何人都可以下载并运行比特币客户端而参与制造比特币;比特币利用电子签名的方式来实现流通,通过P2P分布式网络来核查重复消费。每一块比特币的产生、消费都会通过P2P分布式网络记录并告知全网,不存在伪造的可能。比特币的特点:1.数字货币。2.不依托于任何国家或组织而利用计算机技术独立发行。3.通过P2P分布式技术实现,无中心点。4.所有人均可自由的参与。5.总量有限,不可再生。6.本身机制开源,可以被山寨。比特币的特点延伸2020/3/5张小秋——mywcyfl@163.com21.较大的政策风险,国家组织是否会承认?目前德国是唯一承认比特币具有合法货币地位的国家。美国表达了支持的态度。2.安全性如何得到保证,被盗了谁来给你找回?11年MyBitcoin遭遇黑客攻击,7.8W比特币至今下落不明。3.总量有限决定了比特币极具投机色彩,价格犹如失控的过山车。10年比特币仅为数美分一个,13年3月突破45美元/个,13年11月突破800美元/个。4.山寨币是否对比特币的生态造成威胁?山寨币层出不穷,目前发展的比较好的山寨币有LTC(莱特币)。5.比特币本身机制是否存在未发现的致命漏洞?比特币机制从目前来看似乎是“精妙绝伦、无懈可击、堪称神作”,但它毕竟仅存在了不到5年(09-13)。比特币的技术原理2020/3/5张小秋——mywcyfl@163.com308年,一个名为“中本聪”的人在网络上发表了一篇论文《比特币:一种点对点的电子现金系统》(Bitcoin:APeer-to-PeerElectronicCashSystem)“中本聪”是谁?“中本聪”是个匿名,无人知道其背后的真人是谁。“中本聪”本人在完成了比特币的基本构建后就从网络上销声匿迹了,在偶尔的时候会出来冒个泡(比如有人呼吁维基解密应当接受比特币捐款时,“中本聪”说“不,不要这样。”利用比特币进行的第一笔交易是在10年,一名用户通过发送10000枚比特币购买了一个披萨。比特币的技术原理(交易)2020/3/5张小秋——mywcyfl@163.com4如何交易:每一位所有者(A)利用他的私钥对前一次交易T1和下一位所有者(B)的公钥(俗称:地址)签署一个随机散列的数字签名,A将此数据签名制作为交易单T2并将其(交易单T2)广播全网,电子货币就发送给了下一位所有者。要点:1.交易发起者的私钥:私钥为个人所知,他人无从知晓。2.前一次交易:前一次交易数据说明了该次交易的货币的来源(这部分货币是怎么到当前发起人这里来的)。3.下一位所有者的公钥:即交易接收方的地址,此数据说明了当前交易的目标是谁。4.数字签名:发起方将前一次交易数据和接收方公钥连接起来并对其求Hash值x,再利用自己的私钥对x加密,便得到了这份数字签名。比特币的技术原理(交易)2020/3/5张小秋——mywcyfl@163.com5比特币的技术原理(交易)2020/3/5张小秋——mywcyfl@163.com6验证交易:1.利用交易T2中交易的发起方A的公钥对签名进行解密,得到整数x。2.将T1交易数据和B的公钥连接起来,用同样的Hash算法计算Hash值y。3.若x==y,说明:a.这笔交易确实是A本人发起的,因为只有A本人的私钥才可以生成此签名(A同时也无法否认自己曾签署了此份交易)。b.交易的目的方确实是B。c.发起方确实是打算把交易T1中A获得的货币发送给B。比特币的技术原理(交易单与Block)2020/3/5张小秋——mywcyfl@163.com7交易单记录一笔交易的具体信息,比如付款人(交易发起方的公钥)、收款人(交易接收方的公钥)、付款金额(上一笔交易信息)、付款人签名(加密后的Hash值)等。比特币虽然是电子货币,但比特币系统中并没有特定的数据结构用来单纯代表货币。本质上,比特币的存在是通过交易单来提现。通俗的来讲,现实生活中我们有实在的纸张来代表我们的货币(比如面值10块的RMB纸张代表着10块钱RMB),当我们去银行核对财务时银行也提供对账单来表示我们的货币去留。比特币的提现依托于交易单,交易单类似于银行的对账单,其通过记录货币的去留来证明你有多少货币,而不是提供给你具体的货币单元。比特币的技术原理(交易单与Block)2020/3/5张小秋——mywcyfl@163.com8Block(块、账簿):记录交易单的数据单元叫做Block,一个Block上会记录很多交易单。Block有很多份,每个Block只记录比特币全网10分钟内的交易信息,每约10分钟产生一个新的Block。截止2013年11月24号10:24,全网已有27192个Block被生产出来。生产Block的过程,被形象的称为“挖矿”,生产工也被称为“矿工”。比特币的技术原理(Block的产生——挖矿)2020/3/5张小秋——mywcyfl@163.com9Block怎么来的:通过复杂的密码学计算产生,计算过程即“挖矿”。钱(比特币)怎么来的:一个Block被创建后,这个Block里初始就有钱(归创建这个Block者所有)第0个–第21万个Block,每个Block里有50个比特币第21万-第42万个Block,每个Block里有25个比特币依次递减,最后比特币全网中只会有2100万个比特币等比数列求和公式:比特币总数=21W*Sn=21W*50/0.5=2100W币,(lim(1–q^n)=0)最后比特币的实际可用个数应少于2100W,因为会有部分币随着拥有者的密钥丢失而永远的无法流通(尽管记录这些币的交易单还在,但谁也无法使用它)比特币的技术原理(Block的产生——挖矿)2020/3/5张小秋——mywcyfl@163.com10Block的产生细则:全网每十分钟(算法动态调节至约十分钟产生一个)产生一个新的Block,每个新的Block含有的一定数额的比特币归创建者所有,此规则称为“激励”。比特币体系的设计要求:Block应由那些最诚实最勤劳的节点产生,因而引入工作量证明机制。比特币体系倾向于认为:一个节点在提供信息之前付出了巨大的工作量,那么他可能是诚实的概率比较高(他提供的Block中数据最有可能没有问题,当然无论如何其他节点也是会对其进行检查的)。具体产生原理:节点尝试寻找一个随机数(又称“幸运数”),使得将最后一个Block的hash值、当前世界中尚未被加入到任何Block的交易单、随机数三部分组织起来送入SHA256算法计算出散列值X(256位),如果X满足一定条件(比如前20位均为0),那么该节点初步获得创建Block的权利。比特币的技术原理(Block的产生——挖矿)2020/3/5张小秋——mywcyfl@163.com11SHA256简介(密码学范畴):SHA256是一种求Hash值的算法,将任何一串数据输入到SHA256将得到一个256位的Hash值(散列值),相同的数据输入将得到相同的结果。输入数据只要稍有变化(比如一个1变成了0)则将得到一个千差万别的结果,且结果无法事先预知(雪崩效应)。正向计算(由数据计算其对应的Hash值)十分容易。逆向计算(俗称“破解”,即由Hash值计算出其对应的数据)极其困难,以至于在当前科技条件下被视作不可能。比特币的技术原理(Block的产生——挖矿)2020/3/5张小秋——mywcyfl@163.com12挖矿过程实际上就是反复去尝试寻找一个随机数,该随机数加上其他数据后,SHA256算法计算它们的Hash值X,该X必须满足特定条件。矿工为寻找该随机数而付出的劳动被看成是为生产新的Block而付出的工作量,通常需要反复尝试上亿次才能成功找到一个满足条件的随机数(小道消息:据说全世界至少有500台超级计算机被低调的拿来干这事)。比特币的技术原理(Block的产生——挖矿)2020/3/5张小秋——mywcyfl@163.com13如何破解摩尔定律?比特币体系要求平均10分钟才可产生新的Block,但是在计算机硬件日新月异的今天,如何做到这点?戈登·摩尔(Inter创始人之一)指出(摩尔定律):集成电路上可容纳的电晶体数目,约每隔24个月便会增加一倍。通俗的理解是:计算机的性能,每隔18个月会提高一倍。摩尔中本聪比特币的技术原理(Block的产生——挖矿)2020/3/5张小秋——mywcyfl@163.com14工作量证明难度系数:对于每个Block存在一个难度系数,此系数可以转换为一个256位的整数,挖矿计算出的Hash值X必须小于该整数,此条件作为寻找随机数的附加条件。当某时刻网络检测到新Block的产生速度不符合约10分钟一个时,将调解该系数(加大或者缩小),从而使下一个Block的产生速度符合预期。全网每2周检测一次Block产生速度并依此对难度系数进行调节使得Block产生速度符合预期。每个Block会记录其本身产生时的难度系数数值,因此每个节点都可以根据历史Block计算出当前的难度系数。比特币的技术原理(Block的组织方式:Block链)2020/3/5张小秋——mywcyfl@163.com15Block链:所有的Block以双向链表的方式链接起来,且每个Block都会保存其上一个Block的Hash值(这样Block之间的顺序一旦确定就无法更改)。只有一个Block无上一节点,即:创世Block(第一个Block)。Block链全网唯一,每个节点都有相同的备份。Block链一旦有更新则全网通知。比特币的技术原理(Block链的那些事儿)2020/3/5张小秋——mywcyfl@163.com16Block链的更新:每当节点(矿工)计算出了一个符合条件的随机数时,它仅仅获得了创建临时Block的权利,它立即将相关数据打包好作为一个临时Block并广播全网。每10分钟内全网不止一个节点能计算出幸运数字,即十分钟内会有多个节点在网络中广播它们各自打包好的临时Block(都是合法的)。通过谁先计算出谁后计算出来决定接受谁的临时Block转正显然很难做到,因为所有节点的时间不可能严格一致(而且可以任意被调节),而且网络传输有快有慢。Block链分支:某一节点若收到多个针对同一前续Block的后续临时Block,则该节点会在本地Block链上建立分支,多个临时Block对应多个分支。比特币的技术原理(Block链的那些事儿)2020/3/5张小秋——mywcyfl@163.com17全网唯一的Block链是那支付出最大计算力的分支,也即最长分支。节点总在它认为最有可能成为最长分支的分支上继续工作(否则一旦当前工作的分支被其他分支淘汰,那么当前做的计算工作会前功尽弃)。节点按照以下原则决定在哪条分支(最大期望分支)上继续工作:1.不同高度的分支,总是接受最高的分支。2.相同高度,接受难度最大的。3.否则接受先收到的。每当Block链高度增加,则重新选取最大期望分支(以分支的实际增长速度为准),当某分支的高度稳定的高于其他分支时,其他分支将会被网络彻底抛弃。比特币的技术原理(Block链延伸)2020/3/5张小秋——mywcyfl@163.com18按照上述原则工作的节点被称为“诚实节点”,换言之,节点可以不按照上述原则工作(比如死守自己创建出的分支)。分支博弈:假设所有节点均独自挖矿不理会其他节点,且当分支出现时死守对自己有利的分支。那么算力最强的节点(节点群)挖得的分支必然是最长的。对于某个节点而言若其收益存在不被认可的风险(其工作的分支被其他节点抛弃),那么必然导致众多节点联合起来成为节点群共同挖某一分支,以尽可能使
本文标题:比特币(最全)
链接地址:https://www.777doc.com/doc-4161874 .html