摘要
隨著人們的生活逐漸富足,社會壓力的不斷增加,購房租房的需求也逐年增長。然而傳統的房產交易系統存在著黑中介、假房源、成本高、政策推廣緩慢等諸多問題,Web2.0搭建的房產交易系統顯然不能很好的解決這些問題。隨著Web3.0時代到來,區塊鏈技術的引用已經逐漸成為時代項目開發的熱潮,有了區塊鏈技術作為系統底層,使系統更加智能。本文針對現有的房產交易平臺現狀,采用區塊鏈技術開發,提出了以區塊鏈技術為底層開發的房產交易系統。
本文在原有的房產交易系統的基礎上引入區塊鏈技術作為底層,使系統中的信息不可篡改,可解決合約糾紛、黑中介、房產信息xx等諸多問題。同時系統的房源信息基于區塊鏈技術也做到了數據信息公開共享。系統的開發服務端使用的是Go語言搭建,底層邏輯使用Hyperledger Fabric來進行邏輯操作,網絡節點中的交易或者更改數據的驗證等操作需要區塊鏈網絡中所有節點來進行共同驗證,可以有效的杜絕黑中介假信息等。使用Vue+Element技術來搭建前端界面使用Docker容器開發來使系統更容易部署與運維。運用區塊鏈技術搭建房產交易系統,解決了傳統房產交易系統的痛點。同時論文根據具體的實現,給出了系統的測試方案,并且對系統進行功能、性能、安全測試,最后對系統進行測試結果進行分析,證實系統能達到預期效果。
關鍵詞:區塊鏈;Hyperledger Fabric智能合約;房產交易系統
第1章緒論
1.1研究背景
隨著數字化技術的驅動,社會步入“互聯網+”時代?!盎ヂ摼W+”租房買房也早已風靡全旗十幾年之久。全球各類租房買房交易平臺更是如雨后春筍般地逐年出現在大眾的視野中。但這些房產交易平臺都和傳統的房產交易平臺一樣,都是由第三方平臺進行監管,客戶的信任對象便是房產平臺,一旦房產平臺這一信任對象出現了差錯,例如對真假房源的選擇上對假房源判斷錯誤,這樣就會給客戶帶來了重大的損失。傳統的房產交易系統一直存在著租賃雙方權益的難以保障、用戶隱私數據安全以及交易信息的可追溯性、及信息防篡改的能力薄弱等等問題。
我國租房或者房產交易市場已形成了很大的規模,需求量大。于是在門戶性交易平臺的基礎上又誕生了專門的中介平臺,比如鏈家。這類平臺不僅需要線上一個很強大的交易系統,還需要很多的人力物力去投入交易工作之中,這樣就造成了產生的交易成本較高,只能由有一定規模的中介以及房產大亨等用戶入駐,入駐成本過高。
在私企平臺搶占房產交易市場時,由政府帶頭管理的房產交易系統也陸續開始在南京、杭州、廣州、深圳等地上線,由政府來監管的房產交易系統更加安全,但是政策推廣滿,平臺建設緩慢,供不應求。
傳統的房產交易系統,因為系統不夠智能化、去信任化,存在著信任、安全以及高成本等問題,論文就目前傳統房產交易系統的現狀設計解決方案,以區塊鏈技術為底層技術來開發房產交易系統,解決傳統房產交易系統的難題。
1.2研究的目的和意義
基于區塊鏈搭建的房產交易系統,可以有效的解決租賃或者買賣雙方因權益而產生的爭執問題?;趨^塊鏈技術搭建的房產交易系統在當代復雜的社會關系上,可使得平臺用戶數據的真實性、安全性以及可靠性得到保障。將區塊鏈技術應用在房產交易系統中還能有效的避免平臺產生虛假房產、虛假房東等情況。而且,隨著互聯網的發展,Web時代已逐漸由原來的Web2.0時代進入到更加智能的Web3.0時代。許多平臺也將由原先的中心化進入到去中心化的平臺,Web3.0時代是區塊鏈技術在各個平臺領域應用的體現,使數據更加智能化。
論文主要就區塊鏈技術搭建新型的房產交易系統,主要完成:
(1)對房產交易這類市場前景的調查了解,對產生該類交易活動的原因了解。
(2)設計主要解決方案,從交易雙方權限保護的零信任機制來采用區塊鏈技術來實現,并了解區塊鏈的技術背景以及區塊鏈技術的使用。
(3)了解底層架構,設計前后端分離架構的平臺體系,設計采用微服務的架構設計方案來搭建整個平臺,使用容器技術來裝載平臺,并編寫與設計智能合約。
(4)對區塊鏈搭建的房產交易系統運行環境搭建的設計,使整個系統的部署成本降低,運維成本降低,增強系統運行的穩定性。
(5)總結本論文完成的各項工作,并說明研究時的不足以及設計的缺陷,并設計出接下來的研究計劃。
1.3研究現狀
區塊鏈作為一個不可篡改的記賬賬本,能夠允許區塊鏈網絡中的交易去中心化進行。隨著Web3.0時代的到來,區塊鏈技術相關的應用也大批量涌現,囊括了物聯網、教育、金融等諸多領域。國內區塊鏈技術發展至今技術體系較為成熟,研究區塊鏈技術的學者和工程師也逐年增多。
設計房產交易系統,區塊鏈技術的底層原理至關重要。蔡曉晴,鄧堯等人(2021)[1]就區塊鏈技術的原理及核心技術進行論述,“從區塊鏈的第一個應用——比特幣進行深度剖析,論述了如何利用區塊鏈的去中心化、零信任機制的特性去構建一個價值互聯的平臺,利用抽象分層的方式深度剖析了區塊鏈的核心:密碼學、共識算法、網絡,分析其原理,探討其本質,并且介紹了區塊鏈技術目前的應用場景以及技術展望?!表n璇,劉亞敏(2017)[2]在文中就區塊鏈在各個節點中的驗證進行論述,“區塊鏈判斷交易的核心便是采用共識算法,在交易網絡中的各個節點對每一次發起的交易進行驗算,只有達成共識認證才算是交易成功?!碧茣灶I(2017)[3]“發明了一種基于區塊鏈技術的多方共享元數據的交易系統,該系統是區塊鏈技術的成功應用,在網絡中交易的元數據寫入到區塊鏈中,形成了分布式共享的交易賬本,由區塊鏈網絡中的各個節點進行記賬?!?/p>
面對區塊鏈技術未來的發展,李董,魏進武(2016)[4]從區塊鏈技術的分布式、去中心化特性進行分析,“在區塊鏈技術特性的層面上引入了當下流行的超級賬本技術的應用和未來在商業上的機遇?!睏畹虏?,趙肖余,徐梓瀟等(2017)[5]“闡述了在我國發展的時代背景下,區塊鏈技術也逐漸深入了能源行業,對區塊鏈技術多方面的市場應用前景進行剖析,從能源的“三化”和“兩結合”的核心上進行延伸,表明了在復雜的交易環境中,區塊鏈技術可以去解決這一難題?!崩罨萘?,王婷,周海銳(2019)[6]“對區塊鏈房產交易系統進行研究,使用區塊鏈技術打造的零信任網絡可以有效地防止了房東、買家、平臺三分的信息xx、資料xx等狀況,在區塊鏈這個大賬本中,合約上的信息由節點上所有的用戶進行維護更新,防止房源等各類信息xx,防止詐騙等慘劇發送?!蓖跣陆ǎ?019)[7]“針對房產交易系統數據量大、傳輸代價大、數據處理、可拓展性低和數據庫讀寫性能進行分析,設計以區塊鏈技術為核心的房產交易系統,解決此類問題。以及在房產交易市場上的應用?!睏詈#?019)[8]“論述了房產交易系統的領域的信息共享功能在區塊鏈領域的應用,比較了區塊鏈打造房產交易系統與傳統房產交易系統的區別,區塊鏈的去中心化思想以及各個節點存儲著數據信息更加提升了房產交易系統房源信息的共享性?!?/p>
牟偉、于磊、沈海員(2020)[9]在關于房屋監管簽訂電子合同上,提出“融合區塊鏈、電子簽名等技術實現房屋網簽備案,不見面辦理,運用區塊鏈零信任機制保障房產交易安全性?!眳乔迕罚?019)[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本章小節
本章論述了區塊鏈房產交易系統設計所采用的技術原理和使用原因。區塊鏈開發技術為論文對區塊鏈構建的房產交易系統設計底層的技術架構?;贒ocker容器技術和微服務架構思想,設計可擴展、可高效維護的房產交易平臺,降低系統開發的復雜度,提高系統的工作效率以及系統的穩定性。
第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這類開放性平臺,由于入駐門檻低,導致平臺上有很多假房源、黑中介。二是鏈家這類中心化平臺,由專業房產中介服務,杜絕了假房源黑中介這類事件,但是多門店、多人力導致平臺組建的成本增高。三是由政府部門組建的房產交易平臺,但是各地房產公私有水平不同,房產交易政策緩慢,導致政務平臺為主的交易平臺也難以鋪展開。面對這些弊端,需要設計一個去中心化,零信任的房產交易體系。
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,如若轉載,請注明出處:http://www.twofishesartistry.com/chachong/175387.html,