zattoo/Computer Science > Cryptography and Security

Memo rule

The program's unified address is derived at initialization and never changes. A shielded transaction to that address may carry a memo field of five hundred and twelve bytes. The program reads bytes zero through seven as an unsigned little endian integer and calls it the weight. Bytes eight through five hundred and eleven are ignored. A weight of zero is a no op. A positive weight is a request to move that many zats from the reserve toward the floor, which the program satisfies by burning units equal to the weight at the current rate, so that the floor rises and the supply falls together.

The sender is not read. The program holds an incoming viewing key for its address so that it can decrypt memos, and holds no spending key, so that nothing sent to it can ever leave. The viewing key is published on the verification page as a hash, not in the clear, so that the memos themselves remain private to the program and to anyone the author chooses to give the key to.

Memo layout
weightignoredbytes 32 to 511 continue as ignored
Weight examples
bytes 0..7 (hex)weight (zats)
01 00 00 00 00 00 00 001
00 e1 f5 05 00 00 00 00100000000
40 42 0f 00 00 00 00 001000000
e8 03 00 00 00 00 00 001000
ff ff ff ff ff ff ff ff18446744073709551615
00 00 00 00 00 00 00 000 (no op)