# US 2019/0173884 A1 · Blockchain-implemented method and system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0173884 A1
- Document ID: US20190173884A1
- Status: Published application
- Kind: A1
- Application number: 16/320,954
- Filed: 2017-07-21
- Published: 2019-06-06
- Earliest claimed: 2016-07-29
- Assignees: nChain Holdings Limited
- Applicants: nChain Holdings Limited
- Inventors: Stephane Vincent
- Web page: https://patentgrep.com/patent/US20190173884A1

## CPC

- H04L 63/10: {for controlling access to devices or network resources}
- G06Q 10/06: Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q 20/065: {using e-cash}
- G06Q 20/0658: {e-cash managed locally}
- G06Q 20/14: specially adapted for billing systems
- G06Q 20/308: {using the Internet of Things}
- G06Q 20/3829: {involving key management}
- G06Q 20/389: {Keeping log of transactions for guaranteeing non-repudiation of a transaction}
- G06Q 30/0645: Rental transactions; Leasing transactions
- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- H04L 9/0643: {Hash functions, e.g. MD5, SHA, HMAC or f9 MAC}
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- H04L 63/0428: {wherein the data content is protected, e.g. by encrypting or encapsulating the payload}
- H04L 63/0442: {wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for public-key encryption H04L9/30)}
- H04L 63/126: {the source of the received data}
- H04L 67/12: specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04W 12/03: Protecting confidentiality, e.g. by encryption
- H04W 12/08: Access security
- G06Q 2220/00: Business processing using cryptography
- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 2209/56: Financial cryptography, e.g. electronic payment or e-cash
- H04W 4/70: Services for machine-to-machine communication [M2M] or machine type communication [MTC]
- H04W 4/80: Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- 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
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

The computer-implemented invention provides a method and corresponding system for controlling access to and/or use of an internet-enabled resource. The invention uses a distributed electronic ledger such as, for example, the Bitcoin blockchain. The resource may be an IoT device or system. Access to the resource is permitted or enabled upon provision of a cryptographic key e.g. a private key which corresponds to a public key which has been stored in memory. In one embodiment, the public key is stored in a DHT. Access to the resource is prevented or disabled by removing the public key from memory, and using a redeem script of a blockchain Transaction to spend a tokenised output of a further blockchain Transaction. The process of communicating the requisite cryptographic keys and transferring funds is performed via the blockchain. The keys are communicated as tokens in the metadata of transactions scripts. In use, when access is requested by the user, an encrypted message is sent to the resource. The message has been encrypted using the user's private key. If the resource can use the previously communicated public key to decrypt the message, access can be granted. The invention is particularly suited for use in situations where temporary access or use of the resource is to be granted eg rental scenarios.

## Claims

### Claim 1

A method of controlling access to and/or use of an internet-enabled resource, comprising the steps:
generating a first blockchain transaction (TxB) comprising:
i) a token representing a smart contract relating to the access to and/or use of the internet-enabled resource; and
ii) at least one output for transferring value from a user of the internet-enabled resource to a controller of the resource and/or a third party;
communicating, to the internet-enabled resource, a public key associated with the user;
communicating, to the resource, a message or other data which has been encrypted using a private key; and
allowing or preventing access to and/or use of the internet-enabled resource dependent upon successful decryption of the message or other data using said public key.

### Claim 2 (depends on 1)

A method according to claim 1 wherein:
the third party is an escrow agent; and/or
the smart contract comprises details or conditions relating to an agreement for use of or access to the resource; and/or
the transfer of value is a payment of funds such as an amount of currency.

### Claim 3 (depends on 1)

A method according to claim 1 wherein:
the first blockchain transaction (TxB) comprises an output having a redeem script which includes a token that represents the public key associated with the user.

### Claim 4 (depends on 3)

A method according to claim 3 and comprising the step of accessing or obtaining the public key from the token and storing it in memory.

### Claim 5 (depends on 1)

A method according to claim 1 wherein the first transaction (TxB) is generated by the resource controller and sent to the user for modification.

### Claim 6 (depends on 5)

A method according to claim 5 wherein the user modifies the first blockchain transaction by adding at least one output to the first transaction.

### Claim 7 (depends on 1)

A method according to claim 1 and comprising the step of submitting the first transaction (TxB) to a blockchain network.

### Claim 8 (depends on 1)

A method according to claim 1 wherein the data that has been encrypted is sent to the internet-enabled resource by the user, using a handheld or portable computing device.

### Claim 9 (depends on 1)

A method according to claim 1 and comprising the step of:
submitting a second transaction (TxC) to a blockchain network, the second transaction comprising:
an output which sends a token to the resource, wherein the token represents or comprises the public key associated with the user, or a hash of said public key.

### Claim 10 (depends on 9)

A method according to claim 9 and comprising the step of:
removing a previously stored version of the user's public key from memory based upon the public key represented by the token of the second transaction (TxC).

### Claim 11 (depends on 9)

A method according to claim 9 and comprising the step of:
detokenizing the token of the second transaction (TxC) by creating a third transaction (TxD) which comprises an input that spends the output of the second transaction (TxC).

### Claim 12 (depends on 7)

A method according to claim 7 wherein the submission of the first (TxB), second (TxC) and/or third (TxD) transactions to the blockchain network is automated, wherein the time of submission is dependent upon an instruction or setting provided within the respective transaction.

### Claim 13 (depends on 1)

A method according to claim 1 wherein the first blockchain transaction (TxB) comprises:
an output for transferring a deposit payment to the resource controller; and/or
an output for transferring a payment to an escrow agent.

### Claim 14 (depends on 1)

A method according to claim 1 and further comprising the steps of:
storing the public key, or a reference to its location, in a storage resource; wherein the storage resource is a Distributed Hash Table, or memory provided in association with or accessible by the resource; and/or
preventing further access to and/or use of the internet-enabled resource by:
removing the public key from the storage resource; and
using a redeem script of a blockchain Transaction to spend a tokenised output of another blockchain Transaction.

### Claim 15 (depends on 1)

A method according to claim 1 wherein the internet-enabled resource is an IoT device.

### Claim 16 (depends on 1)

A method according to claim 1 wherein the step of allowing or preventing access to and/or use of the internet-enabled resource is dependent upon verification performed by the resource, in which the resource attempts to use a stored version of the user's public key to read the data that has been encrypted.

### Claim 17 (depends on 1)

A computer-implemented system arranged to perform the method of claim 1.

### Claim 18 (depends on 17)

A system according to claim 17 wherein the system comprises:
an internet-enabled resource, wherein the resource is an IoT device or apparatus;
a blockchain; and
an internet-enabled client device associated with a user and arranged to store a cryptographic key associated with the user, wherein the client device is a portable or handheld computing device.

### Claim 19 (depends on 17)

A system according to claim 17 wherein the internet-enabled resource is arranged to generate a blockchain Transaction and provide the Transaction to a blockchain network.
