• 沒有找到結果。

第四章 應用區塊鏈技術設計研發記錄系統

第四節 系統實測

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第四節 系統實測

研究記錄系統讓研究人員可以自行填寫檔案標題及研究人員資訊,選擇檔 案後會自動計算出該數位資訊檔案的哈希值。

12:系統實際上傳畫面示意圖

當研究人員完成填寫,點擊上傳到記錄簿之後,會先對研究人員的身分進 行認證,當研究人員成功輸入密碼,代表著認證完成後,

13:認證身分示意圖

資料庫自動備份並更新資訊,本研究之系統將這些記錄都自動放置到雲端資料 庫Firebase。下圖之中可以看到,除了檔案編號、研究人員、檔案標題和文件指 紋碼已經上傳至資料庫,檔案編號相對應的區塊編號、發送者地址、交易編號 也同時做備份,方便未來使用者在上傳後做查看、審查、比對等動作。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

14:成功上傳資料示意圖

在資料被更新時,可以先根據資料的發送者地址去確認身分,直接拿取發 送者地址0x0041be3a1c43729619655c25a1ec7d60cc2b5ab9,在isOwner函式這邊貼 上,可以証明發送交易的人是其中一名合法管理人,而根據智能合約的特性跟 本研究進行測試確認,只要不是合法管理人即使在網頁前端能提出交易,輸入 密碼後資料也不會隨著更新,更不會放到區塊鏈。

15:證明其身分為合法管理人示意圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

而在確認身分後,這時候我們需要查看上傳到區塊鏈的交易究竟有沒有被 確認,本研究其中一個研究目的為能透過利用多重簽章的技術,在區塊鏈存證 的時候以呼叫其他人作見證,我們可以使用資料庫的transactionId作認證,

0x5e6b03fb84d1aa2edcb28d60f40298b64f93d53204852fa46e4a4e6be23028b9

16:確認交易編號示意圖

可以看出TransactionId為5e6b03…3028b9的交易定確有被佈上區塊鏈,而因 為本研究為方便實際操作,有先寫好一個函式以避免使用者需要每次都需要拿 一大串交易編號進行操作之煩惱,所以先設定一個比較好確認交易狀態的方 法,可以直接用圖中右邊的transactionId:3來檢查交易是否已經被其他人確認,

17:確認交易狀態示意圖

如圖所示,通過檢查同一個TransactionId可以確認交易尚未確認,而原因是 因為在合約產生的時候,本研究先假定合約的合法管理人有三個人,而其中交

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

易合法的條件為三人其中的二人對此交易簽章。

18:確認合法管理人及交易最低確認數示意圖

如圖18所示,getOwners顯示出三個合法管理人的名字分別為Ricky, Tom, Jerry,MAX_OWNER_COUNT的意思是指這合約最多能擁有50位合法管理人,

而這都是可以調整的參數。而其中Ricky即為此筆交易的發起人,所以目前只有 Ricky有對此交易進行簽章,而其中required顯示出目前合約的要求為最少有2名 合法管理人對交易進行簽章,可以透過查看目前交易到底有哪些人已經對它進 行了簽章的動作,以增加在管理研發記錄上的效率。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖19:查找已對交易進行確認之合法管理人示意圖

如圖19所示,可以看出目前對於transactionId:3的交易目前只有交易的發起 人Ricky對他進行簽章,而因為研發記錄對一企業來說是很重要的營業秘密,本 研究會在parity的後台做各種函式的執行以加強其隱匿性,而接下來將嘗試合約 中的其餘合法管理人對交易進行簽章的動作,以使其交易能被確認。

20:執行確認交易之函數示意圖

首先,如圖20,其中一名合法管理人Jerry對於TransactionId為3的交易執行 確認交易的函式。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

21:確認執行壓認交易之用戶是否為合法管理人

在執行這項函式之前需確保其身分的正確性。若其不是合法管理人沒辦法 對交易作出任何動作,所以同樣需要確認用戶的合法性,需要輸入正確的密 碼,而因為智能合約的特性,只要該名用戶不是合法管理人,即使該用戶輸入 其密碼,智能合約會先確認身分再執行其函式。所以當Jerry成功輸入密碼後,

Parity就會顯示出Jerry成功對該交易作出確認,而這裡要注意的是,雖然右手面 的transactionId同樣為3,但左方的transactionId並不會是同樣的

5e6b03…3028b9,因為Jerry的行為在區塊鏈裡面同樣算是提出一筆交易,所以 會有獨立的transactionId,當Jerry成功對交易進行確認時也代表上面提到的智能 合約的最低確認數已達到,交易也理應被判定為true。

22:區塊鏈記錄示意圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

當我們跟上面一樣查看TransactionId為3的交易狀態時,可以看出該交易已 有三分之二的合法管理人對其作出簽章,亦即代表該筆交易將成立。

23:確認交易之狀態示意圖

本研究希望此研發記錄系統同樣能成為企業在管理其研究記錄的系統,所 以本研究也增加了幾項函式,例如能自由地新增或減少合法管理人,而在管理 研發記錄時,所需求的確認次數不一定是三分之二,所以本研究也有準備不同 情況下的函式。

24:確認交易之確認次數函式示意圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

如圖所示,只要輸入其交易編號(transactionId,此transactionId並不是網頁 前端的transactionId,而是本研究在parity所設定的transactionId),即可查看其 確認次數是多少,從而牽到管理不同記錄的功效。而本研究也能核實不同的合 法管理人到底對交易有否作出確認,只要透過輸入transactionId跟使用者的帳號 亦即其地址(address),即可達到核實的效果。Tom為第三名合法管理人,而 剛剛對transactionId為3的確認人有Ricky跟Jerry,所以透過此功能,可以清楚看 出有哪些研發人員尚未確認,而如圖所示為fasle,Tom對其交易尚未進行確 認。

25:審查不同合法人對交易之確認狀態

相關文件