甄琢 范書國 康愛贏 趙楠 沈陽師范大學
現代農業信息化問題引起了各界的廣泛關注。是國家農業信息化戰略的重要組成部分,國家政府機構也在這一領域投入了大量精力,通過解析農產品物流,農產品供應鏈的概念和內涵,明確了農產品供應鏈及其業務邏輯,指出了目前農產品流通中存在的交易問題,其中包括農產品流通主體合作深度不夠,各環節各渠道聯系不緊密,相互之間協調度較低,其原因是雙方之間的信任問題、過程的安全性問題和沒有標準的規范規則,為了發展和完善現代農業物流業,促進農產品流通主體的合作穩定性,使其可以長期建立合作穩定關系,提出了基于區塊鏈技術的智能合約。
區塊鏈技術最早的應用場景是貨幣和支付手段。區塊鏈和比特幣有很深的聯系。比特幣開始出現在2008 年底,隨著比特幣的出現,區塊鏈技術開始走入實驗室,但是商業化嘗試是在2014 年。2015 年,出現了許多與區塊鏈相關的技術。2014 年前后,開始認識到區塊鏈技術的價值,并將其用在數字貨幣以外的領域,例如分布式域名系統、分布式自治組織、分布式身份認證等。這些應用被稱為分布式應用。區塊鏈的典型應用有智能合約、DAPP、虛擬機。
區塊鏈技術與傳統技術的最大區別是,區塊鏈是一種分散式信任機制。區塊鏈技術嘗試打破中心化信任的壟斷和崩塌風險,用去中心的思路嘗試構建全新、更加健壯的信任體系。信任是區塊鏈的核心,價值、通證、資產等都是構建在其上的延伸。隨著區塊鏈技術的發展,很多部門開始參與到區塊鏈技術的研究中。從比特幣、以太坊等公有鏈項目開源社區,到各種類型的IT 企業及監管機構、金融機構、風險投資基金、區塊鏈創業公司,區塊鏈的發展也逐漸得到發展。
現代農業農產品流通中存在的交易問題,其原因是雙方之間的信任問題,為此提出了基于區塊鏈技術的智能合約。
根據應用場景和設計體系將區塊鏈系統分為公有鏈、聯盟鏈和專有鏈。公有鏈的節點可以任意加入、退出網絡和參與區塊鏈上數據的讀寫,在運行時以拓撲結構互聯互通,網絡中不存在中心化的服務端節點。聯盟鏈的各個節點有相對應的實體機構,經過授權后才能加入或退出網絡。各個實體機構組織組成聯盟,他們共同維護區塊鏈的運轉。專有鏈的節點寫入權限由內部控制,讀取權限可以對外開放。
區塊鏈技術是指通過去中心化和去信任的方式維護數據庫的技術。區塊鏈技術是多種技術整合的結果,這些技術包括P2P 文件傳輸、加密算法等,與數據庫結合在一起,形成一種新的數據記錄、傳遞、存儲與呈現的方式。區塊鏈技術可以使系統中的任何人參與數據的記錄和存儲。區塊鏈技術在沒有中央控制點的分布式對等網絡的情況下,用分布式集體運作的方法,構建了一個P2P 的自組織網絡。通過比較復雜的校驗機制,區塊鏈數據庫能夠保持連續性、一致性和完整性,參與的人作假也不能改變區塊鏈的完整性,更不能篡改區塊鏈中的數據。區塊鏈技術涉及的關鍵點包括:可靠數據庫、時間戳、去中心化、去信任、集體維護、非對稱加密等。
制定并生成智能合約:1、首先用戶先注冊成為區塊鏈的用戶,區塊鏈將會給用戶一對公鑰和私鑰。公鑰是賬戶地址,私鑰是賬戶的唯一鑰匙。2、用戶們根據需要,共同制定了一份合約。合約中包含了用戶的權利和義務;合約以電子化的方式記錄。用戶分別用私鑰進行簽名,來確保合約的有效性。
傳輸并存儲智能合約:1、交易雙方達成合約之后,合約通過P2P在區塊鏈中傳輸,合約會傳輸到每個節點。驗證節點收到傳輸的合約后先保存到內存中。2、共識時間到來之后,驗證節點把合約打包成一個合約集合Set;并計算該集合Set 的Hash 值;將合約集合Hash 值封裝在一個區塊結構里,然后廣播該區塊結構。3、其他驗證節點收到該區塊結構后,會分解出該結構里合約集合Hash 值,與本驗證節點Hash 集合下的Hash 值做比較;發送一份本節點認可的集合給其他節點,通過比較和發送;所有的驗證節點在規定的時間內對最新的合約集合達成一致。
智能合約執行:1、智能合約會按時檢查自動機,檢查每個合約內包含的觸發條件、狀態機、事務;將滿足條件的事務推送到等待驗證的隊列中,等待共識;未滿足觸發條件的事務將存放在區塊鏈上。2、進入最新驗證的事務,擴散到每個驗證節點,驗證節點首先進行簽名驗證,確保有效性;等驗證節點達成一致,事務會執行,執行后通知用戶。3、事務執行成功后,狀態機會判斷合約的狀態,當合約的所有事務都執行完,狀態機會將合約的狀態標記為完成,并從最新的區塊中移除該合約;反之標記為進行中,保存在新的區塊中,將進行下一輪處理。
區塊鏈行業整體處于萌芽階段,智能合約、現代農業也處于這個階段。智能合約與傳統合約本質上都是解決相同問題:以一種方式形成一種合約關系,使得承諾可以執行。只不過它們采用了不同的方法。因為智能合約事前執行,不像傳統合約一樣,事后執行。多重簽名智能合約也是未來的一個趨勢,比如基于多重簽名的交易合約,部分參與者的私鑰就可以使用合約中的資金。甚至于,合約可以更加細化。
在這個蓬勃發展的智能合約領域,尤其是基于區塊鏈的智能合約領域,盡管自動化、高效率和低成本的潛力巨大,但還是有明顯的不足。現有區塊鏈技術的一個缺陷就是,智能合約的代碼需要向網絡內所有參與者尤其是驗證者公開。對于很多金融貿易、企業交易來說,這是個巨大的缺陷。因為這就意味著資金投入之后,網絡中非參與者可能會了解并積極參與貿易中并給參與者帶來麻煩。這同時意味著區塊鏈智能合約的非參與者可以囤積或出售資產,這將損害參與者的利益。
智能合約的發展可能需要經歷漫長的道路,對來自截然不同的領域,如經濟學、密碼學、網絡科學、金融學的自動化合約執行來說,共同設計研究合約準則是必經之路。如果缺少交叉溝通,無論是對技術的缺乏還是對商業用途模式意識的缺乏,都將造成智能合約的低效。