【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链
  1XOb0wgoa6fo 2023年11月02日 76 0


认识区块链
了解Hyperledger fabric
区块链在项目中的应用
好客租房项目中应用区块链

1、认识区块链

1.1、什么是区块链?
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息, 用于验证其信息的有效性(防伪)和生成下一个区块。
比特币白皮书英文原版 其实并未出现 blockchain 一词,而是使用的 chain of blocks。最早的比特币白皮书中文翻译版中,将 chain of blocks 翻译成了区块链。这是“区块链”这一中文词最早的出现时间。
国家互联网信息办公室2019年1月10日发布《区块链信息服务管理规定》,自2019年2月15日起施行。 简单的来说,可以把区块链认为是分布式的超级账本,用来记录账务数据。
1.2、货币的发展
实物货币
物品交换

金属货币

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据

金、银、铜等

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_02

纸币
由政府背书、印发的货币缺陷

电子货币

不便于携带不便于防伪不环保
制作成本高

支付宝、微信、银行卡等缺陷

数字货币

中心化安全问题交易的验证问题双花问题

以比特币为代表的货币。

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_03


1.3、什么是分布式账本

定义:

分布式账本(Distributed ledger)是一种在网络成员之间共享、复制和同步的数据库。分布式账本记录网络参与者之间的交易,比如资产或数据的交换。这种共享账本降低了因调解不同账本所产生的时间和开支成本。

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_04

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_05

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_06

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_07


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_08

中心化账本:

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_09

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_10


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_11

1.4、中心化和去中心化

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_12

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_13

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_14


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_15


去中心化交易:

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_16

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_17


1.5、什么是比特币?

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_18


比特币就是一个去中心化的、分布式记账的虚拟货币。

比特币不是一种货币, 他是一个分布式的总账系统, 电子总账在每个参与者电脑上备份, 实时的同步和对账. 总账记录这一定数量的比特币从一个参与者到另外一个参与者的过程, 每次记录都会广播到网络.

比特币本身没有价值. 比特币的价值在于, 第一个通过去中心化的分布式信任系统实现了价值转移.
1.6、区块链的演化
区块链1.0 比特币(公有链)

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_19


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_20

区块链2.0 以太坊(智能合约,公有链)

区块链3.0 hyperledger(私有链)

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_21

区块链关键技术
抗抵赖与隐私保护(密码学,hash,数字签名…) 分布式共识(pow,pos,dpos,poe)
POW:Proof of Work,工作证明。
比特币在Block的生成过程中使用了POW机制,一个符合要求的Block Hash由N个前导零构成,零的个数取决于网络的难度值。要得到合理的Block Hash需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。当某个节点提供出一个合理的Block Hash值,说明该节点确实经过了大量的尝试计算,当然,并不能得出计算次数的绝对值,因为寻找合理hash是一个概率事件。当节点拥有占全网 n%的算力时,该节点即有n/100的概率找到Block Hash。
POS:Proof of Stake,股权证明。
POS:也称股权证明,类似于财产储存在银行,这种模式会根据你持有数字货币的量和时间,分配给你相应的利息。简单来说,就是一个根据你持有货币的量和时间,给你发利息的一个制度,在股权证 明POS模式下,有一个名词叫币龄,每个币每天产生1币龄,比如你持有100个币,总共持有了30
天,那么,此时你的币龄就为3000,这个时候,如果你发现了一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.05个币的利息(假定利息可理解为年利率5%),那么在这个案例中,利息= 3000 * 5% / 365 = 0.41个币,这下就很有意思了,持币有利息。
DPOS:Delegated Proof of Stake,委任权益证明
比特股的DPoS机制,中文名叫做股份授权证明机制(又称受托人机制),它的原理是让每一个持有 比特股的人进行投票,由此产生101位代表, 我们可以将其理解为101个超级节点或者矿池,而这101 个超级节点彼此的权利是完全相等的。从某种角度来看,DPOS有点像是议会制度或人民代表大会制 度。如果代表不能履行他们的职责(当轮到他们时,没能生成区块),他们会被除名,网络会选出新 的超级节点来取代他们。DPOS的出现最主要还是因为矿机的产生,大量的算力在不了解也不关心比 特币的人身上,类似演唱会的黄牛,大量囤票而丝毫不关心演唱会的内容。
POE: Proof of elapsed time ,消逝时间证明
Intel 公司芯片级别的共识协议, 耗电量少
交易性能
比特币:7笔/秒
10分钟产生一个区块原始区块大小为1MB

理论上一秒产生7笔交易,实际还有低以太坊:15笔/秒
VISA / hyperledger 百万笔/分钟

认识误区
区块链不是比特币区块链不是数据库
区块链并不是一个颠覆万能的技术
1.7、区块链应用场景
金融服务
银行业证券交易众筹
征信权属管理
征信管理权属管理
音乐版权保护资源共享
共享单车
社会能源共享电商平台
大数据共享
减少共享的风险贸易管理
跨境贸易物流供应链一带一路
物联网
IBM
Fiament
NeuroMesh(物联网疫苗)
公共网络服务其他应用场景
云存储医疗
通讯软件电子游戏投票
……

以下项目是区块链项目吗?

区块链名酒防伪
每瓶酒都在区块链上唯一记录区块链验证酒的真伪
酒的真伪的彻底革命! 区块链电影票
每张电影票唯一记录
电影票都验证入场计入区块链票务行业的彻底革命!
众筹
手机众筹项目
投票
投票项目
区块链汽车保险
去中心化保险公司完全公平投保体系人人为我,我为人人保险赔付,智能合约
1.8、区块链的一些疑问
区块链用于溯源,如果供应链上的参与方自己造假,在中途将实物替换掉,区块链宣称的不可更改不就无效了 吗?
区块链的挖矿浪费大量能源,是低效的机制。
区块链是一场去中心化的革命,所以其必然颠覆当前的中心化机构!所以其必然受到中心化机构狙击而失败!
1.9、现状

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_22


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_23


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_24

现状:
可能95%的区块链场景并不成立区块链底层技术还很不成熟
我们对价值互联网的认知还很肤浅市场的情绪游走在狂热和绝望之间
基于区块链的新型生产关系必将重构商业生态创新无捷径,唯有多尝试

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_25

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_26

2、Hyperledger fabric

2.1、简介

Hyperledger Fabric,是一个基于模块化架构的分布式账本解决方案平台,它是由 IBM 带头发起的一个联盟链项

目,于 15 年底移交给 Linux 基金会,成为开源项目。Hyperledger 基金会的成员有很多大牌,诸如 IBM,Intel,思科等。基金会里孵化了很多区块链项目,Fabric 是其中最出名的一个,一般我们说超级账本(Hyperledger)基本上指的都是 Fabric。

官网:https://www.hyperledger.org/

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_27


Hyperledger fabric 不是货币技术,是区块链技术。所以fabric没有挖矿的概念,绿色环保。

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_28


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_29


2.2、数据完整与数据安全

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_30

分布式的账本存储
每一个节点都保存了完整的数据,从而实现了数据不可被篡改
区块链中的数据不能被删除,只能添加和修改,变化后的数据状态为World State(世界状态)

2.3、如何解决现实问题

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_31

A公司与B公司要进行资产交换,数据都存储在自己的服务器

由于A公司和B公司互不信任,所以两公司之间要进行对账,实际上往往账目是对不上的

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_32


传统解决方案:

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_33


通过引入第三方中央机构解决,实际上这种方式也是存在问题的: 成本高

三方机构的安全问题

通过Hyperledger fabric解决:

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_34


将各个机构形成环状,每个结构都有自己的账本,数据都一致

fabric保证数据的同步

如果有A机构做了数据篡改,其他机构就会发现A机构的数据发生了错误实际上,fabric解决就是信任问题

2.4、案例分析

项目:江苏省农牧厅区块链渔政管理系统

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_35


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_36


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_37

2.4.1、渔业供应链参与人

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_38

2.4.2、channel

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_39

如果,王大壮与餐馆A和餐馆B的交易放在同一个channel的话,那么价格的隐私数据得不到保障。在Hyperledger fabric中,channel可以理解为是独立的实例。参与者称之为peer。

2.5、chaincode
Chaincode就是智能合约。是读取、修改数据的唯一途径。
Chaincode属于某个channel,channel中的peer都需要安装该Chaincode,否则会导致数据不一致。Chaincode的生命周期为:
安装 install 实例化 init 调用 invoke
2.6、工作流程

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_40

SDK是为客户端提供操作的API,和实现语言无关。peer
peer0、peer1、peer2在同一个channel中
多个peer必须有相同的MSP(Membership Service Provider)才能进行通信。
提案
客户端通过SDK发起提案,如:我需要修改某一条数据了。
各个peer接收到提案后,进行模拟执行,会产生读写集,内部采用version的机制来记录修改前后的状态。
背书
各个peer将模拟执行后的结果以及签名,发送给SDK
更新申请
SDK收集到一定数量的背书后,将发送正式的更新申请给orderer orderer
对请求的内容以及签名做校验
如果校验完成,没有问题的话,就会发送真正的调用更新给各个peer,各个peer才真正的执行更新。如果不合法的请求,也会保存到block chain,方便后续的审查。
排序解决双花问题
并行的问题转化成串行执行
2.7、术语回顾

channel
数据通道,可以理解成独立的hyperledger fabic的实例不同channel的数据彼此完全隔离
channel可以保证区块链上的数据隐私问题channel类似微信群聊
chaincode
链码
智能合约
chaincode定义了business logic
Ledger的变化只能通过调用chaincode来完成
ledger
账本
ledger记录的是当前的世界状态(world state) ledger链式的记录了所有的历史世界状态
在hyperledger中,ledger是一个具有授权管理的共享账本系统从底层设计上保证了数据的一致性,有效性,不可篡改性
network
由peer组成的network
在同一个network中的peer,实时同步记账,保证ledger数据的一致性
ordering service
排序服务
排序,验证transaction,最终提交invocation,把数据写入peer的ledger。
world state
世界状态
当前ledger中存放的数据
key和value,以version的形式存在当前的实现有couchdb和leveldb

MSP

Membership Service Provider
管理peer的身份和访问许可
具有相同MSP的peer才能通信。

3、项目中的应用

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_41


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_42

3.1、生产者业务说明

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_43

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_44


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_45


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_46

3.2、消费者业务说明

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_47


痛点的本质就是信任问题: 餐馆不信任王大壮

监管部门不信任餐馆

监管部门不信任王大壮王大壮的隐私问题

3.3、隐私业务说明

价格是非常隐私和敏感的数据。

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_48

3.4、渔政监管需求说明

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_49


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_50


3.5、流程说明

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_51


【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_数据_52


4、好客租房项目中应用区块链4.1、场景分析

近年来,租房这个相对偏传统的行业,在快速发展中已经成为不少大城的“痛”,虚假房源泛滥、黑中介横行、租客 和房东之间缺乏信任、行业交易效率低下等问题一直存在。

用户诉求: 构建一个更加可靠的互联网租房系统,从根本上解决价值交换与转移中存在的欺诈和寻租等现象。租房者和出租人 信息不对称等问题。

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_53

4.2、项目分析
系统会部分代替中介工作,通过房管局节点校验房屋信息,通过公安局节点验证个人信息,通过征信中心验证 个人信用。
当租房时,租户能够了解到房屋的一些信息,比如:是否是可租赁房屋,是否是房东直租,房屋是否存在抵押 情况等。
房东可以通过平台了解到租户的个人信息,是否有违法记录,个人征信信息是否良好等。
当出现合租时,房东和现有租户,都可以了解到新租户的个人信息,同时新租户也可以了解到对等的信息。 个人认证信息、房产信息、征信信息都会分布在不同的节点上,现阶段由各个部门单独管理,我们在需要认证 时发送认证请求即可。
租赁合同、租金、违约金等不可篡改数据会上链。各个节点均可记录这些信息。

【ReactJs+springBoot项目——租房】第16章:认识区块+ 了解Hyperledger fabric+ 区块链在项目中的应用+ 好客租房项目中应用区块链_区块链_54

说明:
1.房屋认证信息会发送到相关的政府部门节点,通过查询区块链上的数据得到房屋的认证信息结果。回复内容包 括两项认证结果:房产证与身份证的匹配结果和是否可以出租。为了能够测试通过,我们当前仅仅返回测试结 果。
2.房管局的管理员通过SDK将房管局的数据上传到区块中(CSV),通过共识后,新的区块由orderer服务节点产 生。
4.3、合同与租金管理
4.3.1、合同上链
在终端生成的合同图片信息,为防止篡改,可以将图片进行摘要处理,然后将图片的摘要信息记录到区块链上,当 需要取证时,只需要检验合同图片的摘要信息与区块中记录的信息是否相同即可。 数据存储:
每一个订单都会对应一份合同,当租户和房东签名的操作完成后会生成一张合同的图片,我们会将图片做摘要 处理,然后将订单编号与合同图片的摘要信息组成一个键值对存储在区块链中。
合同的原始图片信息可以存储在独立的服务器上,也可以放到第三方的云平台上,比如:华为云的对象存储服 务OBS。
4.3.2、交易数据上链

在支付完成后,应用会将交易的记录信息写入区块。记录信息包括:订单、分期、交易双方、交易金额、是否逾 期、交易类型(租金、押金)、备注。记录信息结构: key:订单+":"+分期 value:交易双方+":"+交易金额+":"+是否逾期+":"+交易类型(租金、押金)+":"+备注

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
1XOb0wgoa6fo