WO2022240361A1 - Method and system for facilitating a transaction at one or more nodes of a blockchain network - Google Patents
Method and system for facilitating a transaction at one or more nodes of a blockchain network Download PDFInfo
- Publication number
- WO2022240361A1 WO2022240361A1 PCT/SG2022/050309 SG2022050309W WO2022240361A1 WO 2022240361 A1 WO2022240361 A1 WO 2022240361A1 SG 2022050309 W SG2022050309 W SG 2022050309W WO 2022240361 A1 WO2022240361 A1 WO 2022240361A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- bulk cargo
- blockchain
- smart contract
- request
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000012546 transfer Methods 0.000 claims abstract description 85
- 238000012545 processing Methods 0.000 claims abstract description 31
- 230000004044 response Effects 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims description 30
- 230000002123 temporal effect Effects 0.000 claims description 19
- 238000013475 authorization Methods 0.000 claims description 11
- 238000012384 transportation and delivery Methods 0.000 description 40
- 238000004891 communication Methods 0.000 description 34
- 238000004590 computer program Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 18
- 239000000446 fuel Substances 0.000 description 10
- 230000009471 action Effects 0.000 description 9
- 239000007787 solid Substances 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000012550 audit Methods 0.000 description 3
- 239000000295 fuel oil Substances 0.000 description 3
- 239000007788 liquid Substances 0.000 description 3
- 239000010747 number 6 fuel oil Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 238000013474 audit trail Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0609—Buyer or seller confidence or 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
- G06Q30/00—Commerce
- G06Q30/04—Billing or invoicing
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Definitions
- the present disclosure generally relates to a method and a system for facilitating a transaction at one or more nodes of a blockchain network.
- Maritime trade and transportation can be vulnerable to commercial fraud as a maritime trade transaction typically involves several parties - e.g. buyer, seller, ship-owner, charterer, ship’s master or crew, insurer, banker, broker or agent.
- Maritime fraud can occur when one of these parties succeeds in deceiving another as to some fact or circumstance in connection with maritime activities which enables the party to obtain money or goods unjustly.
- Maritime fraud can involve misuse, falsification and/or tampering of commercial contracts and documents, such as bills of lading.
- several parties can act in collusion to defraud another.
- Bulk cargo trade, and in particular liquid bulk cargo trade e.g. bunkering - the supply of marine fuel for use in ships
- a method for facilitating a transaction at one or more nodes of a blockchain network The one or more nodes are configured to manage a blockchain.
- the method includes receiving instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, receiving transaction information including bulk cargo transfer data and geolocation data, processing the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, and in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, recording the transaction information on the blockchain.
- a system for facilitating a transaction at one or more nodes of a blockchain network The one or more nodes are configured to manage a blockchain.
- the system includes a processing device configured to receive instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, receive transaction information comprising bulk cargo transfer data and geolocation data, process the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules and in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, record the transaction information on the blockchain.
- FIG. 1 shows a schematic diagram of a blockchain network, in accordance with embodiments of the disclosure.
- FIG. 2 shows a schematic diagram of a computing device configured to implement a node in a blockchain network, in accordance with embodiments of the disclosure.
- FIGs. 3A and 3B show a flowchart illustrating an example of a method for facilitating a transaction at one or more nodes of a blockchain network, in accordance with embodiments of the disclosure.
- FIG. 4 shows a schematic diagram of a blockchain network, in accordance with embodiments of the disclosure.
- FIG. 5 shows a flowchart illustrating an exchange of information in a blockchain network, in accordance with embodiments of the disclosure.
- FIGs. 6A, 6B and 6C show schematic diagrams of the blockchain network of Fig. 4, in accordance with embodiments of the disclosure.
- FIG. 7 shows a schematic diagram illustrating an exchange of information in a blockchain network, in accordance with embodiments of the disclosure.
- FIG. 8 shows another schematic diagram illustrating an exchange of information in a blockchain network, in accordance with embodiments of the disclosure.
- FIG. 9 shows another schematic diagram illustrating an exchange of information in a blockchain network, in accordance with embodiments of the disclosure.
- FIG. 10 shows another schematic diagram illustrating an exchange of information with a blockchain network, in accordance with embodiments of the disclosure.
- FIG. 11 shows a schematic diagram of an example of a computing device used to implement a node in a blockchain system, in accordance with embodiments of the disclosure.
- Embodiments of the disclosure seek to provide methods and systems for facilitating a transaction at one or more nodes of a blockchain network, the one or more nodes configured to manage a blockchain.
- the methods and devices can receive information associated with the transaction, use the blockchain to record the information, and use smart contracts (i.e. computer protocols implemented in the form of computer code that are incorporated into the blockchain) to facilitate, verify, or enforce the negotiation and/or performance of the transaction.
- smart contracts i.e. computer protocols implemented in the form of computer code that are incorporated into the blockchain
- the methods and devices can ensure that information is immutable and tamperproof, and can eliminate the need for human interaction in processes associated with the transaction.
- the transactions can relate to bulk cargo trade, and in particular, liquid bulk cargo trade (e.g. bunkering - the supply of marine fuel for use in ships).
- the methods and devices can set up a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, and can process transaction information including bulk cargo transfer data and geolocation data using the smart contract to verify that a bulk cargo has been transferred according to the set of rules.
- the methods and devices can, in response to a determination that the bulk cargo has been transferred according to the set of rules, record the transaction information on the blockchain and generate a smart invoice associated with transfer of the bulk cargo.
- the methods and devices can facilitate the negotiation leading to the transfer of bulk cargo between a seller and a buyer through a trade smart contract. The trade smart contract, once
- the methods and devices in accordance with embodiments of the disclosure can store and process information with a data structure that eliminates the need for human interaction and prevent tampering and/or manipulation by malicious actors.
- the smart document (e.g. the smart contract, the smart invoice and the trade smart contract) can include a plurality of subroutines or functions, each of which can be a sequence of program instructions that performs a specific task.
- the smart documents can be operational code that can be fully or partially executed without human interaction.
- a preceding smart document can include instructions to generate a subsequent smart document, based on instructions of the preceding smart document and as a result of a positive determination that conditions defined in the preceding smart document are met.
- Digitally signed information received from trusted hardware can include, but is not limited to, a copy of the smart document that is signed by a private key of the user indicative of agreement to the terms and/or rules of the smart document, and digitally signed information from data acquisition devices (e.g. sensors and measuring instruments such as mass flow meters etc.). Digitally signed information can also include mass flow data calculated with sounding methods (e.g. sounding or measuring tapes), which can determine the volume of bulk cargo transferred.
- the subsequent smart document can include a cryptographic hash of one or more preceding smart documents.
- a smart document in accordance with embodiments of the disclosure can be generated responsive to the fulfilment of conditions defined in a preceding smart document.
- Information associated with the fulfilment of the defined conditions can be sent by trusted equipment or data acquisition devices (e.g. processing devices, sensors and/or measuring instruments) and can be verified by one or more nodes of the blockchain network.
- trusted equipment or data acquisition devices e.g. processing devices, sensors and/or measuring instruments
- the use of multiple smart documents that can execute operational code based on machine data from trusted hardware or data acquisition devices, and tied to, for example, movement and storage of bulk cargo, can advantageously eliminate human interaction, reduce attack surface and improve security of the blockchain network.
- a first smart contract associated with a bulk cargo transaction can be configured to execute only when machine-derived data trigger and complete the first smart contract.
- the first smart contract can, in turn, generate a key that can activate the second smart contract which can rely on machine-generated data to trigger and complete the smart
- the second smart contract can lead to a subsequent third smart contract, and this can be carried out n-times depending on transaction requirements.
- a smart contract executing on the blockchain can receive information from trusted device(s) along a supply chain and can verify an action in a transaction without human participation, the smart contract can in turn generate subsequent smart contracts which can lead to eventual generation of smart documents (e.g. transfer receipts, invoice, and other trade documentation).
- the present specification also discloses apparatus for performing the operations of the methods.
- Such apparatus may be specially constructed for the required purposes or may include a computer or other computing device selectively activated or reconfigured by a computer program stored therein.
- the algorithms and displays presented herein are not inherently related to any particular computer or other apparatus.
- Various machines may be used with programs in accordance with the teachings herein.
- the present specification also implicitly discloses a computer program, in that it would be apparent to the person skilled in the art that the individual steps of the method described herein may be put into effect by computer code.
- the computer program is not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the teachings of the disclosure contained herein.
- the computer program is not intended to be limited to any particular control flow. There are many other variants of the computer program, which can use different control flows without departing from the spirit or scope of the disclosure.
- the computer readable medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a computer.
- the computer readable medium may also include a hard-wired medium such as exemplified in the Internet system, or wireless medium such as exemplified in the mobile telephone system.
- the computer program when loaded and executed on a computer effectively results in an apparatus that implements the steps of the preferred method.
- the term ‘server’ may mean a single computing device or a computer network of a plurality of interconnected computing devices which operate together to perform one or more functions.
- the server may be contained within a single hardware unit or be distributed among several or many different hardware units.
- the term “configured to” is used in the specification in connection with systems, apparatus, and computer program components.
- a system of one or more computers to be configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions.
- one or more computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions.
- special-purpose logic circuitry to be configured to perform particular operations or actions means that the circuitry has electronic logic that performs the operations or actions.
- a blockchain is a data structure that can store information, e.g., transactions, in a manner that can prevent tampering and manipulation of the data by malicious actors. The transactions stored in this manner can be immutable and subsequently verified.
- a blockchain typically includes one or more blocks. Each block is linked to a preceding block before it in the blockchain by including a cryptographic hash of the preceding block. Each block also may include a timestamp, its own cryptographic hash, and one or more transactions. As each block contains a hash of the preceding block, the linked blocks forms a chain, and the iterative process of generating a block with the preceding hash value confirms integrity of preceding blocks.
- the transactions which generally have already been verified by the nodes of the blockchain system, may be hashed and encoded into a data structure, such as a Merkle tree.
- a Merkle tree data at leaf nodes of the tree is hashed, and all hashes in each branch of the tree may be concatenated at a root of the branch. This process continues up the tree to the root of the entire tree, which stores a hash that is representative of all data in the tree.
- a hash purporting to be of a transaction stored in the tree can be quickly verified by determining whether it is consistent with the structure of the tree.
- a blockchain network includes a network of computing nodes that manage, update, and maintain one or more blockchains.
- the network may be a public blockchain network, a private blockchain network, or a consortium blockchain network (also known as a federated blockchain).
- Numerous entities can operate in a public blockchain network, and each of the entities can operate one or more nodes in the public blockchain network. Accordingly, the public blockchain network can be considered a public network with respect to the participating entities.
- a majority of entities (nodes) must sign every block for the block to be valid and added to the blockchain of the blockchain network.
- Examples of public blockchain networks include particular peer-to-peer payment networks that leverage a distributed ledger, referred to as blockchain.
- a public blockchain network typically supports public transactions.
- a public transaction is announced to all nodes in the public blockchain network, and is stored in a global blockchain.
- a global blockchain is a blockchain replicated across all nodes, with all nodes in consensus with respect to the global blockchain.
- consensus protocols include proof-of-work (POW) (e.g., implemented in the some crypto-currency networks), proof-of-stake (POS), and proof-of- authority (POA).
- a private blockchain network is typically provided for a particular entity that centrally controls read and write permissions.
- the entity controls nodes that are able to participate in
- private blockchain networks are generally referred to as permissioned networks that place restrictions on who is allowed to participate in the network, and on their level of participation (e.g., only in certain transactions).
- Various types of access control mechanisms can be used (e.g., a central authority can control admission).
- a consortium blockchain network (also known as a federated blockchain network) is private among the participating entities.
- the consensus process is controlled by an authorised set of nodes, with one or more nodes being operated by a respective entity.
- a consortium of four entities can operate a consortium blockchain network, each of which operates at least one node in the consortium blockchain network. Accordingly, the consortium blockchain network can be considered a private network with respect to the participating entities.
- each entity (node) must sign every block in order for the block to be valid, and added to the blockchain.
- at least a sub-set of entities (nodes) e.g., at least two entities
- Fig. 1 shows a schematic diagram of a blockchain network, in accordance with embodiments of the disclosure.
- the blockchain network 100 can include a plurality of nodes, e.g., nodes 102, 104, 106, 108, configured to manage a blockchain 110.
- the nodes 102, 104, 106, 108 can form the network 100, such as a peer-to-peer (P2P) network.
- P2P peer-to-peer
- Each of the nodes 102, 104, 106, 108 can be a computing device, such as a server configured to store a copy of the blockchain 110, or can be software running on the computing device, such as a process or an application.
- Each of the nodes 102, 104, 106, 108 can have a unique identifier (e.g. a digital signature employing asymmetric cryptography).
- the blockchain 110 can include a list of records in the form of data blocks, such as blocks B1-B4 in Fig. 1.
- Each of the blocks B1-B4 can include metadata such as a timestamp, a cryptographic hash of a previous block, and data of the present block, which can be transactions or information associated with verification programs such as smart contracts.
- block B4 may include metadata, a cryptographic hash of block B3, transaction data of block B3 and a cryptographic hash of the transaction data.
- a hashing operation may be performed on the previous block to generate the cryptographic hash of the previous block.
- the hashing operation can convert inputs of various lengths into cryptographic outputs of a fixed length through a hash algorithm, such as SHA-256.
- the nodes 102, 104, 106, 108 can be configured to perform an operation on the blockchain 110. For example, when a node, e.g., the node 102, wants to store new data onto the blockchain 110, the node 102 may generate a new block to be added to the blockchain 120 and broadcast the new block to other nodes, e.g., the nodes 104, 106, 108, in the network
- the other nodes may determine to accept the new block, such that the node 102 and the other nodes may add the new block to their respective copies of the blockchain 110. As this process repeats, more and more blocks of data may be added to the blockchain 110.
- Fig. 2 illustrates a schematic diagram of a computing device 200 for implementing a node, e.g., the node 102 shown in Fig. 1, in a blockchain system, according to an embodiment.
- the computing device 200 can include a communication interface 202, a processor 204, and a memory 206.
- the communication interface 202 can facilitate communications between the computing device 200 and devices implementing other nodes in the network e.g., nodes 102, 104, 106, 108 shown in Fig. 1.
- the communication interface 202 is configured to support one or more communication standards, such as an Internet standard or protocol, e.g.
- the communication interface 202 can include one or more of a Local Area Network (LAN) card, a cable modem, a satellite modem, a data bus, a cable, a wireless communication channel, a radio-based communication channel, a cellular communication channel, an Internet Protocol (IP) based communication device, or other communication devices for wired and/or wireless communications.
- LAN Local Area Network
- IP Internet Protocol
- the communication interface 202 can be based on public cloud infrastructure, private cloud infrastructure, hybrid public/private cloud infrastructure.
- the processor 204 can include one or more dedicated processing units, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or various other types of processors or processing units.
- the processor 204 is coupled with the memory 206 and is configured to execute instructions stored in the memory 206.
- the memory 206 may store processor-executable instructions and data, such as a copy of the blockchain 110 in Fig. 1.
- the memory 206 may include any type of volatile or non-volatile memory devices, or a combination thereof, such as a static random-access memory (SRAM), an electrically erasable programmable read-only memory (EEPROM), an erasable programmable read-only memory (EPROM), a programmable read-only memory (PROM), a read-only memory (ROM), a magnetic memory, a flash memory, or a magnetic or optical disk.
- SRAM static random-access memory
- EEPROM electrically erasable programmable read-only memory
- EPROM erasable programmable read-only memory
- PROM programmable read-only memory
- ROM read-only memory
- magnetic memory a magnetic memory
- flash memory or a magnetic or optical disk.
- Users of a blockchain network e.g., the blockchain network 100, can use the blockchain network to record various types of information. For instance, one or more users
- the 10 can use the blockchain network 100 to record and process information, to facilitate transactions associated with transfer of bulk cargo, e.g. for supply of marine fuel for use in ships (also known as bunkering).
- the one or more users can agree to record the contractual agreement on the blockchain 110 so that the blockchain network 110 can process and verify whether the one or more users adhere to the rules that they have agreed to.
- the blockchain 110 can use one or more smart contracts executing on the blockchain 110 to provide the verification. Smart contracts are computer protocols implemented in the form of computer code that are incorporated into the blockchain 110, to facilitate, verify, or enforce the negotiation and/or performance of contracts.
- the users of the blockchain 110 can program agreed terms (e.g., rules associated with transfer of bulk cargo, such as quantity, price and terms of delivery) into a smart contract using a programming language, such as C++, Java, Solidity, Python, etc., and use the smart contract to verify whether the bulk cargo has been transferred according to the agreed terms.
- the smart contract can include a plurality of subroutines or functions, each of which can be a sequence of program instructions that performs a specific task.
- the smart contract can be operational code that can be fully or partially executed without human interaction.
- a preceding smart contract can include instructions to generate a subsequent smart contract, based on instructions of the preceding smart contract and as a result of fulfilment of conditions defined in the preceding smart contract.
- Information indicative of the fulfilment of conditions can include digitally signed information (e.g. data sets) received from trusted hardware or data acquisition devices (e.g. sensors, measuring instruments such as mass flow meters, automatic identification system (AIS) transponders etc.). Digitally signed information can also include mass flow data calculated with sounding methods (e.g. sounding or measuring tapes), which can determine the volume of bulk cargo transferred.
- the automatic identification system (AIS) is an automatic tracking system that uses transceivers on ships and is used by vessel traffic services (VTS). An AIS transponder can provide information such as identification, position, course, and speed of a ship to other ships and coastal authorities.
- the blockchain 110 can accept a smart contract defining the agreed terms if all users who are parties to the transaction indicate that they agree with the terms expressed in the smart contract.
- the users can indicate that they agree with the terms expressed in the smart contract by signing the smart contract using their private key.
- the users can indicate that they agree with the terms expressed in the smart contract by submitting a copy of the smart contract for recordation on the blockchain 110.
- the users can indicate that they agree with the terms expressed in the smart contract to an administrator (or a trusted authority), and the administrator can submit the smart contract to the blockchain 110 after having determined all users who are
- Figs. 3A and 3B show a flowchart illustrating an example of a method 300 for facilitating a transaction at one or more nodes of a blockchain network, in accordance with embodiments of the disclosure.
- the method 300 can be implemented with the computing device 200 shown in Fig. 2.
- Figs. 3A and 3B are described in detail with reference to Figs. 4 and 5, which show a schematic diagram of a blockchain network 400 and a flowchart illustrating an exchange of information in the blockchain network 400 respectively.
- the blockchain network 400 in an embodiment of the disclosure can be managed by four entities comprising Trader A, Trader B, Supplier and Auditor, each operating one or more nodes 402, 404, 406, 408 in the network 400.
- the blockchain managed by the network 400 can be configured to include three smart contracts, i.e. a trade smart contract 410, a delivery note contract 412 and a smart invoice 414.
- the trade smart contract 410 and the delivery note contract 412 are also referred to as a request 410 and a smart contract 412 in the following paragraphs.
- the node 406 can be configured to receive bulk cargo transfer data 416, 418 (e.g. mass flow data, storage tank data, pump data, temperature gauge data etc.) and geolocation data 420 (e.g. automatic identification system (AIS) data, global positioning system (GPS) data etc.).
- AIS automatic identification system
- GPS global positioning system
- the mass flow data can be obtained from one or more mass flow meters.
- the mass flow data can be calculated with sounding methods (e.g. with sounding or measuring tapes), which can determine the volume of bulk cargo transferred.
- Fig. 5 shows the relationship of each smart contract (i.e. the trade smart contract 410, the delivery note contract 412 and the smart invoice 414) in an embodiment of the disclosure.
- Input parameters for the trade smart contract 410 can include a purchase order 502 from Trader A and a sales order 504 from Trader B.
- Input parameters for the delivery note contract 412 can include trade information 506 associated with the trade smart contract 410, bulk cargo transfer data 416, 418 (e.g. mass flow data, storage tank data, pump data, temperature gauge data etc.) and geolocation data 420 (e.g.
- Input parameters for the smart invoice 414 can include the trade information 506 associated with the trade smart contract 410 and bunker delivery note (BDN) 508 associated with the delivery note contract 412.
- the input parameters for the delivery note contract 412 can also include a cryptographic hash of the trade smart contract 410
- the input parameters for the smart invoice 414 can include the cryptographic hash of the trade smart contract 410 and/or the cryptographic hash of the delivery note contract 412.
- the method 300 for facilitating a transaction at one or more nodes of the blockchain network 400 can include step 302 of receiving a request 410
- the method 300 can also include step 304 of processing the request 410 to verify whether the request 410 is in accordance with an endorsement policy.
- the step 304 of processing the request 410 to verify whether the request 410 is in accordance with the endorsement policy can include receiving an authorisation from each of the one or more nodes associated with the request 410, the authorisation generated in response to a determination that the request is digitally signed by one of the one or more nodes.
- the traders A and B may be associated with the request 410, the endorsement policy may require that the request 410 to be digitally signed with a private key of originator of request 410.
- the step of receiving an authorisation from each of the one or more nodes associated with the request 410 can include receiving an authorisation from the nodes 402 and 404, in response to a determination that the request is digitally signed with the private key of the originator.
- the authorisation being an approval of the request 410 (i.e. the trade smart contract 410), can be a copy of the request 410 digitally signed by each of the nodes 402 and 404.
- the method 300 can also include step 306 of recording the request 410 on the blockchain 110 in response to a determination that the request 410 is in accordance with the endorsement policy.
- Step 308 includes receiving order information comprising the set of rules.
- the order information can include a purchase order and a sales order.
- the sales order may be transmitted by a node associated with Trader B and the purchase order may be transmitted by a node associated with Trader A.
- the set of rules may include contractual terms for a bunker fuel trade transaction.
- the set of rules can identify the seller, the buyer and include product specification (e.g. type of fuel, associated specification such as quality, brand etc.), product quantity, price and terms of delivery (e.g.
- Step 310 can include processing the set of rules and the recorded request 410 to generate the instructions to setup the smart contract 412.
- the step 310 can include generating a cryptographic hash of the set of rules and the recorded request 410, and including the cryptographic hash in the smart contract 412.
- step 312 can include receiving the instructions to setup the smart contract 412 for determining whether the bulk cargo has been transferred according to
- Step 314 can include receiving transaction information comprising bulk cargo transfer data 416, 418 and geolocation data 420.
- the transaction information can be transmitted by both bunkering tanker (i.e. supply ship) and receiving vessel.
- the transaction information can be transmitted by a terminal (e.g. an onshore supplier) and a vessel (e.g. a bunkering tanker receiving and storing the fuel supply).
- the bulk cargo transfer data 416, 418 can include, for example temporal mass flow data (i.e.
- the mass flow data 416, 418 can also include data from other sensors and/or meters, and can include, for example, storage tank data, pump data and temperature gauge data etc. relating to specific time instances, e.g. at start and end of delivery, and at predetermined intervals before, after and or during delivery.
- the geolocation data 420 can include, for example, automatic identification system (AIS) data, global positioning system (GPS) data etc. relating to specific time instances, e.g. at start and end of delivery, and at predetermined intervals before, after and or during delivery.
- AIS automatic identification system
- GPS global positioning system
- Step 316 can include processing the transaction information using the smart contract 412 to determine whether the bulk cargo transfer data 416, 418 and the geolocation data 420 are in accordance with the set of rules.
- Processing of the transaction information can include, for example, verifying whether the bulk cargo transfer data and the geolocation data fall within the respective variability thresholds associated with the bulk cargo transfer requirements and temporal geolocation requirements. This can include, for example, determining, using the geolocation data 420 whether both the bunkering tanker (i.e. supply ship) and the receiving vessel are in proximity to each other and at the location in time specified in the set of rules.
- step 318 can include recording the transaction information including the bulk cargo transfer data 416, 418 and the geolocation data 420 on the blockchain 110.
- the method 300 can further include step 320 of processing the instructions and recorded transaction information to generate a smart invoice associated with transfer of the bulk cargo.
- the step 320 can include generating a cryptographic hash of the instructions and recorded transaction, and including
- the smart invoice can further include the cryptographic hash of the set of rules and the recorded request 410.
- Fig. 6A shows a schematic diagram of the blockchain network 400 of Fig. 4, in accordance with embodiments of the disclosure.
- each entity i.e. Trader A, Trade B, Supplier and Auditor
- can generate a respective root certificate 600, 602, 604, 606 i.e. a public key certificate that identifies a root certificate authority
- the root certificate is stored in respective peer nodes 402, 404, 406, 408 and order server 608 of the blockchain network 400.
- Organisation administrators of each entity can use the root certificate of the entity to register one or more users, and the one or more users can access the peer node of the entity.
- Each transaction will be signed by a trust chain and verified with the organisation public key.
- the transaction process adopts the certificate authority (CA) signature to authenticate the participants.
- Each entity can have a unique MSP (membership service provider) identifier (MSPID).
- MSPID of an entity can be associated with a domain name system (DNS) address of the entity.
- DNS domain name system
- the root certificate is issued through the CA centre, and each enterprise can establish its own intermedia certificate for internal users through the root certificate.
- Blockchain can verify transactions with the CA certificates and ensure that the participants on the blockchain are verified.
- Fig. 6B shows an implementation of a public key infrastructure (PKI) of the blockchain network 400.
- an administrator of an entity e.g. Trader A, currently shown as organisation A “OrgA” in Fig. 6B
- the root certificate 600 can be transmitted to a peer node 402 associated with the entity OrgA and order server 608 of the blockchain network 400.
- identification and authentication information e.g. username and password
- the CA server 610 can generate an intermediate certificate 612 and a private key associated with the user.
- a wallet associated with the user can be generated based on MSPID of the user, the intermediate certificate 612 and the private key associated with the user.
- the user can access the entity’s peer node 402 and the order server 608 with the wallet. Transactions submitted by the user can be signed using the wallet.
- the peer node 402 and the order server 608 can verify the signature of the transactions submitted by the user with the root certificate 600 of OrgA.
- user certificates also known as intermediate certificates
- a user within the blockchain network 400 can create a wallet with the user certificate and private key associated with the user.
- Fig. 7 shows a schematic diagram illustrating an exchange of information in the blockchain network 400, in accordance with embodiments of the disclosure.
- audit node 408 can be configured to scan for begin and end transaction data in step 1 (i.e. subscribe the begin and end transaction data), so that when there is begin or end transaction invoke, the audit node will listen the event and get the begin or end transaction data.
- the trade smart contract can be deployed in blockchain with endorsement policy, and both traders can approve the trade smart contract.
- Trader A can create a purchase order, invoke the trade smart contract and push purchase order to the blockchain, which can be recorded on the blockchain.
- the blockchain 110 can then emitted contract event, system can listen the contract event and create sales orders.
- step 4 Trader B can invoke trade smart contract and push sales order to blockchain to store.
- the process of trade smart contract is completed.
- delivery note contract can auto-create according to the trade smart contract.
- delivery information such as delivery quantity, IOT & MFM data and vessel and bunker tanker AIS location, can be auto pushed to the blockchain.
- AIS location data captured by GPS and can be logged when the transaction begin or end.
- blockchain will auto complete invoice smart contract.
- Fig. 8 shows a schematic diagram illustrating an exchange of information in the blockchain network 400, in accordance with embodiments of the disclosure.
- the trade smart contract 410 can be deployed on the blockchain 110 with endorsement policy, with the smart contract being effective (i.e. initiated) once the endorsement policy is verified.
- a buyer e.g. Trader A
- the blockchain 110 can store the purchase order 502 in the blockchain and invoke the contract event.
- a seller e.g. Trader B
- the blockchain network 400 can verify the seller. If the verification is successful, the trade smart contract 410 can be completed and can in turn generate a delivery note contract 412.
- the trade smart contract 410 can include key fields required in a complete bunker fuel trade transaction.
- the key fields include, but is not limited to, a buyer, a seller, product information (e.g. specification, quality, name etc.), quantity, price and terms of delivery (e.g. receiving ship identifier such as ship name, international maritime organisation (IMO) number, location, date and time range for delivery of the bulk cargo etc.).
- a successful submission occurs when both purchase and sale orders are submitted (regardless of sequence).
- the purchase and sale orders 502, 504 are stored on the smart contract which in turn can generate a new block that can be used to activate the delivery note contract 412.
- the new block can be identified as “smart contract 1 unique identifier”.
- Fig. 9 shows a schematic diagram illustrating an exchange of information in the blockchain network 400, in accordance with embodiments of the disclosure.
- the audit node 408 can be configured to scan for begin and end transaction data and can, in embodiments, and monitor the entire delivery process.
- the client application can obtain the location via GPS or AIS transponder, and store the bulk cargo transfer data and the geolocation data (package IOT data, MFM datalog, AIS location) in the blockchain.
- the receiving vessel can transmit the bulk cargo transfer data and the geolocation data.
- the blockchain will then generate a smart invoice.
- the smart invoice can generate a further smart contract associated with payment and settlement.
- payment and settlement can occur either via fiat method (via link up with banks) or via utility token payment via crypt- currency settlement.
- the bulk cargo transfer data can include physical transfer start data and physical transfer end data.
- the physical transfer start data (which can be recorded as physical transfer start block on the blockchain) can include transaction start time, mass flow data from mass flow meter installed on ship/terminal (e.g. time at start of fuel transfer, mass in air, begin forward inversion in air, totaliser loading and delivery at operation start etc.), AIS data such as longitude and latitude from the bunker tanker and other equipment data (e.g. storage tank data, pump data, temperature gauge data etc.).
- the physical transfer end data (which can be recorded as physical transfer end block on the blockchain) can include transaction end time, mass flow data from mass flow meter installed on ship/terminal (e.g.
- the mass flow data can be calculated with sounding methods (e.g. with sounding or measuring tapes), which can determine the volume of bulk cargo transferred.
- a complete delivery smart contract can include physical transfer start data, physical transfer end data, smart contract 1 unique identifier, geolocation data from both the ships proving that the bunker vessel and receiving vessel match the geolocation requirements in the trade smart contract and delivery location, the date and time specified in the trade smart contract (the date and time when the transaction is carried out must be within the date range specified in trade smart contract) and geolocation data from both the ships proving that the bunker vessel and receiving vessel are side by side during the physical transfer start time and physical transfer end time.
- the delivery note smart contract can generate a new block called “smart contract 2 unique identifier” that can be used to generate smart invoice.
- Information from the complete delivery note contract can be used to generate a bunker delivery note 508.
- the smart invoice can include “smart contract 1 unique identifier”, “smart contract 2 unique identifier”, information from the bunker delivery note 508 and information from the trade smart contract 410 and delivery note contract 412 which can be used to generate a final price for the transaction.
- the smart invoice can generate a further smart contract associated with payment and settlement.
- payment and settlement can occur either via fiat method (via link up with banks) or via utility token payment via crypt-currency settlement.
- a new block can be generated based on the smart invoice, and can be used to activate the further smart contract.
- the new block can be identified as “smart invoice unique identifier”.
- Fig. 10 shows a schematic diagram illustrating an exchange of information with a blockchain network, in accordance with embodiments of the disclosure.
- Digitally signed information e.g. data sets
- trusted hardware e.g. sensors, measuring instruments such as mass flow meters etc.
- MQTT Message Queuing Telemetry Transport
- a MQTT broker can deploy in the cloud.
- the vessel can push the digitally signed information (e.g. data sets) received from trusted hardware (e.g. sensors, measuring instruments such as mass flow meters etc.) in real time.
- trusted hardware e.g. sensors, measuring instruments such as mass flow meters etc.
- the physical supplier can subscribe to the information as a MQTT client.
- the physical MQTT client When the transaction begins, the physical MQTT client will get the digitally signed information (e.g. data sets) received from trusted hardware, retrieve the vessel’s AIS location, package the data and transmit to blockchain.
- the data package can contain the bulk cargo transfer data and geolocation data. The transfer of the bulk cargo transfer data and geolocation data for end transaction will be the same.
- Embodiments of the disclosure provide a method and system that can automate set up multiple smart contracts in the bunker supply chain once a trade is entered.
- Embodiments of the disclosure can advantageously provide a distributed system. Particularly, different task such as trade, bunker loading, and bunker distributing are executed on the same network through blockchain network. Each participants visits own independent node on the blockchain to ensure that the trade data in the trade chain is transparent and auditable, and trade records are tamper-proof when their ERP is independent.
- the transaction process adopts the certificate authority (CA) signature to authenticate the participants.
- CA certificate authority
- Each enterprise has a unique MSP (membership service provider).
- MSP membership service provider
- the root certificate is issued through the CA centre, and each enterprise can establish its own intermedia certificate for internal users through the root certificate.
- Blockchain can verify transactions with the CA certificates and ensure that the participants on the blockchain are verified.
- smart contracts can be automatically executed without human intervention, as the initiation and completion of smart contract transactions rely on machine-generated data.
- Terms of engagement can be recorded in the smart contract which automatically perform verification of the machine-generated data.
- the quantity and deviation threshold of bunker loading and bunker distributing in the trade order are set in the delivery note contract.
- An alarm can be sounded if the threshold is exceeded.
- the distance threshold between the receiving vessel and bunker tanker is set in the Deliver note contract. If the threshold exceeds, the deliver note contract cannot be created.
- the blockchain network can be configured to compare field details from the trade smart contract to respective field details in the delivery note contract.
- Field details can include, but is not limited to bunker tanker information (e.g. IMO number of the bunker tanker), vessel information (e.g. IMO number of the vessel), quantity of bulk cargo delivered, transaction start time and date, as well as transaction end time and date.
- a smart invoice is generated if the field details from the trade smart contract correspond with the respective field details in the delivery note contract (e.g. the bunker tanker and vessel IMO numbers in delivery smart contract are the same as the bunker tanker and vessel IMO numbers in the trade smart contract, and the start and end time of the transaction fall within the time period defined in the trade smart contract).
- Embodiments of the disclosure can advantageously ensure that all smart documents generated from the invention is unique to the transaction as it can include machine generated data from the physical transfer/storage of the bulk cargo rather than from traditional human generated forms (hard copy or electronic). For example, a purchase and sale is automated and linked to a master contract for supply of fuel. The information on the fuel required will be
- embodiments of the disclosure can advantageously provide interoperability between different systems of participants in a distributed ledger environment. More advantageously, multiple smart contracts “layering” can ensure that a preceding (e.g. parent) smart contract will be completed by only if predetermined conditions and/or actions or specific information (e.g. bulk cargo transfer data, geolocation data) are received and validated before a subsequent (child) contract can be executed. This can go on n times. These documents generated are stored on the blockchain and can provide an an audit trail of the entire life cycle of the documents.
- a preceding e.g. parent
- actions or specific information e.g. bulk cargo transfer data, geolocation data
- Embodiments of the disclosure can advantageously reduce the possibility of fraud due to human interaction in activities (e.g. transportation, storage, purchase, sale and consumption) carried out in logistics associated with bulk commodities (e.g. bulk cargo, liquid bulk communities).
- Embodiments of the disclosure can also advantageously reduce internal theft or misuse of technology. Entities implementing embodiments of the disclosure can include
- FIG. 11 depicts an example of a computing device 1100, hereinafter interchangeably referred to as a computer system 1100, where one or more such computing devices 1100 may be used to execute the method 300 of Figs. 3A and 3B.
- One or more components of the exemplary computing device 1100 can also be used to implement the systems 100, 400 as well as the nodes 402, 404, 406 and 408 of blockchain network 400.
- the following description of the computing device 1100 is provided by way of example only and is not intended to be limiting.
- the example computing device 1100 includes a processor 1107 for executing software routines. Although a single processor is shown for the sake of clarity, the computing device 1100 may also include a multi-processor system.
- the processor 1107 is connected to a communication infrastructure 1106 for communication with other components of the computing device 1100.
- the communication infrastructure 1106 may include, for example, a communications bus, cross-bar, or network.
- the computing device 1100 further includes a main memory 1108, such as a random access memory (RAM), and a secondary memory 1110.
- the secondary memory 1110 may include, for example, a storage drive 1112, which may be a hard disk drive, a solid state drive or a hybrid drive and/or a removable storage drive 1117, which may include a magnetic tape drive, an optical disk drive, a solid state storage drive (such as a USB flash drive, a flash memory device, a solid state drive or a memory card), or the like.
- the removable storage drive 1117 reads from and/or writes to a removable storage medium 1177 in a well-known manner.
- the removable storage medium 1177 may include magnetic tape, optical disk, non-volatile memory storage medium, or the like, which is read by and written to by removable storage drive 1117.
- the removable storage medium 1177 includes a computer readable storage medium having stored therein computer executable program code instructions and/or data.
- the secondary memory 1110 may additionally or alternatively include other similar means for allowing computer programs or other instructions to be loaded into the computing device 1100.
- Such means can include, for example, a removable storage unit 1122 and an interface 1150.
- a removable storage unit 1122 and interface 1150 include a program cartridge and cartridge interface (such as that found in video game console devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a removable solid state storage drive (such as a USB flash drive, a flash memory device, a solid state drive or a memory card), and other removable storage units 1122 and interfaces 1150 which allow software and data to be transferred from the removable storage unit 1122 to the computer system 1100.
- the computing device 1100 also includes at least one communication interface 1127.
- the communication interface 1127 allows software and data to be transferred between computing device 1100 and external devices via a communication path 1126.
- the communication interface 1127 permits data to be transferred between the computing device 1100 and a data communication network, such as a public data or private data communication network.
- the communication interface 1127 may be used to exchange data between different computing devices 1100 which such computing devices 1100 form part an interconnected computer network. Examples of a communication interface 1127 can include a modem, a network interface (such as an Ethernet card), a communication port (such as a serial, parallel, printer, GPIB, IEEE 1394, RJ45, USB), an antenna with associated circuitry and the like.
- the communication interface 1127 may be wired or may be wireless.
- Software and data transferred via the communication interface 1127 are in the form of signals which can be electronic, electromagnetic, optical or other signals capable of being
- the computing device 1100 further includes a display interface 1102 which performs operations for rendering images to an associated display 1155 and an audio interface 1152 for performing operations for playing audio content via associated speaker(s) 1157.
- computer program product may refer, in part, to removable storage medium 1177, removable storage unit 1122, a hard disk installed in storage drive 1112, or a carrier wave carrying software over communication path 1126 (wireless link or cable) to communication interface 1127.
- Computer readable storage media refers to any non- transitory, non-volatile tangible storage medium that provides recorded instructions and/or data to the computing device 1100 for execution and/or processing.
- Examples of such storage media include magnetic tape, CD-ROM, DVD, Blu-rayTM Disc, a hard disk drive, a ROM or integrated circuit, a solid state storage drive (such as a USB flash drive, a flash memory device, a solid state drive or a memory card), a hybrid drive, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computing device 1100.
- a solid state storage drive such as a USB flash drive, a flash memory device, a solid state drive or a memory card
- a hybrid drive such as a magneto-optical disk
- a computer readable card such as a PCMCIA card and the like
- Examples of transitory or non-tangible computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to the computing device 1100 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like.
- the computer programs are stored in main memory 1108 and/or secondary memory 1110. Computer programs can also be received via the communication interface 1127. Such computer programs, when executed, enable the computing device 1100 to perform one or more features of embodiments discussed herein. In embodiments, the computer programs, when executed, enable the processor 1107 to perform features of the above-described embodiments. Accordingly, such computer programs represent controllers of the computer system 1100.
- Software may be stored in a computer program product and loaded into the computing device 1100 using the removable storage drive 1117, the storage drive 1112, or the interface 1150.
- the computer program product may be a non-transitory computer readable medium.
- the computer program product may be downloaded to the computer system 1100 over the communication path 1126.
- the software when executed by the processor 1107,
- Fig. 11 is presented merely by way of example to explain the operation and structure of the system 1100. Therefore, in some embodiments one or more features of the computing device 1100 may be omitted. Also, in some embodiments, one or more features of the computing device 1100 may be combined together. Additionally, in some embodiments, one or more features of the computing device 1100 may be split into one or more component parts.
- the system 400 will have a non-transitory computer readable medium 1112 having stored thereon an application which when executed causes the system 400 to perform steps comprising: receiving instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, receiving transaction information comprising bulk cargo transfer data and geolocation data, processing the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules and in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, recording the transaction information on the blockchain.
- the computing device 1100 can include at least one processor 1107 and a non-transitory computer-readable storage medium 1112 coupled to the at least one processor 1107 and storing programming instructions for execution by the at least one processor 1107.
- the programming instructions can instruct the at least one processor 1107 to receive instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, receive transaction information comprising bulk cargo transfer data and geolocation data, process the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules and in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, record the transaction information on the blockchain.
- the programming instructions can instruct the at least one processor 1107 to process the instructions and recorded transaction information to generate a smart invoice associated with transfer of the bulk cargo.
- the programming instructions can instruct the at least one processor 1107 to record a cryptographic hash of the smart invoice on the blockchain.
- the programming instructions can instruct the at least one processor 1107 to receive a request to generate the instructions to setup the smart contract, process the request to verify whether the request is in accordance with an endorsement policy, in response to a determination that the request is in accordance with the endorsement policy, record the request on the blockchain, receive order information comprising the set of rules and process the set of rules and recorded request to generate the instructions to setup the smart contract.
- the programming instructions can instruct the at least one processor 1107 to record a cryptographic hash of the instructions to setup the smart contract on the blockchain.
- the programming instructions can instruct the at least one processor 1107 to receive an authorisation from each of the one or more nodes associated with the request, the authorisation generated in response to a determination that the request is digitally signed by one of the one or more nodes.
- the bulk cargo transfer data comprises temporal mass flow meter data and wherein the geolocation data comprises temporal automatic identification system (AIS) data.
- the set of rules comprises bulk cargo transfer requirements, temporal geolocation requirements and respective variability thresholds associated with the bulk cargo transfer requirements and temporal geolocation requirements.
- the programming instructions can instruct the at least one processor 1107 to verify whether the bulk cargo transfer data and the geolocation data fall within the respective variability thresholds associated with the bulk cargo transfer requirements and temporal geolocation requirements.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Marketing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
A method and a system for facilitating a transaction at one or more nodes of a blockchain network are provided. The one or more nodes are configured to manage a blockchain. The method includes receiving instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, receiving transaction information including bulk cargo transfer data and geolocation data, processing the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, and in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, recording the transaction information on the blockchain.
Description
Method and System for Facilitating a Transaction at One or More Nodes of a Blockchain Network
Technical Field
[0001] The present disclosure generally relates to a method and a system for facilitating a transaction at one or more nodes of a blockchain network.
Background Art
[0002] Commercial documents such as invoice, manifest, bill of lading etc. are typically used between transacting parties (e.g. sellers, buyers, consignees, consignors and carriers) to show that a particular transaction has been carried out and/or to request payment. These commercial documents can be in hard copy or electronic format. Issuance and handling of these commercial documents are traditionally performed manually or semi-automatically using software. However, while software may be an effective and useful tool for generating the documents, the output can only be as accurate as the information entered into it. Further, the issuance and handling processes can be vulnerable to fraudulent activities. For example, an external malicious actor may masquerade as an entity party to the transaction and use the entity’s identification and authentication information, e.g. identifier, password etc. without the entity’s permission to gain access to the processes, commit fraud or other crimes. A malicious insider may also falsify information used to generate commercial documents for financial gain.
[0003] Maritime trade and transportation can be vulnerable to commercial fraud as a maritime trade transaction typically involves several parties - e.g. buyer, seller, ship-owner, charterer, ship’s master or crew, insurer, banker, broker or agent. Maritime fraud can occur when one of these parties succeeds in deceiving another as to some fact or circumstance in connection with maritime activities which enables the party to obtain money or goods unjustly. Maritime fraud can involve misuse, falsification and/or tampering of commercial contracts and documents, such as bills of lading. In some cases, several parties can act in collusion to defraud another. Bulk cargo trade, and in particular liquid bulk cargo trade (e.g. bunkering - the supply of marine fuel for use in ships) can be especially vulnerable, as the cargo is typically transported unpackaged in large quantities.
[0004] A need therefore exists to improve the manner in which transactions are facilitated, to prevent and minimise commercial fraud.
1
Summary
[0005] In an embodiment, there is provided a method for facilitating a transaction at one or more nodes of a blockchain network. The one or more nodes are configured to manage a blockchain. The method includes receiving instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, receiving transaction information including bulk cargo transfer data and geolocation data, processing the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, and in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, recording the transaction information on the blockchain.
[0006] In another embodiment, there is provided a system for facilitating a transaction at one or more nodes of a blockchain network. The one or more nodes are configured to manage a blockchain. The system includes a processing device configured to receive instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, receive transaction information comprising bulk cargo transfer data and geolocation data, process the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules and in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, record the transaction information on the blockchain.
[0007] Details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other desirable features and characteristics will become apparent from the subsequent description and the appended claims, taken in conjunction with the accompanying drawings and the background of the disclosure.
Brief Description of Drawings
[0008] Embodiments will be better understood and readily apparent to one of ordinary skill in the art from the following written description, by way of example only, and in conjunction with the drawings, in which:
Fig. 1
[0009] Fig. 1 shows a schematic diagram of a blockchain network, in accordance with embodiments of the disclosure.
2
Fig. 2
[0010] Fig. 2 shows a schematic diagram of a computing device configured to implement a node in a blockchain network, in accordance with embodiments of the disclosure.
Figs. 3A and 3B
[0011] Figs. 3A and 3B show a flowchart illustrating an example of a method for facilitating a transaction at one or more nodes of a blockchain network, in accordance with embodiments of the disclosure.
Fig. 4
[0012] Fig. 4 shows a schematic diagram of a blockchain network, in accordance with embodiments of the disclosure.
Fig. 5
[0013] Fig. 5 shows a flowchart illustrating an exchange of information in a blockchain network, in accordance with embodiments of the disclosure.
Figs. 6A, 6B and 6C
[0014] Figs. 6A, 6B and 6C show schematic diagrams of the blockchain network of Fig. 4, in accordance with embodiments of the disclosure.
Fig. 7
[0015] Fig. 7 shows a schematic diagram illustrating an exchange of information in a blockchain network, in accordance with embodiments of the disclosure.
Fig. 8
[0016] Fig. 8 shows another schematic diagram illustrating an exchange of information in a blockchain network, in accordance with embodiments of the disclosure.
Fig. 9
[0017] Fig. 9 shows another schematic diagram illustrating an exchange of information in a blockchain network, in accordance with embodiments of the disclosure.
3
Fig. 10
[0018] Fig. 10 shows another schematic diagram illustrating an exchange of information with a blockchain network, in accordance with embodiments of the disclosure.
Fig. 11
[0019] Fig. 11 shows a schematic diagram of an example of a computing device used to implement a node in a blockchain system, in accordance with embodiments of the disclosure.
[0020] Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been depicted to scale. For example, the dimensions of some of the elements in the illustrations, block diagrams or flowcharts may be exaggerated in respect to other elements to help to improve understanding of the present embodiments.
Description of Embodiments
[0021] Embodiments of the disclosure seek to provide methods and systems for facilitating a transaction at one or more nodes of a blockchain network, the one or more nodes configured to manage a blockchain. In various embodiments, the methods and devices can receive information associated with the transaction, use the blockchain to record the information, and use smart contracts (i.e. computer protocols implemented in the form of computer code that are incorporated into the blockchain) to facilitate, verify, or enforce the negotiation and/or performance of the transaction. In this manner, the methods and devices can ensure that information is immutable and tamperproof, and can eliminate the need for human interaction in processes associated with the transaction. In embodiments, the transactions can relate to bulk cargo trade, and in particular, liquid bulk cargo trade (e.g. bunkering - the supply of marine fuel for use in ships).
[0022] Embodiments of the disclosure can produce one or more technical effects. In various embodiments, the methods and devices can set up a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, and can process transaction information including bulk cargo transfer data and geolocation data using the smart contract to verify that a bulk cargo has been transferred according to the set of rules. The methods and devices can, in response to a determination that the bulk cargo has been transferred according to the set of rules, record the transaction information on the blockchain and generate a smart invoice associated with transfer of the bulk cargo. Further, in various embodiments, the methods and devices can facilitate the negotiation leading to the transfer of bulk cargo between a seller and a buyer through a trade smart contract. The trade smart contract, once
4
invoked by both the seller and the buyer, can be used to generate the smart contract for determining whether a bulk cargo has been transferred according to a set of rules. Accordingly, through use of a blockchain network and one or more smart documents (e.g. the smart contract, the smart invoice and the trade smart contract), the methods and devices in accordance with embodiments of the disclosure can store and process information with a data structure that eliminates the need for human interaction and prevent tampering and/or manipulation by malicious actors.
[0023] In embodiments of the disclosure, the smart document (e.g. the smart contract, the smart invoice and the trade smart contract) can include a plurality of subroutines or functions, each of which can be a sequence of program instructions that performs a specific task. The smart documents can be operational code that can be fully or partially executed without human interaction. In various embodiments, a preceding smart document can include instructions to generate a subsequent smart document, based on instructions of the preceding smart document and as a result of a positive determination that conditions defined in the preceding smart document are met. Digitally signed information received from trusted hardware can include, but is not limited to, a copy of the smart document that is signed by a private key of the user indicative of agreement to the terms and/or rules of the smart document, and digitally signed information from data acquisition devices (e.g. sensors and measuring instruments such as mass flow meters etc.). Digitally signed information can also include mass flow data calculated with sounding methods (e.g. sounding or measuring tapes), which can determine the volume of bulk cargo transferred. In embodiments, the subsequent smart document can include a cryptographic hash of one or more preceding smart documents.
[0024] Thus, a smart document in accordance with embodiments of the disclosure can be generated responsive to the fulfilment of conditions defined in a preceding smart document. Information associated with the fulfilment of the defined conditions can be sent by trusted equipment or data acquisition devices (e.g. processing devices, sensors and/or measuring instruments) and can be verified by one or more nodes of the blockchain network. The use of multiple smart documents that can execute operational code based on machine data from trusted hardware or data acquisition devices, and tied to, for example, movement and storage of bulk cargo, can advantageously eliminate human interaction, reduce attack surface and improve security of the blockchain network.
[0025] For example, a first smart contract associated with a bulk cargo transaction can be configured to execute only when machine-derived data trigger and complete the first smart contract. The first smart contract can, in turn, generate a key that can activate the second smart contract which can rely on machine-generated data to trigger and complete the smart
5
contract. The second smart contract can lead to a subsequent third smart contract, and this can be carried out n-times depending on transaction requirements. In embodiments of the disclosure, a smart contract executing on the blockchain can receive information from trusted device(s) along a supply chain and can verify an action in a transaction without human participation, the smart contract can in turn generate subsequent smart contracts which can lead to eventual generation of smart documents (e.g. transfer receipts, invoice, and other trade documentation).
[0026] Embodiments of the present disclosure will be described, by way of example only, with reference to the drawings. Like reference numerals and characters in the drawings refer to like elements or equivalents.
[0027] Some portions of the description which follows are explicitly or implicitly presented in terms of algorithms and functional or symbolic representations of operations on data within a computer memory. These algorithmic descriptions and functional or symbolic representations are the means used by those skilled in the data processing arts to convey most effectively the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities, such as electrical, magnetic or optical signals capable of being stored, transferred, combined, compared, and otherwise manipulated.
[0028] Unless specifically stated otherwise, and as apparent from the following, it will be appreciated that throughout the present specification, discussions utilizing terms such as “associating”, “calculating”, “comparing”, “determining”, “extracting”, “forwarding”, “generating”, “identifying”, “including”, “inserting”, “modifying”, “receiving”, “recording”, “replacing”, “scanning”, “transmitting”, “updating” or the like, refer to the action and processes of a computer system, or similar electronic device, that manipulates and transforms data represented as physical quantities within the computer system into other data similarly represented as physical quantities within the computer system or other information storage, transmission or display devices.
[0029] The present specification also discloses apparatus for performing the operations of the methods. Such apparatus may be specially constructed for the required purposes or may include a computer or other computing device selectively activated or reconfigured by a computer program stored therein. The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various machines may be used with programs in accordance with the teachings herein. Alternatively, the construction of
6
more specialized apparatus to perform the required method steps may be appropriate. The structure of a computer will appear from the description below.
[0030] In addition, the present specification also implicitly discloses a computer program, in that it would be apparent to the person skilled in the art that the individual steps of the method described herein may be put into effect by computer code. The computer program is not intended to be limited to any particular programming language and implementation thereof. It will be appreciated that a variety of programming languages and coding thereof may be used to implement the teachings of the disclosure contained herein. Moreover, the computer program is not intended to be limited to any particular control flow. There are many other variants of the computer program, which can use different control flows without departing from the spirit or scope of the disclosure.
[0031] Furthermore, one or more of the steps of the computer program may be performed in parallel rather than sequentially. Such a computer program may be stored on any computer readable medium. The computer readable medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a computer. The computer readable medium may also include a hard-wired medium such as exemplified in the Internet system, or wireless medium such as exemplified in the mobile telephone system. The computer program when loaded and executed on a computer effectively results in an apparatus that implements the steps of the preferred method.
[0032] In embodiments of the present disclosure, the term ‘server’ may mean a single computing device or a computer network of a plurality of interconnected computing devices which operate together to perform one or more functions. In other words, the server may be contained within a single hardware unit or be distributed among several or many different hardware units.
[0033] The term “configured to” is used in the specification in connection with systems, apparatus, and computer program components. For a system of one or more computers to be configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. For one or more computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions. For special-purpose logic circuitry to be configured to perform particular operations or actions means that the circuitry has electronic logic that performs the operations or actions.
7
[0034] A blockchain is a data structure that can store information, e.g., transactions, in a manner that can prevent tampering and manipulation of the data by malicious actors. The transactions stored in this manner can be immutable and subsequently verified. A blockchain typically includes one or more blocks. Each block is linked to a preceding block before it in the blockchain by including a cryptographic hash of the preceding block. Each block also may include a timestamp, its own cryptographic hash, and one or more transactions. As each block contains a hash of the preceding block, the linked blocks forms a chain, and the iterative process of generating a block with the preceding hash value confirms integrity of preceding blocks. The transactions, which generally have already been verified by the nodes of the blockchain system, may be hashed and encoded into a data structure, such as a Merkle tree. In a Merkle tree, data at leaf nodes of the tree is hashed, and all hashes in each branch of the tree may be concatenated at a root of the branch. This process continues up the tree to the root of the entire tree, which stores a hash that is representative of all data in the tree. A hash purporting to be of a transaction stored in the tree can be quickly verified by determining whether it is consistent with the structure of the tree.
[0035] A blockchain network includes a network of computing nodes that manage, update, and maintain one or more blockchains. The network may be a public blockchain network, a private blockchain network, or a consortium blockchain network (also known as a federated blockchain). Numerous entities can operate in a public blockchain network, and each of the entities can operate one or more nodes in the public blockchain network. Accordingly, the public blockchain network can be considered a public network with respect to the participating entities. Typically, a majority of entities (nodes) must sign every block for the block to be valid and added to the blockchain of the blockchain network. Examples of public blockchain networks include particular peer-to-peer payment networks that leverage a distributed ledger, referred to as blockchain.
[0036] A public blockchain network typically supports public transactions. A public transaction is announced to all nodes in the public blockchain network, and is stored in a global blockchain. A global blockchain is a blockchain replicated across all nodes, with all nodes in consensus with respect to the global blockchain. To achieve consensus (e.g., agreement to the addition of a block to a blockchain), a consensus protocol is implemented in the public blockchain network. Examples of consensus protocols include proof-of-work (POW) (e.g., implemented in the some crypto-currency networks), proof-of-stake (POS), and proof-of- authority (POA).
[0037] A private blockchain network is typically provided for a particular entity that centrally controls read and write permissions. The entity controls nodes that are able to participate in
8
the blockchain network. Consequently, private blockchain networks are generally referred to as permissioned networks that place restrictions on who is allowed to participate in the network, and on their level of participation (e.g., only in certain transactions). Various types of access control mechanisms can be used (e.g., a central authority can control admission).
[0038] A consortium blockchain network (also known as a federated blockchain network) is private among the participating entities. In a consortium blockchain network, the consensus process is controlled by an authorised set of nodes, with one or more nodes being operated by a respective entity. For example, a consortium of four entities can operate a consortium blockchain network, each of which operates at least one node in the consortium blockchain network. Accordingly, the consortium blockchain network can be considered a private network with respect to the participating entities. In some examples, each entity (node) must sign every block in order for the block to be valid, and added to the blockchain. In some examples, at least a sub-set of entities (nodes) (e.g., at least two entities) must sign every block in order for the block to be valid, and added to the blockchain.
[0039] Fig. 1 shows a schematic diagram of a blockchain network, in accordance with embodiments of the disclosure. The blockchain network 100 can include a plurality of nodes, e.g., nodes 102, 104, 106, 108, configured to manage a blockchain 110. The nodes 102, 104, 106, 108 can form the network 100, such as a peer-to-peer (P2P) network. Each of the nodes 102, 104, 106, 108 can be a computing device, such as a server configured to store a copy of the blockchain 110, or can be software running on the computing device, such as a process or an application. Each of the nodes 102, 104, 106, 108 can have a unique identifier (e.g. a digital signature employing asymmetric cryptography).
[0040] The blockchain 110 can include a list of records in the form of data blocks, such as blocks B1-B4 in Fig. 1. Each of the blocks B1-B4 can include metadata such as a timestamp, a cryptographic hash of a previous block, and data of the present block, which can be transactions or information associated with verification programs such as smart contracts. For example, as illustrated in Fig. 1 , block B4 may include metadata, a cryptographic hash of block B3, transaction data of block B3 and a cryptographic hash of the transaction data. A hashing operation may be performed on the previous block to generate the cryptographic hash of the previous block. For example, the hashing operation can convert inputs of various lengths into cryptographic outputs of a fixed length through a hash algorithm, such as SHA-256.
[0041] The nodes 102, 104, 106, 108 can be configured to perform an operation on the blockchain 110. For example, when a node, e.g., the node 102, wants to store new data onto the blockchain 110, the node 102 may generate a new block to be added to the blockchain 120 and broadcast the new block to other nodes, e.g., the nodes 104, 106, 108, in the network
9
100. Based on legitimacy of the new block, provided through for an endorsement policy, e.g., validity of its signature and transactions, the other nodes may determine to accept the new block, such that the node 102 and the other nodes may add the new block to their respective copies of the blockchain 110. As this process repeats, more and more blocks of data may be added to the blockchain 110.
[0042] Fig. 2 illustrates a schematic diagram of a computing device 200 for implementing a node, e.g., the node 102 shown in Fig. 1, in a blockchain system, according to an embodiment. Referring to Fig. 2, the computing device 200 can include a communication interface 202, a processor 204, and a memory 206. The communication interface 202 can facilitate communications between the computing device 200 and devices implementing other nodes in the network e.g., nodes 102, 104, 106, 108 shown in Fig. 1. In some embodiments, the communication interface 202 is configured to support one or more communication standards, such as an Internet standard or protocol, e.g. Message Queuing Telemetry Transport (MQTT), Internet Protocol Version 4 (IPv4) and/or Internet Protocol Version 6 (IPv6) etc., and an Integrated Services Digital Network (ISDN) standard etc. In embodiments, the communication interface 202 can include one or more of a Local Area Network (LAN) card, a cable modem, a satellite modem, a data bus, a cable, a wireless communication channel, a radio-based communication channel, a cellular communication channel, an Internet Protocol (IP) based communication device, or other communication devices for wired and/or wireless communications. In embodiments, the communication interface 202 can be based on public cloud infrastructure, private cloud infrastructure, hybrid public/private cloud infrastructure.
[0043] The processor 204 can include one or more dedicated processing units, application- specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or various other types of processors or processing units. The processor 204 is coupled with the memory 206 and is configured to execute instructions stored in the memory 206. The memory 206 may store processor-executable instructions and data, such as a copy of the blockchain 110 in Fig. 1. The memory 206 may include any type of volatile or non-volatile memory devices, or a combination thereof, such as a static random-access memory (SRAM), an electrically erasable programmable read-only memory (EEPROM), an erasable programmable read-only memory (EPROM), a programmable read-only memory (PROM), a read-only memory (ROM), a magnetic memory, a flash memory, or a magnetic or optical disk. When the instructions in the memory 206 are executed by the processor 204, the computing device 200 may perform an operation on the blockchain 110.
[0044] Users of a blockchain network, e.g., the blockchain network 100, can use the blockchain network to record various types of information. For instance, one or more users
10
can use the blockchain network 100 to record and process information, to facilitate transactions associated with transfer of bulk cargo, e.g. for supply of marine fuel for use in ships (also known as bunkering). In embodiments, the one or more users can agree to record the contractual agreement on the blockchain 110 so that the blockchain network 110 can process and verify whether the one or more users adhere to the rules that they have agreed to. In some embodiments, the blockchain 110 can use one or more smart contracts executing on the blockchain 110 to provide the verification. Smart contracts are computer protocols implemented in the form of computer code that are incorporated into the blockchain 110, to facilitate, verify, or enforce the negotiation and/or performance of contracts. For example, the users of the blockchain 110 can program agreed terms (e.g., rules associated with transfer of bulk cargo, such as quantity, price and terms of delivery) into a smart contract using a programming language, such as C++, Java, Solidity, Python, etc., and use the smart contract to verify whether the bulk cargo has been transferred according to the agreed terms. Also for example, the smart contract can include a plurality of subroutines or functions, each of which can be a sequence of program instructions that performs a specific task. The smart contract can be operational code that can be fully or partially executed without human interaction. In embodiments, a preceding smart contract can include instructions to generate a subsequent smart contract, based on instructions of the preceding smart contract and as a result of fulfilment of conditions defined in the preceding smart contract. Information indicative of the fulfilment of conditions can include digitally signed information (e.g. data sets) received from trusted hardware or data acquisition devices (e.g. sensors, measuring instruments such as mass flow meters, automatic identification system (AIS) transponders etc.). Digitally signed information can also include mass flow data calculated with sounding methods (e.g. sounding or measuring tapes), which can determine the volume of bulk cargo transferred. The automatic identification system (AIS) is an automatic tracking system that uses transceivers on ships and is used by vessel traffic services (VTS). An AIS transponder can provide information such as identification, position, course, and speed of a ship to other ships and coastal authorities.
[0045] In some embodiments, the blockchain 110 can accept a smart contract defining the agreed terms if all users who are parties to the transaction indicate that they agree with the terms expressed in the smart contract. For example, the users can indicate that they agree with the terms expressed in the smart contract by signing the smart contract using their private key. In another example, the users can indicate that they agree with the terms expressed in the smart contract by submitting a copy of the smart contract for recordation on the blockchain 110. In yet another example, the users can indicate that they agree with the terms expressed in the smart contract to an administrator (or a trusted authority), and the administrator can submit the smart contract to the blockchain 110 after having determined all users who are
11
parties to the transaction have indicate to the administrator that they agree with the terms expressed in the smart contract.
[0046] Figs. 3A and 3B show a flowchart illustrating an example of a method 300 for facilitating a transaction at one or more nodes of a blockchain network, in accordance with embodiments of the disclosure. The method 300 can be implemented with the computing device 200 shown in Fig. 2. Figs. 3A and 3B are described in detail with reference to Figs. 4 and 5, which show a schematic diagram of a blockchain network 400 and a flowchart illustrating an exchange of information in the blockchain network 400 respectively. As shown in Fig. 4, the blockchain network 400 in an embodiment of the disclosure can be managed by four entities comprising Trader A, Trader B, Supplier and Auditor, each operating one or more nodes 402, 404, 406, 408 in the network 400. The blockchain managed by the network 400 can be configured to include three smart contracts, i.e. a trade smart contract 410, a delivery note contract 412 and a smart invoice 414. The trade smart contract 410 and the delivery note contract 412 are also referred to as a request 410 and a smart contract 412 in the following paragraphs. In an embodiment, the node 406 can be configured to receive bulk cargo transfer data 416, 418 (e.g. mass flow data, storage tank data, pump data, temperature gauge data etc.) and geolocation data 420 (e.g. automatic identification system (AIS) data, global positioning system (GPS) data etc.). In an embodiment, the mass flow data can be obtained from one or more mass flow meters. In another embodiment, the mass flow data can be calculated with sounding methods (e.g. with sounding or measuring tapes), which can determine the volume of bulk cargo transferred. Fig. 5 shows the relationship of each smart contract (i.e. the trade smart contract 410, the delivery note contract 412 and the smart invoice 414) in an embodiment of the disclosure. Input parameters for the trade smart contract 410 can include a purchase order 502 from Trader A and a sales order 504 from Trader B. Input parameters for the delivery note contract 412 can include trade information 506 associated with the trade smart contract 410, bulk cargo transfer data 416, 418 (e.g. mass flow data, storage tank data, pump data, temperature gauge data etc.) and geolocation data 420 (e.g. automatic identification system (AIS) data, global positioning system (GPS) data etc.). Input parameters for the smart invoice 414 can include the trade information 506 associated with the trade smart contract 410 and bunker delivery note (BDN) 508 associated with the delivery note contract 412. In embodiments, the input parameters for the delivery note contract 412 can also include a cryptographic hash of the trade smart contract 410, and the input parameters for the smart invoice 414 can include the cryptographic hash of the trade smart contract 410 and/or the cryptographic hash of the delivery note contract 412.
[0047] In embodiments of the disclosure, the method 300 for facilitating a transaction at one or more nodes of the blockchain network 400 can include step 302 of receiving a request 410
12
to generate instructions to setup a smart contract 412 for determining whether a bulk cargo has been transferred according to a set of rules. The transaction can relate to a bulk cargo transfer (e.g. bunkering - a supply of fuel to a ship, for use by the ship). The method 300 can also include step 304 of processing the request 410 to verify whether the request 410 is in accordance with an endorsement policy. The step 304 of processing the request 410 to verify whether the request 410 is in accordance with the endorsement policy can include receiving an authorisation from each of the one or more nodes associated with the request 410, the authorisation generated in response to a determination that the request is digitally signed by one of the one or more nodes. For example, the traders A and B may be associated with the request 410, the endorsement policy may require that the request 410 to be digitally signed with a private key of originator of request 410. The step of receiving an authorisation from each of the one or more nodes associated with the request 410 can include receiving an authorisation from the nodes 402 and 404, in response to a determination that the request is digitally signed with the private key of the originator. In an embodiment, the authorisation, being an approval of the request 410 (i.e. the trade smart contract 410), can be a copy of the request 410 digitally signed by each of the nodes 402 and 404.
[0048] The method 300 can also include step 306 of recording the request 410 on the blockchain 110 in response to a determination that the request 410 is in accordance with the endorsement policy. Step 308 includes receiving order information comprising the set of rules. In embodiments of the disclosure, the order information can include a purchase order and a sales order. As shown in Fig. 5, the sales order may be transmitted by a node associated with Trader B and the purchase order may be transmitted by a node associated with Trader A. The set of rules may include contractual terms for a bunker fuel trade transaction. For example, the set of rules can identify the seller, the buyer and include product specification (e.g. type of fuel, associated specification such as quality, brand etc.), product quantity, price and terms of delivery (e.g. receiving ship identifier such as ship name, international maritime organisation (IMO) number, location, date and time range for delivery of the bulk cargo etc.). In other words, the set of rules can include bulk cargo transfer requirements and temporal geolocation requirements associated with the bunker fuel trade transaction. The set of rules can also include variability thresholds associated with the bulk cargo transfer requirements and the temporal geolocation requirements. Step 310 can include processing the set of rules and the recorded request 410 to generate the instructions to setup the smart contract 412. In embodiments, the step 310 can include generating a cryptographic hash of the set of rules and the recorded request 410, and including the cryptographic hash in the smart contract 412.
[0049] With reference to Fig. 3B, step 312 can include receiving the instructions to setup the smart contract 412 for determining whether the bulk cargo has been transferred according to
13
the set of rules. The nodes 402, 404, 406, 408 can process the instructions and deploy the smart contract 412 on the blockchain 110. Step 314 can include receiving transaction information comprising bulk cargo transfer data 416, 418 and geolocation data 420. In an embodiment associated with bunkering (i.e. the supply of fuel to ships), the transaction information can be transmitted by both bunkering tanker (i.e. supply ship) and receiving vessel. In another embodiment, the transaction information can be transmitted by a terminal (e.g. an onshore supplier) and a vessel (e.g. a bunkering tanker receiving and storing the fuel supply). The bulk cargo transfer data 416, 418 can include, for example temporal mass flow data (i.e. mass flow data relating to specific time instances, e.g. at start and end of delivery, and at predetermined intervals at predetermined intervals before, after and or during delivery). In an embodiment, the mass flow data can be obtained from one or more mass flow meters. In another embodiment, the mass flow data can be calculated with sounding methods (e.g. with sounding or measuring tapes), which can determine the volume of bulk cargo transferred. The bulk cargo transfer data 416, 418 can also include data from other sensors and/or meters, and can include, for example, storage tank data, pump data and temperature gauge data etc. relating to specific time instances, e.g. at start and end of delivery, and at predetermined intervals before, after and or during delivery. The geolocation data 420 can include, for example, automatic identification system (AIS) data, global positioning system (GPS) data etc. relating to specific time instances, e.g. at start and end of delivery, and at predetermined intervals before, after and or during delivery.
[0050] Step 316 can include processing the transaction information using the smart contract 412 to determine whether the bulk cargo transfer data 416, 418 and the geolocation data 420 are in accordance with the set of rules. Processing of the transaction information can include, for example, verifying whether the bulk cargo transfer data and the geolocation data fall within the respective variability thresholds associated with the bulk cargo transfer requirements and temporal geolocation requirements. This can include, for example, determining, using the geolocation data 420 whether both the bunkering tanker (i.e. supply ship) and the receiving vessel are in proximity to each other and at the location in time specified in the set of rules. In response to a determination that the bulk cargo transfer data 416, 418 and the geolocation data 420 are in accordance with the set of rules, step 318 can include recording the transaction information including the bulk cargo transfer data 416, 418 and the geolocation data 420 on the blockchain 110. In embodiments, the method 300 can further include step 320 of processing the instructions and recorded transaction information to generate a smart invoice associated with transfer of the bulk cargo. In embodiments, the step 320 can include generating a cryptographic hash of the instructions and recorded transaction, and including
14
the cryptographic hash in the smart invoice. In some embodiments, the smart invoice can further include the cryptographic hash of the set of rules and the recorded request 410.
[0051] Fig. 6A shows a schematic diagram of the blockchain network 400 of Fig. 4, in accordance with embodiments of the disclosure. In an embodiment, each entity (i.e. Trader A, Trade B, Supplier and Auditor) can generate a respective root certificate 600, 602, 604, 606 (i.e. a public key certificate that identifies a root certificate authority) self-signed with a corresponding private key of the entity. The root certificate is stored in respective peer nodes 402, 404, 406, 408 and order server 608 of the blockchain network 400. Organisation administrators of each entity can use the root certificate of the entity to register one or more users, and the one or more users can access the peer node of the entity. Each transaction will be signed by a trust chain and verified with the organisation public key. Moreover, through the alliance chain method, the transaction process adopts the certificate authority (CA) signature to authenticate the participants. Each entity can have a unique MSP (membership service provider) identifier (MSPID). In an embodiment, the MSPID of an entity can be associated with a domain name system (DNS) address of the entity. The root certificate is issued through the CA centre, and each enterprise can establish its own intermedia certificate for internal users through the root certificate. Blockchain can verify transactions with the CA certificates and ensure that the participants on the blockchain are verified.
[0052] Fig. 6B shows an implementation of a public key infrastructure (PKI) of the blockchain network 400. In an embodiment, an administrator of an entity (e.g. Trader A, currently shown as organisation A “OrgA” in Fig. 6B) can initiate a CA server 610, and create the root certificate 600 and a private key associated with the entity OrgA. The root certificate 600 can be transmitted to a peer node 402 associated with the entity OrgA and order server 608 of the blockchain network 400. In embodiments, when a user (userA) is to be registered with the blockchain network 400, identification and authentication information (e.g. username and password) associated with the user can be transmitted to the CA server 610. The CA server 610 can generate an intermediate certificate 612 and a private key associated with the user. In embodiments, a wallet associated with the user can be generated based on MSPID of the user, the intermediate certificate 612 and the private key associated with the user. The user can access the entity’s peer node 402 and the order server 608 with the wallet. Transactions submitted by the user can be signed using the wallet. The peer node 402 and the order server 608 can verify the signature of the transactions submitted by the user with the root certificate 600 of OrgA. Thus, user certificates (also known as intermediate certificates) within blockchain network 400 can be generated with root certificate of the entity that is associated with the users. A user within the blockchain network 400 can create a wallet with the user certificate and private key associated with the user.
15
[0053] Fig. 7 shows a schematic diagram illustrating an exchange of information in the blockchain network 400, in accordance with embodiments of the disclosure. With reference to Fig. 7, audit node 408 can be configured to scan for begin and end transaction data in step 1 (i.e. subscribe the begin and end transaction data), so that when there is begin or end transaction invoke, the audit node will listen the event and get the begin or end transaction data. The trade smart contract can be deployed in blockchain with endorsement policy, and both traders can approve the trade smart contract. In step 2, Trader A can create a purchase order, invoke the trade smart contract and push purchase order to the blockchain, which can be recorded on the blockchain. In step 3, the blockchain 110 can then emitted contract event, system can listen the contract event and create sales orders. In step 4, Trader B can invoke trade smart contract and push sales order to blockchain to store. The process of trade smart contract is completed. In step 5, delivery note contract can auto-create according to the trade smart contract. In step 6, delivery information such as delivery quantity, IOT & MFM data and vessel and bunker tanker AIS location, can be auto pushed to the blockchain. AIS location data captured by GPS and can be logged when the transaction begin or end. In step 7, when delivery note contract completed, blockchain will auto complete invoice smart contract.
[0054] Fig. 8 shows a schematic diagram illustrating an exchange of information in the blockchain network 400, in accordance with embodiments of the disclosure. The trade smart contract 410 can be deployed on the blockchain 110 with endorsement policy, with the smart contract being effective (i.e. initiated) once the endorsement policy is verified. A buyer (e.g. Trader A) can invoke the trade smart contract 410, and push the purchase order 502. The blockchain 110 can store the purchase order 502 in the blockchain and invoke the contract event. A seller (e.g. Trader B) can push a sale order 504. The blockchain network 400 can verify the seller. If the verification is successful, the trade smart contract 410 can be completed and can in turn generate a delivery note contract 412. In other words, Traders A and B can initiate a transaction by invoking the trade smart contract 410. The trade smart contract 410 can include key fields required in a complete bunker fuel trade transaction. The key fields include, but is not limited to, a buyer, a seller, product information (e.g. specification, quality, name etc.), quantity, price and terms of delivery (e.g. receiving ship identifier such as ship name, international maritime organisation (IMO) number, location, date and time range for delivery of the bulk cargo etc.). A successful submission occurs when both purchase and sale orders are submitted (regardless of sequence). The purchase and sale orders 502, 504 are stored on the smart contract which in turn can generate a new block that can be used to activate the delivery note contract 412. The new block can be identified as “smart contract 1 unique identifier”.
16
[0055] Fig. 9 shows a schematic diagram illustrating an exchange of information in the blockchain network 400, in accordance with embodiments of the disclosure. The audit node 408 can be configured to scan for begin and end transaction data and can, in embodiments, and monitor the entire delivery process. Once a bunker tanker starts to deliver fuel to a receiving vessel, the client application can obtain the location via GPS or AIS transponder, and store the bulk cargo transfer data and the geolocation data (package IOT data, MFM datalog, AIS location) in the blockchain. Once the deliver completed, the receiving vessel can transmit the bulk cargo transfer data and the geolocation data. The blockchain will then generate a smart invoice. In embodiments, the smart invoice can generate a further smart contract associated with payment and settlement. In embodiments, payment and settlement can occur either via fiat method (via link up with banks) or via utility token payment via crypt- currency settlement.
[0056] In embodiments, the bulk cargo transfer data can include physical transfer start data and physical transfer end data. The physical transfer start data (which can be recorded as physical transfer start block on the blockchain) can include transaction start time, mass flow data from mass flow meter installed on ship/terminal (e.g. time at start of fuel transfer, mass in air, begin forward inversion in air, totaliser loading and delivery at operation start etc.), AIS data such as longitude and latitude from the bunker tanker and other equipment data (e.g. storage tank data, pump data, temperature gauge data etc.). The physical transfer end data (which can be recorded as physical transfer end block on the blockchain) can include transaction end time, mass flow data from mass flow meter installed on ship/terminal (e.g. time at end of fuel transfer, end forward inversion in air, totaliser loading and delivery at operation end etc.), AIS data such as longitude and latitude from the bunker tanker and other equipment data (e.g. storage tank data, pump data, temperature gauge data etc.). In some embodiments, the mass flow data can be calculated with sounding methods (e.g. with sounding or measuring tapes), which can determine the volume of bulk cargo transferred.
[0057] In an embodiment, a complete delivery smart contract can include physical transfer start data, physical transfer end data, smart contract 1 unique identifier, geolocation data from both the ships proving that the bunker vessel and receiving vessel match the geolocation requirements in the trade smart contract and delivery location, the date and time specified in the trade smart contract (the date and time when the transaction is carried out must be within the date range specified in trade smart contract) and geolocation data from both the ships proving that the bunker vessel and receiving vessel are side by side during the physical transfer start time and physical transfer end time.
17
[0058] Upon completion of the 3 required blocks based on pre-set parameters (i.e. physical transfer start block, physical transfer end block and smart contract 1 unique identifier, the delivery note smart contract can generate a new block called “smart contract 2 unique identifier” that can be used to generate smart invoice. Information from the complete delivery note contract can be used to generate a bunker delivery note 508. In embodiments, the smart invoice can include “smart contract 1 unique identifier”, “smart contract 2 unique identifier”, information from the bunker delivery note 508 and information from the trade smart contract 410 and delivery note contract 412 which can be used to generate a final price for the transaction. In embodiments, the smart invoice can generate a further smart contract associated with payment and settlement. In embodiments, payment and settlement can occur either via fiat method (via link up with banks) or via utility token payment via crypt-currency settlement. In embodiments, a new block can be generated based on the smart invoice, and can be used to activate the further smart contract. The new block can be identified as “smart invoice unique identifier”.
[0059] Fig. 10 shows a schematic diagram illustrating an exchange of information with a blockchain network, in accordance with embodiments of the disclosure. Digitally signed information (e.g. data sets) received from trusted hardware (e.g. sensors, measuring instruments such as mass flow meters etc.) can use Message Queuing Telemetry Transport (MQTT) (a lightweight, publish-subscribe network protocol) for exchange of information with a blockchain network. For example, a MQTT broker can deploy in the cloud. The vessel can push the digitally signed information (e.g. data sets) received from trusted hardware (e.g. sensors, measuring instruments such as mass flow meters etc.) in real time. The physical supplier can subscribe to the information as a MQTT client. When the transaction begins, the physical MQTT client will get the digitally signed information (e.g. data sets) received from trusted hardware, retrieve the vessel’s AIS location, package the data and transmit to blockchain. The data package can contain the bulk cargo transfer data and geolocation data. The transfer of the bulk cargo transfer data and geolocation data for end transaction will be the same.
[0060] Embodiments of the disclosure provide a method and system that can automate set up multiple smart contracts in the bunker supply chain once a trade is entered. Embodiments of the disclosure can advantageously provide a distributed system. Particularly, different task such as trade, bunker loading, and bunker distributing are executed on the same network through blockchain network. Each participants visits own independent node on the blockchain to ensure that the trade data in the trade chain is transparent and auditable, and trade records are tamper-proof when their ERP is independent.
18
[0061] Moreover, through the alliance chain method, the transaction process adopts the certificate authority (CA) signature to authenticate the participants. Each enterprise has a unique MSP (membership service provider). The root certificate is issued through the CA centre, and each enterprise can establish its own intermedia certificate for internal users through the root certificate. Blockchain can verify transactions with the CA certificates and ensure that the participants on the blockchain are verified.
[0062] Use of multiple smart contracts (or a multi-layer smart contract), through the trade smart contract, delivery note contract, smart invoice and settlement contract can allow the entire process of bulk cargo trade management to be established on the blockchain. As the entire transaction process is completed on the blockchain, embodiments of the invention can provide a controllable process and a tamper-proof operation record.
[0063] Through automatic acquisition of bulk transfer data (e.g. mass flow meter data log) automatic acquisition of vessel and bunker tanker geolocation data, smart contracts can be automatically executed without human intervention, as the initiation and completion of smart contract transactions rely on machine-generated data. Terms of engagement can be recorded in the smart contract which automatically perform verification of the machine-generated data. For example, the quantity and deviation threshold of bunker loading and bunker distributing in the trade order are set in the delivery note contract. An alarm can be sounded if the threshold is exceeded. The distance threshold between the receiving vessel and bunker tanker is set in the Deliver note contract. If the threshold exceeds, the deliver note contract cannot be created. In embodiments, the blockchain network can be configured to compare field details from the trade smart contract to respective field details in the delivery note contract. Field details can include, but is not limited to bunker tanker information (e.g. IMO number of the bunker tanker), vessel information (e.g. IMO number of the vessel), quantity of bulk cargo delivered, transaction start time and date, as well as transaction end time and date. In embodiments, a smart invoice is generated if the field details from the trade smart contract correspond with the respective field details in the delivery note contract (e.g. the bunker tanker and vessel IMO numbers in delivery smart contract are the same as the bunker tanker and vessel IMO numbers in the trade smart contract, and the start and end time of the transaction fall within the time period defined in the trade smart contract).
[0064] Embodiments of the disclosure can advantageously ensure that all smart documents generated from the invention is unique to the transaction as it can include machine generated data from the physical transfer/storage of the bulk cargo rather than from traditional human generated forms (hard copy or electronic). For example, a purchase and sale is automated and linked to a master contract for supply of fuel. The information on the fuel required will be
19
automatically calculated and sent to the invention based on the forward-looking journey to the next port. Information is then sent to the supplier of the fuel for the supply which is automatically included into the first smart contract which will be executed only when a machine generated data verifies that the conditions have been met before leading to the second smart contract and so on. All of which relies on independently verified data. Thus, the process can be fully automated with one smart contract completed before the next one begins and only when the completion of the first smart contract is done will the next contract begins.
[0065] Through a trade specific infrastructure design, implemented via a blockchain network, embodiments of the disclosure can advantageously provide interoperability between different systems of participants in a distributed ledger environment. More advantageously, multiple smart contracts “layering” can ensure that a preceding (e.g. parent) smart contract will be completed by only if predetermined conditions and/or actions or specific information (e.g. bulk cargo transfer data, geolocation data) are received and validated before a subsequent (child) contract can be executed. This can go on n times. These documents generated are stored on the blockchain and can provide an an audit trail of the entire life cycle of the documents.
[0066] Embodiments of the disclosure can advantageously reduce the possibility of fraud due to human interaction in activities (e.g. transportation, storage, purchase, sale and consumption) carried out in logistics associated with bulk commodities (e.g. bulk cargo, liquid bulk communities). Embodiments of the disclosure can also advantageously reduce internal theft or misuse of technology. Entities implementing embodiments of the disclosure can include
[0067] Fig. 11 depicts an example of a computing device 1100, hereinafter interchangeably referred to as a computer system 1100, where one or more such computing devices 1100 may be used to execute the method 300 of Figs. 3A and 3B. One or more components of the exemplary computing device 1100 can also be used to implement the systems 100, 400 as well as the nodes 402, 404, 406 and 408 of blockchain network 400. The following description of the computing device 1100 is provided by way of example only and is not intended to be limiting.
[0068] As shown in Fig. 11, the example computing device 1100 includes a processor 1107 for executing software routines. Although a single processor is shown for the sake of clarity, the computing device 1100 may also include a multi-processor system. The processor 1107 is connected to a communication infrastructure 1106 for communication with other components of the computing device 1100. The communication infrastructure 1106 may include, for example, a communications bus, cross-bar, or network.
20
[0069] The computing device 1100 further includes a main memory 1108, such as a random access memory (RAM), and a secondary memory 1110. The secondary memory 1110 may include, for example, a storage drive 1112, which may be a hard disk drive, a solid state drive or a hybrid drive and/or a removable storage drive 1117, which may include a magnetic tape drive, an optical disk drive, a solid state storage drive (such as a USB flash drive, a flash memory device, a solid state drive or a memory card), or the like. The removable storage drive 1117 reads from and/or writes to a removable storage medium 1177 in a well-known manner. The removable storage medium 1177 may include magnetic tape, optical disk, non-volatile memory storage medium, or the like, which is read by and written to by removable storage drive 1117. As will be appreciated by persons skilled in the relevant art(s), the removable storage medium 1177 includes a computer readable storage medium having stored therein computer executable program code instructions and/or data.
[0070] In an alternative implementation, the secondary memory 1110 may additionally or alternatively include other similar means for allowing computer programs or other instructions to be loaded into the computing device 1100. Such means can include, for example, a removable storage unit 1122 and an interface 1150. Examples of a removable storage unit 1122 and interface 1150 include a program cartridge and cartridge interface (such as that found in video game console devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a removable solid state storage drive (such as a USB flash drive, a flash memory device, a solid state drive or a memory card), and other removable storage units 1122 and interfaces 1150 which allow software and data to be transferred from the removable storage unit 1122 to the computer system 1100.
[0071] The computing device 1100 also includes at least one communication interface 1127. The communication interface 1127 allows software and data to be transferred between computing device 1100 and external devices via a communication path 1126. In embodiments of the disclosure, the communication interface 1127 permits data to be transferred between the computing device 1100 and a data communication network, such as a public data or private data communication network. The communication interface 1127 may be used to exchange data between different computing devices 1100 which such computing devices 1100 form part an interconnected computer network. Examples of a communication interface 1127 can include a modem, a network interface (such as an Ethernet card), a communication port (such as a serial, parallel, printer, GPIB, IEEE 1394, RJ45, USB), an antenna with associated circuitry and the like. The communication interface 1127 may be wired or may be wireless. Software and data transferred via the communication interface 1127 are in the form of signals which can be electronic, electromagnetic, optical or other signals capable of being
21
received by communication interface 1127. These signals are provided to the communication interface via the communication path 1126.
[0072] As shown in Fig. 11, the computing device 1100 further includes a display interface 1102 which performs operations for rendering images to an associated display 1155 and an audio interface 1152 for performing operations for playing audio content via associated speaker(s) 1157.
[0073] As used herein, the term "computer program product" may refer, in part, to removable storage medium 1177, removable storage unit 1122, a hard disk installed in storage drive 1112, or a carrier wave carrying software over communication path 1126 (wireless link or cable) to communication interface 1127. Computer readable storage media refers to any non- transitory, non-volatile tangible storage medium that provides recorded instructions and/or data to the computing device 1100 for execution and/or processing. Examples of such storage media include magnetic tape, CD-ROM, DVD, Blu-ray™ Disc, a hard disk drive, a ROM or integrated circuit, a solid state storage drive (such as a USB flash drive, a flash memory device, a solid state drive or a memory card), a hybrid drive, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computing device 1100. Examples of transitory or non-tangible computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to the computing device 1100 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like.
[0074] The computer programs (also called computer program code) are stored in main memory 1108 and/or secondary memory 1110. Computer programs can also be received via the communication interface 1127. Such computer programs, when executed, enable the computing device 1100 to perform one or more features of embodiments discussed herein. In embodiments, the computer programs, when executed, enable the processor 1107 to perform features of the above-described embodiments. Accordingly, such computer programs represent controllers of the computer system 1100.
[0075] Software may be stored in a computer program product and loaded into the computing device 1100 using the removable storage drive 1117, the storage drive 1112, or the interface 1150. The computer program product may be a non-transitory computer readable medium. Alternatively, the computer program product may be downloaded to the computer system 1100 over the communication path 1126. The software, when executed by the processor 1107,
22
causes the computing device 1100 to perform the necessary operations to execute the method 300 of Figs. 3A and 3B.
[0076] It is to be understood that the embodiment of Fig. 11 is presented merely by way of example to explain the operation and structure of the system 1100. Therefore, in some embodiments one or more features of the computing device 1100 may be omitted. Also, in some embodiments, one or more features of the computing device 1100 may be combined together. Additionally, in some embodiments, one or more features of the computing device 1100 may be split into one or more component parts.
[0077] It will be appreciated that the elements illustrated in Fig. 11 function to provide means for performing the various functions and operations of the system as described in the above embodiments.
[0078] When the computing device 1100 is configured to realise the system 400 to for facilitate a transaction at one or more nodes of a blockchain network, the one or more nodes configured to manage a blockchain, the system 400 will have a non-transitory computer readable medium 1112 having stored thereon an application which when executed causes the system 400 to perform steps comprising: receiving instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, receiving transaction information comprising bulk cargo transfer data and geolocation data, processing the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules and in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, recording the transaction information on the blockchain.
[0079] In embodiments, the computing device 1100 can include at least one processor 1107 and a non-transitory computer-readable storage medium 1112 coupled to the at least one processor 1107 and storing programming instructions for execution by the at least one processor 1107. The programming instructions can instruct the at least one processor 1107 to receive instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules, receive transaction information comprising bulk cargo transfer data and geolocation data, process the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules and in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, record the transaction information on the blockchain.
23
[0080] In some embodiments, the programming instructions can instruct the at least one processor 1107 to process the instructions and recorded transaction information to generate a smart invoice associated with transfer of the bulk cargo.
[0081] In some embodiments, the programming instructions can instruct the at least one processor 1107 to record a cryptographic hash of the smart invoice on the blockchain.
[0082] In some embodiments, the programming instructions can instruct the at least one processor 1107 to receive a request to generate the instructions to setup the smart contract, process the request to verify whether the request is in accordance with an endorsement policy, in response to a determination that the request is in accordance with the endorsement policy, record the request on the blockchain, receive order information comprising the set of rules and process the set of rules and recorded request to generate the instructions to setup the smart contract.
[0083] In some embodiments, the programming instructions can instruct the at least one processor 1107 to record a cryptographic hash of the instructions to setup the smart contract on the blockchain.
[0084] In some embodiments, the programming instructions can instruct the at least one processor 1107 to receive an authorisation from each of the one or more nodes associated with the request, the authorisation generated in response to a determination that the request is digitally signed by one of the one or more nodes.
[0085] In some embodiments, the bulk cargo transfer data comprises temporal mass flow meter data and wherein the geolocation data comprises temporal automatic identification system (AIS) data. In some embodiments, the set of rules comprises bulk cargo transfer requirements, temporal geolocation requirements and respective variability thresholds associated with the bulk cargo transfer requirements and temporal geolocation requirements. In some embodiments, the programming instructions can instruct the at least one processor 1107 to verify whether the bulk cargo transfer data and the geolocation data fall within the respective variability thresholds associated with the bulk cargo transfer requirements and temporal geolocation requirements.
[0086] It will be appreciated by a person skilled in the art that numerous variations and/or modifications may be made to the present disclosure as shown in the specific embodiments without departing from the spirit or scope of the disclosure as broadly described. The present embodiments are, therefore, to be considered in all respects to be illustrative and not restrictive.
24
Claims
Claims A method for facilitating a transaction at one or more nodes of a blockchain network, the one or more nodes configured to manage a blockchain, the method comprising: receiving instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules; receiving transaction information comprising bulk cargo transfer data and geolocation data; processing the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules; and in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, recording the transaction information on the blockchain; wherein the bulk cargo transfer data comprises temporal mass flow data; wherein the set of rules comprises bulk cargo transfer requirements and variability thresholds associated with the bulk cargo transfer requirements; and wherein processing the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules comprises verifying whether the bulk cargo transfer data fall within the variability thresholds associated with the bulk cargo transfer requirements. The method as claimed in claim 1, further comprising processing the instructions and recorded transaction information to generate a smart invoice associated with transfer of the bulk cargo. The method as claimed in claim 2, further comprising recording a cryptographic hash of the smart invoice on the blockchain. The method as claimed in any one of claims 1 to 3, further comprising: receiving a request to generate the instructions to setup the smart contract; processing the request to verify whether the request is in accordance with an endorsement policy; in response to a determination that the request is in accordance with the endorsement policy, recording the request on the blockchain; receiving order information comprising the set of rules; and
25
processing the set of rules and recorded request to generate the instructions to setup the smart contract. The method as claimed in claim 4, further comprising recording a cryptographic hash of the instructions to setup the smart contract on the blockchain. The method as claimed in claim 4 or 5, wherein processing the request to verify whether the request is in accordance with the endorsement policy comprises receiving an authorisation from each of the one or more nodes associated with the request, the authorisation generated in response to a determination that the request is digitally signed by one of the one or more nodes. The method as claimed in any one of claims 1 to 6, wherein the geolocation data comprises temporal automatic identification system (AIS) data. The method as claimed in claim 7, wherein the set of rules comprises temporal geolocation requirements and variability thresholds associated with the temporal geolocation requirements. The method as claimed in claim 8, wherein processing the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules comprises verifying whether the geolocation data fall within the variability thresholds associated with the temporal geolocation requirements. A system for facilitating a transaction at one or more nodes of a blockchain network, the one or more nodes configured to manage a blockchain, the system comprising: a processing device configured to: receive instructions to setup a smart contract for determining whether a bulk cargo has been transferred according to a set of rules; receive transaction information comprising bulk cargo transfer data and geolocation data; process the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules; and
26
in response to a determination that the bulk cargo transfer data and the geolocation data are in accordance with the set of rules, record the transaction information on the blockchain wherein the bulk cargo transfer data comprises temporal mass flow data; wherein the set of rules comprises bulk cargo transfer requirements and variability thresholds associated with the bulk cargo transfer requirements; and wherein processing the transaction information using the smart contract to determine whether the bulk cargo transfer data and the geolocation data are in accordance with the set of rules comprises verifying whether the bulk cargo transfer data fall within the variability thresholds associated with the bulk cargo transfer requirements. The system as claimed in claim 10, wherein the processing device is further configured to process the instructions and recorded transaction information to generate a smart invoice associated with transfer of the bulk cargo. The system as claimed in claim 11, wherein the processing device is further configured to record a cryptographic hash of the smart invoice on the blockchain. The system as claimed in any one of claims 10 to 12, wherein the processing device is further configured to: receive a request to generate the instructions to setup the smart contract; process the request to verify whether the request is in accordance with an endorsement policy; in response to a determination that the request is in accordance with the endorsement policy, record the request on the blockchain; receive order information comprising the set of rules; and process the set of rules and recorded request to generate the instructions to setup the smart contract. The system as claimed in claim 13, wherein the processing device is further configured to record a cryptographic hash of the instructions to setup the smart contract on the blockchain. The system as claimed in claim 14, wherein the processing device is configured to receive an authorisation from each of the one or more nodes associated with the
27
request, the authorisation generated in response to a determination that the request is digitally signed by one of the one or more nodes. The system as claimed in any one of claims 10 to 15, wherein the geolocation data comprises temporal automatic identification system (AIS) data. The system as claimed in claim 16, wherein the set of rules comprises temporal geolocation requirements and variability thresholds associated with the temporal geolocation requirements. The system as claimed in claim 17, wherein the processing device is configured to verify whether the geolocation data fall within the variability thresholds associated with the temporal geolocation requirements.
28
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG10202104979S | 2021-05-12 | ||
SG10202104979S | 2021-05-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022240361A1 true WO2022240361A1 (en) | 2022-11-17 |
Family
ID=84029908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/SG2022/050309 WO2022240361A1 (en) | 2021-05-12 | 2022-05-11 | Method and system for facilitating a transaction at one or more nodes of a blockchain network |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2022240361A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160098723A1 (en) * | 2014-10-01 | 2016-04-07 | The Filing Cabinet, LLC | System and method for block-chain verification of goods |
US20160217399A1 (en) * | 2015-01-22 | 2016-07-28 | Elementum Scm (Cayman) Ltd. | Method and system for monitoring shipments in a supply and/or logistics chain |
US20200311644A1 (en) * | 2018-07-19 | 2020-10-01 | America's Collectibles Network, Inc. | System and method for performing bulk pick of items of a customer order |
-
2022
- 2022-05-11 WO PCT/SG2022/050309 patent/WO2022240361A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160098723A1 (en) * | 2014-10-01 | 2016-04-07 | The Filing Cabinet, LLC | System and method for block-chain verification of goods |
US20160217399A1 (en) * | 2015-01-22 | 2016-07-28 | Elementum Scm (Cayman) Ltd. | Method and system for monitoring shipments in a supply and/or logistics chain |
US20200311644A1 (en) * | 2018-07-19 | 2020-10-01 | America's Collectibles Network, Inc. | System and method for performing bulk pick of items of a customer order |
Non-Patent Citations (2)
Title |
---|
HELO PETRI; SHAMSUZZOHA A.H.M.: "Real-time supply chain—A blockchain architecture for project deliveries", ROBOTICS AND COMPUTER INTEGRATED MANUFACTURING., ELSEVIER SCIENCE PUBLISHERS BV., BARKING., GB, vol. 63, 3 December 2019 (2019-12-03), GB , XP086019176, ISSN: 0736-5845, DOI: 10.1016/j.rcim.2019.101909 * |
MARTINEZ-RENDON CRISTHIAN; CAMARMAS-ALONSO DIEGO; CARRETERO JESUS; GONZALEZ-COMPEAN JOSE L.: "On the continuous contract verification using blockchain and real-time data", CLUSTER COMPUTING, BALTZER SCIENCE PUBLISHERS, BUSSUM,, NL, vol. 25, no. 3, 23 February 2021 (2021-02-23), NL , pages 2179 - 2201, XP037836715, ISSN: 1386-7857, DOI: 10.1007/s10586-021-03252-0 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359974B (en) | Block chain transaction method and device and electronic equipment | |
US11233641B2 (en) | Systems and methods for using distributed attestation to verify claim of attestation holder | |
CN110009337B (en) | Data processing method and device based on block chain | |
US11295303B2 (en) | Method, apparatus and electronic device for blockchain transactions | |
US20200043001A1 (en) | Pet Food Traceability System and Method Therefor | |
US11887072B2 (en) | Digital currency minting in a system of network nodes implementing a distributed ledger | |
US20200042958A1 (en) | Systems and methods for providing transaction provenance of off-chain transactions using distributed ledger transactions with secured representations of distributed ledger addresses of transacting parties | |
US10484168B2 (en) | Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger | |
US20200045020A1 (en) | Systems and methods for hiding identity of transacting party in distributed ledger transaction by hashing distributed ledger transaction id using secured representation of distributed ledger address of transacting party as a key | |
CN113767382B (en) | Method and system for universal source solution for blockchain supply chain applications | |
CN111989707B (en) | Managing user rights for blockchain-based customs clearance services | |
CN111989663B (en) | Intelligent contract pool based on block chain | |
US20120187185A1 (en) | System and method for detecting counterfeit products and documents, and tracking and authenticating documents | |
WO2020157708A2 (en) | Point-to-point distributed decentralized system | |
CN109559224A (en) | Reference appraisal procedure and device, electronic equipment | |
CN108881166A (en) | A kind of virtual account block chain of band external fixture reason node type verifies system | |
US11848917B2 (en) | Blockchain-based anonymous transfers zero-knowledge proofs | |
CN111936995A (en) | Distributed storage of customs clearance data | |
US20190266612A1 (en) | System and method for verifying products using blockchain | |
US20220027803A1 (en) | Sustainable tokens for supply chain with privacy preserving protocol | |
US11888991B2 (en) | Universally trusted bridges for heterogenous blockchain networks | |
JP2020522831A (en) | System and method for credibility and validity verification of crowdsourcing users | |
CN111353893A (en) | Transaction data processing method and device based on block chain | |
CN113987061A (en) | Block chain evidence storage method and device | |
CN112561407B (en) | Asset management method, system and device based on block chain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22807956 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22807956 Country of ref document: EP Kind code of ref document: A1 |