Project Decorum: DECentralised fORUM (and protocol)

EDIT: nevermind, found the answer here: https://github.com/maidsafe/rfcs/blob/master/proposed/0016-launcher-data-types-api/0016-launcher-data-types-api.md

My question from above still applies: what are the use cases for immutable data created by user-submitted content in an application?

Also, take a look on the “Unified Structured Data” RFC:
https://github.com/maidsafe/rfcs/blob/master/implemented/0000-Unified-structured-data/0000-Unified-structured-data.md

1 Like

This is an outline of my general direction of thought concerning the upcoming Decorum coin and crowdsale (The info in the OP is quite outdated, so yes, there will be a crowdsale and a coin). Feel free to share your thoughts on them and to ask questions.


Intro
In short, the coin is one of two solutions that Decorum will use to thwart sybil attacks that could be launched against a decentralised endorsement system. In centralised systems like Facebook or reddit, there is a central authority that actively fights against bots registering many accounts to endorse content en masse. In SAFE we won’t have that, people can create many identities if they wish (which has many benefits as well). So there will be two base types of endorsements in Decorum:

  • Endorsements in the form of cryptographic signatures. These are only relevant within the context of a web of trust.
  • Endorsements in the form of a Decorum coin “burn”. These are generally relevant, it doesn’t matter who burned them because there is an actual cost involved.

Web of Trust
Note that the web of trust I mentioned is a ‘weaker’ web of trust than in PGP and such. Those are concerned with establishing that digital identity X truly belongs to real-life person Y. In the context of Decorum, we are concerned with establishing that digital identity X is a “legitimate” identity of someone rather than being spam identity number 295317.

Management of this web of trust is mostly automated based on how you (and others already in your web of trust) treat the identity in question. If the identity receives several endorsements (from you or others that you already “trust”) it’s “trust” score increases, if the identity is blacklisted by others you trust, your trust score of it decreases. A high trust score will make that identity’s actions (like endorsements) count, while the actions of an identity with no or a low trust score will have no meaning to you (their endorsements are not counted).

This means that the endorsements (of the signature variety) from an identity that hasn’t integrated itself into the web of trust of a particular community have no meaning to that community. The inverse is also true, such an identity doesn’t know whose endorsements from that community should be “trusted”. Such segregation can be undesirable, hence:

Coin endorsements
The coin “burn” endorsement type bridges this gap. The philosophy behind this endorsement type is that when someone is willing to spend something of value to endorse something, then that something will likely also be more valueable to others compared to something that no one is willing to spend any value on to endorse.

In Decorum all content is organised and displayed in collections of some sort. For example, a forum category is a collection of topics, and a topic is a collection of replies. Coin endorsements are tracked per collection, and the endorsements for different content within a collection compete with each other. This is because these endorsements are registered in chronological order, and new endorsements decrease the weight of the older endorsements. This will ensure a degree of freshness of highest rated content and competition between promoters.

Note that the source of these endorsements is not considered, so unlike trusted endorsements, one party can give one piece of content as many as it wants and can afford. Also, while the coins cannot be recovered, the endorsement they represent can be invalidated if the endorser changes his/her mind.

Combining endorsement scores
So we have two different types of endorsements, and while these will be displayed separately, in many situations it is desirable to combine them into a final score, for example to generate a “most popular” list.

Content that scores high in both types of endorsements will receive an extra boost, while content that is blacklisted by members from your web of trust will receive a severe penalty and may not be displayed at all, despite having a lot of coin endorsements. This will cause paid promotion of generally undesirable/inappropriate content to be relatively ineffective.


My next post will be about the structure of the crowdsale and the coin parameters. Feel free to already discuss the above though!

18 Likes

@seneca, glad for your motivations, it is needed The decentralized forum; Where else were we going to continue the discussion? SAFE Network, a Decorum is paramount.

Hope there will be a self-moderation, and finally PMs that are private :sunrise:

5 Likes

Great work!

So to reply to a topic, do I need to burn some coins for that? And what If I bought coins for a cent, and they went up 10 times or so, would that make posting and replying more expensive?

This is cool, but again, what if the coin became more or less expensive? At the price of 1 cent, maybe 50 people like the post so the topic is on top of the list (burned 50 cent). But after a few days the coin goes down a lot in value, and now we have 80 likes but only 40 cents or so, so the older topic with less “likes” is still on top of the list?

1 Like

No, just one PUT usually, to upload the reply to the SAFE network. Decorum doesn’t add any cost to replying, the coin is used by Decorum for that second type of endorsement only.

Yes that can happen, but all coin endorsements “decay” in weight anyway as new coin endorsements are given in that collection (like a forum category). So short term fluctuations happen and may infuence the score balance for a bit, but on the longer term it all balances out as older endorsements decay more and more.

2 Likes

So it’s a pay-per-like model? Where the payment is probably so low that you can like a lot for a cent, but which is to expensive for bots due to the cost of PUT’s and the cost of liking their own spam. That’s quite cool :yum:.

But the coins get burned once you like something? No way of getting them back? No recycling? And I can change a setting to decide what I pay-per-like? like 0,5 coin or so?

Kinda, remember that these coin “likes” are in competition with other coin “likes” of other content in the same category, so whether a particular amount of coin “likes” is a lot, is relative to how much coin “likes” other content in that category (recently) received.

Indeed.[quote=“anon40790172, post:109, topic:6119”]
And I can change a setting to decide what I pay-per-like?
[/quote]

Yes, or you can just fill in the number of coins you want to use in input field at the moment of endorsement.

I am not sure if alt-coins will be divisible in SAFE. No promises there.

But remember that there’s also the other type of like, which you’ll probably use most of the time in your own communities. If for example this SAFE Network forum we are on right now was on Decorum, you’d probably be in almost everyone’s web of trust on here, because you are a legitimate member and no spam bot. Then you can just use the trusted “like”, which doesn’t cost any Decorum coins, and almost everyone here will recognize that “like” as legitimate.

5 Likes

This is just my personal opinion (and I may be wrong), but I see the coin “like” as something that will mostly be used by larger movements and organisation that will likely have a budget to use them.

Envision for example a gaming forum where a member writes about an amazing experience in a new game. Regular members of that community will mostly endorse it with the “trusted likes”. But if the publisher of the game in question notices that post, they will use the coin “likes” to give that post an extra boost.

The publisher doesn’t have another option, because spamming fake identities is useless, they won’t be able to get into the web of trust of that community.

I hope that illustrates how the sybil attack is solved with this system.

10 Likes

This is very exciting @Seneca thank you. Can’t wait to hear more and help you build this.

2 Likes

Edit: These details about crowdsale are outdated, supply is now 50 Million and inflation rate per doubling 10% (5 million)

Because the endorsement coin is permanently consumed when it used as an endorsement, the coin supply cannot be static, or else the coin would go extinct at some point. Some time ago I wrote about how SAFE alt-coins can be mined to have a flexible supply while still constraining inflation. This is an excerpt of that post that explains how this “mining” differs from blockchain mining:

If you have questions concerning that process, please read the entire post.

Also, please note that the numbers below may be subject to change.


100 million coins will be pre-mined and sold in the crowdsale. They will be divided proportionally over the crowdsale participants to the contributions of each . The crowdsale will last 5 weeks. In the first week contributions will get a 20% loyalty bonus, in the second week a 15% bonus, in the third 10%, in the fourth 5% and in the last week there won’t be a loyalty bonus.

At the end of the crowdsale it will be calculated how much was paid for every sold coin (total income dividided by 100 million), which is then multipled by 10, and from that number a base mining difficulty will be derived. This base mining difficulty will be put in the mining algorithm in such a way that the first minable coin (coin number 100,000,001) will have that difficulty. The algorithm will increase the mining difficulty for every coin so that for every 20 million coins mined, the difficulty doubles:

Formula: 2^(0.00000005*(x-100000000))

The idea behind multiplying the price of the pre-sold coin by 10 is to make sure that there won’t be any significant inflation from mining until either market price has increased by a factor of 10, or many years have passed and computer power has become cheaper.

Deriving the base difficulty from that number will be done using BTC mining data. From this chart it becomes clear that nowadays about 1,100,000,000 GigaHash per second is generated in competition for a reward of 25 BTC about every 10 minutes. 25 BTC is currently worth 10,400 USD. We divide this number by 10 (minutes) * 60 (seconds in a minute) to get the USD value per second: 10,400 / 600 = 17.33 USD per second.

Now we can hold that circa 63.5 billion GH has a value of about 1 USD. So if the presale coins were sold for say, 0.001 USD each, the base difficulty is set to 635 million GigaHash (0.01 USD).

This base difficulty doubles every 20,000,000 coins, to off-set the effect of Moore’s law. Right now computing power doubles about every 2.5 years, so all other factors being equal, the mining inflation rate should be about 20% per 2.5 years.

Of course, factors won’t be equal, and the main factor that influences the mining rate will be the price of the coin. If the coin goes up in price, then mining profit margins increase so there’ll be more inflation. If the coin goes down in price, mining profit margins decrease and there’ll be less or even no inflation at all until the price has recovered.

Also, the coin is consumed when it’s used as an endorsement, so that contracts the supply. I envision that the coin will tend towards a price point where the contraction of the supply due to consumption roughly matches the inflation due to mining. Then there’s no netto expansion of the supply, until the coin price leaves it’s equilibrium and goes up significantly.

Because the base mining difficulty is set to about 10 times higher than the pre-sale value, the supply will likely only contract at first. When serious mining starts, the coins of the crowdsale partipants may already be up to 10 times up in value.

9 Likes

This is really quite elegant from what I can see.

The WOT model seems very workable. Not hard to establish, but hard enough to make it easy to nuke spam, if the community wishes. The reason I emphasize “if the community wishes” is that for some applications, a spammy free-for-all might be desirable, as in some sort of wild and woolly open-bazaar smorgasbord of whatever. But for a community that wishes to be much more discriminating, it can not only easily curb people and bot spam, but make such intrusions decidedly unprofitable, without having to spend coin to do it.

Seems that the scale between the free-for-all groups and the closed, invitation-only secret group is seamless, depending upon the like-mindedness of the participants. The dynamic group dance of individual choice. Brilliant.

On the other hand, having paid likes makes bridges possible. Don’t have connections into a community who you think would like what you have to offer? Pay some coin for paid likes to get attention, then gain WOT support if you really are a desirable connection, in the eyes of THAT community.

5 Likes

Thanks for the support guys!

I got a question privately of how the mining difficulty formula works exactly, so here it is:

coin’s difficulty = base difficulty / 2^(0.00000005*(coin’s identifier-100000000))

And the base difficulty used in the example is (1 / 635000000000000000). So you have to generate 635000000000000000 hashes on average to get the first coin. Yes, that’s a lot, because by taking BTC hash rate as an indicator for hash price, we’re talking ASIC hashes here.

2 Likes

Looking good @Seneca

When a coin is “consumed” is it deleted? Owner changed to? or?

1 Like

So this going to be an onmi protocol 1:1 crowdsale for BTC and not a sale that accepts Safecoin or MAID?

Very cool, so glad to be seeing a WOT implementation on SAFE! Have you considered your application of a WOT outside of Decorum, but as a “plugin” for all other apps? The WOT is definitely something that a majority of websites could use, IMO, from marketplaces, to services, to social networks, and I would love to see it implemented elsewhere, as well. In fact, the same identity could be used across all apps, if so desired, instead of making a separate one for each.

2 Likes

I honestly wouldn’t know how to do it otherwise, other than making it a closed source project (bad idea). The app/website is just an interface to the actual data, which belongs to the users, and the protocol is open. So every developer can make use of these systems with their own apps.

This being a SAFE project, I definitely want to accept MAID. I’m not sure about accepting BTC as well, not because I dislike BTC but because accepting two currencies gets messy when converting their values to see who gets how much, and I don’t want any drama.

Also, it looks like the Omni “crowdsale” feature assumes you want to give X amount of new coins for Y amount of existing coins, while I just want to work with a fixed amount of new coins spread over all participants. So it looks like I’ll have to do it manually (register the new coin, get the fixed amount myself, then distribute them manually to everyone).

It’s owner value is changed to a value that hasn’t got a known private key counter part (hash of the content it is attached to). If people hack the (client-side, ofc) source code (easy to do) and change that part, other clients won’t count that coin as an endorsement (so it’s useless to do that).

4 Likes

Yes that’s true, was thinking more about the structure of the data more than anything. Do you have any implementation details to share about this? A full-fledged WOT would have massive ramifications for the decentralized SAFE network. I’m really interested in how you would do it.

From the top of my head, I’d say you’d be using SDs where the type is the person being “trusted”, and the identifiers consisting of all the people that have placed trust in that person. Is that the general idea? How would the “scoring” be done, as usually a WOT includes various degrees of separation in its algorithms?

Check with @dallyshalla. He did both for the SEC sale. Not sure how difficult it was, but he pulled it off without upsetting anyone, as far as I know.

6 Likes

Yes, please accept both if you can. I think parting with some BTC is easier than parting with MAID :slight_smile:

10 Likes