Home Patent Forecast® Sectors Log In   Contact  
How it works Patent Forecast® Sectors Insights
Menu
Enjoy your FREE PREVIEW which shows only 2022 data and 25 documents. Contact Patent Forecast for full access.        

Cryptocurrency: Security

Search All Applications in Cryptocurrency: Security


Application US20160358165


Published 2016-12-08

Cryptographically Concealing Amounts Transacted On A Ledger While Preserving A Network's Ability To Verify The Transaction

Systems and methods are described for encrypting an amount transacted on a blockchain ledger, while preserving the transaction's ability to be verified. A blinding amount is added to an input value, and an output value is generated and encrypted. Both the input value and the output value are within a value range, where a sum of any two values within the range does not exceed an overflow threshold. The sum of the encrypted input value and the encrypted output value may equal zero. Rangeproofs associated with each of the input value and the output value are generated. The rangeproofs prove that the input value and the output value fall within the value range, and each rangeproof may be associated with a different public key. Each public key may be signed with a ring signature based on a public key of a recipient in the transaction.



Much More than Average Length Specification


View the Patent Matrix® Diagram to Explore the Claim Relationships

USPTO Full Text Publication >

3 Independent Claims

  • 1. A method for encrypting an amount transacted on a blockchain ledger, the method comprising: adding, by a processor, a blinding amount to an input value being transacted, thereby created an encrypted input value; generating, by the processor, an output value corresponding to the input value; encrypting, by the processor, the generated output value to create an encrypted output value, the encrypted output value including a corresponding blinding amount such that the input value blinding amount and the generated output value blinding amount cancel each other out when added together, wherein both the input value and the output value being transacted are values falling with a value range, the value range being defined so that a sum of any two values within the range does not exceed an overflow threshold, a sum of the encrypted input value and the encrypted output value equaling zero; generating, by the processor, a plurality of rangeproofs, wherein a different rangeproof is associated with each of the input value being transacted and the generated output value, the rangeproofs showing that the value associated with the rangeproof falls within the value range, each rangeproof being associated with a different public key; signing each public key, by the processor, with a ring signature based on a public key of a recipient, thereby encrypting the plurality of rangeproofs, wherein a single memory amount is shared among each pubkey; storing, by the processor, the encrypted input value, the encrypted output value, and the encrypted rangeproofs in a block, the block being subsequently published on a blockchain.

  • 12. A method for verifying an encrypted transaction on a blockchain ledger, the method comprising: receiving, by a processor, an encrypted input value, an encrypted output value, and encrypted rangeproofs in a block appended to the blockchain; extracting the encrypted input value and the encrypted output value from the received block, the encrypted input value comprising an input value being transacted and a blinding amount, the encrypted output value also comprising an associated blinding amount; verifying the transaction if the sum of the encrypted input value and the encrypted output value is zero; and denying verification to the transaction if the sum of the encrypted input value and the encrypted output value is a nonzero value.

  • 13. A method for decrypting an amount transacted on a blockchain ledger, the method comprising: retrieving a block from a blockchain, the block comprising an encrypted input value, an encrypted output value, and encrypted rangeproofs corresponding to each of the encrypted input value and the encrypted output value; generating a ring signature using a private key, the ring signature being associated with a correctly-valued public key for each digit of the encrypted input value, the correctly-valued public key being selected from a group of four public keys for each digit of the encrypted input value; applying an XOR operation to the smallest digit of the ring encrypted input value; repeating the applying the XOR operation to each digit of the ring encrypted input value; identifying a repeated pattern within an output of the XOR operation; and using the positions of the repeated pattern within the output of the XOR operation to determine the input value from the encrypted input value.