US2018114218A1PendingUtilityA1

Blockchain: automatic fork protection

Assignee: IBMPriority: Oct 26, 2016Filed: Oct 26, 2016Published: Apr 26, 2018
Est. expiryOct 26, 2036(~10.3 yrs left)· nominal 20-yr term from priority
G06Q 20/382G06Q 20/401H04L 67/10H04L 9/50G06Q 40/08G06Q 20/065H04L 9/3236
58
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Systems and methods for providing automatic fork protection including determining that a transaction having fork protection was included in a first block that was appended to a blockchain, that a hash of the first block was validated, that a consensus decision was made by validator nodes approving the first block for addition to the blockchain, that a second block was appended to the blockchain after the first block, that the second block comprises a hash that is not based on the first block, that the first block was on a first fork and the second block was on a second fork, that the blockchain was resolved in favor of the second fork, and that the transaction failed as a result of the blockchain being resolved in favor of the second fork. The method including compensating a party that submitted the failed transaction based on the fork protection.

Claims

exact text as granted — not AI-modified
1 . A method for providing automatic fork protection in a blockchain, the method comprising:
 receiving, by an automated fork protection system including at least one processor comprising hardware, a notification that a transaction submitted for addition to a blockchain by a party has failed;   determining, by the automated fork protection system, that the transaction included at least one transaction term and a fork protection field, the fork protection field including an identification of a fork protection providing entity;   in response to receiving the notification and determining that the transaction included the fork protection field, automatically:
 requesting, by the automated fork protection system, a ledger of the blockchain from at least one node associated with the blockchain; 
 analyzing, by the automated fork protection system, the ledger of the blockchain to determine whether a fork occurred in the blockchain; 
 determining, by the automated fork protection system, based on the analysis of the ledger, that a fork occurred in the blockchain including a first branch and a second branch, that the first branch of the fork included a first block and the second branch of the fork included a second block, and that each of the first and second blocks comprises a hash based at least in part on a third block of the blockchain, the third block of the blockchain having been appended to the blockchain prior to the fork; 
 in response to determining that the fork occurred, further determining, by the automated fork protection system, that the transaction was included in the first block, that the first block was validated by at least one node associated with the blockchain, that a consensus decision was made by validator nodes associated with the blockchain approving the first block for addition to the blockchain, that a hash of the second block is not based at least in part on the first block, that the fork in the blockchain was resolved in favor of the second branch of the fork with the second block being appended to the blockchain and the first block being orphaned, and that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork and the first block containing the transaction being orphaned; and 
 in response to the determining that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork and the first block containing the transaction being orphaned, automatically, by the automated fork protection system, submitting a new transaction to the blockchain, the new transaction including at least one term transferring a compensation from the fork protection providing entity identified in the fork protection field to the party for at least a portion of a loss suffered by the party due to the failure of the transaction as a result of the fork. 
   
     
     
         2 . The method of  claim 1 , wherein determining that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork comprises determining that a value used for the transaction was double spent by a transaction found in a block appended to the second branch of the fork of the blockchain. 
     
     
         3 . The method of  claim 1 , wherein determining that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork comprises determining that the transaction was lost. 
     
     
         4 . The method of  claim 3 , wherein determining that the transaction was lost comprises:
 determining that the transaction returned to a transaction pool of the blockchain; and   determining that the transaction was not selected for addition to new block by a validator node of the blockchain within a pre-determined period of time after being returned to the transaction pool.   
     
     
         5 . The method of  claim 1 , wherein the transaction further comprises a fork protection fee field, the fork protection fee field indicating a fee paid to the fork protection providing entity. 
     
     
         6 .- 7 . (canceled) 
     
     
         8 . The method of  claim 1 , wherein the fork protection field is linked to a separate transaction submitted for addition to the blockchain, the separate transaction identifying:
 the transaction submitted for addition to the blockchain by the party;   the fork protection providing entity; and   a fork protection fee to be paid to the fork protection providing entity by the party that submitted the transaction for addition to the blockchain.   
     
     
         9 . An automated fork protection system for providing automatic fork protection in a blockchain comprising:
 at least one hardware processor configured to:
 receive a notification that a transaction submitted for addition to a blockchain by a party has failed; 
 determine that the transaction included at least one transaction term and a fork protection field, the fork protection field including an identification of a fork protection providing entity; 
 in response to receiving the notification and determining that the transaction included the fork protection field, automatically:
 request a ledger of the blockchain from at least one node associated with the blockchain; 
 analyze the ledger of the blockchain to determine whether a fork occurred in the blockchain; 
 determine, based on the analysis of the ledger, that a fork occurred in the blockchain including a first branch and a second branch, that the first branch of the fork included a first block and the second branch of the fork included a second block, and that each of the first and second blocks comprises a hash based at least in part on a third block of the blockchain, the third block of the blockchain having been appended to the blockchain prior to the fork; 
 in response to determining that the fork occurred, further determine that the transaction was included in the first block, that the first block was validated by at least one node associated with the blockchain, that a consensus decision was made by validator nodes associated with the blockchain approving the first block for addition to the blockchain, that a hash of the second block is not based at least in part on the first block, that the fork in the blockchain was resolved in favor of the second branch of the fork with the second block being appended to the blockchain and the first block being orphaned, and that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork and the first block containing the transaction being orphaned; and 
 in response to the determining that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork and the first block containing the transaction being orphaned, automatically submit a new transaction to the blockchain, the new transaction including at least one term transferring compensation from the fork protection providing entity identified in the fork protection field to the party for at least a portion of a loss suffered by the party due to the failure of the transaction as a result of the fork. 
 
   
     
     
         10 . The system of  claim 9 , wherein determining that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork comprises determining that a value used for the transaction was double spent by a transaction found in a block appended to the second branch of the fork of the blockchain. 
     
     
         11 . The system of  claim 9 , wherein determining that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork comprises determining that the transaction was lost. 
     
     
         12 . The system of  claim 11 , wherein determining that the transaction was lost comprises:
 determining that the transaction returned to a transaction pool of the blockchain; and   determining that the transaction was not selected for addition to new block by a validator node of the blockchain within a pre-determined period of time after being returned to the transaction pool.   
     
     
         13 . The system of  claim 9 , wherein the transaction further fork protection comprises a fork protection fee field, the fork protection fee field indicating a fee paid to the fork protection providing entity. 
     
     
         14 .- 15 . (canceled) 
     
     
         16 . The system of  claim 9 , wherein the fork protection field is linked to a separate transaction submitted for addition to the blockchain, the separate transaction identifying:
 the transaction submitted for addition to the blockchain by the party;   the fork protection providing entity; and   a fork protection fee to be paid to the fork protection providing entity by the party that submitted the transaction for addition to the blockchain.   
     
     
         17 . A non-transitory computer readable medium comprising instructions that, when executed by at least one hardware processor of an automated fork protection system, configure the at least one hardware processor to:
 receive a notification that a transaction submitted for addition to a blockchain by a party has failed;   determine that the transaction included at least one transaction term and a fork protection field, the fork protection field including an identification of a fork protection providing entity;   in response to receiving the notification and determining that the transaction included the fork protection field, automatically:
 requesting a ledger of the blockchain from at least one node associated with the blockchain; 
 analyze the ledger of the blockchain to determine whether a fork occurred in the blockchain; 
 determine, based on the analysis of the ledger, that a fork occurred in the blockchain including a first branch and a second branch, that the first branch of the fork included a first block and the second branch of the fork included a second block, and that each of the first and second blocks comprises a hash based at least in part on a third block of the blockchain, the third block of the blockchain having been appended to the blockchain prior to the fork; 
 in response to determining that the fork occurred, further determine that the transaction was included in the first block, that the first block was validated by at least one node associated with the blockchain, that a consensus decision was made by validator nodes associated with the blockchain approving the first block for addition to the blockchain, that a hash of the second block is not based at least in part on the first block, that the fork in the blockchain was resolved in favor of the second branch of the fork with the second block being appended to the blockchain and the first block being orphaned, and that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork and the first block containing the transaction being orphaned; and 
 in response to the determining that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork and the first block containing the transaction being orphaned, automatically submit a new transaction to the blockchain, the new transaction including at least one term transferring compensation from the fork protection providing entity identified in the fork protection field to the party for at least a portion of a loss suffered by the party due to the failure of the transaction as a result of the fork. 
   
     
     
         18 .- 19 . (canceled) 
     
     
         20 . The non-transitory computer readable medium of  claim 17 , wherein the fork protection field is linked to a separate transaction submitted for addition to the blockchain, the separate transaction identifying:
 the transaction submitted for addition to the blockchain by the party;   the fork protection providing entity; and   a fork protection fee to be paid to the fork protection providing entity by the party that submitted the transaction for addition to the blockchain.   
     
     
         21 . The non-transitory computer readable medium of  claim 17 , wherein determining that the transaction failed as a result of the blockchain being resolved in favor of the second branch of the fork comprises determining that a value used for the transaction was double spent by a transaction found in a block appended to the second branch of the fork of the blockchain. 
     
     
         22 . The non-transitory computer readable medium of  claim 17 , wherein the transaction further comprises a fork protection fee field, the fork protection fee field indicating a fee paid to the fork protection providing entity.

Join the waitlist — get patent alerts

Track US2018114218A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.