CN110869906A - 用于控制区块链交易的所生成脚本的流执行的方法 - Google Patents
用于控制区块链交易的所生成脚本的流执行的方法 Download PDFInfo
- Publication number
- CN110869906A CN110869906A CN201880045599.7A CN201880045599A CN110869906A CN 110869906 A CN110869906 A CN 110869906A CN 201880045599 A CN201880045599 A CN 201880045599A CN 110869906 A CN110869906 A CN 110869906A
- Authority
- CN
- China
- Prior art keywords
- script
- blockchain
- code
- transaction
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013515 script Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000007246 mechanism Effects 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 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
- 238000012545 processing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- 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/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- 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
-
- 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
- G06F8/452—Loops
-
- 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/51—Source to source
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- 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/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/3297—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 time stamps, e.g. generation of time stamps
-
- 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/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
- 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/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Stored Programmes (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明提供了一种用于生成区块链交易(Tx)的计算机实现的方法(以及相应的系统)。这可以是比特币区块链或其他区块链协议的交易。该方法包括以下步骤:使用软件资源来接收、生成或得出至少一个数据项;然后至少一次将代码的至少一部分插入与交易相关联的脚本中。在执行脚本时,该部分代码提供控制流机制的功能,控制流机制的行为由至少一个数据项控制或影响。在一个实施方式中,将代码多于一次复制/插入到脚本中。控制流机制可以是循环,例如while或for循环,也可以是选择控制机制,例如switch语句。因此,本发明允许生成更复杂的区块链脚本并控制该脚本在区块链上实现时将如何执行。这又可以控制如何或何时解锁区块链交易的输出。
Description
技术领域
本发明总体上涉及区块链技术,并且更具体地涉及通过区块链实现复杂功能。有利地,本发明提供了一种机制,该机制使区块链交易能够包括通常由控制流结构提供的功能。因此,本发明扩展了区块链脚本的能力和功能,从而扩展了区块链协议本身,而无需修改底层的现有协议。根据本发明产生的交易可以用作用于实现、影响和指导计算机实现的处理的动作的控制机制。本发明适合于但不限于实现和控制自动化过程。
背景技术
在本文中,使用术语“区块链”来涵盖所有形式的基于共识的、基于计算机的电子分布式账本,包括但不限于区块链和交易链技术、经许可和未经许可的账本、共享账本及其变体。区块链技术最广为人知的应用是比特币账本,尽管已经提出并开发了其他区块链实现方式。尽管出于方便和说明的目的在本文中可以提及比特币,但是应当注意,本发明不限于与比特币区块链一起使用,并且替代的区块链实现方式和协议落入本发明的范围内。
区块链是一种基于共识的电子账本,其被实现为基于计算机的去中心化的分布式系统,该系统由区块组成,而区块又由交易组成。每个交易是一个数据结构,该数据结构对区块链系统中的参与者之间的数字资产的控制转移进行编码,并包括至少一个输入和至少一个输出。每个区块包含前一个区块的散列,以致于这些区块变为链接在一起,以创建自区块链开始以来就已经写入区块链的所有交易的永久、不可更改的记录。交易包含嵌入其输入和输出中称为脚本的小程序,它们指定如何以及通过谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言来编写的。
为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)进行工作以确保每个交易都有效,而无效交易从网络中被拒绝。安装在节点上的软件客户端通过执行其锁定和解锁脚本,来对未耗用的交易(UTXO)进行该验证工作。如果锁定和解锁脚本的执行评估为TRUE,则交易有效并且被写入区块链。因此,为了将交易写入区块链,该交易必须i)由接收交易的第一节点来验证-如果交易被验证,则节点将其中继到网络中的其他节点;ii)被加入由矿工建造的新区块;iii)被挖掘,即加入过去交易的公共账本。
虽然区块链技术最广为人知的地方在于加密货币实现方式的使用,但是数字企业家已经开始探索比特币所基于的加密安全系统以及可以存储在区块链上以实现新系统的数据这两者的使用。如果区块链可用于并不限于加密货币领域的自动化任务和过程,这将是非常有利的。这样的解决方案将能够利用区块链的好处(例如,事件的永久性、防篡改证明记录,分布式处理等),同时在其应用中更通用。
发明内容
根据本发明,提供了如所附权利要求中所定义的计算机实现的系统/方法。
本发明可以提供一种计算机实现的方法。可以将其描述为被设置成使得能够生成区块链交易(Tx)或适于生成区块链交易(Tx)的方法。另外或作为替代,其可被描述为用于控制交易(Tx)脚本的执行从而控制或影响与区块链交易相关联的输出是否被解锁(耗用)的方法。因此,它是一种控制或影响加密过程的方法。该方法也可以描述为通过区块链网络控制资源的转移或交换。本发明也可以被描述为提供一种安全技术,该安全技术允许或使得能够在区块链脚本之内或由区块链脚本提供图灵完整的功能,而不会损害对利用(exploits)的适应性。因此,本发明提供了一种增强的区块链,因为可以以更复杂和技术上更优越的方式在区块链网络上执行转移和交换,同时保持安全性和防止对协议的利用。
该方法可以包括使用软件资源来接收或生成或得出至少一个数据项的步骤。数据项也可以称为“信号”、“值”、“参数”或“输入”。数据项可以作为信号被接收。其可以从链外源接收。因此,数据项可以用于确定代码被复制或插入到脚本中的次数,并且可以在脚本之外被确定和/或生成。其可以由计算资源作为计算结果来生成。其可以通过使用随机或伪随机数生成器来生成。
可以包括以下步骤:将代码的至少一部分至少一次插入与区块链交易相关联的脚本中或针对区块链交易的脚本中,从而在执行脚本时,其提供了控制流机制的功能。代码的该部分可以预先指定或预先编写。其可以存储在基于计算机的资源中,并且可以在插入脚本之前从存储中检索。
该脚本可以与交易相关联,因为它形成交易的一部分和/或可以用于锁定/解锁要使用该交易转移的一部分加密货币。
该方法可以包括生成区块链交易的步骤。该方法可以包括将交易提交给区块链网络的步骤。其可以包括以下步骤:使用交易将资源或对资源的控制从一个节点或一方转移到网络上的另一节点或另一方。
控制流机制的行为/执行可由至少一个数据项控制或影响。优选地,在插入代码的至少一部分之后,脚本可以不包括任何图灵完整控制结构(例如,循环、递归跳转、高级控制结构)。优选地,在至少一次插入代码的至少一部分之后,脚本兼容于在使用功能受限(非图灵完整)语言的区块链上执行。这可以是实现比特币协议或其变体的区块链使用的Script语言。
该脚本可以与区块链交易的输入或输出相关联。可以根据区块链协议来生成交易。这可以是比特币协议。该脚本可以用Script编程语言或其他基于堆栈的脚本语言编写。脚本可以以功能受限(也可以称为“非图灵完整”)的语言来编写。该语言不固有地支持一种或多种控制流机制比如循环和/或递归跳转,从这一意义上来说,该语言在功能上受限。
该方法可以包括以下步骤:多于一次地和/或在脚本内多于一个位置处,将代码的至少一部分插入和/或复制到脚本中。
该方法可以包括步骤:使用至少一个数据项来确定代码的至少一部分被插入/复制到脚本中的次数。
控制流机制可以是循环、比如for或while循环,也可以是选择控制机制比如switch/Case语句。
所述至少一个数据项可以从编译器得出,所述编译器被布置为将代码从高级语言(HLL)转换成区块链交易脚本。
代码的该部分可以包括计数器或索引,该计数器或索引在执行脚本时至少增加一次,该计数器或索引用于控制或影响脚本的执行。
可以使用存储在两个基于堆栈的数据结构中和/或从中检索的值来增加或操纵计数器或索引。
本发明还可以包括被布置为实现本文描述的任何实施方式的方法的计算机实现的系统。关于该方法描述的任何方面或特征也可以适用于相应的系统。该系统可以包括至少一个基于计算机的资源。它还可以包括一个或更多个区块链节点。
本发明还提供一种系统,包括:
处理器;以及
包括可执行指令的存储器,该可执行指令由于处理器的执行而使系统执行本文所述的计算机实现的方法的任何实施方式。
本发明还提供一种其上存储有可执行指令的非暂时性计算机可读存储介质,该可执行指令由于计算机系统的处理器执行而使该计算机系统至少执行本文所述的计算机实现的方法的实施方式。
附图说明
通过在此描述的实施方式,本发明的这些和其他方面将变得明显,且将参考在此所述的实施方式阐述本发明的这些和其他方面。现在参考附图仅作为示例描述本发明的实施方式,在附图中:
图1提供了现有技术中已知的去中心化区块链网络的简单图示。
图2示出了例示根据本发明实施方式的流程图。
图3示出了可根据本发明使用的与区块链相关联的示例性网络。
具体实施方式
比特币网络是区块链实现的一个示例,如图1所示。比特币利用一种称为Script的脚本语言。脚本是一种类似于Forth的语言,其使用一组原语运算符或命令(称为操作码)来创建相对简单的程序。Script使用称为堆栈的数据结构用于在程序执行期间临时存储数据项(变量和常量)。将数据项推到堆栈上,一个放在另一个之上,然后以相反的顺序弹出。通常,被推入堆栈的项将随后弹出,以便将其用作下一个操作的操作数。在Script程序结束时,堆栈顶部留下的值为返回值。
如在其他基于堆栈的语言(例如Forth)中已知的那样,有权访问另一个堆栈通常很方便。在Script中,第二个堆栈被称为alt堆栈,而第一个堆栈被称为主堆栈。alt堆栈通常用于在脚本执行期间存储临时数据。
然而,与Forth相比,Script不具有用于执行复杂控制流语句(例如循环)的内置语法。控制流语句是用于影响和指示(即控制)程序执行方式的编程机制。特定值用于确定逻辑在运行时采用的路径。这些值可以硬编码到程序中,也可以在运行时作为动态输入提供。然后可以在决策过程中使用该值(例如,值a是否小于或等于值b?字符串x=“HelloWorld!”吗?)。控制流语句的示例包括while循环、for循环和switch-case语句。
Script对该机制的禁止是一种故意的安全功能:复杂控制机制会潜在地使区块链网络易于受到比如拒绝服务(DOS或DDOS)攻击这样的利用(exploit)。然而,权衡方式是程序员在编写Script代码的方式上受限制,例如在源代码中不能包括循环。这导致一些人将Script描述为非图灵完整的(尽管其他人反驳该定义)。一种已知的比特币替代方案以太坊试图通过将图灵完整的语言作为固有特征纳入其协议中,来克服该限制。然而,在撰写本说明书时,以太坊遭受了至少一个严重的利用(exploit)。
因此,需要提供一种技术方案,以解决功能受限的区块链脚本语言(例如Script)提供的安全性与通过区块链平台执行更复杂功能的愿望之间的权衡。理想上,这将以经由软件资源比如通过自动化促进编码过程的方式来实现。
本发明提供了针对至少该问题的解决方案,并实现一种机制,由此可实现复杂控制流机制的功能,或在区块链上使用功能上受限的脚本语言至少模拟复杂控制流机制的功能。(由于在该领域内关于Script的图灵完整性的争论,可在此将该语言称为“功能受限”,而不是“非图灵完整”,尽管术语可互换使用)。在此使用的仅用于示例目的的例子呈现了允许模拟for循环和switch-case控制序列的解决方案。本领域技术人员将理解,本发明可以提供其他类型的控制流机制。
可根据本发明使用的处理在图2的流程图中示出。根据本发明,针对如何在交易(Tx)脚本内控制逻辑做出确定。例如,该确定可以是对每迭代一循环在主体内应执行的语句的预先确定,或对在switch结构中针对每个选项(case)应执行的语句的预先确定。这些可以作为代码的(一个或多个)部分被存储,以供随后在脚本/交易生成期间的检索。
一旦生成或接收,然后使用该确定来针对区块链交易的脚本生成代码。其可以是解锁脚本、赎回脚本或解锁脚本。特别地,代码的一部分在脚本内的适当位置处被插入到脚本中期望的次数。
代码的部分可以例如是执行循环的实例的代码,或switch命令序列中的选项。代码的部分根据需要在脚本内重复,使得基于数据项的值和/或对条件的评估可能执行一个或更多个语句。例如,如果(i<3),则<执行循环的主体>,或如果(i==2),则<执行语句并跳出switch>。
脚本代码的生成可手动执行。然而,在本发明的优选实施方式中,代码(以及整个交易)通过自动化过程生成,即通过在处理器上运行的适当设置的软件资源或代理执行。
在该实施方式中,软件代理被设置为接收或生成数据项。该数据项是输入或信号,可用于确定需要在脚本内设置代码的部分的次数。可使用相同或另一数据项来控制评估期间脚本的执行,例如通过在控制循环的条件内使用,或通过作为针对其测试分支语句(switch case)的值来使用。
另外,代码的部分可预先确定且存储在存储器中。当软件代理需要生成脚本时,可从存储器访问代码的部分,将其根据需要多次插入脚本中,且相应地调适该代码的部分,从而使用上述数据项测试相关控制条件。
因此,一旦软件代理接收了相关数据项,其可使用该数据项来生成交易脚本,该交易脚本包括在运行时根据需要模拟复杂控制流功能的代码。在区块链交易的生成中可使用该脚本,然后可将该区块链交易提交到网络以用于验证和传播。
因此,本发明可用来控制与区块链交易的输入/输出相关联的脚本执行的方式。实际上,这控制了是否可耗用与交易(Tx)相关联的输出,且又控制了是否可将区块链上资产(即加密货币的一部分、令牌等)的加密拥有权从一个实体转移到另一个实体。在另一意义上,本发明控制或影响加密过程。
现在提供例子来分析并解释以上说明的概念和技术。
用例1:模拟for循环
在该例子中,提供了基于Script的操作序列,其模拟for循环的行为,就像for循环由该语言固有地支持一样。
循环是如下形式:
for i in[K,N]
<执行语句>//循环的“主体”
end
令K和N分别为间隔I=[K:N]的下限和上限。操作顺序采用以下形式:
OP_N OP_K OP_2DUP OP_SWAP OP_TOALTSTACK OP_TOALTSTACK
…
…
OP_DROP OP_DROP
应注意,表示循环的实例的框被多次提供,比如P次,且P>N。此外,循环主体<执行语句>的代码不应修改主堆栈或alt堆栈的状态。
循环示例1:从0到2的循环
在下面的示例中,假设框中的代码被复制了3次。在该示例中,验证<执行语句>被执行2次。
考虑以下代码片段:
OP_2OP_0OP_2DUP OP_SWAP OP_TOALTSTACK OP_TOALTSTACK
堆栈应如下所示(左列是主堆栈,右列是alt堆栈):
OP_GREATERTHAN
OP_IF
OP_FROMALTSTACK OP_1ADD OP_TOALTSTACK
<执行语句>
OP_ENDIF
OP_FROMALTSTACK OP_FROMALTSTACK OP_2DUP OP_TOALTSTACK
OP_TOALTSTACK OP_SWAP
OP_GREATERTHAN
OP_IF
OP_FROMALTSTACK OP_1ADD OP_TOALTSTACK
<执行语句>
OP_ENDIF
OP_FROMALTSTACK OP_FROMALTSTACK OP_2DUP OP_TOALTSTACK
OP_TOALTSTACK OP_SWAP
OP_GREATERTHAN
OP_IF
OP_FROMALTSTACK OP_1ADD OP_TOALTSTACK
<执行语句>
OP_ENDIF
OP_FROMALTSTACK OP_FROMALTSTACK OP_2DUP OP_TOALTSTACK
OP_TOALTSTACK OP_SWAP
OP_DROP OP_DROP
用例2:模拟switch-case命令序列
在此示例中,描述switch命令序列的比特币Script模拟。希望模拟以下类型的命令序列:
现在,令X成为要检查的值。在使用比特币Script语言的语法编写时,switch-case代码变为:
OP_X OP_DUP OP_TOALTSTACK
OP_1OP_EQUAL
OP_IF
<执行语句1>
OP_ENDIF
OP_FROMALTSTACK OP_DUP OP_TOALTSTACK
OP_2OP_EQUAL
OP_IF
<执行语句2>
OP_ENDIF
OP_FROMALTSTACK OP_DUP OP_TOALTSTACK
…
…
OP_N OP_EQUAL
OP_IF
<执行语句N>
OP_ENDIF
OP_FROMALTSTACK OP_DUP OP_TOALTSTACK OP_DROP
示例1:
输入信号为OP_2。检查到代码仅执行了<执行语句2>,并假定代码包含三个语句。
OP_2OP_DUP OP_TOALTSTACK
OP_1OP_EQUAL
OP_IF
<执行语句1>
OP_ENDIF
OP_FROMALTSTACK OP_DUP OP_TOALTSTACK
OP_2OP_EQUAL
OP_IF
<执行语句2>
OP_ENDIF
OP_FROMALTSTACK OP_DUP OP_TOALTSTACK
OP_3OP_EQUAL
OP_IF
<执行语句3>
OP_ENDIF
OP_FROMALTSTACK OP_DUP OP_TOALTSTACK
OP_DROP
区块链网络
现在参考图3,其以框图形式示出了与区块链相关联的示例性网络,该网络在本文中可以被称为区块链网络100,并且可以用于实现本发明。区块链网络100是一个点对点的开放成员网络,任何人可以加入其中,无需邀请或经过其他成员同意。运行区块链协议(区块链网络100在该协议下操作)的实例的分布式电子装置可以参与区块链网络100。这种分布式电子装置可称为节点102。区块链协议例如可以是比特币协议,或其他加密货币。
运行区块链协议且形成区块链网络100的节点102的电子装置可以是各种类型的装置,包括例如计算机(比如台式计算机、膝上型计算机、平板计算机)、服务器、诸如智能电话这样的移动装置、诸如智能手表这样的可穿戴计算机、或其他电子装置。
区块链网络100的节点102使用合适的通信技术相互耦接,所述通信技术可包括有线和无线通信技术。在许多情况下,区块链网络100至少部分地在因特网上实现,且一些节点102可位于地理上分散的位置处。
节点102维护区块链上所有交易的全局账本,其被分为区块,且每个区块包含链中前一个区块的散列。全局账本是分布式账本,且每个节点102可以存储全局账本的完整副本或部分副本。影响全局账本的节点102的交易由其他节点102验证,从而维护全局账本的有效性。实现和操作区块链网络(比如使用比特币协议的区块链网络)的细节为本领域技术人员所了解。
每个交易一般具有一个或更多个输入以及一个或更多个输出。嵌入输入和输出中的脚本指定了如何以及通过谁来访问交易的输出。交易的输出可以是作为交易的结果的值要被转移到的地址。该值然后作为未耗用的交易输出(UTXO)与该输出地址相关联。随后的交易然后可以将该地址引为输入,从而消费或分散该值。
节点102可完成从网络路由到钱包服务的许多不同功能,以维护稳健且安全的、去中心化的公共账本。“完整节点”包含区块链的完整且最新的副本,且因此可验证公共账本上的任何交易(耗用的或未耗用的)。“轻量级节点”(或SPV)维护区块链的子集,且可使用“简单支付验证”技术验证交易。轻量级节点仅下载区块的头部,而不下载每个区块内的交易。因此这些节点依赖于对等节点,来验证其交易。“挖掘节点”可以是完整节点或轻量级节点,负责验证交易并在区块链上创建新区块。“钱包节点”通常是轻量级节点,处理用户的钱包服务。节点102使用连接导向的协议彼此通信,该协议比如是TCP/IP(传输控制协议)。
应当注意,上述实施方式说明而不是限制本发明,并且本领域技术人员将能够设计许多替代实施方式而不会脱离由所附权利要求限定的本发明的范围。在权利要求中,括号内的任何附图标记均不应理解为限制权利要求。词汇“包括”(comprising,comprise)等不排除在任何权利要求或整个说明书中列出的元件或步骤之外还存在元件或步骤。在本说明书中,“包括”(comprises)指的是“包括(includes)或包括(consists of)”,且“包括”(comprising)指的是“包括”(including or consisting of)。元件的单数指称不排除该元件的复数指称,反之亦然。本发明可以通过包括若干不同元件的硬件以及通过适当编程的计算机来实现。在列举若干装置的设备权利要求中,这些装置中的若干个可以由一项且同一项硬件来实现。在互不相同的从属权利要求中记载某些措施这一事实并不意味着不能有利地使用这些措施的组合。
Claims (14)
1.一种计算机实现的方法,包括以下步骤:
接收、生成或得出至少一个数据项;
将代码的至少一部分至少一次插入与区块链交易关联的脚本中,以便在执行所述脚本时,其提供控制流机制的功能,所述控制流机制的行为由所述至少一个数据项控制或影响。
2.根据权利要求1所述的方法,其中:
所述脚本与所述区块链交易的输入或输出相关联。
3.根据权利要求1或2所述的方法,其中:
所述交易是根据区块链协议生成的,或生成所述交易以与区块链协议一起使用。
4.根据权利要求3所述的方法,其中,所述协议是比特币协议或比特币协议的变体。
5.根据任一前述权利要求所述的方法,包括以下步骤:
多于一次地和/或在脚本内的多于一个位置处,将所述代码的所述至少一部分插入和/或复制到所述脚本中。
6.根据任一前述权利要求所述的方法,包括以下步骤:
使用至少一个数据项来确定将所述代码的至少一部分插入/复制到所述脚本中的次数。
7.根据任一前述权利要求所述的方法,其中:
所述控制流机制是循环,比如for循环,或者是选择控制机制,比如switch语句。
8.根据任一前述权利要求所述的方法,其中:
所述至少一个数据项从编译器得出,所述编译器被设置为将代码从高级语言(HLL)转换为区块链交易脚本。
9.根据任一前述权利要求所述的方法,其中:
代码的所述部分包括计数器或索引,该计数器或索引在执行脚本时至少增加一次,该计数器或索引用于控制或影响所述脚本的执行。
10.根据权利要求9所述的方法,其中使用存储在两个基于堆栈的数据结构中的值和/或从两个基于堆栈的数据结构中检索的值,来增加或操纵所述计数器或索引。
11.根据前述权利要求中任一项所述的方法,其中,所述脚本以功能受限的语言编写。
12.一种计算机实现的系统,其被设置为实现前述权利要求中任一项所述的方法。
13.一种计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在被执行时将处理器配置为执行权利要求1至11中任一项所述的方法。
14.一种电子设备,包括:
接口装置;
处理器,耦接至所述接口装置;
存储器,耦接至所述处理器,所述存储器其上存储有计算机可执行指令,所述计算机可执行指令在被执行时将所述处理器配置为执行权利要求1-11中任一项所述的方法。
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1710974.5A GB201710974D0 (en) | 2017-07-07 | 2017-07-07 | Computer-implemented system and method |
IBPCT/IB2017/054113 | 2017-07-07 | ||
GB1710971.1 | 2017-07-07 | ||
GB1710967.9 | 2017-07-07 | ||
IB2017054110 | 2017-07-07 | ||
GB1710974.5 | 2017-07-07 | ||
IB2017054113 | 2017-07-07 | ||
GBGB1710971.1A GB201710971D0 (en) | 2017-07-07 | 2017-07-07 | Computer-implemented system and method |
IB2017054114 | 2017-07-07 | ||
IBPCT/IB2017/054110 | 2017-07-07 | ||
GBGB1710967.9A GB201710967D0 (en) | 2017-07-07 | 2017-07-07 | Computer-implemented system and method |
IBPCT/IB2017/054114 | 2017-07-07 | ||
PCT/IB2018/054969 WO2019008531A1 (en) | 2017-07-07 | 2018-07-05 | METHOD FOR CONTROLLING STREAM EXECUTION OF A GENERATED SCRIPT OF A BLOCK CHAIN TRANSACTION |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110869906A true CN110869906A (zh) | 2020-03-06 |
CN110869906B CN110869906B (zh) | 2024-10-18 |
Family
ID=63077923
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880045587.4A Active CN110869905B (zh) | 2017-07-07 | 2018-07-05 | 用于将高级脚本语言编译为区块链固有脚本语言的方法 |
CN201880045599.7A Active CN110869906B (zh) | 2017-07-07 | 2018-07-05 | 用于控制区块链交易的所生成脚本的流执行的方法 |
CN201880045600.6A Pending CN110870249A (zh) | 2017-07-07 | 2018-07-05 | 用于将高级语言代码编译为区块链平台上可执行的脚本的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880045587.4A Active CN110869905B (zh) | 2017-07-07 | 2018-07-05 | 用于将高级脚本语言编译为区块链固有脚本语言的方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880045600.6A Pending CN110870249A (zh) | 2017-07-07 | 2018-07-05 | 用于将高级语言代码编译为区块链平台上可执行的脚本的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (9) | US11307835B2 (zh) |
EP (6) | EP4300290A3 (zh) |
JP (8) | JP2020526811A (zh) |
KR (1) | KR102608500B1 (zh) |
CN (3) | CN110869905B (zh) |
SG (1) | SG11201912227YA (zh) |
WO (3) | WO2019008533A1 (zh) |
ZA (1) | ZA201908552B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11307835B2 (en) | 2017-07-07 | 2022-04-19 | nChain Holdings Limited | Method for controlling the flow execution of a generated script of a blockchain transaction |
GB201811263D0 (en) * | 2018-07-10 | 2018-08-29 | Netmaster Solutions Ltd | A method and system for managing digital using a blockchain |
US12061452B2 (en) | 2018-08-24 | 2024-08-13 | Tyco Fire & Security Gmbh | Building management system with blockchain ledger |
US10964145B2 (en) * | 2018-08-24 | 2021-03-30 | Sensormatic Electronics, LLC | Access control system using blockchain ledger |
CN111949315A (zh) * | 2019-05-16 | 2020-11-17 | 富士通株式会社 | 用于区块链账本数据的管理装置和方法 |
US10699269B1 (en) | 2019-05-24 | 2020-06-30 | Blockstack Pbc | System and method for smart contract publishing |
US11657391B1 (en) | 2019-05-24 | 2023-05-23 | Hiro Systems Pbc | System and method for invoking smart contracts |
US11513815B1 (en) * | 2019-05-24 | 2022-11-29 | Hiro Systems Pbc | Defining data storage within smart contracts |
US10783082B2 (en) * | 2019-08-30 | 2020-09-22 | Alibaba Group Holding Limited | Deploying a smart contract |
GB201913143D0 (en) * | 2019-09-12 | 2019-10-30 | Nchain Holdings Ltd | Running a program from a blockchain |
US11516147B2 (en) * | 2019-10-02 | 2022-11-29 | Red Hat, Inc. | Blockchain-based dynamic storage provisioner |
US11436677B2 (en) | 2019-12-09 | 2022-09-06 | Eris Digital Holdings, Llc | Electronic trading and settlement system for blockchain-integrated cryptographic difficulty-based financial instruments |
US11314729B2 (en) * | 2020-02-20 | 2022-04-26 | International Business Machines Corporation | Multi-candidate data structure for transaction validation |
US20220066746A1 (en) * | 2020-08-31 | 2022-03-03 | Jpmorgan Chase Bank, N.A. | Systems and methods for graphical programming and deployment of distributed ledger applications |
CN113031931A (zh) * | 2021-03-04 | 2021-06-25 | 嘉兴丰鸟科技有限公司 | 一种基于脚本交叉编译的Python安全扩展方法 |
US11902426B2 (en) * | 2021-06-26 | 2024-02-13 | Ceremorphic, Inc. | Efficient storage of blockchain in embedded device |
KR102460351B1 (ko) * | 2021-06-29 | 2022-10-31 | 주식회사 퓨처에셋파이넨셜 | 파일코인 채굴 생산성 향상 장치 및 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램 |
GB2618052A (en) * | 2021-12-07 | 2023-11-01 | Nchain Licensing Ag | Blockchain script engine |
US11658833B1 (en) | 2022-12-06 | 2023-05-23 | Citibank, N.A. | Systems and methods for conducting cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs |
US11770263B1 (en) | 2022-12-06 | 2023-09-26 | Citibank, N.A. | Systems and methods for enforcing cryptographically secure actions in public, non-permissioned blockchains using bifurcated self-executing programs comprising shared digital signature requirements |
CN118118444B (zh) * | 2024-04-28 | 2024-07-12 | 之江实验室 | 一种基于可编程交换机的计算功能抽象方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957791A (zh) * | 2009-07-16 | 2011-01-26 | 埃森哲环球服务有限公司 | 将针对图形用户界面的测试脚本模块化和方面化 |
US20130339841A1 (en) * | 2012-06-14 | 2013-12-19 | Open Text S.A. | Systems and methods of a script generation engine |
CN106296191A (zh) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 一种区块链功耗感知的PoW共识机制 |
CN106407808A (zh) * | 2015-07-31 | 2017-02-15 | 英国电讯有限公司 | 减轻区块链攻击 |
CN106598549A (zh) * | 2016-12-08 | 2017-04-26 | 天津米游科技有限公司 | 一种基于区块链的智能合约系统及实现方法 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0731603B2 (ja) | 1984-11-21 | 1995-04-10 | ノビツクス | Forth特定言語マイクロプロセサ |
JPH01243162A (ja) * | 1988-03-17 | 1989-09-27 | Internatl Business Mach Corp <Ibm> | プログラム供給方法 |
JP3032031B2 (ja) * | 1991-04-05 | 2000-04-10 | 株式会社東芝 | ループ最適化方法及び装置 |
US5774726A (en) * | 1995-04-24 | 1998-06-30 | Sun Microsystems, Inc. | System for controlled generation of assembly language instructions using assembly language data types including instruction types in a computer language as input to compiler |
US5761652A (en) * | 1996-03-20 | 1998-06-02 | International Business Machines Corporation | Constructing balanced multidimensional range-based bitmap indices |
US6760905B1 (en) | 2000-09-21 | 2004-07-06 | Curl Corporation | Lazy compilation of template-generated classes in dynamic compilation execution environments |
US7168059B2 (en) * | 2001-04-20 | 2007-01-23 | Bryan Darrell Bowyer | Graphical loop profile analysis |
US6948160B2 (en) | 2001-05-31 | 2005-09-20 | Sun Microsystems, Inc. | System and method for loop unrolling in a dynamic compiler |
JP4490084B2 (ja) * | 2003-12-03 | 2010-06-23 | 安川情報システム株式会社 | プログラム開発システムにおけるプログラム作成方法 |
JP2006107339A (ja) * | 2004-10-08 | 2006-04-20 | Matsushita Electric Ind Co Ltd | プログラム処理装置 |
CA2608796C (en) | 2005-03-31 | 2013-09-03 | Georgetown University | Free thyroxine and free triiodothyronine analysis by mass spectrometry |
CN100487652C (zh) * | 2005-04-02 | 2009-05-13 | 华为技术有限公司 | 脚本语言的自动机方法 |
US7861222B2 (en) * | 2007-06-13 | 2010-12-28 | Microsoft Corporation | Discoscript: a simplified distributed computing scripting language |
JP5179822B2 (ja) * | 2007-09-27 | 2013-04-10 | 株式会社日立ソリューションズ | 携帯電話、携帯電話スクリプト開発・実行システム |
US8533666B2 (en) * | 2008-10-17 | 2013-09-10 | Microsoft Corporation | Interactive design environments to visually model, debug and execute resource oriented programs |
US10466989B2 (en) | 2011-09-02 | 2019-11-05 | Microsoft Technology Licensing, Llc. | Fast presentation of markup content having script code |
CN102999370A (zh) * | 2011-09-16 | 2013-03-27 | 腾讯科技(深圳)有限公司 | 脚本的执行方法及系统 |
US8997070B2 (en) * | 2011-12-15 | 2015-03-31 | Sap Se | Extension mechanism for scripting language compiler |
WO2014022326A1 (en) * | 2012-07-31 | 2014-02-06 | Microsoft Corporation | Multilingual build integration for compiled applications |
US8869122B2 (en) | 2012-08-30 | 2014-10-21 | Sybase, Inc. | Extensible executable modeling |
US9152400B2 (en) | 2013-04-18 | 2015-10-06 | Facebook, Inc. | Eliminating redundant reference count operations in intermediate representation of script code |
US9684499B2 (en) | 2013-06-30 | 2017-06-20 | Dropbox, Inc. | Systems and methods for facilitating installation of software applications |
KR102156371B1 (ko) | 2013-11-27 | 2020-09-15 | 한국전자통신연구원 | 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치 |
CN107210931B (zh) | 2015-01-02 | 2020-09-29 | 希斯泰克公司 | 控制基础架构 |
CN104484192B (zh) * | 2015-01-07 | 2017-11-14 | 南威软件股份有限公司 | 一种复杂多分支结构代码自动生成的方法 |
US9892021B2 (en) | 2015-03-18 | 2018-02-13 | Sap Se | Injection of code modifications in a two session debug scripting environment |
US10812274B2 (en) * | 2015-05-07 | 2020-10-20 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
US9735958B2 (en) | 2015-05-19 | 2017-08-15 | Coinbase, Inc. | Key ceremony of a security system forming part of a host computer for cryptographic transactions |
US20160342977A1 (en) | 2015-05-20 | 2016-11-24 | Vennd.io Pty Ltd | Device, method and system for virtual asset transactions |
JP6636058B2 (ja) | 2015-07-02 | 2020-01-29 | ナスダック, インコーポレイテッドNasdaq, Inc. | 分散トランザクションデータベースにおける出所保証のシステムおよび方法 |
JP6547466B2 (ja) | 2015-07-06 | 2019-07-24 | 富士通株式会社 | コンパイラ装置、コンパイル方法およびコンパイラプログラム |
US20170011460A1 (en) * | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
US10366204B2 (en) * | 2015-08-03 | 2019-07-30 | Change Healthcare Holdings, Llc | System and method for decentralized autonomous healthcare economy platform |
WO2017027407A1 (en) | 2015-08-07 | 2017-02-16 | Kinestral Technologies, Inc. | Electrochromic device assemblies |
DE112016003692T5 (de) * | 2015-08-13 | 2018-04-26 | Intel IP Corporation | CIoT-Architektur für effiziente Datenübertragung |
US9569206B1 (en) | 2015-09-29 | 2017-02-14 | International Business Machines Corporation | Creating optimized shortcuts |
EP3173962A1 (en) * | 2015-11-25 | 2017-05-31 | Gemalto Sa | Method to generate a secure code |
JP6833861B2 (ja) | 2016-02-23 | 2021-02-24 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ブロックチェーンシステム内におけるフィードバックを統合したエージェントベースチューリング完全なトランザクション |
US20170287090A1 (en) | 2016-03-31 | 2017-10-05 | Clause, Inc. | System and method for creating and executing data-driven legal contracts |
US10720232B2 (en) | 2016-04-13 | 2020-07-21 | Accenture Global Solutions Limited | Distributed healthcare records management |
US10180900B2 (en) * | 2016-04-15 | 2019-01-15 | Red Hat Israel, Ltd. | Recordation of user interface events for script generation |
GB2564200A (en) | 2016-04-29 | 2019-01-09 | Nchain Holdings Ltd | Implementing logic gate functionality using a blockchain |
CN106598579B (zh) | 2016-12-06 | 2020-12-25 | 北京果仁宝科技有限公司 | 区块链上集成动态类型编程语言方法和装置 |
CN106778343A (zh) * | 2016-12-12 | 2017-05-31 | 武汉优聘科技有限公司 | 一种基于区块链的涉及隐私数据的数据共享方法 |
US10871948B1 (en) | 2017-03-30 | 2020-12-22 | Wells Fargo Bank, N.A. | Smart contract blockchain abstraction API |
US10235280B2 (en) | 2017-04-10 | 2019-03-19 | Fmr Llc | Automated script creation and source code generation for testing mobile devices |
US10963790B2 (en) * | 2017-04-28 | 2021-03-30 | SparkCognition, Inc. | Pre-processing for data-driven model creation |
US11307835B2 (en) | 2017-07-07 | 2022-04-19 | nChain Holdings Limited | Method for controlling the flow execution of a generated script of a blockchain transaction |
-
2018
- 2018-07-05 US US16/629,291 patent/US11307835B2/en active Active
- 2018-07-05 EP EP23197250.6A patent/EP4300290A3/en active Pending
- 2018-07-05 WO PCT/IB2018/054971 patent/WO2019008533A1/en unknown
- 2018-07-05 JP JP2019568229A patent/JP2020526811A/ja active Pending
- 2018-07-05 CN CN201880045587.4A patent/CN110869905B/zh active Active
- 2018-07-05 JP JP2019569887A patent/JP7317722B2/ja active Active
- 2018-07-05 US US16/629,287 patent/US11797278B2/en active Active
- 2018-07-05 EP EP23213682.0A patent/EP4328739A3/en active Pending
- 2018-07-05 WO PCT/IB2018/054970 patent/WO2019008532A1/en unknown
- 2018-07-05 CN CN201880045599.7A patent/CN110869906B/zh active Active
- 2018-07-05 EP EP18749552.8A patent/EP3649548A1/en not_active Ceased
- 2018-07-05 JP JP2019568221A patent/JP7220678B2/ja active Active
- 2018-07-05 WO PCT/IB2018/054969 patent/WO2019008531A1/en unknown
- 2018-07-05 EP EP18749139.4A patent/EP3649547A1/en not_active Ceased
- 2018-07-05 EP EP23208507.6A patent/EP4325351A3/en active Pending
- 2018-07-05 EP EP18749140.2A patent/EP3649759A1/en not_active Ceased
- 2018-07-05 CN CN201880045600.6A patent/CN110870249A/zh active Pending
- 2018-07-05 SG SG11201912227YA patent/SG11201912227YA/en unknown
- 2018-07-05 KR KR1020207001661A patent/KR102608500B1/ko active IP Right Grant
- 2018-07-05 US US16/629,295 patent/US11416226B2/en active Active
-
2019
- 2019-12-20 ZA ZA2019/08552A patent/ZA201908552B/en unknown
-
2022
- 2022-04-18 US US17/723,381 patent/US11922149B2/en active Active
- 2022-08-13 US US17/887,445 patent/US11868745B2/en active Active
-
2023
- 2023-01-26 US US18/101,977 patent/US11941381B2/en active Active
- 2023-01-31 JP JP2023012689A patent/JP7503670B2/ja active Active
- 2023-04-12 JP JP2023064745A patent/JP7476390B2/ja active Active
- 2023-05-15 JP JP2023079779A patent/JP7535359B2/ja active Active
- 2023-11-28 US US18/521,958 patent/US20240168735A1/en active Pending
-
2024
- 2024-01-24 US US18/421,885 patent/US20240231777A1/en active Pending
- 2024-02-21 US US18/583,677 patent/US20240211222A1/en active Pending
- 2024-04-17 JP JP2024066569A patent/JP2024096926A/ja active Pending
- 2024-06-10 JP JP2024093389A patent/JP2024116281A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957791A (zh) * | 2009-07-16 | 2011-01-26 | 埃森哲环球服务有限公司 | 将针对图形用户界面的测试脚本模块化和方面化 |
US20130339841A1 (en) * | 2012-06-14 | 2013-12-19 | Open Text S.A. | Systems and methods of a script generation engine |
CN106407808A (zh) * | 2015-07-31 | 2017-02-15 | 英国电讯有限公司 | 减轻区块链攻击 |
CN106296191A (zh) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 一种区块链功耗感知的PoW共识机制 |
CN106598549A (zh) * | 2016-12-08 | 2017-04-26 | 天津米游科技有限公司 | 一种基于区块链的智能合约系统及实现方法 |
Non-Patent Citations (2)
Title |
---|
DAN ROBINSON: "Ivy - A Declarative Predicate Languagefor Smart Contracts", pages 1 - 6, Retrieved from the Internet <URL:https://btctranscripts.com/blockchain-protocol-analysis-security-engineering/2017/2017-01-26-dan-robinson-ivy/> * |
王群;李馥娟;王振力;梁广俊;徐杰;: "区块链原理及关键技术", 计算机科学与探索, no. 10 * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110869906B (zh) | 用于控制区块链交易的所生成脚本的流执行的方法 | |
JP7384965B2 (ja) | ブロックチェーンシステム内におけるフィードバックを統合したエージェントベースチューリング完全なトランザクション | |
JP7535358B2 (ja) | ブロックチェーンを用いる並行状態機械処理 | |
CN111480162B (zh) | 用于并发字节码解释的区块链实施的系统和方法 | |
KR20200094618A (ko) | 스마트 컨트랙트 유사도 분석을 이용한 소스 코드 감사 방법 및 그 장치 | |
CN113260993B (zh) | 虚拟平台系统的安全部署和操作 | |
EP3918494A1 (en) | Systems, methods, and storage media for obfuscating a computer program by representing the control flow of the computer program as data | |
Wang et al. | Towards saving blockchain fees via secure and cost-effective batching of smart-contract invocations | |
KR102247233B1 (ko) | 다중 레이어 기반 스마트 컨트랙트 감사 방법 및 그 장치 | |
Layeb et al. | Metrics, platforms, emulators, and testnets for ethereum | |
Baby et al. | A review analysis on smart contract vulnerabilities using blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |