向佳欣,王宏杰,梁桂萍,賴沛鑫
(廣州華商學(xué)院數(shù)據(jù)科學(xué)學(xué)院,廣州 511300)
近年來我國社會(huì)老齡化加重,傳統(tǒng)的社區(qū)養(yǎng)老模式[1]已不能滿足我國的養(yǎng)老需要,需尋求新的養(yǎng)老模式作為補(bǔ)充?!皶r(shí)間銀行”顧名思義是儲(chǔ)蓄時(shí)間、提取時(shí)間的銀行。一般表現(xiàn)為,需要幫助的老年人在平臺(tái)上發(fā)布需求,志愿者接單后為其提供服務(wù),以此獲得一定的時(shí)間幣,未來志愿者有需要時(shí)可以通過支付時(shí)間幣為自己或者親人換取養(yǎng)老服務(wù),簡(jiǎn)單來說是用現(xiàn)在的服務(wù)時(shí)間換取以后的服務(wù)時(shí)間。時(shí)間銀行通過一種將服務(wù)時(shí)間轉(zhuǎn)換成時(shí)間幣的方式來鼓勵(lì)公眾參與志愿者活動(dòng),提高人們對(duì)志愿服務(wù)的積極性。
現(xiàn)今中國部分地區(qū)已開展試行時(shí)間銀行的志愿服務(wù),然而在開展過程中存在一定的缺陷和不足,以時(shí)間幣為例,現(xiàn)有的時(shí)間銀行在時(shí)間幣的發(fā)行和流通方面缺乏透明度,用戶無法了解時(shí)間幣的發(fā)行量。此外,時(shí)間幣交易數(shù)據(jù)存儲(chǔ)在一個(gè)中心化的數(shù)據(jù)庫中,一旦數(shù)據(jù)庫受到攻擊,就會(huì)造成數(shù)據(jù)庫損壞,導(dǎo)致數(shù)據(jù)丟失、篡改,甚至產(chǎn)生數(shù)據(jù)無法恢復(fù)的嚴(yán)重后果。區(qū)塊鏈?zhǔn)且环N新型去中心化協(xié)議,由不同節(jié)點(diǎn)組成,它不依賴第三方機(jī)構(gòu)的審核,可以自動(dòng)執(zhí)行智能合約,實(shí)現(xiàn)分布式存儲(chǔ)時(shí)間幣交易信息或其它數(shù)據(jù),保證數(shù)據(jù)的安全性[2]。利用區(qū)塊鏈技術(shù)可以使時(shí)間幣的發(fā)行和流通公開透明,時(shí)間幣的結(jié)算不依賴某個(gè)中心化的節(jié)點(diǎn)。
針對(duì)上述情況,本文提出將區(qū)塊鏈技術(shù)與“時(shí)間銀行”概念相結(jié)合的互助式服務(wù)平臺(tái)。平臺(tái)以政府為主導(dǎo),以“時(shí)間銀行”為媒介,借助“時(shí)間幣”進(jìn)行價(jià)值衡量。同時(shí),應(yīng)用區(qū)塊鏈去中心化管理數(shù)據(jù)實(shí)現(xiàn)時(shí)間幣的結(jié)算流通,促進(jìn)服務(wù)供需雙方完成服務(wù)交換。
平臺(tái)分為用戶端和管理端。用戶端主要采用uni?app框架完成前端開發(fā),使用Web3.js和智能合約作為接口連接以太坊區(qū)塊鏈;而管理端主要利用Thymeleaf 模板完成前端開發(fā)。二者均利用Spring Boot框架及Spring Security框架完成后端開發(fā),Solidity編寫智能合約連接服務(wù)端和區(qū)塊鏈,進(jìn)行數(shù)據(jù)交互,用MySQL完成數(shù)據(jù)存儲(chǔ)。
uni?app是一個(gè)基于Vue.js開發(fā)所有前端應(yīng)用的框架,實(shí)現(xiàn)一套代碼可發(fā)布到iOS、Android、Web 以及各種小程序(如微信、支付寶、百度等)、快應(yīng)用等多個(gè)平臺(tái)[3]。
Thymeleaf是一個(gè)能夠處理HTML、JS、XML并服務(wù)于Java 的模板引擎,它可用于Web 與非Web 環(huán)境中的應(yīng)用開發(fā)。使用Thymeleaf 可以提高平臺(tái)開發(fā)的速度,實(shí)現(xiàn)完美的頁面渲染[4]。
Web3.js 是一個(gè)JavaScript 庫集合,它封裝了以太坊的JSON RPC API,可以提供一系列Javascript 對(duì)象和函數(shù)與以太坊區(qū)塊鏈交互,包括查看網(wǎng)絡(luò)狀態(tài),檢索用戶賬戶,發(fā)送交易,與智能合約交互等[5]。
Spring Boot 是Spring 項(xiàng)目的一個(gè)子項(xiàng)目,它由Pivotal 團(tuán)隊(duì)提供,其樣板化的配置可以精簡(jiǎn)Spring應(yīng)用的初始搭建以及開發(fā)過程,使項(xiàng)目開發(fā)變得簡(jiǎn)單、方便和快捷[6]。
Spring Security 是基于企業(yè)級(jí)應(yīng)用系統(tǒng),為應(yīng)用程序開發(fā)提供聲明式安全訪問控制的框架。它對(duì)安全性的支持依賴于Servlet 過濾器。過濾器可對(duì)進(jìn)入的請(qǐng)求進(jìn)行安全檢測(cè),檢測(cè)通過后應(yīng)用程序才會(huì)對(duì)該請(qǐng)求進(jìn)行處理[7]。
Solidity是Ethereum 的一種契約型編程語言,屬靜態(tài)類型,支持繼承庫和用戶自定義類型以及其他功能,旨在定位到以太坊虛擬機(jī)。
MySQL 由MySQL AB 公司開發(fā),是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng)[8],與其他數(shù)據(jù)庫將所有數(shù)據(jù)放在一個(gè)中央倉庫不同,關(guān)系數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,從而增加了數(shù)據(jù)存儲(chǔ)速度并提高了數(shù)據(jù)查詢的靈活性。
與傳統(tǒng)意義上的社會(huì)互助不同,新型互助服務(wù)平臺(tái)是基于“時(shí)間銀行”概念開發(fā)的,由政府加強(qiáng)政策引導(dǎo),提高統(tǒng)籌層次,服務(wù)交換雙方通過線上交流,以“時(shí)間銀行”為媒介,借助“時(shí)間幣”進(jìn)行價(jià)值衡量,同時(shí)應(yīng)用區(qū)塊鏈去中心化管理數(shù)據(jù)并實(shí)現(xiàn)時(shí)間幣的結(jié)算流通,促進(jìn)服務(wù)供需雙方完成服務(wù)交換,最終實(shí)現(xiàn)全社會(huì)所有群體共同幫助有需要的老年人的互助服務(wù)平臺(tái)。因此平臺(tái)服務(wù)主要設(shè)計(jì)了用戶端和管理端。
用戶端,利用uni?app、Spring Boot以及Web3.js構(gòu)建移動(dòng)端,它主要是為供需雙方提供服務(wù)交換的線上平臺(tái),入駐平臺(tái)的社會(huì)組織發(fā)布志愿服務(wù)信息和已認(rèn)證老年人發(fā)布個(gè)人需求,志愿者接收需求,完成服務(wù)并獲得時(shí)間幣。同時(shí),利用區(qū)塊鏈去中心化協(xié)議,使時(shí)間幣的發(fā)行和流通公開透明,時(shí)間幣的結(jié)算不依賴某個(gè)中心化的節(jié)點(diǎn)。
管理端,利用Thymeleaf、Spring Boot和Spring Security 實(shí)施,它是一個(gè)B/S 結(jié)構(gòu)的在線Web 系統(tǒng),管理員通過瀏覽器實(shí)現(xiàn)對(duì)平臺(tái)的管理。
系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)圖
平臺(tái)主要為用戶端和管理端,用戶端和管理端又分別包含若干個(gè)功能模塊,如圖2所示。
圖2 系統(tǒng)功能模塊
用戶端按時(shí)間幣交易流程分為發(fā)布需求、接收服務(wù)、服務(wù)資訊、兌換商城以及家庭通訊錄等五個(gè)模塊。
(1)發(fā)布需求。發(fā)布需求形式有兩種:第一種為政府主導(dǎo),政府鼓勵(lì)社會(huì)組織入駐平臺(tái)并在平臺(tái)上發(fā)布志愿服務(wù)信息,同時(shí)發(fā)放時(shí)間幣;第二種為個(gè)人主導(dǎo),已在平臺(tái)認(rèn)證的老年人,發(fā)布個(gè)人需求。在需求者發(fā)布需求前,平臺(tái)會(huì)收集需求者的服務(wù)地點(diǎn)、服務(wù)時(shí)間、服務(wù)時(shí)長(zhǎng)、服務(wù)內(nèi)容等具體信息,以便平臺(tái)為志愿者提供具體的服務(wù)信息。
(2)接收需求?!敖臃?wù)”分為志愿服務(wù)隊(duì)發(fā)布的志愿服務(wù)和個(gè)人認(rèn)證后允許發(fā)布的需求,用戶可以選擇需求類型并報(bào)名,為了提高報(bào)名的通過率,志愿者需要在申請(qǐng)過程中填寫詳細(xì)的申請(qǐng)信息,通過審核后才算報(bào)名成功。報(bào)名后按照規(guī)定進(jìn)行服務(wù),志愿者服務(wù)完成后經(jīng)過審核平臺(tái)認(rèn)證后獲得相應(yīng)時(shí)間幣,如果未能按照要求完成任務(wù)或超時(shí)完成,平臺(tái)會(huì)扣除志愿者的積分。
(3)服務(wù)資訊。平臺(tái)主頁設(shè)有關(guān)于公益宣傳的咨詢,同時(shí)提供社區(qū)論壇功能,志愿者和被服務(wù)群體均可在論壇里進(jìn)行交友,分享心得體會(huì),豐富平臺(tái)的娛樂功能。
(4)兌換商城。為鼓勵(lì)志愿者進(jìn)行志愿服務(wù),本系統(tǒng)設(shè)置了兌換功能。在兌換商城中,用戶可利用時(shí)間幣進(jìn)行物品兌換。
(5)家庭通訊錄。在家庭通訊錄功能中,用戶可以邀請(qǐng)自己的朋友和親人加入,形成好友鏈,好友鏈間用戶可以共享時(shí)間幣。
管理端根據(jù)時(shí)間幣交易流程,分為賬戶管理、存取管理、系統(tǒng)信息管理、查詢管理以及基本業(yè)務(wù)管理等五個(gè)模塊。
(1)賬戶管理。管理員可以對(duì)用戶的相關(guān)信息進(jìn)行管理,包括志愿服務(wù)隊(duì)和個(gè)人的賬戶開戶、賬戶信息修改和掛失與銷戶等功能。
(2)存取管理。主要包括賬戶中時(shí)間幣的存與取,系統(tǒng)發(fā)放用戶時(shí)間幣,以及家人賬戶之間的時(shí)間幣共享和轉(zhuǎn)發(fā),商城兌換的時(shí)間幣交易等功能。
(3)系統(tǒng)信息管理。主要包括社區(qū)活動(dòng)信息、用戶信息、活動(dòng)額度設(shè)置、商品兌換展示和數(shù)據(jù)備份等管理。也包括賬戶查詢、導(dǎo)出、打印等功能。
(4)查詢管理。主要包括查詢社區(qū)居民的賬戶信息、活動(dòng)申請(qǐng)和完成信息、捐贈(zèng)信息等功能。
(5)基本業(yè)務(wù)管理?;緲I(yè)務(wù)包括商品管理、需求管理、消息管理和資訊管理等。主要是對(duì)用戶的數(shù)據(jù)進(jìn)行讀取、新增、修改、保存和刪除等操作。
本系統(tǒng)采用MySQL 作為關(guān)系型數(shù)據(jù)庫系統(tǒng),按照數(shù)據(jù)庫設(shè)計(jì)原則,在服務(wù)器的MySQL數(shù)據(jù)庫中設(shè)計(jì)用戶信息表(用戶id、用戶姓名、用戶密碼、用戶電話、用戶類型、賬戶余額等)、新聞資訊表(新聞id、新聞名、新聞作者名、發(fā)表時(shí)間、新聞圖片、新聞詳情等)、兌換商城信息表(商品id、商品名稱、商品圖片、商品價(jià)格、商品數(shù)量等)、活動(dòng)需求表(需求id,需求名稱、需求類型、需求時(shí)間、需求備注等)和時(shí)間幣交易記錄表等多個(gè)數(shù)據(jù)表,如表1所示。
表1 數(shù)據(jù)庫表設(shè)計(jì)
為保證用戶時(shí)間幣交易安全,用戶端需要把提交到服務(wù)端的數(shù)據(jù)分為個(gè)人信息、服務(wù)信息和時(shí)間幣交易信息等,服務(wù)端通過消息摘要算法運(yùn)算得到摘要信息,通過Web3.js 與以太坊節(jié)點(diǎn)進(jìn)行連接,將摘要信息提交到區(qū)塊鏈存儲(chǔ),同時(shí)用戶端將信息存儲(chǔ)到本地?cái)?shù)據(jù)庫。管理端定期檢查數(shù)據(jù)并判斷信息是否被篡改,管理端首先發(fā)出請(qǐng)求,通過智能合約查詢從而獲取區(qū)塊鏈中存儲(chǔ)的信息,然后與本地?cái)?shù)據(jù)庫中存儲(chǔ)的信息進(jìn)行對(duì)比。信息一致則證明數(shù)據(jù)沒有被篡改,信息不相同就表明數(shù)據(jù)存在被篡改的可能性。
智能合約以Solidity 為開發(fā)語言,在以太坊區(qū)塊鏈環(huán)境下,主要完成客戶端到區(qū)塊鏈端摘要信息的上傳,以及管理端到區(qū)塊鏈端摘要信息的查詢。智能合約中使用mapping 存儲(chǔ)數(shù)組[9],設(shè)計(jì)userInfo、serviceInfo和billInfo三個(gè)變量。userInfo 存儲(chǔ)用戶個(gè)人信息數(shù)組,其中user為用戶對(duì)象,包含用戶名和用戶的以太坊地址;serviceInfo存儲(chǔ)用戶服務(wù)信息的摘要;billInfo存儲(chǔ)用戶的時(shí)間幣交易信息的摘要,具體如表2所示。
圖3 區(qū)塊鏈設(shè)計(jì)方案
表2 智能合約變量設(shè)計(jì)表
平臺(tái)的原型設(shè)計(jì)、功能設(shè)計(jì)以及針對(duì)各個(gè)操作交互設(shè)計(jì)均基于“時(shí)間幣”交易流程開發(fā),時(shí)間幣開發(fā)以政府公信力為背書,同時(shí)需要建立一個(gè)審核平臺(tái)對(duì)時(shí)間幣進(jìn)行審核認(rèn)證,整個(gè)過程如下:
(1)時(shí)間幣的發(fā)行?!皶r(shí)間幣”由政府主導(dǎo)發(fā)行,平臺(tái)以各政府單位為全節(jié)點(diǎn),以用戶為輕節(jié)點(diǎn),構(gòu)建公有鏈網(wǎng)絡(luò);以政府公信力為背書,為志愿者發(fā)放時(shí)間幣,主要表現(xiàn)在政府引導(dǎo)各大志愿組織在平臺(tái)上發(fā)布志愿服務(wù)內(nèi)容,志愿者參加服務(wù),完成服務(wù)后由審核平臺(tái)進(jìn)行審核,審核完成后向志愿者支付相應(yīng)時(shí)間幣[10]。
(2)時(shí)間幣的交易。平臺(tái)允許經(jīng)過審核的個(gè)人用戶在平臺(tái)上發(fā)布需求,主要表現(xiàn)在老年人向平臺(tái)提供相關(guān)證明材料,審核平臺(tái)對(duì)證明材料進(jìn)行審核,審核完成后即可發(fā)布個(gè)人需求。依據(jù)個(gè)人需求,志愿者向有服務(wù)需求的老年人提供相應(yīng)的服務(wù)。審核平臺(tái)在服務(wù)完成后將會(huì)對(duì)整個(gè)服務(wù)過程進(jìn)行審核。服務(wù)通過審核后,結(jié)合被服務(wù)者的滿意程度以及服務(wù)類型等綜合因素,平臺(tái)將服務(wù)時(shí)間進(jìn)行服務(wù)資產(chǎn)數(shù)字化,即將服務(wù)時(shí)間轉(zhuǎn)換為等值的時(shí)間幣。
(3)時(shí)間幣的轉(zhuǎn)讓。平臺(tái)用戶可以邀請(qǐng)自己的朋友和親人加入,形成好友鏈,用戶在好友鏈中進(jìn)行賬號(hào)關(guān)聯(lián),關(guān)聯(lián)后的賬號(hào)平臺(tái)可以實(shí)現(xiàn)時(shí)間幣共享。
(4)時(shí)間幣的支付。平臺(tái)設(shè)置線上商城,政府與商家達(dá)成合作,商家通過平臺(tái)宣傳產(chǎn)品,并為平臺(tái)提供產(chǎn)品贊助,用戶可以在商城頁面換取贊助商的產(chǎn)品。
(1)用戶登錄。iOS 和Android 系統(tǒng)中,點(diǎn)擊首頁下方“我的”按鈕進(jìn)入用戶個(gè)人界面,點(diǎn)擊頭像或未登錄進(jìn)入登錄界面,用戶輸入手機(jī)號(hào)和密碼,點(diǎn)擊登錄。小程序中,點(diǎn)擊首頁下方“我的”按鈕進(jìn)入用戶個(gè)人界面,點(diǎn)擊頭像或未登錄,平臺(tái)跳轉(zhuǎn)至微信授權(quán)界面,用戶點(diǎn)擊允許,“我的”界面即可獲取用戶信息,如圖4所示。
圖4 登陸界面
(2)發(fā)布需求。用戶在首頁選擇“發(fā)需求”進(jìn)入頁面填寫表單,其中,用戶可點(diǎn)擊“服務(wù)類型選擇”進(jìn)行修改,如圖5所示。
圖5 發(fā)布需求表單
(3)接收需求。用戶在首頁選擇“接收服務(wù)”進(jìn)入界面選擇服務(wù),其中用戶可以在頁面上方進(jìn)行服務(wù)類型、時(shí)間幣排序、時(shí)間排序的篩選,選擇完成后進(jìn)入詳情頁報(bào)名,系統(tǒng)生成活動(dòng)需求信息上傳至區(qū)塊鏈存儲(chǔ)以及保存到本地?cái)?shù)據(jù)庫,服務(wù)完成后志愿者獲得相應(yīng)時(shí)間幣,同時(shí)時(shí)間幣交易信息上傳至區(qū)塊鏈和本地?cái)?shù)據(jù)庫存儲(chǔ),如圖6所示。
圖6 接收需求界面
(4)兌換商城。用戶點(diǎn)擊首頁下方“我的”按鈕進(jìn)入用戶個(gè)人界面,選擇兌換商城,點(diǎn)擊商品進(jìn)入商品詳情頁兌換,如圖7所示。
圖7 兌換商城界面
(5)家庭通訊錄。用戶點(diǎn)擊首頁下方“我的”按鈕進(jìn)入用戶個(gè)人界面,選擇家庭通訊錄,點(diǎn)擊邀請(qǐng)按鈕跳轉(zhuǎn)至微信邀請(qǐng)界面,點(diǎn)擊同意關(guān)聯(lián)即可綁定賬號(hào),同時(shí)將兩者時(shí)間幣余額進(jìn)行相加后作為新的賬戶余額數(shù)據(jù),修改用戶信息,同時(shí)形成時(shí)間幣交易信息并上傳至區(qū)塊鏈和本地?cái)?shù)據(jù)庫存儲(chǔ),如圖8所示。
圖8 家庭通訊錄界面
管理端是利用Spring Boot 和Thymeleaf 實(shí)施的在線系統(tǒng),包括賬戶、存取、信息、查詢、基本業(yè)務(wù)等各種管理功能,由于篇幅原因,其實(shí)施過程在此不展開論述。
互助式服務(wù)平臺(tái)把區(qū)塊鏈技術(shù)與“時(shí)間銀行”概念結(jié)合起來,以政府為主導(dǎo),以“時(shí)間銀行”為媒介,借助“時(shí)間幣”進(jìn)行價(jià)值衡量,同時(shí)應(yīng)用區(qū)塊鏈去中心化管理數(shù)據(jù)并實(shí)現(xiàn)時(shí)間幣的結(jié)算流通,最終促進(jìn)服務(wù)供需雙方完成服務(wù)交換。本平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn),可以有效解決社會(huì)老齡化過程中關(guān)于“時(shí)間銀行”概念的新型服務(wù)模式探索過程中的問題,為促進(jìn)我國老年人鏈接多元的社會(huì)資源,為我國養(yǎng)老公益志愿服務(wù)常態(tài)化、規(guī)范化、機(jī)制化發(fā)展作出貢獻(xiàn)。