区块链应用技术 课件 2.4区块链核心技术_第1页
区块链应用技术 课件 2.4区块链核心技术_第2页
区块链应用技术 课件 2.4区块链核心技术_第3页
区块链应用技术 课件 2.4区块链核心技术_第4页
区块链应用技术 课件 2.4区块链核心技术_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

区块链核心技术区块链的核心技术1.密码学2.P2P网络3.共识机制4.智能合约密码学区块链的基础在于密码学技术。这里,我们并没有将密码学及其相关实现技术作为单独的某一层。因为密码学技术可以说是所有区块链运行的理论基础,并且自底向上贯穿了区块链的整个技术栈。从底层数据的加密、账户的公私钥配对计算、签名、网络链接使用的各类证书、应用层面的同态加密及多方计算等等均离不开密码学的研发应用,是整个加密世界的基础。密码学-非对称加密(1)非对称加密加密是为了实现对秘密的保护。所谓秘密就是机密的信息,不能让其他人所知晓。非对称加密是密码学中最常用的一类加密算法。会涉及两个密钥,一个可以公开传递,被称为公钥;另一个必须由用户自己严格保管,被称为私钥。如果用其中一个密钥进行加密后,只能用唯一对应的另一个密钥才能解密出明文,所以这种加密技术被称为“非对称”加密。非对称加密的用途很广,是签名、证书等加密技术的基础之一。区块链中最常见的用途是用公钥生成账户地址(因为账户地址需要公开传递);私钥由用户自行保管,作为使用账户的唯一凭证。密码学-哈希函数(2)哈希函数严格来说,哈希(Hash)函数,或称为散列函数,是一种信息摘要方法,通过一定的计算,可以将任意长度的数据信息映射为一个特定长度的字符串。哈希函数可用公式表示如下:其中,m是消息。它在计算机上的形式可以是一串文字、一个文本文件、一个图片、一段语音、一个视频等等。不过消息量越大,所需要的计算量越大;h是哈希值。一般是一个固定长度的字符串;Hash是哈希函数。这个函数计算的过程一般会很快,但由于这个过程会伴随着信息的丢失,因此这个映射过程是单向的。另外,因为是摘要信息,所以一般都会要求两个不同数据的哈希函数映射结果也不同。由此可看到,哈希函数具有压缩性、单向性、抗碰撞、随机性等特点。哈希函数在日常使用计算机的过程中是很常见、用途也比较多,用户最常见的是用来生成数据的一个唯一特征“指纹”信息。很多时候,我们在一些站点下载软件时就会看到这类信息。因为网络下载的过程中,由于网络传输不稳定可能会导致程序文件不完整;或者因为黑客攻击等行为导致用户手中的程序遭到了恶意篡改。因此,一些网站会主动提供软件程序文件的哈希值;用户下载后也可计算出自己计算机上的文件,与网站公示的信息进行比较,以此来判断本地的程序文件是否正确、完整。但由于这些过程中信息都是公开的,所以在用于验证时哈希函数并不算是一种加密算法。密码学-哈希函数在区块链中,哈希函数的应用会更多。例如,在比特币中,从公钥生成账户地址的过程中就不止一次地用到了SHA256.RIPEMD等哈希函数。签名时一般也不会直接对原消息进行签名而是对哈希后的消息进行签名。这些都是利用哈希函数的压缩性来控制数据量大小。PoW系统中,工作量证明所称的“工作”也是SHA256哈希值的计算。后续的其他PoW系统采用了更多、更新的哈希方案。具体哈希算法见本书共识一章。这些都是利用了哈希函数的单向性和随机性。比特币组织区块所用的Merkle树也是采用的也是逐层依次计算各个区块的哈希值的方式进行,具体见本书账本一章。这样的方式使得要篡改某一区块的内容变得十分困难。哈希函数的抗碰撞特性,使得篡改后的哈希值几乎不可能与原哈希值一致。从这个角度来说,可认为区块链的不可篡改特性是由哈希函数带来的。密码学-数字签名(3)数字签名其中,m是消息。和哈希函数类似,可以是各种形式;sk是用户的私钥;pk是用户的公钥;s是数字签名,是一个固定长度的字符串;Sign是签名的函数;Verify是验证签名的函数。只有当pk和sk是一对公私钥的时候,才会验证通过。因此,通过非对称加密的特性可以知道,攻击者几乎不可能通过一个假的私钥来伪造出一个能验证通过的签名。由此可看到,签名函数具有不可伪造、不可抵赖的特性。在区块链中,签名算法主要也是从这两个方面来进行身份验证。利用签名函数不可伪造的特点,攻击者几乎不可能冒充签名者、伪造出一个交易信息,伪装成他人来盗用数字资产。而不可伪造的另一面就是不可抵赖。由于其他人均无法伪造签名,也就说明了交易的发起方只可能是拥有该私钥的用户,该用户也就无法对交易的存在以及交易的内容(数量、收款方等)进行抵赖。因此,签名函数实现了用户对其链上资产的绝对控制权。P2P网络P2P网络的含义是“点对点网络”。网络链接功能是账本得以“分布式”的链接基础,实现一个对等、点对点的P2P网络结构。这也是分布式账本与传统中心化系统核心区别之一。由于没有特殊的中心节点,区块链可以不依赖于某些中心化节点即可运行,以技术的分布实现业务上的分布。和传统的BitTorrent类似,很多技术可以用于实现一个P2P的网络,包括Gossip、Kademlia、NAT等。目前一些用于组建网络和穿透内网的开发工具,例如libp2p等也被越来越多的用于区块链平台。共识算法作为区块链的核心,理解区块链的共识机制至关重要。共识机制是区块链节点就区块链信息达成全网一致的共识的机制,可以保证最新的区块被准确添加至区块链、节点储存的区块链信息一致不可叉甚至可以抵御恶意攻击。可以理解成一套大家一起遵守的游戏规则,在这套规则中,所有人一起参与这个游戏,维护整个网络的安全,并且获得回报。主流的共识机制有很多,包括工作量证明(PoW),权益证明(PoS),混合证明(PoS+PoW)等等。而我们熟悉的以太坊(ETH)主网的共识机制为早期PoW,后期PoS。比特币区块链采用去中心化记账方法,所有节点都有记账权利,但最后写人新区块需要得到全网所有节点验证有效,而且所有节点最后保存的账本是一样的。要实现去中心化记账一致性和正确性关键是共识算法。共识算法理解为确保记账一致性的机制。比特币采用的共识算法是基于工作量证明的PoW算法。近些年陆续出现一些新的数字货币基于新共识算法,包括权益证明PoS,授权股权证明DPoS,混合共识(Casper/PoW+PoS、BFT+PoW等)、其他分布式共识算法(PBFT、Raft)。智能合约智能合约是指一种计算机协议,这类协议一旦制定和部署就能实现自我执行(self-executing)和自我验证(self-verifying),而且不再需要人为的干预。从技术角度来说,智能合约可以被看作一种计算机程序,这种程序可以自主地执行全部或部分和合约相关的操作,并产生相应的可以被验证的证据,来说明执行合约操作的有效性。智能合约具有以下优点:(1)高效的实时更新:任何时候都可以响应用户请求,大大提升交易效率。(2)准确执行:条款和执行过程提前制定好,执行结果可控且保证准确性。(3)较低人为干预风险:智能合约一旦部署,合约内容无法修改,合约生效后无法更改。(4)去中心化权威:智能合约监督和仲裁由计算机而不是中心化权威完成,区块链网络不存在绝对权威,而是全体用户集体监督和仲裁。(5)较低的运行成本:智能合约没有人力干预,降低合约履行仲裁和执行需要的人力成本。智能合约区块链2.0阶段的一个重要标志是智能合约概念的实现,可以在区块链的分布式账本基础上,实现去中心的多方参与、规则透明不可篡改、符合条件即可执行的“合约”。在区块链早期,以比特币为代表的区块链网络,更多是以简单脚本的方式实现了一些基本的可编程属性。不过由于脚本自身设计原因,一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论