课程:《密码与安全新技术专题》
班级: 1892班
姓名: 李炀
学号:20189215
上课教师:谢四江
上课日期:2019年4月23日
必修/选修: 选修算法
1.本次讲座的学习总结
讲座主题:区块链技术
区块链
- 比特币:是一种由开源的P2P软件产生的电子币,数字币,是一种网络虚拟资产。比特币基于一套密码编码、经过复杂算法产生,这一规则不受任何我的或组织干扰,去中心化;任何人均可如下载并运行比特币客户端而参与制造比特币;比特币利用电子签名的方式来实现流通,经过P2P分布式网络来核查重复消费。每一块比特币的产生、消费都会经过P2P分布式网络记录并告知全网,不存在伪造的可能。
- 比特币的特色:
- 数字货币
- 不依托于任何国家或组织而利用计算机技术独立发行
- 经过P2P分布式技术实现,不受任何我的或组织干扰,去中心化
- 全部人都可自由地参与(所以比特币是不少黑灰产业的交易工具)
- 总量有限,不可再生(所以比特币极具投机色彩)
- 机制开源,能够被山寨(因此有不少币种)
- 比特币交易
- 交易单:交易单记录一笔交易的具体信息,好比付款人(交易发起方的公钥)、收款人(交易接收方的公钥)、付款金额(上一笔交易信息)、付款人签名(加密后的Hash值)等。
- 如何交易:每一位全部者(A)利用他的私钥对前一次交易T1和下一位全部者(B)的公钥(俗称:地址)签署一个随机散列的数字签名,A将此数据签名制做为交易单T2并将其(交易单T2)广播全网,电子货币就发送给了下一位全部者。
- 交易发起者的私钥:私钥为我的所知,他人无从知晓。
- 前一次交易:前一次交易数听说明了该次交易的货币的来源(这部分货币是怎么到当前发起人这里来的)。
- 下一位全部者的公钥:即交易接收方的地址,此数听说明了当前交易的目标是谁。
- 数字签名:发起方将前一次交易数据和接收方公钥链接起来并对其求Hash值x,再利用本身的私钥对x加密,便获得了这份数字签名
- 验证交易:
- 利用交易T2中交易的发起方A的公钥对签名进行解密,获得整数x。
- 将T1交易数据和B的公钥链接起来,用一样的Hash算法计算Hash值y。
- 若x==y,说明:
- 这笔交易确实是A本人发起的,由于只有A本人的私钥才能够生成此 签名(A同时也没法否定本身曾签署了此份交易)。
- 交易的目的方确实是B。
- 发起方确实是打算把交易T1中A得到的货币发送给B。
- 本质上,比特币的存在是经过交易单来提现。
- 交易单相似于银行的对帐单,其经过记录货币的去留来证实你有多少货币,而不是提供给你具体的货币单元。
- Block
- 比特币网络中,数据以文件的形式被永久记录,称之为区块(Block),Block是记录交易单的数据单元,一个Block上会记录不少交易单。
- 区块的“面容”以下图,全部区块以双向链表的方式连接起来,且每一个Block都会保存其上一个Block的Hash值,就变成了区块链。
- 第一个Block没有上一节点,称为创世Block。
- Block有不少份,每一个Block只记录比特币全网10分钟内的交易信息,每约10分钟产生一个新的Block。
- 挖矿
- 生产Block的过程,被形象的称为“挖矿”,生产工也被称为“矿工”。
- 一个Block被建立后,这个Block里初始就有钱(归建立这个Block者全部,此规则称为“激励”)
- 第0个 – 第21万个Block,每一个Block里有50个比特币
- 第21万-第42万个Block,每一个Block里有25个比特币(2016年)
- 依次递减,最后比特币全网中只会有2100万个比特币
- 最后比特币的实际可用个数应少于2100W,由于会有部分币随着拥有者的密钥丢失而永远的没法流通(尽管记录这些币的交易单还在,但谁也没法使用它)
- 挖矿过程实际上就是反复去尝试寻找一个随机数(又称“幸运数”),使得将最后一个Block的hash值、当前世界中还没有被加入到任何Block的交易单、随机数三部分组织起来送入SHA256算法计算出散列值X(256位),若是X知足必定条件(好比前20位均为0),那么该节点初步得到建立Block的权利
- 工做量证实难度系数
- 对于每一个Block存在一个难度系数,此系数能够转换为一个256位的整数,挖矿计算出的Hash值X必须小于该整数,此条件做为寻找随机数的附加条件。、
- 当某时刻网络检测到新Block的产生速度不符合约10分钟一个时,将调解该系数(加大或者缩小),从而使下一个Block的产生速度符合预期。
- 每当节点(矿工)计算出了一个符合条件的随机数时,它仅仅得到了建立临时Block的权利,它当即将相关数据打包好做为一个临时Block并广播全网。
- Block链分支,某一节点若收到多个针对同一前续Block的后续临时Block,则该节点会在本地Block链上创建分支,多个临时Block对应多个分支。
- 分支选择Best Chain:
- 不一样高度的分支,老是接受最高(即最长)的那条分支
- 相同高度的,接受难度最大的
- 高度相同且难度一致的,接受时间最先的
- 若全部均相同,则按照从网络接受的顺序
- 等待Block Chain高度增一,则从新选择Best Chain
区块链技术
- 点对点对等网络
- 网格网络
- 权限对等、数据公开
- 数据分布式、高冗余存储
- 共识问题
- 工做量证实(PoW)
- 权益证实(PoS):Pow的一种升级共识机制;根据每一个节点所占代币的比例和时间;等比例的下降挖矿难度,从而加快找随机数的速度。优势是在必定程度上缩短了共识达成的时间,缺点是仍是须要挖矿,本质上没有解决商业应用的痛点。
- 基于信任的Quorum:是一种分布式系统中经常使用的,用来保证数据冗余和最终一致性的投票算法。
- 数据可验证
- PKI公钥体系
- 不可变数据
- 只可添加,不可编辑
- 不可变数据+时间戳,为互联网加上了时间轴
- 奖励合做的制度设计
- 非合做博弈--不基于信任,无外部强制力
- 合做是一种演化稳定策略,合做达到纳什均衡
- 51%攻击问题
- 51%攻击问题
- 攻击步骤:
- 将手中的BTC充值各大交易所,而后卖掉,提现;或者也能够直接卖给某人或某一群人;
- 运用手中的算力,从本身对外付款交易以前的区块开始,忽略本身全部对外的付款交易,从新构造后面的区块,利用算力优点与全网赛跑,当最终建立的区块长度超过原主分支区块,成为新的主分支,至此,攻击完成;
- 攻击结果:因为撤销了全部对外付款交易,等于收回来因此已卖掉的比特币。
- 可行性评估:如今比特币全网算力差很少90T,并且还会快速增加,如今看来只有如今的几大矿池联合,才具备发动51%攻击的实力,普通我的或机构实施此攻击的可能性愈来愈小。
区块链与将来
- 区块链技术发展的三个阶段交叉重叠:货币、合约、治理。
- 货币Currency
- 货币的发行机制
- 货币的分配机制
- 货币的币值调节机制
- 合约Contract
- 股权、债权
- 博彩
- 证券与金融合约
- 防伪
- 互助保险
- 物联网
- 权利的登记、转让
- 智能合约
- 治理Governance
- 身份认证
- 公证、见证
- 司法仲裁
- 投票
- 健康管理
- 人工智能
- 去中心化自治组织
2.学习中遇到的问题及解决
- 问题1:比特币挖矿的“激励”机制,在后来挖矿的收益变得很小时,如何发挥做用?
- 问题1解决方案:经过搜索和论文阅读,发现比特币为矿工提供了两种激励措施,分别为建立block的激励机制和交易费用的激励机制。在比特币整个系统启动时,挖矿建立block的收益占绝大多数,随着每一个block的奖励减小,交易费用的激励机制占据的比例逐渐增长,更多的是奖励矿工交易的手续费。
- 问题2:区块链的共识机制。
- 问题2解决方案:区块链技术的核心是由系统中节点竞争进行记帐,这个竞争的评判标准称之为“共识机制”,不一样的区块链可能采用不一样的共识机制。下面说一下POW(工做量证实)和POS(权益证实机制)
3.本次讲座的学习感悟、思考等
在此次讲座以前,我对于区块链和比特币知识略有耳闻,有一个大概的概念,知道挖矿是计算一个数值,但没有深刻、全面地了解这个方面。此次讲座为咱们详细地讲解了区块链的产生和发展,由匿名做者中本聪发布的《比特币:一种点对点的电子现金系统》白皮书,演化成为今天这个比特币体系,虽然在我国比特币交易是明令禁止的,但技术是无罪的。讲座让我对区块链的知识有了全面的了解,对系统总体的运行方式和流程有了认识,这一技术还在不断地发展、扩充中,目前来看它的设计是“精妙绝伦的”,但它的机制合理性、系统安全性、系统稳定性等还须要更长时间的验证。less
4.最新研究现状
论文1:Bitcoin: A Peer-to-Peer Electronic Cash System点此查看
做者:Satoshi Nakamoto
研究进展:
这篇论文虽然时间比较久远,但它的意义无比巨大,这是匿名做者使用“中本聪”的化名在2008年发表的一篇白皮书,提出了比特币这么一种彻底经过点对点技术实现的电子现金系统,它使得在线支付可以直接由一方发起并支付给另一方,中间不须要经过任何的金融机构。
为了解决交易中的双重支付问题,提出了一个新的解决方案,该方案提出一个“时间戳服务器”。时间戳服务器经过对以区块(block)形式存在的一组数据实施随机散列而加上时间戳,并将该随机散列进行广播,显然,该时间戳可以证明特定数据必然于某特定时间是的确存在的,由于只有在该时刻存在了才能获取相应的随机散列值。每一个时间戳应当将前一个时间戳归入其随机散列值中,每个随后的时间戳都对以前的一个时间戳进行加强(reinforcing),这样就造成了一个链条(Chain)。
dom
为了在点对点的基础上构建一组分散化的时间戳服务器,还须要一个相似于Adam Back提出的哈希现金(Hashcash),在进行随机散列运算时,工做量证实机制引入了对某一个特定值的扫描工做,对结果进行检验则仅须要一次随机散列运算。
这篇白皮书提出了一种不须要信用中介的电子支付系统,虽然这种系统为全部权提供了强有力的控制,可是不足以防止双重支付。为了解决这个问题,提出了一种采用工做量证实机制的点对点网络来记录交易的公开信息,只要诚实的节点可以控制绝大多数的CPU计算能力,就能使得攻击者事实上难以改变交易记录。本框架包含了一个P2P电子货币系统所须要的所有规则和激励措施。
论文2:The unseen economic forces that govern the Bitcoin protocol点此查看
做者:Li Z, Liao Q
研究进展:
比特币建立了一个支配其内部运行的复杂经济激励机制(incentives)。这些激励机制强烈影响了协议的能力、安全保证,以及将来发展的道路。这篇论文探讨了比特币协议的经济暗流、优点缺陷,以及它们如何反过来影响协议自己。
论文经过比特币经济学方法论、矿池和风险规避、攻击和违反规则的经济学原理等方面进行论述,肯定激励机制确实在比特币协议中发挥着重要做用。激励机制对于比特币协议的安全性、及其平常运行的有效性相当重要。
这篇论文指出,矿工为了最大限度地增长收入而费尽心机,而且常常会找到一些创造性的方法,而这些方法与比特币协议并不符合。加密货币的协议应该创建在更加坚实的激励基础之上。还有不少领域须要改进,包括基本的挖矿报酬机制,交互共识机制,矿池的报酬分配机制,以及交易手续费市场自己的方方面面。electron
论文3:On the Instability of Bitcoin Without the Block Reward点此查看
做者:Carlsten M , Kalodner H , Weinberg S M
会议名称:Acm Sigsac Conference on Computer & Communications Security. ACM, 2016.
研究进展:
比特币为矿工提供了两种激励措施,分别为建立block的激励机制和交易费用的激励机制。在比特币整个系统启动时,挖矿建立block的收益占绝大多数,随着建立block的奖励减小,交易费用的激励机制占据的比例逐渐增长,这隐含了一层意思:即矿工是经过block奖励仍是交易费来支付,不会影响区块链的安全性。
这篇论文证实状况并不是如此,这篇文章的观点是当奖励只有交易费用,因为指数分布的块到达时间,块奖励的方差很是高,而且分叉“富裕”块以“窃取”其中的奖励变得有吸引力。换言之就是对奖励值比较高的block进行分支更可以得到利益,这会致使比特币安全性和性能的不良特性均衡,甚至在某些状况下也会出现非均衡。
论文经过理论分析,以及一个可能独立获利的比特币采矿模拟器确认。讨论了比特币将来安全性的结果使人不安的影响,并为新加密货币的设计提供了经验。jsp
论文4:Security Enhancement In Bitcoin Protocol点此查看
做者:R. Bala ; R. Manoharan
会议名称:2018 International Conference on Wireless Communications, Signal Processing and Networking (WiSPNET)
研究进展:
比特币保持了用户的匿名性,并在全球范围内实现了点对点即时支付。比特币是一种分散的汇款协议,能够在不暴露用户凭证的状况下进行交易,并在没有任何第三方干预的状况下进行验证。虽然它保持匿名,但“去中心化”的概念引入了漏洞,致使严重的安全问题,如双重支出,阻止预扣和51%的攻击。这些问题须要比特币协议中的安全特定加强。
这篇论文提出了一个有效的预采矿模块,只容许值得信赖的矿工参与采矿过程,以减轻安全攻击,即51%,双重支出,阻止预扣。 这能够经过在挖掘过程当中引入标准检查和验证模块来实现,这能够阻止攻击者进入比特币挖掘网络。 此外,提出了一种加强的块建立和验证算法,该算法将比特币协议的事务速率从当前的7-8tps提升到12.749tps。分布式
论文5:Section-Blockchain: A Storage Reduced Blockchain Protocol, the Foundation of an Autotrophic Decentralized Storage Architecture点此查看
做者:Yibin Xu
会议名称:2018 23rd International Conference on Engineering of Complex Computer Systems (ICECCS)
研究进展:
比特币派生出了区块链,存储需求的快速增加阻碍了存储能力不足的设备使用区块链驱动的分布式应用程序,论文提出了Section-Blockchain,旨在解决超大存储问题而不会损害区块链的安全性。Section-Blockchain容许用户存储区块链的一部分,但得到彻底的安全性,就像NakamotoBlockchain中的完整节点同样。区块链还为系统提供了丰富的轻量级节点,并容许用户加入系统,不只能够提供计算能力,还能够协助存储。能够在上面构建分散的自养存储系统。实验证实,Section-Blockchain是有效的,显着减小了存储,而且能够承受大规模的忽然节点丢失。
在将来的研究中,如何消除采矿权集中将是进一步保障区块链的关键。此外,存储的底线以及每一个块须要选择的保证节点将在系统达到稳定的用户规模后逐个时间地进行计算,这将减小块能够处理的事务数量,由于块将须要包含如此多的PoSenquires和保证交易。将来的研究还能够关注如何减少块大小,例如,使用IBM和Bloom过滤器来建立轻量块等。
论文总结
区块链做为一门比较新的技术,在当前有其发展的必然性和必要性,不过设计上的安全性须要时间来进行验证,目前也有不少研究代表最初的设计不是很是安全的,须要进行改进。但无论怎么说,区块链技术仍是将来发展的一个大方向。
参考资料