TWI806918B - 用於簡化可執行指令以優化可驗證計算之系統及相關方法與儲存媒體 - Google Patents
用於簡化可執行指令以優化可驗證計算之系統及相關方法與儲存媒體 Download PDFInfo
- Publication number
- TWI806918B TWI806918B TW107139662A TW107139662A TWI806918B TW I806918 B TWI806918 B TW I806918B TW 107139662 A TW107139662 A TW 107139662A TW 107139662 A TW107139662 A TW 107139662A TW I806918 B TWI806918 B TW I806918B
- Authority
- TW
- Taiwan
- Prior art keywords
- arithmetic circuit
- computer
- implemented method
- logic
- blockchain
- Prior art date
Links
Images
Classifications
-
- 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/12—Applying verification of the received information
-
- 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
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/423—Preprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- 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]
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Power Engineering (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Devices For Executing Special Programs (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Stored Programmes (AREA)
Abstract
本發明係有關於分散式分類帳技術,諸如基於共識之區塊鏈。所述為用於精簡從智慧合約推導出之算術電路之電腦實施之方法。本發明係使用一區塊鏈網路來實施,該區塊鏈網路可以是例如一比特幣區塊鏈。取得採用一第一程式設計語言編碼之一條件集。將該條件集轉換成採用一第二程式設計語言編碼之一程式化條件集。將該程式化條件集預編譯成已預編譯程式碼。將該已預編譯程式碼變換成一算術電路。精簡該算術電路以形成一已精簡算術電路,並且儲存該已精簡算術電路。
Description
本發明大致係有關於區塊鏈技術,並且更特別的是,係有關於藉由將智慧合約轉成為算術電路並將算術電路最小化來優化及混淆化智慧合約。本發明進一步利用密碼編譯及數學技巧來施行與透過區塊鏈網路進行之電子轉移有關之保全。本發明尤其適合、但不限於用在智慧合約產生及執行。
在本文件中,「區塊鏈」一詞可有關於數種類型之電子、電腦為基之、分散式分類帳。這些包括基於共識之區塊鏈及交易鏈技術、許可及未許可之分類帳、共享分類帳以及其變例。雖然已提出並開發其他區塊鏈實作態樣,區塊鏈技術最廣為人知之應用仍是比特幣分類帳。儘管比特幣之實例可稱為本揭露中所述技術之一有用應用,但為了方便及說明目的,比特幣僅是本揭露中所述技術可應用之許多應用之一。然而,應知本發明並不受限於配合比特幣區塊鏈使用;包括非商業應用之替代區塊鏈實作態樣及協定亦落入本發明之範疇內。舉例而言,本揭露裡所述之技巧將提供優點以利用與比特幣具有類似限制之其他區塊鏈實作態樣,該等限制與可在交易裡編碼什麼限制條
件有關,與是否發生一加密貨幣交換無關。
一區塊鏈係一種點對點、電子分類帳,其係實施成一電腦為基之分散型系統,由諸區塊所構成,該等區塊進而可由交易及其他資訊所構成。在一些實例中,「區塊鏈交易」意指為將包含資料及一條件集之一欄位值結構化集合編碼之一輸入訊息,其中該條件集之滿足係將該欄位集合寫入至一區塊鏈資料結構之一前提。舉例而言,比特幣之各交易為將區塊鏈系統中諸參與者之間一數位資產之控制轉移編碼、並且包括至少一個輸入及至少一個輸出之一資料結構。在一些實施例中,一「數位資產」意指為與一使用權相關聯之二進位資料。數位資產之實例包括比特幣、以太幣及萊特幣。在一些實作態樣中,一數位資產之轉移控制可藉由使出自一第一實體之一數位資產之至少一部分與一第二實體重新產生關聯來進行。區塊鏈之各區塊可含有前一個區塊之一雜湊,諸區塊與之變為鏈接在一起,以建立所有交易之一永久、不可更改記錄,自其起始以來便已將該等交易寫入至該區塊鏈。
在一些實例中,「堆疊式腳本語言」意指為一種支援各種堆疊式或堆疊導向執行模型及操作之程式設計語言。也就是說,堆疊式腳本語言可利用一堆疊。憑藉堆疊,可將值推送到堆疊頂端或從堆疊頂端取出。對堆疊進行之各種操作可導致將一或多個值推入堆疊頂端或從堆疊頂端取出。舉例而言,OP_EQUAL操作將最頂端兩個項目從堆疊取出、進行比較、以及將一結果(例如,若相等則為1,或若不等則為0)推送至堆疊頂端。對堆疊進行之其他操作(例如:OP_PICK)可允許從有別於堆疊頂部之位置選擇項目。在本發明一些實施例所運用之一些腳本語言中,可有至少兩個堆疊:一主要堆疊及一替用堆疊。腳本語言有些操作可將項目從一個堆疊之頂端移動至另
一堆疊之頂端。舉例而言,OP_TOALTSTACK將一值從主要堆疊之頂端移動至替用堆疊之頂端。應知,在一些狀況中,一堆疊式腳本語言可能不僅僅受限於採用一嚴格後進先出(LIFO)方式之操作。舉例而言,一堆疊式腳本語言可支援將堆疊中之第n個項目複製或移動至頂端之操作(例如,在比特幣中分別為OP_PICK及OP_ROLL)。可將採用一堆疊式腳本語言撰寫之指令碼推送到可使用任何適合資料結構(諸如一向量、清單或堆疊)來實施之一邏輯堆疊。
為了將一交易寫入至區塊鏈,必須對其進行「驗核」。網路節點(挖礦節點)進行工作以確保各交易有效,並且將無效交易從網路拒絕。一節點可具有與其他節點不同之有效性標準。由於區塊鏈中之有效性是以共識為基礎,因此如果大部分節點同意一交易有效,則將該交易視為有效。安裝在節點上之軟體用戶端藉由執行一未動用交易(UTXO)之鎖定及解鎖指令碼,部分地對引用該UTXO之交易進行此驗核工作。如果鎖定及解鎖指令碼之執行評估為成立,並且滿足其他驗核條件(若適用的話),則由該節點來驗核該交易。已驗核交易係傳播至其他網路節點,然後一挖礦節點可選擇在一區塊鏈中包括該交易。因此,為了將一交易寫入至區塊鏈,其必須i)藉由接收交易之第一節點來驗核--如果交易經過驗核,則節點將其轉發至網路中之其他節點;以及ii)加入由一挖礦節點所建置之一新區塊;以及iii)受開採,即加入過去交易之公開分類帳。當向區塊鏈加入足以使該交易實際上不可逆之區塊數時,將該交易視為經確認。
雖然區塊鏈技術在加密貨幣實作態樣之使用方面廣為人知,但數位企業家已開始探索比特幣所基於之密碼編譯保全系統、及可儲存在區塊鏈上之資料兩者之使用以實施新系統。如果區塊鏈可用於不限於加密貨幣領域之自動化任務及程序,那將會非常有利。此
類解決方案將能夠利用區塊鏈之效益(例如,一永久性、防竄改事件記錄、分散式處理等),同時在其應用方面也更加通用。
本揭露說明一或多個基於區塊鏈之電腦程式之技術態樣。一基於區塊鏈之電腦程式可以是記錄在一區塊鏈交易中之一機器可讀且可執行程式。該基於區塊鏈之電腦程式可包含可處理輸入以便產生結果之規則,進而可接著依據那些結果進行動作。一個目前研究領域是使用基於區塊鏈之電腦程式來實施「智慧合約」。智慧合約與用自然語言撰寫之一傳統合約不同,可以是設計旨在使一機器可讀合約或協議之條款自動執行之電腦程式。
在實施例中,雖然可在智慧合約中以特定步驟對與特定實體之互動進行編碼,但仍可按其他方式自動執行及自我施行智慧合約。其屬於機器可讀且可執行。在一些實例中,自動執行意指為成功進行智慧合約之執行以實現UTXO之轉移。請注意,在此類實例中,能夠造成UTXO轉移之「一實體」意指為能夠建立解鎖指令碼而不需要證實知悉某秘密之一實體。換句話說,可在不驗證資料來源(例如:建立解鎖交易之一實體)對一密碼編譯秘密(例如,私用不對稱金鑰、對稱金鑰等)具有存取權之情況下驗核解鎖交易。另外,在此類實例中,自我施行意指為受令根據限制條件施行解鎖交易之區塊鏈網路之驗核節點。在一些實例中,「解鎖」一UTXO(亦稱為「動用」UTXO)之使用在技術意義上意指為建立引用UTXO並且執行為有效之一解鎖交易。
一區塊鏈交易輸出包括一鎖定指令碼、以及與諸如比特幣等數位資產之所有權有關之資訊。鎖定指令碼(亦可稱為一保留數)藉由指定為了轉移UTXO而需要符合之條件來「鎖定」數位資產。舉例而言,一鎖定指令碼可要求在一解鎖指令碼中提供某些資料以解鎖
相關之數位資產。鎖定指令碼在比特幣中亦稱為「scriptPubKey」。要求一當事方提供資料以解鎖一數位資產之一技巧涉及在鎖定指令碼內嵌入資料之一雜湊。然而,如果資料未在建立鎖定指令碼時判定(例如,未知且未修正),則這會呈現一問題。
可將本發明描述為一驗證方法/系統、及/或用於控制區塊鏈交易驗核之一控制方法/系統。在一些實施例中,一已驗核區塊鏈交易導致交易在一區塊鏈上之記錄,其在一些應用中,可經由區塊鏈導致一數位資產之交換或轉移。數位資產可以是由一區塊鏈管理之一資源之一單元。雖然在一些實施例中,數位資產可當作加密貨幣使用,但列入考量的是,在實施例中,數位資產係另外或替代地可用在其他背景中。請注意,本發明儘管適用於數位資產之控制,但本質上仍具有技術性,並且可用於利用區塊鏈資料結構而不必涉及數位資產轉移之其他背景中。
因此,期望在這些態樣其中一或多者中提供改善區塊鏈技術之方法及系統。現已擬出此一改良型解決方案。因此,根據本發明,提供有一種如隨附申請專利範圍中定義之方法。
從而期望提供一種電腦實施之方法,該電腦實施之方法包含:將採用一第一程式設計語言編碼之一條件集轉換成採用一第二程式設計語言編碼之一程式化條件集;將該程式化條件集預編譯成已預編譯程式碼;將該已預編譯程式碼變換成一算術電路;以及精簡該算術電路以形成一已精簡算術電路。
該方法可包含以下步驟:取得採用一第一程式設計語言
編碼之一條件集。這可在轉換步驟之前進行。
該方法可包含以下步驟:儲存該已精簡算術電路。
精簡該算術電路可涉及將該算術電路最小化以產生該已精簡算術電路。
該算術電路可以是一有向無循環圖。另外或替代地,該有向無循環圖可包含代表邏輯閘及輸入之一節點集。另外或替代地,該有向無循環圖可包含連接該等節點之一邊緣集,其代表該等邏輯閘與該等輸入之間的導線。
該算術電路可包括一邏輯子模組,該邏輯子模組包括該節點集之一眞子集。另外或替代地,精簡該算術電路可包括使該邏輯子模組與該算術電路之其餘部分分開地精簡。
該邏輯子模組中諸邏輯閘之間的該等導線之寬度可以是1位元。
該算術電路可更包括另一邏輯子模組,該另一邏輯子模組包括該節點集之另一子集。另外,該節點子集及該另一節點子集可無交集。另外,精簡該算術電路可更包括與使用一第二處理器核心來精簡該另一邏輯子模組平行,使用一第一處理器核心來精簡該邏輯子模組。
該電腦實施之方法亦可包括根據用於優化運算資源使用狀況之一試探法,將該邏輯子模組分配給該第一處理器核心,並且將該另一邏輯子模組分配給該第二處理器核心。
該試探法可以是一最長處理時間貪婪演算法。
精簡該算術電路可包括判定該算術電路之一質蘊涵項集合。另外,精簡該算術電路可包括將該質蘊涵項集合表達為包括一第一乘積項與一第二乘積項之一積和。另外,精簡該算術電路可包括
簡化該第一乘積項及該第二乘積項。
簡化該第一乘積項及該第二乘積項可藉由將一布林最小化規則施用於該第一乘積項及該第二乘積項來進行。
該第二程式設計語言可以是C++。
該第一程式設計語言可以是為了編製機器可讀金融合約而擬出之一電腦程式設計語言。
該電腦實施之方法可更包括產生包括一多項式集合之一二次規劃,該多項式集合描述該已精簡算術電路。另外,該電腦實施之方法可更包括產生一參數集,供一區塊鏈網路中之一節點用於進行該二次規劃。
亦期望提供一種系統,其包含:一處理器;以及包括可執行指令之記憶體,該等可執行指令隨著藉由該處理器執行而令該系統進行如請求項所述之任一方法。
亦期望提供一種上有儲存可執行指令之非暫時性電腦可讀儲存媒體,該等可執行指令隨著藉由一電腦系統之一或多個處理器執行而令該電腦系統至少進行如請求項所述之任一方法。
可將本發明描述為一驗證方法/系統、及/或用於對經由一區塊鏈交換或轉移一數位資產進行控制之一控制方法/系統。在一些實施例中,該數位資產係加密貨幣之一符記或一部分。如下述,亦可將本發明描述為用於經由一區塊鏈網路或平台進行操作之新式、改良型及有利方式之一保全方法/系統。另外或替代地,本發明可提供一改良型區塊鏈規劃工具或輔助設備。其可提供促進或實現分散式、可驗證運算之一改良型、有效率及優化之布置結構。
100:區塊鏈網路
102、102A:節點
104:交易
106:路徑
200:實例
202、206...智慧合約
214、414、500:算術電路
216、416...已精簡算術電路
250、350:工作者節點
300、800、900:程序
302~310、802~812、902~916:操作
340:用戶端節點
360:驗證者節點
400:工作流程
402:DSL智慧合約
404:轉換器
406:GPL合約
408:GPL預編譯器
410:外部庫
412:GPL預處理合約
418:QAP多項式
502、504:輸入
506A~506D:未分組之算術閘
508A、508B:邏輯子模組
510:輸出
600:精簡邏輯子模組
608A~608H:邏輯子模組
622:處理器核心
700:質蘊涵項精簡
702A~702F:左成員
704A~704F:右成員
1000:運算裝置
1002:處理器
1004:匯流排子系統
1006:儲存子系統
1008:記憶體子系統
1010:檔案/碟片儲存子系統
1012:使用者介面輸入裝置
1014:使用者介面輸出裝置
1016:網路介面子系統
1018:主隨機存取記憶體
1020:唯讀記憶體
1024:局部時脈
本發明之這些及其他態樣將經由本文中所述之實施例
而顯而易見,並且參照該實施例來闡明。本發明之一實施例現將僅以舉例方式、並且參照附圖作說明,其中:圖1繪示內可實施各項實施例之一區塊鏈環境;圖2根據一實施例繪示邏輯精簡之一實例;圖3係一泳道圖,其繪示根據一實施例所涉及之可驗證運算及動作者之一實例;圖4根據一實施例繪示工作流程從領域特定語言合約到二次算術規劃之一實例;圖5根據一實施例繪示含有邏輯子模組之一算術電路之一實例;圖6根據一實施例繪示平行處理諸邏輯子模組之一實例;圖7根據一實施例繪示質蘊涵項精簡之一實例;圖8係一流程圖,其根據一實施例繪示將一領域特定語言合約變換成一已精簡算術電路之一實例;圖9係一流程圖,其根據一實施例繪示算術電路精簡之一實例;以及圖10繪示內可實施各項實施例之一運算環境。
首先將參照圖1,其根據本揭露之一實施例繪示與一區塊鏈相關聯之一例示性區塊鏈網路100。在該實施例中,例示性區塊鏈網路100包含實施成點對點分散式電子裝置之區塊鏈節點,各區塊鏈節點運行進行操作之一軟體及/或硬體個體,該等操作遵循諸節點102之營運商之間至少部分地達成一致之一區塊鏈協定。在一些實例中,「節點」意指為分布在區塊鏈網路之中的點對點電子裝置。一區塊鏈協定之一實例係比特幣協定。
在一些實施例中,節點102可包含任何適合的運算裝置
(例如,藉由一資料中心中之一伺服器包含、藉由一用戶端運算裝置(例如:一桌上型電腦、膝上型電腦、平板電腦、智慧型手機等)包含、藉由一運算資源服務提供者之一分散式系統中之多個運算裝置包含、或藉由諸如圖10之運算裝置1000之任何適合的電子用戶端裝置包含)。在一些實施例中,節點102具有輸入以接收表示所提出之交易(諸如一交易104)之資料訊息或物件。在一些實施例中,該等節點可查詢其維護之資訊,諸如交易104之一狀態。
如圖1所示,一些節點102係通訊性耦合至節點102中之一或多個其他節點。此類通訊性耦合可包括有線或無線通訊中之一或多者。在該實施例中,各節點102維護區塊鏈中所有交易之一「分類帳」之至少一部分。依照這種方式,該分類帳將是一分散式分類帳。由影響分類帳之一節點處理之一交易可由一或多個其他節點驗證,使得分類帳之完整性得以維持。
至於哪些節點102可與哪些其他節點通訊,充分條件可以是,假設一訊息係區塊鏈協定指示應該轉發者,則例示性區塊鏈網路100中各節點能夠與一或多個其他節點102通訊,使得諸節點之間傳遞之該訊息可在整個例示性區塊鏈網路100(或其一些重大部分)中傳播。一個此類訊息可能是由諸節點102中之一個節點(諸如節點102A)公布一所提出之交易,其接著將沿著諸如路徑106之一路徑傳播。另一此類訊息可能是提議含納到一區塊鏈上之一新區塊之公布。
在一實施例中,諸節點102中至少有些節點係進行複數計算(諸如解決密碼編譯問題)之挖礦節點。解決密碼編譯問題之一挖礦節點為區塊鏈建立一新區塊,並且將該新區塊廣播至其他節點102。該等其他節點102驗證挖礦節點之工作,並且在驗證時,接受區塊進入區塊鏈(例如,藉由將其加入區塊鏈之分散式分類帳來接受)。
在一些實例中,一區塊係一交易群組,通常標記有一時間戳記及前一個區塊之一「指紋」(例如:一雜湊)。依照這種方式,各區塊可變為連結至前一個區塊,藉此建立將區塊鏈中諸區塊連結之「鏈」。在實施例中,藉由節點102之一共識將有效區塊加入區塊鏈。同樣在一些實例中,一區塊鏈包含一已驗核區塊清單。
在一實施例中,至少一些節點102操作為驗核交易之驗核節點,如本揭露中所述。在一些實例中,一交易包括提供一數位資產(例如:若干比特幣)之所有權證明的資料、以及用於接受或轉移該數位資產之所有權/控制的條件。在一些實例中,一「解鎖交易」意指為使前一個交易之UTXO所指示之一數位資產之至少一部分與一實體重新產生關聯(例如,轉移所有權或控制)之一區塊鏈交易,該實體與一區塊鏈位址相關聯。在一些實例中,「前一個交易」意指為含有由解鎖交易引用之UTXO之一區塊鏈交易。在一些實施例中,該交易包括以可轉移(「解鎖」)所有權/控制前必須先滿足之條件來對該交易設定保留數之一「鎖定指令碼」。
在一些實施例中,區塊鏈位址係與一實體相關聯之一串文數字字元,一數位資產之至少一部分之控制係轉移至該實體/與該實體重新產生關聯。在一些實施例中實施之一些區塊鏈協定裡,與該實體相關聯之一公開金鑰與該區塊鏈位址之間有一對一之對應關係。在一些實施例中,交易驗核涉及驗核一鎖定指令碼及/或解鎖指令碼中指定之一或多個條件。交易104一經成功驗核,驗核節點便將交易104加入區塊鏈,並且將其配送至節點102。
圖2繪示本揭露之一實施例之一實例200。具體而言,圖2繪示被轉換成一算術電路214之一智慧合約202,接著藉由一算術電路優化模組來精簡算術電路214,以便減少供一區塊鏈中之一工作者
節點250判定智慧合約206之成果必要之所需資源。
在一實施例中,智慧合約202係以一格式撰寫之一合約或協議,其允許一運算裝置執行該合約之條款、及/或判斷是否已滿足該合約之該等條款。智慧合約202可包括一規則集及/或一條件集,其隨著針對一輸入值集合進行評估,而允許一運算裝置判定智慧合約202之成果,接著可依據該成果來進行進一步動作。
本揭露之一目的是用來描述一種協定,該協定允許實體使用一領域特定程式設計語言來編製規則集及/或條件集,諸如智慧合約202之規則集及/或條件集。在一些實例中,一領域特定程式設計語言或「領域特定語言」(DSL)意指為供一特定使用領域使用而設計之一電腦程式設計語言。DSL之實例包括超文字標記語言(HTML)、Actulus建模語言(AML)、數位資產建模語言(DAML)、金融產品標記語言(FpML)、以及Emacs Lisp。
在一些實例中,與一DSL相比之下,一通用程式設計語言或「通用語言」(GPL)大致適用。通用程式設計語言之實例包括Ada、ALGOL、組合語言、BASIC、Boo、C、C++、C#、Clojure、COBOL、Crystal、D、Dart、Elixir、Erlang、F#、Fortran、Go、Harbour、Haskell、Idris、Java、JavaScript、Julia、Lisp、Lua、Modula-2、NPL、Oberon、Objective-C、Pascal、Perl、PHP、Pike、PL/I、Python、Ring、RPG、Ruby、Rust、Scala、Simula、Swift、以及Tcl。可在本揭露之實施例中引用C++,其係一種具有命令式、物件導向及一般程式設計特徵之通用程式設計語言,同時還為低階記憶體操縱提供設施。
在一實施例中,算術電路214係表示智慧合約202之有向無循環圖(DAG)。也就是說,DAG之邊緣(「導線」)可代表輸入值或
該圖中諸節點之間的值,並且該等節點可代表算術運算(例如:總和、乘積等)。因此,送至算術電路214之輸入值與送至智慧合約之輸入值相關聯,並且在實施例中,智慧合約之成果與算術電路214之成果相匹配。請注意,在各項實施例中,一匹配不必然需要等式。舉例而言,如果兩個值不相等但在數學上對等,則兩者可匹配。舉另一例而言,如果兩個值對應於一共同物件(例如:值)或採用某種預定方式互補、及/或滿足一或多個匹配準則,則兩者可相匹配。一般而言,可使用判斷是否有一匹配之任何方式。
在一實施例中,已精簡算術電路216係根據布林最小化規則或其他數學對等規則,已由算術電路精簡模組220精簡之算術電路之結果。舉例而言,在布林代數中,可單純地將表達式u+uv最小化成u,並且類似地最小化成算術電路:
因此,算術電路精簡模組220可藉由評估算術電路214以精簡或最小化電路之方式來精簡/簡化算術電路214,藉此產生算術電路精簡模組220輸出之已精簡算術電路216。
在一實施例中,算術電路精簡模組220係硬體或軟體,其隨著被執行而藉由進行將算術電路214中之乘積項與布林最小化規
則或其他數學對等規則作比較之操作來產生已精簡算術電路216,以便判斷可在何處及如何精簡算術電路214。圖7至9之說明中發現關於由算術電路精簡模組220進行之操作之進一步細節。
在一實施例中,工作者節點250係一區塊鏈網路中之一節點,類似於圖1之節點102及圖3之工作者節點350。也就是說,工作者節點250可以是一運算裝置,其被組配來處理及/或驗核通訊性耦合至一區塊鏈網路中一或多個其他節點之區塊鏈交易。在一些實施例中,工作者節點250可設計旨在給定一輸入值集合來判定一算術電路(諸如已精簡算術電路216)之輸出。
在實施例中,合約之執行可外包給不受信賴方,而合約執行之正確性則可公開驗證。在實施例中,協定利用確保完備性、健全性及零知識之密碼編譯基元。在一些實例中,「完備性」意指為若證明者正確地遵循協定,則一驗證者能夠判定輸出之有效性。在一些實例中,「健全性」意指為一證明者無法欺騙一驗證者關於輸出之真確性。在一些實例中,「零知識」意指為一驗證者驗核輸出而不能對用於產生輸出之輸入進行推導之能力。
依照這種方式,設計旨在使人類更容易撰寫及閱讀智慧合約而不需要非專業程式設計師自己實施任何密碼術之一DSL可用於產生智慧合約。在本揭露之實施例中,一編譯器/解譯器會自動將來自一使用者之DSL原始碼編譯成可與一區塊鏈一起使用之一密碼編譯協定。在本揭露中,實施例依據單純的算術閘為一複雜合約之表示型態提供一高度優化之解決方案。此表示型態可視為用於建構能夠提供一分散式可驗證運算之一綜合管線之一解決方案或工具。
圖3係一簡圖,其繪示本揭露之實施例中涉及之可驗證運算及動作者之一程序300之一實例。如圖3所示,可驗證運算之程序
300可包括本揭露之一實施例中進行一可驗證運算協定中之步驟涉及之一用戶端節點340、一工作者節點350、以及一驗證者節點360。在實施例中,用戶端節點340、工作者節點350、或驗證者節點360其中一或多者係一區塊鏈網路中之節點,諸如圖1之例示性區塊鏈網路100中之節點102。
在一實施例中,一設置階段涉及採用一DSL撰寫合約。可以是用戶端節點340之一解譯器將原始碼認作輸入,並且產生由可攜載來自一欄位之值、及連接至加法與乘法閘之「導線」所組成之一算術電路C。請注意,算術電路本身可以是一DAG,而不是一硬體電路,並且導線可以是位在DAG中之邊緣。然而,列入考量的是,可將算術電路具體實現為具有導線及邏輯閘之一實體電路。在302中,用戶端節點340將採用一GPL撰寫之一連算P編譯成一算術電路C。在該實施例中,用戶端節點340向工作者節點350供應算術電路C及輸入x。
本揭露之一實施例可從電路C產生包括一多項式集合之一二次規劃Q,該多項式集合提供原始電路C之一完整描述。接著,可產生公共參數供工作者節點350及驗證者節點360用於執行及驗證二次規劃。
在304中,工作者節點350對輸入x執行電路C或二次規劃Q,並且聲稱輸出為y。在一些實施例中,期望工作者節點350(即證明者)取得{C,x,y}之一有效轉錄本;因此,在程序300之306中,工作者節點350對該轉錄本進行編碼。在一些實例中,{C,x,y}之一有效轉錄本係對電路導線之值之一指派,使得指派給輸入導線之值是x之值,中間值對應於C中各閘之正確操作,並且指派給輸出導線之值係y;如果聲明之輸出不正確(即y≠P(x)),則{C,x,y}之一有效轉錄本不存在。
在308中,工作者節點350向用戶端節點340提供輸出y。在實施例中,公共評估金鑰EK及公共驗證金鑰VK係使用藉由用戶端節點340選擇或來自用戶端節點340之一秘密值s來推導。在實施例中,工作者節點350使用這些公開金鑰來評估對一特定輸入x之運算。在實施例中,輸出y、內部電路導線之值、及EK係用於產生正確性證
明π。證明π可儲存在區塊鏈上,並且由多個當事方(例如:驗證者節點360)來驗證,而不需要工作者節點350單獨地與該多個當事方互動。依照這種方式,一驗證者節點360可使用公開驗證金鑰VK及證明π在310中驗核交易,藉此驗核合約。
圖4根據本揭露之一實施例,繪示從一DSL中編碼之一智慧合約到一二次運算規劃(QAP)之工作流程之一實例400。具體而言,圖4繪示藉由一轉換器404予以轉換成一GPL合約406之一DSL智慧合約402。一GPL預編譯器408(亦稱為一預處理器)合併由GPL合約406所引用之外部庫410以產生一GPL預處理合約412。GPL預處理合約412係變換成一算術電路414,其經優化以產生一已精簡算術電路416,QAP多項式418係推導自已精簡算術電路416。
在一實施例中,DSL智慧合約402係採用具有精確語意之一正式語言撰寫之一合約。在實施例中,DSL智慧合約402包括一條件集,並且DSL智慧合約402之成果取決於該條件集之滿足。一智慧合約之一實例係一保險合約,其由一保險人將一被保險人(insuree)之一保險費及可能性分布拿給該被保險人作為輸入。若被保險人在智慧合約期限內蒙受損失(例如,一第一條件之滿足),則智慧合約之執行將保險費配送給保險人,並且將該損失之分布施配給被保險人。另一方面,若被保險人在智慧合約期限內未蒙受一損失,則智慧合約之執行將保險費配送給保險人,並且將可能性分布回傳給保險人。
在一實施例中,轉換器404係一軟體程式,其隨著執行而接收採用一DSL撰寫之一條件集(諸如DSL智慧合約402),並且將DSL軟體碼轉譯成GPL原始碼,諸如GPL合約406。在一實施例中,
GPL合約406係一GPL程式,諸如C++程式,其含有在DSL智慧合約402中定義之合約。
在一實施例中,GPL預編譯器408係一電腦可執行程式,其處理GPL合約406及所需外部庫410以產生獨立GPL預處理合約412。在實施例中,GPL預編譯器408評估常數表達式,並且註冊在GPL合約406中找到之符號。
在一實施例中,外部庫410係由GPL合約406透過調用所利用之預撰寫子程序、函數、類別、容器、值、及/或變數類型之集合。舉例而言,藉由調用外部庫410,GPL合約406獲得該庫之功能,而不必實施功能本身。
在一實施例中,GPL預處理合約412包括一表達式與運算子集合。該等運算子可包括算術運算子(例如:加法(+)、乘法(*)等)、比較運算子(例如:小於(<)、等式(==)、大於或等於(>=)等)、條件敘述(例如:若則(?,:))、或邏輯運算子(例如:AND(&&)、OR(∥)、NOT(!)、XOR(♁)等)。在一些實施例中,產生主函數以具有預定義之名稱及格式。
在一實施例中,算術電路414係一變數集合上之一DAG。在一實施例中,具有一為零之入度之DAG之每個節點係代表一變數(例如:x i )之一輸入閘,並且DAG之每個其他節點係一和閘(+)或一積閘(×)。在實施例中,每個閘(節點)具有為一之一外度,因此下層圖係一有向樹。在實施例中,算術電路414具有兩個複雜度度量:尺寸及深度。在一些實例中,一算術電路之一「尺寸」係基於算術電路414內之若干閘。在一些實例中,算術電路之「深度」係基於算術電路內最長有向路徑之長度。
在產生算術電路414之後,可將其精簡。在布林代數中,任何布林函數都可採用其小項正則形式來表達。對於n個變數f(x 1 ,...,x n )之一函數,採用其自然或補碼形式,各變數出現一次之乘積項可稱為一小項。也就是說,在一些實例中,一「小項」係僅運用補數運算子(')及合取運算子()之n個變數之一邏輯表達式。舉例而言,abcd及ab' cd'係f(a,b,c,d)之兩個小項。依照這種方式,n個變數中將有2 n f。
在一些實例中,一「蘊含項」意指為涵蓋f之一小項群組之一乘積(即,如果每當P等於1時f便取值1,則一積和中之一乘積項P係f之一蘊含項。舉例而言,對於以下函數:f(a,b,c,d)=ab+bc′+d ab、bc'、abc'、abc' d及d係f之蘊含項之實例。在一些實例中,一「質蘊涵項」意指為無法由一更一般(例如,具有更少文字)之蘊含項所涵蓋之一蘊含項。也就是說,一質蘊涵項係一乘積項P,如果將任
何文字從P移除,則其導致f之一非蘊含項。使用上面之實例,abc' d不是一質蘊涵項,因為可移除文字使其成為質數(為了使abc' d成為一質蘊涵項,只有a=1及b=1且c=0及d=1,f(a,b,c,d)才必須等於1。
然而,如可見到地,如果移除a、b及c'(即,如果d=1),則f(a,b,c,d)可等於1。同等地,如果移除c'及d(即,如果ab=1),則f(a,b,c,d)可等於1。類似的是,如果移除a及d(即,如果bc'=1),則f(a,b,c,d)可等於1。將文字從布林項移除之程序可稱為「擴張」。擴張一個文字會使數項成立之輸入組合之數量加倍。舉例而言,可將abc'擴張為ab或bc',而無需變更f之涵蓋。
布林函數之所有質蘊涵項之總和可稱為「Blake正則形式」。將其他質蘊涵項之組合都無法涵蓋之函數之一輸出涵蓋之質蘊涵項可稱為「基本質蘊涵項」。具有n個輸入變數之一邏輯函數之質蘊涵項之數量可與3 n /n一樣大。已知一最小質數涵蓋之一提取屬於非確定性多項式時間完全(NP完全)問題之類別。以下方法說明使用一Quine-McCluskey演算法建置一質蘊涵項圖表之一項實例。
McCluskey中發現之Quine-McCluskey演算法(布林函數之最小化(Minimization of Boolean Functions)(1956))回傳一布林函數之質蘊涵項之一完整清單。在一實施例中,回傳之質蘊涵項係用於建置一質蘊涵項表,其可當作輸入用於一或多個演算法,以提取函數之基本質蘊涵項。要約化之一布林函數f(x 1 ,...,x n )可表達為:
因此,可將v中之各小項表達為自然或補碼輸入之乘積,端視x i 值而定。諸對小項若因單一位數變更而使其表示型態變化則可將其組合。無法組合之項進一步為質蘊涵項。基本質蘊涵項表係使用不可約質蘊涵項之清單所建構。
在一實例中,給定一個帶有n=4、M=6及v={4,8,10,11,12,15}之一布林函數f(x 1 ,...,x n ),提取質蘊涵項以產生質蘊涵項表之Quine-McCluskey演算法將如下所示:
因此,可將f表達為以下小項之總和:
●m 4=f(0,1,0,0)=a′bc′d′
●m 8=f(1,0,0,0)=ab′c′d′
●m 10=f(1,0,1,0)=ab′cd′
●m 11=f(1,0,1,1)=ab′cd
●m 12=f(1,1,0,0)=abc′d′
●m 15=f(1,1,1,1)=abcd
以4個輸入來說明,小項是在[m 0 ,m 15]範圍內,其中m 0=f(0,0,0,0)且m 15=f(1,1,1,1)。f之乘積表達式之正則總和如下:f(a,b,c,d)=a' bc' d'+ab' c' d'+ab' cd'+ab' cd+abc' d'+abcd
當單一位數變更時將小項組合,並且將對應之輸入設定為「-」。這導致尺寸為2之蘊含項:m 4,12=f(-,1,0,0)[不可約]
m_(8,9)=f(1,0,0,-)
m 8,10=f(1,0,-,0)
m 8,12=f(1,-,0,0)
m 9,11=f(1,0,-,1)
m 10,11=f(1,0,1,-)
m 10,14=f(1,-,1,0)
m 12,14=f(1,1,-,0)
m 11,15=f(1,-,1,1)
m 14,15=f(1,1,1,-)
一些尺寸為2之蘊含項可非為不可約,但可再次組合而導致尺寸為4之蘊含項:m 8,9,10,11=f(1,0,-,-)[不可約]
m 8,10,12,14=f(1,-,-,0)[不可約]
m 10,11,14,15=f(1,-,1,-)[不可約]
表格中之「打勾」對應於需要一給定索引向量之一質蘊涵項;亦即一給定輸入序列,以便成立。如果一行v只有一個打勾,則對應之小項僅可由一個質蘊涵項涵蓋。此類質蘊涵項對f至關重要。
在一實施例中,已精簡算術電路416係一已精簡或已最小化有向無循環圖(DAG),給定一輸入集合,其可用於判定一條件集之成果,諸如DSL智慧合約402中指定者。在一些實施例中,已精簡算術電路416係一已最小化(即,已精簡到最小程度)之算術電路。在一些實施例中,最佳算術電路可不必然是最小算術電路(例如,取決於電路中算術運算之數量及類型,評估某更大算術電路可比評估更大算術電路更快速),並且在此類實施例中,已精簡算術電路416係一經過優化(例如,針對最大速度、更少記憶體使用量、最有效率處理器利用狀況等進行優化)、但不必然最小化之算術電路。
在一實施例中,QAP多項式418係包含以一數學公式表達之變數及係數之一或多個表達式,該數學公式提供原始算術電路(例如:圖4之算術電路414)之一完整描述。在實施例中,QAP多項式之多項式係依據其在諸如Gennaro,R.等人於Quadratic Span Programs and Succint NIZKs without PCPs(2013)中所述之算術電路之根處之評估來定義。在實施例中,將QAP多項式編碼成一區塊鏈交易之一鎖定指令碼,作為智慧合約之表示型態。在實施例中,該鎖定指令碼一經執行,便接收一參數值集合(例如,作為執行一鎖定指令碼之一結果),其作為變數輸入到QAP多項式而得以判定智慧合約之結果。
在實施例中,GPL預編譯器408產生GPL預處理合約412,其可以是包含算術閘之一算術電路。然而,請注意,複數算術電路亦因條件敘述及流程控制敘述而嵌入邏輯子模組。在實施例中,仍然將這些子模組轉換成算術電路,但可藉由1位元寬之閘極連接對其進行特性分析,可在圖5中見到。
圖5繪示一算術電路500之一例示性模型,其含有本揭露之一實施例之邏輯子模組。如圖5所示,算術電路500可包括1位元輸入502及輸入504之群組,其進入邏輯子模組508A至508B及/或未分組之算術閘506A至506D以產生一輸出510。圖5中之粗線代表1位元寬導線群組(例如:一匯流排),而細線代表1位元導線。因為邏輯及算術1位元寬電路為對偶(例如,可採用至少兩種方式表達-作為一和積或作為一積和),可將邏輯電路精簡施用於算術電路500中之邏輯子模組508A至508B。
各邏輯子模組*508A至508B可包含算術電路中節點集之真(嚴格)子集。換句話說,一邏輯子模組可不含括整個算術電路。再者,在一些實施例中,邏輯子模組*508A至508B無交集;亦即,在此類實施例中,邏輯子模組*508A至508B將不共享任何內部閘。此外,因為邏輯子模組508A至508B在此類實施例中不共享任何內部閘,所以可將精簡程序平行化(例如,可平行精簡各邏輯子模組508A至508B)以降低操作之時間複雜度。
在一實施例中,1位輸入502係可攜載代表1或0之一值之導線,而輸入504之群組則代表複數條1位元導線。複數算術電路可嵌入從條件敘述及流程控制敘述推導出之邏輯子模組。在實施例中,這些邏輯子模組亦轉換成算術電路,但可藉由1位元寬閘連接來進行特性分析,諸如所示之邏輯子模組508A至508B。在一些實施例中,邏
輯子模組508A至508B中之導線僅1位元寬。
因為邏輯及算術1位元寬電路為對偶,所以亦將邏輯精簡施用於邏輯子模組508A至508B。此外,因為邏輯子模組508A至508B不共享任何內部閘,所以可將精簡程序平行化以降低算術電路500之時間複雜度;舉例而言,可分配單獨之處理器核心以對各邏輯子模組508A至508B進行邏輯精簡。在一實施例中,可利用運算優化試探法將邏輯子模組508A至508B指派給不同處理核心以用於邏輯精簡。運算優化試探法可以是設計旨在優化運算資源使用狀況之一試探法。可使用之運算優化試探法之一項實例係最長處理時間(LPT)貪婪演算法。在此一試探法中,如果邏輯子模組508A至508B係按處理時間排序,並且係指派給迄今具有最早結束時間之機器,則排程器嘗試平衡各交易之運算負載。進一步細節可在下面圖7之說明中找到。相比之下,在實施例中,可不平行精簡未分組之算術閘506A至506D,因為未分組之算術閘506A至506D係由1位元導線群組(諸如輸入504之群組)共享。請注意,在實施例中,精簡適用於閘之數量,但輸入(例如:1位元輸入502、及輸入504之群組)之數量維持相同。
在一實施例中,輸出510係根據算術電路500對輸入502及504進行操作之一結果。在一些實施例中,該結果係一成立或不成立值。在其他實施例中,該結果係一或多個1位元值之一集合。在其他實施例中,該結果可以是任何其他值或算術電路所支援之值。
如上述,在實施例中,Quine-McCluskey演算法可回傳一布林函數f之質蘊涵項之完整清單。此外,Petrick在A Direct Determination of the Irredundant Forms of a Boolean Function from the Set of Prime Inplicants(1956)中所述之方法(Petrick之方法)可用於減少質蘊涵項之數量,以便將f表示為如下述基本質蘊涵項
之一組成。
一質蘊涵項表(例如:質蘊涵項表1)中表示之布林函數f可使用一輔助布林函數f*以一對偶形式來表達。當涵蓋質蘊涵項表之所有行時,輔助布林函數f*為成立。所以,可將f*表達為對各索引向量v i 作出貢獻(亦即,對f之各輸出作出貢獻)之質蘊涵項之和積σ i :
舉例而言,表1中質蘊涵項之σ i 項清單變為如下:σ 0=σ(v 0=4)=bc' d'
σ 1=σ(v 1=8)=ab'+ad'
σ 2=σ(v 2=10)=ab'+ad'+ac
σ 3=σ(v 3=11)=ab'+ac
σ 4=σ(v 4=12)=bc' d'+ad'
σ 5=σ(v 5=15)=ac
因此,對偶函數f*變為:f*=(bc' d')(ab'+ad')(ab'+ad'+ac)(ab'+ac)(bc' d'+ad')(ac)
如果我們令z i 代表f*中之一個別小項,則可將該函數重寫為:
f*=z 0(z 1+z 2)(z 1+z 2+z 3)(z 1+z 3)(z 0+z 2)z 3
布林函數可使用某些布林規則來進一步簡化,諸如下面所示之規則:
1. u+uv=u
2. u+u' v=u+v
3.(u+v)(u+w)=u+vw
請注意,存在其他布林簡化規則,並且預期其在本揭露之範疇內,使得可在本揭露之實施例中使用更少、更多或不同布林簡化規則。然而,可使用上述規則對f*進行以下簡化:(z 1+z 2)(z 1+z 3)=z 1+z 2 z 3 (規則3)
z 0(z 0+z 2)=z 0 (規則1)
藉由對f*施用再多一些簡化,f*可經歷以下精簡:f*=z 0 z 3(z 1+z 2 z 3)(z 1+z 2+z 3)
f*=z 0 z 3(z 1 z 1+z 1 z 2+z 1 z 3+z 1 z 2 z 3+z 2 z 2z3+z 2 z 3 z 3)
f*=z 0 z 3(z 1+z 1 z 2+z 1 z 3+z 1 z 2 z 3+z 2 z 3+z 2 z 3)
f*=z 0 z 3(z 1+z 2 z 3)
f*=z 0 z 1 z 3+z 0 z 2 z 3
函數f*從而可由z 0 z 1 z 3及z 0 z 2 z 3涵蓋,並且兩項都含有最
少小項(考慮一不同對偶函數f*=z 0 z 1 z 3+z 0 z 2,項z 0 z 2將用於代表f,因為小項數量更少)。因此,可將f簡化為:f=z 0+z 1+z 3=bc' d'+ab'+ac
或替代地:f=z 0+z 2+z 3=bc' d'+ad'+ac
因此,z ik 代表對總和σ i 作出貢獻之第k個質蘊涵項。
σ 1=z 11+z 12+…+z 1|z 1|
σ 2=z 21+z 22+…+z 2|z 2|
…
σ M =z M1+z M2+…+z M |z M |
圖6繪示本揭露之一實施例中精簡邏輯子模組之一實例600。具體而言,圖6繪示使用四個處理器核心622來處理八個邏輯子模組608A至608H之一系統之一說明性實例。在實例600中,使用一
LPT貪婪演算法之目的在於使所有處理器核心盡可能接近同時完成處理,以便優化系統之處理器使用狀況。最初,邏輯子模組608A至608H可按照複雜度(例如,邏輯子模組608A至608H中邏輯閘之數量)來排序,作為邏輯子模組608A至608H相對於彼此之處理時間之一估計。然而,列入考量的是,可對邏輯子模組608A至608H使用估計處理時間之其他方法。
在實例600中,具有最長估計處理時間之前四個邏輯子模組608A至608D可在處理器核心622之中以一循環或虛擬隨機方式分布。如可見到地,首先完成的是由核心4處理之邏輯子模組608D,其在四者中具有最小估計處理時間。所以,核心4受分配具有第五最長估計處理時間之未處理邏輯子模組,其為邏輯子模組608E。其次是核心3完成處理邏輯子模組608C,並且受分配具有第六最長估計處理時間之邏輯子模組,即邏輯子模組608F。核心2完成處理邏輯子模組608B,並且接收邏輯子模組608G。最後,核心1完成處理具有最長估計處理時間之邏輯子模組,並且接收八個邏輯子模組608A至608H中具有最短估計處理時間之邏輯子模組,即邏輯子模組608H。如可在實例600中見到地,四個處理器核心622全都接近同時完成處理八個邏輯子模組608A至608H,導致處理器閒置時間縮短。
圖7繪示本揭露之一實施例之質蘊涵項減少之一實例700。具體而言,圖7繪示根據上述步驟簡化之質蘊涵項σ 1至σ 5之一集合,諸如藉由圖2之算術電路精簡模組220來簡化。舉例而言,將乘積項σ i 視為一清單{σ 1 ,...,σ M }。在實施例中,於各步驟,比較該清單之兩個成員(稱為「左」及「右」成員),並且如果可能則加以簡化。在實
例700中,於時間t1,左成員702A(σ 1)與右成員704A(σ 2)配對,並且f*之乘積項係使用布林簡化規則來簡化,諸如以上所列之規則。如果可簡化左成員702A及右成員704A,則左成員將以一新項σ 12來代換。然而,在實例700中,可看出左成員702A及右成員704A無法進一步簡化。
隨後,於時間t2,左成員702B(σ 1)與右成員704B(σ 3)結合,並且根據布林簡化規則進行處理。在這種狀況中,實例700中可看出,可將左成員702B及右成員704B簡化為σ 13。因此,於時間t3,將左成員702C(σ 13)與右成員704C(σ 4)作比較。在實例700中,左成員702C及右成員704C無法進一步簡化。
類似的是,於時間t4,左成員702D及右成員704D(σ 5)同樣地無法進一步簡化。檢查完所有右成員之後,將左成員設定為其在清單中之下一個成員,在實例700中,該下一個成員為σ 2'。所以,於時間t5,左成員702E(σ 2)與右成員704E(σ 4)結合,並且根據布林簡化規則,將兩者簡化為σ 24,其變為左成員之值。因此,於時間t6,將左成員702F(σ 24)與右成員(σ 5)結合、處理並簡化成σ 245。當不再有更
多檢查時,程序結束,其見於時間t7。
在實施例中,簡化步驟之數量上限為。在實施例中,一對(左、右)之各簡化步驟在執行時由以下操作所組成:1.根據規則1嘗試簡化(左、右),2.根據規則2嘗試簡化(左、右),3.根據規則3嘗試簡化(左、右)。
在實施例中,規則1、2及3中之u項代表(左、右)對中之共同部分。實施例中左與右成員之加數之間的一交叉檢查(交集)係藉由一時間複雜度O(n 2)或O(n log n)來進行特性分析,端視特定實作態樣(例如:素樸或已排序清單)而定。
在實施例中,列入考量的是,個別邏輯子模組(諸如圖5之邏輯子模組508A至508B)可為了更快處理而藉由不同處理核心來平行簡化。在此類實施例中,一運算優化之試探法係藉由一排程器來進行,以將個別邏輯子模組指派給用於邏輯精簡階段之一不同處理核心,稱為LPT貪婪演算法。如果工作係按照其處理時間來排序,然後指派給迄今具有最早結束時間之機器(處理核心),則排程器嘗試為正在處理之各邏輯子模組平衡運算負載。
在實施例中,一些輯子模組(S i )之初始閘g i 之數量係推定為用以精簡S i 所需之期望時間之一適合的指示符(例如,閘的數量越多,期望處理時間便越長)。因此,給定具有N個核心及n個待精簡子模組之一機器,子模組S i 係按照其g i 值(1 i n)來排序,然後於一給定時間t'指派給具有最低匯集G j (t')計量之核心j之清單{list j }:
替代地,可採用一循環方式將子模組S i 指派給處理核心,而不考慮g i 值。舉例而言,當i(modulo N)=j時,可將S i 指派給核心j。
圖8係一流程圖,其根據各項實施例繪示用於將一DSL合約變換成一已精簡算術電路之一程序800之一實施例。程序800中有一些或全部(或所述任何其他程序、或那些程序之變例及/或組合)可在組配有可執行指令及/或其他資料之一或多個電腦系統之控制下進行,並且可予以實施成在一或多個處理器上共同執行之可執行指令。可執行指令及/或其他資料可儲存在一非暫時性電腦可讀儲存媒體(例如:一永續儲存在磁性、光學或快閃式媒體上之一電腦程式)上。
舉例而言,程序800中有一些或全部可藉由一或多個運算裝置來進行(例如,藉由一資料中心中之一伺服器來進行、藉由一用戶端運算裝置來進行、藉由一運算資源服務提供者之一分散式系統中之多個運算裝置來進行、或藉由諸如圖10之運算裝置1000之任何適合的電子用戶端裝置來進行)。程序800包括一系列操作,其中採用一DSL撰寫之一智慧合約係轉換成一GPL、預編譯、及變換成一算術電路。算術電路係根據本揭露中所述之技巧、及輸出來精簡。
在802中,進行程序800之系統取得採用一DSL撰寫之一智慧合約。如上述,一DSL可以是設計用於一特定領域之一電腦程式設計語言。在實施例中,可使用為了編製諸如智慧合約之金融工具而
擬出之一DSL。此類DSL可使智慧合約更易於供一普通使用者撰寫及閱讀,並且可允許非專業程式設計師撰寫智慧合約而無需實施任何密碼術。
在804中,進行程序800之系統將智慧合約轉換成一GPL。依照這種方式,DSL智慧合約係轉換成一般形式,可將其編譯/解譯成用於一區塊鏈之一密碼編譯協定。在實施例中,GPL係C++原始碼,但可將使用其他GPL語言列入考量。
在806中,預編譯GPL原始碼,其可包括將庫檔案及/或其他相依性帶入已預編譯原始碼。預編譯程序亦可混淆化變數名稱,其可有利於在向區塊鏈承諾智慧合約之後,向大眾偽裝智慧合約之本質。
在808中,進行程序800之系統將已預編譯原始碼變換成一算術電路,舉例而言,係藉由將各種命令、條件敘述、變數、算術運算轉換成一算術演算法來變換。可將此算術演算法表達為類似於圖5中所示之一有向循環圖。
在810中,進行程序800之系統對808中產生之算術演算法進行一精簡程序。該精簡程序可類似於圖9之程序900。此精簡程序可導致更小、簡化之算術演算法,其可藉由一區塊鏈節點(例如:圖1之節點102)更有效率地處理。
在812中,進行程序800之系統輸出已精簡算術電路。在一些實施例中,系統將該已精簡電路提供至另一程序,該程序將已精簡電路變換成QAP多項式,諸如圖4之QAP多項式418。在其他實施例中,系統向一資料儲存區或其他儲存資源提供該已精簡電路以供將來使用。於再其他實施例中,系統諸如透過一使用者介面之一顯示器向一或多個實體(例如,由原始DSL合約透過該使用者介面所建立或影響
之實體)提供該已精簡電路。請注意,802至812中進行之一或多個操作可採用各種順序及組合來進行,包括平行進行。
圖9係一流程圖,其根據各項實施例為一已預編譯GPL智慧合約之算術電路精簡繪示一程序900之一實例。程序900中有一些或全部(或所述任何其他程序、或那些程序之變例及/或組合)可在組配有可執行指令及/或其他資料之一或多個電腦系統之控制下進行,並且可予以實施成在一或多個處理器上共同執行之可執行指令。可執行指令及/或其他資料可儲存在一非暫時性電腦可讀儲存媒體(例如:一永續儲存在磁性、光學或快閃式媒體上之一電腦程式)上。
舉例而言,程序900中有一些或全部可藉由一或多個運算裝置來進行(例如,藉由一資料中心中之一伺服器來進行、藉由一用戶端運算裝置來進行、藉由一運算資源服務提供者之一分散式系統中之多個運算裝置來進行、或藉由諸如圖10之運算裝置1000之任何適合的電子用戶端裝置來進行)。舉例而言,程序900可隨著執行圖2之算術電路精簡模組220來進行。程序900包括一系列操作,其中對一算術邏輯電路之質蘊涵項進行判定,並且予以表達為一和積,將各對乘積項與邏輯規則作比較,以判斷該等乘積項是否可簡化,並且在每一對都簡化之後,採用精簡形式輸出算術電路。程序900之操作擴張到圖8之810中之操作。
在902中,進行程序900之系統取得算術電路。算術電路可包含一小項集合。在實施例中,取得之算術電路可變換自已預編譯GPL原始碼,諸如變換自圖4之GPL預處理合約412。在實施例中,取得之算術電路代表一智慧合約。在一些實施例中,智慧合約先前係採用DSL格式撰寫並轉換成一GPL格式。
在904中,進行程序之系統將該算術邏輯電路之該等質
蘊涵項隔離,諸如採用上述與圖4有關之方式進行隔離。也就是說,系統可從算術電路之該小項集合判定一蘊含項集合。系統可判定該蘊含項集合中哪些成員包含算術電路之質蘊涵項集合(亦即,如果有任何文字遭受移除,導致一非蘊含項之乘積項)。
在906中,可將該質蘊涵項集合處理成質蘊涵項之一和積σ i ,諸如採用上述與圖5有關之方式來處理。在908中,進行程序900之系統比較第一對乘積項σ L 與σ R ,以在910中判斷是否可根據布林邏輯規則簡化該對,諸如採用關於圖7所述之方式來簡化。若否,則系統進入914。否則,若是,則系統在912中將該對組合並簡化,然後系統進入914。
在914中,進行程序900之系統判斷是否已經比較並且找到不可約之所有各對乘積項。若否,則系統回到908以比較下一對乘積項。否則,在916中,系統輸出已精簡乘積項,作為已精簡算術電路之一積和。如以上關於圖8之812所述,系統可將已精簡算術電路輸出至另一程序以供進一步處理、輸出至一資料儲存區、輸出至資料檔案、或輸出至一使用者介面。請注意,902至916中進行之一或多個操作可採用各種順序及組合來進行,包括平行進行。
請注意,在所揭示實施例之上下文中,除非另有所指,否則使用與進行操作之可執行指令(亦稱為軟體碼、應用程式、代理器等)有關之表達式,使「指令」通常不進行單獨完成的例如資料傳輸、計算等,表示該等指令正由一機器執行,藉此令該機器進行指定之操作。
圖10係一運算裝置1000的一說明性、簡化方塊圖,其可
用於實踐本揭露之至少一項實施例。在各項實施例中,運算裝置1000可用於實施以上所示及所述系統中任何一者。舉例而言,可為了當作一資料伺服器、一網頁伺服器、一可攜式運算裝置、一個人電腦、或任何電子運算裝置使用而組配運算裝置1000。如圖10所示,運算裝置1000可包括一或多個處理器1002,其在實施例中,經由一匯流排子系統1004與若干週邊子系統通訊,並且與之操作性耦合。在一些實施例中,這些週邊子系統包括包含一記憶體子系統1008及一檔案/碟片儲存子系統1010之一儲存子系統1006、一或多個使用者介面輸入裝置1012、一或多個使用者介面輸出裝置1014、以及一網路介面子系統1016。此類儲存子系統1006可用於暫時或長期儲存資訊。
在一些實施例中,匯流排子系統1004提供一種用於使運算裝置1000之各種組件及子系統能夠如希望彼此通訊之機制。雖然將匯流排子系統1004示意性展示為單一匯流排,匯流排子系統之替代實施例仍然利用多條匯流排。在一些實施例中,網路介面子系統1016向其他運算裝置及網路提供一介面。在一些實施例中,網路介面子系統1016當作用於從出自運算裝置1000之其他系統接收資料及將資料傳送至該等其他系統之一介面。在一些實施例中,匯流排子系統1004係用於傳遞資料,諸如細節、搜尋條款等等。
在一些實施例中,使用者介面輸入裝置1012包括一或多個使用者輸入裝置,諸如鍵盤;指標裝置,諸如一整合式滑鼠、軌跡球、觸控板、或圖形輸入板;一掃描器;一條碼掃描器;一併入顯示器之觸控螢幕;諸如語音辨識系統、麥克風之音訊輸入裝置;以及其他類型之輸入裝置。一般而言,「輸入裝置」一詞之使用係意欲包括用於將資訊輸入至運算裝置1000之所有可能類型之裝置及機制。在一些實施例中,一或多個使用者介面輸出裝置1014包括一顯示子系統、
一列印機、或諸如音訊輸出裝置等非視覺化顯示器。在一些實施例中,顯示子系統包括一陰極射線管(CRT)、諸如一液晶顯示器(LCD)之一平板裝置、發光二極體(LED)顯示器、或一投射或其他顯示裝置。一般而言,「輸出裝置」一詞之使用係意欲包括用於將資訊從運算裝置1000輸出之所有可能類型之裝置及機制。一或多個使用者介面輸出裝置1014舉例而言,可用於呈現使用者介面以在可能適當的情況下促進使用者與進行所述程序及其中變例之應用程式互動。
在一項實施例中,儲存子系統1006提供用於儲存基本程式設計及資料構造之一電腦可讀儲存媒體,該等基本程式設計及資料構造提供本揭露之至少一項實施例之功能。該等應用程式(程式、軟體碼模組、指令)在一些實施例中由一或多個處理器執行時,提供本揭露之一或多項實施例之功能,並且在實施例中,係予以儲存在儲存子系統1006中。這些應用程式模組或指令可由一或多個處理器1002執行。在各項實施例中,儲存子系統1006另外提供用於儲存根據本揭露所用資料之一儲存庫。在一些實施例中,儲存子系統1006包含一記憶體子系統1008及一檔案/碟片儲存子系統1010。
在實施例中,記憶體子系統1008包括若干記憶體,諸如用於在程式執行期間儲存指令及資料之一主隨機存取記憶體(RAM)1018、及/或內可儲存固定指令之一唯讀記憶體(ROM)1020。在一些實施例中,檔案/碟片儲存子系統1010為程式及資料檔案提供一非暫時性永續(非依電性)儲存,並且可包括一硬碟機、伴隨相關聯卸除式媒體之一軟碟機、一光碟唯讀記憶體(CD-ROM)驅動機、一光學驅動機、卸除式媒體匣、或其他相似之儲存媒體。
在一些實施例中,運算裝置1000包括至少一個局部時脈1024。在一些實施例中,至少一個局部時脈1024係一計數器,其表示
從一特定開始日期起已經發生之滴嗒聲數量,並且在一些實施例中,係整合位於運算裝置1000內。在各項實施例中,至少一個局部時脈1024係用於以特定時脈脈衝為運算裝置1000及其中所包括子系統同步處理器中之資料轉移,並且可用於協調運算裝置1000與一資料中心中其他系統之間的同步操作。在另一實施例中,局部時脈係一可規劃間隔計時器。
運算裝置1000可呈各種類型中任何一者,包括一可攜式電腦裝置、平板電腦、一工作站、或下面所述之任何其他裝置。另外,在一些實施例中,運算裝置1000可包括可透過一或多個連接埠(例如:USB、一耳機插孔、Lightning連接器等)連接至運算裝置1000之另一裝置。在實施例中,此一裝置包括接受一光纖連接器之一連接埠。因此,在一些實施例中,此裝置係將光學信號轉換成電氣信號,可透過將裝置連接至運算裝置1000之連接埠傳送該等電氣信號以供處理。由於電腦及網路不斷變化之本質,為了說明裝置之較佳實施例,圖10所示運算裝置1000之說明僅意欲作為一特定實例。許多其他組態有可能比圖10所示系統具有更多或更少組件。
本說明書及圖式從而應視為一說明性而不是一限制性概念。然而,將會證實的是,可對其施作各種修改及變更,但不會脫離如隨附申請專利範圍中所提出之本發明之範疇。同樣地,其他變化都在本揭露的範疇內。因此,儘管所揭示之技巧易受各種修改及替代構造影響,附圖中仍展示其某些所示實施例,並且已在上面詳細說明。然而,應瞭解的是,無意將本發明限制於所揭示之一或多種特定形式,用意反而是要涵蓋落入本發明之範疇內之所有修改、替代構造及均等例,如隨附申請專利範圍中所定義。
除非另有所指或上下文有明顯抵觸,否則描述所揭示實
施例之上下文中(尤其是以下申請專利範圍之上下文中)「一」與其變體及「該」等用語以及類似參照者之使用是用來視為同時涵蓋單數及複數。除非另有說明,否則「包含」、「具有」、「包括」及「含有」等詞應視為開放式用語(亦即,意味著「包括,但不限於」)。「連接」一詞若未經修改且意指為實體連接,則應視為部分或完全含在一起、附接在一起或結合在一起,即使有某物中介亦然。除非另有所指,否則本揭露中值範圍之明載僅意欲當作個別意指為落入該範圍內之各單獨值之一速記方法,並且各單獨值係併入本說明書,如同將其個別明載一樣。除非另有說明或上下文有抵觸,否則「集合」(例如:「一項目集合」)或「子集」一詞之使用應視為包含一或多個成員之一非空集合。再者,除非另有說明或上下文有抵觸,否則一對應集合之「子集」一詞不必然表示該對應集合之一眞子集,而是該子集與該對應集合可相等。
除非另有具體敍述或上下文另有明顯抵觸,否則諸如形式為「A、B及C中之至少一者」之措辭等連接性用語、或「A、B及C中之至少一者」係按其他方式透過上下文理解為大致用於介紹一項目、項等可以是A或B或C、或A及B及C之集合之任何非空子集。舉例來說,在具有三個成員之一集合之說明性實例中,「A、B及C中之至少一者」等連接性措辭及「A、B及C中之至少一者」意指為以下任何集合:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此類連接性用語大致非意欲暗指某些實施例需要A中之至少一者、B中之至少一者及C中之至少一者各自存在。
除非另有所指或上下文另有明顯抵觸,否則所述程序之操作可採用任何適合的順序來進行。所述程序(或其變例及/或其組合)可在組配有可執行指令之一或多個電腦系統之控制下進行,並且可予
以實施成藉由硬體或其組合在一或多個處理器上共同執行之軟體碼(例如:可執行指令、一或多個電腦程式或一或多個應用程式)。在一些實施例中,軟體碼可儲存在一電腦可讀儲存媒體上,形式例如為包含可由一或多個處理器執行之複數個指令之一電腦程式。在一些實施例中,電腦可讀儲存媒體屬於非暫時性。
所提供任何及所有實例或例示性用語(例如:「諸如」)之使用僅意欲更加說明本發明之實施例,並且除非另外聲明,否則不對本發明之範疇構成一限制。說明書中之用語都不應視為將任何未訴求之元件指為對本發明之實踐必不可缺。
已說明本揭露之實施例,包括本案發明人對於實行本發明已知之最妥模式。所屬技術領域中具有通常知識者一經閱讀前述說明,便將明白那些實施例之變例。本案發明人期望所屬技術領域中具有通常知識者適當地運用此類變例,並且本案發明人意欲本揭露之實施例得以採用與具體說明者不同之方式來實踐。因此,本揭露之範疇包括其隨附申請專利範圍中明載之標的內容之所有修改及均等例,如適用法律允許者。此外,除非另有所指或上下文另有明顯抵觸,否則本揭露之範疇含括上述元件在其所有可能之變例中之任何組合。
特此以參考方式併入包括公布、專利申請、及專利在內所引用之所有參照,其程度猶如將各參照個別且具體地指為要以參考方式併入,並且將其完整提出。
應知上述實施例說明而不是限制本發明,並且所屬技術領域中具有通常知識者將能夠設計許多替代實施例而不脫離如隨附申請專利範圍所定義之本發明之範疇。在請求項中,置放於括號內的任何參照符號不得視為限制請求項。「包含」一詞及其變體、及類似者不排除存在任何請求項或本說明書中整體所列者外之元件或步驟。在
本說明書中,「包含」意味著「包括或由以下所組成」,並且「包含」之變體意味著「包括或由以下所組成」。元件之單數參照不排除此類元件之複數參照,反之亦然。本發明可藉助於包含數個相異元件之硬體、及藉由一適當程式規劃之電腦來實施。在列舉數個構件之裝置請求項中,這些構件中有數個可藉由相同硬體項目來具體實現。在互不相同之附屬項中明載某些量測的唯一事實不在於指出這些量測之一組合無法用於產生利益。
彙總
在本揭露中說明及建議之新穎技巧延伸區塊鏈之功能,而未破壞區塊鏈之性質,確保區塊鏈資料結構內所儲存資料之完整性。舉例而言,該等技巧可改良運算領域,尤其是數位記錄驗核領域,其中驗核條件係定義在嵌入於記錄之區塊鏈交易裡。藉由使區塊鏈節點能夠透過簡化區塊鏈上驗核之智慧合約來優化處理資源使用狀況,本揭露中說明及建議之技巧可進一步改良智慧合約產生及執行領域中之運算領域。另外,本揭露中說明及建議之技巧可藉由將一智慧合約變換成一已精簡算術電路(可從該已精簡算術電路推導出一二次運算規劃)來提升區塊鏈節點之效率,藉此使一區塊鏈節點能夠更有效率地執行智慧合約。
此外,本揭露中說明及建議之技巧可必然根植於電腦技術中,為的是要一旦藉由將一智慧合約從一DSL轉換成一GPL、然後再轉換成一已精簡算術而向區塊鏈承諾該智慧合約,便克服隨著智慧合約細節可公開檢視而具體引起之問題,結果造成智慧合約有一些細節混淆化。
100:區塊鏈網路
102、102A:節點
104:交易
106:路徑
Claims (15)
- 一種電腦實施之方法,其包含:取得採用一第一程式設計語言編碼之一條件集,其中該條件集代表一智慧合約;將該條件集轉換成採用一第二程式設計語言編碼之一程式化條件集;將該程式化條件集預編譯成已預編譯程式碼;將該已預編譯程式碼變換成代表該智慧合約之一算術電路,其中該算術電路包含與複數個輸入值相關聯之複數個輸入,該等複數個輸入係輸入至由第一個該條件集代表之該智慧合約;精簡該算術電路以形成一已精簡算術電路;以及儲存該已精簡算術電路。
- 如請求項1之電腦實施之方法,其中精簡該算術電路涉及將該算術電路最小化以產生該已精簡算術電路。
- 如請求項1之電腦實施之方法,其中該算術電路係一有向無循環圖,其包含:代表複數個邏輯閘及複數個輸入之一節點集;以及連接該節點集之複數個節點之一邊緣集,其代表該等邏輯閘與該等輸入之間的導線。
- 如請求項3之電腦實施之方法,其中:該算術電路包括一邏輯子模組,該邏輯子模組包括該節點集之一眞子集;以及精簡該算術電路包括使該邏輯子模組與該算術電路之其餘部分分開地精簡。
- 如請求項4之電腦實施之方法,其中該邏輯子模組 中諸邏輯閘之間的該等導線之寬度為1位元。
- 如請求項4或5中任一項之電腦實施之方法,其中:該算術電路更包括另一邏輯子模組,該另一邏輯子模組包括該節點集之另一子集,該節點集之該眞子集與該節點集之該另一子集無交集;以及精簡該算術電路更包括平行地使用一第一處理器核心精簡該邏輯子模組及使用一第二處理器核心精簡該另一邏輯子模組。
- 如請求項6之電腦實施之方法,其更包含根據用於優化運算資源使用狀況之一試探法,將該邏輯子模組分配給該第一處理器核心,並且將該另一邏輯子模組分配給該第二處理器核心。
- 如請求項7之電腦實施之方法,其中該試探法係一最長處理時間貪婪演算法。
- 如請求項1之電腦實施之方法,其中精簡該算術電路包括:判定該算術電路之一質蘊涵項集合;將該質蘊涵項集合表達為包括一第一乘積項與一第二乘積項之一積和;以及簡化該第一乘積項及該第二乘積項。
- 如請求項9之電腦實施之方法,其中簡化該第一乘積項及該第二乘積項係藉由將一布林最小化規則施用於該第一乘積項及該第二乘積項來進行。
- 如請求項1之電腦實施之方法,其中該第二程式設計語言係C++。
- 如請求項1之電腦實施之方法,其中該第一程式設計語言係為了編製機器可讀金融合約而設計出之一電腦程式設計語 言。
- 如請求項1之電腦實施之方法,其更包含:產生包括一多項式集合之一二次規劃,該多項式集合描述該已精簡算術電路;以及產生一參數集,供一區塊鏈網路中之一節點用於進行該二次規劃。
- 一種用於簡化可執行指令以優化可驗證計算之系統,其包含:一處理器;以及包括可執行指令之記憶體,該等可執行指令隨著藉由該處理器執行而令該系統進行如請求項1至13中任一項之電腦實施之方法。
- 一種儲存有可執行指令於其上之非暫時性電腦可讀儲存媒體,該等可執行指令隨著藉由一電腦系統之一處理器執行而令該電腦系統至少進行如請求項1至13中任一項之電腦實施之方法。
Applications Claiming Priority (18)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??1718505.9 | 2017-11-09 | ||
GB1718505.9 | 2017-11-09 | ||
GBGB1718505.9A GB201718505D0 (en) | 2017-11-09 | 2017-11-09 | Computer-implemented system and method |
GBGB1719998.5A GB201719998D0 (en) | 2017-11-30 | 2017-11-30 | Computer-Implemented system and method |
GB1719998.5 | 2017-11-30 | ||
??1719998.5 | 2017-11-30 | ||
??1720768.9 | 2017-12-13 | ||
GB1720768.9 | 2017-12-13 | ||
GBGB1720768.9A GB201720768D0 (en) | 2017-12-13 | 2017-12-13 | Computer-implemented system and method |
GB1801753.3 | 2018-02-02 | ||
GBGB1801753.3A GB201801753D0 (en) | 2018-02-02 | 2018-02-02 | Computer-implemented system and method |
??1801753.3 | 2018-02-02 | ||
??1805948.5 | 2018-04-10 | ||
GBGB1805948.5A GB201805948D0 (en) | 2018-04-10 | 2018-04-10 | Computer-implemented system and method |
GB1805948.5 | 2018-04-10 | ||
GBGB1806444.4A GB201806444D0 (en) | 2018-04-20 | 2018-04-20 | Computer-implemented system and method |
??1806444.4 | 2018-04-20 | ||
GB1806444.4 | 2018-04-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201923567A TW201923567A (zh) | 2019-06-16 |
TWI806918B true TWI806918B (zh) | 2023-07-01 |
Family
ID=64100702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107139662A TWI806918B (zh) | 2017-11-09 | 2018-11-08 | 用於簡化可執行指令以優化可驗證計算之系統及相關方法與儲存媒體 |
Country Status (9)
Country | Link |
---|---|
US (8) | US20210377041A1 (zh) |
EP (7) | EP3707855A1 (zh) |
JP (10) | JP7208989B2 (zh) |
KR (5) | KR20200080265A (zh) |
CN (6) | CN117640170A (zh) |
SG (5) | SG11202004149UA (zh) |
TW (1) | TWI806918B (zh) |
WO (5) | WO2019092542A1 (zh) |
ZA (1) | ZA202002575B (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11783679B2 (en) | 2014-04-08 | 2023-10-10 | Micro-Gaming Ventures, LLC | Location-based wagering via remote devices |
US10903997B2 (en) * | 2017-10-19 | 2021-01-26 | Autnhive Corporation | Generating keys using controlled corruption in computer networks |
EP3707855A1 (en) | 2017-11-09 | 2020-09-16 | Nchain Holdings Limited | System for securing verification key from alteration and verifying validity of a proof of correctness |
CN110032568B (zh) * | 2018-12-20 | 2020-05-12 | 阿里巴巴集团控股有限公司 | 数据结构的读取及更新方法、装置、电子设备 |
WO2020197514A1 (en) * | 2019-03-27 | 2020-10-01 | Koc Universitesi | A distributed hash table based blockchain architecture for resource constrained environments |
US11516000B2 (en) * | 2019-05-29 | 2022-11-29 | International Business Machines Corporation | Approximate hash verification of unused blockchain output |
US11711202B2 (en) | 2019-05-29 | 2023-07-25 | International Business Machines Corporation | Committing data to blockchain based on approximate hash verification |
US11539527B2 (en) | 2019-05-29 | 2022-12-27 | International Business Machines Corporation | Peer node recovery via approximate hash verification |
US11429738B2 (en) | 2019-05-29 | 2022-08-30 | International Business Machines Corporation | Blockchain endorsement with approximate hash verification |
US11570002B2 (en) | 2019-05-29 | 2023-01-31 | International Business Machines Corporation | Reduced-step blockchain verification of media file |
EP3754899B1 (en) * | 2019-06-20 | 2022-03-02 | Telefónica Iot & Big Data Tech, S.A. | Method and system for inter-dlt networks trust enhancement |
CN110445755A (zh) * | 2019-07-04 | 2019-11-12 | 杭州复杂美科技有限公司 | 交易攻击的防御方法、设备和存储介质 |
GB201913143D0 (en) * | 2019-09-12 | 2019-10-30 | Nchain Holdings Ltd | Running a program from a blockchain |
JP7284064B2 (ja) * | 2019-10-16 | 2023-05-30 | 株式会社日立製作所 | コンソーシアムブロックチェーンシステム、計算機、トランザクション承認方法 |
CN111143859A (zh) * | 2020-01-07 | 2020-05-12 | 杭州宇链科技有限公司 | 一种采集可信数据的模组以及数据传输方法 |
US11792022B2 (en) | 2020-02-21 | 2023-10-17 | International Business Machines Corporation | Resolution of conflicting data |
JPWO2021166782A1 (zh) * | 2020-02-21 | 2021-08-26 | ||
US11188316B2 (en) * | 2020-03-09 | 2021-11-30 | International Business Machines Corporation | Performance optimization of class instance comparisons |
CN111506783B (zh) * | 2020-04-08 | 2023-12-22 | 百度在线网络技术(北京)有限公司 | 区块链中事务请求处理方法、装置、设备和介质 |
CA3091660A1 (en) * | 2020-08-31 | 2021-11-03 | Polymath Inc. | Method, system, and medium for blockchain-enabled atomic settlement |
CN111768187A (zh) | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
CN112132576B (zh) * | 2020-09-07 | 2021-08-06 | 易宝支付有限公司 | 基于区块链通信的支付信息处理方法及区块链信息平台 |
US11029920B1 (en) * | 2020-10-21 | 2021-06-08 | Chariot Technologies Lab, Inc. | Execution of a conditional statement by an arithmetic and/or bitwise unit |
US11456871B2 (en) * | 2020-11-03 | 2022-09-27 | Provide Technologies, Inc. | System and method for autonomous mapping of enterprise identity |
KR102346292B1 (ko) * | 2020-11-11 | 2022-01-03 | 엘에스웨어(주) | 키 정보를 이용한 트랜잭션 분류 시스템 및 방법 |
KR102346293B1 (ko) * | 2020-12-08 | 2022-01-03 | 엘에스웨어(주) | 공통 키셋정보를 이용한 트랜잭션 분산처리를 위한 블록체인 시스템 및 수행방법 |
GB2602010A (en) * | 2020-12-15 | 2022-06-22 | Nchain Holdings Ltd | Generating and validating blockchain transactions |
CN113222747B (zh) * | 2020-12-31 | 2024-01-26 | 上海零数众合信息科技有限公司 | 一种区块链隐私交易方法 |
KR102594655B1 (ko) * | 2021-01-11 | 2023-10-27 | 충남대학교 산학협력단 | 동적 연산을 통한 검증이 가능한 영지식 증명 시스템 및 증명 방법 |
US20220417044A1 (en) * | 2021-06-25 | 2022-12-29 | Prateek GOEL | System and method to manage large data in blockchain |
CN113469690B (zh) * | 2021-07-23 | 2024-03-26 | 佳乔(深圳)投资有限公司 | 一种基于区块链的交易结算方法 |
CN113610474B (zh) * | 2021-08-16 | 2023-09-22 | 傲林科技有限公司 | 一种基于事件网的库存管理方法和管理系统 |
US20230298064A1 (en) * | 2022-01-26 | 2023-09-21 | Seek Xr, Inc. | Systems and methods for facilitating redemption of unique digital asset utility |
GB2618106A (en) * | 2022-04-27 | 2023-11-01 | Nchain Licensing Ag | Messaging protocol for compact script transactions |
US11818207B1 (en) * | 2022-07-08 | 2023-11-14 | T-Mobile Innovations Llc | Methods and systems for ledger based content delivery using a mobile edge computing (MEC) server |
CN114978514B (zh) * | 2022-07-27 | 2022-11-01 | 杭州友恭科技有限公司 | 密钥管理方法、系统、装置、电子装置和存储介质 |
US11792259B1 (en) | 2022-09-28 | 2023-10-17 | T-Mobile Innovations Llc | Methods and systems for distributing rendering across devices in a customer premise |
CN115801288B (zh) * | 2023-01-10 | 2023-04-18 | 南方科技大学 | 一种基于区块链和零知识证明的验证方法、系统及设备 |
CN116610362B (zh) * | 2023-04-27 | 2024-02-23 | 合芯科技(苏州)有限公司 | 一种处理器指令集译码方法、系统、设备和存储介质 |
US11882216B1 (en) * | 2023-06-08 | 2024-01-23 | Auradine, Inc. | End-to-end hardware acceleration for ZKP from witness generation to proof generation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499191A (en) * | 1992-06-15 | 1996-03-12 | Minc Incorporated | Multi-level logic optimization in programmable logic devices |
US20070061487A1 (en) * | 2005-02-01 | 2007-03-15 | Moore James F | Systems and methods for use of structured and unstructured distributed data |
US20160004820A1 (en) * | 2005-02-01 | 2016-01-07 | Newsilike Media Group, Inc. | Security facility for maintaining health care data pools |
TW201627889A (zh) * | 2014-10-31 | 2016-08-01 | 21公司 | 具有共用處理邏輯之數位貨幣採礦電路 |
Family Cites Families (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4667290A (en) | 1984-09-10 | 1987-05-19 | 501 Philon, Inc. | Compilers using a universal intermediate language |
JPH03126133A (ja) | 1989-10-11 | 1991-05-29 | Matsushita Electric Ind Co Ltd | コンパイラ処理方法 |
JPH05252336A (ja) | 1992-03-04 | 1993-09-28 | Toshiba Corp | 画像形成装置 |
US5297150A (en) | 1992-06-17 | 1994-03-22 | International Business Machines Corporation | Rule-based method for testing of programming segments |
US8639625B1 (en) * | 1995-02-13 | 2014-01-28 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
JPH08305547A (ja) * | 1995-05-11 | 1996-11-22 | Oki Electric Ind Co Ltd | Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム |
US5920830A (en) | 1997-07-09 | 1999-07-06 | General Electric Company | Methods and apparatus for generating test vectors and validating ASIC designs |
US6519754B1 (en) * | 1999-05-17 | 2003-02-11 | Synplicity, Inc. | Methods and apparatuses for designing integrated circuits |
EP1283422A1 (en) | 2001-08-07 | 2003-02-12 | Lucent Technologies Inc. | Testbench for the validation of a device under test |
WO2003032490A2 (en) * | 2001-10-11 | 2003-04-17 | California Institute Of Technology | Method and apparatus for an asynchronous pulse logic circuit |
US7209555B2 (en) | 2001-10-25 | 2007-04-24 | Matsushita Electric Industrial Co., Ltd. | Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device |
US7085701B2 (en) * | 2002-01-02 | 2006-08-01 | International Business Machines Corporation | Size reduction techniques for vital compliant VHDL simulation models |
US7281017B2 (en) * | 2002-06-21 | 2007-10-09 | Sumisho Computer Systems Corporation | Views for software atomization |
US6983456B2 (en) * | 2002-10-31 | 2006-01-03 | Src Computers, Inc. | Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms |
US7178118B2 (en) * | 2003-05-30 | 2007-02-13 | Synplicity, Inc. | Method and apparatus for automated circuit design |
US20060149962A1 (en) | 2003-07-11 | 2006-07-06 | Ingrian Networks, Inc. | Network attached encryption |
US7590236B1 (en) | 2004-06-04 | 2009-09-15 | Voltage Security, Inc. | Identity-based-encryption system |
US7697691B2 (en) * | 2004-07-14 | 2010-04-13 | Intel Corporation | Method of delivering Direct Proof private keys to devices using an on-line service |
JP5537032B2 (ja) * | 2005-12-13 | 2014-07-02 | コーニンクレッカ フィリップス エヌ ヴェ | 安全な閾値復号プロトコル計算 |
TW200725415A (en) | 2005-12-30 | 2007-07-01 | Tatung Co Ltd | Method for automatically translating high level programming language into hardware description language |
JP4547503B2 (ja) * | 2006-03-07 | 2010-09-22 | 国立大学法人徳島大学 | 算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体 |
US7926040B2 (en) | 2006-09-06 | 2011-04-12 | International Business Machines Corporation | Method and system for timing code execution in a korn shell script |
WO2008053650A1 (en) | 2006-10-30 | 2008-05-08 | Nec Corporation | Common key block encrypting device, its method, its program, and recording medium |
FR2918525A1 (fr) | 2007-07-06 | 2009-01-09 | France Telecom | Procede asymetrique de chiffrement ou de verification de signature. |
WO2009064122A1 (en) | 2007-11-18 | 2009-05-22 | Lg Electronics Inc. | Methods of joint coding in mobile communication system |
US8336036B2 (en) | 2008-11-21 | 2012-12-18 | Korea University Industrial & Academic Collaboration Foundation | System and method for translating high programming level languages code into hardware description language code |
US8165287B2 (en) | 2008-12-30 | 2012-04-24 | King Fahd University Of Petroleum & Minerals | Cryptographic hash functions using elliptic polynomial cryptography |
FR2947404B1 (fr) | 2009-06-30 | 2011-12-16 | Sagem Securite | Cryptographie par parametrisation sur une courbe elliptique |
US8189775B2 (en) | 2010-02-18 | 2012-05-29 | King Fahd University Of Petroleum & Minerals | Method of performing cipher block chaining using elliptic polynomial cryptography |
WO2011136089A1 (ja) | 2010-04-27 | 2011-11-03 | 日本電気株式会社 | 符号化装置、誤り訂正符号構成方法およびそのプログラム |
WO2012126086A1 (en) | 2011-03-18 | 2012-09-27 | Certicom Corp. | Secure financial transactions |
US8924966B1 (en) * | 2011-03-31 | 2014-12-30 | Emc Corporation | Capture/revert module for complex assets of distributed information technology infrastructure |
US9569771B2 (en) | 2011-04-29 | 2017-02-14 | Stephen Lesavich | Method and system for storage and retrieval of blockchain blocks using galois fields |
US8607129B2 (en) | 2011-07-01 | 2013-12-10 | Intel Corporation | Efficient and scalable cyclic redundancy check circuit using Galois-field arithmetic |
JP5697153B2 (ja) | 2011-08-04 | 2015-04-08 | キヤノンマーケティングジャパン株式会社 | 情報処理システム、携帯端末、制御方法、及びプログラム |
US8745376B2 (en) | 2011-10-14 | 2014-06-03 | Certicom Corp. | Verifying implicit certificates and digital signatures |
US9215076B1 (en) * | 2012-03-27 | 2015-12-15 | Amazon Technologies, Inc. | Key generation for hierarchical data access |
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. |
BR112015010016A2 (pt) * | 2012-11-07 | 2017-07-11 | Koninklijke Philips Nv | compilador, computador, método de compilação e programa de computador |
US9306738B2 (en) * | 2012-12-21 | 2016-04-05 | Microsoft Technology Licensing, Llc | Managed secure computations on encrypted data |
US20140321644A1 (en) | 2013-04-29 | 2014-10-30 | Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of National Defence | Method and system for calculations on encrypted data |
US9026978B1 (en) | 2013-10-24 | 2015-05-05 | Cadence Design Systems, Inc. | Reverse interface logic model for optimizing physical hierarchy under full chip constraint |
JP5842255B2 (ja) * | 2013-12-12 | 2016-01-13 | 国立大学法人東京工業大学 | プログラミング言語による論理回路記述から論理回路を生成するための装置及び方法 |
FR3018378A1 (fr) | 2014-03-12 | 2015-09-11 | Enrico Maim | Systeme et procede transactionnels a architecture repartie fondees sur des transactions de transferts d'unites de compte entre adresses |
US9830580B2 (en) * | 2014-03-18 | 2017-11-28 | nChain Holdings Limited | Virtual currency system |
US10320781B2 (en) | 2016-12-08 | 2019-06-11 | Sensoriant, Inc. | System and methods for sharing and trading user data and preferences between computer programs and other entities while preserving user privacy |
US9645794B2 (en) | 2014-09-23 | 2017-05-09 | Texas Instruments Incorporated | Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography |
US20160162897A1 (en) | 2014-12-03 | 2016-06-09 | The Filing Cabinet, LLC | System and method for user authentication using crypto-currency transactions as access tokens |
PL3073670T3 (pl) | 2015-03-27 | 2021-08-23 | Black Gold Coin, Inc. | System i sposób osobistej identyfikacji i weryfikacji |
AU2016242888A1 (en) * | 2015-03-31 | 2017-11-16 | Nasdaq, Inc. | Systems and methods of blockchain transaction recordation |
WO2016155804A1 (en) | 2015-03-31 | 2016-10-06 | Nec Europe Ltd. | Method for verifying information |
US20160321751A1 (en) * | 2015-04-28 | 2016-11-03 | Domus Tower, Inc. | Real-time settlement of securities trades over append-only ledgers |
US20160342977A1 (en) * | 2015-05-20 | 2016-11-24 | Vennd.io Pty Ltd | Device, method and system for virtual asset transactions |
JP2017004044A (ja) | 2015-06-04 | 2017-01-05 | 富士通株式会社 | ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム |
CN106293892B (zh) | 2015-06-26 | 2019-03-19 | 阿里巴巴集团控股有限公司 | 分布式流计算系统、方法和装置 |
WO2017008829A1 (en) | 2015-07-10 | 2017-01-19 | Nec Europe Ltd. | A method and a system for reliable computation of a program |
US10366204B2 (en) * | 2015-08-03 | 2019-07-30 | Change Healthcare Holdings, Llc | System and method for decentralized autonomous healthcare economy platform |
US20170091726A1 (en) * | 2015-09-07 | 2017-03-30 | NXT-ID, Inc. | Low bandwidth crypto currency transaction execution and synchronization method and system |
EP3357892A4 (en) * | 2015-09-30 | 2019-05-29 | Sekisui Chemical Co., Ltd. | INTERMEDIATE LAYER FOR LAMINATED GLASS AND LAMINATED GLASS |
US20180331832A1 (en) | 2015-11-05 | 2018-11-15 | Allen Pulsifer | Cryptographic Transactions System |
US20170132621A1 (en) | 2015-11-06 | 2017-05-11 | SWFL, Inc., d/b/a "Filament" | Systems and methods for autonomous device transacting |
US10048952B2 (en) | 2015-11-11 | 2018-08-14 | Oracle International Corporation | Compiler optimized data model evaluation |
FR3043811B1 (fr) | 2015-11-16 | 2017-11-10 | Morpho | Procede d'identification d'une entite |
US20170140408A1 (en) | 2015-11-16 | 2017-05-18 | Bank Of America Corporation | Transparent self-managing rewards program using blockchain and smart contracts |
US10841082B2 (en) * | 2015-11-24 | 2020-11-17 | Adi BEN-ARI | System and method for blockchain smart contract data privacy |
US11423498B2 (en) | 2015-12-16 | 2022-08-23 | International Business Machines Corporation | Multimedia content player with digital rights management while maintaining privacy of users |
US9715373B2 (en) | 2015-12-18 | 2017-07-25 | International Business Machines Corporation | Dynamic recompilation techniques for machine learning programs |
US10044696B2 (en) | 2015-12-22 | 2018-08-07 | Mcafee, Llc | Simplified sensor integrity |
US9483596B1 (en) * | 2016-01-08 | 2016-11-01 | International Business Machines Corporation | Multi power synthesis in digital circuit design |
US10108812B2 (en) | 2016-01-28 | 2018-10-23 | Nasdaq, Inc. | Systems and methods for securing and disseminating time sensitive information using a blockchain |
AU2017223129A1 (en) | 2016-02-23 | 2018-07-12 | nChain Holdings Limited | Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system |
EP4369273A2 (en) | 2016-02-23 | 2024-05-15 | nChain Licensing AG | A method and system for securing computer software using a distributed hash table and a blockchain |
US10387988B2 (en) | 2016-02-26 | 2019-08-20 | Google Llc | Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform |
US11170371B2 (en) | 2016-03-03 | 2021-11-09 | Nec Corporation | Method for managing data in a network of nodes |
US11017387B2 (en) | 2016-03-24 | 2021-05-25 | International Business Machines Corporation | Cryptographically assured zero-knowledge cloud services for elemental transactions |
US11017388B2 (en) | 2016-03-25 | 2021-05-25 | International Business Machines Corporation | Cryptographically assured zero-knowledge cloud service for composable atomic transactions |
US10839096B2 (en) | 2016-03-28 | 2020-11-17 | International Business Machines Corporation | Cryptographically provable zero-knowledge content distribution network |
US20170287090A1 (en) | 2016-03-31 | 2017-10-05 | Clause, Inc. | System and method for creating and executing data-driven legal contracts |
WO2017175073A1 (en) | 2016-04-05 | 2017-10-12 | Vchain Technology Limited | Method and system for managing personal information within independent computer systems and digital networks |
US10545739B2 (en) | 2016-04-05 | 2020-01-28 | International Business Machines Corporation | LLVM-based system C compiler for architecture synthesis |
CN108885761B (zh) | 2016-04-11 | 2023-09-29 | 区块链控股有限公司 | 用于区块链上的安全点对点通信的方法 |
US20170300897A1 (en) * | 2016-04-14 | 2017-10-19 | American Express Travel Related Services Company, Inc. | Systems and Methods for an Electronic Wallet Payment Tool |
US10803537B2 (en) * | 2016-04-18 | 2020-10-13 | R3 Ltd. | System and method for managing transactions in dynamic digital documents |
EP3449450B1 (en) * | 2016-04-29 | 2022-06-15 | Nchain Holdings Limited | Implementing logic gate functionality using a blockchain |
US10333705B2 (en) * | 2016-04-30 | 2019-06-25 | Civic Technologies, Inc. | Methods and apparatus for providing attestation of information using a centralized or distributed ledger |
US10046228B2 (en) | 2016-05-02 | 2018-08-14 | Bao Tran | Smart device |
US20170337319A1 (en) | 2016-05-20 | 2017-11-23 | Ecole polytechnique fédérale de Lausanne (EPFL) | System and Method for Optimization of Digital Circuits with Timing and Behavior Co-Designed by Introduction and Exploitation of False Paths |
CN107438002B (zh) | 2016-05-27 | 2022-02-11 | 索尼公司 | 基于区块链的系统以及系统中的电子设备和方法 |
US10447478B2 (en) | 2016-06-06 | 2019-10-15 | Microsoft Technology Licensing, Llc | Cryptographic applications for a blockchain system |
FR3052286B1 (fr) | 2016-06-06 | 2018-06-15 | Morpho | Procede de verification d'un droit d'acces d'un individu |
US20180018738A1 (en) | 2016-07-14 | 2018-01-18 | Digital Asset Holdings | Digital asset platform |
US10417217B2 (en) | 2016-08-05 | 2019-09-17 | Chicago Mercantile Exchange Inc. | Systems and methods for blockchain rule synchronization |
CN106780032A (zh) * | 2016-12-16 | 2017-05-31 | 杭州云象网络技术有限公司 | 一种多链场景下的区块链链间资产转移方法 |
US11088823B2 (en) | 2017-01-06 | 2021-08-10 | Koninklijke Philips N.V. | Pinocchio/Trinocchio on authenticated data |
US11362829B2 (en) | 2017-01-06 | 2022-06-14 | Koninklijke Philips N.V. | Distributed privacy-preserving verifiable computation |
CN106790253A (zh) * | 2017-01-25 | 2017-05-31 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 基于区块链的认证方法和装置 |
CN107274184A (zh) | 2017-05-11 | 2017-10-20 | 上海点融信息科技有限责任公司 | 基于零知识证明的区块链数据处理 |
CN107179932A (zh) | 2017-05-26 | 2017-09-19 | 福建师范大学 | 基于fpga高层次综合指令的优化方法及其系统 |
CN107330775A (zh) * | 2017-07-05 | 2017-11-07 | 贵州大学 | 一种基于比特币协议的首价密封交易方法 |
US10135607B1 (en) | 2017-08-11 | 2018-11-20 | Dragonchain, Inc. | Distributed ledger interaction systems and methods |
US10268829B2 (en) | 2017-08-11 | 2019-04-23 | Dragonchain, Inc. | Security systems and methods based on cryptographic utility token inventory tenure |
US10333710B2 (en) | 2017-09-12 | 2019-06-25 | Qed-It Systems Ltd. | Method and system for determining desired size of private randomness using Tsallis entropy |
US10521616B2 (en) | 2017-11-08 | 2019-12-31 | Analog Devices, Inc. | Remote re-enrollment of physical unclonable functions |
EP3707855A1 (en) | 2017-11-09 | 2020-09-16 | Nchain Holdings Limited | System for securing verification key from alteration and verifying validity of a proof of correctness |
-
2018
- 2018-10-29 EP EP18797158.5A patent/EP3707855A1/en active Pending
- 2018-10-29 US US16/762,461 patent/US20210377041A1/en active Pending
- 2018-10-29 WO PCT/IB2018/058432 patent/WO2019092542A1/en unknown
- 2018-10-29 WO PCT/IB2018/058434 patent/WO2019092544A1/en unknown
- 2018-10-29 KR KR1020207014203A patent/KR20200080265A/ko not_active Application Discontinuation
- 2018-10-29 SG SG11202004149UA patent/SG11202004149UA/en unknown
- 2018-10-29 CN CN202311496467.5A patent/CN117640170A/zh active Pending
- 2018-10-29 EP EP18796783.1A patent/EP3707852A1/en active Pending
- 2018-10-29 WO PCT/IB2018/058437 patent/WO2019092545A1/en unknown
- 2018-10-29 JP JP2020524532A patent/JP7208989B2/ja active Active
- 2018-10-29 CN CN201880073019.5A patent/CN111345005A/zh active Pending
- 2018-10-29 EP EP18796782.3A patent/EP3707871B1/en active Active
- 2018-10-29 CN CN201880072678.7A patent/CN111345004B/zh active Active
- 2018-10-29 SG SG11202004146WA patent/SG11202004146WA/en unknown
- 2018-10-29 EP EP18797157.7A patent/EP3707623A1/en active Pending
- 2018-10-29 JP JP2020524517A patent/JP2021502636A/ja active Pending
- 2018-10-29 US US16/762,471 patent/US11658801B2/en active Active
- 2018-10-29 JP JP2020524430A patent/JP7234229B2/ja active Active
- 2018-10-29 SG SG11202004147RA patent/SG11202004147RA/en unknown
- 2018-10-29 EP EP23216404.6A patent/EP4312403A3/en active Pending
- 2018-10-29 KR KR1020207014209A patent/KR20200086284A/ko not_active Application Discontinuation
- 2018-10-29 US US16/762,475 patent/US11635950B2/en active Active
- 2018-10-29 US US16/762,466 patent/US11575511B2/en active Active
- 2018-10-29 JP JP2020524541A patent/JP7221954B2/ja active Active
- 2018-10-29 WO PCT/IB2018/058433 patent/WO2019092543A1/en unknown
- 2018-10-29 KR KR1020207014108A patent/KR20200086282A/ko not_active Application Discontinuation
- 2018-10-29 EP EP22170376.2A patent/EP4092953A1/en active Pending
- 2018-10-29 SG SG11202004148PA patent/SG11202004148PA/en unknown
- 2018-10-29 KR KR1020207014213A patent/KR20200079503A/ko not_active Application Discontinuation
- 2018-10-29 CN CN201880072801.5A patent/CN111316595A/zh active Pending
- 2018-10-29 CN CN201880072692.7A patent/CN111406379A/zh active Pending
- 2018-11-01 CN CN201880072729.6A patent/CN111316594A/zh active Pending
- 2018-11-01 SG SG11202004153UA patent/SG11202004153UA/en unknown
- 2018-11-01 JP JP2020524561A patent/JP2021502747A/ja active Pending
- 2018-11-01 WO PCT/IB2018/058583 patent/WO2019092561A1/en unknown
- 2018-11-01 US US16/762,490 patent/US20210192514A1/en active Pending
- 2018-11-01 EP EP18800333.9A patent/EP3707856A1/en active Pending
- 2018-11-01 KR KR1020207014106A patent/KR20200086281A/ko not_active Application Discontinuation
- 2018-11-08 TW TW107139662A patent/TWI806918B/zh active
-
2020
- 2020-05-08 ZA ZA2020/02575A patent/ZA202002575B/en unknown
-
2023
- 2023-01-06 JP JP2023000947A patent/JP2023036962A/ja active Pending
- 2023-02-02 JP JP2023014319A patent/JP2023052834A/ja active Pending
- 2023-02-03 US US18/105,672 patent/US20230269070A1/en active Pending
- 2023-02-22 JP JP2023026258A patent/JP7477674B2/ja active Active
- 2023-04-03 US US18/130,373 patent/US20230318804A1/en active Pending
- 2023-04-13 US US18/134,276 patent/US20230318805A1/en active Pending
- 2023-10-05 JP JP2023173507A patent/JP2023182741A/ja active Pending
- 2023-10-12 JP JP2023176820A patent/JP2023179687A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499191A (en) * | 1992-06-15 | 1996-03-12 | Minc Incorporated | Multi-level logic optimization in programmable logic devices |
US20070061487A1 (en) * | 2005-02-01 | 2007-03-15 | Moore James F | Systems and methods for use of structured and unstructured distributed data |
US20160004820A1 (en) * | 2005-02-01 | 2016-01-07 | Newsilike Media Group, Inc. | Security facility for maintaining health care data pools |
TW201627889A (zh) * | 2014-10-31 | 2016-08-01 | 21公司 | 具有共用處理邏輯之數位貨幣採礦電路 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI806918B (zh) | 用於簡化可執行指令以優化可驗證計算之系統及相關方法與儲存媒體 | |
JP7472338B2 (ja) | ブロックチェーンにおける擬似乱数生成 | |
US11941624B2 (en) | Concurrent state machine processing using a blockchain | |
Avizheh et al. | Verifiable computation using smart contracts | |
Covaci et al. | NECTAR: non-interactive smart contract protocol using blockchain technology | |
TWI837103B (zh) | 電腦實施方法及系統 | |
US11657391B1 (en) | System and method for invoking smart contracts |