密码与安全新技术专题之区块链
课程:《密码与安全新技术专题》
班级: 1892
姓名: 李熹桥
学号:20189214
上课教师:张健毅
上课日期:2019年4月23日
必修/选修: 选修
1.本次讲座的学习总结
历史由来
区块链解决的问题其实是一个1982年由Leslie Lamport等人所提出的拜占庭将军问题。简单来说就是如何使各个部队彼此取得共识,然后决定是否出兵的过程。推广到理论模型来说如何使基于零信任基础的节点达成共识,且确保一致性。David Chaum提出密码学网路支付系统具有不可追踪的特性,成为之后比特币区块链在隐私安全面的雏形。1991Stuart Haber与W. Scott Stornetta提出用时间戳确保数位文件安全的协议,此概念之后被比特币区块链系统所采用。2002年Adam Back正式的论文发明Hashcash(杂凑现金),是一种工作量证明演算法(Proof of Work,POW),此演算法仰赖成本函数的不可逆特性,达到容易被验证,但很难被破解的特性, 最早被应用于阻挡垃圾邮件。Hashcash之后成为比特币区块链所采用的关键技术之一。1998年Wei Dai发表匿名的分散式电子现金系统B-money,引入工作量证明机制,强调点对点交易和不可窜改特性。不过在B-money中,并未采用Adam Back提出的Hashcash演算法。Wei Dai的许多设计之后被比特币区块链所采用。2008年atoshi Nakamoto(中本聪)发表一篇关于比特币的论文,描述一个点对点电子现金系统,能在不具信任的基础之上,建立一套去中心化的电子交易体系。2012年市场去中心化,可作货币以外的数位资产转移,如股票、债券。如Colored Coin便是基于比特币区块链的开源协议,可在比特币在区块链上发行多项资产。2014年后区块链有更复杂的智慧合约,将区块链用于*、医疗、科学、文化与艺术等领域。
区块链技术随着比特币出现后,经历了几个不同的阶段,一般将比特币视为Blockchain 1.0,为数位货币(Currency)应用,Blockchain 2.0开始出现如智慧资产(Smart Assets)、智慧契约(Smart Contracts)等货币以外的应用,Blockchain3.0则是指更复杂的智慧契约,将区块链用于*、医疗、科学、文化与艺术等领域。
比特币区块链
比特币相比于传统货币,最明显的特征是去中心化和虚拟。
中本聪的白皮书中通过账簿公开机制、身份与签名机制、虚拟矿工组织、建立创世块四个“比特币基础建设”来使比特币这套系统具备去中心化的特质。 区块链本质上是一个去中心化的分布式账本数据库,是比特币的底层技术,和比特币是相伴相生的关系。
从数据结构的角度出发,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。
区块链的优点体现在:
(1)分布式去中心化,每个节点和矿工都必须遵循同一记账交易规则,而这个规则是基于密码算法而不是信用。在一个去中心化的,比如说区块链网络中,攻击单独一个节点是无法控制或破坏整个网络的,掌握网内50%的节点只是获得控制权的开始而已。
(2)无须信任系统:区块链网络中,通过算法的自我约束,任何恶意欺骗系统的行为都会 遭到其他节点的排斥和抑制,因此,区块链系统不依赖*权威机构支撑和信用背书。区块链网络中,参与人不需要对任何人 信任,但随着参与节点增加,系统的安全性反而增加,同时数据内容可以做到完全公开。
(3)不可篡改和加密安全性:区块链采取单向哈希算法,同时每个新产生的区块严格按照时间线形顺序推进,时间的不可逆性导致任何试图入侵篡改区块链内数据 信息的行为都很容易被追溯,导致被其他节点的排斥,从而可以限制相关不法行为。
区块链的缺陷体现在:
(1)容量限制。比特币区块 链设计之初人为地将一个区块容量设置为 1MB,随着交易量加大,容量开始面临限制,处理速度受到影响。
(2)确认时间变长,由于容量限制和工作量证明时常挑战 运算极限,目前比特币无法处理超过每秒 7 次的交易,无法和类似 Visa 等支付方式 在速度这个纬度上进行抗衡。
2.学习中遇到的问题及解决
- 问题1:比特币系统中比特币不断奖赏,会不会通货膨胀。
- 问题1解决方案:中本聪最开始提出的设想是,每当账簿增加21000页时,奖励就减少一半。当达到6,930,000页,就没有奖励了。在之后奖励矿工的手法不是奖励他比特币,而是可以抽取交易比特币的手续费。
3.本次讲座的学习感悟思考等
原先认为比特币和区块链是一样的概念,听了老师的课之后,了解了比特点的历史,清晰了对当前区块链技术的动向,走向了第三代智能合约的时代,
特别在金融领域,基于区块链,各金融机构将各自收集和验证的客户信息数字化后,上传至区块链;同时,金融机构为交易中的实体提供电子身份证明信息(类似私钥),并将用户地址与其电子身份证明信息联系起来,任何交易的发生都需要经过该私钥和银行手中的公钥验证,并由用户地址进行,这种区块链上数据的可追溯性会将整个金融企业的合规程度将得到提高。在技术的不断突破同时,*也不断跟进。国务院在2016年底将区块链作为战略性前沿技术写入了《“十三五”国家信息化规划》中。各部委相继出台了多个文件,拟在推进区块链产业发展。
4.区块链的最新研究现状
一种点对点的电子现金系统
第一句话We define an electronic coin as a chain of digital signatures.表面交易也就是每一位所有者通过对前一次交易和下一位拥有者的公钥(Public key) 签署一个随机散列的数字签名,并将这个签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所有者。而收款人通过对签名进行检验,就能够验证该链条的所有者。其中描述的POW工作量证明,可比方说SHA-256下,随机散列值以一个或多个0开始。那么随着0的数目的上升, 找到这个解所需要的工作量将呈指数增长,而对结果进行检验则仅需要一次随机散列运算。接着如果最近的交易已经被纳入了足够多的区块之中,那么就可以丢弃该交易之前的数据,以回收硬盘空间。为了同时确保不损害区块的随机散列值,交易信息被随机散列时,被构建成一种Merkle树(Merkle tree)的形态,使得只有根(root)被纳入了区块的随机散列值。通过将该树(tree)的分支拔除(stubbing)的方法,老区块就能被压缩。而内部的随机散列值是不必保存的。确认机制为节点想要自行检验该交易的有效性原本是不可能的,但通过追溯到链条的某个位置,它就能看到某个节点曾经接受过它,并且于其后追加的区块也进一步证明全网曾经接受了它。这个框架包含了一个P2P电子货币系统所需要的全部规则和激励措施。
共识机制是区块链中一个重要算法,上面谈到当前的区块链缺点就是当前的共识算法在块不断增加的情况下运算时间会增加。当前有POW,PoS,DPoS,Powand PoS等算法,在论文A New Election Algorithm for DPos Consensus Mechanism in Blockchain提出了一种新的DPoS选举算法。该算法的目的是在许多服务器中选择一个服务器作为新块的生成器。选举的评估标准是候选人的权利。当权利更大时,获胜的可能性更高。候选人的权利由他拥有的代币金额决定。为了减少广播信息并避免网络拥塞,并非网络中的所有服务器都直接参与选举和被选举。多台服务器推荐代理服务器参与选举; 但选举必须公平,防止垄断。为了进一步防止垄断,选举时任何服务器的赌注值乘以一个随机数,并且前一个会话的赢家乘以0,因为没有节点可以连任。完整的选举有两个过程,投票和广播告知赢家信息。与PoW算法对比而言,它只需要传递信息并确认选举。它不需要复杂的计算,可以在1秒内完成。而当前生成块需要大约10分钟。平均需要6轮确认,这是确认交易确实发生的60分钟。因此这个选举算法的效率会大大提高。 在论文Proof of Vote: A High-Performance Consensus Protocol Based on Vote Mechanism & Consortium Blockchain提出一种机制POV,专门用于联合区块链。区块链系统由联盟维护,由世界不同地区的企业和组织组成。在该联盟链上开发的应用程序可以服务于全球网络的终端用户。
区块链中有一种攻击叫51%算力攻击,就是指利用自己的算力优势来篡改区块链上的记录,从而达到撤销已付款交易的目的。“算力”指的是每秒钟可以计算哈希值的次数,算力越大矿工的计算速度就越快。理论上来说,当一个人掌握了51%以上的算力,那么他计算出正确哈希值的速度就会比全网其他矿工更快,因此只要他从包含自己想要篡改的交易数据之前的一个区块开始继续向下挖矿,那么他就有可能创造出一条比当前主链更长的区块链。当前通过“延时函数”升级他们的工作量验证共识算法,来处罚蓄谋51算力攻击的矿工。51%攻击需要一名矿工在上传至区块链之前秘密生产这些区块,延时函数会使得这些攻击代价变得极为高昂。
Deanonymisation of clients in Bitcoin P2P network这篇文章宣称可以找到比特币所有人的IP地址,作者的基本思路是首先去掉经过Tor接入比特币网络的用户(通过比特币内建的惩罚机制,故意在Tor网络中发出不合格的blocks);然后分析感兴趣的用户进入网络的接入点(因为是点到点的网络,用户需要在网络中广播自己的存在,首先接入的那些连接就是该用户的接入点),方法是连接所有的网络服务器,通过看网络服务器的转发找出最早转发特定用户信息的那些服务器;与此同时收集经过这些接入点广播的Transaction信息,这些信息与用户信息来源于同一个接入点,表明该接入点的某些用户发出了某些交易信息。
Tampering with the Delivery of Blocks and Transactions in Bitcoin这篇文章分析了比特币系统中通过inv消息咨询是否更新的方法所带来的重复消费和其它问题。其中重复消费问题主要体现在快速消费上。本来比特币要求6个确认,也就是1个小时左右才可以确认。如果快速确认,那么攻击者有可能通过先向网络中发送一个给自己的Trans,然后把同样的比特币再向商家支付,并且通过inv使得商家无法及时更新区块信息,此时商家根据自己的数据库检查会发现支付合法,网络中知道不合法,却无法通知商家(因为商家已经在与攻击者的inv对话),最后给商家的支付就非法了。
区块链技术按照中本聪的论文发表时间开始计算,仅仅只存在了10年。整个区块链是建立在密码算法之上,所以对于区块链的安全性而言,如果密码算法被攻破,就毫无安全性。除了密码算法,安全性还受着一些机制的影响,需要不断探索。