PARALLEL PATHS IN A RESOURCE TRANSFER SYSTEM
Systems and techniques are provided for a resource transfer system. An instruction to transfer a first quantity of a resource from a first resource pool to a second resource pool may be received. A hold may be placed on a second quantity of the resource in the first resource pool. The held second quantity of the first resource may not be transferred from the first resource pool until the hold is released. Responsive to receiving a message that fulfills a condition on the hold and an instruction to execute the transfer, the hold may be released. A register that is in the first resource pool and is associated with the resource may decremented by the first quantity, and a register that is in the second resource pool and is associated with the resource may be incremented by the first quantity.
1 . A computer-implemented method performed on a data processing apparatus comprising:
receiving an instruction to transfer a first quantity of a first resource type from a first resource pool to a second resource pool and a second quantity of the first resource type from the first resource pool to a third resource pool;
receiving an instruction to place a first hold on a third quantity and a second hold on a fourth quantity of the first resource type in the first resource pool;
receiving an authorization to place the first hold on the third quantity and the second hold on the fourth quantity of the first resource type in the first resource pool;
responsive to receiving the authorization, placing the first hold on the third quantity of the first resource type and placing the second hold on the fourth quantity of the first resource type in the first resource pool to create a held third quantity and a held fourth quantity of the first resource type, wherein the held third quantity cannot be transferred from the first resource pool until the first hold is released and the held fourth quantity of the first resource type cannot be transferred from the first resource pool until the second hold is released;
receiving a message that fulfills a condition of the first hold;
receiving an instruction to execute the transfer of the first quantity of the first resource type from the first resource pool to the second resource pool; and
responsive to receiving the message that fulfills the condition on the first hold and the instruction to execute the transfer, releasing the hold on the held third quantity of the first resource type, decrementing a first register that is in the first resource pool and is associated with the first resource type by the first quantity, and incrementing a second register that is in the second resource pool and is associated with the first resource type by the first quantity.
2 . The method of claim 1 , further comprising:
receiving a message that fulfills a condition of the second hold;
receiving an instruction to execute the transfer of the second quantity of the first resource type from the first resource pool to the third resource pool; and
responsive to receiving the message that fulfills the condition on the second hold and the instruction to execute the transfer, releasing the hold on the held fourth quantity of the first resource type, decrementing a first register that is in the first resource pool and is associated with the first resource type by the second quantity, and incrementing a third register that is in the third resource pool and is associated with the first resource type by the second quantity.
3 . The method of claim 1 , further comprising:
sending a transfer confirmation receipt indicating the decrementing of the first register and incrementing of the second register.
4 . The method of claim 1 , further comprising:
sending a transfer confirmation receipt indicating the decrementing of the first register and incrementing of the third register.
5 . The method of claim 1 , wherein the condition of the first hold and the condition of the second hold are fulfilled by a message that is a signed message from a trusted system, and wherein the signed message is signed with a private key cryptographic and verified with a public cryptographic key.
6 . The method of claim 1 , wherein the condition on the first hold is fulfilled by a message that is a transfer confirmation receipt indicating that a fourth register that is in a fourth resource pool and is associated with a second resource type was decremented by a fifth quantity, and a fifth register that is in a fifth resource pool and is associated with second resource type was incremented by the fifth quantity.
7 . The method of claim 6 , wherein the second resource pool and the fifth resource pool track resources controlled by a first party.
8 . The method of claim 1 , wherein the authorization to place the first hold and the authorization to place the second hold both comprises a message having a statement signed by a private cryptographic key of a first party that controls resources tracked by the first resource pool.
9 . The method of claim 8 , further comprising verifying the statement signed by the private cryptographic key of the first party before placing the first hold and the second hold.
10 . The method of claim 1 , further comprising:
after placing the first hold, sending a prepared transfer receipt indicating that the first hold has been placed; and
after placing the second hold, sending a prepared transfer receipt indicating that the second hold has been placed.
11 . The method of claim 1 , wherein releasing the first hold on the third quantity of the first resource type, decrementing a first register that is in the first resource pool and is associated with the first resource type by the first quantity, and incrementing a second register that is in the second resource pool and is associated with the first resource type by the first quantity, are performed deterministically on receiving the message that fulfills the condition on the first hold and the instruction to execute the transfer of the first quantity of the first resource type and cannot be halted.
12 . The method of claim 1 , wherein the resource type comprises a currency, cryptocurrency, financial instrument, commodity, physical good, specific item or items, or computational resource.
13 . A computer-implemented method performed on a data processing apparatus comprising:
receiving an instruction to transfer a first quantity of a first resource type from a first resource pool to a second resource pool and a second quantity of the first resource type from a third resource pool to the second resource pool;
receiving an instruction to execute the transfer of the first quantity of the first resource type from the first resource pool to the second resource pool; and
responsive to the instruction to execute the transfer, decrementing a first register that is in the first resource pool and is associated with the first resource type by the first quantity, and incrementing a second register that is in the second resource pool and is associated with the first resource type by the first quantity.
14 . The method of claim 13 , further comprising:
receiving an instruction to execute the transfer of the second quantity of the first resource type from the third resource pool to the second resource pool; and
responsive to the instruction to execute the transfer, decrementing a third register that is in the third resource pool and is associated with the first resource type by the second quantity, and incrementing the second register that is in the second resource pool and is associated with the first resource type by the first quantity.
15 . The method of claim 13 , further comprising:
before receiving an instruction to execute the transfer of the first quantity of the first resource type from the first resource pool to the second resource pool:
receiving an instruction to place a first hold on a third quantity of the first resource type in the first resource pool;
receiving an instruction to place a second hold on a fourth quantity of the first resource type in the third resource pool;
receiving an authorization to place the first hold on the third quantity of the first resource type in the first resource pool;
receiving an authorization to place the second hold on the fourth quantity of the first resource type in the third resource pool; and
responsive to receiving the authorization, placing the first hold on the third quantity of the first resource type in the first resource pool to create a held third quantity and placing the second hold on the fourth quantity of the first resource type in the third resource pool to create a held fourth quantity of the first resource type, wherein the held third quantity cannot be transferred from the first resource pool until the first hold is released and the held fourth quantity of the first resource type cannot be transferred from the third resource pool until the second hold is released.
16 . The method of claim of claim 15 , further comprising:
receiving a message that fulfills a condition of the first hold; and
releasing the hold on the held third quantity of the first resource type responsive to receiving the message that fulfills the condition on the first hold.
17 . The method of claim 15 , further comprising:
receiving a message that fulfills a condition of the second hold; and
releasing the hold on the held third quantity of the first resource type responsive to receiving the message that fulfills the condition on the second hold.
18 . A computer-implemented method performed on a data processing apparatus comprising:
receiving a message comprising a proposed transfer, wherein the proposed transfer comprises a destination transfer of a first quantity of a first resource type from a first resource pool to a second resource pool and a second quantity of the first resource type from the first resource pool to a third resource pool; and
sending at least one message associated with the performance of the destination transfer.
19 . The method of claim 18 , wherein the proposed transfer further comprises a source transfer of a fourth quantity of a second resource type from a fourth resource pool to a fifth resource pool, and further comprising:
receiving a message indicating that a hold has been placed on a fourth quantity of the second resource type in the fourth resource pool;
receiving a message indicating that a condition on the hold of the fourth quantity of the second resource type in the fourth resource pool has been fulfilled; and
sending an instruction to execute the source transfer of the fourth quantity of the second resource type from the fourth resource pool to the fifth resource pool.
20 . The method of claim 18 , wherein sending the at least one message associated with performance of the destination transfer further comprises one or more of:
sending an authorization allowing the placement of a hold on a fourth quantity of the first resource type in the first resource pool and a hold on a fifth quantity of the first resource type in the first resource pool; and
sending an instruction to execute a destination transfer of the first quantity of the first resource type from the first resource pool to the second resource pool and of the second quantity of the first resource type from the first resource pool to the third resource pool.