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

Make memos mandatory #905

Closed
cbeck88 opened this issue Sep 13, 2021 · 3 comments
Closed

Make memos mandatory #905

cbeck88 opened this issue Sep 13, 2021 · 3 comments

Comments

@cbeck88
Copy link
Contributor

cbeck88 commented Sep 13, 2021

In our release plan for the encrypted memos feature, we will do one release where memos are optional, and in a subsequent release, the memos will be mandatory for every transaction output.

This is intended to make the upgrade path easier for clients.

(See MCIP #3 for details on encrypted memos feature mobilecoinfoundation/mcips#3)

This ticket tracks the task of making the memos mandatory.

@UkoeHB
Copy link
Contributor

UkoeHB commented Sep 15, 2021

Protocol rules? Are you planning to write an MCIP? (I have had pending proposals for this kind of thing for... 5 months?)

@cbeck88
Copy link
Contributor Author

cbeck88 commented Sep 15, 2021

The in-flight mcip proposes that the memos are mandatory.

The e_memo field shall appear on every MobileCoin TxOut, starting with BLOCK_VERSION = 1.

But to accommodate a graceful update, we determined that there has to be a transitional period where they are optional, because we can't force all the clients to update simulatenously with the servers. In testing we discovered that if the clients update first and start writing memos, but the servers are not yet updated and drop the unknown field in the protobuf, that causes the TxPrefix hash to be computed differently, and a ring signature mismatch. So updating the clients first isn't actually an option, which we had hoped might work.

I don't think we need an additional mcip for this but we could update the mcip to describe that there is an interim period in which they are optional and in a later consensus release they become mandatory.

Thanks for pointing this out. The optional thing is not in trunk yet, it is an in-flight PR.

@jcape
Copy link
Contributor

jcape commented Feb 14, 2022

Superceeded by mobilecoinfoundation/mcips#26

@jcape jcape closed this as completed Feb 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants