Cryptographic applications for a blockchain system

US10447478B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10447478-B2
Application numberUS-201615296953-A
CountryUS
Kind codeB2
Filing dateOct 18, 2016
Priority dateJun 6, 2016
Publication dateOct 15, 2019
Grant dateOct 15, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method is provided for delegating behavior of a smart contract associated with a blockchain to code that is not part of the blockchain. A system directs execution by a virtual machine of the smart contract. During execution of the smart contract, the smart contract sends to a cryptlet container service, via a cryptodelegate, a request to delegate a behavior to a cryptlet that executes on an attested host. During execution the cryptlet container service identifies a host for executing code of the cryptlet in an appropriate cryptlet container. The cryptlet container service directs the identified host to execute the code of the cryptlet to perform the delegated behavior. After the delegated behavior is performed, the cryptlet container service receives from the cryptlet a response to the requested behavior. The cryptlet container service sends the response to the smart contract on the blockchain that is verified by the cryptodelegate.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer system for delegating behavior associated with a contract installed on a blockchain to a non-blockchain application, the computer system comprising: one or more hardware processors; one or more non-transitory computer-readable storage media storing computer-executable instructions that when executed by the one or more hardware processors, cause the one or more hardware processor to: execute a cryptodelegate to: receive from the contract installed on a blockchain executing on a virtual machine, an identity of a cryptlet and a requested behavior to be performed by the cryptlet, provide to a cryptlet container service the identity and the requested behavior, receive from the cryptlet container service a response generated by the cryptlet performing the requested behavior, and send to the contract, the response, wherein the cryptlet is a cryptrographic applet that is to perform the requested behavior on behalf of the contract installed on the blockchain; and execute the cryptlet container service to: store information relating to registered cryptlets including references to the registered cryptlets, receive from the cryptodelegate the identity and the requested behavior, identify a host for executing the cryptlet container and the cryptlet, authenticate the cryptlet, provide the requested behavior to the cryptlet, receive the response generated by the cryptlet, and send to the blockchain and verified by the cryptodelegate, the response. 2. The computer system of claim 1 wherein the cryptodelegate is executed by the virtual machine. 3. The computer system of claim 1 wherein the requested behavior is to send events to the contract. 4. The computer system of claim 1 wherein the instructions are further to cause the one or more hardware processors to execute the cryptodelegate to receive code of the cryptlet from the contract and provide the code of the cryptlet to the cryptlet container service and wherein the instructions are further to cause the one or more hardware processors to execute the cryptlet container service to verify the code of the cryptlet by generating a hash of the code of the cryptlet and checking that the code of the cryptlet matches a hash provided by the contract, to record the code of the cryptlet in a cryptlet registration blockchain, and to direct an attested host to execute the cryptlet to perform the requested behavior. 5. The computer system of claim 1 wherein the instructions are further to cause the one or more hardware processors to execute the cryptodelegate to record in a blockchain associated with the contract, an indication of each request by and response provided to the contract. 6. The computer system of claim 1 wherein the contract provides to the one or more hardware processors an indication of a host that is to execute the cryptlet. 7. The computer system of claim 1 wherein the cryptlet executes within an environment provided by a cryptlet container. 8. The computer system of claim 1 wherein the cryptlet container executes within a protected enclave environment for secure, tamper proof operation. 9. The computer system of claim 1 wherein the contract provides to the one or more hardware processors, configuration information for the cryptlet. 10. The computer system of claim 9 wherein the configuration information includes an interface definition for the cryptlet and specification of attributes of the cryptlet. 11. A method performed by a computing system, the method comprising: receiving, from a smart contract being executed by a virtual machine, a request to register a contract cryptlet for performing behavior on behalf of the smart contract, code of the contract cryptlet, and an indication of an attested host to execute the code of the contract cryptlet, wherein the contract cryptlet is separate from the smart contract and is a cryptographic applet that is to perform the behavior on behalf of the smart contract being executed by the virtual machine; verifying the code of the contract cryptlet; storing the code of the contract cryptlet in a cryptlet registration blockchain and data storage; receiving, from the smart contract, a request for the contract cryptlet to perform the behavior; directing the contract cryptlet to execute on the attested host; and sending to the contract cryptlet executing at the attested host the request to perform the behavior; wherein communications with the smart contract and the contract cryptlet are via secure channels. 12. The method of claim 11 wherein verifying the code comprises generating a hash of the code of the contract cryptlet and comparing the hash to a public key associated with the code of the contract cryptlet. 13. The method of claim 11 wherein receiving the request from the smart contract further comprises receiving the request from the smart contract via a cryptodelegate that is executed by the virtual machine. 14. The method of claim 13 wherein the cryptodelegate records in a blockchain on which the smart contract is installed an indication of communication with the smart contract and the cryptodelegate. 15. The method of claim 11 wherein the virtual machine executes on a node of a blockchain on which the smart contract is installed and the attested host is a computer that is external to nodes of the blockchain on which the smart contract is installed. 16. The method of claim 11 wherein the cryptlet registration blockchain is separate from a blockchain on which the smart contract is installed. 17. The method of claim 11 wherein code of the smart contract and the cryptlet are approved by members of a consortium.

Assignees

Inventors

Classifications

  • G06F21/51Primary

    at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability · CPC title

  • Proxy, i.e. using intermediary entity to perform cryptographic operations · CPC title

  • Financial cryptography, e.g. electronic payment or e-cash · CPC title

  • involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD · CPC title

  • using cryptographic hash functions · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10447478B2 cover?
A method is provided for delegating behavior of a smart contract associated with a blockchain to code that is not part of the blockchain. A system directs execution by a virtual machine of the smart contract. During execution of the smart contract, the smart contract sends to a cryptlet container service, via a cryptodelegate, a request to delegate a behavior to a cryptlet that executes on an a…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F21/51. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 15 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).