TWI759841B - 一種作物履歷資訊系統及其方法 - Google Patents

一種作物履歷資訊系統及其方法 Download PDF

Info

Publication number
TWI759841B
TWI759841B TW109129797A TW109129797A TWI759841B TW I759841 B TWI759841 B TW I759841B TW 109129797 A TW109129797 A TW 109129797A TW 109129797 A TW109129797 A TW 109129797A TW I759841 B TWI759841 B TW I759841B
Authority
TW
Taiwan
Prior art keywords
crop
block
history information
smart contract
data
Prior art date
Application number
TW109129797A
Other languages
English (en)
Other versions
TW202211138A (zh
Inventor
林裕彬
盧虎生
連宛渝
黃冠庭
鄧東波
Original Assignee
國立臺灣大學
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 國立臺灣大學 filed Critical 國立臺灣大學
Priority to TW109129797A priority Critical patent/TWI759841B/zh
Publication of TW202211138A publication Critical patent/TW202211138A/zh
Application granted granted Critical
Publication of TWI759841B publication Critical patent/TWI759841B/zh

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一種作物履歷資訊系統及其方法,係應用在產銷履歷區塊鏈服務環境中,利用本發明之作物履歷資訊系統以進行作物履歷資訊方法時,首先,進行介面顯示動作,於農作物生產端為合約帳戶(CA, Contract Address)之使用者所使用的行動電子裝置之螢幕上將顯示出一使用介面,以便讓使用者能輸入與農作物相關的生產履歷資訊;進而,進行資料傳送,該使用介面將與農作物相關的該生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)之農作物智能合約(smart contract)以便進行處理,為該農作物智能合約運作的一個重要依據,該農作物智能合約所仰賴的事件或條件,其資訊是外部的該生產履歷資訊;繼之,進行上鏈,存在於每一個以太坊(Ehterum)的節點中之去中心化的虛擬機EVM (Ethereum Virtual Machine)負責執行存放在區塊(block)的該農作物智能合約的bytecode,對該農作物智能合約與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。利用本發明之作物履歷資訊系統及其方法,由於使用以太坊區塊鏈技術對農作物相關的生產履歷資訊進行區塊鏈資料上鏈,於農作物生產、出貨完成後,消費者可掃描二維條碼QR-code得知其所購買的農作物的所有真實農作生產歷程相關資訊、且不會有竄改農作物履歷資訊的問題。

Description

一種作物履歷資訊系統及其方法
本發明係有關於資訊服務系統及其方法,更詳而言之,係有關於一種應用在產銷履歷區塊鏈服務環境的作物履歷資訊系統及其方法,由於使用區塊鏈技術對農作物相關的生產履歷資訊進行區塊鏈資料上鏈,於農作物生產、出貨完成後,消費者可掃描二維條碼QR-code得知其所購買的農作物的所有真實農作生產歷程相關資訊、且不會有竄改農作物履歷資訊的問題。
當食安問題發生時,往往無法即時追溯造成食安危機的源頭,導致民眾對於產銷履歷的不信任,而民眾亦對於農友提供之生產履歷資料之信心產生動搖,換言之,消費者往往無法全然信任農民所上傳之作物生長及生產過程中的各項資料,因其可能會被竄改及透明化的問題,無法確保作物及農產品之品質安全。
現有之生產履歷資料係由農民端上傳,但未強制農民於施作農務即時將各項資訊上傳,因此,未能確保資料之即時性,再加上農民所上傳資料有被修改的可能性,因此並不能確保所查詢的作物生產履歷資料是正確、未被修改且具有即時性,換言之,目前存在著強化各樣資訊之即時性、正確性及未被竄改的問題。
此外,當食安問題發生時,可能是由於同一批肥料導致的問題,因此,不僅僅查驗到的產品有問題,使用同樣資材的產品可能也會受
到影響,因此,如何能迅速查詢使用同樣資材的產品、迅速地找到有食安疑慮的所有產品、降低對消費者可能產生的衝擊與影響亦是待解決的議題。
台灣公開/公告號 I676138「應用區塊鏈之種植經驗共享系統」係揭露一種應用區塊鏈之種植經驗共享系統包含複數個農耕資訊收集共享裝置,而農耕資訊收集共享裝置包含偵測器及主機本體,偵測器用以偵測種植區域而產生偵測資料。主機本體包含通訊模組、儲存模組及處理模組,藉以通訊連結於偵測器與網際網路。儲存模組係儲存背景資料、產量資料與偵測資料。處理模組包含資料編撰單元及編撰權傳遞對象分析單元,資料編撰單元係將背景資料、產量資料與偵測資料編撰成資料區塊。編撰權傳遞對象分析單元係產生傳遞優先度而做為編撰權傳遞之依據,進而繼續編撰資料區塊而產生一衍生資料區塊。
台灣公開/公告號201837797「透過執行區塊鏈技術的具可追蹤功能的供應鏈記錄方法」係係一透過執行區塊鏈技術的具可追蹤功能的供應鏈記錄方法,包含有以下步驟:發送一第一資產數位資訊;分配複數公鑰;透過複數私鑰產生複數第一數位簽章,並寫入至複數區塊;組合該些第一資產數位資訊形成一第二資產數位資訊;建立該些第一資產數位資訊與該第二資產數位資訊的資訊關聯記錄;透過該些公鑰分別加密對應的區塊,並透過雜湊演算法將該些加密後的區塊儲存在一區塊鏈中。如此一來,使用者便可透過區塊鏈獲得供應鏈的資訊,以確保供應鏈的安全性。
台灣公開/公告號M565371 「人工智慧農業活動記錄系統」係有關於一種人工智慧農業活動記錄系統,其係包括至少一影像監控裝置;一影像辨識單元,其包括伺服單元與影像處理器,以由伺服單元傳送影像訊息至影像處理器,其中影像處理器包括一卷積神經網路(CNN)以辨識影像訊息;一處理單元,其包括資訊處理模組、資訊記錄儲存模組與傳輸模組,由資訊處理模組分析影像訊息後,於資訊記錄儲存模組中自動儲存記錄資訊;以及一加密單元,係接收由傳輸模組傳送之記錄資訊,並進行加密鎖定,以避免竄改;藉此,本創作可減少記錄農業活動所耗費的人力,並提升資訊的可信度。
台灣公開/公告號201931213「用於記錄對象的運輸數據的方法、介質、物聯網設備、區塊鏈平臺和物聯網系統」係揭露用於記錄對象的運輸數據的方法、介質、物聯網設備、區塊鏈平臺和物聯網系統。該物聯網設備在生產過程中一次性軟體燒寫有一個私鑰。該物聯網設備包括:至少一個傳感器,其被配置為感測該對象在運輸過程中的外部環境數據;以及處理器,其被配置為從該傳感器接收該數據,並基於該數據利用該私鑰生成數據包,該數據包包含該物聯網設備的唯一身份標識號、該數據和根據該唯一身份標識號和該數據產生的簽名。
台灣公開/公告號I670689「智慧農田巡視系統及其方法」係揭露一種智慧農田巡視系統,其藉由控制裝置傳輸導航信號予無人裝置,使無人裝置依據導航信號移動至指定農田的位置,並依據預定巡視軌跡進行巡視;當無人裝置進行巡視時,持續拍攝相鄰田壟上的農作物,以傳輸第一影像信號予伺服器與控制裝置;當伺服器分析來自無人裝置的第一影像信號並判斷存在有異常狀態時,傳輸通知信號予控制裝置。因此,可使農夫不到現場就能隨時隨地瞭解指定農田的狀況,節省人力資源,提高工作效率。
所以,當食安問題發生時,由於無法即時追溯導致食安危機的源頭,促使民眾對於產銷履歷的不信任,進而對於農友提供之生產履歷資料之信心產生動搖,亦即因農民所上傳之作物生長及生產過程中的各項資料可能被竄改或是不夠透明,無法確保作物及農產品之品質安全,因此消費者無法全然信任農民所上傳之作物生長及生產過程中的各項資料。現有之生產履歷資料係由農民端上傳,但未強制農民於施作農務即時將各項資訊上傳,再加上農民所上傳資料有被修改的可能性,因此並不能確保所查詢的作物生產履歷資料是正確、未被修改且具有即時性,換言之,目前存在著強化各樣資訊之即時性、正確性及未被竄改的議題;此外,當食安問題發生時,可能是由於同一批肥料導致的問題,因此,不僅僅查驗到的產品有問題,使用同樣資材的產品可能也會受到影響,因此,如何能迅速查詢使用同樣資材的產品、迅速地找到有食安疑慮的所有產品、降低對消費者可能產生的衝擊與影響;以上所述,均是待解決的問題。
本發明之主要目的便是在於提供一種作物履歷資訊系統及其方法,係應用在產銷履歷區塊鏈服務環境中,利用本發明之作物履歷資訊系統以進行作物履歷資訊方法時,首先,進行介面顯示動作,於農作物生產端為合約帳戶(CA, Contract Address)之使用者所使用的行動電子裝置之螢幕上將顯示出一使用介面,以便讓使用者能輸入與農作物相關的生產履歷資訊;進而,進行資料傳送,該使用介面將與農作物相關的該生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)之農作物智能合約(smart contract)以便進行處理,為該農作物智能合約運作的一個重要依據,該農作物智能合約所仰賴的事件或條件,其資訊是外部的該生產履歷資訊;繼之,進行上鏈,存在於每一個以太坊(Ehterum)的節點中之去中心化的虛擬機EVM (Ethereum Virtual Machine)負責執行存放在區塊(block)的該農作物智能合約的bytecode,對該農作物智能合約與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。利用本發明之作物履歷資訊系統及其方法,由於使用以太坊區塊鏈技術對農作物相關的生產履歷資訊進行區塊鏈資料上鏈,於農作物生產、出貨完成後,消費者可掃描二維條碼QR-code得知其所購買的農作物的所有真實農作生產歷程相關資訊、且不會有竄改農作物履歷資訊的問題。
本發明之又一目的是提供一種作物履歷資訊系統及其方法,係應用在產銷履歷區塊鏈服務環境中,當食安問題發生時,能即時追溯造成食安危機的源頭,強化民眾對於農友提供之生產履歷資料之信心,藉由區塊技術使農民上傳之作物生長及生產過程中各項資料具有不被竄改及透明化的特性,以確保作物及農產品之品質安全。
本發明之再一目的是提供一種作物履歷資訊系統及其方法,係應用在產銷履歷區塊鏈服務環境中,能確保農民端上傳的生產履歷資料是於施作農務即時將各項資訊上傳,因此,能確保資料之即時性,且農民所上傳資料不會有被修改的可能性,因此能確保所查詢的作物生產履歷資料是正確、未被修改且具有即時性;此外,當食安問題發生時,可能是由於同一批肥料導致的問題,因此,不僅僅查驗到的產品有問題,使用同樣資材的產品可能也會受到影響,而能迅速查詢使用同樣資材的產品、迅速地找到有食安疑慮的所有產品、降低對消費者可能產生的衝擊與影響。
根據以上所述之目的,本發明提供一種作物履歷資訊系統,該作物履歷資訊系統包含介面服務模組、農作物智能合約以及資料庫。
在作物履歷資訊系統所在之以太坊區塊鏈網路(Ethereum block-chain network)的外部帳戶(EOA, Externally Owned Account)可發布依循農作物生產履歷「條款與條件」(terms and conditions)之為程式碼的智能合約(例如,農作物智能合約),此合約於區塊鏈系統中的識別身份為一個為合約帳戶(CA, Contract Address Account),而於農作物生產端的外部帳戶(EOA, Externally Owned Account)使用者,可利用行動電子裝置之螢幕上所顯示出的使用介面,於後續能輸入與農作物相關的生產履歷資訊至智能合約。
生產履歷資訊可包含與農作物(例如,稻米)的生產者及/或產地及/或育苗及/或插秧及/或科學化田間管理及/或稻穗成長期及/或稻穗完熟期及/或收割前安全檢測及/或收割及/或分級烘乾及/或專業碾製及/或分級包裝及/或混米情況的相關資訊;而對於其他作物,例如,茶葉,而言,生產履歷資訊所包含的資訊亦類似於稻米履歷資訊。
在以太坊(Ethereum)區塊鏈技術應用中,以太坊是有智能合約(例如,農作物智能合約),所以又把帳戶分成外部帳戶(EOA)和合約帳戶(CA)兩種型態,外部帳戶(EOA)或合約帳戶(CA)必定包含地址、餘額,而合約帳戶則是多了資料儲存空間(storage)、及程式碼(code)的部份,合約帳戶(CA)是農作物智能合約部署到作物履歷資訊系統所在之以太坊區塊鏈網路後所產生的帳戶,只要與該農作物智能合約互動就是對合約位址發起交易(transaction),在帳戶之間的交易會導致狀態(state)轉換。
簡單來說,外部帳戶(EOA)就是,管理者、農民、經銷商等人在區塊鏈中的身份,利用以太坊區塊鏈網路於作物履歷資訊系統所在之以太坊區塊鏈網路發布依循農作物生產履歷「條款與條件」之為程式碼的農作物發布農作物智能合約或對智能合約進行交易的帳戶,而合約帳戶(CA)是農作物智能合約發布後,所產生的帳戶。
以太坊區塊鏈網路的帳戶,分為兩種類型,都得以十六進位的方式表示,佔據20個位元組;外部帳戶(EOA)具有對應的餘額,由私鑰控制,能夠在以太坊區塊鏈網路進行交易,發布合約…等等的執行;合約帳戶(CA)具有對應的餘額,由外部帳戶發布,合約帳戶之間能夠彼此傳遞訊息,內部具有可執行的程式碼和儲存空間,沒有私鑰,受智能合約(例如,農作物智能合約)的程式邏輯所掌控,每個智能合約在部署後,都會產對應的合約帳戶,可用來接收使用者轉帳智能合約。
例如,以帳戶表示為例:
0xa3754f5b8277b6733ce633f52b5ff229bec012de。
以太幣是以太坊區塊鏈網路使用的貨幣,當某個帳戶執行Transaction或是Message時,以太坊中的每個節點會接收,協助驗證,並運作位於每一節點之虛擬機EVM (Ethereum Virtual Machine)計算對應的Transaction或是Message並將計算結果儲存,運作虛擬機EVM需要消耗制定的Gas數量(由交易發送者支付),Gas必須藉由以太幣購買,以太幣的實際的消耗數量是Gas Used(數量) * Gas Price(單位)。
以太坊區塊鏈網路的智能合約,例如,農作物智能合約,得使用 Solidity 來撰寫,再開發到部署智能合約,例如,農作物智能合約,的流程為:a.使用 Solidity 開發智能合約;b.將撰寫完畢的智能合約透過 Solidity 的編譯器進行編譯;c.編譯完畢後會產生 bytecode 與 ABI,將 bytecode 部署到以太坊區塊鏈網路中。
ABI 的全名為 Application Binary Interface ,要與智能合約(例如,農作物智能合約)做溝通的介面就是 ABI,與 API 的概念相似,但程式是二進制編碼,故傳送的資訊也是二進制編碼,ABI 的用途是定義此合約有所擁有的功能與呼叫這些功能所需要的變數。
以運作原理而言,經過處理之後,已經將智能合約(例如,農作物智能合約)的 bytecode 存入以太坊區塊鏈網路的區塊中,當使用者要與智能合約(例如,農作物智能合約)互動時,就要透過 ABI 以及合約位址來發起交易,以執行智能合約中的程式,執行合約中的程式即為智能合約的運作原理:在以太坊中的節點都有一個虛擬機EVM,作用就是來執行存在區塊中的 bytecode ,當使用者呼叫智能合約時,以太坊中的節點就會透過虛擬機EVM 來進行運算,並將相關結果傳給使用者。
以太坊Ethereum之區塊的設計除了存放交易數據之外,它還可以存放程式碼。以太坊除了存儲(storage)的功能之外,還多增加了運算(compute)的能力。利用特定的程式語言編寫程式碼,將程式碼編譯(compile)後轉換成bytecode並存放在區塊(block)之中。
最新之區塊(block)具有「前一個區塊」的雜湊值,換言之,除非是歷史上第一個創世區塊,否則最新之區塊將具有其他區塊的歷史交易紀錄。
以太坊提供了一個去中心化的虛擬機來執行bytecode,稱之為虛擬機EVM,虛擬機EVM存在以太坊區塊鏈網路的每一個節點中,負責執行存放在區塊(block)的bytecode。
以太坊的智能合約(例如,農作物智能合約),即為給虛擬機EVM所執行的程式碼,儲存在區塊(block)上的bytecode。當以太坊智能合約在執行的時候它會依照當前的狀態(status)跟使用者所下的指令不同而有不同的結果。
每個智能合約(例如,農作物智能合約)的目的不同,設計也不同,所定義的互動接口也不同,可稱這些接口為ABI(Application Binary Interface)。
外部帳戶(EOA)寫好智能合約(例如,農作物智能合約)程式碼,經過編譯後會得到兩個東西。一個是編譯過所得bytecode,另一個就是json格式的ABI文件。當開始要佈署智能合約(例如,農作物智能合約)到以太坊區塊鏈網路中,把bytecode放在資料(data)中,然後再丟到以太坊區塊鏈網路等待具有寫帳權的節點(miner)幫外部帳戶(EOA)把智能合約(例如,農作物智能合約)寫到區塊(block)中。當智能合約(例如,農作物智能合約)佈署好之後會自動生成一個帳戶,並會回傳這個帳戶的位址(address),這就是合約帳戶CA(contract address account)。可透過合約帳戶的位址(address)來跟智能合約(例如,農作物智能合約)做互動。
而當對智能合約(例如,農作物智能合約)下指令時,具寫帳權的節點(miner)會依據指令中的位址(address)去區塊鏈查詢對應合約(contract)狀態(status)。根據合約(contract)當前的狀態和指令進行做運算。最後把運算後的狀態(status)寫回使用者(miner)所做出來區塊(block)中。當該區塊(block)被其他以太坊區塊鏈網路的節點所接受後,其他節點也會去更新智能合約(例如,農作物智能合約)的狀態。以太坊區塊鏈網路自己會去同步所有資料,所以每一個節點所取得的智能合約(例如,農作物智能合約)狀態皆會相同。
區塊鏈起源於中本聰的比特幣,作為比特幣的基礎技術,本質上是個去中心化的資料庫。區塊鏈將所發生的交易紀錄到區塊(Block)中,並藉由網絡參與者共同驗證的方式來確保交易的完整性,採用這項技術賦予金融機構去中介化、高安全性、結算速度快、成本較低、可供監察驗證和資料最終性等優點。
區塊鏈屬於分散式帳本(去中心化的分散式帳本(資料庫) ),於每個完整節點內皆儲存一份資料。分散式帳本與多次驗證的機制,可以達到區塊鏈內的資訊難以被竄改的目的。另,以作物生產履歷而言,可記錄有用的資訊-例如污染指標超過水質標準或是作物生長過程中之施肥、除草等數據。例如,資訊可包含與農作物(例如,稻米)的生產者及/或產地及/或育苗及/或插秧及/或科學化田間管理及/或稻穗成長期及/或稻穗完熟期及/或收割前安全檢測及/或收割及/或分級烘乾及/或專業碾製及/或分級包裝及/或混米情況的相關資訊;而對於其他作物,例如,茶業,而言,生產履歷資訊所包含的資訊亦類似於稻米履歷資訊。
區塊鏈可說是電子記帳資料庫,是一種「將資料寫錄存儲的技術」。於每一節點中內皆儲存一份分散式帳本,而所有帳本都具備功能並互相連結,其中,參與區塊鏈的電腦稱為節點,由這些節點之間互相連線並分享資料,形成一個分散式的帳本,每個節點都可以驗證交易、廣播交易、產生區塊,並將新生成的區塊(block)傳送至其他節點。區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
以區塊鏈不可竄改性雜湊函式(Hash function)而言,雜湊函式(Hash function)是一種從任何一種資料中建立「數位指紋」的方法,可以把轉換訊息以較小且固定大小的資料格式,可保證傳遞資料的真實性;其特性為運算速度快,不可逆性亦即無法從雜湊值回推原本的資料,根據同一函式而得的兩個不相同雜湊值,表示原始的輸入是不相同的,根據同一函式而得的兩個相同雜湊值,其原始輸入不一定相同。
以雜湊值(Hash value)而言,每個區塊的Block Header都會包含一組Previous Block Hash值,這是將前一個區塊的Block Header進行雜湊函式(Hash Function)而得到的值,因此每個區塊之間,都會藉由這個無形的鏈條與先前的區塊環環相扣。
智能合約是區塊鏈中一種制訂合約時所使用的特殊協議,主要用於提供驗證及執行智能合約內所訂定的條件。以太坊作為最多參與者的運行智能合約的區塊鏈,而智慧合約雖然有合約兩字,但其實是將合約條件轉成一串程式碼,當條件成立時,區塊鏈上的電腦便會自動執行合約,完全自動化,但也因此無法人為干預。佈署完智能合約後,我們可以利用合約帳戶與智能合約互動。
介面服務模組,於以太坊區塊鏈網路(Ethereum block-chain network)中之作物履歷資訊系統的該介面服務模組可進行介面顯示動作,於農作物生產端為合約帳戶(CA, Contract Address)之使用者所使用的行動電子裝置之螢幕上將顯示出一使用介面,以便讓使用者能輸入與農作物相關的生產履歷資訊,在此,使用者所使用之輸入方式可為,例如,手指觸碰該使用介面而輸入文字資訊及/或多媒體檔,及/或利用語音輸入,端視實際施行情況而定,進行資料傳送,該使用介面將與農作物相關的該生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)中之配合該介面服務模組的農作物智能合約(smart contract),為該農作物智能合約運作的一個重要依據,該農作物智能合約所仰賴的事件或條件,其資訊是外部的該生產履歷資訊。
農作物智能合約,於以太坊區塊鏈網路(Ethereum block-chain network)中之該農作物智能合約,可進行上鏈動作,存在於每一個以太坊(Ehterum)的節點中之去中心化的虛擬機EVM (Ethereum Virtual Machine)負責執行存放在區塊(block)的該農作物智能合約的bytecode,對該農作物智能合約與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。
資料庫,配合介面服務模組、以及農作物智能合約運作,該資料庫為去中心化的資料庫,於該資料庫中具有去中心化的分散式帳本,於每個完整節點內皆儲存一份資料,亦即,於每一節點中內皆儲存一份具有分散式帳本的資料庫,而所有帳本都具備功能並互相連結,其中,參與區塊鏈的電腦稱為節點,由這些節點之間互相連線並分享資料,形成一個分散式的帳本,每個節點都可以驗證交易、廣播交易、產生區塊,並將新生成的區塊(block)傳送至其他節點;另,區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
例如,以批號作為履歷紀錄的基本單位,當資料庫中新增一批號(亦即新增一筆紀錄),於以太坊區塊鏈網路之作物履歷資訊系統發布對應之農作物智能合約。創建農作物智能合約時根據批號資訊藉由雜湊函數計算初始雜湊函數值,並存入農作物智能合約中之「最新雜湊值」變數。每一筆新增之對應於生產履歷資訊的履歷紀錄,在農作物智能合約中由「上一筆最新雜湊值」加上新增之對應於生產履歷資訊的資料編碼後,以雜湊函數計算雜湊值,存入「最新雜湊值」,並將「最新雜湊值」紀錄於智能合約的「狀態」中。
本發明之作物履歷資訊系統及其方法,由於使用以太坊區塊鏈技術對農作物相關的生產履歷資訊進行區塊鏈資料上鏈,於農作物生產、出貨完成後,消費者可掃描二維條碼QR-code能得知其所購買的農作物的所有真實農作生產歷程相關資訊、且不會有竄改農作物履歷資訊的問題。
利用本發明之作物履歷資訊系統以進行作物履歷資訊方法時,首先,進行介面顯示動作,於農作物生產端為合約帳戶(CA, Contract Address)之使用者所使用的行動電子裝置之螢幕上將顯示出一使用介面,以便讓使用者能輸入與農作物相關的生產履歷資訊;進而,進行資料傳送動作,該使用介面將與農作物相關的該生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)之農作物智能合約(smart contract),為該農作物智能合約運作的一個重要依據,該農作物智能合約所仰賴的事件或條件,其資訊是外部的該生產履歷資訊;繼之,進行上鏈動作,存在於每一個以太坊(Ehterum)的節點中之去中心化的虛擬機EVM (Ethereum Virtual Machine)負責執行存放在區塊(block)的該農作物智能合約的bytecode,對該農作物智能合約與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。
利用本發明之作物履歷資訊系統及其方法,由於使用以太坊區塊鏈技術對農作物相關的生產履歷資訊進行區塊鏈資料上鏈,於農作物生產、出貨完成後,消費者可掃描二維條碼QR-code能得知其所購買的農作物的所有真實農作生產歷程相關資訊、且不會有竄改農作物履歷資訊的問題。
於進行上鏈動作之過程時,首先,進行產生新資料動作,產生一筆新的資料,新的該資料係對應於區塊鏈區塊中的一節點中的使用者經由行動電子裝置使用介面所輸入之與農作物相關的該生產履歷資訊。
繼之,進行節點動作;新的該資料會由以太坊區塊鏈網路中的一個節點(例如,行動電子裝置,電腦等等)來予以代表,節點將交易放進新產生之區塊中;在此,參與區塊鏈的各個行動電子裝置(或電腦)稱為節點,由這些節點之間互相連線並分享資料,形成一個分散式的帳本,每個節點都可以驗證交易、廣播交易、產生區塊。
進而,進行區塊雜湊值驗證;區塊內包含前一個區塊的雜湊值,每一區塊均包含前一區塊的雜湊值、區塊內資料、隨機數(nonce),例如,區塊(n-1)包含前一區塊(n-2)的雜湊值、區塊(n-1)本身的資料、隨機數(nonce),而區塊(n-1)將利用雜湊函式而產生出與其相關的雜湊值(n-1),另,對區塊(n)而言,區塊(n)包含前一區塊(n-1)的雜湊值(n-1)、區塊(n)本身資料、隨機數(nonce),而區塊(n)將利用雜湊函式而產生出與其相關的雜湊值(n),依此類推;其中,智能合約(例如,農作物智能合約)程式碼經編譯過所得bytecode是放在區塊內資料中,而將利用雜湊函式而產生出與其相關的雜湊值;區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
再之,進行廣播動作; 將產生之區塊廣播至所有節點,由其他節點驗證。
繼而,進行節點驗證動作;各個節點驗證並接上新區塊(經驗證之區塊),加入後便加長現有的鏈。
最後,完成上鏈動作,將新區塊(經驗證之區塊)資料儲存於資料庫。
爲使熟悉該項技藝人士瞭解本發明之目的、特徵及功效,茲藉由下述具體實施例,並配合所附之圖式,對本發明詳加說明如後:
第1圖為一系統示意圖,用以顯示說明本發明之作物履歷資訊系統之系統架構、以及運作情形。如第1圖中所示之,作物履歷資訊系統1包含介面服務模組2、農作物智能合約3以及資料庫4。
在作物履歷資訊系統所在之以太坊區塊鏈網路(Ethereum block-chain network)的外部帳戶(EOA, Externally Owned Account)可發布依循農作物生產履歷「條款與條件」(terms and conditions)之為程式碼的農作物智能合約3,而於農作物生產端的外部帳戶(EOA, Externally Owned Account)使用者,,可利用行動電子裝置之螢幕上所顯示出的使用介面,於後續能輸入與農作物相關的生產履歷資訊,在此,使用者即時及/或定期輸入該生產履歷資訊。
在此,生產履歷資訊可包含與農作物(例如,稻米)的生產者及/或產地及/或育苗及/或插秧及/或科學化田間管理及/或稻穗成長期及/或稻穗完熟期及/或收割前安全檢測及/或收割及/或分級烘乾及/或專業碾製及/或分級包裝及/或混米情況的相關資訊;而對於其他作物,例如,茶業,而言,生產履歷資訊所包含的資訊亦類似於稻米履歷資訊。
區塊鏈上都是以地址為身份辨識進行,所以欲使用農作物智能合約3,使用者必須先安裝/擁有Ethereum的錢包地址才能夠跟農作物智能合約3互動,例如,網頁錢包Chrome的擴充套件metamask,使用者於安裝上Metamask後即擁有網頁錢包,也可以透過Metamask對農作物智能合約3發起交易。
合約帳戶(CA)是農作物智能合約3部署到作物履歷資訊系統1所在之以太坊區塊鏈網路後所產生的帳戶,只要與該農作物智能合約3互動就是對合約位址發起交易(transaction),在帳戶之間的交易可能導致狀態(state)轉換,因為有農作物智能合約3,所以帳戶分成外部帳戶(EOA)和合約帳戶(CA)兩種類型。
簡單來說,外部帳戶(EOA)就是,於作物履歷資訊系統1所在之以太坊區塊鏈網路發布依循農作物生產履歷「條款與條件」之為程式碼的農作物智能合約3會有的帳戶,而合約帳戶(CA)是農作物智能合約3發布後,所產生的合約帳戶。
以太坊區塊鏈網路的帳戶,分為兩種類型,都得以十六進位的方式表示,佔據20個位元組;外部帳戶(EOA)具有對應的餘額,由私鑰控制,能夠在以太坊區塊鏈網路進行交易,發布合約…等等的執行;合約帳戶(CA)具有對應的餘額,由外部帳戶發布,合約帳戶之間能夠彼此傳遞訊息,內部具有可執行的程式碼和儲存空間,沒有私鑰,受智能合約(例如,農作物智能合約)的程式邏輯所掌控,每個農作物智能合約3在部署後,都會產對應的合約帳戶,可用來接收使用者轉帳智能合約。
例如,-帳戶表示例子:
0xa3754f5b8277b6733ce633f52b5ff229bec012de。
以太幣是以太坊區塊鏈網路使用的貨幣,當某個帳戶執行Transaction或是Message時,以太坊中的每個節點會接收,協助驗證,並運作位於每一節點之虛擬機EVM (Ethereum Virtual Machine)計算對應的Transaction或是Message並將計算結果儲存,運作虛擬機EVM需要消耗制定的Gas數量(由交易發送者支付),Gas必須藉由以太幣購買,以太幣的實際的消耗數量是Gas Used(數量) * Gas Price(單位)。
以太坊區塊鏈網路的農作物智能合約3,得使用 Solidity 來撰寫,在開發到部署農作物智能合約3的流程為:a.使用 Solidity 開發智能合約;b.將撰寫完畢的農作物智能合約3透過 Solidity 的編譯器進行編譯;c.編譯完畢後會產生 bytecode 與 ABI,將 bytecode 部署到以太坊區塊鏈網路中。
ABI 的全名為 Application Binary Interface ,要與農作物智能合約3做溝通的介面就是 ABI,與 API 的概念相似,但程式是二進制編碼,故傳送的資訊也是二進制編碼。
以運作原理而言,經過處理之後,已經將農作物智能合約3的 bytecode 存入以太坊區塊鏈網路的區塊中,當使用者要與農作物智能合約3互動時,就要透過 ABI 以及合約位址來發起交易,以執行農作物智能合約3中的程式,執行合約中的程式即為智能合約的運作原理:在以太坊中的節點都有一個虛擬機EVM,作用就是來執行存在區塊中的 bytecode ,當使用者呼叫農作物智能合約3時,以太坊中的節點就會透過虛擬機EVM 來進行運算,並將相關結果傳給使用者。
於行動電子裝置之螢幕上所顯示出的使用介面是相關於ABI(Application Binary Interface)。
以太坊Ethereum之區塊的設計除了存放交易數據之外,它還可以存放程式碼。以太坊除了存儲(storage)的功能之外,還多增加了運算(compute)的能力。利用特定的程式語言編寫程式碼,將程式碼編譯(compile)後轉換成bytecode並存放在區塊(block)之中。
最新之區塊(block)具有以往其他區塊的歷史交易紀錄,換言之,除非是歷史上第一個啟始區塊,否則最新之區塊將具有其他區塊的歷史交易紀錄。
以太坊提供了一個去中心化的虛擬機來執行bytecode,稱之為虛擬機EVM,虛擬機EVM存在以太坊區塊鏈網路的每一個節點中,負責執行存放在區塊(block)的bytecode。
以太坊的農作物智能合約3,即為給虛擬機EVM所執行的程式碼,儲存在區塊(block)上的bytecode。當以太坊農作物智能合約3在執行的時候它會依照當前的狀態(status)跟使用者所下的指令不同而有不同的結果。
每個智能合約(例如,農作物智能合約3)的目的不同,設計也不同,所定義的互動接口也不同,可稱這些接口為ABI(Application Binary Interface)。
外部帳戶(EOA)寫好農作物智能合約3程式碼,經過編譯後會得到兩個東西。一個是編譯過所得bytecode,另一個就是json格式的ABI文件。當開始要佈署農作物智能合約3到以太坊區塊鏈網路中,就必須用所創造出來的ABI當成是一個殼,把bytecode放在數據(data)中,然後再丟到以太坊區塊鏈網路等待使用者(miner)幫外部帳戶(EOA)把農作物智能合約3寫到區塊(block)中。當農作物智能合約3佈署好之後會自動生成一個帳戶,並會回傳這個帳戶的位址(address),這就是俗稱的合約帳戶CA(contract address account)。可透過合約帳戶的位址(address)來跟農作物智能合約3做互動。
而當對農作物智能合約3下指令時,使用者(miner)會依據指令中的位址(address)去區塊鏈查詢對應合約(contract)狀態(status)。根據合約(contract)當前的狀態和指令作運算。最後把運算後的狀態(status)寫回使用者(miner)所作出來區塊(block)中。當該區塊(block)被其他以太坊區塊鏈網路的節點所接受後,其他節點也會去更新農作物智能合約3的狀態。以太坊區塊鏈網路自己會去同步所有資料,所以每一個節點所取得的農作物智能合約3狀態皆會相同。
區塊鏈起源於中本聰的比特幣,作為比特幣的基礎技術,本質上是個去中心化的資料庫。區塊鏈將所發生的交易紀錄到區塊(Block)中,並藉由網絡參與者共同驗證的方式來確保交易的完整性,採用這項技術賦予金融機構去中介化、高安全性、結算速度快、成本較低、可供監察驗證和資料最終性等優點。
區塊鏈屬於分散式帳本(去中心化的分散式帳本(資料庫) ),於每個完整節點內皆儲存一份資料。分散式帳本與多次驗證的機制,可以達到區塊鏈內的資訊難以被竄改的目的。另,以作物生產履歷而言,可記錄有用的資訊-例如污染指標超過水質標準或是作物生長過程中之施肥、除草等數據。而透過「溯源」機制可以很容易地查詢污染的來源或影響範圍及作物生長過程所有資訊,例如,資訊可包含與農作物(例如,稻米)的生產者及/或產地及/或育苗及/或插秧及/或科學化田間管理及/或稻穗成長期及/或稻穗完熟期及/或收割前安全檢測及/或收割及/或分級烘乾及/或專業碾製及/或分級包裝及/或混米情況的相關資訊;而對於其他作物,例如,茶業,而言,生產履歷資訊所包含的資訊亦類似於稻米履歷資訊。
區塊鏈可說是電子記帳資料庫,是一種「將資料寫錄存儲的技術」。於每一節點中內皆儲存一份分散式帳本,而所有帳本都具備功能並互相連結,其中,參與區塊鏈的電腦稱為節點,由這些節點之間互相連線並分享資料,形成一個分散式的帳本,每個節點都可以驗證交易、廣播交易、產生區塊,並將新生成的區塊(block)傳送至其他節點。區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
以區塊鏈不可竄改性雜湊函式(Hash function)而言,雜湊函式(Hash function)是一種從任何一種資料中建立「數字指紋」的方法,可以把訊息或是資料壓縮成摘要,使資料量變小,固定資料的格式,可保證傳遞資料的真實性;而特性為運算速度快,不可逆性亦即無法從雜湊值回推原本的資料,根據同一函式而得的兩個不相同雜湊值,表示原始的輸入是不相同的,根據同一函式而得的兩個相同雜湊值,其原始輸入不一定相同。
以雜湊值(Hash value)而言,每個區塊的Block Header都會包含一組Previous Block Hash值,這是將前一個區塊的Block Header進行雜湊函式(Hash Function)而得到的值,因此每個區塊之間,都會藉由這個無形的鏈條與先前的區塊環環相扣。
以智能合約而言,是區塊鏈中一種制訂合約時所使用的特殊協議,主要用於提供驗證及執行智能合約內所訂定的條件。以太坊作為第一個運行智能合約的平台,而智慧合約雖然有合約兩字,但其實是將合約條件轉成一串程式碼,當條件成立時,區塊鏈上的電腦便會自動執行合約,完全自動化,但也因此無法人為干預。佈署完智能合約後,我們可以利用合約帳戶與智能合約互動。
介面服務模組2,於以太坊區塊鏈網路(Ethereum block-chain network)中之作物履歷資訊系統1的該介面服務模組2可進行介面顯示動作,於農作物生產端為合約帳戶(CA, Contract Address)之使用者所使用的行動電子裝置之螢幕上將顯示出一使用介面,以便讓使用者能輸入與農作物相關的生產履歷資訊,在此,使用者所使用之輸入方式可為,例如,手指觸碰該使用介面而輸入文字資訊及/或多媒體檔,及/或,利用語音輸入,端視實際施行情況而定;進行資料傳送動作,該使用介面將與農作物相關的該生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)中之配合該介面服務模組2的農作物智能合約3,在此,為該農作物智能合約3運作的一個重要依據,該農作物智能合約3所仰賴的事件或條件,其資訊是外部的該生產履歷資訊。
農作物智能合約3,於以太坊區塊鏈網路(Ethereum block-chain network)中之該農作物智能合約3,可進行上鏈動作,存在於每一個以太坊(Ehterum)的節點中之去中心化的虛擬機EVM (Ethereum Virtual Machine)負責執行存放在區塊(block)的該農作物智能合約3的bytecode,對該農作物智能合約3與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。
資料庫4,配合介面服務模組2、以及農作物智能合約3運作,該資料庫4為去中心化的資料庫,於該資料庫4中具有去中心化的分散式帳本,於每個完整節點內皆儲存一份資料,亦即,於每一節點中內皆儲存一份具有分散式帳本的資料庫,而所有帳本都具備功能並互相連結,其中,參與區塊鏈的行動電子裝置(或電腦)稱為節點,由這些節點之間互相連線並分享資料,形成一個分散式的帳本,每個節點都可以驗證交易、廣播交易、產生區塊,並將新生成的區塊(block)傳送至其他節點;另,區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
在此,例如,以批號作為履歷紀錄的基本單位,當資料庫中新增一批號(亦即新增一筆紀錄),於以太坊區塊鏈網路之作物履歷資訊系統1發布對應之農作物智能合約3。創建農作物智能合約3時根據批號資訊藉由雜湊函數計算初始雜湊函數值,並存入農作物智能合約3中之「最新雜湊值」變數。每一筆新增之對應於生產履歷資訊的履歷紀錄,在農作物智能合約3中由「上一筆最新雜湊值」加上新增之對應於生產履歷資訊的資料編碼後,以雜湊函數計算雜湊值,存入「最新雜湊值」,並將「最新雜湊值」紀錄於資料庫4中。
作物履歷資訊系統1由於使用以太坊區塊鏈技術對農作物相關的生產履歷資訊進行區塊鏈資料上鏈,於農作物生產、出貨完成後,消費者可掃描二維條碼QR-code能得知其所購買的農作物的所有真實農作生產歷程相關資訊、且不會有竄改農作物履歷資訊的問題,在此,透過「溯源」機制可以很容易地查詢污染的來源或影響範圍及作物生長過程所有資訊,例如,資訊可包含與農作物(例如,稻米)的生產者及/或產地及/或育苗及/或插秧及/或科學化田間管理及/或稻穗成長期及/或稻穗完熟期及/或收割前安全檢測及/或收割及/或分級烘乾及/或專業碾製及/或分級包裝及/或混米情況的相關資訊;而對於其他作物,例如,茶業,而言,生產履歷資訊所包含的資訊亦類似於稻米履歷資訊。
於進行上鏈動作之過程時,首先,進行產生新資料動作,產生一筆新的資料,新的該資料係對應於區塊鏈區塊中的一節點中的使用者經由行動電子裝置之使用介面所輸入之與農作物相關的該生產履歷資訊。
繼之,進行節點動作;新的該資料會由以太坊區塊鏈網路中的一個節點(例如,行動電子裝置,電腦等等)來予以代表,節點將交易放進包含農作物智能合約3之區塊中;在此,參與區塊鏈的各個行動電子裝置(或電腦)稱為節點,由這些節點之間互相連線並分享資料,形成一個分散式的帳本,每個節點都可以驗證交易、廣播交易、產生區塊。
進而,進行區塊雜湊值驗證,區塊內包含前一個區塊的雜湊值,每一區塊均包含前一區塊的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中;在此,例如,區塊(n-1)包含前一區塊(n-2)的雜湊值、區塊內資料、隨機數(nonce),而區塊(n-1)將利用雜湊函式而產生出與其相關的雜湊值(n-1),另,對區塊(n)而言,區塊(n)包含前一區塊(n-1)的雜湊值(n-1)、區塊內資料、隨機數(nonce),而區塊(n)將利用雜湊函式而產生出與其相關的雜湊值(n),依此類推;其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中,而將利用雜湊函式而產生出與其相關的雜湊值;區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
再之,進行廣播動作;將驗證之包含智能合約(例如,農作物智能合約)之新生成的區塊(block)廣播傳送至所有節點進行公開(Publication)。
繼而,進行節點驗證動作;各個節點驗證並接上新區塊(經驗證之區塊),加入後形成新的鏈。
最後,完成上鏈動作,將新區塊(經驗證之區塊)資料儲存於資料庫4。
介面服務模組2係為硬體、韌體、以及軟體的至少其中之一,配合使用者所使用的行動電子裝置的處理器(未圖示之)而進行動作;而農作物智能合約3位於節點的電子裝置的區塊、資料庫4則位於節點的電子裝置。
另,於實際施行時,當使用者所操作之行動電子裝置及/或位於節點的電子裝置如,個人電腦、伺服器、Android手機、iPhone、平板電腦、iPad等,使用介面將為,瀏覽器畫面、Android手機應用程式App介面、iPhone手機應用程式App介面、平板電腦應用程式App介面、iPad應用程式App介面的其中之一。
第2圖為一流程圖,用以顯示說明利用如第1圖中之本發明之作物履歷資訊系統以進行作物履歷資訊方法的流程步驟。如第2圖中所示之,首先,於步驟101,進行介面顯示動作;於以太坊區塊鏈網路(Ethereum block-chain network)中之作物履歷資訊系統1的該介面服務模組2可進行介面顯示動作,於農作物生產端為合約帳戶(CA, Contract Address)之使用者所使用的行動電子裝置之螢幕上將顯示出一使用介面,以便讓使用者能輸入與農作物相關的生產履歷資訊,在此,使用者所使用之輸入方式可為,例如,手指觸碰該使用介面而輸入文字資訊及/或多媒體檔,及/或,利用語音輸入,端視實際施行情況而定,並進到步驟102。
於步驟102,進行資料傳送動作;該使用介面將與農作物相關的該生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)中之配合該介面服務模組2的農作物智能合約3,在此,為該農作物智能合約3運作的一個重要依據,該農作物智能合約3所仰賴的事件或條件,其資訊是外部的該生產履歷資訊,並進到步驟103。
於步驟103,進行上鏈動作;於以太坊區塊鏈網路(Ethereum block-chain network)中之該農作物智能合約3,可進行上鏈動作,存在於每一個以太坊(Ehterum)的節點中之去中心化的虛擬機EVM (Ethereum Virtual Machine)負責執行存放在區塊(block)的該農作物智能合約3的bytecode,對該農作物智能合約3與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。
第3圖為一示意圖,用以顯示說明於第2圖中之作物履歷資訊方法的上鏈動作之過程的詳細步驟。如第3圖中所示之,首先,於步驟1031,進行產生新資料動作;產生一筆新的資料,新的該資料係對應於區塊鏈區塊中的一節點中的使用者經由行動電子裝置之使用介面所輸入之與農作物相關的該生產履歷資訊,並進到步驟1032。
於步驟1032,進行節點動作;新的該資料會由以太坊區塊鏈網路中的一個節點(例如,行動電子裝置,電腦等等)來予以代表,節點將交易放進包含農作物智能合約3之區塊中;在此,參與區塊鏈的各個行動電子裝置(或電腦)稱為節點,由這些節點之間互相連線並分享資料,形成一個分散式的帳本,每個節點都可以驗證交易、廣播交易、產生區塊,並進到步驟1033。
於步驟1033,進行區塊雜湊值驗證;區塊內包含前一個區塊的雜湊值,每一區塊均包含前一區塊的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中;在此,例如,區塊(n-1)包含前一區塊(n-2)的雜湊值、區塊內資料、隨機數(nonce),而區塊(n-1)將利用雜湊函式而產生出與其相關的雜湊值(n-1),另,對區塊(n)而言,區塊(n)包含前一區塊(n-1)的雜湊值(n-1)、區塊內資料、隨機數(nonce),而區塊(n)將利用雜湊函式而產生出與其相關的雜湊值(n),依此類推;其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中,而將利用雜湊函式而產生出與其相關的雜湊值;區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁,並進到步驟1034。
於步驟1034,進行廣播動作;將驗證之包含智能合約(例如,農作物智能合約)之新生成的區塊(block)廣播傳送至所有節點進行公開,並進到步驟1035。
於步驟1035,進行節點驗證動作;各個節點驗證並接上新區塊(經驗證之區塊),加入後形成新的鏈,並進到步驟1036。
於步驟1036,完成上鏈動作,最後,完成上鏈動作,將新區塊(經驗證之區塊)資料儲存於資料庫4。
第4圖為一示意圖,用以顯示說明利用本發明之作物履歷資訊系統的一實施例的系統架構、以及運作情形。如第4圖中所示之,作物履歷資訊系統1包含介面服務模組2、農作物智能合約3以及資料庫4,其中,該作物履歷資訊系統1係分布在以太坊區塊鏈網路5中,而於以太坊區塊鏈網路5中至少具有節點51與節點52。
區塊鏈上都是以地址為身份辨識進行,所以欲使用農作物智能合約3,為合約帳戶的使用者6、7必須先分別安裝/擁有Ethereum的錢包地址才能夠跟農作物智能合約3互動,例如,網頁錢包Chrome的擴充套件metamask,使用者6、7於分別安裝上Metamask後即擁有網頁錢包,也可以透過Metamask對農作物智能合約3發起交易。。
農作物智能合約3在作物履歷資訊系統1所在之以太坊區塊鏈網路5予以發布後,於節點51的使用者6所使用的行動電子裝置511的區塊1001包含前一區塊1000的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊(1000、1001)資料中;於節點52的使用者7所使用的行動電子裝置521的區塊1001包含前一區塊1000的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊(1000)或區塊(1001)資料中;在此,使用者6與使用者7係分別為在農作物生產端為合約帳戶的使用者。
當使用者6、7要與區塊1001中的農作物智能合約3互動時,就要透過 ABI 以及合約位址來發起交易,以執行農作物智能合約3中的程式,執行合約中的程式即為智能合約的運作原理:在以太坊中的節點51、52都分別有一個虛擬機EVM,作用就是來執行存在區塊1001中的 bytecode。
在此,例如,當使用者6呼叫農作物智能合約3時,以太坊中的節點51就會透過虛擬機EVM 來進行運算,並將相關結果分別傳給使用者6、7。
於分別之行動電子裝置511、521之螢幕上所顯示出的使用介面是相關於ABI(Application Binary Interface)。
區塊鏈可說是電子記帳資料庫,是一種「將資料寫錄存儲的技術」。於每一節點中內皆儲存一份分散式帳本,而所有帳本都具備功能並互相連結,其中,參與區塊鏈的行動電子裝置511、521分別稱為節點51、52,由這些節點51、52之間互相連線並分享資料,形成一個分散式的帳本,每個節點51、52都可以驗證交易、廣播交易、產生區塊,並將新生成的區塊(block)傳送至其他節點。區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
每個區塊的Block Header都會包含一組前一雜湊(Previous Block Hash)值,這是將前一個區塊的Block Header進行雜湊函式(Hash Function)而得到的值,因此每個區塊之間,都會藉由這個無形的鏈條與先前的區塊環環相扣。
介面服務模組2,於以太坊區塊鏈網路(Ethereum block-chain network)中之節點51之行動電子裝置511、節點52之行動電子裝置521的作物履歷資訊系統1的該介面服務模組2可進行介面顯示動作,於農作物生產端為合約帳戶之使用者6、7所分別使用的行動電子裝置511、521之螢幕上將顯示出一使用介面,以便讓使用者6、7能分別輸入與農作物相關的生產履歷資訊,在此,例如,使用者6所使用之輸入方式可為,例如,手指觸碰該使用介面而輸入文字資訊及/或多媒體檔,及/或,使用者7所使用之輸入方式為利用語音輸入,端視實際施行情況而定;進行資料傳送動作,在此,使用者6使用行動電子裝置511的該使用介面配合該介面服務模組2將與農作物相關的該生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)中之於節點51的行動電子裝置511的區塊1001的農作物智能合約3(農作物智能合約3程式碼經編譯過所得的bytecode)。
農作物智能合約3,在以太坊區塊鏈網路(Ethereum block-chain network)中節點51的行動電子裝置511的區塊1001之該農作物智能合約3程式碼經編譯過所得的bytecode,可進行上鏈動作;存在於每一個以太坊的節點中之去中心化的虛擬機EVM負責執行存放在區塊(block)的該農作物智能合約3的bytecode,對該農作物智能合約3與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。
資料庫4,分別於節點51、52的行動電子裝置511、521配合介面服務模組2、以及農作物智能合約3運作,該資料庫4為去中心化的資料庫,於該資料庫4中具有去中心化的分散式帳本,於每個完整節點內皆儲存一份資料,亦即,於每一節點51、52中內皆儲存一份具有分散式帳本的資料庫,而所有帳本都具備功能並互相連結,其中,參與區塊鏈的行動電子裝置511、521分別稱為節點51、52,由這些節點51、52之間互相連線並分享資料,形成一個分散式的帳本,每個節點51、52都可以驗證交易、廣播交易、產生區塊,並將新生成的區塊(block)傳送至其他節點;另,區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
在此,例如,以批號作為履歷紀錄的基本單位,當資料庫4中新增一批號(亦即新增一筆紀錄),於以太坊區塊鏈網路之作物履歷資訊系統1發布對應之農作物智能合約3。創建農作物智能合約3時根據批號資訊藉由雜湊函數計算初始雜湊函數值,並存入農作物智能合約3中之「最新雜湊值」變數。每一筆新增之對應於生產履歷資訊的履歷紀錄,在農作物智能合約3中由「上一筆最新雜湊值」加上新增之對應於生產履歷資訊的資料編碼後,以雜湊函數計算雜湊值,存入「最新雜湊值」,並將「最新雜湊值」紀錄於資料庫4中。
作物履歷資訊系統1由於使用以太坊區塊鏈技術對農作物相關的生產履歷資訊進行區塊鏈資料上鏈,於農作物生產、出貨完成後,消費者可掃描二維條碼QR-code能得知其所購買的農作物的所有真實農作生產歷程相關資訊、且不會有竄改農作物履歷資訊的問題。
於進行上鏈動作之過程時,首先,進行產生新資料動作;產生一筆新的資料,新的該資料係對應於區塊鏈中的一節點51中的使用者6經由行動電子裝置511之使用介面所輸入之與農作物相關的該生產履歷資訊。
繼之,進行節點動作,新的該資料會由以太坊區塊鏈網路中的一個節點51來予以代表,節點51將交易放進包含農作物智能合約3之區塊1002中;在此,參與區塊鏈的各個行動電子裝置511、521分別稱為節點51、52,由這些節點51、52之間互相連線並分享資料,形成一個分散式的帳本,每個節點51、52都可以驗證交易、廣播交易、產生包含農作物智能合約3之區塊。
進而,進行區塊雜湊值驗證,區塊1002包含前一區塊1001的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中,而區塊1002將利用雜湊函式而產生出與其相關的雜湊值,依此類推;區塊鏈就像一本帳本,各個區塊1000、1001、1002就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
再之,進行廣播動作; 將驗證之包含農作物智能合約3之新生成的區塊1002廣播傳送至所有節點51、52進行公開。
繼而,進行節點驗證動作;各個節點51、52驗證並接上新區塊(經驗證之區塊)1002,加入後形成新的鏈。
最後,完成上鏈動作,將新區塊(經驗證之區塊)1002資料儲存於資料庫。
介面服務模組2係為硬體、韌體、以及軟體的至少其中之一,配合使用者6、7所使用的行動電子裝置511、521的處理器(未圖示之)而進行動作;而農作物智能合約3位於節點51、52的行動電子裝置511、521的原區塊1001以及新的區塊1002、資料庫4則位於節點51、52的行動電子裝置511、521。
雖於本實施例中,本發明之作物履歷資訊系統的技術特徵、內容係為利用以太坊區塊鏈網路中之節點51、52的使用者6、7來予以說明,然,對於其他數目的使用者而言,例如,為合約帳戶之三位以上之使用者,其理相同、類似於本實施例中所述,是故,在此不再贅述之。
又,於本實施例中,雖是僅說明使用者6利用本發明之作物履歷資訊系統進行操作的技術特徵,惟,對於使用者7利用語音輸入而言,其理相同、類似於本實施例中所述;再,雖於本實施例中,係僅使用者6輸入生產履歷資訊,惟,對於使用者6與使用者7同時或是先後輸入其生產履歷資訊而言,例如,使用者7可先將其生產履歷資訊經由行動電子裝置521而傳送至使用者6之行動電子裝置511,再經由使用者6利用行動電子裝置511之使用介面而輸入使用者7的生產履歷資訊、以及使用者6本身的生產履歷資訊,換言之,使用者6除輸入其本身的生產履歷資訊之外,亦可利用行動電子裝置511之使用介面輸入使用者7的生產履歷資訊,其理相同、類似於本實施例中所述,是故,在此不再贅述之。
再,於本實施例中,雖使用者6、7所操作的是行動電子裝置,惟,對於電腦、伺服器而言,其理相同、類似於本實施例中所述,是故,在此不再贅述之。
另,於實際施行時,當使用者6、7所操作之位於節點51、52的行動電子裝置511、521係為,例如, Android手機、iPhone、平板電腦、iPad的其中之一,,因而,使用介面將為,例如,瀏覽器畫面、Android手機應用程式App介面、iPhone手機應用程式App介面、平板電腦應用程式App介面、iPad應用程式App介面的其中之一。
第5圖為一示意圖,用以顯示說明第4圖中的行動電子裝置的運作情形。如第5圖中所示之,於行動電子裝置511、521上作物履歷資訊系統1的運作情況;其中,節點51、52的行動電子裝置511、521可分別具有區塊1000、1001、1002,而各區塊可包含農作物智能合約3。
第6圖為一流程圖,用以顯示說明利用如第4圖中之本發明之作物履歷資訊系統的一實施例以進行作物履歷資訊方法的一流程步驟。如第6圖中所示之,首先,於步驟201,進行介面顯示動作;於以太坊區塊鏈網路(Ethereum block-chain network)中之節點51之行動電子裝置511、節點52之行動電子裝置521的作物履歷資訊系統1的該介面服務模組2可進行介面顯示動作,於農作物生產端為合約帳戶之使用者6、7所分別使用的行動電子裝置511、521之螢幕上將顯示出一使用介面,以便讓使用者6、7能分別輸入與農作物相關的生產履歷資訊,在此,例如,使用者6所使用之輸入方式可為,例如,手指觸碰該使用介面而輸入文字資訊及/或多媒體檔,及/或,使用者7所使用之輸入方式為利用語音輸入,端視實際施行情況而定,並進到步驟202。
在此,例如,可為使用者6輸入生產履歷資訊,惟,對於使用者6與使用者7同時或是先後輸入其生產履歷資訊而言,例如,使用者7可先將其生產履歷資訊經由行動電子裝置521而傳送至使用者6之行動電子裝置511,再經由使用者6利用行動電子裝置511之使用介面而輸入使用者7的生產履歷資訊、以及使用者6本身的生產履歷資訊,換言之,使用者6除輸入其本身的生產履歷資訊之外,亦可利用行動電子裝置511之使用介面輸入使用者7的生產履歷資訊,端視實際施行情況而定。
於步驟202,進行資料傳送動作;使用者6使用行動電子裝置511的該使用介面配合該介面服務模組2將與農作物相關的該生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)中之於節點51的行動電子裝置511的區塊1001的農作物智能合約3(農作物智能合約3程式碼經編譯過所得的bytecode),並進到步驟203。
於步驟203,進行上鏈動作;在以太坊區塊鏈網路(Ethereum block-chain network)中節點51的行動電子裝置511的區塊1001之該農作物智能合約3程式碼經編譯過所得的bytecode,可進行上鏈動作;存在於每一個以太坊的節點中之去中心化的虛擬機EVM負責執行存放在區塊(block)的該農作物智能合約3的bytecode,對該農作物智能合約3與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。
第7圖為一示意圖,用以顯示說明於第6圖中之作物履歷資訊方法的上鏈動作之過程的詳細步驟。如第7圖中所示之,首先,於步驟2031,進行產生新資料動作;產生一筆新的資料,新的該資料係對應於區塊鏈中的一節點51中的使用者6經由行動電子裝置511之使用介面所輸入之與農作物相關的該生產履歷資訊,並進到步驟2032。
於步驟2032, 繼之,進行節點動作,新的該資料會由以太坊區塊鏈網路中的一個節點51來予以代表,節點51將交易放進包含農作物智能合約3之區塊1002中;在此,參與區塊鏈的各個行動電子裝置511、521分別稱為節點51、52,由這些節點51、52之間互相連線並分享資料,形成一個分散式的帳本,每個節點51、52都可以驗證交易、廣播交易、產生包含農作物智能合約3之區塊,並進到步驟2033。
於步驟2033,進行區塊雜湊值驗證;區塊1002包含前一區塊1001的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中,而區塊1002將利用雜湊函式而產生出與其相關的雜湊值,依此類推;區塊鏈就像一本帳本,各個區塊1000、1001、1002就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁,並進到步驟2034。
於步驟2034,進行廣播動作;將驗證之包含農作物智能合約3之新生成的區塊1002廣播傳送至所有節點51、52進行公開,並進到步驟2035。
於步驟2035,進行節點驗證動作;各個節點51、52驗證並接上新區塊(經驗證之區塊)1002,加入後形成新的鏈,並進到步驟2036。
於步驟2036,完成上鏈動作,將新區塊(經驗證之區塊)1002資料儲存於資料庫4。
第8圖為一示意圖,用以顯示說明利用本發明之作物履歷資訊系統的另一實施例的系統架構、以及運作情形。如第8圖中所示之,作物履歷資訊系統1包含介面服務模組2、農作物智能合約3以及資料庫4,其中,該作物履歷資訊系統1係分布在以太坊區塊鏈網路5中,而於以太坊區塊鏈網路5中至少具有節點53與節點54。
區塊鏈上都是以地址為身份辨識進行,所以欲使用農作物智能合約3,使用者6、7必須先分別安裝/擁有Ethereum的錢包地址才能夠跟農作物智能合約3互動,例如,網頁錢包Chrome的擴充套件metamask,使用者6、7於分別安裝上Metamask後即擁有網頁錢包,也可以透過Metamask對農作物智能合約3發起交易。
農作物智能合約3在作物履歷資訊系統1所在之以太坊區塊鏈網路5予以發布後,於節點53的使用者6所使用的行動電子裝置531的區塊2001包含前一區塊2000的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中;於節點54的使用者7所使用的行動電子裝置541的區塊2001包含前一區塊2000的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中;在此,使用者6與使用者7係分別為在農作物生產端為合約帳戶的使用者。
當使用者6、7要與區塊中的農作物智能合約3互動時,就要透過 ABI 以及合約位址來發起交易,以執行農作物智能合約3中的程式,執行合約中的程式即為智能合約的運作原理:在以太坊中的節點53、54都分別有一個虛擬機EVM,作用就是來執行存在區塊2001中的 bytecode。
介面服務模組2,於以太坊區塊鏈網路(Ethereum block-chain network)中之節點53之行動電子裝置531、節點54之行動電子裝置541的作物履歷資訊系統1的該介面服務模組2可進行介面顯示動作,於農作物生產端為合約帳戶之使用者6、7所分別使用的行動電子裝置531、542之螢幕上將顯示出一使用介面,以便讓使用者6、7能分別輸入與農作物相關的生產履歷資訊,在此,例如,使用者6將呼叫農作物智能合約3而使用者7亦呼叫農作物智能合約3;當使用者6、7呼叫農作物智能合約3時,以太坊中的節點53、54就會透過虛擬機EVM 來進行運算,並將相關結果分別傳給使用者6、7,收到結果後會經由 ABI 把二進制編碼分別轉換成使用者6、7能夠讀懂的資訊。
在此,例如,使用者6所使用之輸入方式可為,例如,手指觸碰該使用介面而輸入文字資訊及/或多媒體檔,及/或,使用者7所使用之輸入方式為利用語音輸入,端視實際施行情況而定;進行資料傳送動作,在此,使用者6、7分別使用行動電子裝置531、541的該使用介面配合該介面服務模組2將各別之生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)中之於節點53、53的行動電子裝置531、541的區塊的農作物智能合約3(農作物智能合約3程式碼經編譯過所得的bytecode)。
農作物智能合約3,在以太坊區塊鏈網路(Ethereum block-chain network)中節點53的行動電子裝置531、節點54的行動電子裝置541的區塊2001之該農作物智能合約3程式碼經編譯過所得的bytecode,可進行上鏈動作;存在於每一個以太坊的節點中之去中心化的虛擬機EVM負責執行存放在區塊(block)的該農作物智能合約3的bytecode,對該農作物智能合約3與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。
資料庫4,分別於節點53、54的行動電子裝置531、541配合介面服務模組2、以及農作物智能合約3運作,該資料庫4為去中心化的資料庫,於該資料庫4中具有去中心化的分散式帳本,於每個完整節點內皆儲存一份資料,亦即,於每一節點53、54中內皆儲存一份具有分散式帳本的資料庫,而所有帳本都具備功能並互相連結,其中,參與區塊鏈的行動電子裝置531、541分別稱為節點53、54,由這些節點53、54之間互相連線並分享資料,形成一個分散式的帳本,每個節點53、54都可以驗證交易、廣播交易、產生區塊,並將新生成的區塊(block)傳送至其他節點;另,區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
於進行使用者6上鏈動作之過程時,首先,進行產生新資料動作;新的該資料係對應於使用者6、7分別使用行動電子裝置531、541的一使用介面所分別輸入的生產履歷資訊,在此,由於係使用者6先進行其生產履歷資訊輸入,是故,所產生一筆新的資料,係對應於區塊鏈中的節點53中的使用者6經由行動電子裝置531之使用介面所輸入之與農作物相關的該生產履歷資訊。
繼之,進行節點動作;新的該資料會由以太坊區塊鏈網路中的節點53來予以代表,節點53將交易放進包含農作物智能合約3之區塊2002中;在此,參與區塊鏈的各個行動電子裝置531、541分別稱為節點53、54,由這些節點53、54之間互相連線並分享資料,形成一個分散式的帳本,每個節點53、54都可以驗證交易、廣播交易、產生包含農作物智能合約3之區塊。
進而,進行區塊雜湊值驗證;區塊2002包含前一區塊2001的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中,而區塊2002將利用雜湊函式而產生出與其相關的雜湊值,依此類推;區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
再之,進行廣播動作;將驗證之包含農作物智能合約3之新生成的區塊2002廣播傳送至所有節點53、54進行公開。
繼而,進行節點驗證動作;各個節點53、54驗證並接上新區塊(經驗證之區塊)2002,加入後形成新的鏈。
最後,完成上鏈動作,將新區塊(經驗證之區塊)2002資料儲存於資料庫4。
在此,由於使用者6先輸入生產履歷資訊,是故,先處理與使用者6相關的區塊操作,且,將再進行使用者7的上鏈動作過程。
於進行使用者7上鏈動作之過程時,首先,進行產生新資料動作;新的該資料係對應於使用者7使用行動電子裝置521的一使用介面所分別輸入的生產履歷資訊,所產生一筆新的資料,係對應於區塊鏈中的節點54中的使用者7經由行動電子裝置541之使用介面所輸入之與農作物相關的該生產履歷資訊。
繼之,進行節點動作;新的該資料會由以太坊區塊鏈網路中的節點54來予以代表,節點54將交易放進包含農作物智能合約3之區塊2003中;在此,參與區塊鏈的各個行動電子裝置531、541分別稱為節點53、54,由這些節點53、54之間互相連線並分享資料,形成一個分散式的帳本,每個節點53、54都可以驗證交易、廣播交易、產生包含農作物智能合約3之區塊。
進而,進行區塊雜湊值驗證;區塊2003包含前一區塊2002的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中,而區塊2003將利用雜湊函式而產生出與其相關的雜湊值,依此類推;區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁。
再之,進行廣播動作;將驗證之包含農作物智能合約3之新生成的區塊2003廣播傳送至所有節點53、54進行公開。
繼而,進行節點驗證動作;各個節點53、54驗證並接上新區塊(經驗證之區塊)2003,加入後形成新的鏈。
最後,完成上鏈動作,將新區塊(經驗證之區塊)2003資料儲存於資料庫4。
介面服務模組2係為硬體、韌體、以及軟體的至少其中之一,配合使用者6、7所使用的行動電子裝置531、541的處理器(未圖示之)而進行動作;而農作物智能合約3位於節點53、54的行動電子裝置531、541的原區塊2001、2002以及新的區塊2003、資料庫4則位於節點53、54的行動電子裝置531、541。
雖於本實施例中,本發明之作物履歷資訊系統的技術特徵、內容係為利用以太坊區塊鏈網路中之節點53、54的使用者6、7來予以說明,然,對於其他數目的使用者而言,例如,三位以上之使用者,其理相同、類似於本實施例中所述,是故,在此不再贅述之。
再,於本實施例中,雖使用者6、7所操作的是行動電子裝置,惟,對於電腦、伺服器而言,其理相同、類似於本實施例中所述,是故,在此不再贅述之。
另,於實際施行時,當使用者6、7所操作之位於節點53、54的行動電子裝置531、541係為,例如,Android手機、iPhone、平板電腦、iPad的其中之一,因而,使用介面將為,例如,瀏覽器畫面、Android手機應用程式App介面、iPhone手機應用程式App介面、平板電腦應用程式App介面、iPad應用程式App介面的其中之一。
第9圖為一示意圖,用以顯示說明第8圖中的行動電子裝置的運作情形。如第8圖中所示之,於行動電子裝置531、541上作物履歷資訊系統1的運作情況;其中,節點53、54的行動電子裝置531、541可分別具有區塊2000、2001、2002、2003,而各區塊可包含農作物智能合約3。
第10圖為一流程圖,用以顯示說明利用如第8圖中之本發明之作物履歷資訊系統的另一實施例以進行作物履歷資訊方法的一流程步驟。如第10圖中所示之,首先,於步驟301,進行介面顯示動作;於以太坊區塊鏈網路中之節點53之行動電子裝置531、節點54之行動電子裝置541的作物履歷資訊系統1的該介面服務模組2可進行介面顯示動作,於農作物生產端為合約帳戶之使用者6、7所分別使用的行動電子裝置531、542之螢幕上將顯示出一使用介面,以便讓使用者6、7能分別輸入與農作物相關的生產履歷資訊,在此,例如,使用者6將呼叫農作物智能合約3而使用者7亦呼叫農作物智能合約3;並進到步驟302。
於步驟302,進行資料傳送動作;在此,使用者6、7分別使用行動電子裝置531、541的該使用介面配合該介面服務模組2將各別之生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)中之於節點53、53的行動電子裝置531、541的區塊的農作物智能合約3(農作物智能合約3程式碼經編譯過所得的bytecode);並進到步驟303。
於步驟303,進行上鏈動作;在以太坊區塊鏈網路中節點53的行動電子裝置531、節點54的行動電子裝置541的區塊2001之該農作物智能合約3程式碼經編譯過所得的bytecode,可進行上鏈動作;存在於每一個以太坊的節點中之去中心化的虛擬機EVM負責執行存放在區塊(block)的該農作物智能合約3的bytecode,對該農作物智能合約3與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。
第11圖為一示意圖,用以顯示說明於第10圖中之作物履歷資訊方法的上鏈動作之過程的詳細步驟。如第10圖中所示之,於進行使用者6上鏈動作之過程時,首先,於步驟3031,進行產生新資料動作;新的該資料係對應於使用者6、7分別使用行動電子裝置531、541的一使用介面所分別輸入的生產履歷資訊,在此,由於係使用者6先進行其生產履歷資訊輸入,是故,所產生一筆新的資料,係對應於區塊鏈中的節點53中的使用者6經由行動電子裝置531之使用介面所輸入之與農作物相關的該生產履歷資訊,並進步驟3032。
於步驟3032,進行節點動作;新的該資料會由以太坊區塊鏈網路中的節點53來予以代表,節點53將交易放進包含農作物智能合約3之區塊2002中;在此,參與區塊鏈的各個行動電子裝置531、541分別稱為節點53、54,由這些節點53、54之間互相連線並分享資料,形成一個分散式的帳本,每個節點53、54都可以驗證交易、廣播交易、產生包含農作物智能合約3之區塊,並進到步驟3033。
於步驟3033,進行區塊雜湊值驗證;區塊2002包含前一區塊2001的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中,而區塊2002將利用雜湊函式而產生出與其相關的雜湊值,依此類推;區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁,並進到步驟3034。
於步驟3034,進行廣播動作;將驗證之包含農作物智能合約3之新生成的區塊2002廣播傳送至所有節點53、54進行公開,並進到步驟3035。
於步驟3035,進行節點驗證動作;各個節點53、54驗證並接上新區塊(經驗證之區塊)2002,加入後形成新的鏈,並進到步驟3036。
於步驟3036,完成上鏈動作,將新區塊(經驗證之區塊)2002資料儲存於資料庫4。
在此,由於使用者6先輸入生產履歷資訊,是故,先處理與使用者6相關的區塊操作,且,將再進行使用者7的上鏈動作過程,而其原理相同、類似於使用者6的上鏈動作過程。
於進行使用者7上鏈動作之過程時,首先,於步驟3037,進行產生新資料動作;新的該資料係對應於使用者7使用行動電子裝置521的一使用介面所分別輸入的生產履歷資訊,所產生一筆新的資料,係對應於區塊鏈中的節點54中的使用者7經由行動電子裝置541之使用介面所輸入之與農作物相關的該生產履歷資訊,並進到步驟3038。
於步驟3038,進行節點動作;新的該資料會由以太坊區塊鏈網路中的節點54來予以代表,節點54將交易放進包含農作物智能合約3之區塊2003中;在此,參與區塊鏈的各個行動電子裝置531、541分別稱為節點53、54,由這些節點53、54之間互相連線並分享資料,形成一個分散式的帳本,每個節點53、54都可以驗證交易、廣播交易、產生包含農作物智能合約3之區塊,並進到步驟3039。
於步驟3039,進行區塊雜湊值驗證;區塊2003包含前一區塊2002的雜湊值、區塊內資料、隨機數(nonce),其中,農作物智能合約3程式碼經編譯過所得bytecode是放在區塊內資料中,而區塊2003將利用雜湊函式而產生出與其相關的雜湊值,依此類推;區塊鏈就像一本帳本,各個區塊(block)就是帳本中的頁面,每一頁的資料都會包含前一頁的內容,所有頁面紀錄的內容又會存入下一頁,並進到步驟3040。
於步驟3040,進行廣播動作;將驗證之包含農作物智能合約3之新生成的區塊2003廣播傳送至所有節點53、54進行公開,並進到步驟3041。
於步驟3041,進行節點驗證動作;各個節點53、54驗證並接上新區塊(經驗證之區塊)2003,加入後形成新的鏈,並進到步驟3042。
於步驟3042,完成上鏈動作,將新區塊(經驗證之區塊)2003資料儲存於資料庫4。
綜合以上之該些實施例,我們可以得到本發明之一種作物履歷資訊系統及其方法,係應用在產銷履歷區塊鏈服務環境中,利用本發明之作物履歷資訊系統以進行作物履歷資訊方法時,首先,進行介面顯示動作,於農作物生產端為合約帳戶(CA, Contract Address)之使用者所使用的行動電子裝置之螢幕上將顯示出一使用介面,以便讓使用者能輸入與農作物相關的生產履歷資訊;進而,進行資料傳送,該使用介面將與農作物相關的該生產履歷資訊傳送至以太坊區塊鏈網路(Ethereum block-chain network)之農作物智能合約(smart contract),在此,為該農作物智能合約運作的一個重要依據,該農作物智能合約所仰賴的事件或條件,其資訊是外部的該生產履歷資訊;繼之,進行上鏈動作,存在於每一個以太坊(Ehterum)的節點中之去中心化的虛擬機EVM (Ethereum Virtual Machine)負責執行存放在區塊(block)的該農作物智能合約的bytecode,對該農作物智能合約與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。利用本發明之作物履歷資訊系統及其方法,由於使用以太坊區塊鏈技術對農作物相關的生產履歷資訊進行區塊鏈資料上鏈,於農作物生產、出貨完成後,消費者可掃描二維條碼QR-code能得知其所購買的農作物的所有真實農作生產歷程相關資訊、且不會有竄改農作物履歷資訊的問題。
以上所述僅為本發明之較佳實施例而已,並非用以限定本發明之範圍;凡其它未脫離本發明所揭示之精神下所完成之等效改變或修飾,均應包含在下述之專利範圍內。
1   作物履歷資訊系統 2   介面服務模組 3   農作物智能合約 4   資料庫 5   以太坊區塊鏈網路 6   使用者 7   使用者 51  52  節點 53  54  節點 101  102  103  步驟 201  202  203  步驟 301  302  303  步驟 511  521  行動電子裝置 531  541  行動電子裝置 1000  1001  1002  區塊 1031  1032  1033  1034  1035  1036  步驟 2000  2001  2002  2003  區塊 2031  2032  2033  2034  2035  2036  步驟 3031  3032  3033  3034  3035  3036  步驟 3037  3038  3039  3040  3041  3042  步驟
第1圖為一系統示意圖,用以顯示說明本發明之作物履歷資訊系統之系統架構、以及運作情形; 第2圖為一流程圖,用以顯示說明利用如第1圖中之本發明之作物履歷資訊系統以進行作物履歷資訊方法的流程步驟; 第3圖為一示意圖,用以顯示說明於第2圖中之作物履歷資訊方法的上鏈動作之過程的詳細步驟; 第4圖為一示意圖,用以顯示說明利用本發明之作物履歷資訊系統的一實施例的系統架構、以及運作情形; 第5圖為一示意圖,用以顯示說明第4圖中的行動電子裝置的運作情形; 第6圖為一流程圖,用以顯示說明利用如第4圖中之本發明之作物履歷資訊系統的一實施例以進行作物履歷資訊方法的一流程步驟; 第7圖為一示意圖,用以顯示說明於第6圖中之作物履歷資訊方法的上鏈動作之過程的詳細步驟; 第8圖為一示意圖,用以顯示說明利用本發明之作物履歷資訊系統的另一實施例的系統架構、以及運作情形; 第9圖為一示意圖,用以顯示說明第8圖中的行動電子裝置的運作情形; 第10圖為一流程圖,用以顯示說明利用如第8圖中之本發明之作物履歷資訊系統的另一實施例以進行作物履歷資訊方法的一流程步驟;以及 第11圖為一示意圖,用以顯示說明於第10圖中之作物履歷資訊方法的上鏈動作之過程的詳細步驟。
101,102,103:步驟

Claims (8)

  1. 一種作物或農產品履歷資訊方法,係應用在產銷履歷區塊鏈服務環境中,包含以下程序:進行介面顯示動作;於農作物生產端為合約帳戶(CA)之二位以上之使用者所使用的行動電子裝置之螢幕上將顯示出使用介面,以便讓該些二位以上之使用者能輸入與農作物相關的生產履歷資訊,其中,該些二位以上之使用者即時及/或定期輸入該生產履歷資訊,該些二位以上之使用者所使用之輸入方式為,手指觸碰該使用介面而輸入文字資訊及/或多媒體檔,及/或,利用語音輸入;進行資料傳送動作;該使用者使用該行動電子裝置的該使用介面配合介面服務模組將與農作物相關的該生產履歷資訊傳送至包含但不限於以太坊的區塊鏈網路中之於一節點之該行動電子裝置之一區塊的農作物智能合約以便進行處理,其中,該農作物智能合約為程式碼經編譯過所得的bytecode;以及進行上鏈動作,其中,在該以太坊的該區塊鏈網路中該節點之該行動電子裝置的該區塊之該農作物智能合約之該程式碼經編譯過所得的該bytecode,進行該上鏈動作;該節點中之去中心化的虛擬機EVM負責執行存放在該區塊的該農作物智能合約的該bytecode,對該農作物智能合約與該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成。
  2. 如申請專利範圍第1項所述之作物履歷資訊方法,其中,該上鏈動作係包含以下步驟:進行產生新資料動作;產生一筆新的資料,新的該資料係對應於該區塊鏈中的該節點中的該使用者經由該行動電子裝置之該使用介面所輸入的該生產履歷資訊;進行節點動作;新的該資料會由該區塊鏈網路中的該節點來予以代表,該節點將交易放進包含該農作物智能合約之另一區塊中;進行區塊雜湊值驗證;該另一區塊包含該區塊的雜湊值、區塊內資料、隨機數,其中,該農作物智能合約的該bytecode放在該另一區塊內資料中,而該另一區塊將利用雜湊函式而產生出與其相關的雜湊值; 進行廣播動作;將驗證之包含該農作物智能合約之新生成的該另一區塊廣播傳送至所有節點進行公開;進行節點驗證動作;該些所有節點中之各個節點驗證並接上經驗證之該另一區塊,於加入後形成新的鏈;以及完成上鏈,將經驗證之該另一區塊資料予以儲存。
  3. 如申請專利範圍第1項或第2項所述之作物履歷資訊方法,其中,該生產履歷資訊可包含但不限於與農作物的生產者及/或產地及/或育苗及/或插秧及/或科學化田間管理及/或稻穗成長期及/或稻穗完熟期及/或收割前安全檢測及/或收割及/或分級烘乾及/或專業碾製及/或分級包裝及/或混米情況的相關資訊。
  4. 如申請專利範圍第3項所述之作物履歷資訊方法,其中,該行動電子裝置係為Android手機、iPhone、平板電腦、iPad的其中之一。
  5. 一種作物履歷資訊系統,係應用在產銷履歷區塊鏈服務環境中,該作物履歷資訊系統係位於包含但不限於以太坊的區塊鏈網路,包含:介面服務模組,該介面服務模組進行介面顯示動作,於農作物生產端為合約帳戶(CA)之二位以上之使用者所使用的行動電子裝置之螢幕上將顯示出使用介面,以便讓該些二位以上之使用者能輸入與農作物相關的生產履歷資訊,其中,該些二位以上之使用者即時及/或定期輸入該生產履歷資訊,該些二位以上之使用者所使用之輸入方式為,手指觸碰該使用介面而輸入文字資訊及/或多媒體檔,及/或,利用語音輸入;農作物智能合約,該使用介面將與農作物相關的該生產履歷資訊傳送至該區塊鏈網路中之配合該介面服務模組的該農作物智能合約以便進行處理;於該區塊鏈網路中之該農作物智能合約,可進行上鏈動作,對該生產履歷資訊進行處理,可進行後續相關動作直至農作物生產、出貨完成;以及資料庫,該資料庫配合該介面服務模組、以及該農作物智能合約運作,為去中心化的資料庫。
  6. 如申請專利範圍第5項所述之作物履歷資訊系統,其中,該資料庫配合該介面服務模組、以及該農作物智能合約運作,於進行該上鏈動作過程時,產生一筆新的資料,新的該資料係對應於該區塊鏈網路的一節點的該些二位以上之使用者的其中一使用者經由該行動電子裝置之該使用介面所輸入之該生產履歷資訊;新的該資料會由該區塊鏈網路的該節點來予以代表,該節點將交易放進包含該農作物智能合約之區塊中,該區塊包含前一區塊的雜湊值、區塊內資料、隨機數;將驗證之包含該農作物智能合約之新生成的該區塊在該區塊鏈網路進行廣播公開;以及,該區塊鏈網路的各個節點驗證並接上該區塊,加入後形成新的鏈並儲存於該資料庫。
  7. 如申請專利範圍第5項或第6項所述之作物履歷資訊系統,其中,該生產履歷資訊可包含但不限於與農作物的生產者及/或產地及/或育苗及/或插秧及/或科學化田間管理及/或稻穗成長期及/或稻穗完熟期及/或收割前安全檢測及/或收割及/或分級烘乾及/或專業碾製及/或分級包裝及/或混米情況的相關資訊。
  8. 如申請專利範圍第7項所述之作物履歷資訊系統,其中,該行動電子裝置係為Android手機、iPhone、平板電腦、iPad的其中之一。
TW109129797A 2020-08-31 2020-08-31 一種作物履歷資訊系統及其方法 TWI759841B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW109129797A TWI759841B (zh) 2020-08-31 2020-08-31 一種作物履歷資訊系統及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109129797A TWI759841B (zh) 2020-08-31 2020-08-31 一種作物履歷資訊系統及其方法

Publications (2)

Publication Number Publication Date
TW202211138A TW202211138A (zh) 2022-03-16
TWI759841B true TWI759841B (zh) 2022-04-01

Family

ID=81747008

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109129797A TWI759841B (zh) 2020-08-31 2020-08-31 一種作物履歷資訊系統及其方法

Country Status (1)

Country Link
TW (1) TWI759841B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI815779B (zh) * 2023-03-17 2023-09-11 英業達股份有限公司 影像編輯驗證系統

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107909372A (zh) * 2017-10-25 2018-04-13 复旦大学 一种基于区块链技术的农产品溯源方法
US20180284093A1 (en) * 2017-03-29 2018-10-04 Innit International S.C.A. Trusted Food Traceability System and Method and Sensor Network
CN110969448A (zh) * 2019-12-02 2020-04-07 山东爱城市网信息技术有限公司 一种基于区块链的农作物溯源的方法及系统
TWI696926B (zh) * 2019-03-26 2020-06-21 財團法人亞洲大學 農產品品質保證之產銷履歷的建立及查詢方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180284093A1 (en) * 2017-03-29 2018-10-04 Innit International S.C.A. Trusted Food Traceability System and Method and Sensor Network
CN107909372A (zh) * 2017-10-25 2018-04-13 复旦大学 一种基于区块链技术的农产品溯源方法
TWI696926B (zh) * 2019-03-26 2020-06-21 財團法人亞洲大學 農產品品質保證之產銷履歷的建立及查詢方法
CN110969448A (zh) * 2019-12-02 2020-04-07 山东爱城市网信息技术有限公司 一种基于区块链的农作物溯源的方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI815779B (zh) * 2023-03-17 2023-09-11 英業達股份有限公司 影像編輯驗證系統

Also Published As

Publication number Publication date
TW202211138A (zh) 2022-03-16

Similar Documents

Publication Publication Date Title
Alkhoori et al. Design and implementation of CryptoCargo: A blockchain-powered smart shipping container for vaccine distribution
Patel et al. AgriOnBlock: Secured data harvesting for agriculture sector using blockchain technology
Silva et al. Blockchain and industry 4.0: overview, convergence, and analysis
CN109872019A (zh) 农产品质量安全追溯方法及系统
KR20210035851A (ko) 블록체인 네트워크를 사용한 태스크 완료
CN110597813B (zh) 一种基于区块链的信息记录方法、装置、设备及存储介质
CN111782551B (zh) 针对区块链项目的测试方法、装置及计算机设备
US11907967B2 (en) Automatic data integration for performance measurement of multiple separate digital transmissions with continuous optimization
TWI759841B (zh) 一種作物履歷資訊系統及其方法
Al Sadawi et al. On the integration of blockchain with IoT and the role of oracle in the combined system: The full picture
Shih et al. Preventing return fraud in reverse logistics—A case study of ESPRES solution by Ethereum
KR20200029136A (ko) 블록체인을 이용한 콘텐츠 스트리밍 서비스 제공 및 운영 시스템
Chen et al. Knowing what is going on—a smart contract for modular construction
CN114240339A (zh) 背景调查方法、装置、存储介质及电子设备
Veisi Visualizing provenance in a supply chain using ethereum blockchain
Mishra et al. Design and Deployment of IoT enabled Blockchain based resilient Supply-chain Management System using Ethereum
Aggarwal et al. Blockchain module for securing data traffic of industrial production machinery on industrial platforms 4.0
CN112487499A (zh) 基于区块链的溯源系统
Hou et al. An on‐chain trading model of real world asset backed digital assets
Teles Data protection with Ethereum blockchain
Nawaz et al. Hyperledger sawtooth based supplychain traceability system for counterfeit drugs
KR20200058146A (ko) 블록 체인 기반 스마트 컨트랙트를 이용한 구독서비스 방법
Wahome Use of block chain in the informal distributed manufacturing industry in Kenya
Kushwaha et al. Hyperledger architecture for Internet of things and supply chain management services
Doglioli Industry 4.0 and blockchain: On the use of distributed ledgers for supply chain management