serapath / economy

balance sheet based simulation of monetary economy
MIT License
4 stars 1 forks source link

The right to get shares of the company I buy from. #4

Open serapath opened 8 years ago

serapath commented 8 years ago

I have some thoughts around this that I did not formalize yet and maybe it doesnt make sense at all.

The core of it means basically, that every customer should have the right to buy a small micro-amount of shares from the company that was being paid during a sale. Companies can offer an immediate buy-back option if they want to, but the customer has the right, even the duty if that buy-back-option is not taken, to receive shares from the company.

The benefit I'm hoping for is, that if it should ever happen, that a single company gets some kind of monopoly that locks a certain resource and starts abusing its power, customers can slowly buy up all the shares and then use their gained voting power to restructure the company.


For now, this is not an interesting idea, because the infrastructure to handle that kind of micro-shares and a market to trade those does not exist yet - it has to be created first, so this idea probably has to rest for a very long time.


If somebody reads this and knows some links or projects or whatever, that has similar ideas, please feel free to share the links, so the process of developing this idea can be speeded up :-)

serapath commented 7 years ago

Feemes

Idea is inspired by taxemes from @resilience_me

Goals & Hopes & Questions

Challenges?

Rules & Theory

Agents

  1. Agents are people or organizations of people that take part in an economy
  2. Every Agent can set a personal feemes rate and change it at any time to any value
  3. Every Agent has an unlimited amount of the personal feeme(s)
  4. Agents can choose from which agents to buy from and/or to sell to
  5. Every Agent has a feeme/antifeeme pool that can fill over time

Selection

Selection Function determines the active feeme(s)/antifeeme(s) in an agent's feeme pool

If B's active taxeme doesn't have enough volume to cover the transaction, then B's next lowest rate taxeme becomes active and the transaction continues.

Transactions

@resilience_me: The sell transaction does not inherit a Taxeme, but it does forward anti-taxemes

  1. Buying disseminates an "anti taxeme" at current personal rate and payment volume
  2. Selling disseminates an "taxeme" at current personal rate and payment volume
  3. If buyer/seller in a transaction do not have (anti)taxemes to pass on or their "personal taxeme rate" is lower than any collected taxeme, a new (anti)taxeme is created using their chosen "personal taxeme rate" instead.
  4. In any transaction, the seller agent disseminates active feeme(s) to the buyer
  5. In any transaction, the buyer agent disseminates active anti-feeme(s) to the seller => Whenever A sends X amount of currency (ETH) to B, B pays the rate defined by their lowest taxeme (% of X), and then X volume of B's lowest taxeme is passed to A. => Volume of a taxeme is passed by subtracting it from the sender's copy of the taxeme and adding it to the receiver's copy of the taxeme (creating a new copy when one does not already exist as issued by the same person at the same rate).
  6. After dissemination of a feeme/antifeeme instance, that instance's rate cannot be changed
  7. ....
  8. .... Received Feemes grow a dividend pathway (which remains closed until the feeme is destroyed ....
  9. .... Any transactions made by Receiver after will draw dividend pathways that grow on top of the one that was created from Disseminator to Receiver
  10. .... fees collected will flow down the network of dividend pathways, the Receiver is connected to

Femes

  1. Feemes are activated using the Selection/Clearing Function
  2. A feeme has a rate and a volume and an origin
  3. Feemes are created or passed on in transactions
  4. If a feeme is disseminated to an agent with an antifeeme in the feeme pool that share the same origin, both, the feeme and antifeeme are destroyed in equal volumes, thus feemes are destroyed when they collide with their corresponding anti-feeme => If B's lowest taxeme was issued by A, then instead of passing volume on to A, the volume that would be passed is deleted
  5. While feemes exist, they make agents pay a fee
  6. Fees paid by agents because of feemes they carry are sent to ....
    • CURRENT INSPIRATION: "...the web of dividend pathways that are down-streams from the node that was consumed from, based on their widths..."

@IDEA: Feemes tax the carriers balance all the time with their steady rate until they are passed on to someone else through a transaction or are used up

Transaction pathways => visualize a "web of consumption" => Show how value has been created and consumed => maybe to use it as a network to "share wealth" => Tax/dividends/shares would flow throughout the network similar to how electricity flows through our cities. => power that web with wealth sharing that reaches everyone who's tapped in. => The pathways are consumed as wealth is shared through them, => like how the tungsten in old lightbulbs is consumed when electricity flows through it

// NOTATION - for example:
Feeme({rate: 0.02, volume: 500, id: ... })
antiFeeme({volume: 500, id: ... })

Redistribution Network

// PAYMENT

// When A sends cash to B,
// B pays the proportional rate of their active taxeme
// and an equal volume of B's active taxeme is transferred to A.

// How is this supposed to work?
/*
@IDEA: alternative, Feemes pay out "tax" once the circle is closed - so closing the circle will reward all who contributed to closing the circle
* Maybe that would help preventing people from abandoning their user accounts - leaving their taxemes circulating indefinitely
* Maybe a Feeme would spread and do it's job regardless of whether originator leaves the economy - it just means it is active until used up
* What about people dying?

@IDEA: the collected sum of fee's is distributed to: ???
* When somebody pays the tax, who receives the money?

2. Taxeme X takes 10% of my next purchase ?
3. I see something that costs $100 equivalent so I pay $111 to seller Y.
4. $100 goes to seller Y and $11 (10%) goes to person X.
5. Seller Y inherits taxeme A.
6. The next time seller Y purchases something, I get 10% paid to me.
7. Now if seller Y is making many sales then presumably she is inheriting a taxeme for every sale.
8. How does the protocol know which taxeme to apply in the next transaction.
9. Example seller Y sold 3 things to 3 different people and now has 3 taxemes (taxeme A, taxeme B and taxeme C).
10. The next time seller Y buys a product, do we tax that purchase using taxeme A, B or C or does seller Y get to choose?
*/
// `pathway-layer`
// `swarm-redistribution`
3. Tax is paid when taxemes `replicate` or `collapse` by ???,
4. Tax is received by those who spread the taxemes
/**** ARTIFACT ("Dividend Pathway")
// What's a "dividend pathway"?
// A transaction draws a dividend pathway
// "width is set from the inherited taxeme"
// Pathways remain closed until the taxeme with the ID that formed the pathway is collapsed
// if only part of the taxeme is destroyed, only part of the pathway opens
// Pathways open when taxemes are destroyed
var dividendPathway = {
  width: 20,
  capacity: 200,
  isOpen: 50, // already partly cleared with anti 'a0tw9jsg9jt4s'
  id: 'a0tw9jsg9jt4s'
}
****/
/**** ARTIFACT ("swarm-redistribution")
... what is it ... ?
****/

NOTATION

// for example:
var X = ECONOMY['name'] // all info about an economic participant X
X['$'] // cash held by X in RES
X['%'] // personal taxeme rate set by X
X['!%s'] // all the prioritized antitaxemes collected by X through economic interaction with others
X['%s'] // all the prioritized taxemes collected by X through economic interaction with others

EXAMPLE SCENARIO

var PEOPLE = {
  /*Founder*/ X: { cash: 500, '%':6, '%s': [], '!%s': [] }
}
// ----------------------------------------------------------------------------
with (PEOPLE) {
  B.ship({ unit:'EUR', amount: 300, to: X })
  X.send({ cash: 100, to: B }) // B joins the network
  R.ship({ unit: 'EUR', amount: 30, to: X})
  X.send({ cash: 10, to: R }) // R joins the network
// ----------------------------------------------------------------------------
PEOPLE = {
  X: { cash: 500, '%':3, '%s': [], '!%s': ['5B100','6R10'] },
  /*Bakery*/ B: { cash: 100, '%':5, '%s': ['3X100'], '!%s': [] },
  /*..*/ R: { cash: 10, '%':6, '%s': ['3X10'], '!%s': [] }
}
// ----------------------------------------------------------------------------
with (PEOPLE) {
  F.ship({ unit: 'stuff', amount: 15, to: B })
  B.send({ cash: 200, to: F }) // F joins the network
}
// A.taxemeBalance = [{ tax-rate: '2%', inherited:   0, passedOn: 100 }]
// B.taxemeBalance = [{ tax-rate: '2%', inherited: 100, passedOn: 100 }]
// C.taxemeBalance = [{ tax-rate: '2%', inherited: 100, passedOn:   0 }]

// If A inherits 100@2% from C,
// A.taxemeBalance.inherited += 100
// The taxeme balance between all nodes balances to 0, and the taxeme will collapse.
// ----------------------------------------------------------------------------
PEOPLE = {
  X: { cash: 500, '%':3, '%s': [], '!%s': ['5B100<-B','6R10<-R'] },
  B: { cash: 100, '%':5, '%s': ['3X100<-X'], '!%s': ['7F200<-F'] },
  R: { cash: 10, '%':6, '%s': ['3X10<-X'], '!%s': [] },
  /*..*/F: { cash: 200, '%':8, '%s': ['5B200<-B'], '!%s': [] }
}
// ----------------------------------------------------------------------------
with (PEOPLE) {
  T.ship({ unit: 'stuff', amount: 1, to: R })
  R.send({ cash: 0.001, to: T}) // T joins the network
}
// ----------------------------------------------------------------------------
PEOPLE = {
  X: { /* ... */ },
  B: { cash: 0.999, '%':7, '%s': ['3F.001'], '!%s': [] },
  F: { cash: 0.001, '%':3, '%s': [], '!%s': ['7B.001'] },
  /*..*/T: { cash: 0.001, '%':4, '%s': [], '!%s': ['6R.001'] },
  R: { cash: 0.099, '%':6, '%s': ['4T.001'], '!%s': [] }
}
// ----------------------------------------------------------------------------
with (PEOPLE) {
  R.ship({ unit: 'stuff', amount: 1, to: B })
  B.send({ RES: 0.002, to: R})
  // @TODO: Questions:
  // 4. Is the accounting below regarding taxemes correct?
  // 5. What taxes are being paid by whom to whom?
  // 6. What are the "dividend pathways" (open/closed)?
}
// ----------------------------------------------------------------------------
PEOPLE = {
  X: { /* ... */ },
  B: { cash: 0.997, '%':7, '%s': ['3F.001','4T.001','6R.001'], '!%s': [] },
  F: { cash: 0.001, '%':3, '%s': [], '!%s': ['7B.001'] },
  T: { cash: 0.001, '%':4, '%s': [], '!%s': ['6R.001'] },
  R: { cash: 0.101, '%':6, '%s': [], '!%s': ['7B.002'] }
}
// ----------------------------------------------------------------------------
with (PEOPLE) {
  // whats next? :-)
}

Helpers

function ship ({ unit, amount, to}) {
  // ...
}
// A buys 1x macbook for 1000x CASH from B
//
// Person A pledges to pay forward the contribution that person B made, taxCollected = 84.
// This is enforced through person A inheriting a taxeme from person B.
// Think of taxemes as autonomous, non-coercive, tax-collectors.
A.send = send
var taxCollected = A.send(1000, B)
console.log(taxCollected) // => 84
function send (cash, receiver) {
  // A buys a macbook from person B and I get taxeme X
  A.cash -= 1000
  var remaining = 1000 // the remaining cash in the transaction
  // B's active taxeme is determined by comparing B.taxemes[0] with B.personalTaxemeRate, B.taxemes[0] is active as it has a lower rate.
  rate = B.taxemes[0].rate
  // B.taxemes[0] only covers the first 200 of the transaction:
  remaining -= 200
  B.cash += 200 - rate * 200
  taxesCollected += rate * 200
  // B.taxemes[0] is moved to A.taxemes where it is combined with the volume of A's existing 2% taxeme.
  // B's next listed taxeme now has a higher rate than B's personal taxeme, so B's personal taxeme is used for the remainder of the transaction.
  rate = B.personalTaxemeRate
  remaining -= 800
  B.cash += 800 - rate * 800
  taxCollected += rate * 800
  // A then inherits the taxeme {rate: 0.1, volume: 800}.
  // Tentatively the newly created taxeme would also be added to B.createdTaxemes
  // as well as subtracted from any existing volume at that rate from A.createdTaxemes
  // before having any remainder added to A.taxemes
}
function send ({ RES, to }) {
  var RECEIVER = to
  var amount = RES
  var SENDER = this
  var taxemes = RECEIVER.removeNextTaxemes(amount)
  var taxes = taxemes.reduce((sum,tx)=>sum+tx.r*tx.v,0)
  var avgRate = taxes/amount
  // Check for taxeme-antitaxeme-collisions first
  // then:
  SENDER.pay(taxes) // @TODO: to whom???
  SENDER.addTaxemes(taxemes)
  RECEIVER.addAntiTaxemes([
    // ... what goes in here? ...
  ])
  createDividendPathwayBetween({
    from: P,
    to: Q,
    width: avgRate,
    size: amount
  }) // pathway remains closed until P has spread taxemes to someone else
}
///////////////// HELPERS
function removeNextTaxemes (amount) {
  // example: amount = 100
  // 1. either get taxemes of P in FIFO order
  // 2. or get taxemes in LOFI or HIFI order
  // HIFI = Highest First
  // LOFI = Lowest First
  // FIFO = First in First out
}
serapath commented 6 years ago

Average Cost Threshold Protocol

serapath commented 4 years ago

see: https://hackernoon.com/wealth-a-new-era-of-economics-ce8acd785441