Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0006-payment-proofs.md #31

Merged
merged 6 commits into from
Dec 3, 2019
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Create 0000-payment-proofs.md
  • Loading branch information
DavidBurkett authored Nov 5, 2019
commit f4fde30c5b0412dae0b991961f6bc887d4e735a5
64 changes: 64 additions & 0 deletions text/0000-payment-proofs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
- Title: payment-proofs
- Authors: [David Burkett](mailto:davidburkett38@gmail.com)

---
DavidBurkett marked this conversation as resolved.
Show resolved Hide resolved

# Summary
[summary]: #summary

Support generating and validating payment proofs for sender-initiated (ie. non-invoice) transactions.
DavidBurkett marked this conversation as resolved.
Show resolved Hide resolved

# Motivation
[motivation]: #motivation

Bitcoin and other cryptocurrencies with transparent protocol-level addressing and immutable, unpruneable blockchains can prove sender, receiver, and amounts of payments simply by pointing to the transaction in the blockchain.
DavidBurkett marked this conversation as resolved.
Show resolved Hide resolved
Grin's privacy and scalability means users no longer have this ability. This prevents some merchants from accepting Grin due to the high possibility of payment disputes that are unresolvable in the same way they are for transparent coins.

This RFC proposes a change to the transaction building process where payers can require payees to create a "proof" they've received a payment before the payer finalizes and broadcasts the transaction.
DavidBurkett marked this conversation as resolved.
Show resolved Hide resolved

# Community-level explanation
[community-level-explanation]: #community-level-explanation

From an end-user perspective, payers can require payees to prove receipt of funds as part of the transacting process.
Payers can then use these "proofs", along with information from the blockchain, to resolve payment disputes and prove funds were sent to the correct payee, and the transaction was confirmed on the blockchain.
DavidBurkett marked this conversation as resolved.
Show resolved Hide resolved

# Reference-level explanation
[reference-level-explanation]: #reference-level-explanation

## Common workflow

## Slate changes

## Generating proofs

## Verifying proofs

## Wallet actions
### init-send

### receive

### finalize

# Drawbacks
[drawbacks]: #drawbacks

* Drawback 1
* Drawback 2

# Unresolved questions
DavidBurkett marked this conversation as resolved.
Show resolved Hide resolved
[unresolved-questions]: #unresolved-questions

* Can this be adapted to work for invoices?
DavidBurkett marked this conversation as resolved.
Show resolved Hide resolved
* Question 2

# Future possibilities
[future-possibilities]: #future-possibilities

None

# References
[references]: #references

None