摘要
随着人们的生活逐渐富足,社会压力的不断增加,购房租房的需求也逐年增长。然而传统的房产交易系统存在着黑中介、假房源、成本高、政策推广缓慢等诸多问题,Web2.0搭建的房产交易系统显然不能很好的解决这些问题。随着Web3.0时代到来,区块链技术的引用已经逐渐成为时代项目开发的热潮,有了区块链技术作为系统底层,使系统更加智能。本文针对现有的房产交易平台现状,采用区块链技术开发,提出了以区块链技术为底层开发的房产交易系统。
本文在原有的房产交易系统的基础上引入区块链技术作为底层,使系统中的信息不可篡改,可解决合约纠纷、黑中介、房产信息xx等诸多问题。同时系统的房源信息基于区块链技术也做到了数据信息公开共享。系统的开发服务端使用的是Go语言搭建,底层逻辑使用Hyperledger Fabric来进行逻辑操作,网络节点中的交易或者更改数据的验证等操作需要区块链网络中所有节点来进行共同验证,可以有效的杜绝黑中介假信息等。使用Vue+Element技术来搭建前端界面使用Docker容器开发来使系统更容易部署与运维。运用区块链技术搭建房产交易系统,解决了传统房产交易系统的痛点。同时论文根据具体的实现,给出了系统的测试方案,并且对系统进行功能、性能、安全测试,最后对系统进行测试结果进行分析,证实系统能达到预期效果。
关键词:区块链;Hyperledger Fabric智能合约;房产交易系统
第1章绪论
1.1研究背景
随着数字化技术的驱动,社会步入“互联网+”时代。“互联网+”租房买房也早已风靡全旗十几年之久。全球各类租房买房交易平台更是如雨后春笋般地逐年出现在大众的视野中。但这些房产交易平台都和传统的房产交易平台一样,都是由第三方平台进行监管,客户的信任对象便是房产平台,一旦房产平台这一信任对象出现了差错,例如对真假房源的选择上对假房源判断错误,这样就会给客户带来了重大的损失。传统的房产交易系统一直存在着租赁双方权益的难以保障、用户隐私数据安全以及交易信息的可追溯性、及信息防篡改的能力薄弱等等问题。
我国租房或者房产交易市场已形成了很大的规模,需求量大。于是在门户性交易平台的基础上又诞生了专门的中介平台,比如链家。这类平台不仅需要线上一个很强大的交易系统,还需要很多的人力物力去投入交易工作之中,这样就造成了产生的交易成本较高,只能由有一定规模的中介以及房产大亨等用户入驻,入驻成本过高。
在私企平台抢占房产交易市场时,由XX带头管理的房产交易系统也陆续开始在南京、杭州、广州、深圳等地上线,由XX来监管的房产交易系统更加安全,但是政策推广满,平台建设缓慢,供不应求。
传统的房产交易系统,因为系统不够智能化、去信任化,存在着信任、安全以及高成本等问题,论文就目前传统房产交易系统的现状设计解决方案,以区块链技术为底层技术来开发房产交易系统,解决传统房产交易系统的难题。
1.2研究的目的和意义
基于区块链搭建的房产交易系统,可以有效的解决租赁或者买卖双方因权益而产生的争执问题。基于区块链技术搭建的房产交易系统在当代复杂的社会关系上,可使得平台用户数据的真实性、安全性以及可靠性得到保障。将区块链技术应用在房产交易系统中还能有效的避免平台产生虚假房产、虚假房东等情况。而且,随着互联网的发展,Web时代已逐渐由原来的Web2.0时代进入到更加智能的Web3.0时代。许多平台也将由原先的中心化进入到去中心化的平台,Web3.0时代是区块链技术在各个平台领域应用的体现,使数据更加智能化。
论文主要就区块链技术搭建新型的房产交易系统,主要完成:
(1)对房产交易这类市场前景的调查了解,对产生该类交易活动的原因了解。
(2)设计主要解决方案,从交易双方权限保护的零信任机制来采用区块链技术来实现,并了解区块链的技术背景以及区块链技术的使用。
(3)了解底层架构,设计前后端分离架构的平台体系,设计采用微服务的架构设计方案来搭建整个平台,使用容器技术来装载平台,并编写与设计智能合约。
(4)对区块链搭建的房产交易系统运行环境搭建的设计,使整个系统的部署成本降低,运维成本降低,增强系统运行的稳定性。
(5)总结本论文完成的各项工作,并说明研究时的不足以及设计的缺陷,并设计出接下来的研究计划。
1.3研究现状
区块链作为一个不可篡改的记账账本,能够允许区块链网络中的交易去中心化进行。随着Web3.0时代的到来,区块链技术相关的应用也大批量涌现,囊括了物联网、教育、金融等诸多领域。国内区块链技术发展至今技术体系较为成熟,研究区块链技术的学者和工程师也逐年增多。
设计房产交易系统,区块链技术的底层原理至关重要。蔡晓晴,邓尧等人(2021)[1]就区块链技术的原理及核心技术进行论述,“从区块链的第一个应用——比特币进行深度剖析,论述了如何利用区块链的去中心化、零信任机制的特性去构建一个价值互联的平台,利用抽象分层的方式深度剖析了区块链的核心:密码学、共识算法、网络,分析其原理,探讨其本质,并且介绍了区块链技术目前的应用场景以及技术展望。”韩璇,刘亚敏(2017)[2]在文中就区块链在各个节点中的验证进行论述,“区块链判断交易的核心便是采用共识算法,在交易网络中的各个节点对每一次发起的交易进行验算,只有达成共识认证才算是交易成功。”唐晓领(2017)[3]“发明了一种基于区块链技术的多方共享元数据的交易系统,该系统是区块链技术的成功应用,在网络中交易的元数据写入到区块链中,形成了分布式共享的交易账本,由区块链网络中的各个节点进行记账。”
面对区块链技术未来的发展,李董,魏进武(2016)[4]从区块链技术的分布式、去中心化特性进行分析,“在区块链技术特性的层面上引入了当下流行的超级账本技术的应用和未来在商业上的机遇。”杨德昌,赵肖余,徐梓潇等(2017)[5]“阐述了在我国发展的时代背景下,区块链技术也逐渐深入了能源行业,对区块链技术多方面的市场应用前景进行剖析,从能源的“三化”和“两结合”的核心上进行延伸,表明了在复杂的交易环境中,区块链技术可以去解决这一难题。”李惠玲,王婷,周海锐(2019)[6]“对区块链房产交易系统进行研究,使用区块链技术打造的零信任网络可以有效地防止了房东、买家、平台三分的信息xx、资料xx等状况,在区块链这个大账本中,合约上的信息由节点上所有的用户进行维护更新,防止房源等各类信息xx,防止诈骗等惨剧发送。”王新建(2019)[7]“针对房产交易系统数据量大、传输代价大、数据处理、可拓展性低和数据库读写性能进行分析,设计以区块链技术为核心的房产交易系统,解决此类问题。以及在房产交易市场上的应用。”杨海(2019)[8]“论述了房产交易系统的领域的信息共享功能在区块链领域的应用,比较了区块链打造房产交易系统与传统房产交易系统的区别,区块链的去中心化思想以及各个节点存储着数据信息更加提升了房产交易系统房源信息的共享性。”
牟伟、于磊、沈海员(2020)[9]在关于房屋监管签订电子合同上,提出“融合区块链、电子签名等技术实现房屋网签备案,不见面办理,运用区块链零信任机制保障房产交易安全性。”吴清梅(2019)[10]设计了区块链房产交易平台,提出“区块链去中心化,去信任,不可篡改的特点来设计交易平台,保障交易安全,保障资产数据安全。”基于以上内容论文将采用区块链技术,设计开发房产交易系统,解决房产交易系统的痛点难点,打造一个去中心化、零信任、智能化的房产交易平台。
1.4本章小节
综上所述,我国的房产交易市场前景广阔、需求量大,但是仍然存在信息的虚假性、交易的安全性、平台的成本以及平台开创的时间成本等问题。所以,在源头上解决信息真实性问题,平台的成本压缩以及平台时间上的可扩展性便成为了解决该类市场的主要解决方式。而零信任机制的区块链技术则可以很好地做到这一点。
第2章相关技术与理论介绍
论文设计的房产交易系统底层由区块链技术来设计实现,取代传统的完全由数据库来存储交易以及交易处理信息,打造一个去中心化,零信任化,可溯源,易维护的房产交易系统。
2.1区块链的基础知识
2008年11月一个化名叫中本聪的人发表了一篇《比特币:一种点对点的电子信息系统》的文章,他希望创建一种不需要任何信任而是基于密码学基础的支付系统。2009年1月,比特币交易系统正式运行,随着第一颗比特币的交易成功,便产生了第一个存储区块。比特币的诞生,是区块链技术的一个成功的体现,也使区块链技术进入大众视野,成为了人们口中的年度热词。随着IT技术的发展与推动,2021年是元宇宙元年,区块链技术更是推至谈论的高潮。
区块链技术起源于比特币创造,但却不是人们理解的区块链技术与虚拟货币划上等号。区块链技术从本质上来说是一种共享数据库,它存储的数据具有“不可伪造”、“全程留痕”、“公开透明”、“集体维护”、“可以追溯”等特性。区块链技术奠定了信任的基础,打造了一个零信任机制的技术体系。
区块链技术具有去中心化的特性,区块链技术不依赖任何机构、平台,没有中心管制。通过分布式计算和存储,来实现各个节点之间的信息传递、验证以及管理。
区块链技术的开放性也是区块链技术的一大特点,区块链技术除了各方交易的数据加密之外,其余的技术都是开源的。在整个区块链体系中,信息都是透明化的。区块链的独立性也使一大亮点。区块链的共识算法便成就了区块链的独立性。由多个节点自动进行信息比对认证,不需要经过第三方。区块链的不可篡改性使链上数据无法更改,使安全性能更好。区块链的匿名性在大数据时代,采取区块链技术也更好的保护了个人信息安全,防止泄露。
区块链的设计架构,包括数据层、网络层、共识层、激励层、合约层和应用层。数据层主要封装区块链技术的底层,封装了底层数据区块。以及对相关数据的基本算法。
网络层封装了分布式组网机制,数据传播与验证机制。共识层则封装了区块链交易的共识算法。激励层则是区块链技术引入的一种经济收益,在解出一个区块时都会产生奖励。合约层则是区块链程序开发的编程底层,在区块链应用开发时编写各种合约脚本,用来实现大量应用。
图2.1区块链原理图
2.2 Hyperledger Fabric框架介绍
Hyperledger Fabric是Linux基金会为了发展跨行业的区块链技术而启动的一个项目。Hyperledger的诞生是为了鼓励大多数开发者使用Hyperledger进行区块链开发。
Hyperledger Fabric和其他区块链技术一样,包含了账本,并且是使用智能合约通过所有参与者一起管理的系统。Hyperledger的设计理念与比特币等区块链产品存在着差异。Hyperledger的设计理念上并不是完全去中心化的区块链技术。Hyperledger Fabric中提供建立了channel功能,可以在区块链网络中新建一条新链。这么做的目的是若这个区块链网络中存在着竞争对手,而平台参与者不希望这些竞争对手参与交易信息,利用channel特性便可以将想要展示的信息给channel中的参与者展示。虽然Hyperledger Fabric不是完全的去中心化应用,但是在区块链+商业领域,显然比BTC、ETH平台等平台开发的DAPP更加适用,论文在设计系统中关于系统的开发上便使用了Hyperledger Fabric进行开发。
2.3 IPFS星际文件系统介绍
在区块链技术的应用上,系统文件存储上的应用必然是分布式存储系统。IPFS星际文件系统便是一种开放性、去中心化的、全新的“超文本传输协议”。
在Web2.0应用的开发中,开发者或者用户将应用产生的数据或者一些其他的个人资产存储的相关数据存储在以HTTP开头的中心化存储应用上。例如我们广为认知的阿里云、百度网盘、天翼网盘等。虽然这些中心化存储应用都是由大型互联网企业运行着,但是也存在着一定的风险,对数据的安全性没有大的保障。例如曾经出现过的金山网盘、360网盘,因为官方运营失利也关闭了官方通道。存储在中心化存储应用的服务器上,数据都是一个作为整体的存储,若是相关的平台存储数据的IDC中心发生了运维事故,那么这些数据都将丢失。在网络安全方面,因为数据是以一个整体来存储,黑客便可以通过平台漏洞来窃取、毁坏相关数据等中心化存储体系,还是存在着较多的安全隐患。
IPFS则可以避免这些。作为Web3.0时代全新的、去中心化的加密存储技术,将文件分成多个片段存储在各个网络节点中。若是用户想要下载或者查看文件,IPFS便抽取各个节点中的数据片段拼接成完整的数据文件。IPFS这样的去中心化分布式存储的是革新的一项技术,可以避开中心化存储带来的安全隐患,使数据存储与使用更加地安全,更加智能。
2.4密码学技术
区块链的底层技术,也是最核心的技术便是密码学的应用。论文第一章介绍了论文设计的区块链房产交易系统是一个零信任机制的系统。而要达到零信任,无人为操控等机制,密码学在该技术的使用中起到了核心作用。
密码学在区块链中的引用,Hash函数便是最基础也是最核心最广泛的技术。Hash函数可以通过用户输入任意大小的字符串转化为固定输出。具有碰撞阻力、谜题友好、隐蔽性三大特征。区块链的共识算法便是每一次交易都会在区块链网络中产生新的记账,而新的记账则会由区块网络中各个成员进行共同验证,区块中的各个成员认同交易结果,则交易成功,否侧交易失败。验证的原理便是区块链的Hash指针指向区块位置可以碰撞检测出区块,便可由此检验出区块是否发生篡改。密码学的应用使区块链技术更具有安全性,区块链系统中的数据具有防篡改性。
2.5容器技术
容器技术的应用在Web2.0时代便已经风靡全球。不论在开发或者是运维领域都起到了至关重要的作用。为敏捷开发、提高生产力起到了重要保障。常见的容器便是Docker与K8S这两种。论文采用的是Docker来进行系统的设计与开发。
容器技术类似于开发者常用的虚拟机,同样也是在系统中装载着一个子系统。不过和VMware这类虚拟机不同的是,VMware这类虚拟机会虚拟化硬件,比如创建虚拟磁盘、网卡等计算机硬件,而容器技术则是在物理硬件的基础上对子系统进行虚拟化。相对于VMware虚拟机,容器技术更加的轻量化,封装的系统镜像占用空间小,适合于开发人员在GitHub等代码仓库进行传输存储。
Docker容器作为论文设计的系统的选用技术有着一次搭建、一次开发、任意部署的特性。开发人员只需要在开发时将开发环境、开发代码封装到容器中打包成一个镜像上传至Docker仓库,其他用户或者运维人员只需要从仓库中pull相关镜像便可以直接开始使用和运维。无需重新搭建生产环境。Docker容器的使用,方便开发者协同开发,也大大降低了运维的成本。
2.6本章小节
本章论述了区块链房产交易系统设计所采用的技术原理和使用原因。区块链开发技术为论文对区块链构建的房产交易系统设计底层的技术架构。基于Docker容器技术和微服务架构思想,设计可扩展、可高效维护的房产交易平台,降低系统开发的复杂度,提高系统的工作效率以及系统的稳定性。
第3章系统的需求分析
3.1系统总体需求分析
系统的功能主要体现在房源安全、交易安全两大方面。基于区块链搭建的房产交易系统,对比传统的房产交易平台,实现了更加安全、更加智能的房产以及交易管理,为使用者提供了更加安全、高效、智能的房产交易系统。
3.1.1房源安全
目前传统的租房买房平台常常出现黑中介、虚假房产等现象,给消费者带来较大的经济损失。在房屋租赁购置严格的平台上,又需要投入大量的人力物力去解决该类问题。论文设计的房产交易系统人力与系统相结合,首先从入驻平台严格把控,从源头上杜绝虚假房源问题。在系统使用中,一些无良的业主可能会在使用中随意更改房源信息、更改交易信息,在传统的平台上,交易信息的确立可能会因为各种原因造成缺失或者用户无法进行查看,这给客户遇到租房纠纷时会投入大量的精力去处理,给客户带来不好的买卖体验。区块链房产交易系统就会杜绝该类事情发生,由业主确认到区块网络的销售信息,到用户交易后的交易合同、房屋归属都存储在区块上,用户不必担心产生合同纠纷等事故,用户也可以直接查看相关的交易信息。这类信息是不可篡改与不可逆向的,区块链房产交易系统从源头上解决了房产交易后期纠纷产生的隐患。
3.1.2交易安全
论文设计的区块链房产交易系统也着重体现在交易安全上。传统的房产平台交易信息一旦发生泄露或者发生黑客入侵,则交易信息造成混乱,交易归属权混乱以及合同篡改交易金额篡改等危害发生。一些入侵者往往通过一些越权访问漏洞或者一些SQL注入漏洞便可以进入到平台的管理员数据库进行一些交易安全上大的不法操作。而由区块链设计的交易系统则大大的解决了这一痛点。
区块链设计的房产交易系统则可以对每一笔交易进行所有节点共同认证,只有每一个网络节点认证通过则交易成功。认证产生的Hash指针的产生的密钥安全性高,若是黑客获取不仅不可篡改,并且黑客进行破解也需要非常强大的算力,这在目前的科技发展水平上是不可能会出现的。并且交易系统的每一笔交易信息就好似在账本上记账,所有的交易信息都有迹可循,很好地避免了各种交易纠纷。
区块链房产交易系统在设计系统的同时不仅考虑当方面的交易场景,论文在设计时还引入了一些人性化场景的思考,捐赠功能便是一个创新型的设计。
普通房产交易平台没有捐赠这一设计,若是业主为妻儿、父母购置或者租赁转让房子,则需要线下流程来解决,这样虽然解决问题,但是也无形中增加了很多成本。论文设计的区块链房产交易系统在捐赠这一功能板块便可以实现这一点。业主只需要将房产信息捐赠给受捐赠者,受捐赠者接受则可以完成这一捐赠流程。线上操作,大大的以简单的方式取代了复杂的操作流程,大大地提高了效率。
3.2系统功能性需求分析
论文设计的区块链房产交易系统是一个操作简单、可视化的操作平台。复杂的功能则封装好由底层逻辑来实现,用户无需关心区块链交易系统平台的交易操作流程,只需要在操作界面上进行操作即可。
论文设计的区块链房产交易系统操作简单,由四大部分组成,分别是管理、业主两种用户角色组成,两种用户角色分别对应房产信息、销售和捐赠功能板块。
图3.1组织功能模块
3.2.1管理员角色
区块链房产交易系统为了方便平台管理员管理,设计了业主板块。业主如需要入驻该平台,则由管理员对业主相关个人信息、相关房产租赁以及买卖信息进行审核。如果信息审核通过,则业主可以在平台入驻,业主入驻后的交易信息,则由区块链底层进行共识计算,交易合约保留在区块网络中,对于房产交易纠纷等问题的隐患发生保留解决方案。区块链打造的交易系统从房源审核入手,从源头杜绝黑中介、假房源等信息进入系统中,防止消费者权益在租赁与买卖房产中收到损害。
3.2.2业主角色
业主是论文设计的房产交易系统中重要的角色。业主经过管理员审核通过并入驻平台之后,业主便可以查看名下房产信息。对于要出售或者租赁的房产信息,业主可以选择发起销售。业主发起销售区块链上所有的网络节点,也就是所有的区块链网络中的用户便可以看到该房产相关的信息。平台会更新相关的销售列表供用户选择。这些信息全部存储在IPFS文件系统中,业主的个人信息、房产信息等数据也得到了相应的安全保障。
用户便是该房产交易系统中消费者一方。在系统种也判定为业主角色。对于其他业主发布的房源信息系统会生成一个销售列表,用户可在销售列表中查看房源,当查看心仪的房源信息用户可以与业主商讨并进行购买。用户购买之后便可以在平台上看到房屋的归属权会归属于用户。
3.2.3交易及捐赠功能
区块链房产交易系统中交易是最重要的实现环节。业主发起销售之后,用户根据销售列表选择相应的房源信息,进行购买。购买者购买后会进行扣款操作,并且等待业主确认首款。当业主确认首款后交易完成,系统会更新房屋所有者、房屋使用者。并且为了防止交易过程用户拖延交易给业主带来损失的状况,系统在交易过程设计着交易时间,一旦交易超时,则交易取消,系统会自动关闭交易。
系统里还包含捐赠功能。当户主对房产进行捐赠,房产拥有权归属于受赠者,受赠者金额不会发生改变。
3.3系统非功能性需求分析
区块链房产交易系统是一个稳定、安全且操作简单的房产交易系统。
论文设计的系统采取区块链技术进行设计。在功能性需求之外,非功能性需求的正常使用也非常重要。
(1)系统的安全性:在区块网络中,系统的数据则不会因为中心化设备的奔溃而导致整体系统的崩溃。区块链设计的房产交易系统由于底层是区块链技术,每增加一区块由区块链网络中共同节点进行共识分析,有效的避免了黑产攻击、用户数据泄露。
(2)系统的运维:在维护上,论文采用Docker容器来搭建,使用Docker技术系统的维护成本降低,系统可以做到一次开发,多端使用。
(3)系统的可扩展性:由于区块链技术的复杂性,加之房产交易系统由多种智能合约实现底层,论文将系统进行封装。
(4)系统页面需求:采用Vue+Element技术编写了前端界面,使使用者拥有了良好的视觉体验和清晰的界面设计。适配主流的操作思路,致力于给用户带来良好的用户体验。
3.4本章小节
本章着重介绍了房产交易系统的设计,对应传统房产交易系统产生的问题,论文给出了自己的设计思路来解决,从房源到交易中来保障双方权益、数据安全,从捐赠流程来解决问题的复杂度,缩短了解决问题的流程,在传统系统的基础上创新。
第4章区块链房产交易系统的设计与实现
4.1系统框架设计
一个好的软件或者系统平台设计离不开前期的架构图的设计,论文设计了一个区块链作为底层技术的房产交易系统,采用Go语言来编写智能合约,用Docker容器来实现集群部署,对应相关需求设计系统框架,使开发更加精确快捷。
图4.1区块链房产交易系统架构图
4.1.1系统模型设计
系统的模型设计分别设计了业主、管理员、所有人等角色。并对这些角色设计了相关模型的交互。系统的设计总体分为三大版面,管理员为用户业主创建房产,业主版面业主创建房产信息,所有人版面可查看业主信息。
设计好整体的功能交互,前端界面的设计则采用简约风格设计,使用Axure软件基于原有需求与交互设计平台原型图,明确系统需求与功能,设计好非、原型图界面是设计一个好的系统的关键。
图4.2系统设计原型图
4.1.2系统软件架构
系统的架构设计是对系统实现的技术功能的一个总的规划,设计采用TDD驱动开发的思想来进行更高效的开发,将系统分成多种功能模块,开发相关测试用例,最后进行整个系统的开发。
系统整体采用Hyperledger Fabric来搭建智能合约,智能合约的编写由Go Gin完成,而前端界面的渲染与UI使用的是Vue框架+ElementUI来实现。最后在部署与系统运维上,采用Docker容器技术来批量部署,在大型的区块网络中,采用Docker技术只需要进行一次开发,一次安装环境便可以随意部署,多个部署的Docker容器则可以作为集群管理,不仅降低了管理难度,也提高了系统的稳定性与安全性。
图4.3系统逻辑图
系统的开发代码总共有五个目录结构,分别为application、chaincode、deploy、vendor
图4.4系统代码目录结构
和Vue目录结构。application目录下为主要代码,主要由Go Gin+Fabric-Sdk-Go调用链码,提供外部访问接口,dist文件夹则存放着前端静态资源。Chaincode文件夹下存放着由Go编写的智能合约,也使论文设计系统的核心代码。区块链网络的配置开始与关闭重启脚本则存放于deploy目录下。系统在开发搭建时,为了防止网络下载失败,在开发时也保存了相关的数据依赖包存放于vendor文件夹下。最后的Vue则是存放前端界面的文件夹。在项目版本的更替上,前端代码的改进也做了相应的预案。只需要将改正的前端界面重新打包成dist资源包放置在application目录下。具体操作:
图4.5前端打包操作
有了代码文件目录,整体的区块链网络搭建则存放在Docker容器中,只需要运行相关指令便可以任意部署。论文设计的系统,运行在Centos或者Windows为底层的服务器上,以Docker容器作为底层操作系统与应用直接的媒介,应用运行在Docker容器中。以Go gin来调用Hyperledger Fabric链码,使用Go语言编写智能合约,平台逻辑,最后用Vue框架和ElementUI来实现前端的界面展示。系统运行在Ubuntu操作系统的服务器上,需要搭建好Fabric环境,系统代码放在$GOPATH/src/github.com/togettoyou/blockchain-real-estate下。
首先进入deploy目录下执行启动脚本
4.2智能合约的设计与实现
智能合约的设计采用先进行系统开发,然后再进行部署,因为在使用合约之前必须使用节点许可才能进入合约的部署环节。在使用合约之前,合约也必须受到相应的权限才能部署在区块链系统中。为了节约时间和方便二次开发,智能合约的编写由Go来编写。
在智能合约的设计中,核心便是交易过程角色、价格、合约创建时间、销售状态进行设计,首先先定义销售对象、发起销售人和买家、参与销售人和买家、价格、创建时间、智能合约有效期(单位为天)、销售状态。
图4.8智能合约相关变量定义
销售状态合约的设计逻辑主要为五种,分别定义销售中、已过期、交付中、完成五种状态类型。
图4.9状态合约设计
当房屋主人需要将房屋继承或者以奖励授予他人时,就需要设计捐赠合约转让房屋的归属权,捐赠合约的设计
图4.10捐赠合约设计
4.3系统的功能模块详细设计与实现
4.3.1管理员界面
管理员界面的设计主要面向系统的管理员设计。管理员为业主创建房产信息,创建好的房产信息会以JSON文件的格式传入IPFS中,在区块链网络中,管理员为业主创建的房产信息在业主的账户下,房产信息则自动更新在区块链网络中,更新在业主账户名下。
图4.11管理员界面
图4.12新增房产
4.3.2房产信息界面
房产信息界面主要包含业户的相关房产信息等。在管理员更新业主房产信息后,区块链房产交易系统将读取IPFS中的JSON信息并显示前端界面。
图4.13业主房产信息界面
图4.14管理员目录下所有信息
4.3.3销售及捐赠界面
业主的房产信息在更新到账户名下房产信息后,相关信息会在区块链网络中显示,区块链中各个网络节点的用户可以查看,并且和业主进行交易。为了保证安全性,顾客与业主的交易信息在区块链网络中发起验证,各个网络节点验证成功后,则交易成功,区块链网络自动记账。用户界面则将房产归属权自动更新。
捐赠功能中业主向其他业主捐赠房产,房产将转换为其他业主账户,并不扣除资金。
图4.15销售交易订单界面
图4.16捐赠界面
4.4区块链网络搭建
区块链技术的开发,搭建区块链网络是开发的重中之重。论文使用的是Hyperledger Fabric框架搭建的区块链网络。Hyperledger Fabric是联盟链区块链,相较于其他链,联盟链更适合房产交易系统这类的可管理类的系统。
论文采取Docker的方式搭建区块链网络,第一是Docker容器在Docker Hub上有一些搭建环境的镜像网络,可以直接通过Docker容器本地向Docker Hub拉取相关镜像,在环境的搭建上,很好的节省了环境搭建时间。第二,使用Docker可以在开发时将整体开发环境和运维环境部署在虚拟环境之中,可以做到一次搭建打包,永久部署。Hyperledger Fabric区块链网络搭建将交易群体放入链中,有多个参与者共同维护,且有多个中心控制,可以对真假房源信息、交易信息、合约等信息进行共识验算。在区块链网络搭建过程中,需要将G++编译环境、Node搭建好。然后在机器上安装Fabric源代码再执行脚本./bootstrap.sh来下载镜像和二进制文件。最后启动test-network来测试区块链网络,这时可以发现启动了一个orderer节点和两个peer节点。至此,区块链网络便搭建成功。
搭建完成区块链网络环境后,论文需要对Fabric SDK进行配置和引用。
图4.17 Fabric SDK配置和引用
在初始化SDK后,需要进行底层逻辑的编写,使区块链间进行交互。
图4.18底层逻辑代码
区块链整体逻辑编写完成后,便需要对区块链进行查询操作,才能做到系统对数据的更新显示等进行操作。
图4.19区块链查询
4.5 IPFS私有化集群搭建
IPFS是一个去中心化的安全的文件存储共享协议。使用IPFS进行数据信息的存储将不再以地址进行数据存储,而是以内容为主进行存储、检索。论文设计的区块链网络使用IPFS来存储相关的上架房产信息,实现系统信息的共享性和去中心化。
IPFS的搭建过程相对于传统的数据库配置更加方便。IPFS搭建只需要安装IPFS客户端,启动IPFS,再添加Dweb.page的Hash值便可以完成IPFS搭建。
4.6 Docker打包部署
Docker容器区别于虚拟机的完全虚拟化,Docker容器只需将应用虚拟化,而应用调用的资源还是物理硬件资源,无需再重新在硬件资源的基础上重新虚拟映射出新的硬件资源,Docker技术的应用不论是在开发的应用开发部署上,还是在运维上都大大地解放了生产力以及成本。
论文使用Docker来装载区块链网络搭建的房产交易系统的开发以及运维环境,使房产交易系统运行在容器之中。在大型的系统架构中,房产交易系统为了支撑大量的用户加入到区块链网络中,将Docker容器打包部署,多个Docker包组成集群来运行系统,在成本上,无需多台服务器来支撑也可以达到多容量、高并发等功能。
4.7本章小结
本章介绍了区块链构建的房产交易系统的设计思路以及开发技术路线,论文详细介绍了区块链房产交易系统的功能点以及用技术架构来设计、实现整个区块链房产交易系统的技术过程。
第5章系统测试
5.1测试环境
若想开发一个稳定上线、性能稳定的系统平台,进行软件测试是必要的。区块链系统测试与传统软件测试有很大不同,主要为是因为系统边界模糊。对于传统软件,在进行测试时都可以通过客户端或者UI界面进行测试。区块链本质上是一个去中心化的分布式网络,这个分布式网络可能会横跨多个子网、多个数据中心、多个运营商甚至多个国家等等。针对于区块链平台的测试,不仅仅是要测试前端API与某个节点之间的测试,还要从区块链网络中节点与节点间进行测试。
图5.1区块链应用测试
论文对系统功能的完整度进行测试,对照登录页面和操作逻辑进行点击测试,利用鼠标精灵模拟点击过程,自动化操作30次,采用Java代码实现鼠标自动化操作。功能测试30次,没有出现差错。
图5.2 Java测试脚本配置
5.2功能点测试
论文采用Java编写自动化脚本对登录、交易、捐赠等功能点进行自动化测试,对系统功能相关测试点进行测试并统计,并将测试结果输出表格。
表5.3捐赠功能测试
5.3性能测试
区块链平台在性能上经常出现的问题便是宕机问题。论文本次对平台测试便是对区块链搭建的房产交易系统进行负载均衡测试。主要是测试房产交易系统在正常运行环境且系统资源利用率正常的情况下TPS是否达到20000,响应环境在20000用户响应时间是否超出0.2s。
房产交易系统核心技术主要应用了区块链的形成机制,在多个节点上达成共识。通过随机合约、用户交付智能合约等在多节点上形成共识。本次测试主要采用单交易基准、单交易负载、混合交易负载测试。通过前端调用与Hash产生来编写相关脚本进行测试。
在测试中,可以发现在用户并发量在1600~2000时日志记录出现错误,TPS达到峰值。由此可见,该系统的TPS在1600~2000用户并发量左右。造成这个现象的原因便是在测试环境时,测试的环境使用的是物理机进行测试,无服务器也没有集群来进行测试,所以TPS数量没有达到目标数量。若是将系统虚拟化封装成容器,并且有多台机器进行部署工作,便可提升TPS值使其达到20000。
图5.3 TPS测试峰值
图5.4日志记录报错
5.4安全测试
在房产交易系统中最重要的一项测试便是安全性的测试,系统的安全性保证了客户使用系统交易时资金流的安全性。对于安全性测试上,主要从黑盒测试和白盒审计两个方向来进行。
论文在对房产交易系统前端的登陆页、上传点等进行非法字符注入、一句话木马上传等采用AWVS进行测试,发现均被过滤,证实系统没有注入漏洞以及、跨站脚本攻击和文件上传漏洞。AWVS扫描器扫描出低风险漏洞28个均为HTTP头传输导致系统判断为低风险,因系统搭建在本地,无需购买域名等原因,所以低风险漏洞判断可忽略,对系统未能造成影响。
图5.5漏扫报告
在对房产交易系统的源代码进行审计时,注意使用以及替换一些风险函数,诸如make、append、for等函数,可以减小安全事故的发生,提升系统的安全性。
5.5本章小节
论文本章主要对区块链搭建的房产交易系统进行负载均衡测试以及安全性测试。针对测试对象,设计测试方法,科学地测试真实数据,为系统的稳定运行做更全面的保障。
第6章总结与展望
随着科技不断发达,房产交易以及房屋租赁已经由线下转换为线上。目前的房产交易平台主要为三中,一是像58这类开放性平台,由于入驻门槛低,导致平台上有很多假房源、黑中介。二是链家这类中心化平台,由专业房产中介服务,杜绝了假房源黑中介这类事件,但是多门店、多人力导致平台组建的成本增高。三是由XX部门组建的房产交易平台,但是各地房产公私有水平不同,房产交易政策缓慢,导致政务平台为主的交易平台也难以铺展开。面对这些弊端,需要设计一个去中心化,零信任的房产交易体系。
6.1总结
基于目前的房产交易平台的弊端,本文提出以Hyperledger Fabric区块链技术为底层、Vue+Element技术搭建前端框架的区块链房产交易系统。在分析传统房产交易系统的假房产、黑中介、房产交易纠纷等不可信任问题以及一些房产产权归属等问题后确定了研究。本文依据房产交易流程模块进行设计,对应相关技术,设计用户界面、在房产建立、房产交易、产权归属、产权赠送等功能。
本文主要做了以下工作:
(1)分析目前房产交易系统现状,对整体系统作出功能设计,设计开发原型图,设计系统架构,结合现有房产交易系统的弊端,设计以区块链技术为底层搭建的房产交易系统,以区块链技术搭建的房产交易系统特有的零信任,智能化,去中心化等机制用于解决目前传统房产交易系统的痛点。
(2)设计区块链网络架构,通过Go+gin进行智能合约的编写,用Fabric搭建区块链网络,最后通过Vue来编写前端用户交互界面,通过前端Web页面和区块链网络进行交互,设计了三种用户角色,并实现了房产交易、房产资源转换、房产捐赠等功能。
(3)房产交易系统采用Go语言编写,具有良好的性能和更好的高并发的能力。区块链网络使用Fabric,Fabirc具有高度模块化的优点,可以更好地适应房产交易系统,并且没有Token,可以减少网络攻击的风险,保障平台的安全性。
(4)系统通过Docker容器进行开发管理节省开发环境部署时间,可扩展型地搭建大型的架构平台。并且在部署搭建完成后进行平台的TPS测试和安全性测试。相较于传统的房产平台,论文设计的房产交易平台运维成本低,二次开发成本低,可快速迭代。
6.2展望
本文研究的区块链房产交易系统目前达到了预期的效果,成功地实现了相关的功能,但是由于时间以及经验等相关原因有限,后续还有很多部分可以深入研究,主要包括:
(1)目前只是完成了房产交易系统的基础功能,后续还将深入研究,陆续开发优惠券、房产VR展示等操作。
(2)考虑到区块链的开发特性,目前大多数数据存储在Fabric链中,少部分存储在IPFS中,这样造成了Fabric链负载过大。对于企业来说,搭建自己的数据库存储一些敏感数据也是特别重要的,后续将考虑区块链、IPFS系统、数据库三方存储。
(3)本文论述的是小范围的房产交易系统,平台可容纳量有限,将来运行多个机器可将多个搭载系统的Docker容器做成集群,可以容纳更多的用户和应对更多高并发的业务。
参考文献
[1]蔡晓晴,邓尧,张亮等.区块链原理及其核心技术[J].计算机学报,2021,44(1):48.
[2]韩璇,刘亚敏.区块链技术中的共识机制研究[J].信息网络安全,2017(9):6.
[3]唐晓领.一种基于区块链的多方共享交易元数据的方法,装置及系统:中国,CN107180350B[P].2017-09-19.
[4]李董,魏进武.区块链技术原理、应用领域及挑战[J].电信科学,2016,32(12):6.
[5]杨德昌,赵肖余,徐梓潇,等.区块链在能源互联网中应用现状分析和前景展望[J].中国电机工程学报,2017,37(13):8.
[6]李惠玲,王婷,周海锐.基于区块链技术的房产信息共享平台研究[J].工程经济,2019,29(5):4.
[7]王新建.区块链技术在房产信息全国联网中的应用[J].中国房地产,2019(4):4.
[8]杨海.区块链在房地产交易信息共享方面的运用[J].仪器仪表标准化与计量,2019(6):4.
[9]牟伟,于磊,沈海员.区块链在房产交易监管中运用前景[J].中国房地产,2020(25):3.
[10]吴清梅.基于区块链的房产交易平台[J].数码世界,2019(10):1.
[11]袁勇,王飞跃.区块链技术发展现状与展望.自动化学报[J],2016,42(4)481-494.
[12]王新建.区块链技术在构建全国不动产登记系统中的应用[J].中国房地产,2020(6):5.
[13]邵奇峰,金澈清,张召,等.区块链技术:架构及进展[J].计算机学报,2018,41(05):969-988.
[14]叶小榕,邵晴,肖蓉.基于区块链、智能合约和物联网的供应链原型系统[J].科技导报,2017,35(23):8.
[15]Xiao B,Fan X,Gao S,et al.EdgeToll:A Blockchain-based Toll Collection System for Public Sharing of Heterogeneous Edges[J].IETBlockchain,2019.Oct,49(1):50.
致谢
本人的学位论文在我的指导老师的亲切关怀和悉心指导下完成的。她严肃的治学精神,严谨的指导深深地感染和激励了我。从课题地选择到设计到论文地完成,老师始终都是耐心教导和给予我不懈地支持。在此谨向老师致以崇高的敬意和诚挚的谢意。
在此,我还要感谢陪伴了我四年的大学同学和老师们,是你们的帮助和支持鼓舞了我用于面对困难不断拼搏,直至本文顺利完成。还要感谢我的父母对我的淳淳教导和女朋友在我完成论文期间辛苦的陪伴。
在论文完成之际,我的内心久久不能平静,从开始进入课题到论文完成,是老师、同学们、家人和伴侣给了我无言的帮助和鼓励,再次请接受我诚挚的谢意!谢谢你们!
1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。
2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。
原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/175387.html,