CIP: 12 Title: Memo Requirement through Broadcasts Authors: Jeremy Johnson Discussions-To: https://counterpartytalk.org/t/memo-requirement-through-broadcasts/3147 Status: Draft Type: Standards Created: 2017-06-07
Any user should be able to mark an address under their control as memo-required. The protocol should track this memo requirement and prevent any sends to the address without a memo.
To lessen end user support costs by enforcing a memo requirement at the protcol level.
CIP9 allows for specifying a memo in a send transaction, which can reduce the FEES cost for exchanges by allowing customers to make deposits directly to an exchange hot-wallet. The data in the 'memo' field is used to associate a transaction with a specific customer, and removes the requirement that each customer have their own deposit address. However, there is still a non-trivial SUPPORT cost associated with tracking down customer deposits without a memo.
By allowing an exchange to mark their address as memo-required, and rejecting sends without a memo, they are able to reduce their support costs.
Enforcing a memo requirement at the protcol level also has the added benefit that it can discourage predatory behavior by exchanges, such as allowing sends without a memo, and ignoring any support requests by customers who made a deposit without a memo.
There will be 2 types of 'special' broadcast messages that are used for this; REQUIRE MEMO
and DISABLE MEMO
.
Broadcasting REQUIRE MEMO
indicates that a memo should be required for any sends to the broadcasting address.
Broadcasting DISABLE MEMO
indicates that a memo requirement should be removed, and sends without memos should be allowed.
Counterparty has a feature to broadcast the text LOCK
to prevent any further broadcasts from that address ever being considered valid.
Any broadcasts from a address with a LOCK
ed broadcast feed will be ignored.
This is completely backwards compatible with older clients as we're using valid broadcast messages. As described the address data will be excluded from consensus hashes to avoid a split.
The table where the address data is stored and any validation errors of memo broadcast messages are excluded from consensus hashes, to make sure this is optional and can be disabled.
This document is placed in the public domain.