区块链会计 课件 第二章 区块链技术概要_第1页
区块链会计 课件 第二章 区块链技术概要_第2页
区块链会计 课件 第二章 区块链技术概要_第3页
区块链会计 课件 第二章 区块链技术概要_第4页
区块链会计 课件 第二章 区块链技术概要_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

第二章区块链技术概要本章思维导图1.知识目标:理解区块链技术的发展背景;理解哈希算法以及如何保护数据;理解区块链中的激励机制和共识机制;了解集中式记账和分布式记账的基本原理;掌握区块链的定义、特点以及基本组成部分。2.技能目标:掌握对称加密和非对称加密的基本原理及应用场景;掌握区块链系统的搭建流程和操作步骤。

学习目标培养学生的技术分析与批判性思维,提高数据安全意识与区块链应用能力,增强创新意识和系统实践能力。

素养目标本章的主要内容第一节

区块链的发展第二节区块链概述第三节从集中式记账到分布式记账第四节哈希算法第五节区块链的加密方式第六节区块链的激励机制与共识机制第七节区块链智能合约第八节基于区块链平台交易模拟的区块链搭建流程分析第一节

区块链的发展区块链的发展可分为三个阶段,分别为区块链1.0、区块链2.0和区块链3.0阶段。

区块链1.0阶段

是区块链技术的基本版本

,能够实现可编程货币,是与转账、汇款和数字化支付相关的密码学货币应用。通过这一层次的应用,区块链技术首先起到搅动金融市场的作用。大型金融机构诸如纽交所、高盛、芝交所、花旗、纳斯达克等都在过去的一年中进入了区块链领域。在这一时期

,产生了影响力比较大的区块链联盟R3。目前全球70多家机构已经加入了区块链联盟R3,其核心任务是进行区块链技术的概念验证和相关技术标准的制定。

同时,区块链在证券市场的潜力也引起了各大证券交易所的重视。在纳斯达克公布区块链平台Linq以后,欧洲证券市场的机构也纷纷跟进。

2015年11月17日,伦敦证券交易所、伦敦清算所、法国兴业银行、瑞银集团,以及欧洲清算中心等机构联合成立了区块链集团

,探索区块链技术如何改变证券交易的清算和结算方式。据世界经济论坛预测

,到2027年世界GDP的10%将被存储在区块链网络上。

区块链2.0阶段

是可编程金融

,是经济、市场和金融领域的区块链应用。例如,股票、债券、期货、贷款、抵押、产权、智能财产和智能合约。除了构建货币体系之外

,区块链在泛金融领域也有众多应用机会。基于区块链可编程的特点,人们尝试将智能合约添加到区块链系统中,形成可编程金融,其中以智能合约为代表。智能合约的核心是利用程序算法替代人执行合同。这些合约需要自动化的资产、过程、系统的组合与相互协调。合约包含三个基本要素:要约、承诺、价值交换,并有效定义了新的应用形式,使得区块链从最初的货币体系拓展到金融的其他应用领域,包括在股权众筹、证券交易等领域开始逐渐有应用落地。传统金融机构也在大力研究区块链技术,以期与传统金融应用相结合。

由于区块链2.0是代码

,因此新应用程序被称为在一组新协议上运行(即“区块链2.0协议”)。与Internet协议及其堆栈层的比较说明了区块链1.0和区块链2.0之间的关系。前者可以被视为TCP/IP传输层,而后者可以被视为HTTP,SMTP和FTP。在这种情况下,区块链2.0应用程序类似于浏览器、社交网络和文件共享服务。区块链3.0阶段

是价值互联网的内核。区块链能够对于每一个互联网中代表价值的信息和字节进行产权确认、计量和存储,从而实现资产在区块链上可被追踪、控制和交易。价值互联网的核心是由区块链构造一个全球性的分布式记账系统,它不仅仅能够记录金融业的交易,而是几乎可以记录任何有价值的能以代码形式进行表达的事物:对共享汽车的使用权、信号灯的状态、出生和死亡证明、结婚证、教育程度、财务账目、医疗过程、保险理赔、投票、能源。因此

,随着区块链技术的发展,其应用能够扩展到任何有需求的领域

,包括审计公证、

医疗、投票、物流等领域,进而到整个社会。第二节

区块链概述一、区块链的定义

区块链技术是一种分布式账本技术,广义上通过加密算法、共识机制、点对点通讯等技术构建了一个去中心化、去信任化的网络环境。其基本原理包括数据的不可篡改性、透明性和集体维护的特性。区块链技术的核心在于其能够在一个没有可信第三方的情况下,通过网络中的多个节点共同维护一个公共的、不可变的数据记录系统。狭义上则是特指一种数据存储方式或数据库设计。二、区块链的特点

区块链的技术特性使得区块链在金融、供应链、医疗等多个领域有着广泛的应用前景。通过去中心化、开放性、自治性、信息不可篡改、匿名性、安全性和可追溯性等特点,为数据存储和管理提供了一种高效、可靠且无需第三方信任的解决方案。

(1)去中心化。这是区块链最核心的特征之一。区块链由众多节点共同组成一个端到端的网络,不存在中心化的设备和管理机构。每个节点都参与维护整个系统的账本,并且这些数据在各个节点之间进行同步更新。

(2)开放性。区块链的数据信息是公开透明的,每一笔交易都会通过广播的方式让所有节点可见。这意味着任何人都可以查看区块链上的数据,但私人信息通常被加密保护。

(3)自治性。任何人都可以参与到区块链网络中,每个节点都能获得一份完整的数据库拷贝,并基于共识机制维护整个区块链。这种去信任的特性使得区块链能够在没有中央权威机构的情况下运行。

(4)信息不可篡改。一旦数据被添加到区块链上,就无法被更改或删除,除非能控制超过51%的节点同时修改。这种设计确保了数据的安全性和完整性。

(5)匿名性。尽管区块链的数据是公开的,但在某些情况下,用户可以选择保持匿名,这使得区块链在隐私保护方面也具备一定的优势。

(6)安全性。区块链采用非对称加密算法和时间戳等技术手段来确保数据的安全性和不可篡改性。即使一个节点被攻击或宕机,也不会影响整个网络的正常运行。

(7)可追溯性。区块链中的每一笔交易都有时间戳和前一个区块的链接,从而形成了一个不可逆的链条,确保了数据的真实性和可信度。

(8)多节点共识。区块链通过多节点共识机制来验证和确认交易,确保了数据的安全性和透明度。三、区块的组成

区块链是由一个个区块组成的链,每个区块分为区块头和区块体两部分。区块体只负责记录前一段时间内的所有交易信息,区块链的大部分功能都由区块头实现。

区块头由三组区块元数据组成,首先是一组引用父区块哈希值的数据,这组元数据用于将该区块与区块链中前一区块相连接。第二组元数据即难度、时间戳和nonce,与挖矿竞争相关。第三组元数据是merkle树根,是一种用来有效地总结区块中所有交易的数据结构。

每一个区块都有自己独有的标识符,而每个区块的标识符就是一种通过加密算法对区块头进行加密后得到的字符串,这个字符串被称为区块哈希值,或者说是区块头哈希值,因为只有区块头被用于计算。区块哈希值可以唯一、明确地标识一个区块,并且任何节点通过简单地对区块头进行哈希计算都可以独立地获取该区块哈希值。

区块哈希值实际上并不包含在区块的数据结构里,不管是该区块在网络传输时,或者是它作为区块链的一部分被存储在某个节点的永久性设备上时。相反区块哈希值是当该区块从网络被接受时由每个节点计算出来的。区块的哈希值可能会作为区块元数据的一部分被储存在一个独立的数据库表中,以便于索引和更快地从磁盘检索区块。一个共同比特币区块如下所示。

第三节

从集中式记账到分布式记账一、集中式记账

集中式记账是一种传统的记账方式,其核心在于会计信息的集中管理和处理。在这种模式下,所有的会计数据和记录都集中在某个中心化的系统或机构中进行管理。这种方式的优点在于易于控制和监督,便于进行集中式的审计和管理。然而,集中式记账也存在一些明显的缺点,如信息孤岛问题、数据泄露风险较高、难以实现即时更新等。

其主要记账流程为,以下5个步骤。(1)设立会计核算中心。首先,需要在企业内部或集团层面设立一个专门的会计核算中心。这个中心负责统一处理所有相关的财务和会计事务。(2)统一账户管理。在集中核算模式下,各下属单位的银行账户被取消,所有资金流动都通过会计核算中心的单一账户进行管理。这包括资金的收付、调配等。(3)统一会计核算。会计核算中心负责所有财务数据的收集、记录和报告。这涉及到日常的账务处理、月末结账、财务报表的编制等。(4)监督管理与服务。除了核算功能外,会计核算中心还承担监督和咨询服务的角色,确保财务活动的合规性和效率。(5)信息系统的支持。为了有效实施集中核算,需要有强大的信息系统支持,以确保数据的准确性和实时性。二、分布式记账

分布式账本技术(DLT)通过在多节点之间共享、复制和同步数据库来记录网络参与者之间的交易,如资产或数据的交换。这种共享账本降低了因调解不同账本所产生的时间和开支成本,不需要依赖一个受信中央验证系统。在多节点之间通过共识机制共同维护数据记录,可将数据所有权、传播过程、交易链条等相关信息完整全面地记录在分布的账本中,并在数据产生、流动的整个生命周期中保证数据的不可篡改、不可抵赖。

分布式账本技术具有去中心化、公开透明、不可篡改、时间精确及顺序连续等特征。这些特性使得分布式账本技术在会计核算、财务管理等领域具有巨大的应用潜力。例如,分布式账本技术可以简化会计核算流程,提高财务会计信息传递的效率与安全性,有利于促进业财融合,降低财务管理费用和内审成本。此外,分布式账本技术的应用对企业外部的投资、筹资活动,对于企业内部的投资、营运资金管理以及财务管理风险的防范,呈现更高效、更可靠的作用。

尽管分布式账本技术具有诸多优势,但在大规模落地应用时仍面临一些挑战。系统性能是其大规模落地应用的一个主要瓶颈,账本性能优化成为产业界和学术界一个研究热点。此外,分布式账本技术尚未足够成熟,在应用中可能面临结算最终性风险、操作性风险和系统性风险等潜在风险。

分布式账本技术对传统会计和财务管理产生了深远的影响。它不仅传承了传统的记账哲学,又以其技术创新,具有独特优势。分布式账本技术的应用有助于提高支付清算效率、提升业务流程透明度、强化系统弹性及稳健性。同时,DLT与会计理论的循环过程将螺旋式向上发展,并趋于完善。三、集中式与分布式记账方式在财务审计中的效率和准确性比较

集中式记账方式通过将所有或大部分的会计活动集中在特定的中心进行,可以提高信息的一致性和可比性。这种方式有助于标准化会计行为,减少地方保护主义和腐败的可能性。此外,集中式记账还可以通过集中分析所有核算信息来降低资金管理成本,提高资金使用效率。然而,这种模式也可能导致会计人员的“知情权”减少,从而影响到会计信息的真实性。

相比之下,分布式记账方式则允许各个部门或单位独立进行会计处理,这增加了审计的复杂性。在分布式系统中,控制设计和测试的复杂性较高,需要审计人员具备相应的知识以应用适当的审计工具。尽管如此,分布式系统也提供了更多的民主参与和共同参与的机会,这可能使资金利用更有效。

从审计的角度来看,集中式记账方式可能更容易实施审计程序,因为所有的会计记录都集中在一起,便于审计人员进行审查和验证。然而,分布式记账方式虽然在控制设计和测试上更为复杂,但其灵活性和对地方需求的响应能力可能更高,这对于某些特定的审计环境可能是有利的。

集中式记账方式在提高信息一致性和降低管理成本方面具有优势,但在审计过程中可能面临信息真实性的挑战。而分布式记账方式虽然在审计上更为复杂,但提供了更高的灵活性和适应性。第四节

哈希算法

哈希算法是一种将任意大小的数据转换为固定大小数据块的加密技术。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。且这种转换是单向的,即从输出无法反推输入。哈希算法的主要特性包括:(1)确定性(对于相同的输入总是产生相同的输出)(2)抗碰撞性(不同的输入应产生不同的输出,且尽可能避免两个不同的输入产生相同的输出)(3)敏感性(对输入数据的微小改变都会导致输出结果的巨大变化)

在区块链技术中,哈希算法扮演着至关重要的角色。首先,它用于确保数据的完整性和安全性。每个区块都包含一个指向前一个区块的哈希值,这样就形成了一个链式结构,任何对区块内容的修改都会改变其哈希值,从而被网络中的其他节点检测到。其次,哈希算法还用于工作量证明(ProofofWork,PoW)机制中,这是比特币等数字货币网络中的一种共识算法。通过解决复杂的数学问题来生成新的哈希值,这个过程需要大量的计算资源,从而确保了网络的安全性和去中心化。此外,哈希算法还被用于创建数字签名和Merkle树,这些技术进一步增强了区块链数据的安全性和效率。

一致性哈希算法(ConsistentHashing)是另一种在区块链中应用的哈希算法变体,它主要用于解决分布式系统中的数据分配和负载均衡问题。通过使用一致性哈希,可以有效地减少节点添加或删除时对现有数据分布的影响,从而提高系统的稳定性和扩展性。

哈希算法在区块链技术中的应用广泛且关键,不仅保证了数据的安全性和完整性,还支持了区块链的核心功能,如去中心化、不可篡改性和高效的数据处理能力。第五节

区块链的加密方式

区块链中的加密方式,主要包括对称加密和非对称加密两种方法。对称加密是指使用相同的密钥进行加密和解密,速度快且适用于大数据量加密,但密钥管理较为复杂。非对称加密,是指使用一对公钥和私钥,安全性高,但速度较慢,更适合用于身份验证和数字签名。一、对称加密

在区块链技术中,对称加密算法扮演着至关重要的角色。其主要作用是确保数据传输的安全性和完整性,防止未授权访问和数据篡改。对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密具备以下四个作用:(1)数据安全。对称加密算法通过使用密钥将明文转换为密文,从而保护数据不被未授权的第三方访问。这种加密方法确保了即使数据在传输过程中被截获,没有密钥的攻击者也无法理解这些数据的含义。(2)完整性验证。除了加密功能外,一些对称加密算法还支持消息认证码(MAC)的生成,这有助于验证数据的完整性和来源的真实性。通过比较接收到的消息的消息认证码与发送方计算出的消息认证码,可以确保数据在传输过程中未被篡改。(3)效率提升。对称加密算法通常比非对称加密算法更高效,因为它们不需要处理公钥和私钥的复杂性。这使得它们特别适合于需要快速加密大量数据的应用场景,如文件加密、数据库加密等。(4)应用广泛。对称加密算法因其高效和灵活性,在许多领域得到广泛应用。例如,高级加密标准(AES)是一种广泛使用的对称加密算法,被多个国家或地区和组织采用作为标准。

然而,对称加密算法也存在一些局限性,如密钥管理问题。由于对称加密算法要求通信双方共享同一个密钥,因此如何安全地分发和管理这个密钥成为了一个挑战。此外,如果密钥泄露,所有使用该密钥加密的数据都会变得不安全。

总之,对称加密算法在区块链技术中发挥着核心作用,通过提供数据加密和完整性验证,帮助保护敏感信息免受未授权访问和篡改。尽管存在一些挑战,但通过不断的技术创新和改进,对称加密算法仍然是保障信息安全的重要工具。二、非对称加密算法

非对称加密是一种使用两个密钥的加密方法,即公钥和私钥。公钥是公开的,可以被任何人用来加密信息;而私钥是保密的,只有密钥的持有者可以用来解密信息。这种机制确保了即使公钥是公开的,信息的安全性也不会受到影响,因为没有私钥就无法解密信息。非对称加密的加密流程,分为以下三步。第一步,乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。第二步,得到该公钥的甲方使用该密钥(公钥)对机密信息进行加密后再发送给乙方。第三步,乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。在区块链技术中,非对称加密的应用主要体现在以下几个方面:(1)数字签名。每个区块链节点都有一个唯一的公钥和私钥对。当一个节点发送交易时,它会使用自己的私钥对交易数据进行签名。接收方可以使用发送方的公钥来验证签名的真实性,从而确认交易的发送者身份无误。(2)数据完整性。通过使用哈希算法和数字签名,区块链能够确保数据在传输和存储过程中的完整性和不可篡改性。任何对已签名数据的修改都会导致哈希值的变化,从而使得数字签名失效,表明数据已被篡改。(3)去中心化信任。在传统的中心化系统中,数据共享和交易往往依赖于可信的第三方机构。而在区块链中,通过非对称加密和分布式账本技术,各个节点之间可以直接进行安全的数据交换和交易,无需依赖中心化的信任机构。(4)隐私保护。虽然区块链提供了透明的交易记录,但通过非对称加密技术,如零知识证明等,可以在不暴露用户身份的前提下验证交易的有效性,从而保护用户的隐私。总之,非对称加密在区块链中的应用极大地增强了系统的安全性、可靠性和去中心化特性,是现代区块链技术不可或缺的核心技术之一。三、对称加密与非对称加密的比较对称加密与非对称加密的比较,主要涉及安全性、效率、密钥管理、应用场景和实现方式等方面。(1)安全性。对称加密算法(如AES)通常被认为在理论上是安全的,因为它们依赖于复杂的数学问题来保证加密的安全性。然而,由于对称加密需要一个秘密密钥,因此如果这个密钥被泄露,那么所有的通信都会受到威胁。非对称加密算法(如RSA)的安全性基于数学难题(如大整数分解),这使得即使公钥是公开的,没有私钥的情况下也很难破解。此外,非对称加密还可以用于数字签名,提供身份验证和数据完整性。(2)效率。对称加密在处理速度上通常优于非对称加密,因为它不需要复杂的计算。这对于需要快速加密大量数据的应用场景尤为重要。非对称加密由于其安全性的要求,计算过程相对更复杂,因此在处理速度上通常不如对称加密。(3)密钥管理。对称加密的一个主要缺点是密钥管理和分发。每个通信双方都需要单独的密钥,这在大规模网络中可能导致管理上的混乱和安全风险。非对称加密通过使用一对公钥和私钥解决了这一问题。公钥可以公开分享,而私钥必须保密。这样,即使公钥被泄露,没有对应的私钥也无法解密信息。(4)应用场景。对称加密适用于大多数数据加密需求,特别是在需要高速数据传输的场景中,如文件加密、数据库加密等。非对称加密则更适合于密钥交换和数字签名等场景,其中需要验证发送者身份和确保消息的完整性。(5)实现方式。对称加密算法的实现通常较为简单,易于在各种平台上实现。非对称加密算法虽然在理论上提供了更高的安全性,但其实现往往更为复杂,尤其是在硬件实现方面。总结来说,选择对称加密还是非对称加密取决于具体的应用需求、性能要求和安全级别。在许多情况下,两者结合使用可以达到最佳的安全性和效率平衡。四、对称与非对称加密的应用在具体应用中常常通过组合这两种加密机制,达到更好的加密效果。其具体加密过程以如下案例分析。假设A是发送方,B是接收方。第一步:A的计算机利用对称密钥加密算法加密明文消息PT,产生密文消息(CT)。这个操作使用的密钥K1称为一次性对称密钥,用完即放弃。第二步:A要取第1步的一次性对称密钥K1,用B的公钥K2加密K1。这个过程称为对称密钥的密钥包装(keywrapping)。第三步:A把密文消息CT和加密的对称密钥一起放在数字信封(digitalenvelope)中。第四步:这时A将数字信封(包含密文消息CT和用B的公钥包装的对称密钥K1用基础传输机制(网络)发送给B。这里假设数字信封包含上述两个项目。第五步:B接收并打开数字信封。B打开信封后,收到密文消息CT和用B的公钥包装的对称密钥K1。第六步:B可以用A所用的非对称密钥算法和自己的私钥K3解密逻辑箱,其中包含用B的公钥包装的对称密钥K1,这个过程的输出是对称密钥K1。第七步:最后,B用A所用的对称密钥算法和对称密钥K1解密密文消息CT,这个过程得到明文消息PT。这样就实现了更好的加密效果。以下是几种常见的非对称加密算法及其应用场景。(1)RSA算法。RSA算法是一种广泛使用的非对称加密算法,它的安全性基于大素数分解的困难性。RSA算法不仅可以用于数据加密,还可以用于数字签名和身份验证。由于其强大的安全性和灵活性,RSA算法被广泛应用于各种领域,如电子商务、电子邮件安全、数字版权管理等。(2)椭圆曲线密码体制(ECC).椭圆曲线密码体制是一种基于数学上的椭圆曲线理论的加密方法。与传统的大数因子分解相比,椭圆曲线密码体制在相同的安全级别下需要更短的密钥长度,因此在资源受限的环境中更为高效。椭圆曲线密码体制被广泛应用于无线传感器网络、移动通信、智能卡等领域。(3)SM2算法。SM2算法是一种基于椭圆曲线的国产非对称加密算法,由中国国家密码管理局发布。它主要用于数字签名和加密通信,具有较高的安全性和较强的抗量子计算攻击能力。SM2算法在中国的电子政务、金融支付等领域得到了广泛应用。(4)身份基加密(IBE)。身份基加密是一种特殊的公钥加密方案,它允许任何人的公钥都是其身份信息的函数,如电子邮件地址或用户名。这使得密钥分发变得非常简单,因为用户只需知道自己的身份信息即可。IBE适用于需要简化密钥管理的场景,如移动通信、即时消息传递等。(5)可搜索加密(SSE)。可搜索加密是一种允许用户在加密数据上执行搜索操作的加密方案。它保证了搜索查询的机密性,即使是在云存储环境中也能保护用户的隐私。可搜索加密适用于云计算、大数据分析等需要在加密状态下处理大量数据的场景。第六节

区块链的激励机制与共识机制激励机制是指通过奖励节点参与者来促进网络的维护和安全。共识机制则是指确保区块链网络中所有节点对交易数据达成一致的关键技术,两者共同保障了区块链的去中心化、安全性和稳定性。一、激励机制区块链技术的激励机制主要通过赋予参与者奖励来鼓励他们参与网络的维护和交易验证过程。这些激励可以是直接的经济奖励,也可以是其他形式的奖励,如提高在区块链上的声誉或访问权限等。激励机制的设计旨在解决“免费搭便车”问题,即没有动机去维护网络的安全和完整性,同时确保所有参与者都有足够的动力去遵守规则并贡献于网络的健康运行。在比特币运作系统中,大约平均每10分钟会产生一个区块,这个区块包含了这10分钟内全球的所有比特币交易,打包这个区块就相当于是给系统记账,记账的这个过程就是挖矿,用来记账的计算机叫矿机。比特币的挖矿奖励来自于两方面:新产生的比特币奖励和交易产生的手续费。最初,大约每10分钟就可以产生50个比特币的报酬,但是这个报酬每21万个区块减半,也就是大概每4年减半,由之前的50个变成了25个再变成12.5个,以此类推,大概在2140年左右,2100万枚比特币将会全部挖完。到时候挖矿不能获得新的比特币奖励,只能获得每个区块里的交易手续费。二、共识机制共识机制是区块链技术中用于解决分布式系统中的数据一致性问题的一种机制。它允许网络中的多个节点就某个特定的值达成一致,从而确保整个网络的数据一致性和不可篡改性。常见的共识机制包括工作量证明、权益证明和委托权益证明等。(一)工作量证明机制工作量证明机制(ProofofWork)是共识机制的一种,可简单理解为一份证明,证明你做过一定量的工作,即通过查看工作结果就能知道完成了指定量的工作,这种工作是可量化的。工作量证明机制施行按劳分配。工作量证明机制通过评估你的工作量来决定你获得记账权的机率,工作量越大,就越有可能获得此次记账机会。其具备以下优点:(1)去中心化。将记账权公平的分派到每一个节点。能够获得的币的数量,取决于挖矿贡献的有效工作,也就是说,用于挖矿的矿机的性能越好,所分配的收益就会越多,是根据工作证明来执行币的分配方式。(2)安全性高。破坏系统需要投入极大的成本,如果想作弊,要有压倒大多数人的算力(51%攻击)。因为作弊要付出一定成本,作弊者就会谨慎对待了。在比特币的工作量证明机制中,由于获得计算结果的概率趋近于所占算力比例,因此在不掌握51%以上算力的前提下,矿工欺诈的成本要显著高于诚实挖矿,甚至不可能完成欺诈。但同时该种共识机制也存在以下弊端。(1)挖矿造成大量的资源浪费。这种记账方式需要耗费大量的算力和计算机资源。以比特币为例,目前bitcoin已经吸引全球大部分的算力,这让依据算力公平分配奖励的机制,演变为了对矿机算力的大举投入,扭曲了中本聪的设计初衷。(2)共识达成的周期较长。区块的确认共识达成的周期较长(10分钟),现在每秒交易量上限是7笔,不适合商业应用。(二)权益证明机制权益证明机制(ProofofStake)也称股权证明机制,工作量证明机的一种升级共识机制,类似于把资产存在银行里,银行会通过用户持有数字资产的数量和时间给分配相应的收益;权益证明机制通过评估用户持有代币的数量和时长来决定获得记账权的机率。这就类似于股票的分红制度,持有股权相对多的人能够获得更多的分红。例如,采用权益证明机制的数字资产,系统根据用户的币龄来分配相应的权益,币龄是持币数量和时间的乘积。例如:持有100个币,总共持有了30天,那么,此时币龄就为3000。相较工作量证明机,权益证明机制存在以下三个优势。(1)在一定程度上缩短了共识达成的时间,因为不需要依靠算力碰撞答案了。(2)权益证明机制不会造成过多的电力浪费,因为权益证明机制不需要靠比拼算力挖矿.(3)防作弊。权益证明机制更难进行51%攻击。因为拥有51%币才能发起攻击,网络受到攻击却会造成自己利益受损,显然很不划算。同时该种共识机制依旧存在需要挖矿的弊端,本质上没有解决商业应用的痛点。(三)股份授权证明机制股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。运行机制有点像议会制度或人民代表大会制度。如果代表不能履行他们的职责,比如轮到他们记账时,则会被除名,网络会选出新的节点来取代他们。股份授权证明机制具有以下优点:1)秒级的共识验证:股份授权证明机制的每个客户端都有能力决定哪些节点可以被信任。相较工作量证明机制,股份授权证明机制大幅提高区块链处理数据的能力,甚至可以实现秒到账2)优势资源集中:类似于现在的比特币状态,算力集中到几个大型的矿场中,让这些大型的矿场形式自己的权利。3)合作而非竞争:工作量证明机制竞争的是算力,权益证明机制竞争的是我手里面的股权,而股份授权证明机制是选出带我行使权利的节点,更像是合作关系。股份授权证明机制具有以下局限性:1)去中心化程度低行驶权利和职责的是被出来的那几个节点,相当于权利集中在他们几个身上,就失去了其他节点发言的机会,相较于工作量证明机制和权益证明机制去中心化的程度降低了2)投票的积极性并不高绝大多数持股人(90%+)从未参与投票。这是因为投票需要时间、精力以及技能,而这恰恰是大多数投资者所缺乏的。概括来说,股份授权证明机制与权益证明机制原理相似,只是选了一些“人大代表”。与权益证明机制的主要区别在于节点选举若干代理人,由代理人验证和记账。第七节

区块链智能合约一、智能合约概述智能合约是一种无需中介、自我验证、自动执行合约条款的计算机交易协议。它们是部署在区块链上的可执行代码,具有强制执行性、防篡改性和可验证性等特点。智能合约利用协议和用户接口完成合约过程的所有步骤,允许用户在区块链上实现个性化的代码逻辑。这些合约以代码形式表现,可实现合同履行的自动化和不可逆。二、智能合约应用场景区块链技术中基于智能合约的应用案例广泛且多样,涵盖了金融服务、物联网、医疗应用、共享经济和人工智能集成等多个领域。以下是几个具体的应用案例:(1)金融服务。智能合约在金融服务领域的应用主要体现在自动化交易、支付系统和代币系统等方面。例如,基于以太坊的众筹智能合约系统可以实现众筹项目的自治化和可靠性,提高项目可信性和公信力。此外,结合区块链和智能合约技术设计的去中心化区块链代币系统,通过部署代币合约和资金管理合约,实现了基本的众筹功能和对发起者的监督与资金管理。(2)物联网。在物联网领域,智能合约与区块链的结合可以促进服务和资源的共享,创建设备间的服务市场,并允许以加密可验证的方式自动化多个现有工作流程。这种组合为多个行业带来了显著的变革,开辟了新的商业模式和分布式应用。(3)医疗应用。智能合约在医疗领域的应用包括但不限于患者数据的自动共享、药品供应链的追踪以及医疗保险的自动理赔等。这些应用利用智能合约的去中心化、自治化特点,提高了医疗服务的效率和安全性。(4)共享经济。共享汽车平台利用智能合约解决注册、交易上传和行为监督等复杂逻辑决策问题,同时提出了一种信誉度评估算法,有效抑制单个节点的恶意行为。这表明智能合约能够提高共享经济平台的透明度和信任度。(5)人工智能集成。虽然目前关于将AI或机器学习模型集成到基于区块链的智能合约中的研究还处于概念阶段,但已有研究提出了企业级实施AI启用智能合约的新方案,并讨论了其可行性。这表明未来智能合约可能会变得更加“智能”,能够执行更复杂的决策。三、智能合约的运行机制与基础架构智能合约的运行机制与基础架构涉及多个方面,包括编程语言、执行环境、安全与隐私保护技术以及与区块链平台的交互方式。(1)编程语言。智能合约的开发主要依赖于特定的编程语言,这些语言为开发者提供了编写智能合约的能力。以太坊是目前最流行的智能合约平台之一,它支持Solidity语言。Solidity是一种专门用于编写智能合约的高级编程语言,它允许开发者在以太坊上创建和部署智能合约。此外,还有其他一些区块链平台如HyperledgerFabric和EOSIO,它们各自也有支持的编程语言。(2)执行环境。智能合约的执行环境是其运行的基础,不同的区块链平台提供了不同的执行环境。以太坊使用的是Ethereum虚拟机,这是一个动态链接库,用于解释和执行智能合约代码。HyperledgerFabric和EOSIO则提供了自己的执行环境,分别支持链式和并行处理智能合约。(3)安全与隐私保护技术。智能合约的安全性和隐私性是其广泛应用的关键。为了提高智能合约的安全性,研究者们提出了多种安全防护措施,包括形式化验证、模糊测试、零知识证明和可信执行环境等。例如,Hawk系统通过使用零知识证明来保留交易隐私,同时确保合同方能够安全地与区块链交互。此外,CLOAK框架允许开发者以声明式方式指定隐私不变量,并自动生成运行时以强制执行隐私。(4)与区块链平台的交互方式。智能合约需要与区块链平台进行有效的交互才能实现其功能。这包括如何在区块链上部署智能合约、如何处理智能合约中的交易以及如何管理智能合约的状态等。以太坊提供了丰富的API和工具来支持智能合约的开发和部署。HyperledgerFabric和EOSIO也提供了相应的机制来支持智能合约的运行和管理。总之,智能合约的运行机制与基础架构是一个复杂的技术体系,涉及多种编程语言、执行环境、安全与隐私保护技术以及与区块链平台的交互方式。随着区块链技术的不断发展,智能合约的应用场景将更加广泛,其安全性、可扩展性和用户体验也将得到进一步的提升。第八节

基于区块链平台交易模拟的区块链搭建流程分析区块链在搭建的过程中至少包含以下流程:创建节点目录、生成节点nodeid、获取节点地址、统一节点conf配置、创建创始区块、运行节点、创建节点账号和验证节点间信息是否同步。一、创建节点目录节点是指一台电脑或其他设备与一个独立地址和具有传送或接收数据功能的网络连接。节点可以是工作站、客户、网络用户或个人计算机,还可以是服务器、打印机和其他网络连接设备。节点目录的创建分为节点的创建、主节点的设置和节点目录的拷贝。搭建区块链的第一步是创建节点目录,节点在区块链上的存在形式是以文件目录的形式存在的。必须先有节点,才能形成区块链。进入到实景演练模拟教学的环境中

在区块链当中有众多的节点存在,必须有一个主节点,来生成区块链,其他的节点就被称为从节点,从节点就会同步主节点的区块。真实的主节点的设置是通过Linux命令来执行和配置的。将节点1设置为主节点,主节点下有配置文件(配置的主节点就是在这里进行配置的)、数据文件(节点间的数据存放在这些文件中)、日志文件(操作结果保存的地方)和公链文件(安装包文件)四类文件,如下图所示。将这四类文件拷贝到其他节点下面。截止到这一步,创建节点目录完成

二、生成节点编号节点编号(nodeid),节点标识,是标识节点的唯一号。每个节点都必须有它自己唯一的节点号。生成节点编号的目的在于对我们上一步创建的节点做出唯一性的标识。每个节点在区块链上都是独一无二的,就需要用节点编号进行标识和区分。生成节点编号之前,必须先执行公链文件下的安装包,公链文件是一种可执行的文件。执行的操作,是用Linux命令来执行的,执行的命令是./xchain。执行这个命令之后,就会在数据文件下生成一个编号文件,这里面是存放节点编号的,如图所示。打开了编号文件查看节点的编号,可以看到编号在表现形式上就是一串字母和数字组合的字符串,如图所示。三、获取节点地址节点地址指的是节点在区块链上的账户地址,账户地址是接受别的节点转账、交易、数据的发送。和银行卡号是类似的概念。节点地址的生成,是搭建区块链的关键步骤。节点地址创建了,才能接受别的节点发过来的数据、交易等。由节点编号来生成私钥,这个节点编号就是上一步我们生成的节点编号,通过随机数发生器,将编号生成私钥。用随机数发生器将编号变成一个独立的私钥。私钥是唯一的,作为节点账户的钥匙存在,相当于银行卡的密码。生成私钥以后。随机数发生器是可以随机生成用户设定的随机数,可以是唯一的或者重复的。私钥生成之后,通过非对称加密技术,在私钥的基础上生成公钥,如图所示。

这样就形成了公私钥对,私钥是用户自己保存的,作为之后交易、转账时验证的钥匙。公钥是公开的,任何人都能看到自己的公钥,公钥用作对方发送交易时粘贴的标签。公钥生成之后,点击继续进入到下一步操作中,来看看演练环境中非对称加密算法都有哪些,如图所示。通过非对称加密算法,生成了公钥和私钥,接下来生成区块链地址,点击继续进入到地址生成的界面,如图所示。由此可见获取节点地址的任务涉及到私钥、公钥和区块链地址这三个重要概念。相互之间生成的路径是,由节点编号在随机数发生器的作用下生成私钥,私钥经非对称加密技术生成公钥,公钥和节点编号共同经过加密哈希算法,生成区块链地址。私钥和公钥是一对密钥对,相互存在,彼此对应。主要的作用是,私钥用作自己保存,之后解锁自己的账户和交易验证时使用。公钥是全网都知道的,作为信息的归属标识,也就是说交易信息贴上谁的公钥,这个信息就属于谁,必须用对应的私钥进行匹配才能解锁信息或者交易。另外,公私钥也是相互的,互为公私钥,意思是,保存的不公开的就是私钥,公开出去的就是公钥。区块链地址,是这一任务的核心重点。生成地址需要进过多次加密技术,目的是使地址更随机、更安全。区块链地址用于接受对方的转账、交易、数据的发送。地址的长度由哈希加密技术来决定的。在地址生成的过程中涉及到了很多非对称加密技术和哈希加密算法,非对称加密技术适用于生成公私钥对,哈希加密算法用于生成区块链地址。四、统一节点conf配置在节点目录下,选择配置文件,对节点进行修改。包括主副节点和端口号进行配置。

修改主副节点是为了保证区块链中存在唯一的主节点,进行主动生成块,其他的节点就是从节点,来同步区块。对端口号进行设置,防止节点间端口号一致,导致端口号冲突,不能形成区块链。打开该任务的实景演练进入到任务实训中,如图所示修改节点的配置是在节点目录下的配置文件中进行操作修改,点击配置文件进入到内部进行修改。进入到配置文件的内部,我们需要修改的是主节点与从节点,在配置文件进行设置来规定节点1是主节点,节点2等其他节点是从节点。就需要在第一栏“是否是主节点”中配置节点1为“是”,节点2为“否”,如图所示。

配置的另一项是端口号的设置,(端口包括物理端口和逻辑端口。物理端口是用于连接物理设备之间的接口,逻辑端口是逻辑上用于区分服务的端口。TCP/IP协议中的端口就是逻辑端口,通过不同的逻辑端口来区分不同的服务。一个IP地址的端口通过16bit进行编号,最多可以有65536个端口。端口是通过端口号来标记的,端口号只有整数,范围是从0到65535)。设置节点1的端口号为37101,节点2的端口号为37102。这里对主节点和端口号进行了进一步的设置,保证主节点唯一和端口号不能重复。主节点和端口号配置完成之后,所有的节点需要加入到P2P网络中,形成一个网络拓扑结构。这种结构属于区块链网络层,解决了各节点之间点对点传输的问题,使彼此之间的效率大大增加,如图所示。在现实中用点对点传输的企业有迅雷下载,迅雷下载采用的就是P2P的网络结构,这样才能使文件的下载速度大大提高。点击继续进入到下一步,选择共识机制的场景中,如图所示。主节点、端口号以及P2P网络都已经配置好,接下来进入到区块链的共识层也就是要配置共识机制,我们目前最常见的共识机制是POW、POS、DPOS三种共识机制。从这三个共识机制中选择POW,作为接下来的实训课程的共识机制,如图所示。五、创建创始区块区块链由多个相连的区块构成,每个区块记录了一段时间内网络中的交易情况,可以将区块视为账簿中的帐页。第一个被最早构建的区块称为创始块,拥有一个唯一的ID标识号。统一创始区块的配置内容包括:矿工地址、区块大小、区块产生时间间隔、系统奖励。使各节点包括主节点在内,保证创始区块中的配置和主链保持一致,这是为了能随主链产生区块链。保持各节点链的创世块配置一致。将各节点中的创世区块配置与主链保持统一(本次搭建链是以百度超级链为主链的搭建的测试链),这样各节点产生的链才会不断产生区块,形成区块链。首先,需要统一的是,所有节点的创始区块中的矿工地址也就是创世块的生产者地址要保持相同,同步百度超级链的主链。所谓的矿工地址,指的就是打包该区块的节点地址。因为在区块链上不同的节点分工是不一样的,有的节点只是为了用区块链进行交易,这部分节点被称为数据的产生者。还有一部分节点是负责区块链上数据的打包验证,将其他节点产生的数据打包到区块中,形成区块链。这类用户节点被称为矿工节点。本次搭建区块链是基于百度超级链搭建测试链,那么矿工地址也就是百度主链的矿工地址,我们只需把测试链的各节点的矿工地址统一成一个即可,如图所示。其次,需要统一的是区块的大小,每个节点中的创始块保证区块的大小保持一致。区块大小也是就是区块容量:是指限定在在每个区块存储的字节数,也就是确定了每个区块容纳的交易。比特币的区块大小是1M,意味着区块中的交易数据不能超过1M,超过这个容量多余的数据会进入到下一个区块中。再其次,需要统一的是区块产生的时间间隔,在规定的时间产生一个区块。无论区块中打包了多少交易数据,产生区块的时间,保持在规定的时间范围内。这个区块时间间隔不是确定的值,是在这个值的上下浮动,如图所示。最后,需要统一的是系统奖励。系统奖励作为矿工打包区块的奖励,是以虚拟代币的方式进行奖励给矿工。但是系统奖励对于公链来说是一个必须配置的元素,但对于联盟链或者私链来说系统奖励不是必须存在的,可以不用进行配置。因为联盟链和私链面对的是个别的用户,不需要激励机制就能保证数据被准确打包。我们接下来的实训课程,是按照公链的方式进行的

温馨提示

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

评论

0/150

提交评论