TWI614712B - 智能合約的事件連結系統及其方法 - Google Patents
智能合約的事件連結系統及其方法 Download PDFInfo
- Publication number
- TWI614712B TWI614712B TW106102076A TW106102076A TWI614712B TW I614712 B TWI614712 B TW I614712B TW 106102076 A TW106102076 A TW 106102076A TW 106102076 A TW106102076 A TW 106102076A TW I614712 B TWI614712 B TW I614712B
- Authority
- TW
- Taiwan
- Prior art keywords
- smart contract
- event
- agent
- contract
- address
- Prior art date
Links
Abstract
一種智能合約的事件連結系統及其方法,透過在傳送事件的事件傳遞智能合約及接收事件的第一智能合約之間,增加具有介面函式的事件代理智能合約,提供事件傳遞智能合約以介面函式傳送事件,以及透過第一智能合約的代理函式傳遞事件代理智能合約地址,將事件代理智能合約設定為具有執行第一智能合約的權限,因此,在設計事件傳遞智能合約時,無須預先得知第一智能合約的內容,並且能夠使發送與接收事件在區塊鏈的同一個區塊(Block)中完成,用以達成提高智能合約的設計靈活性及交易安全性之技術功效。
Description
本發明涉及一種事件連結系統及其方法,特別是在區塊鏈環境之智能合約的事件連結系統及其方法。
近年來,隨著區塊鏈技術的普及與蓬勃發展,各種基於區塊鏈的應用便如雨後春筍般出現,其中,又以智能合約(Smart Contract)最受矚目。
一般而言,區塊鏈上的智能合約就是包含變數狀態及函式(Function)的電腦程式,當應用軟體需要使用多個智能合約時,這些智能合約必須利用事件(Event)串連(或稱為連結),在實際實施上,可透過客戶端程式(如:「web3.js」)在收到事件後再發起新的交易產生串連,或是修改智能合約內容,使智能合約直接呼叫另一個智能合約。然而,前者收到事件後再發起新的交易的方式會導致事件與交易在不同的區塊被完成,使得客戶端可以在沒有事件發生的情況下,利用客戶端程式直接驅動事件發生後才會進行的交易,或是因為客戶端延遲導致時效過後才驅動交易,進而衍生安全性的問題;至於後者由智能合約直接呼叫另一智能合約的方式,必須事先得知被呼叫的智能合約內容,而且一旦智能合約發布在區塊鏈上,就沒有辦法新增或移除智能合約之間的互動邏輯,也就是說,無法新增或移除既有透過函式呼叫交換訊息的方式,導致缺乏彈性,故具有智能合約的設計靈活性及交易安全性不佳的問題。
綜上所述,可知先前技術中長期以來一直存在智能合約的設計靈活性及交易安全性不佳之問題,因此實有必要提出改進的技術手段,來解決此一問題。
本發明揭露一種智能合約的事件連結系統及其方法。
首先,本發明揭露一種智能合約的事件連結系統,此系統包含:初始模組、連結模組、交易模組及執行模組。其中,初始模組用以於初始時,預先發布事件傳遞智能合約、第一智能合約及事件代理智能合約至區塊鏈,其中,所述事件代理智能合約具有事件代理智能合約地址,並且包含介面函式以允許所述事件傳遞智能合約傳送事件;連結模組用以執行事件傳遞智能合約的註冊函式,並且當註冊函式傳遞的地址為事件代理智能合約地址時,設定事件傳遞智能合約透過介面函式傳送事件至事件代理智能合約,以及執行第一智能合約的代理函式,並根據此代理函式傳遞的所述事件代理智能合約地址,使事件代理智能合約具有執行第一智能合約的權限;交易模組用以在執行交易時,執行事件傳遞智能合約的發送函式,並執行交易內容,以數位貨幣為例,交易內容可為將交易數量發送至收方地址,並且經由介面函式傳遞包含發方地址、收方地址及交易數量的事件至所述事件代理智能合約;執行模組用以在事件代理智能合約接收到事件後,根據接收到的事件執行第一智能合約中的第一交易函式。
另外,本發明揭露一種智能合約的事件連結方法,其步驟包括:於初始時,預先發布事件傳遞智能合約、第一智能合約及事件代理智能合約至區塊鏈,其中,所述事件代理智能合約具有事件代理智能合約地址,並且包含介面函式以允許事件傳遞智能合約傳送事件;執行事件傳遞智能合約的註冊函式,並且當註冊函式傳遞的地址為事件代理智能合約地址時,設定事件傳遞智能合約透過此介面函式傳送事件至事件代理智能合約,以及執行第一智能合約的代理函式,並根據此代理函式傳遞的所述事件代理智能合約地址,使事件代理智能合約具有執行第一智能合約的權限;在執行交易時,執行事件傳遞智能合約的發送函式,將交易數量發送至收方地址,並且經由介面函式傳遞包含發方地址、收方地址及交易數量的事件至事件代理智能合約;在事件代理智能合約接收到事件後,根據接收到的事件執行第一智能合約中的第一交易函式。
本發明所揭露之系統與方法如上,與先前技術的差異在於本發明是透過在傳送事件的事件傳遞智能合約及接收事件的第一智能合約之間,增加具有介面函式的事件代理智能合約,提供事件傳遞智能合約以介面函式傳送事件,以及透過第一智能合約的代理函式傳遞事件代理智能合約地址,將事件代理智能合約設定為具有執行第一智能合約的權限,因此,在設計事件傳遞智能合約時,無須預先得知第一智能合約的內容,並且能夠使發送與接收事件在區塊鏈的同一個區塊中完成。
透過上述的技術手段,本發明可以達成提高智能合約的設計靈活性及交易安全性之技術功效。
以下將配合圖式及實施例來詳細說明本發明之實施方式,藉此對本發明如何應用技術手段來解決技術問題並達成技術功效的實現過程能充分理解並據以實施。
在說明本發明所揭露之智能合約的事件連結系統及其方法之前,先對本發明所應用的環境作說明,本發明是應用在具有智能合約的區塊鏈環境,所述智能合約是指依據既定的條件及傳輸的資訊來驅動執行指令的電腦程式,在實際實施上,所述智能合約係透過程式語言,如:Solidity、Serpent、LLL、EtherScript、Sidechain等等來撰寫,其可包含各種不同的函式、參數狀態等等,以區塊鏈程式「Ethereum」為例,其智能合約是經編譯後得到二進位編碼及應用二進位介面(Application Binary Interface, ABI),以便將智能合約廣播至區塊鏈網路,等候礦工(Miner)將智能合約放上區塊鏈並得到相應的地址。之後,便可根據此地址執行相應的智能合約,藉由不同的指令來改變智能合約在區塊鏈上的狀態。
另外,本發明所述的第一智能合約、第二智能合約及第三智能合約僅是為了在不同實施例中區別智能合約而定義的名詞,本質上就是區塊鏈上的智能合約。舉例來說,第一智能合約為事件代理智能合約僅執行一個智能合約時所用;第二智能合約為事件代理智能合約除了第一智能合約外,還額外執行其它智能合約時所用;第三智能合約則為串連多層的事件代理智能合約時所用。
以下配合圖式對本發明智能合約的事件連結系統及其方法做進一步說明,請先參閱「第1圖」,「第1圖」為本發明智能合約的事件連結系統之系統方塊圖,此系統包含:初始模組110、連結模組120、交易模組130及執行模組140。其中,初始模組110用以於初始時,預先發布事件傳遞智能合約、第一智能合約(例如:租屋智能合約)及事件代理智能合約至區塊鏈,所述事件代理智能合約具有事件代理智能合約地址,並且包含介面函式以允許事件傳遞智能合約傳送事件。在實際實施上,所述事件傳遞智能合約是指會傳送事件(Event)的智能合約,如:應用程式智能合約、數位貨幣智能合約等等,舉例來說,數位貨幣智能合約是對數位貨幣進行處理的智能合約,包含設定數位貨幣的發行人權限、限定僅由發行人發行數位貨幣、驗證數位貨幣發行人及發送數位貨幣等處理,其中在發送數位貨幣時,將送出包含:發方地址、收方地址及交易數量的事件。所述第一智能合約為區塊鏈上的另一個智能合約,例如:租屋智能合約、租車智能合約、租書智能合約等等。至於所述事件代理智能合約則是經由介面函式接收來自事件傳遞智能合約的事件,並且具有根據此事件執行第一智能合約的權限。 特別要說明的是,初始模組110於初始時,更可發布第二智能合約(例如:租屋保險智能合約)於區塊鏈,以便執行模組140在事件代理智能合約接收到事件後,根據接收到的事件分別執行第一智能合約中的第一交易函式(例如:租屋函式),以及執行所述第二智能合約中的第二交易函式(例如:購買保險函式),這些交易函式代表著交易內容的程式邏輯。另外,在實際實施上,事件代理智能合約還可根據不同的收方地址執行相應的第二智能合約,稍後將配合圖式對此部分作詳細說明。
連結模組120用以執行事件傳遞智能合約的註冊函式,並且當註冊函式傳遞的地址為事件代理智能合約地址時,設定事件傳遞智能合約透過介面函式傳送事件至事件代理智能合約,以及執行第一智能合約的代理函式,並根據此代理函式傳遞的事件代理智能合約地址,使事件代理智能合約具有執行第一智能合約的權限。在實際實施上,當註冊函式傳遞的地址為預設值(例如:「0x0」)時,移除事件傳遞智能合約與事件代理合約的連結,當傳遞的地址為事件代理合約地址(例如:「0x4d9e6d999e113b52ce96aee86a42f3279c115a73」)時,將事件代理合約地址寫入宣告的變數即稱之為註冊,此時,即建立事件傳遞智能合約與事件代理合約的連結。所述連結是指透過函式呼叫使非直接相關的不同智能合約能夠傳遞訊息,舉例來說,事件傳遞智能合約透過介面函式傳遞事件給事件代理合約,而事件代理合約則透過第一智能合約的代理函式,將事件代理智能合約地址傳遞給第一智能合約,以便將所述事件代理智能合約地址設定為代理人,或是在第一智能合約為租屋智能合約時,事件代理合約透過第一智能合約的租屋函式將發方地址設定為房客(承租人),並可根據區塊時戳(Block Time Stamp)設定房客承租的開始時間及結束時間。
交易模組130用以在執行交易時,執行事件傳遞智能合約的發送函式,例如:在事件傳遞智能合約為數位貨幣智能合約時,所述發方地址視同發款地址、所述收方地址視同收款地址、以及所述交易數量視同交易金額,執行發送函式會將交易金額發送至收款地址,並且經由介面函式傳遞包含:發款地址、收款地址及交易金額的事件至事件代理智能合約。在實際實施上,交易模組130會先判斷發款地址的餘額是否小於交易金額,若是,則返回不執行交易也不傳遞事件,若否,則將發款地址的餘額減去交易金額,以及將收款地址的餘額加上交易金額,接著再傳送事件。
執行模組140用以在事件代理智能合約接收到事件後,根據接收到的事件執行第一智能合約中的第一交易函式。在實際實施上,第一智能合約僅允許代理人及擁有者執行,其透過地址來判斷是否為代理人或擁有者。由於在連結模組120時,已經透過第一智能合約的代理函式傳送事件代理智能合約地址,藉由此一方式將事件代理智能合約地址設為代理人,所以第一智能合約允許事件代理智能合約根據所述事件執行第一智能合約中的第一交易函式。假設第一智能合約為租屋智能合約,其包含的第一交易函式可包含:租屋函式、退房函式等等。
接著,請參閱「第2圖」,「第2圖」為本發明智能合約的事件連結方法之方法流程圖,其步驟包括:於初始時,預先發布事件傳遞智能合約、第一智能合約及事件代理智能合約至區塊鏈,其中,事件代理智能合約具有事件代理智能合約地址,並且包含介面函式以允許事件傳遞智能合約傳送事件(步驟210);執行事件傳遞智能合約的註冊函式,並且當註冊函式傳遞的地址為事件代理智能合約地址時,設定事件傳遞智能合約透過介面函式傳送事件至事件代理智能合約,以及執行第一智能合約的代理函式,並根據代理函式傳遞的事件代理智能合約地址,使事件代理智能合約具有執行第一智能合約的權限(步驟220);在執行交易時,執行事件傳遞智能合約的發送函式,將交易數量發送至收方地址,並且經由介面函式傳遞包含發方地址、收方地址及交易數量的事件至事件代理智能合約(步驟230);在事件代理智能合約接收到事件後,根據接收到的事件執行第一智能合約中的第一交易函式(步驟240)。透過上述步驟,即可透過在傳送事件的事件傳遞智能合約及接收事件的第一智能合約之間,增加具有介面函式的事件代理智能合約,提供事件傳遞智能合約以介面函式傳送事件,以及透過第一智能合約的代理函式傳遞事件代理智能合約地址,將事件代理智能合約設定為具有執行第一智能合約的權限,因此,在設計事件傳遞智能合約時,無須預先得知第一智能合約的內容,並且能夠使發送與接收事件在區塊鏈的同一個區塊中完成。
以下配合「第3圖」至「第5圖」以實施例的方式進行如下說明,請先參閱「第3圖」,「第3圖」為應用本發明於租屋的情境之示意圖。假設在租屋的情境下,第一智能合約即為租屋智能合約,倘若要再購買租屋保險,則第二智能合約即為租屋保險智能合約。所述第一智能合約及第二智能合約可透過如「第3圖」所示意的原始碼(311、312)來實現。在初始時,會將事件傳遞智能合約、第一智能合約、事件代理智能合約及第二智能合約發布在區塊鏈,其中,發布事件代理智能合約會取得事件傳遞智能合約實體,以便呼叫註冊函式,例如「registerEventProxy」並帶入一個地址,當此地址為事件代理智能合約地址時,即代表註冊事件代理智能合約。接著,取得第一智能合約實體,以便呼叫代理函式「setDelegate」並帶入事件代理智能合約地址,以便將事件代理智能合約設定為代理人,也就是說,事件代理智能合約具有執行該第一智能合約的權限。接下來,從發方地址(發款方;房客)發送區塊鏈交易,發送租屋金額給收方地址(收款方;屋主),而事件代理智能合約接收到事件傳遞智能合約傳送的事件後,根據接收到的此事件執行第一智能合約中的第一交易函式,倘若要再購買租屋保險,則再執行第二智能合約中的第二交易函式,以租屋的情境為例,第一交易函式即為租屋函式「rent」;第二交易函式即為購買保險函式「RentalHomeInsurance」。在租屋情境的例子中,除了執行第二智能合約中的第二交易函式之外,亦可新增一個第二智能合約的實體代表購買保險合約,並且執行第二智能合約中的建構子(Constructor)來改變其參數狀態。如此一來,倘若要擴充功能或實作其它情境(例如:租書、租車等等),僅需建立相應的事件代理智能合約及第一智能合約,並且呼叫註冊函式將新的事件代理智能合約地址帶入事件傳遞智能合約,使事件傳遞智能合約指向新的事件代理智能合約,舉例來說,假設在編號為100的區塊,原本使用的是事件代理智能合約在地址「0x0001」上的實作。但是後來事件代理智能合約的版本升級,因此在編號為150的區塊發布新版本,得到的新的地址為「0x0002」,這時候可以透過註冊函式來註冊新的事件代理智能合約,假設註冊函式所產生的區塊鏈交易在編號為160的區塊時被納入區塊鏈,那麼事件代理智能合約在編號為160的區塊時,地址被動態更新為「 0x0002」,換句話說,透過註冊函式可變更指向的事件代理智能合約。
如「第4圖」所示意,「第4圖」為應用本發明連結智能合約的資料流之示意圖。首先,在「第4圖」上方呈現最基本的連結方式,即:事件傳遞智能合約410、事件代理智能合約420及第一智能合約430。其中,事件傳遞智能合約410經由事件代理智能合約420的介面函式(如:「proxySentEvent」),將事件傳送至事件代理智能合約420,以事件傳遞智能合約410為數位貨幣智能合約為例,將帶入發款地址、收款地址及交易金額等資料至事件代理智能合約420;事件代理智能合約420呼叫第一智能合約430的函式,用以改變第一智能合約430相應的各參數狀態。特別要說明的是,在不同的使用情境,具有不同的事件代理智能合約420及第一智能合約430,舉例來說,在租屋情境下,事件代理智能合約420實作「租屋」與「購買保險」的邏輯,第一智能合約430則為租屋智能合約,其提供租屋函式(如:「rent」)以供呼叫並改變租屋智能合約的參數狀態,例如,改變承租人地址、開始時間及結束時間等參數狀態。在實際實施上,事件代理智能合約420是繼承(Inheritance)一個僅具有介面函式的智能合約,並且以基於不同情境設計的介面函式覆寫原介面函式,進而產生對應不同情境的事件代理智能合約420。
接著,在「第4圖」下方則呈現事件代理智能合約420能夠同時執行多個智能合約(即:第一智能合約430及第二智能合約440a~440n)的連結方式,在實際實施上,假設第二智能合約440a為租屋保險智能合約,事件代理智能合約420可透過指令「new RentalHomeInsurance()」 產生新的智能合約實體。另外,前面提到,事件代理智能合約還可根據不同的收方地址執行相應的第二智能合約。以「第4圖」下方的連結方式為例,假設收方地址為「0x00001」,執行第二智能合約440a;假設收方地址為「0x00002」,執行第二智能合約440b,並以此類推,可執行至第二智能合約440n。換句話說,事件代理智能合約可根據不同的收款人定義不同的事件處理邏輯。
如「第5圖」所示意,「第5圖」為應用本發明連結多層事件代理智能合約之示意圖。在實際實施上,事件代理智能合約可包含父事件代理智能合約510及子事件代理智能合約(511、512),所述父事件代理智能合約510透過介面函式接收事件傳遞智能合約410傳送的事件,每一子事件代理智能合約(511、512)繼承自父事件代理智能合約510,並且具有執行相應的第三智能合約(例如:租書智能合約、租屋智能合約及保險智能合約等等)的權限,以「第5圖」為例,子事件代理智能合約511具有執行租書智能合約521的權限;子事件代理智能合約512具有執行租屋智能合約522及保險智能合約523的權限,同樣地,這些第三智能合約同樣各自具有相應的代理函式,以傳遞的子事件代理智能合約(511、512)的地址,使子事件代理智能合約(511、512)具有執行第三智能合約的權限。
綜上所述,可知本發明與先前技術之間的差異在於透過在傳送事件的事件傳遞智能合約及接收事件的第一智能合約之間,增加具有介面函式的事件代理智能合約,提供事件傳遞智能合約以介面函式傳送事件,以及透過第一智能合約的代理函式傳遞事件代理智能合約地址,將事件代理智能合約設定為具有執行第一智能合約的權限,因此,在設計事件傳遞智能合約時,無須預先得知第一智能合約的內容,並且能夠使發送與接收事件在區塊鏈的同一個區塊中完成,藉由此一技術手段可以解決先前技術所存在的問題,進而達成提高智能合約的設計靈活性及交易安全性之技術功效。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
110‧‧‧初始模組
120‧‧‧連結模組
130‧‧‧交易模組
140‧‧‧執行模組
311、312‧‧‧原始碼
410‧‧‧事件傳遞智能合約
420‧‧‧事件代理智能合約
430‧‧‧第一智能合約
440a~440n‧‧‧第二智能合約
510‧‧‧父事件代理智能合約
511、512‧‧‧子事件代理智能合約
521‧‧‧租書智能合約
522‧‧‧租屋智能合約
523‧‧‧保險智能合約
步驟210‧‧‧於初始時,預先發布一事件傳遞智能合約、一第一智能合約及一事件代理智能合約至一區塊鏈,其中,該事件代理智能合約具有一事件代理智能合約地址,並且包含一介面函式以允許該事件傳遞智能合約傳送一事件
步驟220‧‧‧執行該事件傳遞智能合約的一註冊函式,並且當該註冊函式傳遞的一地址為該事件代理智能合約地址時,設定該事件傳遞智能合約透過該介面函式傳送該事件至該事件代理智能合約,以及執行該第一智能合約的一代理函式,並根據該代理函式傳遞的該事件代理智能合約地址,使該事件代理智能合約具有執行該第一智能合約的權限
步驟230‧‧‧在執行交易時,執行該事件傳遞智能合約的一發送函式,將一交易數量發送至一收方地址,並且經由該介面函式傳遞包含一發方地址、該收方地址及該交易數量的該事件至該事件代理智能合約
步驟240‧‧‧在該事件代理智能合約接收到該事件後,根據接收到的該事件執行該第一智能合約中的至少一第一交易函式
120‧‧‧連結模組
130‧‧‧交易模組
140‧‧‧執行模組
311、312‧‧‧原始碼
410‧‧‧事件傳遞智能合約
420‧‧‧事件代理智能合約
430‧‧‧第一智能合約
440a~440n‧‧‧第二智能合約
510‧‧‧父事件代理智能合約
511、512‧‧‧子事件代理智能合約
521‧‧‧租書智能合約
522‧‧‧租屋智能合約
523‧‧‧保險智能合約
步驟210‧‧‧於初始時,預先發布一事件傳遞智能合約、一第一智能合約及一事件代理智能合約至一區塊鏈,其中,該事件代理智能合約具有一事件代理智能合約地址,並且包含一介面函式以允許該事件傳遞智能合約傳送一事件
步驟220‧‧‧執行該事件傳遞智能合約的一註冊函式,並且當該註冊函式傳遞的一地址為該事件代理智能合約地址時,設定該事件傳遞智能合約透過該介面函式傳送該事件至該事件代理智能合約,以及執行該第一智能合約的一代理函式,並根據該代理函式傳遞的該事件代理智能合約地址,使該事件代理智能合約具有執行該第一智能合約的權限
步驟230‧‧‧在執行交易時,執行該事件傳遞智能合約的一發送函式,將一交易數量發送至一收方地址,並且經由該介面函式傳遞包含一發方地址、該收方地址及該交易數量的該事件至該事件代理智能合約
步驟240‧‧‧在該事件代理智能合約接收到該事件後,根據接收到的該事件執行該第一智能合約中的至少一第一交易函式
第1圖為本發明智能合約的事件連結系統之系統方塊圖。 第2圖為本發明智能合約的事件連結方法之方法流程圖。 第3圖為應用本發明於租屋的情境之示意圖。 第4圖為應用本發明連結智能合約的資料流之示意圖。 第5圖為應用本發明連結多層事件代理智能合約之示意圖。
110‧‧‧初始模組
120‧‧‧連結模組
130‧‧‧交易模組
140‧‧‧執行模組
Claims (10)
- 一種智能合約的事件連結系統,該系統包含: 一初始模組,用以於初始時,預先發布一事件傳遞智能合約、一第一智能合約及一事件代理智能合約至一區塊鏈,其中,該事件代理智能合約具有一事件代理智能合約地址,並且包含一介面函式以允許該事件傳遞智能合約傳送一事件; 一連結模組,用以執行該事件傳遞智能合約的一註冊函式,並且當該註冊函式傳遞的一地址為該事件代理智能合約地址時,設定該事件傳遞智能合約透過該介面函式傳送該事件至該事件代理智能合約,以及執行該第一智能合約的一代理函式,並根據該代理函式傳遞的該事件代理智能合約地址,使該事件代理智能合約具有執行該第一智能合約的權限; 一交易模組,用以在執行交易時,執行該事件傳遞智能合約的一發送函式,將一交易數量發送至一收方地址,並且經由該介面函式傳遞包含一發方地址、該收方地址及該交易數量的該事件至該事件代理智能合約;以及 一執行模組,用以在該事件代理智能合約接收到該事件後,根據接收到的該事件執行該第一智能合約中的至少一第一交易函式。
- 根據申請專利範圍第1項之智能合約的事件連結系統,其中該地址為一預設值時,移除該事件傳遞智能合約與該事件代理合約的連結,該地址為該事件代理合約地址時,建立該事件傳遞智能合約與該事件代理合約的連結。
- 根據申請專利範圍第1項之智能合約的事件連結系統,其中該初始模組於初始時,更發布至少一第二智能合約於該區塊鏈,該執行模組在該事件代理智能合約接收到該事件後,根據接收到的該事件分別執行該第一智能合約中的所述第一交易函式,以及執行所述第二智能合約中的至少一第二交易函式。
- 根據申請專利範圍第3項之智能合約的事件連結系統,其中該事件代理智能合約根據不同的該收方地址執行相應的所述第二智能合約。
- 根據申請專利範圍第1項之智能合約的事件連結系統,其中該事件代理智能合約包含一父事件代理智能合約及至少一子事件代理智能合約,該父事件代理智能合約透過該介面函式接收該事件傳遞智能合約傳送的該事件,每一子事件代理智能合約繼承自該父事件代理智能合約,並且具有執行至少一第三智能合約的權限。
- 一種智能合約的事件連結方法,其步驟包括: 於初始時,預先發布一事件傳遞智能合約、一第一智能合約及一事件代理智能合約至一區塊鏈,其中,該事件代理智能合約具有一事件代理智能合約地址,並且包含一介面函式以允許該事件傳遞智能合約傳送一事件; 執行該事件傳遞智能合約的一註冊函式,並且當該註冊函式傳遞的一地址為該事件代理智能合約地址時,設定該事件傳遞智能合約透過該介面函式傳送該事件至該事件代理智能合約,以及執行該第一智能合約的一代理函式,並根據該代理函式傳遞的該事件代理智能合約地址,使該事件代理智能合約具有執行該第一智能合約的權限; 在執行交易時,執行該事件傳遞智能合約的一發送函式,將一交易數量發送至一收方地址,並且經由該介面函式傳遞包含一發方地址、該收方地址及該交易數量的該事件至該事件代理智能合約;以及 在該事件代理智能合約接收到該事件後,根據接收到的該事件執行該第一智能合約中的至少一第一交易函式。
- 根據申請專利範圍第6項之智能合約的事件連結方法,其中該地址為一預設值時,移除該事件傳遞智能合約與該事件代理合約的連結,該地址為該事件代理合約地址時,建立該事件傳遞智能合約與該事件代理合約的連結。
- 根據申請專利範圍第6項之智能合約的事件連結方法,其中該方法於初始時,更發布至少一第二智能合約於該區塊鏈,在該事件代理智能合約接收到該事件後,根據接收到的該事件分別執行該第一智能合約中的所述第一交易函式,以及執行所述第二智能合約中的至少一第二交易函式。
- 根據申請專利範圍第8項之智能合約的事件連結方法,其中該事件代理智能合約根據不同的該收方地址執行相應的所述第二智能合約。
- 根據申請專利範圍第6項之智能合約的事件連結方法,其中該事件代理智能合約包含一父事件代理智能合約及至少一子事件代理智能合約,該父事件代理智能合約透過該介面函式接收該事件傳遞智能合約傳送的該事件,每一子事件代理智能合約繼承自該父事件代理智能合約,並且具有執行至少一第三智能合約的權限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106102076A TWI614712B (zh) | 2017-01-20 | 2017-01-20 | 智能合約的事件連結系統及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106102076A TWI614712B (zh) | 2017-01-20 | 2017-01-20 | 智能合約的事件連結系統及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI614712B true TWI614712B (zh) | 2018-02-11 |
TW201828213A TW201828213A (zh) | 2018-08-01 |
Family
ID=62016169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106102076A TWI614712B (zh) | 2017-01-20 | 2017-01-20 | 智能合約的事件連結系統及其方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI614712B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI684941B (zh) * | 2018-05-23 | 2020-02-11 | 葉佰蒼 | 基於區塊鏈的數位文件發表系統及其實施方法 |
CN111126929A (zh) * | 2018-11-01 | 2020-05-08 | 财团法人资讯工业策进会 | 智能缔约装置与方法 |
CN112106336A (zh) * | 2018-06-06 | 2020-12-18 | 国际商业机器公司 | 区块链上的代理方代理和代理方账本 |
EP3779815A4 (en) * | 2018-07-27 | 2021-06-09 | Advanced New Technologies Co., Ltd. | PROCESS AND DEVICE FOR THE DISTRIBUTION OF RIGHTS AND INTERESTS, AND ELECTRONIC DEVICE |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150379510A1 (en) * | 2012-07-10 | 2015-12-31 | Stanley Benjamin Smith | Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain. |
CN105991731A (zh) * | 2015-02-13 | 2016-10-05 | 中兴通讯股份有限公司 | 一种获取信息的方法、智能终端和服务端 |
CN106022917A (zh) * | 2016-05-08 | 2016-10-12 | 杭州复杂美科技有限公司 | 区块链撮合交易所方案 |
US20170011460A1 (en) * | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
-
2017
- 2017-01-20 TW TW106102076A patent/TWI614712B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150379510A1 (en) * | 2012-07-10 | 2015-12-31 | Stanley Benjamin Smith | Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain. |
CN105991731A (zh) * | 2015-02-13 | 2016-10-05 | 中兴通讯股份有限公司 | 一种获取信息的方法、智能终端和服务端 |
US20170011460A1 (en) * | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
CN106022917A (zh) * | 2016-05-08 | 2016-10-12 | 杭州复杂美科技有限公司 | 区块链撮合交易所方案 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI684941B (zh) * | 2018-05-23 | 2020-02-11 | 葉佰蒼 | 基於區塊鏈的數位文件發表系統及其實施方法 |
CN112106336A (zh) * | 2018-06-06 | 2020-12-18 | 国际商业机器公司 | 区块链上的代理方代理和代理方账本 |
EP3779815A4 (en) * | 2018-07-27 | 2021-06-09 | Advanced New Technologies Co., Ltd. | PROCESS AND DEVICE FOR THE DISTRIBUTION OF RIGHTS AND INTERESTS, AND ELECTRONIC DEVICE |
US11087372B2 (en) | 2018-07-27 | 2021-08-10 | Advanced New Technologies Co., Ltd. | Benefit allocation method, apparatus, and electronic device |
CN111126929A (zh) * | 2018-11-01 | 2020-05-08 | 财团法人资讯工业策进会 | 智能缔约装置与方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201828213A (zh) | 2018-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7385706B2 (ja) | ブロックチェーンに登録されたデジタルアセットを分配する方法及び自律計算エージェント | |
US20200294165A1 (en) | Blockchain-based allocation methods and apparatuses | |
US11789933B2 (en) | System and method for a hybrid contract execution environment | |
CN109064334B (zh) | 一种智能合约记账方法、计算机装置及可读存储介质 | |
CN109214197B (zh) | 基于区块链来处理隐私数据的方法、装置及存储介质 | |
TWI614712B (zh) | 智能合約的事件連結系統及其方法 | |
US20190303926A1 (en) | Blockchain loan transaction systems and methods | |
WO2020220761A1 (zh) | 基于区块链的缴费代扣签约方法及装置、电子设备 | |
AU2023201476A1 (en) | Business Process Execution on a blockchain platform | |
JP2019523493A (ja) | ブロックチェーンにより実現される方法及びシステム | |
US20140283092A1 (en) | Controlled Application Distribution | |
CN111309745B (zh) | 虚拟资源处理方法、装置、电子设备及存储介质 | |
CN112613877B (zh) | 应用于区块链网络的智能合约触发方法、装置及相关设备 | |
CN111985007A (zh) | 一种基于区块链的合同签署与执行方法及装置 | |
CN109978687B (zh) | 智能合约的事件连接系统及其方法 | |
CN110659993A (zh) | 一种基于区块链网络的资源管理方法及装置 | |
CN111967821A (zh) | 清关确认信息的生成方法、装置、设备及系统 | |
KR20210106532A (ko) | 블록체인을 통해 행해지는 전송의 성능을 제어하거나 강제하기 위한 컴퓨터-구현된 시스템 및 방법 | |
US20200364788A1 (en) | Computer-implemented systems and methods for enhanced bitcoin wallets | |
CN114723449A (zh) | 区块链条件支付的方法及电子设备 | |
CN113849191B (zh) | 智能合约部署方法、系统、装置及存储介质 | |
KR102227442B1 (ko) | 본인정보 판매대금 정산 방법 | |
CN117649233A (zh) | 基于区块链的交易处理方法、装置、介质及电子设备 | |
CN117372016A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
KR20230100123A (ko) | 이더리움 기반 부동산 법원 경매 방법 |