-
Notifications
You must be signed in to change notification settings - Fork 305
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
spec: flesh out more the encrypted parts of a tx (#4105)
Signed-off-by: redshiftzero <[email protected]> Co-authored-by: katelyn martin <[email protected]>
- Loading branch information
1 parent
d3014e4
commit cba996f
Showing
9 changed files
with
81 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Transaction Memo | ||
|
||
The transaction-level memo field is optional, and will be present _if and only if_ the transaction has outputs. A consensus rule will reject transactions with memos that have no outputs, and transactions that have outputs but lack a memo. | ||
|
||
## Memo Plaintext | ||
|
||
The plaintext of the memo contains: | ||
|
||
* a return address (80 bytes for Penumbra addresses) | ||
* a text string that is 432 bytes in length | ||
|
||
## Privacy | ||
|
||
The transaction-level encrypted memo is visible only to the sender and receiver(s) of the transaction. | ||
|
||
Each memo is encrypted using the *Memo Key*, a symmetric ChaCha20-Poly1305 key generated randomly as described [here](../addresses_keys/transaction_crypto.md#random-memo-key). The Memo Key is then encrypted using data from each output following [this section](../addresses_keys/transaction_crypto.md#per-action-payload-key-notes-and-memo-key). This *Wrapped Memo Key* is then added to each individual [Output](../shielded_pool/action/output.md#output-body). |