General aspects

Duniter in 3 words?

Free Currency System.

Free currency?

This is a new expression, as no free currency existed before: free currency is one respecting 4 economical freedoms, and leading to apply Universal Dividend to its members.

Universal Dividend?

This is a special case of Basic Income: an amount every individual receives on a regular basis (monthly, annualy, ...) without other condition than being a unique living member of the Community. This is not a redistribution system. This is a currency system where money is directly issued by individuals and to individuals.

How to achieve this?

Duniter uses features of Ed25519, a cryptography tool, to both:

  • Identify unique & living individuals (a.k.a members of the monetary community)
  • Allow money transfers through digital signatures

Is Duniter like Bitcoin?

Well, Duniter is a cryptocurrency system and so is Bitcoin. Plus, both systems use Proof of Work (PoW) technology to synchronize & secure its data. But Duniter takes advantage of Web of Trust mechanisms to both distribute a Universal Dividend and save a considerable amount of energy compared to Bitcoin.

Still using Proof of Work?

Yes, PoW is still here. But in a largely lower order of magnitude. Really. (That is why Duniter uses so much less power than Bitcoin.)

What is a Web of Trust?

Web of Trust refers to a data structure allowing people to trust (i.e., verify) each other's identity. In Duniter, it is exactly the same.

Is Duniter data encrypted?

No, all Duniter data is public & replicated. Anyone using Duniter has a complete copy of the database including the history of both the community & transactions.

Duniter for simple users

Who can use Duniter?

Everybody: an individual, a collective (company, association, ...), there is no restriction here.

Why become a member?

Members are a different kind of user: they have special rights, such as: earning money and writing data (i.e., securing the public ledger) for the Duniter system. Members are the makers of Duniter data.

Who can become a member?

Only individuals, more precisely: unique and living human beings. That means each person is only allowed one identity per community.

How to subscribe?

Newcomers (individuals who are not yet members) have to create their own key, attach an identity to it, and get certified by existing members. Once they do this, they can simply express their will to join the Web of Trust to be accepted to the community.

What is a Web of Trust?

A Web of Trust (WoT) is a special data structure composed of entities on one hand, and links between them on the other hand. In Duniter, these entities are inviduals while links are certification of an individual's identity by another one. When an individual gets enough links from existing members in the WoT, he then becomes eligible for joining the WoT. When this happens, his identity is considered trustable. If the individual then express its will to join the WoT, he becomes a member.

Which are rules of Web of Trust?

Joining the Web of Trust requires 3 conditions:

  • an identity must gather a minimum number of links
  • an identity cannot have the same link twice within a certain amount of time
  • an identity must be at most a set distance (or, steps) from any other identity

Where:

  • step 0 is the identity itself
  • step n is an identity directly known by step n-1 (n must be less than or equal to the maximum number of steps)

How to receive Universal Dividend?

You have to be a member of the WoT when the Universal Dividend (UD) is being distributed.

What is the relative theory of money?

The relative theory of money is a book published by Stephane Laborde which explains what free money is, how the parameters are computed and a history of money. This book describes a theory which requires a knowledge of mathematics and economics. This introduction to the relative theory of money may be easier to understand; it is suggested that you read it first.

How is the amount of UD decided?

The amount is currency specific. But a general rule is defined in Duniter protocol:

The value of the parameters c, UD(0) and dt are to be chosen by the implementation of a currency. For example, it could be:

c = 0.0036815 UD(0) = 100 dt ~= 2 weeks

to lead to a 9.22% annual « c », but issued through 2 weeks chunks.

Note: 9.22% annual « c » is a central symmetry between generations of 80 years life expectancy members. Those results may be found in the RMT.

How to know if I received UD?

If you were a member of the WoT when the UD was distributed, then you received it. It is a rule that is part of Duniter's protocol.

How to create money from UD?

If you received UD, then you are allowed to create money for an amount exactly equal to the UD. As a consequence: as long as you do not create it, the money resulting from UD won't exist in the monetary mass.

How to transfer money?

You can transfer money by using Transactions. Transactions are just like checks: you write who the issuer and the recipient are and send it to the network. When it is validated, the money is transferred. However, transactions can do more than a simple check: it may have any number of sources (minimum 1) and any number of recipients (minimum 1). Also, there are 2 different sources for transactions:

  • other transactions
  • Universal Dividend

What about non-members?

Non-members cannot receive UD, nor benefit from transaction fees. However, they can use transactions to receive and send money to their accounts.

How to know whether an individual is a member?

At any moment, Duniter's pulbic ledger (the blockchain) allows one to know if an individual is a member of the community; membership status is written in logged in the ledger so anyone may check it.

How does Duniter make sure that no member cheats by using multiple accounts?

This is thanks to the Web of Trust's mechanisms. These mechanisms simply depend on the rules of the WoT. In Duniter, WoT rules ensure that: the more members in the WoT, the harder it is for fake accounts to go unnoticed. Thus, even if few fake accounts exist at the beginning (which is already hard since the smaller the WoT, the closer the members), these accounts will tend to be mechanically excluded. So, it cannot be guaranteed yet that fake identities won't exist. Some mathematics might help us; we do not know (but you can help). However, because only few fake can exist, this does not stand in front of the numerous benefits of free currency & free economy.

Duniter for validators

What is a validator?

A validator is a person (more precisely, a member) participating to the writing of the blockchain (i.e., the public ledger).

Blockchain?

Yes, just like Bitcoin and other altcoins ("alt-ernate crypto-coins"), Duniter stores its data in a blockchain. A blockchain is a list of blocks which are stacked in order of their creation. Each block contains information about members (e.g. membership, balance, etc.) and transactions (e.g., sender and receiver, amount, etc.). A chain of blocks gives 2 important pieces of information at any time, t:

  • The state of the Web of Trust, telling who is a member and who received UD
  • The state of the Transactions, telling who owns money and why (transaction history)

Why become a validator?

First, in order for the currency to work, validators are required: they are the people validating the blockchain (ledger), by writing new blocks. Since blocks define members and transactions, validators make the currency flexible by allowing us to create new money, send it to someone else, and receive money from others. Without validators, there can't be currency.

Other motivations?

Well, no. Motivation is to have a working free currency, because we know we want a free currency.

Why not allow non-members to write to the blockchain?

Because then we would loose the benefits from identification and would have to do old, energy wasting, centralizing proof-of-work which would waste a lot of power (like Bitcoin).

Where is Duniter data stored?

There is the blockchain, which holds WoT and transactions is replicated on each validator's computer, and even on a simple observer wanting to store it (for whatever purpose). There are also private keys of people, which allow them to create an identity, certify other people and finally create money from the Universal Dividend. For both members & non-members, private keys allow transaction handling. In such cases, private key is just a synonym for "wallet".

Who may write blocks into the blockchain?

As said earlier, only members.

But if members say who are the members, how do we have first members?

Very first members do not have to join the Web of Trust: they are the WoT. Thereafter, newcomers may join in.

Which member writes next block?

Any member may write the next block. It is a matter of both chance and difficulty. Indeed, each member has a difficulty level directly depending on the previous blocks he validated. Hence, a member that does not validate many blocks will increase its chances to validate the next one.

Does every member have to participate writing the blockchain?

No, everyone has the freedom to choose to participate in writing the blockchain.

How does one write next block?

A member has to complete a challenge in which he must build a block whose fingerprint starts with a certain number of zeros. If he succeeds, he may broadcast the block to the network for other members and non-members to see it.

How is difficulty computed?

Precise rule is given in the protocol. You should check it out, you will learn a lot of technical information about how Duniter works.

What if 2 blocks get validated simultaneously?

Duniter will be able to handle multiple blockchains at the same time. So, 2 blocks validated at the same time will create a fork. Depending on other nodes of the network, one of the 2 blockchains will be abandoned at some point.

Isn't there a risk a single member always succeed in proposing a valid block before others?

Yes, that's why when a member succeeds in creating a block, his next blocks will require even harder work to be accepted. If he does not succeed for a while, the next blocks will be easier, and so on, until he reaches the minimum amount of work.

How to know a member received the UD?

If he was a member at that moment, he did receive it. This is just an accepted rule.

Server software

Which OS are supported?

At the moment, only GNU/Linux and MacOS X are supported, however the software should also work on Windows (but harder to install because of external dependencies). For now, Ubuntu 12.04 to 14.04 have been tested. But any recent GNU/Linux distribution should be able to do the job.

Which softwares are required?

Duniter relies on some external softwares, listed here:

  • MongoDB
  • Node.js + NPM

How to install Duniter?

Follow Install guide.

Do you plan to have a Docker installation?

Yes we do.

Getting involved

How may I help?

You can help on project development in many ways, depending your available time, energy and your profile. Please read the requirements and possibilities below. If you feel comfortable with one these profiles, do not hesitate to contact us at admin@duniter.org.

As a backend developer

You may participate in Duniter server's development, which is the core software implementing UCP. You will need some technical skills:

  • Node.js development, lots of asynchronous JavaScript
  • MongoDB database, through Mongoose module

If you are not afraid of those technologies, you can both start reading HTTP API and contact us.

As a designer/frontend developer

See this beautiful website? You want to improve it with new content, new design? Feel free to propose your skills, any help is welcome. What probably Duniter needs the most is: a logo.

As a mathematician

Duniter protocol will use Graph Theory properties to build a Web of Trust of unique & living individuals. Even if Duniter team is made up of engineers/PhDs, Graph Theory is not something easy and we probably need experts in that domain. So, if Graph Theory is your every day life, do not hesitate to come to us!

As a preacher

Well, here, you do not need us to do the job: speak about Duniter, make articles, share links, knowledge, experiences, whatever! No need to ask, simply do it.

What to learn first?

Well, if you reached this paragraph reading the whole FAQ, you should have a rather good idea of what Duniter is. You could go deeper with the Theoretical section. From there, you should be able to talk about the project with a minimum background. If you want to get deeper in Duniter, read about the UCP, this is Duniter's protocol. All you need to know about technical IT stuff is there, even if not in a tutorial format. Lastly, you could try to read about RMT, which is the fundamental theory behind Duniter's way of creating new money.

The best way to stay tuned?

Mailing List for major events, Duniter Forum for every day talk about development, events, questions and almost every subject. Lastly, you could join the chatroom with the bottom-right Chat icon visible on each page of this website.