区块链中台详解(Fabric)

  • 区块链中台

2008年,一个名叫中本聪的作者发布了一份名为《比特币:一种点对点电子现金系统》的白皮书。这份白皮书描述了一种新型的数字货币,它的核心是一种去中心化的记账技术,即区块链。 比特币的诞生标志着区块链的开端。

工作原理:区块链由一系列称为"区块"的数据组成,这些区块按照时间顺序连接在一起,形成了一个不可篡改的链条。每个区块包含一些交易数据,类似于我们在传统账本上记录的交易。但不同的是,这些区块不存储在单一的中心服务器上,而是分布在全球范围内的许多计算机上,这些计算机被称为"节点"。

为了将交易添加到区块链上,需要进行一种被称为"共识机制"的过程,其中节点必须达成一致意见,验证和记录新的交易。一旦交易被添加到区块链上,它就不可更改,因此区块链具有高度的安全性和透明性。

区块链的去中心化,区块链的去中心化是它最重要的特点之一。与传统的银行或金融机构不同,没有一个中心机构来控制或管理区块链。这意味着任何人都可以参与区块链网络,查看交易记录,而不需要信任中介。这种去中心化使得交易更加安全,减少了欺诈的可能性。

总结一下,区块链是一个数字账本系统,由一系列连接的区块组成,每个区块包含交易数据。它的去中心化和安全性使得它成为一种革命性的技术,可能会改变金融、供应链管理、投票系统等各个领域。

区块链的工作方式相当复杂,但让我们尝试用简单的方式来解释。首先,区块链是去中心化的,意味着没有一个中心控制机构,每个人都可以参与并验证交易。 其次,区块链使用加密技术来保护数据的安全性,确保信息不被篡改。最后,区块链的共识机制使网络中的参与者可以就交易达成一致意见,从而确保交易的有效性。区块链采用分布式的存储架构,区块链的数据完整保存在区块链网络的所有节点上。形象的比喻就是,我把一份档案复印了无数份,保存到世界的不同地方。任何想要篡改记录的人,都必须修改每一个节点的记录,在节点足够多的情况下,这种篡改是无法实现的,这就是区块链防篡改的奥秘。

区块链是一个一个块链接而成的,后一个块是怎么生成的呢?要想把记录加入区块链上,就必须满足区块链规定的要求,找到符合标准的块,这一过程俗称为挖矿。因为挖矿的人很多,为了解决区块链同步以及伪造链攻击,必须增加挖矿难度,增加难度的方法叫做POW(Proof of Work,即工作量证明)算法,具体算法感兴趣的可以搜索一下。这一算法将一次简单运算,变成了数亿次的重复运算,大幅增加运算难度。

挖矿的过程是重复和运气,最先挖出此区块的矿工,将告知所有节点,并把此区块上链,矿工将得到奖励(即各种数字货币),所有的矿工重新开始计算下一个区块。由于显卡非常擅长重复简单运算,深受旷工喜爱,导致现在高端显卡的价格水涨船高。

当然,这里还要说明一点,POW算法甚至挖矿过程并不是必需的,POW算法是共识算法的一种,其他共识算法也可以用于区块链。

区块链不仅仅是一种技术,它还有许多潜在的应用领域。我们将研究区块链与数字货币(如比特币)的关系,以及它如何改变金融行业。 此外,区块链还可以用于改进供应链管理和加强身份验证安全性。

区块链有许多优势,如降低交易成本、提高透明度和减少欺诈。然而,它也面临一些挑战,包括能源消耗和可扩展性问题。 我们将深入探讨这些优势和挑战,并思考区块链的未来发展方向。

党的二十大报告提出,要"建设数字中国,加快发展数字经济,促进数字经济和实体经济深度融合,打造具有国际竞争力的数字产业集群"。区块链技术有助于促进数据共享、优化业务流程、降低运营成本、提升协同效率、建设可信体系,是支撑数字经济发展的战略性技术,对贯彻新发展理念、构建新发展格局、推动高质量发展具有重要作用。

2022年12月29日,主办的第六届可信区块链峰会开幕会上,中国信通院云计算与大数据研究所所长何宝宏发布《区块链白皮书(2022年)》。

从狭义的讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全性、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。

技术演进上,当前国际主流公有链节点规模在万级左右,去中心化程度较高,主要聚焦在扩展性、兼容性、能耗等方面进行技术优化。国外典型联盟链开源项目如Hyperledger Fabric、Corda等,技术积累相对成熟,代码迭代速率自2021年以来逐渐放缓。国内联盟链充分融合国外开源项目优势,架构、共识和性能持续优化。

技术创新上,国外以Web3.0为导向加速公有链技术创新,引领了智能合约、数字身份、隐私保护等多个领域的技术走向。联盟链以可信协作业务需求持续推动技术升级。

技术开源上,截止2022年9月,开源项目托管平台Github上的流行区块链项目(关注度大于300)数量达到761项,其中38%与加密货币相关。

联盟链技术聚焦业务场景需求不断优化,发展速度相对放缓。

以阿里区块链服务为例,块链服务(Blockchain as a Service,简称BaaS)是企业级区块链平台服务,支持Hyperledger Fabric、蚂蚁金服自研区块链技术、以及企业以太坊Quorum,构建更安全稳定的区块链环境,简化部署运维及开发流程,实现业务快速上链。

  1. 快速部署:提供一键式快速部署企业级区块链环境的能力,免去了复杂的配置,实现分钟级的开箱即用
  2. 联盟管理:用户可进行联盟创建、邀请和审批业务参与方组织加入联盟,以及管理业务通道
  3. 组织管理:轻松管理参与联盟业务的企业实体,并能管理组织内用户,打通业务应用访问区块链服务
  4. 链码管理:管理组织和业务通道上的智能合约(即链码),覆盖安装、实例化、升级等链码全生命周期
  5. 安全治理:提供CA证书服务、国密算法支持、SGX安全保护等能力,打造多维度的区块链安全体系
  6. 应用访问:提供标准的Fabric SDK和蚂蚁区块链SDK,内置连接信息和证书,加速开发
  7. 权限管理:提供了图形化的组织用户管理方式,支持RAM主子账号,满足企业级的管理与监控需求
  8. 监控服务:支持区块链浏览器,接入阿里云云监控,提供实时监控区块链状态和自动报警的功能
  1. 分布式账本

分布式账本是一种在网络成员之间共享、复制和同步的数据库。分布式账本记录网络参与者之间的交易,比如资产或数据的交换。这种共享账本消除了调解不同账本的时间和开支。手册中提到的账本均指的是分布式账本。

  1. 去中心去信任:多份数据分布保存在各个节点,没有中心化或第三机构负责控制数据。
  2. 集体维护数据一致:参与者以公钥作为身份标识,各节点独立校验数据合法性,各节点共识决定写入哪些数据。
  3. 数据可靠难以篡改:数据在区块中,各节点保存全部区块。可定制数据访问权限,块间的链式关联防止篡改数据。
  1. 智能合约

即链代码,是运行在区块链上的、特定条件下自动执行的代码逻辑,是用户利用区块链实现业务逻辑的重要途径。基于区块链特点,智能合约的运行结果是可信的,其结果是无法被伪造和篡改的。

  1. 过程无法作弊:满足条件自动触发,执行结果独立验证。
  2. 结果不能修改:数据保存在区块链。
  3. 合约内容可靠:智能合约内容保存在区块链中。
  4. 隐私保护:只有指定的参与方可以获取合约内容、数据。
  1. Fabric概念介绍
  1. 记账节点

维护账本的网络节点,一个或多个peer节点组成peer组织。

  1. 共识节点

区块链网络中参与交易的节点。

  1. 通道

通道可以将区块链网络中的账本数据进行隔离和保密,主要用于实现联盟链中业务的隔离,每个通道可视为一条子链,并且对应一套账本,同一个区块链网络,不同通道之间的账本数据不可见。

  1. 业务链

业务链可以将区块链网络中的账本数据进行隔离和保密,主要用于实现联盟链中业务的隔离,对应一套账本,同一个区块链网络,不同业务链之间的账本数据不可见。

  1. 分布式共识

系统中多数独立参与者对某个交易/操作的有效性达成一致。包括对双方交易的验证达成一致、对任何交易的其他合法性(比如业务逻辑合法性)的验证达成一致、对于合法数据是否写入现有账本达成一致。

  1. 哈希算法

一段数字内容的Hash值,可以用于验证数据的完整性。数字内容的微小修改都会引起Hash值的巨大变化。合格的Hash算法很容易由数字得到Hash值,却几乎不可能通过Hash值反算出原数字内容。

  1. 组织

在通道/业务链中一般包含有若干成员(组织),若两个区块链网络实体的身份证书能够追溯到同一个根CA,则认为这两个实体属于同一组织。

  1. 行业现状及痛点
  • 公司间信任问题

交易双方由于并非完全信任,在合同约定执行、交易过程中物权转移、资金转移存在信任问题。

  • 延迟财务结算

由于内部交易对账需要耗用大量的人力和时间,对账的差异很可能引起账务结账的延迟,报表出具延迟。

  • 效率低下和高成本

内部对账过程冗长,需大量财务人员工作和时间,而且对账结果并不理想,监管更不容易。

  • 数据无法共享

集团下各公司间财务数据分布于不同类型的ERP中,不同系统间没有集成,各系统间不互通。

  • 与监管方之间缺乏信任

跨国集团公司必须保留多年的记录(通常为10年或更长时间),并向外部审计师/当局证明数据来源和未被篡改。

  • 重复问题

公司间转移定价及复杂的交易业务问题可能造成税基侵蚀和利润转移(BEPS),存在报表重述的风险。

  1. 解决方案架构

基于区块链服务可以实现:

  • 统一化账本

提供不可篡改、可追溯的一致性业务交易记录,消除双方对账工作,满足审计追溯。

  • 数字资产化

对交易资产和权益的Token化,实现数字资产的生命周期管理。

  • 履行智能合约

实现自动化处理,保证了按照条款忠实执行的公正性。

  1. 区块链平台的应用案例

华为云区块链引擎以自主研发区块链内核为底座,结合可信硬件,具有高安全、高性能、高可扩展、强隐私保护等特点,满足企业级和金融级的可信和协同要求。

如何调用云区块链的API?

  1. 请求消息体通常以结构化格式发出,与请求消息头中Content-type对应,传递除请求消息头之外的内容。若请求消息体中参数支持中文,则中文字符必须为UTF-8编码。
  2. 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。
  3. 对于获取用户Token接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中username 为用户名,domainname 为用户所属的帐号名称,******** 为用户登录密码,cn-north-4为项目名称,获取方法请参考终端节点

POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens

Content-Type: application/json

{

"auth": {

"identity": {

"methods": [

"password"

],

"password": {

"user": {

"name": "username",

"password": "********",

"domain": {

"name": "domainname"

}

}

}

},

"scope": {

"project": {

"name": "cn-north-4"

}

}

}

}

到这里为止这个请求需要的内容就具备齐全了,您可以使用curlPostman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中"x-subject-token"就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。

  1. 认证鉴权

调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。

  • Token认证:通过Token认证通用请求。
  • AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。

Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。

Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。

{

"auth": {

"identity": {

"methods": [

"password"

],

"password": {

"user": {

"name": "username ",

"password": "******** ",

"domain": {

"name": "domainname "

}

}

}

},

"scope": {

"project": {

"name": "xxxxxxxx"

}

}

}

}

获取Token后,再调用其他接口时,您需要在请求消息头中添加"X-Auth-Token",其值即为Token。例如Token值为"ABCDEFJ....",则调用接口时将"X-Auth-Token: ABCDEFJ...."加到请求消息头即可,如下所示。

|-------------------------------------------------------------------------------------------------------------------------|
| POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... |

  1. AK/SK认证

AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。

  • AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。
  • SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。

使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参考

  1. 返回结果

请求发送以后,您会收到响应,包含状态码、响应消息头和消息体。

状态码是一组从1xx到5xx的数字代码,状态码表示了请求响应的状态,完整的状态码列表请参考状态码

对于获取用户Token接口,如果调用后返回状态码为"201",则表示请求成功。

响应消息头

对应请求消息头,响应同样也有消息头,如"Content-type"。

对于获取用户Token接口,返回如图1所示的消息头,其中"x-subject-token"就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。

响应消息体

响应消息体通常以结构化格式(如JSON或XML)返回,与响应消息头中Content-Type对应,传递除响应消息头之外的内容。

对于获取用户Token接口,返回如下消息体。为篇幅起见,这里只展示部分内容。

{

"token": {

"expires_at": "2019-02-13T06:52:13.855000Z",

"methods": [

"password"

],

"catalog": [

{

"endpoints": [

{

"region_id": "az-01",

......

  1. 供应链物流区块链的案例应用

目前公司之间发生业务往来后,双方公司分别在自己的业务系统中记录。一定期间不同类型双方往来,需由双方业务人员分别发起确认,共同认可确认成功后,自动记入各自的ERP系统中,这种方式虽然投入很大的物力财力却难以成功平账。物流信息的滞后也会到导致物流和结算经常出现不一致的现象,容易出现对账差异。

建立供应链物流区块链平台,采购方和供应商ERP系统均可接入,采购协议及账款支付由智能合约实现,将贸易流、物流、信息流及时上链,通过区块链的共享账本,交易情况、客户信息变更、物流执行情况,物流承运商的运输履约能力都可实时的在全链条各环节上反映出来,这样既保证了链上数据的真实性、协同性,也从此消除了双方对账工作,并可消除业务争端、提升相互间信任。

物流和交易信息保存在多方共识的区块链上,可保证业务真实可信,可以消除对账,确保账实一致,财务实时结算,业务透明可信,便于监管和追溯,可提升行业服务质量,促进行业健康发展。

  1. 行业现状及痛点
  • 纸质单据

很多环节仍然大量沿用手工操作和纸质单据,导致运单流转时间长、成本高、对账慢、易丢失和污损,文件成本占物流成本的1/5。

  • 效率低

供应链各协作方信息系统独立,没有统一的标准和信息系统,协作方之间协作和作用难度大。

  • 周期长

电子信息易被篡改,只能采用纸质单据作为结算的唯一凭据,上下游核算周期长,承运商的平均应收款账期较长。

  • 融资难

承运商大多为中小企业,缺乏信用记录,信用积累和数据,融资难,融资成本高。

  1. 方案架构

区块链供应链物流与现有参与方IT信息系统的结合,可实现:

  • 统一化账本。提供不可篡改、可追溯的一致性货物流转记录,满足审计要求。
  • 为参与方IT系统提供通用接口接入区块链服务,相关信息输入不可篡改,各自为自己的信用买单,逐步建立信任体系。
  • 通过司机APP附加地址围栏信息自动输入实现实时展示"由谁,在什么时间,在什么地方"处理货物。
  • 履行智能合约。实现自动签收和结算,自动运算输出绩效结果,公平公正。
  1. 优势分析
  • 安全可信

基于区块链技术,实现电子信用凭证从产生、分拆、流转至回收全流程信息存证,安全可回溯

  • 方便易操作

提供供应商(支持多级供应商)持有凭证期间在线进行融资申请、签约、收款操作

  • 融合已有账户体系

已对接银行(或三方支付)账户体系,提供远程账户开立及在线资金清分

  • 丰富的三方接口

已对接丰富三方数据与工具服务(如企业身份认证、电子签约、CA认证、短信等十余项)

相关推荐
The_Ticker2 小时前
CFD平台如何接入实时行情源
java·大数据·数据库·人工智能·算法·区块链·软件工程
程序猿阿伟2 小时前
《C++ 实现区块链:区块时间戳的存储与验证机制解析》
开发语言·c++·区块链
TechubNews2 小时前
Helius:从数据出发,衡量 Solana 的真实去中心化程度
去中心化·区块链
dingzd954 小时前
Web3的核心技术:区块链如何确保信息安全与共享
web3·去中心化·区块链
清 晨4 小时前
Web3与智能合约:区块链技术下的数字信任体系
web3·区块链·智能合约
CertiK5 小时前
Web3.0安全开发实践:Clarity最佳实践总结
web3·区块链·clarity
加密新世界5 小时前
Move on Sui入门 004-在sui链上发布Coin合约和Faucet Coin合约
区块链
YSGZJJ9 小时前
股指期货的套保策略如何精准选择和规避风险?
人工智能·区块链
web3探路者18 小时前
深入探索Solana链上的Meme生态:创新、潜力与挑战#区块链开发#dapp开发
web3·区块链·团队开发·dapp开发·区块链技术·链游开发·交易所开发
加密新世界1 天前
指南: 如何在 MEV 项目中使用 Yul
区块链