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