FISCOBCOS 关键概念

一、什么是区块链

区块链是比特币之后提出的一个概念。 在中本聪关于比特币的论文中,并没有直接介绍区块链的概念,而是用chain of block来描述一种数据结构。

区块链是指多个区块通过哈希连接成链状结构的数据组织方式。 区块链是一个综合性的技术领域,它采用多种技术的交叉组合,维护和管理区块链数据结构,形成不可篡改的分布式账本。

区块链技术是一种点对点的网络环境,通过透明可信的规则,构建不可伪造、难以篡改、可追溯的区块链数据结构,实现和管理可信数据的生成、访问和使用模式。 从技术架构上看,区块链是由分布式架构和分布式存储、区块链数据结构、点对点网络、共识算法、密码算法、博弈论、智能合约等信息技术组成的整体解决方案。

区块链技术和生态起源于比特币。 随着金融、司法、供应链、文化娱乐、社会管理、物联网等行业对这一技术领域的关注,希望将其技术价值应用到更广泛的分布协作中,区块链技术和产品模式也在不断进化。 FISCO BCOS区块链底层平台基于区块链技术,着重提升安全性、性能、易用性、易用性、隐私保护、合规监管等各方面的能力,与行业生态共同发展,体现了多方参与、智能协作、专业分工、价值共享。

1.1 账本

顾名思义,账本用于管理账户、交易记录等数据,支持分类记账、对账、结算等功能。 在多方合作中,多个参与者希望共同维护和共享一个及时、正确、安全的分布式账本,以消除信息不对称,提高运营效率,保障财务和业务安全。 区块链被普遍认为是构建“分布式共享账本”的核心技术。 通过链式区块数据结构、多方共识机制、智能合约、世界状态存储等一系列技术的共同作用,实现一个一致、可信、交易安全、不可篡改、可追溯的共享账本.

账本包含的基本内容包括区块、交易、账户、世界状态。

1.2 积木

块是按时间顺序构建的数据结构。 区块链的第一个区块称为“创世区块”,后续生成的区块都标有“高度”,每个区块的高度逐一递增,新区块会引入前一个区块的哈希信息,然后通过哈希算法和这个区块的数据生成一个唯一的数据指纹,从而形成环环相扣的区块链结构,称为“区块链”或区块链。 精巧的数据结构设计,使链上数据按发生时间保存,可追溯、可验证。 如果任何一个区块中的任何一个数据被修改,整个区块链的验证就会失败,篡改的成本就会很高。

区块的基本数据结构是区块头和区块体。 区块头包含了区块高度、哈希、区块生产者的签名、状态树根等一些基本信息,区块体包含了一批交易数据列表,这些列表已经关联了收据信息,根据交易的大小列表,整个块的大小会有所不同。 考虑到网络传播等因素,一般不会太大,在1M到几Mbytes之间。

1.3 交易

一笔交易可以看作是发送给区块链系统的一条请求数据,用于部署合约、调用合约接口、维护合约的生命周期、管理资产、进行价值交换等。 基础数据交易结构包括发送方、接收方、交易数据等,用户可以构造一个交易,用自己的私钥对交易进行签名,发送到链上(通过sendRawTransaction等接口),通过多个节点,执行相关的智能合约代码,生成交易指定的状态数据,然后将交易打包到区块中,与状态数据一起存储,交易被确认,被确认的交易被认为具有交易性和一致性。

随着交易的确认,会相应的生成一张交易收据(receipt),与交易一一对应,存储在区块中,用于保存交易执行过程中产生的一些信息,比如结果码,日志,消耗的gas量等。用户可以使用交易哈希来检查交易收据,以确定交易是否完成。

与“写操作”交易相对应的,还有一个“只读”的读取链上数据的调用方法。 节点收到请求后,会根据请求的参数获取状态信息并返回,不会将请求加入共识过程,不会导致链上数据的修改。

1.4 账户

在以账户模型设计的区块链系统中,账户一词代表了用户和智能合约的唯一存在。

在采用公私钥体系的区块链系统中,用户创建一对公私钥,通过哈希等算法转换后,得到一个唯一的地址串,代表用户的账户,用户使用私钥管理账户资产的关键。 用户账户不一定在链上有相应的存储空间,但是智能合约管理着用户在链上的数据,所以这种用户账户也将被称为“外部账户”。

对于智能合约来说,一个智能合约部署后,在链上会有一个唯一的地址,也称为合约账户,指向该合约的状态位、二进制代码、相关状态数据的索引。 智能合约运行过程中,会通过该地址加载二进制代码,根据状态数据索引访问世界状态存储中对应的数据,并根据状态数据索引将数据写入世界状态存储中操作结果,以及合约账户中的状态数据索引将被更新。 智能合约注销时,主要是更新合约账户中的合约状态位并使其失效,一般不会直接清除合约账户的实际数据。

1.5 世界状态

FISCO BCOS采用“账户模型”设计,即除了区块和交易的存储空间外,还会有存储智能合约结果的存储空间。 智能合约执行过程中产生的状态数据经共识机制确认,分布存储在各个节点上,数据全局一致、可验证、难以篡改,故称为“世界状态”。

状态存储空间的存在使得在区块链上保存各种丰富的数据成为可能,包括余额等用户账户信息、智能合约二进制代码、智能合约运行结果等相关数据。 智能合约在执行过程中,从状态存储中获取一些数据参与运算,为实现复杂的合约逻辑提供了基础。

在比特币中区块链的作用是_区块链与比特币 汪诘_区块链比特币关系

另一方面,维护状态数据需要大量的存储成本。 随着链的持续运行,状态数据将不断扩大。 例如,如果使用帕特里夏树这样复杂的数据结构,状态数据的容量会增加。 进一步扩展,根据不同场景的需要,可以对状态数据进行裁剪和优化,或者存储在分布式数据仓库中,以支持更大的状态数据容量。

1.6 共识机制

共识机制是区块链领域的核心概念。 没有共识,就没有区块链。 区块链作为一个分布式系统,可以由不同的节点进行计算,共同见证交易的执行过程,并确认最终的计算结果。 协调这些松散耦合、互不信任的参与者,达成信任关系,保证一致性和持续协作的过程,可以抽象为一个“共识”过程,所涉及的算法和策略统称为共识机制。

1.7 节点

安装了区块链系统所需的硬件和软件并加入区块链网络的计算机可以称为“节点”。 节点参与区块链系统的网络通信、逻辑运算和数据校验,对区块、交易、状态等数据进行校验和保存,为客户端提供交易处理和数据查询的接口。 节点的标识采用公私钥机制,生成一系列唯一的NodeID,保证其在网络中的唯一性。

根据参与计算的程度和数据存量,节点可分为共识节点和观察节点。 共识节点将参与整个共识过程,作为记账人打包区块,作为验证者验证区块,完成共识过程。 观察节点不参与共识,同步数据,验证并保存,可以作为数据服务器提供服务。

1.8 共识算法

共识算法需要解决的几个核心问题是:

选出在整个系统中具有记账权的角色,做为leader发起一次记账。
参与者采用不可否认和不能篡改的算法,进行多层面验证后,采纳Leader给出的记账。

复制

通过数据同步和分布式共识协作,保证所有参与者收到的结果一致无差错。

区块链领域常见的共识算法有公链常用的Proof of Work、Proof of Stake、Delegated Proof of Stake,以及联盟链常用的实用拜占庭容错共识。 PBFT(Practical Byzantine Fault Tolerance)、Raft等前沿共识算法通常将随机数生成器与上述共识算法有机结合,以改善安全性、能耗、性能和规模等问题。

FISCO BCOS共识模块采用插件化设计,可以支持多种共识算法,目前包括PBFT和Raft,未来将继续实现更大规模、更快速的共识算法。

1.9 智能合约

智能合约的概念最早由 Nick Szabo 于 1995 年提出,是指以数字形式定义的可以自动执行条款的合约。 数字形式意味着合同必须以计算机代码的形式执行,因为只要双方达成一致,智能合约所确立的权利和义务,将自动执行,结果不可否认。

FISCO BCOS利用智能合约不仅可以进行资产管理、规则定义和价值交换,还可以进行全局配置、运维治理、权限管理等。

1.10 智能合约生命周期

智能合约的生命周期包括设计、开发、测试、部署、运行、升级、销毁等几个步骤。

开发人员根据需求编写、编译和单元测试智能合约代码。 合约开发语言可以包括solidity、C++、java、go、javascript、rust等,语言的选择取决于平台虚拟机的选择。 合约通过测试后,通过部署命令发布到链上,经共识算法确认后合约生效,并被后续交易调用。

在比特币中区块链的作用是_区块链与比特币 汪诘_区块链比特币关系

当合约需要更新升级时,重复上述从开发到部署的步骤,发布新版本的合约。 新版本的合约将拥有新的地址和独立的存储空间,不会覆盖旧合约。 新版本合约可以通过旧合约数据接口访问旧版本合约中保存的数据,或者通过数据迁移将旧合约的数据迁移到新合约的存储中。 最佳实践是设计执行过程的“行为契约”和保存数据的“数据契约”,将数据和契约解耦。 当业务流程发生变化但业务数据本身没有变化时,新的行为契约可以直接访问原来的“数据契约”。

销毁旧合约并不意味着清除合约的所有数据,只是将其状态设置为“无效”,合约无法再被调用。

1.11 智能合约虚拟机

为了运行数字智能合约,区块链系统必须有一个编译器和一个可以编译、解析和执行计算机代码的执行器,统称为虚拟机系统。 合约写好后,用编译器编译,发送部署交易,将合约部署到区块链系统中。 部署交易共识通过后,系统会为合约分配一个唯一的地址,并保存合约的二进制代码。 当一个合约被另一个交易调用后,虚拟机执行器从合约存储中加载代码并执行,并输出执行结果。

在强调安全性、交易性和一致性的区块链系统中,虚拟机应具有沙箱的特性,屏蔽随机数、系统时间、外部文件系统、网络等可能造成不确定性的因素,并能抵御外来入侵恶意代码保证同一交易、同一合约在不同节点上执行所产生的结果是一致的,执行过程是安全的。

目前流行的虚拟机机制有EVM、受控Docker、WebAssembly等。FISCO BCOS的虚拟机模块采用模块化设计,已经支持EVM,受到社区的广泛欢迎,未来将支持更多的虚拟机。

图灵完备

图灵机和图灵完备性是计算机领域的经典概念。 它是数学家艾伦·马蒂森·图灵(Alan Mathison Turing,1912-1954)提出的一种抽象计算模型。 延伸到区块链领域,主要是指合约支持的判断。 、跳转、循环、递归等逻辑操作,支持整形、字符串、结构等多种数据类型的数据处理能力,甚至具备继承、派生、接口等一定的面向对象特性,从而支持复杂的业务逻辑和完整的合约执行,区别于只支持堆栈操作的简单脚本。

2014年以后出现的区块链大多支持图灵完备的智能合约,使得区块链系统更加可编程。 区块链的基本特性(如多方共识、不可篡改、可追溯等)、安全性等,具有一定业务逻辑的业务合约,如李嘉图合约(The Ricardian Contract),也可以使用智能合约来实现。

合约的执行还需要处理“停机问题”,即判断程序是否会在限定时间内解决输入的问题,结束执行并释放资源。 想象一下,一个合约部署在全网,当它被调用时,它会在每个节点上执行。 如果合约是死循环,则意味着整个系统的资源可能会耗尽。 因此,宕机问题的处理也是区块链领域图灵完备计算系统的一个重要关注点。

2、联盟链概念分析

业界通常将区块链的类型分为公有链、联盟链和私有链。 公链是指任何人都可以随时随地甚至匿名参与的链; 私有链是指由主体(如机构或自然人)拥有,私人管理和使用的链; 联盟链通常是指多方。 经过一定的约定,或者建立商业联盟后,多方共同建立的链,加入联盟链的成员需要进行验证,身份普遍已知。 因为准入机制,联盟链也俗称“权限链”。

由于联盟链从成立、加入、运营、交易等各个环节都有准入和身份管理,链上操作可由权限控制。 在共识方面在比特币中区块链的作用是,一般采用PBFT等基于多方多轮验证投票的共识机制,不采用POW。 挖矿的高能耗机制,网络规模相对可控,可以在交易延迟、交易一致性和确定性、并发量和容量等方面进行大幅优化。

联盟链在继承区块链技术优势的同时,更适用于对性能和容量要求高、强调监管合规的敏感业务场景,如金融、司法、大量与实体经济相关的业务。 联盟链的路线兼顾业务合规稳定和业务创新,也是国家和行业鼓励发展的方向。

2.1 性能性能指标

软件系统最常见的处理性能指标是TPS(Transaction Per Second),即系统每秒可以处理并确认的事务数。 TPS 越高,性能越高。 除了TPS,区块链领域的性能指标还包括确认延迟、网络规模等。

确认时延是指一笔交易在经过验证、计算、共识等一系列过程后被发送到区块链网络后,到被确认所需的时间。 比如比特币网络一个区块是10分钟,交易确认大概率需要6个区块,也就是一个小时。 如果采用PBFT算法,交易可以在秒级进行确认,一旦确认就是最终的,更适合金融等业务需求。

网络规模是指在保证一定 TPS 和确认延迟的前提下,有多少共识节点可以支持协同工作。 业内普遍认为,采用PBFT共识算法的系统节点规模在100个左右,再增加将导致TPS下降和确认延迟增加。 目前业界有通过随机数算法选择记账组的共识机制,可以改善这个问题。

性能优化

性能优化有两个方向,向上扩展(Scale up)和并行扩展(Scale out)。 Up-scaling是指在有限资源的基础上优化软硬件配置,大幅提升处理能力,例如使用更高效的算法和硬件加速等。 并行扩展是指系统架构具有良好的可扩展性,可以采用分片、分区的方式来承载不同的用户和业务流处理。 只要适当增加软硬件资源,就可以承载更多的请求。

性能指标与CPU、内存、存储规格、网络带宽等软件架构和硬件配置密切相关。 随着TPS的增加,存储容量的压力也会相应增加,需要综合考虑。

在比特币中区块链的作用是_区块链与比特币 汪诘_区块链比特币关系

2.2 安全

安全是一个很大的话题,尤其是在构建多方参与分布式网络的区块链系统时。 在系统层面,需要关注网络攻击、系统渗透、数据破坏和泄露等问题。 在业务层面,需要关注越权操作、逻辑错误、系统稳定性造成的资产损失、侵犯隐私等问题。

保障安全,要注意“木桶短板”。 需要一个全面的保护策略来提供多层次和全面的安全保护,满足高安全标准,并提供安全的最佳实践来协调所有参与者。 用户的安全级别保证了整个网络的安全。

准入机制

准入机制是指组织或个人在形成并加入链条之前,需要满足身份已知、资质可信、技术可靠等标准。 主体信息经多方共同审核后,启动联盟链的建立,然后进行审核。 主体节点加入网络,将可以发送交易的公钥和私钥分配给被审计人员。 接入完成后,机构、节点和人员的信息将被登记在链上或可靠的信息服务中,链上的所有行为都可以追溯到机构和人员。

访问控制

联盟链上的权限控制是指不同人员对各个敏感级别数据读写的控制。 细分可以列举如合约部署、合约内数据访问、区块数据同步、系统参数访问和修改、节点启动和停止等。对于不同的权限,可以根据业务需要增加更多的权限控制点。

权限分配给角色,可以遵循典型的基于角色的访问控制(Role-Based Access Control)设计。 一个参考设计是将角色分为运营管理者、事务运营者、应用开发者和运维管理者。 、调节器,每个角色还可以根据需要细分等级。 完整的模型可能非常庞大和复杂,可以根据场景的需要进行适当的设计,使业务安全可控。

隐私保护

基于区块链架构的业务场景,需要所有参与者输出和共享相关数据,进行联合计算和验证。 在复杂的业务环境中,组织希望其业务数据能够得到控制。 日益受到重视的个人数据 在隐私保护的形势下,个人对隐私保护的需求也与日俱增。 如何保护共享数据中涉及隐私的部分,避免在操作过程中泄露隐私是一个非常重要的问题。

隐私保护首先是一个管理问题。 要求在构建系统开展业务时把握“最低授权、明示同意”的原则,对数据采集、存储、应用、披露、删除、恢复等全生命周期进行管理,建立日常管理和应急管理系统在高敏感业务场景设置监管角色,引入第三方检测审计,事中事后全流程管控。

从技术上讲,可以通过数据脱敏、业务隔离或者系统物理隔离来控制数据分布的范围。 同时可以引入零知识证明、安全多方计算、环签名、群签名、盲签名等密码学方法。 数据受高强度加密保护。

物理隔离

这个概念主要用在隐私保护领域。 “物理隔离”是避免隐私数据泄露的彻底手段。 物理隔离是指只有共享数据的参与者在网络通信层相互通信,不参与共享数据的参与者不能在网络上相互通信。 ,甚至不交换一个字节的数据。

相对来说是逻辑隔离。 参与者可以接收到与自己无关的数据,但数据本身受到权限控制或加密保护,没有授权或密钥的参与者无法访问和修改。 但是,随着技术的发展,接收到的受权限控制的数据或加密后的数据,在数年后仍有可能被破解。

对于极其敏感的数据,可以采用“物理隔离”策略,从根本上杜绝被破解的可能性。 相应的成本是需要仔细识别数据的敏感级别,精心规划隔离策略,分配足够的硬件资源来承载不同的数据。

2.3 治理与监督 联盟链治理

联盟链治理涉及多方协调、激励机制、安全运行、监管审计等一系列问题,核心是明确各参与方的权责、工作流程,构建顺畅的开发和运维制度,保障业务合法合规,安全等问题可以事前预防,事后应急。 为了实现治理在比特币中区块链的作用是,需要制定相关规则,并确保所有参与者达成共识并执行。

一个典型的联盟链治理参考模型是所有参与者共同组成一个联盟链委员会,共同讨论和决策,根据场景的需要设置各种角色和分配任务,比如一些机构负责开发,一些机构参与在运营管理上,所有机构参与交易和运维,使用智能合约来执行管理规则和维护系统数据。 委员会和监管机构可以控制一定的管理权限,审查和设置业务、机构和人员,并在紧急情况下,根据事先约定的流程,通过共识智能合约规则,进行账户重置等应急操作、业务调整等。当系统需要升级时,委员会负责协调各方对系统进行更新。

在具有完备治理机制的联盟链上,各参与方按照规则进行点对点的点对点合作,包括资产交易和数据交换,大大提高运营效率,促进业务创新。 同时,合规性和安全性也得到提升。 安全。

快速部署

区块链与比特币 汪诘_区块链比特币关系_在比特币中区块链的作用是

搭建区块链系统的一般步骤包括:获取硬件资源包括服务器、网络、内存、硬盘存储等,环境配置包括选择指定操作系统、开放网络端口及相关策略、带宽规划、存储空间分配、等,获取Blockchain binary可以运行软件或从源代码编译,然后配置区块链系统,包括创建块配置、运行时参数配置、日志配置等,并进行多方互联配置,包括节点接入配置和端口发现,共识参与者列表等,客户端和开发者工具配置,包括console,SDK等。这个过程会包含很多细节,比如各种证书和公私钥的管理等等,还有环境错误、版本、配置容易出现问题,整个过程复杂、繁琐、重复 etitive,形成较高的使用门槛。

如何简化和加速上述步骤,使构建和上链的过程变得简单、快速、无差错、低成本,需要从以下几个方面考虑: 第一,标准化目标部署平台,安装操作系统和依赖软件提前。 列表、网络带宽和存储容量、网络策略等关键软硬件已准备就绪,版本和参数对齐,使平台可用和完整。 目前流行的云服务、docker等方式都可以帮助构建这样一个标准化的平台。

然后,从用户的角度出发,优化区块链软件的构建、配置和上链过程,提供快速构建和自动上链的工具,让用户不需要关注很多细节,在运行中即可几个简单的步骤启动一个开发、调试和上线运行的链。

FISCO BCOS非常重视用户的部署体验。 提供一键部署命令行,帮助开发者快速搭建开发调试环境,提供企业级建链工具。 等参数配置,管理相关证书,方便多企业协同工作。 快速部署优化后,用户搭建区块链的时间缩短至几分钟到半小时。

数据治理

区块链强调数据逐层验证,历史记录可追溯。 The common solution is that since the creation block, all data will be stored on all participating nodes (except light nodes), resulting in data expansion and capacity Nervous, especially in the scenario of carrying massive services. After a certain period of time, the general storage solution can no longer accommodate data, and the cost of massive storage is very high. Another perspective is security. The full amount of data is stored permanently, and historical data may be exposed. risk, so it needs to be designed in terms of data governance.

Data governance mainly consists of several strategies: tailoring and migration, parallel expansion, and distributed storage. How to choose needs to be combined with scene analysis.

For data with strong time characteristics, if the clearing and settlement cycle of a certain business is one week, then the data a week ago does not need to participate in online calculation and verification, and the old data can be migrated from the node to the big data storage to meet the data requirements. It can query and verifiable requirements and the requirements of business retention period, the data pressure on online nodes is greatly reduced, historical data is stored offline, and more stringent protection can be carried out in terms of security policies.

For businesses that continue to expand in scale, such as a sharp increase in the number of users or contract certificates, different users and contracts can be assigned to different logical partitions. Each logical partition has independent storage space and only carries a certain amount of data. When the upper limit of capacity is approached, more resources are allocated to accommodate new data. The partition design makes it easier to control resource allocation and cost management.

Combined with data cutting and migration and parallel expansion, data capacity costs and security levels are well controlled, making it easy to carry out massive-scale businesses.

Operation and maintenance monitoring

The blockchain system has high consistency in terms of construction and operation logic, and the software and hardware systems of different nodes are basically the same. Its standardized features bring convenience to operation and maintenance personnel, who can use common tools, operation and maintenance strategies and operation and maintenance processes to build, deploy, configure, and troubleshoot blockchain systems, thereby reducing operation and maintenance costs and improving efficiency.

The operations of the operation and maintenance personnel on the alliance chain will be controlled by the authority system. The operation and maintenance personnel have the authority to modify the system configuration, start and stop the process, view the operation log, and troubleshoot faults, etc., but they do not participate in business transactions, nor can they directly view high-level assets. Security and privacy level user data, transaction data.

During the operation of the system, various operating indicators can be monitored through the monitoring system, and the health of the system can be evaluated. When a fault occurs, an alarm notification is sent to facilitate the rapid response and processing of the operation and maintenance.

The monitoring dimension includes basic environment monitoring, such as CPU ratio, system memory ratio and growth, disk IO status, network connection number and traffic, etc.

Blockchain system monitoring includes such as block height, transaction volume, virtual machine calculation volume, consensus node block voting status, etc.

Interface monitoring includes such as interface call count, interface call time consumption, interface call success rate, etc.

The monitoring data can be output through the log or network interface, which is convenient for docking with the organization's existing monitoring system, and reuses the organization's monitoring capabilities and existing operation and maintenance processes. After receiving the alarm, the operation and maintenance personnel use the operation and maintenance tools provided by the alliance chain to view system information, modify configuration, start and stop processes, and handle faults, etc.

Regulatory audit

With the development of blockchain technology and the exploration of business forms, it is necessary to provide regulatory support functions on the blockchain technology platform to prevent the blockchain system from being separated from laws, regulations and industry rules and become money laundering, illegal financing or criminal transactions Carrier.

The audit function is mainly used to meet the audit internal control, responsibility identification, and event traceability requirements of the blockchain system. Effective technical means are required to cooperate with the industry standards to which the business belongs to conduct accurate audit management.

The supervisor can be connected to the blockchain system as a node, or interact with the blockchain system through the interface. The supervisor can synchronize all data for audit analysis and track the overall business process. If an exception is found, it can report to The blockchain issues instructions with supervisory authority to control businesses, participants, accounts, etc., and realize "penetrating supervision".

FISCO BCOS supports regulatory audit in terms of role and authority design, functional interface, and audit tools.