Jump to content

Draft: Freicoin 2.0 lesson learned - From people for people! - Layer 1 (POW)


Recommended Posts

Early Draft Freicoin 2.0 lesson learned

 

From people for people!

 

Hi Freicoiners,

here is an early draft how Freicoin could look like if we would redesign it from the beginning. This draft does not have the Freicoin community consensus yet, and is therefore considered to be treated as my suggestion only. The proposal is structured that way, that it can be implemented step by step whichever part gets a consensus from the Freicoin community. 

Freicoin 2.0 is structured into three layers. Layer one would be similar to Bitcoin / Freicoin like it is now and is proof of work based. The second layer would be proof of stake based. The second layer allows decentralized budgeting. It could be implemented as Freinodes similar to dash maternodes as outlined more in detail here:

To proof of stake: Please try to be opjective and first read this proposal open hearted. The following proposal uses proof of stake only in layer two, and even there only in combination with proof of work selection to make multi chain signing impossible. Therefore please read the full proposal (see above) first and take then part in a constructive discussion about proof of stake as outlined here.

 

The third layer is focused on the user experience and user verification. The third layer could look like steemit or duniter or dash evolution. Duniter is mainly a blockchain that uses web of trust to solve the double account problem and gives out an universal dividend to all participants.

Based on steemit it would have delegated proof of stake, voting for projects, decentralized exchange, account recovery, different right levels, even a stable currency would be easy to setup once we bring it to run.

The three layers could be developed independently of each other, as long as the connections are clear defined. Layer two would be enforced on layer one similar to a softfork. Same with layer three on layer two.

In case something goes wrong in layer three (proof of human) the fall back would be layer two, proof of stake. Same if something goes wrong in layer two with proof of stake the fall back would be layer one proof of work.

This would therefore allow to have similar security and simplicity like Bitcoin in layer one without compromising the more advanced features in layer two or three.

 

Here the first early draft which is focused for now on layer one:

? := equals there may be other possible good suggestions

 

Three Layer architecture:

Layer 1: Blockchain - Two way Proof of work (POW) - Mining based

- basic economic security of the chain

- coin distribution to miners (target 20%?) 

Layer 2: Part 1 - Freinodes - Proof of Stake based (POS)

- rewarding Freinode infrastructure

- laying a second layer of security through Freinodes / POS based

- Near Instant Transaction confirmation

Layer 2 - Part 2 - Freinodes based project funding:

Layer 3: User? / (Proof of human)  decision making / User Verification / Universal Dividend / Freipay rewards / Liquidity rewards

 

Layer 1: Blockchain (POW – proof of work)

- base currency called FreicoinB? (B like base) with 5% inflation per year

- demurrage is client side only with 5% demurrage per year and max 100 Million coins

still one Freicoin would equal one Freicoin see (FAQ)

- Blocktime 1? Minute (see FAQ)

- two? (multi?) proof of work architecture (see FAQ)

- simple difficulty algorithm? (see FAQ)

- 1. Bitcoin merge mine

- 2?. Ethereum? merge mine

 

Layer 1 FAQ:

Why use two currencies?

First of all in truth its still only one currency. One Freicoin would still be one Freicoin, only the implementation would change. There are mainly two ways to implement demurrage. One is to handle demurrage similar to transaction fees that are simple destroyed. The second one is: Take a simple base currency that is inflated and calculate the demurrage client site. For example:

First year 100 FreicoinB equas to 100 Freicoin 

Second year 100 FreicoinB equals to 95,23... Freicoin 

Or in short : 1 Freicoin  equals 100 Billion / All FreicoinB in existence

To implement demurrage the second way, we only would have to adapt the display client site. All further calculations would be done similar to Bitcoin and could be done in the base currency.

An alternative would be to handle demurrage as transaction fee similar to how it is done now. In this case we should look into how to make the calculation of the demurrage more simple without needing that many changes to the Bitcoin code base. 

 

Why use a two way proof of work architecture?

The main reason why to use a two way architecture is to not be dependent on one mining hardware provider. In case if needed one mining algorithm can be replaced more easily. Another reason is to allow more people to have access to new coins. One alg could for example be an alg that is easy to use with general purpose computers and therefore allow a wide access to new coins. The other alg could be easy for asics, so that special asics are created that have an interest in the health of the coin.

 

Isn't a double spend more easy in a two way proof of work architecture?

In the end transactions are secured through the economic value given as reward o the miners. A two way proof of work architecture doesn't change that. Proof of work in layer 1 is used to make sure that is is economically expensive to undo transactions. A layer  2 can make sure that transactions can be treated as good as irreversible once confirmed in layer two.

Further by default blocks that are mined before the target blocktime is reached can be required to have a higher difficulty or be rejected by the network (see below)

 

How can a simple difficulty algorithm look like?

First of all it is good to clarify the two design goals a difficulty algorithm should fulfill. First it must make sure, that the difficulty adapts if the mining power increases or decreases. Second it must make sure that in the long run the blocks created per time period is ¨fixed¨.

The first goal could be reached through this:

- the difficulty is increased / decreased each block by up to 10% if the last 10 blocks have been in average faster / slower then target block time

 

The second goal could be reached through this:

- if 10 blocks more / less then the expected blocks are created the target block time is set to 0.8 / 1.2 the target blocktime.

 

A third optional goal could be to make fast block creation more difficult:

- a node only propagates a block if the difficulty is higher then: target difficulty * target block time / time since last block. At minimum a block must have still at least the target difficulty. With this a block that is double too fast would need double the difficulty to be propagated in the network. Four times to fast would need four times the difficulty. 

This would also reduce the problem of mining  centralization and therefore give an opportunity to reduce the block-time, because with the above alg miners would have in average  more time to receive the new block. On top of that through making the required difficulty time based this would allow a much more stable blocktime even if using the same mining alg like other coins. In short No more incentives for drastic hash increase or decrease.

 

For example, normally the difficulty does not change relative to the last blocktime. Therefore the difficulty is either that low that the coin is the most profitable to mine and therefore attracts the majority of the mining power or that high that the coin is not the most profitable coin to mine. This leads normally to sudden and drastic hash increase or decrease. A drastic decrease in hashpower is even more fatal, because this normally slows down the difficulty adoption. Economically no miner would have an economic incentive to mine such a coin to bring down the difficulty, which makes the coin dependent on good willing miners that make an economic lost.

In case the above alg is used if the last blocktime is too low and therefore the difficulty too high, miners will mine simple another coin (or stop mining). With time if the last blocktime becomes higher, the difficulty will decrease and therefore the coin becomes lucrative to mine until the next block is found.    

Layer 2 - Part 1 - Proof of Stake:

A early draft could look like this:

In short:

- the second layer is enforced on the first layer similar to a soft fork. The fallback is therefore proof of work in layer one

 

- through delegated proof of stake top 1000 Freinodes are chosen

 

-  in each block the proof of work hash is used to draw 10 Freinodes from the top 1000 Freinodes which received the most votes

 

- each Freinode may create a so called stake transaction that references a block and can only be included in the next block

 

- each Block gets a base weight of 20% plus 4% for each added stake transaction (in total therefore max 60%)

 

- the longest chain concept is replaced with the chain that has the most total weight

 

- each stake transaction can claim 2% of the block reward (fees plus demurrage plus some part of not yet distributed coins)

Layer 2 - Part 2 - Freinodes based project funding

A early draft could look like this:

In short:

- the project funding is enforced on the first layer similar to a soft fork. 

- each stake transaction can assign 2% of the block reward (fees plus demurrage plus some part of not yet distributed coins) to projects

Layer 3 - From people for people - Proof of Human:

Work in progress...

The third layer could look like steemit or duniter or dash evolution.

- the third layer is enforced on the second / first layer similar to a soft fork

The fallback is therefore proof of work in layer one and proof of stake in layer two

 

 

Account recovery and security

- people can restore wallet with 12 word passphrase

- people can assign account recoveries

FreiGroups

- people can form groups to exchange and govern themself

Naming / Aliases:

- people can register aliases

Universal Dividend

- people can get verified and receive a universal dividend

- people can vote on sentries / caretakers

Price Stable currency

- people can use Freicredits designed as price stable currency

Liquid Democracy

- people can delegate their vote to other people, freinodes, projects or groups

Freinodes

- people can delegate their coins as security to Freinodes (layer two)

- people can vote on Freinodes

Freiprojects

- people can create projects

- people can vote which projects to support

- people can delegate their coins as security to projects (layer two)

Freiexchange

- people can use decentralized exchanges and get some liquidity reward from the budgeting system (layer two)

Freimining

- people can get economically incentivised to take part in decentralized mining

Freipay

- people can buy with verified Freipay participants and get some Freicoins back from the budgeting system (layer two) 

Freiland

- people can buy land and include it in a Freieconomy and get some Freicoins back from the budgeting system (layer two) 

Freigreening

- peopel can take part in greening the deserts which in former time where forests and get some Freicoins back from the budgeting system

Link to post
Share on other sites

I haven't read the whole post but I must say it is unlikely I will ever use, support or contribute in any way to an altcoin based on PoS. I also think that 1 min blocks and moving from demurrage to inflation are bad ideas.
Since it seems to be based on different ideas and priorities I ask that please don't call this altcoin freicoin 2 and call it something else instead.
 

Link to post
Share on other sites
2 hours ago, jtimon said:

contribute in any way to an altcoin based on P

I dont understand what you and maaku don't like at POS?

Even this proposal is not a full POS proposal, it uses pos in a second layer. The fall back is still pure POW.

So on the end we have still the same POW security, that is based on the economic value of the block reward given to the POW miners (sadly very low currently in Freicoin)

Also the POS is not pure POS, it is freinode based and it is drawn by POW. Therefore it does not allow to sign for two different chains at the same time.

I'm open for arguments, but simply saying POS is bad i don't agree.

Even still we dont know how a distributed coin issuing could be done without a POS or proof of human part.

Not to mention the current miner centralisation.

If you want take part in a serious discussion pro / con about POS, please add your arguments here, so that i can add them:

 

The inflation in the outlined proposal is only internally, externally one Freicoin would be still one Freicoin

The difference is purely technical, how the demurrage is calculated.

Currently its very difficult to calculate the demurrage the right way, we even need a special math lib for that to get it right, which adds extra complexity and makes a upgrade very time consuming.

Not to mention that we need to adapt tons of code because different types of numbers needed to be used with the current demurrage implementation.

Also it brings lot of complexity to sending transactions and calculating the true balance. 

The only con arguments i see are, that currently the fee demurrage is implemented already (but very complex) and in the long run we would need to use either more bigger numbers, or reduce some zeros in the internal display of the base currency (externally one Freicoin would be still one Freicoin)

 

 

Im open also for arguments for a different block time. Currently i see the main argument for 10 minutes in miner centralisation, which in my design outlined above would not be relevant, because it has a pos component and uses a budgeting system / Freiming  to reward decentralised mining. 

Also a two way proof of work as outlined above  would reduces this problem drastically.

Can you please specify your arguments, otherwise i don't get the point.

 

I see your point that i should respect Freicoin and maybe make an Altcoin, but this in the end is the decision of the community, therefore neither in total mine not yours.

And yes, i will not proceed with this if not at least 80% of the left people go along. Currently i count only fedde, bick, rick, sarc you and me and maybe marc if he becomes reachable again and kieranf. All others seem to be gone at least for now. in this case i will try to implement parts of it, where 80% do go along or i will create an altcoin if it feels right. 

 

All outlined above is also not necessarily meant to be implemented at once, it is more a vision in which direction we could go. And as mentioned it is a very early draft.

Nearly all parts are designed independently of each other.

Layer 2 and 3 can also be implemented without even changing the current layer one if needed. There must be just an economic majority who is in favor of layer two or three and that is currently only Feddes exchange and some people that trade there.

 

I would also prefer if you read the full post first before arguing against it. I thought very long about each part of it, and there are good reasons why i drafted it like this.

I really would prefer and open constructive discussions of the parts, but simply saying pos is bad or calling it inflation without looking at my arguments i don't agree with.

I also dont know if you tried in the last years to truly use Freicoin, i can only say i tried it as good as i could, but was confronted with tons of obstacles. 

In the outlined proposal i tried as good as i could to bring my experience out of that in to get rid of these obstacles, so that we can finally use it.

 

I know, that you and fedde want currently more to focus on updating the Freicoin client. Yes it would be great to have a new version, but after looking into it and trying to compile it, i wonder if it is really worth the effort to bring the currently very difficult demurrage implementation to run with the new Bitcoin version.

Maybe its lot more easy to rebase it newly with a much easier demurrage calculation and better POW adaption on the current Bitcoin client?

I'm all in for a experience and fact based discussion, but i'm not ready to deny my work without good arguments. 

Link to post
Share on other sites
  • Arcurus pinned this topic
  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...