Search

US-12621159-B2 - Computer system and method for distributed privacy-preserving shared execution of one or more processes

US12621159B2US 12621159 B2US12621159 B2US 12621159B2US-12621159-B2

Abstract

A computer system ( 100 ) for distributed shared execution of one or more shared processes, comprising: first program code for the one or more shared processes that comprises one or more shared code segments ( 142, 144, 146 ) shared between a first authorizing node ( 102 ) and a second authorizing node ( 104 ), wherein the one or more shared code segments ( 142, 144, 146 ) are executable by one or more executing nodes ( 102, 104, 106 ); a distributed ledger ( 152, 154, 156 ) that provides a record of valid code segments of the program code; and second program code comprising instructions that, when executed by the first and/or second authorizing nodes, validates that an anticipated execution result of the one or more shared code segments ( 142, 144, 146 ) satisfies shared authorization conditions and, if satisfied, authorizes the execution of the one or more shared code segments by the one or more executing nodes.

Inventors

  • James Benton LITSIOS
  • Simon Meier
  • Ognjen MARIC
  • Sören Gerhard BLEIKERTZ
  • Francesco MAZZOLI

Assignees

  • Digital Asset (Switzerland) GmbH

Dates

Publication Date
20260505
Application Date
20230705
Priority Date
20171027

Claims (18)

  1. 1 . A system for distributed shared execution of one or more shared processes, comprising: one or more processors; and memory, coupled to the one or more processors, and storing instructions, which, when executed by the one or more processors, cause the one or more processors to: receive a record of one or more first authorizing systems required to authorize execution of, or delegate the execution of, a first shared code segment of program code; determine the system is an authorizing system based on the received record of the one or more first authorizing systems; and authorize, after determining the system is an authorizing system, the execution of the first shared code segment to cause progression to a second shared code segment of the program code for which one or more second authorizing systems are required to authorize execution or delegate execution.
  2. 2 . The system of claim 1 , wherein the instructions further cause the one or more processors to execute the first shared code segment after authorizing the execution of the first shared code segment.
  3. 3 . The system of claim 1 , wherein, authorizing the execution of the first shared code segment includes authorizing execution of the first shared code segment by another system.
  4. 4 . The system of claim 1 , wherein the instructions further cause the one or more processors to determine an anticipated execution result of the first shared code segment satisfies shared authorization conditions, wherein authorizing the execution of the first shared code segment occurs after determining the anticipated execution result of the first shared code segment satisfies shared authorization conditions.
  5. 5 . The system according to claim 4 wherein the shared authorization conditions require that any possible execution result stemming from execution of the first shared code segment satisfies shared execution conditions.
  6. 6 . The system of claim 5 , wherein the shared execution conditions require at least one of: authorization of the execution of the first shared code segment be traceable back to a delegating system that requested a delegated authorization by way of a preceding transaction proposal request; or any possible execution result stemming from execution of any code segments created, activated, or executed by the execution of the first shared code segment satisfies shared execution path conditions.
  7. 7 . A method for shared execution of one or more shared processes, comprising: receiving, by one or more processors of a system, a record of one or more first authorizing systems required to authorize execution of, or delegate the execution of, a first shared code segment of program code; determining, by the one or more processors, the system is an authorizing system based on the received record of the one or more first authorizing systems; and authorizing, by the one or more processors, after determining the system is an authorizing system, the execution of the first shared code segment to cause progression to a second shared code segment of the program code for which one or more second authorizing systems are required to authorize execution or delegate execution.
  8. 8 . The method of claim 7 , further comprising executing the first shared code segment after authorizing the execution of the first shared code segment.
  9. 9 . The method of claim 7 , wherein, authorizing the execution of the first shared code segment includes authorizing execution of the first shared code segment by another system.
  10. 10 . The method of claim 7 , further comprising: determining an anticipated execution result of the first shared code segment satisfies shared authorization conditions, wherein authorizing the execution of the first shared code segment occurs after determining the anticipated execution result of the first shared code segment satisfies shared authorization conditions.
  11. 11 . The method of claim 10 , wherein the shared authorization conditions require that any possible execution result stemming from execution of the first shared code segment satisfies shared execution conditions.
  12. 12 . The method of claim 11 , wherein the shared execution conditions require at least one of: authorization of the execution of the first shared code segment be traceable back to a delegating system that requested a delegated authorization by way of a preceding transaction proposal request; or any possible execution result stemming from execution of any code segments created, activated, or executed by the execution of the first shared code segment satisfies shared execution path conditions.
  13. 13 . A non-transitory, machine readable medium storing instructions, that when performed by a computer system causes the computer system to perform a method, the method comprising: receiving, by one or more processors of a system, a record of one or more first authorizing systems required to authorize execution of, or delegate the execution of, a first shared code segment of program code; determining, by the one or more processors, the system is an authorizing system based on the received record of the one or more first authorizing systems; and authorizing, by the one or more processors, after determining the system is an authorizing system, the execution of the first shared code segment to cause progression to a second shared code segment of the program code for which one or more second authorizing systems are required to authorize execution or delegate execution.
  14. 14 . The non-transitory, machine readable medium of claim 13 , wherein the method further comprises executing the first shared code segment after authorizing the execution of the first shared code segment.
  15. 15 . The non-transitory, machine readable medium of claim 13 , wherein, authorizing the execution of the first shared code segment includes authorizing execution of the first shared code segment by another system.
  16. 16 . The non-transitory, machine readable medium of claim 13 , further comprising: determining an anticipated execution result of the first shared code segment satisfies shared authorization conditions, wherein authorizing the execution of the first shared code segment occurs after determining the anticipated execution result of the first shared code segment satisfies shared authorization conditions.
  17. 17 . The non-transitory, machine readable medium of claim 16 , wherein the shared authorization conditions require that any possible execution result stemming from execution of the first shared code segment satisfies shared execution conditions.
  18. 18 . The non-transitory, machine readable medium of claim 17 , wherein the shared execution conditions require at least one of: authorization of the execution of the first shared code segment be traceable back to a delegating system that requested a delegated authorization by way of a preceding transaction proposal request; or any possible execution result stemming from execution of any code segments created, activated, or executed by the execution of the first shared code segment satisfies shared execution path conditions.

Description

CROSS REFERENCE TO RELATED APPLICATIONS The present application continuation of U.S. patent application Ser. No. 17/172,658, filed on Feb. 10, 2021, which is a continuation of U.S. Pat. No. 10,979,299, filed on Apr. 22, 2019, which is a 371 of International Application No. PCT/IB2018/058375, filed on Oct. 26, 2018, which claims priority from Australian Patent Application No. 2017904367, filed on Oct. 27, 2017, the entire contents of which are incorporated herein by reference. TECHNICAL FIELD The present disclosure relates to a computer system, comprising a plurality of nodes, for distributed privacy-preserving shared execution of one or more shared processes. The disclosure also relates to a computer implemented method for performing distributed privacy-preserving shared execution. BACKGROUND A distributed system has components located on networked computers that communicate and coordinate their actions by passing messages. The components may interact with other components in order to achieve a common goal. However, distributed privacy-preserving shared executions on distributed and privacy-preserving systems can be problematic as each computer or node has only a limited or incomplete view of the system. Each computer or node may know only one part of the program code or input data. Each computer may be able to certifiably verify and execute a program with part of the input data that is known to them, but then each computer would still not be able to know with any assurance whether the certified verifications and executions performed by any other computer are valid (in the sense that the code verified and executed was validly part of the intended program code that was to be verified and executed) and accurate (in the sense that the verification and execution of the code was correct). Furthermore, coordinating distributed computers so as to be able to provide validity and accuracy of verification and executions is difficult. Any discussion of documents, acts, materials, devices, articles or the like which has been included in the present specification is not to be taken as an admission that any or all of these matters form part of the prior art base or were common general knowledge in the field relevant to the present disclosure as it existed before the priority date of each of the appended claims. Throughout this specification the word “comprise”, or variations such as “comprises” or “comprising”, will be understood to imply the inclusion of a stated element, integer or step, or group of elements, integers or steps, but not the exclusion of any other element, integer or step, or group of elements, integers or steps. SUMMARY A computer system for distributed shared execution of one or more shared processes, comprising: first program code for the one or more shared processes that comprises one or more shared code segments shared between a first authorizing node and a second authorizing node, wherein the one or more shared code segments are executable by one or more executing nodes; a distributed ledger that provides a record of valid code segments of the program code; and second program code comprising instructions that, when executed by the first and/or second authorizing nodes, validates that an anticipated execution result of the one or more shared code segments satisfies shared authorization conditions and, if satisfied, authorizes the execution of the one or more shared code segments by the one or more executing nodes. In this system, nodes are able to pre-agree in a verifiable manner to existing or new obligations they enter into. Shared code segments contain obligations and which may involve providing execution of code, or providing input/output to ensure code executes. Nodes are able commit data or code in a non-repudiable fashion to the distributed ledger (utilising for example Merkle proofs), while allowing the later selective revealing of that secret data or code where required. This enables system wide coordination of the execution of shared processes whereby nodes can act, and authorize, execution of shared code segments and verify execution of code. There is also disclosed a computer system for distributed shared execution of one or more shared processes, comprising: first program code for the one or more shared processes that comprises one or more shared code segments shared between a first authorizing node and a second authorizing node, wherein the one or more shared code segments are executable by one or more executing nodes; a distributed ledger that provides a record of the execution of shared code segments of the program code; and second program code comprising instructions that, when executed by the first and/or second authorizing nodes, validates that an anticipated execution result of the one or more shared code segments satisfies shared authorization conditions and, if satisfied, authorizes the execution of the one or more shared code segments by the one or more executing nodes. In som