TWI816647B - 用於經由區塊鏈實施確定性有限自動機(dfa)之系統及方法 - Google Patents
用於經由區塊鏈實施確定性有限自動機(dfa)之系統及方法 Download PDFInfo
- Publication number
- TWI816647B TWI816647B TW106137317A TW106137317A TWI816647B TW I816647 B TWI816647 B TW I816647B TW 106137317 A TW106137317 A TW 106137317A TW 106137317 A TW106137317 A TW 106137317A TW I816647 B TWI816647 B TW I816647B
- Authority
- TW
- Taiwan
- Prior art keywords
- dfa
- blockchain
- state
- transaction
- utxo
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000007704 transition Effects 0.000 claims abstract description 83
- 238000013515 script Methods 0.000 claims description 69
- 230000008569 process Effects 0.000 abstract description 15
- 230000008859 change Effects 0.000 abstract description 10
- 238000013178 mathematical model Methods 0.000 abstract description 3
- NRTOMJZYCJJWKI-UHFFFAOYSA-N Titanium nitride Chemical compound [Ti]#N NRTOMJZYCJJWKI-UHFFFAOYSA-N 0.000 abstract 1
- 239000003795 chemical substances by application Substances 0.000 description 79
- 230000009471 action Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 16
- 239000000243 solution Substances 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 14
- 230000007246 mechanism Effects 0.000 description 10
- 230000009466 transformation Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 150000003839 salts Chemical class 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000013329 compounding Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Chair Legs, Seat Parts, And Backrests (AREA)
- Complex Calculations (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本發明係關於一種用於在諸如但不限於比特幣區塊鏈之一區塊鏈上實施、控制及自動化一任務或處理序之技術。本發明特別適合於諸如但不限於用於金融協議之智慧型合約的合約之自動化執行。本發明可被視為藉由使用區塊鏈交易之未用輸出以表示機器之狀態且耗費該等輸出作為該機器自一狀態至另一狀態之轉變而在一區塊鏈上實施或體現一狀態機或DFA。本發明提供被構想為一抽象機器的計算之一數學模型之一技術實現及實施,該抽象機器可處於狀態之一有限集合中之一者且可在發生一有限集合之一觸發事件(被稱為輸入)時自一狀態改變至另一狀態(轉變)。
Description
本發明大體而言係關於用於基於電腦之處理序電腦協定之自動化執行之系統及協定,且更特定言之,係關於條件控制處理序(諸如關於合約之條件控制處理序)之驗證、強制執行或執行。然而,本發明不限於關於合約來使用。本發明亦關於諸如但不限於比特幣區塊鏈之區塊鏈技術,且用於智慧型合約亦具有優點。
長期以來,需要使用電腦以使任務及處理序之執行自動化並控制任務及處理序之執行。例如關於雙方(諸如與金融協議相關的雙方)之間的協議執行尤其如此。智慧型合約已成為學術研究及實踐興趣之話題,此係由於合約要素之電子版本可由電腦較佳地定義且隨後由電腦執行並強制執行。關於現代合約管理之關鍵問題中的一者係其傾向於特定使用的,其中以手動維持合約之本端儲存及複本。此等複本可變得
彼此不同步,且需要其自身儲存及維護。此情形效率低且引起與安全性及成本相關的問題。可至少部分地藉由使機器可讀及可執行文件(在此項技術中有時被稱作「智慧型合約(smart contract)」)之執行自動化來解決此等問題。此類自動化解決方案亦有助於最小化起因於自然語言及法律術語之可能的歧義及解釋。因此,若使合約自動化,則可以較低成本又較高效且可靠的方式來執行合約。
在文獻中已提議之不同途徑當中,已展示確定性有限自動機(DFA)(其亦被稱為確定性有限狀態機)具有足夠豐富結構來表示可想像到之金融協議以及其他種類之合約的廣泛範圍(若非全部)。有限狀態機及DFA之概念在計算科學內係熟知的。DFA為被構想為抽象機器的計算之數學模型,該抽象機器可處於狀態之有限集合中之一者且可在發生觸發事件或條件時自一狀態改變至另一狀態(轉變)。DFA之計算能力大於組合邏輯之計算能力但小於堆疊機之計算能力。
最近亦已關於區塊鏈技術來探究合約之自動化執行。此情形之一實例為CN 105893042 A,其論述使用區塊鏈作為用於與在智慧型合約之執行期間已發生的狀態改變相關的資料之安全儲存設施。然而,可以較精緻且技術上複雜之方式使用區塊鏈技術、交易輸出及其關聯指令碼以提供較智慧型行為,如本文中所論述。
區塊鏈係由不可變區塊構成之電腦實施之非集中式的分散式點對點電腦系統,該等區塊又由交易構成。其涉及基於共識之協定。每一區塊含有先前區塊之雜湊,使得該等區塊變得鏈接在一起,以建立自一開始便已寫入至區塊鏈之
所有交易的防篡改及永久性記錄。此等區塊可被公開檢測但一旦其已變成區塊鏈之部分便不能被變更或移除,此係因為變更將致使雜湊改變。
交易含有嵌入至其輸入及輸出中之被稱為指令碼之小程式,其指定交易之輸出可如何存取及由誰存取。可耗費每一未用交易(被稱作UTXO)作為至新交易中之輸入,且因此鏈隨著時間推移而生長。每一輸出具有一關聯貨幣金額,其可被耗費至網路上之位址,只要其符合輸出之鎖定指令碼中指定之要求即可。位址係密碼編譯不對稱金鑰對之公用金鑰。支付給公用金鑰雜湊(pay to public key hash;P2PKH)輸出為將其值直接支付給位址(公用金鑰)之輸出,而支付給指令碼雜湊(pay to script hash;P2SH)交易中之輸出係與含有第二指令碼之雜湊之公用金鑰指令碼(亦被稱作解除鎖定指令碼)相關聯,第二指令碼為接收者在後續交易中必須連同其簽章一起提供以便耗費輸出的兌換指令碼。
區塊鏈技術之最廣泛已知之應用係比特幣分散式總帳,但已提議並開發了其他區塊鏈實施方案。雖然可出於方便及說明之目的而在本文中提及比特幣,但應注意,本發明不限於與比特幣區塊鏈一起使用,且替代區塊鏈實施處於本發明之範疇內。
區塊鏈技術已知用於密碼貨幣實施。然而,近期,數位企業家已開始探究比特幣所基於之密碼編譯安全性系統與可儲存於區塊鏈上之資料兩者的使用,以實施新系統。結果,被稱為「智慧型合約」之電腦協定已開始吸引注意力,此係因為其可實現部分或全部地自動化強制執行或執行合約。
區塊鏈實施之智慧型合約可提供以下益處:諸如增強之安全性、防篡改且永久性的事件之公用記錄,及縮減之交易成本。
因此,需要提供一種提供起因於諸如合約之處理序之自動化之益處及使用區塊鏈以用於彼自動化之益處的解決方案。
現已設計出此經改良解決方案。本發明界定於所附申請專利範圍中。
根據本發明,可提供一種區塊鏈實施之方法及系統。此區塊鏈實施之方法及系統可被描述為用於自動化執行及控制技術處理序之方法及系統。本發明可提供經由區塊鏈之基礎設施上之有限狀態機或DFA之實施或實務體現而有助於處理序之自動化執行的技術創新。可定義及判定機器之狀態。可儲存針對每一狀態轉變之條件或觸發。在執行處理序之後,就可將所執行狀態記錄於永久性區塊鏈總帳上。區塊鏈交易可充當致使機器自一狀態移動至另一狀態的代理程式或參與者。每一狀態轉變可表示或對應於處理序中之一步驟。當DFA定義合約時,本發明可提供用於自動執行及強制執行不同合約方之承諾以及其他條項及條款之機制。
另外或替代地,本發明可被描述為使用一區塊鏈以控制自該區塊鏈執行之電腦實施之處理序的方法或解決方案。因此,該方法或解決方案可包含在架構及協定方面極不同的基於電腦之系統之互動。可根據本發明之此態樣使用上文所描述之特徵中之一或多者。
本發明之一或多個實施例可提供在一區塊鏈上或結合該區塊鏈來實施(體現或實現)DFA之方法。該DFA可為基於軟體之DFA。該區塊鏈可結合基於比特幣之協定而實施,或可使用另一區塊鏈協定。另外或替代地,其可為經配置以使能夠判定區塊鏈實施之DFA之狀態之方法。此狀態可為當前狀態。該方法可使能夠判定(在執行階段)判定DFA之狀態。因此,本發明之一或多個態樣可提供以比簡單地用作用以記錄關於已經發生之事件之資料的一安全儲存設施更準確、更複雜及更具智慧型之一方式而在一區塊鏈上實施一DFA之機制。
其可包含將一區塊鏈交易(Tx1)之一未用輸出(UTXO1)之一鎖定指令碼的一部分與該DFA之一給定狀態相關聯之步驟。該鎖定指令碼之該部分可為該鎖定指令碼內之資料之一部分。其可為後設資料之一部分。其可為一識別符、標示或標籤。
因此,本發明可使用該區塊鏈上之未用交易輸出(UTXO)以記錄及識別該DFA已處於及或當前在執行時在一給定點所處之狀態。
該方法可包含以下步驟:使用另一交易(Tx2)以藉由耗費該交易(Tx1)之該輸出(UTXO1)而進行自該DFA之該狀態至另一狀態之一轉變。該另一狀態可與提供於該另一交易之一未用輸出(UTXO2)之一鎖定指令碼內的資料之一部分相關聯。因此,耗費該UTXO可致使將DFA狀態之一改變記錄或體現於該區塊鏈中。
該方法可包含以下步驟:
使用程式碼之一部分以實施或表示至少一個狀態轉變觸發,該至少一個狀態轉變觸發在經執行時致使另一交易(Tx2)耗費該交易(Tx1)之該輸出(UTXO1)且因此將該DFA移動至另一狀態。
程式碼之該部分可包含基於一輸入信號提供一布林結果之一機器可測試條件。可在執行階段判定該輸入信號,且可由程式碼之該部分使用該輸入信號以判定是否應耗費該未用輸出(UTXO1)以便將該DFA移動至該另一狀態。
可將該未用輸出(UTXO1)中之資料之該部分提供於一鎖定指令碼中。
資料之該部分可為一標籤、標示,或後設資料之一部分。
該DFA可為一機器可執行智慧型合約之一模型。
該未用輸出(UTXO1)可包含一鎖定指令碼,該鎖定指令碼包括一謎題之一雜湊,該謎題之解必須由另一交易之一輸入提供以便耗費該輸出(UTXO1)且將該DFA轉變至另一狀態。
該未用輸出(UTXO1)可包含一鎖定指令碼,該鎖定指令碼包括一兌換指令碼之一雜湊,該兌換指令碼必須由另一交易之一輸入提供以便耗費該輸出(UTXO1)且將該DFA轉變至另一狀態。該兌換指令碼可包含一密碼編譯金鑰。
該方法可包含使用一或多個計算代理程式以執行上文或下文所描述之任何特徵之步驟。
本發明亦提供一種經配置以實施上文所提及之任何實施例之該方法之系統。該系統可包含:
一區塊鏈平台;(此區塊鏈平台可為或可不為該比特幣區塊鏈)
至少一個計算代理程式,其經配置以經由該區塊鏈實施該DFA。
另外或替代地,該方法可包含以下步驟:使用至少一個輸入信號以執行至少一個條件,且基於該條件之該執行之結果根據用於該DFA之一狀態轉變表而執行一動作。
該動作之執行可自一區塊鏈總帳之狀態可識別或可自該區塊鏈總帳之該狀態可偵測。此可藉由觀察或分析一或多個區塊鏈交易之輸出來達成。若一交易係與DFA及或與該DFA相關之合約相關,則輸出可經檢測以判定是否已耗費該輸出。該DFA之狀態可自輸出仍未用之事實來辨別。此可藉由諮詢已經設計用於DFA之狀態轉變表來辨別。該狀態轉變表可已在執行該方法及系統之前經設計。
可在該區塊鏈上使用一交易(Tx)來執行該動作。該動作可自一區塊鏈上之至少一個交易之一輸出或一輸入可識別。
該方法可包含分析該區塊鏈之該狀態以基於是否已執行一動作而判定該DFA之當前狀態的步驟。該DFA可表示或模型化一合約之執行。該合約可為一機器可執行智慧型合約。
該至少一個輸入信號可為由人類或非人類來源產生或提供之一信號或值。舉例而言,該至少一個輸入信號可由正執行方法之電腦產生,例如源自系統時鐘之時間或日期。
該至少一個輸入信號可自電腦外部之源(例如自遙感器或遠端計算資源)接收。
該至少一個輸入信號可提供對自DFA之一個狀態至另一狀態之轉變之觸發,或可致使觸發「點火」或啟動觸發,從而導致隨後動作。
該方法可包含判定用於該DFA之狀態轉變表之步驟。可以軟體編碼該狀態轉變表。該軟體可包含與給定輸入信號及狀態轉變或其觸發之機器可執行動作相關的指令。
該方法可包含將一區塊鏈交易(Tx1)之一未用輸出(UTXO1)之鎖定指令碼(中的資料)之一部分與該DFA之一給定狀態相關聯之步驟。該方法可包含使用另一交易(Tx2)以藉由耗費該交易(Tx1)之該輸出(UTXO1)而進行自該DFA之該狀態至另一狀態之一轉變的步驟。該另一狀態可與提供於該另一交易之一未用輸出(UTXO2)之一鎖定指令碼內的資料之一部分相關聯。
該方法可包含使用包含該至少一個電腦可執行條件之程式碼之一部分以實施或表示至少一個狀態轉變觸發之步驟,該至少一個狀態轉變觸發在經執行時致使另一交易(Tx2)耗費該交易(Tx1)之該輸出(UTXO1)且因此將該DFA移動至另一狀態。程式碼之該部分可包含基於該輸入信號提供一布林結果之一條件。
該方法可包含維持一特定狀態已由該DFA佔據之次數之一記錄的步驟。可使用在一迴圈或迭代建構內遞增之一索引來維持該記錄。該迴圈或迭代建構可在符合一預定義條件時終止。
該軟體實施之DFA可使用一分散式架構或系統來實施或執行。本發明亦可提供一種經配置以實施上文或下文所描述之該方法之任何實施例之系統。
本發明可提供一種軟體實施之DFA,其包含經配置以進行以下操作之軟體:使用至少一個輸入信號以執行至少一個條件,且基於該條件之該執行之結果根據用於該DFA之一狀態轉變表而執行一動作;其中該動作之執行可自一區塊鏈總帳之狀態識別。
本發明可提供一種方法,其包含將一區塊鏈交易(Tx1)之一未用輸出(UTXO1)之一鎖定指令碼的一部分與該DFA之一給定狀態相關聯之步驟。該鎖定指令碼之該部分可為該鎖定指令碼內之資料之一部分。其可為後設資料之一部分。其可為一識別符、標示或標籤。因此,本發明可使用該區塊鏈上之未用交易輸出(UTXO)以記錄及識別該DFA已處於或當前在執行時在一給定點所處之狀態。
該方法可包含使用另一交易(Tx2)以藉由耗費該交易(Tx1)之該輸出(UTXO1)而進行自該DFA之該狀態至另一狀態之一轉變的步驟。該另一狀態可與提供於該另一交易之一未用輸出(UTXO2)之一鎖定指令碼內的資料之一部分相關聯。因此,耗費該UTXO可致使將DFA狀態之一改變記錄或體現於該區塊鏈中。
本發明可實質上如下文關於說明書之「編碼技術」章節所描述,但亦可併有來自文件之其他章節之特徵且併有本文中所描述之任何特徵。
另外或替代地,本發明可包含執行一程式之步
驟,該程式經配置以監測或接收一輸入信號且回應於該輸入信號而產生一區塊鏈交易Tx2,該區塊鏈交易包含一未用輸出(UTXO)且耗費一先前交易Tx1之一輸出。
先前交易Tx1之該輸出可包含一鎖定指令碼,該鎖定指令碼包括與該DFA之一第一狀態相關聯之一識別符,且交易Tx2之該未用輸出(UTXO)可包含一鎖定指令碼,該鎖定指令碼包括與該DFA之另一狀態相關聯之另一識別符。該識別符可為任何形式或格式之標示、標籤或用於識別該狀態之方式。其可包含資料之一部分,諸如後設資料,或一密碼編譯金鑰。
該程式可包含與該DFA之該第一狀態相關聯之識別符。該程式可經配置以產生或執行另一程式,該另一程式包含與該DFA之該另一狀態相關聯且包括於該另一交易Tx2之該UTXO中的另外識別符。
該DFA可模型化或表示一(機器可執行)智慧型合約之執行。該智慧型合約可由基於電腦之資源藉由用參數填入一模板合約來產生。因此,可使合約產生自動化。
該方法可包含判定用於該DFA之一狀態轉變表且將該狀態轉變表儲存於一基於電腦之儲存資源中之步驟。
該程式可經配置以回應於該輸入信號藉由以下操作產生該區塊鏈交易Tx2:使用區塊鏈交易Tx1之該鎖定指令碼中之該識別符以判定該DFA之該當前狀態;使用用於該DFA之一狀態轉變表以基於該當前狀態及該輸入信號判定該另一狀態及其關聯識別符。
該方法可包含向一區塊鏈網路提交該區塊鏈交易Tx2或先前交易Tx1之步驟。
可產生及執行複數個程式,每一程式包含用於唯一地識別該DFA之一狀態之一識別符。因此,一系列程式(指令碼)可用以執行合約,每一指令碼具有實質上對應於該狀態之持續時間之一壽命,亦即,DFA在其給定狀態中多長時間或可能多長時間。
該交易(Tx2)之該未用輸出(UTXO)或該先前交易(Tx1)之該輸出可包含一鎖定指令碼,該鎖定指令碼包括一謎題之一雜湊,該謎題之解必須由另一區塊鏈交易之一輸入提供以便耗費該(該等)輸出且將該DFA轉變至另一狀態。
該交易(Tx2)之該未用輸出(UTXO)或該先前交易(Tx1)之該輸出可包含一鎖定指令碼,該鎖定指令碼包括一兌換指令碼之一雜湊,該兌換指令碼必須由另一交易之一輸入提供以便耗費該輸出(UTXO)且將該DFA轉變至另一狀態。該兌換指令碼可包含一密碼編譯金鑰。
該DFA之狀態可由該區塊鏈上之交易中之未用輸出(UTXO)表示。耗費一給定UTXO可表示至一不同狀態之一轉變。該等狀態、動作、條件及觸發可提供於用於該DFA或以軟體編碼之一轉變表中。
本發明可提供一種經配置以實施、實現或體現一基於軟體之DFA之系統。該系統可經由一區塊鏈來實施、實現或體現該基於軟體之DFA。該系統可包含:一區塊鏈;(此區塊鏈可使用或可不使用比特幣網路來實
施)
一或多個計算代理程式,其經配置以根據上文或下文所描述之任何方法步驟來產生或執行至少一個程式;及一儲存資源,其用於儲存用於該DFA之狀態轉變表;此狀態轉變表可例如為一雜湊表或分散式雜湊表;或用於一區塊鏈交易之至少一個模板或用於智慧型合約之至少一個模板。
本發明可實質上如在以下名為「編譯及執行軟體實施之DFA(compiling and executing the Software-Implemented DFA)」之章節中所描述,但來自說明書之其他章節之特徵亦可適用。
該系統可經配置以在一區塊鏈上實施或實現一狀態機以便執行一(智慧型)合約之一自動化執行。關於本發明之系統所提及之任何特徵亦可適用於本發明之相應方法,且反之亦然。本文中關於本發明之一個態樣或實施例所提及之任何特徵亦可應用於任何其他實施例或態樣。
本發明之基於區塊鏈之DFA併有至少以下金鑰特徵:提供被構想為一抽象機器的計算之一數學模型之一基於區塊鏈之實施,該抽象機器可處於狀態之一有限集合中之一者且可在發生一有限集合之一觸發事件(被稱為輸入)時自一狀態改變至另一狀態(轉變);提供用於基於將不同方之承諾技術實現為體現於一區塊鏈平台上之一計算及儲存結構中的一確定性有限自動機(DFA)而建立及自動化合約之執行的新穎技術;
可使用現有區塊鏈基礎設施及協定;實現及促進一智慧型合約之自動化產生、控制及執行;由電腦自動地可執行及可強制執行。
合約之永久性不可變記錄、合約之執行及結果。
本發明提供及利用為區塊鏈協定及平台固有之至少以下益處:根據設計係本質上安全的(比特幣協定不需要信任方)。
分散式,因此避免大的單一故障點且不容易受到攻擊。
易於管理並維護(比特幣網路使用起來簡單明瞭);低廉的(在比特幣協定下通常預期到僅很小之交易費用);地理上不受限制或限定-可由存取網際網路之任何人在任何地方及任何時間使用;透明的,一旦資料已被寫入至區塊鏈中,任何人便可看到資料。
不可變,一旦資料已被寫入至區塊鏈,無人可改變資料。
維護隱私,不涉及個人識別資訊。
1:區塊鏈
2:確定性有限自動機(DFA)
3:計算代理程式
4:實體
5:分散式雜湊表(DHT)
101:步驟流程
102:步驟流程
104:步驟流程
a0:輸入
a1:輸入
a2:輸入
a3:輸入
C:狀態
c0:狀態
C1:狀態
c1:狀態
C2:狀態
C3:狀態
d:輸入
F0:狀態
f0:狀態
F1:狀態
f1:狀態
f2:狀態
i0:輸入
i1:輸入
i2:輸入
i3:輸入
i4:輸入
o:起始交易
p:輸入
P:狀態
R:重現狀態
S:狀態
s0:第一狀態/當前狀態/初始狀態
s1:狀態
t:輸入
T:狀態
t0:狀態
T1:狀態
t1:狀態
T2:狀態
T3:狀態
圖1說明根據本發明之一實施例而配置之系統之綜述;圖2展示本發明之一說明性實施例,其中將智慧型合約執行為使用P2PKH交易在區塊鏈上實施的DFA來表示經觸發之各種狀態轉變;圖3說明根據下文所論述之實例的基於區塊鏈之DFA;圖4展示用於下文所描述之基於謎題之實施的起始(至狀
態s0)交易(o)之實例;圖5展示轉變(自狀態s0至狀態ff)交易(tf)之實例;圖6展示完成(自狀態ff)交易(cf)之實例;圖7展示類似於圖4中之區塊鏈交易但針對DFA狀態使用P2SH交易類型的區塊鏈交易;圖8展示類似於圖5中之實例但針對DFA狀態使用P2SH交易類型的實例;圖9展示類似於圖6之實例但針對DFA狀態使用P2SH交易類型的實例;圖10係用於可根據本發明之一實施例而使用的編碼技術之實例1之債券的狀態圖,其展示與所指示輸入相關聯之狀態(點)及轉變(連接線);圖11展示具有重現狀態之實例2之附息票債券的狀態圖;圖12展示關於圖11之實例之重現狀態的內部狀態圖;以及圖13展示用於本申請案之「編譯及執行」章節之歐式買入選擇權實例的狀態圖,其展示待提交之狀態(點)及區塊鏈交易(三角形):起始(o)、轉變(t)及完成(c)。
在本文件中,吾人使用術語「區塊鏈」以包括所有形式之基於共識之電子、基於電腦之分散式總帳,包括但不限於區塊鏈及交易鏈技術、允許及未允許總帳、共用總帳及其變化。區塊鏈技術之最廣泛已知之應用係比特幣總帳,但已提議並開發了其他區塊鏈實施方案。雖然可出於方便及說明之
目的而在本文中提及比特幣,但應注意,本發明不限於與比特幣區塊鏈一起使用,且替代區塊鏈實施及協定處於本發明之範疇內。
本發明之說明性實施例包含對於模型化處理序或任務(諸如合約)之DFA及可被稱作代理程式或「網路執行重複功能程式(bot)」之計算資源之相關系統的定義。代理程式經配置以產生交易且將該等交易提交給區塊鏈。然而,本發明不限於關於合約來使用。
轉向圖1,本發明提供將處理序實現為體現於包含硬體及軟體組件之計算平台(區塊鏈)上的抽象DFA。圖1提供根據本發明之說明性實施例而配置之系統之綜述。該系統包含區塊鏈1、確定性有限自動機(DFA)2、計算代理程式3,該等計算代理程式能夠與其他實體4(例如,人類或其他電腦)互動以接收指令。此等指令可能為例如將建立及執行哪一智慧型合約。因此,計算代理程式3與實體世界互動以藉由回應於及致使「真實世界」中自身之外的事件來實施本發明。
合約自身之規格可按例如xBRL之任何機器可執行格式提供且以安全且非集中方式儲存,例如儲存於洪流(torrent)網路上之分散式雜湊表(DHT)5中。自合約之規格,計算代理程式建構確定性有限自動機(DFA)2,該確定性有限自動機(DFA)2隨後藉由一或多個代理程式體現於區塊鏈1上。
確定性有限自動機(DFA)2自身經指定為有限集合{S,I,t,s0,F},其中S代表合約或DFA可處於之可能狀態之(有限)集合;I係輸入(亦被稱作字母表)之(有限)集
合,其在吾人之內容背景中意謂可關於合約發生的任何事件或條件,例如,進行支付、到票據到期日、對方違約等;在吾人之機制中,此等輸入信號係由一或多個代理程式接收或產生,且其接著判定系統之接下來的狀態(可能狀態相同)。
DFA之第三分量係轉變函數t:S×I→S。「DFA」中之術語「確定性」係指決策之唯一性:提供一狀態及僅存在一個新狀態(可能同一個)之輸入。因此,在提供初始狀態(S0)及輸入之歷史的情況下,計算(合約)之後果係唯一的,其為所有可能最終結果之集合(FS)當中之一者。一旦已建立所有此等元素,DFA就完全由轉變表定義,轉變表指定所有可能當前狀態及輸入信號之未來狀態。DFA之狀態自身係與區塊鏈上之未用交易輸出(UTXO)相關聯。如此項技術中已知,比特幣網路持續追蹤所有可用UTXO。根據本發明,藉以使DFA自一狀態移動至另一狀態之機制根據本發明係由區塊鏈交易體現(實施)。實際上,區塊鏈上之交易耗費與一個狀態(先前交易之輸入)相關聯之UTXO且建立與下一狀態(輸出)相關聯之UTXO。
簡單DFA實例:折扣(零息)債券
出於說明起見,吾人現在考慮折扣(零息)債券,其為通常以某一價格(通常以相對於其面值的某折扣)購買,接著持有一段時間直至其本金到期時返還的簡單債務票據。因此,附息票債券為具有週期性利息支付(附息票)的債務義務,持票人自合約發佈起接收週期性利息支付直至合約之到期日,在到期日時,除了支付最後附息票以外,亦支付債券之本金。
吾人將考慮之可能狀態為S={s0,f0,f1},其分別指示持有狀態(s0)、合約之正常結論(其是否遵循愉快路徑)或愉快結束(f0),及事情出錯(例如訴訟)之狀態(f1)。系統之最終狀態因此為F={f0,f1}。吾人將考慮的字母表為I={r,d,e},其分別指示在期滿時(或在期滿之前)本金之償還(r)、在期滿時(或在期滿之前)發行人之違約(d),及無償還的合約期滿(e)。表1中呈現用於此簡單合約之轉變矩陣。
應注意,最終狀態表示合約完成,因此無需自其指定另外狀態(當前在轉變表中被標註為「-」,但可省略該等線)。原則上,可對於此票據定義更多狀態及輸入(以及動作),但在此文件中為了簡單及清楚起見尚未進行此定義,從而說明本發明之根本上發明性態樣而非注入與合約複雜度相關之分散注意力的細節。
圖3表示(比特幣)區塊鏈上之零息債券DFA的實施例。該等狀態係由圓圈表示,且將機器自一狀態移動至另一狀態之比特幣交易係由藍色三角形表示。應注意,圖3中省略由代理程式接收之輸入,然而,在每一狀態中,應根據此等輸入發生一個或另一轉變,轉變在圖解中係由一個或另一比特幣交易(例如狀態s0中之t0或t1)之建構反映;對於不改變狀態之轉變不需要交易,因此其已被省略。除了DFA之轉變交易(ti)以外,亦考慮初始起始交易(o)及對應於合約
完成之交易(ci)。
吾人現在將注意力轉向交易(起始、轉變及完成)中之資金流動。重要觀測結果為:由於DFA之有限性質及(金融)合約之有限性質,處理序將在數個轉變之後完成。此必需暗示(在假定用於所涉及計算代理程式及比特幣礦工(Bitcoin miner)之一些有限費用的情況下)建立及執行合約之最大成本被束縛且可預先(例如在DFA建立之時)經判定。最大成本係由遵循最長可想像路徑執行合約所需要之資金總金額給出。此當然排除執行中之無限迴圈之可能性,然而應注意,此對於當前(金融)合約並不相關,即使諸如永續年金之合約不得不在未來某時刻完成(不管其名稱如何);例如在負債實體不復存在或支付歸因於通貨膨脹變得可忽略時。
每一代理程式為了其工作所接收費用數目之特定分佈(儘管具有實際意義)並非本發明之關鍵要素。繼續吾人之流線型零息債券之實例,吾人將任意假定起始交易(o)之費用為3mBTC、轉變費用(ti交易)為1mBTC,且完成交易(ci)之費用為2mBTC;應注意,此等費用自動包括於交易自身中。連同3個交易之總採擷費用3mBTC,此情形導致為9mBTC之總最大成本。在吾人之極簡單實例中,所有路徑之長度相等。因此,合約之最終成本當然將與其最大成本一致。由於一般而言無需為此狀況,故為了完整說明一般資金流動,吾人將假定經提供用於執行合約之資金為10mBTC,且在完成後將1mBTC返還給同一資金來源。此代替在完成時之最終未動用資金,亦即,最大資金與所用資金是否不同。
吾人將假定用於建立及執行合約之資金(10
mBTC)最初由被稱作「發起者」之一些融資來源提供。如所提及,在吾人之實例中,此來源亦將在完成後接收1mBTC未動用資金。原則上,來源亦可包括交易中之資金之額外輸入及輸出,例如,支付零息債券之價格、本金償還,或任何其他可想像的資金轉撥。儘管此可具有實際意義,但此時其將僅用以混淆本發明之必需元素。為了清楚起見,此類細節尚未包括於下文之實例中。然而,應注意,結構係完全通用的且不排除此類可能性。
技術解決方案之說明性實施-DFA系統及方法
熟習此項技術者將易於瞭解,可以多種方式實施系統,其中該等變化仍屬於本發明之範疇。舉例而言,可使計算代理程式3之組態及架構變化,例如是否預先知曉所涉及之特定代理程式。此處出於說明起見吾人將考慮兩個技術設計選項。
1.若參與合約保持相對開放使得多種計算代理程式可參與,則基於屬於類型「交易謎題」之標準區塊鏈交易之結構係可能的。
2.相反,若可預先將針對每一狀態之交易指派給特定代理程式(或代理程式之群組),則可使用支付給指令碼雜湊(P2SH)交易。
基於謎題之區塊鏈交易及P2SH交易在區塊鏈技術之技術中係已知的。熟習此項技術者亦將理解,除了以上兩個選項以外或代替以上兩個選項,亦可存在數個可能性。舉例而言,一實施例可使用在時間上改變之複數個代理程式,或代理程式之階層等。可能性有許多種,但吾人將在本文中僅描述
兩個選項,熟習此項技術者自該兩個選項將易於導出其他可能的變化及實施選項。
然而,應注意,用於實施例中之區塊鏈交易之類型對於本發明並非必需的,此係因為在交易中提供或接收資金之一方(發行人、購買者、收款人等)對於本發明並非基本的。取而代之,本發明之關鍵元素為:在任何時間點,任務或合約之狀態被定義於區塊鏈內,且本發明提供實現自動化產生合約、在區塊鏈上執行合約及根據發生事件之序列強制執行適當結果之機制(無論其詳細具體實現如何)。應注意,因為整個機制體現於區塊鏈上,所以其在許多其他優點當中本質上提供合約之歷史及結果之永久性不可變記錄。
實施選項1:交易謎題途徑
在本發明之一個可能實施例中,代理程式3之系統經配置為電腦之開放網路,其中具有某網際網路連接處理能力的任何人可加入且可提供對系統之一些處理能力(例如基於區塊鏈之DFA合約之建立及執行的提供者)且因其獲得資源而受到獎勵。在此等情形下,沒有可能預先知曉哪一特定代理程式將把交易提交給區塊鏈,亦即,沒有可能使用代理程式上之任何特定資訊(例如其公用金鑰)。然而,交易謎題類型適合在此類情形下使用。此交易類型之一般鎖定或解除鎖定機制為:鎖定指令碼:OP_HASH256<狀態si謎題>OP_EQUAL
解除鎖定指令碼:<謎題si解>
其中<狀態si謎題>=雜湊(<狀態si謎題解>)且謎題解自身可包括任何所要資訊,包括用於合約之程式碼、狀態之標
示,及任何其他所要資訊,例如為了新增安全性之一些鹽值(salt);<狀態si謎題解>=雜湊(<合約程式碼;狀態si;其他資料;鹽值>)
「鹽值」之概念在先前技術中係已知的且將由熟習本發明之內容者易於理解。參考圖1及圖2,動作序列係如下。首先,計算代理程式3(步驟101)建立確定性有限自動機(DFA)2之結構。
轉變表指定及包含將使DFA自一狀態移動至另一狀態之觸發事件。轉變表包含用於每一可能的狀態轉變之至少一個觸發事件或條件。因此,觸發係與當前狀態及新狀態相關聯,當前狀態亦即,DFA將在此觸發事件之後從其中移動的狀態,且新狀態亦即,DFA在觸發起始之轉變之後將處於的狀態。
在圖2之步驟102處,可能藉由計算代理程式而建立用於DFA之每一可能狀態之謎題。用於每一轉變之轉變表及其關聯謎題經儲存於外部。此可在某種資料庫或DHT中。將謎題安全地分配至被允許參與合約執行之代理程式。存在可如何達成此分佈之數種可能性。在一較佳實施例中,藉由計算代理程式以自動化方式來執行此等步驟,而無需人類干預。
在步驟104處,代理程式建立至狀態S0之起始交易。此可如圖4中所展示。已假定分配給合約之資金為10mBTC,代理程式費用為3mBTC,且為了合約之進一步處理之輸出資金為6mBTC(1mBTC採擷費用係隱含的)。在此階段,合約體現為區塊鏈上之結構且處於其第一狀態s0中,亦
即,存在與區塊鏈上之特定合約之狀態s0相關聯的UTXO。
在圖4之說明性交易中,已假定分配給合約之資金為10mBTC,代理程式(僵屍網路)費用為3mBTC,且為了合約之進一步處理之輸出資金為6mBTC。1mBTC採擷費用係隱含的。
如可藉由研究圖4之交易而推導出,合約之原始融資係由P2PKH型交易(自實例中之「發起者」)接收;輸出0(基於謎題)可由擁有謎題解之任何代理程式解除鎖定;且輸出1(P2PKH)向已成功地將交易置放於區塊鏈上之代理程式3支付所需費用。
在合約執行後之連續轉變係由自動化代理程式3以與圖5中所例示之方式相似之方式來進行。代理程式經配置以獲得、產生或接收對應於當前狀態(s0)之謎題解。代理程式亦與某一或一些實體(例如代理程式系統中之某其他電腦,或某資料或信號源)互動以便接收適當輸入、讀取轉變表(或僅僅轉變表之對應於當前狀態之部分),且獲得對應於接下來適當狀態(ff)之謎題。代理程式可接著將交易提交給區塊鏈。若交易係由區塊鏈網路進行驗證,則代理程式將接收相關費用且DFA將處於狀態ff中。在圖5之轉變中,已假定引入資金為6mBTC,代理程式費用為1mBTC,且為了合約之進一步處理之輸出資金為4mBTC(1mBTC採擷費用係隱含的)。
圖6展示可能的交易(即,完成合約之執行的該等交易)(cf)之最後交易之結構。在圖6中,輸入區段遵循與之前所述相同的交易謎題邏輯,而輸出0將未動用資金支
付回至發起者(1mBTC,如上文所論述),且輸出1將費用支付給代理程式。在圖6中,已假定引入資金為4mBTC,將1mBTC未動用資金返還給發起者,且代理程式費用為2mBTC(1mBTC採擷費用係隱含的)。
實施選項2:基於P2SH之交易
選項一中所描述之基於謎題之途徑適合在存在大量先驗未知參與者的情況下使用。然而,在其他狀況下,有限或可接受少數個已確認計算代理程式3可經指定結合本發明來使用。在此狀況下,類型P2SH之交易可能較適於使用,此係由於其可經組態為包括已知代理程式3之公用金鑰,藉此提供額外安全層。在單一已確認代理程式之狀況下,用於交易之可行鎖定或解除鎖定機制為:鎖定指令碼:OP_HASH160<狀態si兌換指令碼雜湊>OP_EQUAL
解除鎖定指令碼:OP_0<代理程式簽章><狀態si兌換指令碼>
兌換指令碼:OP_1<狀態si後設資料><代理程式公用金鑰>OP_2 OP_CHECKMULTISIG
應注意,此機制可藉由亦使包括較大數目的已確認代理程式之簽章而延伸至該較大數目的已確認代理程式。如前所述,狀態si之後設資料可包括任何所要資訊,例如:<狀態si後設資料>=雜湊(<合約程式碼;狀態si;其他資料>)
動作序列與在針對基於謎題之途徑之先前狀況中相似。首先,計算代理程式3建立確定性有限自動機
(DFA)2之結構、將轉變表儲存於外部(例如在DHT中)。接著判定哪些代理程式將處理交易且擷取或產生其公用金鑰,該等公用金鑰接著包括於用於DFA之每一可能狀態之兌換指令碼中。應注意,此等指令碼可儲存於外部(脫離區塊鏈)且無需被安全傳輸。接下來,計算代理程式建立起始交易,如圖7中所指定。圖7之實例類似於圖4,但針對DFA狀態使用P2SH交易類型。
在此階段,合約經體現為區塊鏈上之結構且處於其第一狀態s0中。該交易相對於圖4中之交易之唯一改變為輸出0,其現在屬於類型P2SH且包括如上文所論述之已確認代理程式之公用金鑰。
儘管改變類似,但出於完整性起見,圖8及圖9提供基於P2SH交易類型之轉變交易及完成交易之實例。資金流動與之前相同。圖8展示類似於圖5中之實例但針對DFA狀態使用P2SH交易類型的實例。圖9展示類似於圖6之實例但針對DFA狀態使用P2SH交易類型的實例。
用於電腦實施之DFA之新穎編碼技術
在上文已描述基於區塊鏈之DFA的情況下,吾人現在將注意力轉向本發明之特別有利及新穎態樣。在此章節中,吾人描述用於將DFA之狀態編碼成電腦可讀及可執行形式的新穎及發明性技術。
在關於此機器之習知方式中,狀態被靜態地(先驗地)定義且表示系統之某特定組態或具有某特定意義。舉例而言,其可被提供集合或名稱、與標籤之集合相關聯,或與如上文針對基於區塊鏈之DFA所解釋之未用交易輸出(UTXO)
之集合相關聯。此足以使系統工作,此係由於計算自身(之輸出)係藉由在系統接受輸入鏈時系統如何在諸狀態之間移動而判定。
在此意義上,DFA(亦即,狀態、轉變等之集合)並非唯一的且兩個DFA可等效,亦即,針對每一所提供之輸入鏈產生相同輸出,即使針對該等狀態先驗構想之解釋極不同。考慮以下狀況:其中例如該等DFA經部署於不同實體機器上或被構想用於解決不同問題。此情形亦自然地導致DFA最小化之概念(參見https://en.wikipedia.org/wiki/DFA_minimization)。
儘管狀態之靜態判定(加標籤)足夠用於狀態機自身之抽象運行且對於其中僅計算之輸出相關之許多問題係足夠的,但存在如下狀況:其中狀態自身之意義具有實際重要性且並不能自狀態之標籤推斷出。此可能例如因為狀態自身之意義出於隱私或機密性原因而被故意隱藏。亦可在如下狀況下發現實例:其中計算係由(故意地)並不具有關於系統之完整資訊之計算代理程式分配及進行。在此等狀況下,在執行階段對系統之狀態之動態判定係必需的。
本文中所描述之本發明之有利態樣為允許動態(在運作中,在執行階段)判定DFA之狀態之編碼技術。此類DFA可包括與如以上所描述之合約之分散式執行相關聯但並非獨佔的DFA,且本發明關於與該發明性技術一起使用之DFA或DFA之特定實施之目的不受限制。因為習知途徑係以靜態方式預定義狀態,所以本發明之動態狀態判定以與傳統方法相反之方式執行且提供與此項技術中已知之技術解決方
案完全不同的技術解決方案。此並不僅僅係只使用區塊鏈以儲存關於已發生之事件之資料。
出於發明性編碼技術之描述及說明起見,吾人將附息票債券及永續年金用作實例,但本發明決不限於此等實例用途或應用。其同樣適用於非金融應用及內容背景。上文已解釋附息票債券之性質。永續年金係不會結束的支付趨勢,亦即,附息票支付原則上永遠繼續下去。然而,實務上歸因於正利率複利之效應,在某一時刻附息票之金額並無實際重要性使得合約之折現值實際上係有限的。
發明性編碼技術之實例1-直接情境
如已經解釋,DFA係由有限集合{S,I,t,s 0 ,F}組成,該等有限集合分別表示可能狀態(S)、輸入(I)、轉變(t)、初始狀態(S 0 ),及亦被稱為接受狀態之最終狀態(F)。另外,可定義表示執行之副作用且並不判定計算之輸出的動作(a)之集合。
出於本發明之描述及說明起見,吾人將考慮3期附息票債券。對於此合約吾人將考慮的DFA之元素(及標記)可被靜態地定義為如表2至表4中所給出。應注意,在吾人之標記中,初始狀態係由S指定且接受狀態係F0及F1。
所有此等輸入可由電腦以自動化方式偵測及判定。在表3之以上實例中,有可能使電腦檢查是否已到某一日期或時間,或是否已經由區塊鏈交易進行某支付或尚未進行某支付。可橫越區塊鏈以檢查在總帳上是否存在進行支付之交易。由於比特幣區塊鏈提供永久性、公開且防篡改記錄,所以此驗證可由計算代理程式進行,而無需人類干預。
一旦已定義此等元素,就可由狀態轉變表完全指定系統之運行,其中系統之當前(初始或起始)狀態(列)連同適當輸入(行)根據表判定系統之下一(最終或到達)狀態以及待與轉變並行地進行之動作。對於吾人之實例,此在表5中給出。應注意,執行被理解為在初始狀態(S)中開始,且僅有的可能最終(接受)狀態係F0及F1。由於此等狀態標記執行之終結,亦即,不存在與其相關聯之轉變,所以可將其自表之列省略。表5中給出用於轉變表之替代格式。
指定狀態機之運行之另一等效方式係所謂的狀態圖,其中系統之狀態係由點表示,輸入及動作係由所附標示給出,且轉變係由連接箭頭表示;對於吾人之實例,其在圖10中被提供。應注意,最終(接受)狀態F0及F1按照慣例係以用於點之雙線指示。為了簡單起見,由於最終(接受)狀態F0及F1對於系統之執行不相關,故已自此圖解省略動作。將在下文闡明虛線框(重現狀態)之意義。
如上文所陳述,儘管並不嚴格地必需運行DFA,但對既人類可讀又電腦可讀的系統之狀態之動態判定可具有實際必要性且構成本文中所描述之本發明之一態樣。每一狀態係藉由會隨之發生或不會隨之發生或對於特定狀態不相關的條件之唯一集合而特性化。每一條件必須係明確的且(機器)可測試的。換言之,必須存在明確的計算方式來告知條件是否隨之發生。以此方式,本發明之一實施例可與實體世界互動,或至少與軟體正執行所在之電腦外部的世界互動,此係因為可自一或多個外部源接收用於測試之值或輸入。舉例而言,一旦到日期,或超過溫度臨限值(如由感測器指示),或自另
一電腦接收通知,等。此等條件可由上文所描述之計算代理程式測試。
在吾人之實例中,此可藉由表6中呈現之條件之集合來達成,在該表6中待測試狀態係在列中給出且吾人已定義之條件係在行中給出。每一t條件指示是否已到特定日期。舉例而言,表示為t0之條件意謂t>t0,且每一ci(或p)條件意謂是否已進行相應支付。應注意,尚未到期的附息票(或本金)之支付對於在已達到相應到期日之前出現的狀態係不相關的。
當然,是否使用條件之此集合或等效集合係不相關的,只要其唯一地判定所有可能的狀態,亦即,針對每一狀態之真值、假值或不相關值之鏈係唯一的。亦應注意,在此實例中儘管吾人已考慮僅二進位(真或假)或不相關條件,但原則上此等條件可採取多個值。另外,除如此處所考慮之不可部分完成條件以外,每一條件又可表示又由若干(子)條件構成的組成條件。所有此等變化將易於對熟習此項技術者顯而易見且處於本發明之範疇。
最後要解決之要點為圖10中之虛線框之意義。儘管以現狀來說圖解完全有效且應正確描述附息票債券之動態,但應注意,在狀態Ti與狀態Ci之間存在有趣的相似性;此係因為該等狀態在意義上極相似,僅在其所涉及之時間週期或附息票(i)之數目方面有所不同。因此,該等狀態亦可由共同重複或重現狀態加指示其所涉及之附息票或週期之額外資訊來表示。此可自然地延伸至伴隨自身無限重複之狀態,
因此開啟永續年金之編碼之可能性。下文將在接下來的章節中解決對於此等重現狀態之編碼方案之定義。
發明性編碼技術之實例2-重現狀態
如上文所提及,來自最後章節的附息票債券DFA或附息票債券之狀態之一些子集(Ti狀態及Di狀態)對應於狀態機之狀態之極相似解釋,僅在其所涉及之時間週期或附息票(i)之數目方面有所不同;亦即,在其可被視為自身重複數次之狀態之某種意義上(比如自i=1至給定imax,其中在吾人之狀況下imax=3)。考慮到此情形,藉由使在待分別處理之重現狀態(R)中包括所有該等狀態而簡化DFA之表示係有意義的。在具有此簡化的情況下,吾人在下文呈現關於吾人之實例附息票債券之DFA的合約狀態之清單(表7)、狀態轉變表(表8)、等效狀態圖(圖11),及狀態定義表(表9);應注意DFA之其他元素(輸入及動作)相對於先前章節並不改變。
當然所有此情形僅僅隱藏必須被分別指定的重現狀態內部債券動態之複雜度。然而,此簡化在複雜狀態機的狀況下可為重要的。一明顯類比情況為在程式化語言中引入迴圈之簡化。重現狀態自身亦被定義為狀態機,然而應注意,初始狀態及接受狀態在此內容背景中係用入口點及出口點替換,此係由於抽象計算之執行並非意謂在重現狀態內部開始或結束。吾人在下方呈現針對重現狀態之合約狀態(表10)、狀態轉變表(表11)及狀態圖(圖12)之清單。
此途徑之新穎性在於引入索引(i),其追蹤狀態已被佔據多少時間。此索引及類似數量(例如所支付金錢之總金額)之增加可在外部計算(如下文針對編碼方案),或藉由額外DFA動作來達成,如針對狀態C之圖11中所指示。亦注意,此重現狀態之關於內部狀態之輸入(字母表)可潛在地取決於內部索引(i)或相似數量。如之前所解釋,系統之將要接受狀態(would-be accepting state)已用出口點替換。圖12中呈現相應等效狀態圖。
針對此重現狀態之編碼方案在經擴展時將看起來極相似於表5之相關部分。然而,由於此途徑之精神並非分別地擴展及處理每一內部(子)狀態,故並未將其明確地呈現於表中看來係較自然的。取而代之,吾人在圖4中呈現將把校正值(真或假)指派給與狀態機編碼之條件相關聯的變數之演算法之虛擬程式碼。當然,無需向與不相關條件相關聯之變數指派任何值。在圖4中,如在以上表5中一樣,每一ti條件指示特定日期是否已到來(亦即,ti=T意謂tti),且每一ci條件指示相應(第i)附息票是否已支付。
吾人在下文提供將把適當值指派給與針對重現狀態之內部狀態之編碼方案之條件相關聯的變數之演算法之虛擬程式碼。
待解決之最後要點為對由索引imax表示之終止點之需要。儘管常見附息票債券確實具有有限到期日,但永續年金為相似票據,其原則上永遠執行。運用吾人之關於重現狀態之編碼技術,此可藉由如下文所呈現的對虛擬程式碼之簡單修改來達成。應注意,在此狀況下,while迴圈將在其遇到尚未到其到期日的第一週期時結束,當然,此等變數不相關且彼時所有狀態係由編碼技術唯一地定義,亦即,存在對每一狀態唯一的真值及假值之組合。以下虛擬程式碼係針對永續年金。
編譯及執行電腦實施之DFA
本文中吾人描述用於基於將不同方之承諾(以及其他條項及條款)實現為模型化為狀態機之計算結構而建立(編譯)及執行合約協議的新穎技術。
在此章節中,吾人描述關於經由區塊鏈進行此智慧型合約之建立及執行之系統的有利技術態樣。此技術態樣處理實際上將實施合約之不同(電腦)代理程式之間的資訊流。極一般而言,吾人將把此系統稱作「僵屍網路」(計算代理程式之集合),而常常不指定哪一代理程式實際上進行所描述動作。熟習此項技術者將理解,存在可實行此類實施細節之許多方式。
如所提及,吾人將使用歐式買入選擇權合約作為用以說明本發明之此態樣之實例。歐式買入選擇權為向投資者提供以指定價格(履約價格)在指定日期(行權日期)購買股票、債券、商品或其他資產的權利而非義務之協議。若買方決定履行期權,則期權之發票人(賣方)承諾在彼日期以彼價格將資產出售給持票人(買方),此在彼日期時資產之價格高於履約價的情況下(合理地)發生。考慮到此情形,吾人假定可替代地藉由支付給持票人等於在行權日期時資產之市場價
格減去履約價的金額、無需另外支付且期權到期未履行來處理合約。
建立及執行(金融)合約之標準方式為簽署法律文件且使其條款由人類解釋及執行,且有時由人類反駁。此等合約可被視為由定義條款及特定用於手邊合約之參數(例如行權日期、發票人、公用金鑰等)之值之集合的文字組成。在吾人之系統中已使此等相異元素分離,其中合約文字之要素經擷取為抽象機器DFA,且用於合約之特定例項之參數的值之集合被獨立提供-如以上所描述。
轉向吾人之實例,DFA計算系統係由有限集合{S,I,t,s 0 ,F}組成,該等有限集合分別表示可能狀態(S)、輸入(I)、轉變(t)、初始狀態(s 0 ),及最終狀態(F),其亦被稱為接受狀態。另外且對於確定性有限自動機(DFA)2之結構自身並非必需的,吾人在此處考慮與提交交易並行地進行代理程式所需要之動作(a)之集合。在下文中,如習知一樣,當前時間(日期)將由t註釋、到期日將由T註釋,且到期資產之價格將由S T 註釋,且履約價格將由K註釋。
該申請案在此章節中之主要焦點為與DFA機器之狀態相關聯的電腦代理程式之建立。此等電腦代理程式經實施為包含指令碼之計算資源。應注意,術語「指令碼」在此內容背景中不應與區塊鏈交易之指令碼(諸如解除鎖定指令碼或鎖定指令碼)混淆。此處,術語「指令碼」在更一般計算意義上使用。熟習此項技術者將易於理解此術語且自內容背景解釋該術語之意義。
代理程式(指令碼)能夠改變狀態、實施轉變,且並行地衍生與後續狀態相關聯之指令碼之其他集合。運用具有適當能力之電腦指令碼進行之DFA狀態之動態(亦即執行階段)識別為本發明之此態樣之主要發明性元素。對於吾人之流線型實例,合約之可能狀態及合約之定義之足夠條件係在表12中給出,其中亦給出狀態之(XML)標示及狀態之自然(人類)語言描述。
應注意,並未考慮合約中所有可想像的狀態,例如,在破產、持票人死亡、網際網路關機等之情況下將發生何種情形。然而,由於吾人在此章節中之當前焦點為分析合約之編譯及執行,而並非分析DFA自身之複雜度,故吾人之實例係適當的,且儘可能簡單但僅此而已。
繼續描述抽象DFA之不同元素,吾人現在轉向輸入之清單。此輸入清單亦被稱為事件字母表。此為關於合約可發生的事件之清單,例如到到期日、接收付款等。此等輸入連同DFA之當前狀態之集合判定待提交給區塊鏈之交易以及待由代理程式進行之並行動作;然而,應注意,儘管技術上轉
變函數係S×I→S映射,但並非針對所有狀態之所有輸入皆相關。在吾人之流線型實例中,此等輸入連同(XML)標示及事件之自然語言描述在表13中給出。
計算上,事件亦可被視為定義狀態之條件之改變,但如所提及,一些事件對於一些(或所有)狀態係不相關的且不會致使狀態轉變。本著同樣精神,並非針對所有狀態皆相關的可能動作之清單可如在表14中經指定。
所有此等元素在狀態轉變表中會聚,其中系統(列)之當前(初始)狀態連同適當輸入(行)根據該表判定系統之接下來(最終)狀態以及待與轉變並行地進行之動作。應注意,在吾人之DFA中,除轉變交易以外,吾人亦預期完成交易,其代替將系統置於後續狀態中而將系統置於接受狀態(f)中,該接受狀態為表示合約執行終止之虛擬(例如不體現於區塊鏈上且不與任何指令碼相關聯的)狀態。吾人之歐式買入選擇權之實例在表15中給出,其中初始狀態係與列相
關聯,輸入係與行相關聯,且每一單元含有後續狀態或動作欄位。
另外,對於吾人之實例由圖13中所展示之狀態圖表示抽象DFA係常見的。應注意,在此圖解與(計算上有用)狀態轉變表之間存在對應性,因此無額外資訊包括於該圖解自身中。圖13展示用於歐式買入選擇權之狀態圖,其展示待提交之狀態(點)及區塊鏈交易(三角形):起始(o)、轉變(t)及完成(c)。
技術描述
DFA編譯機制係由不同元素及檔案組成,該等元素及檔案將又被論述。嵌入於此等檔案中之計算結構、與不同狀態相關聯之指令碼如何不僅產生區塊鏈交易而且後續指令碼又完全執行合約為本申請案之此目前章節之主要焦點。首先,在吾人之實例中,系統使用兩個源檔案:DFA歐式買入選擇權-參數.xml
DFA歐式買入選擇權-指令碼.py
此處吾人具體而言假定待用於產生後續檔案及執行合約之主語言為Python 3.5,且參數提供於XML 1.0文件中。當然,此等實施細節對於本發明並非必需的,且熟習此項技術者將理解,使用其他標準將同樣可接受。
XML文件含有用於手邊特定合約(亦即,一個特定歐式買入選擇權)之參數欄位(由XML標籤指定)及值之清單。在吾人之實例中,XML文件已被手寫,但其亦可被自動建立,亦即,由計算資源或代理程式建立或由人類經由圖形使用者介面(GUI)輸入適當值來建立,其亦可以Python建立。
用於系統之技術規格之主檔案為(Python)主指令碼。此檔案含有或在執行後插入抽象狀態轉變表(可能狀態、輸入及動作)之經硬寫碼版本,且經硬寫碼函數指定待考慮之DFA輸入及動作(例如如何檢查股票價格、時鐘等)。若相關(亦即,針對基於區塊鏈之DFA實施),則該檔案可含有待由指令碼提交給網路之(比特幣)交易之經硬寫碼模板。
如上文所解釋,狀態轉變表完全判定在抽象位準下之DFA且為DFA運行所需之唯一元素。然而,應注意,在法律文字與DFA狀態轉變表之間存在對應性。除了此等必需元素以外,視情況指令碼亦可含有或產生不同人類可讀文件,例如狀態圖、字母表,等。
為了編譯及執行基於區塊鏈之DFA合約,使用者(人類或電腦)需要填充參數之值且執行主指令碼。使用關於指令碼及參數值之此經硬寫碼資訊,在執行後,指令碼將建立合約(例如將其置於區塊鏈上),且產生一或多個電腦程式(其他指令碼),該一或多個電腦程式將由執行該合約之計算代理程式之系統持續執行。可實現此情形之可能的指令序列係如下:
1.讀取參數值(或自GUI直接輸入值)。此將參數值載入於記憶體中,例如載入於雜湊表(HT)結構(其在Python中被稱為辭典)中或載入於分散式雜湊表(DHT)中,例如bitTorrent網路(若此網路提供一些優點)。
2.使用該等參數及經硬寫碼合約模板以產生法律合約。此文件需要由期權之發票人(以數位方式)簽署。
3.(視情況)建立用於合約之人類可讀文件。
4.使用參數以及經硬寫碼輸入及動作函數以產生此等函數之實例,其具有適當參數值。
5.將狀態轉變表載入於記憶體(HT或DHT)中。
6.若相關,則建立如所指定之起始交易且將其提交給區塊鏈網路。此可藉由使用Pybitcointools程式庫來執行。此在區塊鏈中建立與如以上所描述之比特幣區塊鏈上之合約之特定狀態相關聯的UTXO。
7.建立與起始狀態(s0)相關聯的Python指令碼且執行該Python指令碼(在同一電腦或其他電腦上)。此代理程式(或代理程式之集合)將接收或產生適當輸入、執行適當動作(與狀態相容之動作),且最終完成合約之執行或產生至另一狀態之轉變交易,以及衍生控制該等狀態之後續指令碼。
8.終止編譯(主指令碼)。
在編譯階段終止之後,系統因此就將正常執行。根據本發明之一實施例,將在區塊鏈上存在與合約之初始狀態相關聯的UTXO,且存在一個或幾個代理程式(執行於僵屍網路代理程式上之Python指令碼),該等代理程式將監測輸
入、準備採取動作,且產生將改變DFA之狀態至另一狀態或終止DFA之適當轉變。
用於轉變之指令序列為:
1.監測或產生DFA輸入-函數呼叫,諸如檢查時鐘、接收訊息,等。
2.一旦判定輸入,就讀取用於當前狀態之轉變表,此讀取判定接下來的狀態及可能待採取之動作。
3.若有任何可能則對次常式或函數呼叫採取動作,此取決於複雜度
4.當相關時,根據區塊鏈建立轉變交易且將該轉變交易提交給區塊鏈。
5.建立及執行與接下來狀態相關聯之Python指令碼
6.終止當前指令碼
用於完成合約之指令序列為:
1.監測或產生DFA輸入;此等DFA輸入可為次常式或函數呼叫,諸如檢查時鐘、接收訊息,等。
2.一旦判定輸入,就讀取用於當前狀態之轉變表,此讀取判定合約待完成且可能採取動作。
3.若有任何可能則對函數呼叫採取動作,此取決於複雜度
4.若相關,則根據區塊鏈建立完成交易且將該完成交易提交給區塊鏈;此將耗費與合約相關聯之最後UTXO
5.終止當前(及最後)指令碼
因此,DFA係由獨立代理程式(指令碼)之集合執行,該等獨立代理程式又自先前代理程式接收足夠資訊,因此返回至初始主指令碼及參數檔案。
因此,根據本發明之一項實施例,合約係由代理程式(經實施為指令碼)之集合執行且隨著系統在不同狀態之間移動而動態地產生。此等代理程式需要存取系統之當前狀態(例如如由區塊鏈上之UTXO體現)、根據真實世界中發生之事件而接收或產生適當輸入、採取適當動作,且進行適當交易。所有此情形可在(例如Python)指令碼內使用經適當定義函數及現有程式庫來達成。舉例而言,在吾人之歐式買入選擇權狀況下,代理程式應存取時鐘、檢查是否已到合約之到期日,且檢查資產之現行價格。在給定此資訊的情況下,代理程式可根據參數決定何者為所考慮的適當輸入。給定此資訊及轉變矩陣中指定之動作,代理程式可決定產生哪一區塊鏈交易,藉此將系統置於接下來的狀態中(在吾人之狀況下,僅存在一個狀態)或適當地完成對合約之執行。
應注意,上文所提及之實施例說明而非限制本發明,且熟習此項技術者將能夠設計許多替代實施例而不偏離如由所附申請專利範圍界定之本發明之範疇。在申請專利範圍中,置放於圓括號中之任何參考符號不應被認為限制申請專利範圍。詞語「包含」及類似者並不排除除任何申請專利範圍或說明書中整體列出之該等元件或步驟外的元件或步驟之存在。在本說明書中,「包含」意謂「包括或由......組成」。元件之單數參考並不排除此等元件之複數參考,且反之亦然。本發明可借助於包含若干相異元件之硬體且借助於經合適程式化之電腦予以實施。在列舉若干構件之器件請求項中,此等構件中之若干構件可由硬體之同一個項目體現。某些手段敍
述於彼此不同之附屬項中的純粹事實並不指示此等手段不能有利地組合使用。
1‧‧‧區塊鏈
2‧‧‧確定性有限自動機(DFA)
3‧‧‧計算代理程式
4‧‧‧實體
5‧‧‧分散式雜湊表(DHT)
Claims (12)
- 一種在一區塊鏈上實施一確定性有限自動機(DFA)之方法,其包含以下步驟:將一區塊鏈交易(Tx1)之一未用輸出(UTXO1)之鎖定指令碼中的一識別符與該DFA之狀態轉變表之一給定狀態相關聯;和使用另一交易(Tx2)以藉由耗費該區塊鏈交易(Tx1)之該未用輸出(UTXO1)而進行自該DFA之該狀態轉變表之該給定狀態至該DFA之該狀態轉變表之另一狀態之一轉變;其中該另一狀態係與提供於該另一交易之一未用輸出(UTXO2)之一鎖定指令碼內的另一識別符相關聯。
- 如申請專利範圍第1項所述在一區塊鏈上實施一確定性有限自動機(DFA)之方法,且其進一步包含以下步驟:使用程式碼之一部分以實施或表示至少一個狀態轉變觸發,該至少一個狀態轉變觸發在經執行時致使另一交易(Tx2)耗費該交易(Tx1)之該未用輸出(UTXO1)且因此將該DFA移動至另一狀態。
- 如申請專利範圍第2項所述在一區塊鏈上實施一確定性有限自動機(DFA)之方法,其中:程式碼之該部分包含基於一輸入提供一布林結果之一機器可測試條件。
- 如申請專利範圍第3項所述在一區塊鏈上實施一確定性有限自動機(DFA)之方法,其中在執行階段判定該輸入,且由程式碼之該部分使用該輸入以判定是否應耗費該未用輸 出(UTXO1)以便將該DFA移動至該另一狀態。
- 如申請專利範圍第1至4項中任一項所述在一區塊鏈上實施一確定性有限自動機(DFA)之方法,其中該識別符或該另一識別符係一標籤、標示、後設資料之一部分、密碼編譯金鑰,或用於識別該DFA之狀態之方式。
- 如申請專利範圍第1至4項中任一項所述在一區塊鏈上實施一確定性有限自動機(DFA)之方法,其中:該DFA係一機器可執行智慧型合約之一模型。
- 如申請專利範圍第1至4項中任一項所述在一區塊鏈上實施一確定性有限自動機(DFA)之方法,其中:該未用輸出(UTXO1)包含一鎖定指令碼,該鎖定指令碼包括一謎題之一雜湊,該謎題之解必須由另一交易之一輸入提供以便耗費該未用輸出(UTXO1)且將該DFA轉變至另一狀態。
- 如申請專利範圍第1至4項中任一項所述在一區塊鏈上實施一確定性有限自動機(DFA)之方法,其中:該未用輸出(UTXO1)包含一鎖定指令碼,該鎖定指令碼包括一兌換指令碼之一雜湊,該兌換指令碼必須由另一交易之一輸入提供以便耗費該未用輸出(UTXO1)且將該DFA轉變至另一狀態。
- 如申請專利範圍第8項所述在一區塊鏈上實施一確定性有限自動機(DFA)之方法,其中該兌換指令碼包含一密碼編譯金鑰。
- 如申請專利範圍第1至4項中任一項所述在一區塊鏈上實施一確定性有限自動機(DFA)之方法,且其進一步包含以 下步驟:使用一或多個計算代理程式以執行該如前述請求項中任一項之步驟。
- 一種在一區塊鏈上實施一確定性有限自動機(DFA)之系統,其經配置以實施如申請專利範圍第1項至第10項中任一項所述之方法。
- 如申請專利範圍第11項所述之在一區塊鏈上實施一確定性有限自動機(DFA)之系統,其中該系統包含:一區塊鏈平台;至少一個計算代理程式,其經配置以經由該區塊鏈實施該DFA。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1618235.4 | 2016-10-28 | ||
GB1618234.7 | 2016-10-28 | ||
GBGB1618234.7A GB201618234D0 (en) | 2016-10-28 | 2016-10-28 | Computer-implemented system and method |
GBGB1618233.9A GB201618233D0 (en) | 2016-10-28 | 2016-10-28 | Computer-implemented system and method |
??1618233.9 | 2016-10-28 | ||
??1618235.4 | 2016-10-28 | ||
GBGB1618235.4A GB201618235D0 (en) | 2016-10-28 | 2016-10-28 | Computer-implemented system and method |
GB1618233.9 | 2016-10-28 | ||
??1618234.7 | 2016-10-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201820241A TW201820241A (zh) | 2018-06-01 |
TWI816647B true TWI816647B (zh) | 2023-10-01 |
Family
ID=60320936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106137317A TWI816647B (zh) | 2016-10-28 | 2017-10-30 | 用於經由區塊鏈實施確定性有限自動機(dfa)之系統及方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US20190279197A1 (zh) |
EP (2) | EP3532924B1 (zh) |
JP (4) | JP6646764B2 (zh) |
KR (3) | KR102639537B1 (zh) |
CN (2) | CN116627545A (zh) |
AU (2) | AU2017349752B2 (zh) |
SG (1) | SG11201903387RA (zh) |
TW (1) | TWI816647B (zh) |
WO (1) | WO2018078584A1 (zh) |
ZA (1) | ZA201902686B (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018078584A1 (en) * | 2016-10-28 | 2018-05-03 | nChain Holdings Limited | Systems and methods for implementing deterministic finite automata (dfas) via a blockchain |
CN110199308B (zh) * | 2017-01-31 | 2023-09-01 | 区块链控股有限公司 | 用于生成和提取存储在区块链上的用户相关数据的计算机实现的系统和方法 |
US11474837B2 (en) | 2018-04-09 | 2022-10-18 | Advanced New Technologies Co., Ltd. | Method and apparatus for efficient programming of electronic payment processing |
CN108764864A (zh) * | 2018-04-09 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 一种配置支付流程、执行支付流程的方法、装置及设备 |
CN108664650B (zh) * | 2018-05-17 | 2020-05-22 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的事务处理方法、装置、设备及存储介质 |
CN108712263B (zh) * | 2018-06-11 | 2021-05-25 | 北京京东尚科信息技术有限公司 | 信息验证方法、装置、系统和计算机可读存储介质 |
CN110659110B (zh) * | 2018-06-28 | 2021-12-03 | 本无链科技(深圳)有限公司 | 一种基于区块链分布式计算的方法及系统 |
CN109146679B (zh) | 2018-06-29 | 2023-11-10 | 创新先进技术有限公司 | 基于区块链的智能合约调用方法及装置、电子设备 |
WO2020053872A1 (en) | 2018-09-14 | 2020-03-19 | Telefonaktiebolaget Lm Ericsson (Publ) | In a distributed computing system with untrusted entities method and apparatus for enabling coordinated executions of actions |
US11474854B2 (en) * | 2018-10-30 | 2022-10-18 | International Business Machines Corporation | Transformation of inter-organization process for execution via blockchain |
WO2020087106A1 (en) * | 2018-10-31 | 2020-05-07 | Commonwealth Scientific And Industrial Research Organisation | Monitoring a manufacturing process |
RU2744322C2 (ru) * | 2018-11-27 | 2021-03-05 | Эдванст Нью Текнолоджиз Ко., Лтд. | ПЛАТФОРМА "ФУНКЦИЯ-КАК-УСЛУГА" (FaaS) В БЛОКЧЕЙН СЕТЯХ |
US11303454B2 (en) | 2018-11-28 | 2022-04-12 | International Business Machines Corporation | Producing and verifying computational determinations using a distributed ledger |
US11139980B2 (en) | 2018-11-28 | 2021-10-05 | International Business Machines Corporation | Immutably storing computational determinations using distributed ledgers |
CN110060112A (zh) * | 2018-12-13 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 基于区块链的发票创建方法及装置、电子设备 |
EP3767514A1 (en) * | 2019-06-26 | 2021-01-20 | Indian Institute of Technology Bombay | Method for scaling computation in blockchain by delaying transaction execution |
CN111066047B (zh) * | 2019-06-27 | 2024-04-19 | 创新先进技术有限公司 | 实现基于区块链的工作流 |
CN110458538B (zh) * | 2019-07-31 | 2021-09-24 | 创新先进技术有限公司 | 基于区块链的状态机维护方法及装置、电子设备、存储介质 |
CN110473095A (zh) * | 2019-07-31 | 2019-11-19 | 阿里巴巴集团控股有限公司 | 基于区块链的票据状态推送方法及装置、电子设备、存储介质 |
KR102386922B1 (ko) * | 2019-09-30 | 2022-04-20 | 주식회사 미버스랩스 | 블록 체인 시스템 |
TWI707573B (zh) * | 2019-11-14 | 2020-10-11 | 財團法人資訊工業策進會 | 資料上鏈裝置、資料驗證裝置及資料驗證方法 |
US11544252B2 (en) | 2019-12-17 | 2023-01-03 | Akamai Technologies, Inc. | High performance distributed system of record with extended transaction processing capability |
GB202002305D0 (en) * | 2020-02-19 | 2020-04-01 | Nchain Holdings Ltd | Smart contracts |
GB2592211A (en) | 2020-02-19 | 2021-08-25 | Nchain Holdings Ltd | Adapting connections of a layered network |
WO2021165848A1 (en) * | 2020-02-19 | 2021-08-26 | nChain Holdings Limited | Platform services verification |
GB2594684A (en) | 2020-02-19 | 2021-11-10 | Nchain Holdings Ltd | Layered network |
US20230036852A1 (en) * | 2020-11-20 | 2023-02-02 | Senko Advanced Components, Inc. | Single-use tokens |
US20220374974A1 (en) * | 2021-05-24 | 2022-11-24 | International Business Machines Corporation | Securely paying for stored energy |
CN113780779A (zh) * | 2021-08-31 | 2021-12-10 | 杭州协能科技股份有限公司 | 数据状态控制方法、系统及梯次电池数据状态控制方法 |
CN118679708A (zh) | 2022-02-07 | 2024-09-20 | 区块链许可股份公司 | 基于区块链的隐私增强外包数据存储 |
GB2622241A (en) * | 2022-09-08 | 2024-03-13 | Nchain Licensing Ag | Blockchain state machine |
GB2622240A (en) * | 2022-09-08 | 2024-03-13 | Nchain Licensing Ag | Blockchain state machine |
CN115801020B (zh) * | 2023-02-13 | 2023-04-11 | 鹏城实验室 | 确定有限状态自动机压缩方法、匹配方法、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105809062A (zh) * | 2016-03-01 | 2016-07-27 | 布比(北京)网络技术有限公司 | 一种合约构建、执行方法及装置 |
CN105893042A (zh) * | 2016-03-31 | 2016-08-24 | 北京航空航天大学 | 一种基于区块链的智能合约的实现方法 |
US20160292680A1 (en) * | 2015-04-05 | 2016-10-06 | Digital Asset Holdings | Digital asset intermediary electronic settlement platform |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2443240B (en) * | 2006-10-27 | 2009-05-06 | 3Com Corp | Signature checking using deterministic finite state machines |
US8707252B1 (en) * | 2008-09-03 | 2014-04-22 | Emc Corporation | Techniques for automatic generation of parsing code |
US10338558B2 (en) * | 2014-10-17 | 2019-07-02 | 21, Inc. | Sequential logic circuitry with reduced dynamic power consumption |
US9397985B1 (en) * | 2015-04-14 | 2016-07-19 | Manifold Technology, Inc. | System and method for providing a cryptographic platform for exchanging information |
US11170371B2 (en) * | 2016-03-03 | 2021-11-09 | Nec Corporation | Method for managing data in a network of nodes |
GB201607477D0 (en) * | 2016-04-29 | 2016-06-15 | Eitc Holdings Ltd | A method and system for controlling the performance of a contract using a distributed hash table and a peer to peer distributed ledger |
WO2018078584A1 (en) | 2016-10-28 | 2018-05-03 | nChain Holdings Limited | Systems and methods for implementing deterministic finite automata (dfas) via a blockchain |
-
2017
- 2017-10-27 WO PCT/IB2017/056696 patent/WO2018078584A1/en unknown
- 2017-10-27 AU AU2017349752A patent/AU2017349752B2/en active Active
- 2017-10-27 KR KR1020227025856A patent/KR102639537B1/ko active IP Right Grant
- 2017-10-27 KR KR1020247005555A patent/KR20240027155A/ko active Application Filing
- 2017-10-27 CN CN202310346068.4A patent/CN116627545A/zh active Pending
- 2017-10-27 JP JP2018560193A patent/JP6646764B2/ja active Active
- 2017-10-27 EP EP17797757.6A patent/EP3532924B1/en active Active
- 2017-10-27 EP EP21218347.9A patent/EP4068085B1/en active Active
- 2017-10-27 SG SG11201903387RA patent/SG11201903387RA/en unknown
- 2017-10-27 CN CN201780066408.0A patent/CN109923521A/zh active Pending
- 2017-10-27 KR KR1020197014561A patent/KR102427013B1/ko active IP Right Grant
- 2017-10-27 US US16/345,517 patent/US20190279197A1/en active Pending
- 2017-10-30 TW TW106137317A patent/TWI816647B/zh active
-
2019
- 2019-04-29 ZA ZA2019/02686A patent/ZA201902686B/en unknown
-
2020
- 2020-01-10 JP JP2020002743A patent/JP7036844B2/ja active Active
-
2022
- 2022-03-03 JP JP2022032373A patent/JP7387781B2/ja active Active
- 2022-10-14 AU AU2022252826A patent/AU2022252826A1/en not_active Abandoned
-
2023
- 2023-11-15 JP JP2023194043A patent/JP2024023300A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160292680A1 (en) * | 2015-04-05 | 2016-10-06 | Digital Asset Holdings | Digital asset intermediary electronic settlement platform |
CN105809062A (zh) * | 2016-03-01 | 2016-07-27 | 布比(北京)网络技术有限公司 | 一种合约构建、执行方法及装置 |
CN105893042A (zh) * | 2016-03-31 | 2016-08-24 | 北京航空航天大学 | 一种基于区块链的智能合约的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3532924A1 (en) | 2019-09-04 |
JP2022071122A (ja) | 2022-05-13 |
CN116627545A (zh) | 2023-08-22 |
EP3532924B1 (en) | 2022-02-09 |
JP7036844B2 (ja) | 2022-03-15 |
TW201820241A (zh) | 2018-06-01 |
CN109923521A (zh) | 2019-06-21 |
JP2019522264A (ja) | 2019-08-08 |
JP6646764B2 (ja) | 2020-02-14 |
WO2018078584A1 (en) | 2018-05-03 |
KR102427013B1 (ko) | 2022-07-29 |
JP2020080158A (ja) | 2020-05-28 |
EP4068085A1 (en) | 2022-10-05 |
ZA201902686B (en) | 2020-12-23 |
KR20240027155A (ko) | 2024-02-29 |
KR102639537B1 (ko) | 2024-02-23 |
KR20190071778A (ko) | 2019-06-24 |
EP4068085B1 (en) | 2024-08-07 |
JP2024023300A (ja) | 2024-02-21 |
JP7387781B2 (ja) | 2023-11-28 |
KR20220108214A (ko) | 2022-08-02 |
AU2022252826A1 (en) | 2022-11-10 |
US20190279197A1 (en) | 2019-09-12 |
AU2017349752B2 (en) | 2022-11-10 |
SG11201903387RA (en) | 2019-05-30 |
AU2017349752A1 (en) | 2019-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI816647B (zh) | 用於經由區塊鏈實施確定性有限自動機(dfa)之系統及方法 | |
Dannen | Introducing Ethereum and solidity | |
WO2021042817A1 (zh) | 一种基于区块链的违约资产处理方法、装置及电子设备 | |
US11900363B2 (en) | Computer-implemented system and method for determining the state of a machine executable contract implemented using a blockchain | |
CN115348031A (zh) | 用于通过区块链控制转移的方法和系统 | |
Kim et al. | A first step in the co-evolution of blockchain and ontologies: Towards engineering an ontology of governance at the blockchain protocol level | |
Qu et al. | Formal verification of smart contracts from the perspective of concurrency | |
CN113849191B (zh) | 智能合约部署方法、系统、装置及存储介质 | |
Margret et al. | Smarter and resilient smart contracts applications for smart cities environment using blockchain technology | |
Henry | Towards trustworthy, flexible, and privacy-preserving peer-to-peer business process management systems | |
Taneja et al. | A Novel Customized Crypto Token Based Approach on Blockchain | |
Jugran et al. | Efficient Use of Blockchain for Crowdfunding Platform | |
Reule et al. | Understanding Smart Contracts: Hype or Hope? Elizaveta Zinovyev | |
Herasymenko et al. | Non-Fungible Tokens as Alternative Means of User Access to Additional Services in the Blockchain Platform Payment Process | |
Schneider | Theoretische und praktische Smart Contracts-Realisierung eines Investmentfonds | |
CN116957606A (zh) | 诈骗用户识别方法及系统 |