Everyone can create a new account

An account will constantly generate an income (1000 units per week)

The rate at which the income is generated will increase by g=2% per year

A new account starts with the income that will be generated in the next 3 months

One month of income is for the account owner - the other two are reserverd for people who trust this account, it is called the trustee reward.

Accounts can trust one another. This will allow both accounts holders to exchange their coins 1:1.

Trust can be revoked by both parties.

If an account trusts another account it is credited with half of the remaining trustee reward.

Arbitrary groups can be created.

Groups can verify accounts as members.

Groups can exclude accounts as members.

All members can convert their private money into group money (1:1 exchange rate). This exchange is irreversible.



//data structure Dictionary -> tuple accounts[owner] = (time_created, money_spent, trustee_reward) Dictionary -> Set groups[owner] = [member1, member2 ,..] Dictionary -> Set trustees[account] = [account1, account2, ...] // each relationship need only be saved once Dictionary - > Dictionary -> int balance[owner][foreign_account] = amount Int years = 0 //pseudo code create_account(): trustee_reward = (1000*12) * 1.02 ** years accounts[message.sender] = (block.time - 1month, 0, trustee_reward) add_account(account1, account2): //somehow check that both accounts signed the message if int(account1) > int(acount2): trustees[account1].append(account2) else: trustees[account2].append(account1) //credit and update the trustee reward balance[account1][account2] = accounts[account2][3] / 2 balance[account2][account1] = accounts[account1][3] / 2 accounts[account2][3] /= 2 accounts[account1][3] /= 2 revoke_trust(account): if int(message.sender) > account: trustees[message.sender].remove(account) else: trustees[account].remove(message.sender) send_money(amount, currency, receiver): if balance[message.sender][currency] >= amount: balance[message.sender][currency] -= amount balance[receiver][currency] += amount send_new_income(receiver, amount): //todo factor in 2% growth rate income_generated = (block.time - accounts[message.sender][0])/ weeks * 1000 if income_generated - money_spent > amount: money_spent += amount balance[receiver][currency] += amount exchange_money(account1, account2, amount) if message.sender == account1 or message.sender == account2: if account2 in trustees[account1]: if balance[account1][account1] >= amount: if balance[account2][account2] >= amount: balance[account1][account1] -= amount balance[account2][account2] -= amount balance[account1][account2] += amount balance[account2][account1] += amount create_group() groups[message.sender] = Set() add_group_member(account) groups[message.sender].add(account) remove_groupt_member(account) groups[message.sender].remove(account) convert_into_group_money(group, amount) if message.sender in groups[group]: if amounts[message.sender][message.sender] >= amount: amounts[message.sender][message.sender] -= amount amounts[message.sender][group] += amount

"Circles" will be a currency created from basic incomes only. In the system outlined in the following, new money is constantly distributed to every account participating in the system. The money in every individual account are uniquely identifiyable and only gain in value if the account connects to other accounts and joins groups. This incentivizes every user to limit themself to one account.latest project draft here: http://piratepad.net/kjTwIzn5u3 previous discussions here: https://forum.ethereum.org/discussion/1598/basic-income-circles-reputation-market-based-approach-to-solve-the-identity-problem-sybil-attacs Design rationaleThe main purpose of this project is to establish a world wide basic income.Requirements are:a. DecentralizationA world wide basic income is something so powerful that no single entity in the world should have control over it in order to preclude manipulation. Particularly, there should be no central authority that desicdes which person can get a basic income and which person cannot.b. Smooth growthThe solution should support a smooth growth. If the only two equilibria are "no one participates" or "all people participate" then it is nearly impossible to change to the "all" equilibrium, especially if no central entity is involved. In the approach presented here, groups can grow locally, even starting at a single family level. However, there are no constraints on subsystem growth. All subsystems can merge into a global system at any time.c. ResillianceThe system can support something like a world currency. However - if this currency fails at some point, it is not the whole system that would collapse. Instead, the system would fall back on the group level underneath, for instance a country group. Even if the group currencies should fail at one point (because they accepted too many memerbs that just consume their income and don't provide any goods or services for their income) it can still fall back on the personal level where the value of a currency is closely related to the personal relationship with the other person.d. Incentives for organic growthDetailed discussion.6:Transitive TransactionsIf A and B trust each other, and B and C trust each other, then A and C can pay each other as long as B is liquid. If A is a customer and C is a merchant, A could send money to C. The network will automatically send a-coins from A to B and b-coins in exchange for the a-coinsfrom B to C.3:The growth rate g = 2%.The growth rate g determines the ratio between the total coin supply and the income per month. This number is subject to discussion. It should be chosen to maximize the value of the income.Note that a high growth rate (inflation rate) destroys the capability of the currency as a store of value. Consequently, the potential dollar market cap is a function of the growth rate: market cap = f(g). (The market cap of the currency is a function of g that most likely will decrease sharply for bigger g like 5% or 10%). g should be chosen to maximize g*f(g).The growth rate can be seen as a capital tax that finances the basic income. People with exactly the average wealth would pay the same amount of money in fees as they would get from their UBI.9-12:GroupsGroups are necessary to bring more stability into the system. Holding coins of a specific person always carries a certain risk. In some sense, the value of theses coins is always backed by the person. If the person dies or more broadly speaking the trust in this person sinks, these coins may become worthless. However, as long as a person is member of a group, the money can be converted irreversibly into group money. It is in the responsibility of the groups themselves to keep them tight on the one hand to not dilute the value, but on the other hand have a positive network effect. This makes it interesting for merchants to accept such group money.FAQ:Q: Can I create 100 fake accounts that all trust each other and abuse the system?A: You can create them but this will not create value. As long as nobody else trusts these accounts they can only exchange money with each other, rendering all the money worthless.Q: Why should I add someone else to my trust network?A. Your trust network is what gives your personall currency value beyond what you are willing to provide for this currency. Lets say 100 people are in your trust network, that means that 100 people are accepting your currency. Even for those who do not accept your currency directly, may accept it indirectly since they know they can use it to get goods or services from 100 people. Accepting money is all about network effects.However, on the other hand accepting a new person bears some risk. If this person turns out to be a fake account you will end up having his worthless money and the scammer can spend your money. To make the incentive higher to be among the first to accept an new account nevertheless, the trustee reward was introduced. However, accepting a completely new account will and should be backed by a personal relationship of the two participants that ensures that the new person participates honestly in the system. If they don't the only person who loses money is the person who wrongly trusted them.Q: What is the money of an account worth?A: In theory it should be max(value(group1), value(group2), value(group3), ... , value(connection1), value(connection2), ...). Note that only connections to liquid people count. As long as the memberships in the groups and the connections are stable (or expected to be stable) there should be no incentive to convert money into group money.This concludes in the assumption that it is not necessary to convert your money into group money or to exchange money with one of your trusted connections. Just having the ability to do so makes your money at least as worthy. This could stabilize the system and allow user A to connect to user B despite the fact that user B's coins are worth less. This connection could raise the value of user B's coins without changing the value of A's coins. However, this stops if B tries to abuse this connection, but in this case, A can cancel the trust relationship.From time to time users could lose their connections because they create panic. This is the unliklier the better the user is connected. This strengthens the incentive to concentrate all your social connections/ reputation into one accout.Q: How much of the group money is yours?A: The amount that you've converted. Only difference is that now it's no longer tied to you as an individiual. This means that if you do something bad, the group cannot do anything to revoke your group money. However, they can kick you out of the group.With groups exchanges are mono directional with individuals. Only individual => group, NOT group => individual. However, exchanges are is bi-directional between groups. So Berlin <=> SF is OK.#lang:en