LNP-BP / LNP-BP/LNPBPs

Possible proofs for fungible assets pruning in RGB-20

Open
#28 0 comments 0 reactions 5 assignees View on GitHub

@sabina-sa is already working on this.

Since May 8, 2020.

  • #136 by @dr-orlovsky — merged
[RGB] enhancement proposal
Dominant language
No language data
Stars
202
Forks
39
PR merge metrics
No merged PRs in 30d

Description

There are some possibilities to make asset pruning verifiable; here I try to summarize them.

## Zero-knowledge proofs

The proofs can be made with probabilistic checkable proofs procedure - or, potentially with bulletproofs and these proofs can be included as a binary data state attached to prune seal into pruning state transition.

The issuer during the pruning operation does usual verification process for the pruned assets (confidential amount verification and anchor verification). This process is then encoded as a Simplicity script with inputs used at each of its steps. Next, the issuer computes hash this script with its data and uses it to construct probabilistic checkable proof for 1 to 10% of the proof work (or a bulletproof). This part is serialized and supplied with prune state transition, so any party having these data may verify that the issuer was honest during the pruning process and had not created an asset inflation.

## Pruning audit

Another alternative may be that the issuer adds to the pruning transition signatures of independent auditors confirming the correctness of the pruning operation. These auditors verify the complete pruning process with all source data.

The auditors may be
* pre-defined in the issue procedure
* parties selected by the issuer during the pruning
* randomly selected from a set of existing public auditors using some sort of Fiat-Shamir heuristic (like we use some hash of the pruning transition created in such a way that the issuer can not maleate it)

In the latter case we may even use future RGB reputation schema to define the set of auditors in a decentralized fashion

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.