I have a few questions related to smart properties:
From the spec, it looks like the unique factor used to differentiate one property from another is the Property Name, in which one may put up to 21 characters, correct?
Question 1: What’s to stop people from spamming new smart properties? This could be like the domain name system, without any pricing required to reserve a name. Someone could reserve a smart property like “dog”, or “House Deed”, in perpetuity. Is any MSC required to be consumed to create a property, or is it just the BTC transaction costs to send the transaction?
If we are just limited to 21 bytes for property names in this kind of wild-west scenario, without any kind of payment requirement beyond the minimal BTC fees to keep away spam, I can see all of the intelligible choices for this filling up quickly. People would then be forced to use names like “HouseDeed_348dF” or even some kind of odd hash value. This may not necessarily be a ‘bad’ thing…worse case we could see Mastercoin property names devolving to the level of implicit legibility as Bitcoin addresses (i.e. a long string of numbers and letters).
If MSC is required (or you are considering this), you could have two options here: pay to the Exodus address (further enriching that, although I don’t know how necessary that is), or destroy the funds, similar to Peercoin transactions.
If destroying the MSC, to offset the deflation this causes, a future proof-of-stake type system could be even initiated that would inflate the supply at a low level (e.g. fixed 1%, or a variable rate derived periodically based on the MSC value destroyed over the past X period of time) to offset and attempt constant, or very slowly growing supply. I think that this idea is probably heretical and overly complex, since MSCs were created as a fixed supply (sounds kind of like a central bank, coded into the software, hah!)…just thought I’d throw it out there if in the future we find ourselves needing to allow for some controlling feedback to be applied to several aspects of the system (smart properties, bidding, etc) by allowing Mastercoin to require at least a small amount of MSC for most actions, in a way that didn’t unfairly enrich one specific party, or disrupt the balance of wealth in the system. Whether it would cripple the usefulness of Mastercoin in the process is up in the air though. If the fee was low enough, it shouldn’t.
Question 2: I see where dividends can be paid against smart properties. Can Smart properties be transferred? (I do see “Listing something for Sale” and “Initiating a Purchase”, but I’m a bit confused whether these have anything to do with a smart property, as their identifier is a 11 byte category and a 16 byte subcategory. If not currently, why not? Perhaps that’s an area of the spec that needs to be added.
If these were covered somewhere else, forgive me. Thanks for any answers.
1) Adding some sort of cost to reduce spam is a great idea. Thanks for bringing that up.
2) Yes, each new property gets its own currency id, so anything you can do with a currency can be done with a property (buy, sell, transfer, bet, etc)
Regarding 1), this is a tricky problem, which I have thought about some already. There are several ways to add cost. I prefer a sliding fee scale which targets creating X properties per day. If more than the target are being created, the fee goes up, otherwise the fee goes down.
I think the fee should destroy MSC, not send them to the Exodus Address.
I'd be interested in hearing other opinions about this. I'd be really happy to see a pull request about this once we've got some consensus.
I haven't added anything like this to the spec because everything I came up with seemed a bit too complicated. For instance, the number of properties created per day might need to go up once MasterCoin is getting widespread use, and it's hard to make the right formula for adjusting that automatically.
Having a fee is about much more than just reducing system abuse. If done right, it can also be about encouraging the growth of MSC, by requiring people to trade and vest into MSC before using the features of the systems. Doing this I believe will have a huge impact on enlisting long term support of Mastercoin, because it makes anyone that wants to use Mastercoin features have to be vested into the system to some extent, even if it's only a bit, in order to consume finite platform resources (e.g. smart property namespace and currency IDs in this case). It's also an area where I wonder how Mastercoin clones (such as Mastercoin2, where no Exodus-style funding and no inherent coin worth) will handle. To deter namespace spamming, requiring something beyond the minimal BTC transaction value to be spent on a valuable service with finite addressing resources makes logical and economic sense, to me at least, and keeps the system un-bloated and useful. And it is also something to consider from a systems perspective...i.e. if Tachikoma or someone needs to implement a smart properties feature to the site, parsing out and caching each smart property for quick look-up takes time and memory space.
So that all being said, I agree with you on some kind of fee (which I think should be reasonable, able to adjust/change possibly, and made with the foremost intention of reducing spam while preserving usability and desirability of the feature-set). Also agree that it should not go to the Exodus address. It should be done in a way that doesn't bias one participant over another. However, the problem if we did that alone, is that Mastercoin would become a deflationary currency, possibly even more than bitcoin is (where supply slowly reduces due to constant max and people losing wallets, etc, but transaction fees do not destroy BTC). Not inherently a deal killer, but it would reduce the supply over time. Not entirely sure about what the exact consequences of this are, as the annualized deflation rate could become significant, depending on the exact fee structure and service use volume.
So if MSC destruction on feature use is desired, I would put forward us considering some kind of proof-of-stake type system, similar to Peercoin's coin-age redeeming system, with a fixed inflation rate, or a variable one that takes MSCs destroyed by service use into account. With Peercoin, coin-age is consumed, so that stake awards can be rewarded in a fair and decentralized way. Given the fact that PPC network is the base network and produces POS blocks itself (instead of laying on top of a POW network like bitcoin), any MSC POS feature may end up having to be implemented totally differently. I am not technically experienced enough on the workings of PPC POS to make an intelligent comment beyond this. Another factor to consider is compatibility of future Mastercoin ports to other blockchains, such as Peercoin and Litecoin.
I'd be very interested in hearing other opinions on this. It may even be a good idea to enlist Sunny King into the conversation at some point for this point of view (and if people DO want to go with this, we could even pay him to implement it for us).