Safecoin with a id key attached

Does anybody know if it will be possible to send “X” amount of safecoin and attach an id with it so that when a payment arrives in a wallet the payment can be identified. I am thinking of a lottery style application where you buy a ticket with your id, send the payment and the winner is generated automatically. The winnings then arrive in the winners wallet. A decentralized lotto.

2 Likes

As I understand it, safecoin will appear to be more like cash than any other type of money that might be coloured or traced. You will have confidence that [money] has been paid and sight of the last transaction and obviously a lottery application could be built to send some ticket. So, just like buying a national lottery ticket with cash; the lottery ticket would be the identification required to claim winnings. There’s then flexibility that the winner can put their winning where they want.

1 Like

I may be wrong on this, but long long ago I think it was mentioned that data can be attached to a Safecoin. Obviously only the owner has access and can modify (e.g. erase) that data - so the coin can be “cleaned” before use. So it may be possible but I’m not certain of this and of course it hasn’t been implemented yet.

2 Likes

Probably yes, but it depends how safecoin is implemented.

Safecoin is stored as structured_data.

From Structured Data RFC

These types will be limited to 100kB in size (as Immutable Chunks are also limited to 1Mb) which is for the time being a magic number.

If a client requires these be larger than 100kB then the data component will contain a (optionally encrypted) datamap to be able to retrieve chunks of the network.

The data field is defined in the source code at routing/src/structured_data.rs:L38, if you want to see how the data field is currently utilized.

So an id can probably be stored in the data field of safecoin. But I say ‘probably’ because safecoin may use that data field for other purposes, such as managing divisibility… there isn’t a clear spec for safecoin yet.

edit: Also consider that ‘previous owner’ is also stored with structured data, so the lottery may be able to use that field. Beware, as often it’s not safe to assume that ‘previous owner’ is the same as ‘individual who owns the coins’. For example if multiple users’ funds are pooled (such as at an exchange), then the previous owner is the exchange, not the individual owner… it can get complex very quickly!! More info about this issue in the explanation of how satoshi dice works.

I think the previous owner is noted in the coin, so I guess the answer would be yes, it’s automatically done.

What complicates the matter is that there won’t be that many Safecoins, only 2^32 (4 billion and a bit) pieces. In fact, it is important that there should be not too many of them, because “farming” depends on their scarcity.

To go around that coins are not granular enough for everyday use, I think the currently favored method (which, as @mav mentioned, is still not finalized) is that the wallets themselves will store fractional coins. However, I’m not sure how the transfer of those will happen between the wallets. (Interestingly, as I was looking for this link, I discovered that another discussion started about divisibility just yesterday; I’ll need to get up to date on it.)

In the end, I believe you’ll want to go with @davidpbrown’s suggestion: you’ll store whatever you need outside the Safecoin transaction itself.