progress in the past week →
Conversation between inventor and developer
johan.nygren9 [3:39 AM] i’ll give $300 to whoever builds a contract for this,https://medium.com/@resilience_me/using-a-genetic-algorithm-for-self-organising-emergent-tax-rates-in-a-crypto-basic-income-system-fbb9d60ba7fa, the tax-money could go to a fund that’s controlled by trusted people in the ethereum community, and they could then invest it based on what the community wants
proposed replicator: “taxeme”
johan.nygren9 [5:54 PM] “If my genetic algorithm idea works, then that might be _the first decentralised model for wealth redistribution_. These “taxemes” could control more then just basic income tax, you could potentially code your taxeme to redistribute 2% to UBI and 3% to some healthcare-dApp and 1% to some city planning dApp. The most successful taxemes will shape the ‘Resilience’ redistribution machine, and human consumers will be able to use *taxemes* to influence how wealth is redistributed in the DAO economy.”
— — -
— — -
johan.nygren9[1:06 AM]they can change it at any time
johan.nygren9[1:07 AM]and stores the amount you transacted
jeffreybpetersen[1:09 AM]If I had a taxeme of 10% and you had a taxeme of 50%, and we made a transaction, then what would happen?
johan.nygren9[1:11 AM]i would then have 2 taxemes, my 50% and your 10%
johan.nygren9[1:11 AM]the 10% taxeme would be dominant
jeffreybpetersen[1:15 AM]So taxemes work strictly with 2 party transactions of something with taxed value for something else?
jeffreybpetersen[1:15 AM]In this case the taxed value being Ether.
jeffreybpetersen[1:18 AM]And inheritance is always from the party receiving the taxed value to the party sending it?
jeffreybpetersen[1:20 AM]Ah, how does the taxing itself work?
jeffreybpetersen[1:24 AM]Do you always hold a copy of your personal taxeme or can it be passed away and only reappear in your set of taxemes when your set is exhausted?
jeffreybpetersen[1:28 AM]As opposed to being an additional amount that the sender has to pay on top of the base transaction.
jeffreybpetersen[1:29 AM]Like if I paid you 2 ETH and you had a 50% taxeme active then you would get 1 ETH and 1 ETH would go to tax collections?
johan.nygren9[1:30 AM]proportion is easiest
johan.nygren9[1:30 AM]both work
jeffreybpetersen[1:31 AM]Being able to forward taxes immediately does a lot to help simplify things.
jeffreybpetersen[1:32 AM]I think I’ve got the algorithm down for how taxemes work.
jeffreybpetersen[1:33 AM]I’m curious what your ideas are for managing the collected taxes in the long run?
johan.nygren9 [1:48 AM] at this moment, i’d like to just test the taxeme framework, its a lot to process at once. the original plan was to use the tax for basic income, and to distribute it based on a *web of consumption*
jeffreybpetersen[1:53 AM]I’m interested in the details of how the web of consumption would work if you want to get into it.
johan.nygren9 [1:59 AM] it uses what i call *dividend pathways*,
dividend flow through them, sort of like electrical currents, and the pathways get used up as dividend flow through
jeffreybpetersen[2:07 AM]And then the dividend pathways are essentially a capacity for total individually received payouts from collected taxes?
johan.nygren9 [2:09 AM] transaction tax is divided on everyone who has a dividend pathway connection. if I send you 2 ETH and your dominant taxeme is 10%, then 0.2 ETH is divided on lots and lots of people
johan.nygren9[2:12 AM]and those who have a dividend pathway from them, and those who have a dividend pathway from them
johan.nygren9 [2:16 AM] the dividend pathways have a *weight*, Rp, a pathway made to someone who has a 2% taxeme has an Rp of 2%, and will be less conducive to dividend then a pathway with an Rp of 5%
jeffreybpetersen [2:19 AM] Which taxeme determines the weight? The taxeme active in the transaction that formed the pathway? The personal taxeme of the sender? The currently active taxeme of the sender?
johan.nygren9 [2:25 AM] think of it as running an electrical current through pathways with varying resistance. a pathway with 2% Rp that is down-streams from one with 1,5% Rp will receive the same current as the 1,5 % Rp did
johan.nygren9[2:25 AM](see animation)
jeffreybpetersen[2:28 AM]What happens when there are multiple streams from A to B? Such as A to C to B and A to D to B?
— — -
— — -
johan.nygren9 [2:39 AM] @d11e9 @howardpmarks @jeffreybpetersen Vitalik commented on the genetic algorithm idea and said it was “moving in an interesting direction” :simple_smile:https://www.reddit.com/r/ethereum/comments/3rk0js/using_a_genetic_algorithm_for_selforganising/cwqu708
8 points and 6 comments so far on reddit
jeffreybpetersen[3:32 AM]Like the heap will have pretty regular gas costs whereas a radix sort could vary a lot depending on what kind of values people use.
jeffreybpetersen[3:34 AM]Namely it would cost a lot to have fine grained tax rates but could be cheaper for round numbers vs. a heap.
jeffreybpetersen[3:35 AM]Hard to tell without seeing it in use first…
jeffreybpetersen[3:36 AM]Should I make a public repo on GitHub for the contract and related details?
jeffreybpetersen[4:04 AM]What are the records of the transaction amounts used for?
johan.nygren9 [4:07 AM] For when the taxeme is passed on to a new node. If I’ve inherited a 2% taxeme with the size of 100RES, and its my dominant taxeme, and you send me 50 RES, then you’ll inherit half of it, and i’ll still have a 2% taxeme with the size of 50 RES
johan.nygren9[4:13 AM]the taxemes have to be traceable to their origin nodes
jeffreybpetersen [5:33 AM] If you have a 50 RES 2% taxeme and a 100 RES 3% taxeme and I send you a transaction of 100 RES then it would use the 2% taxeme for the first 50 RES and the 3% taxeme for the second 50 RES for an effective tax rate of 2.5% leaving you with a 50 RES 3% taxeme?
jeffreybpetersen[5:34 AM]And me with a 50 RES 2% taxeme and a 50 RES 3% taxeme.
jeffreybpetersen[5:37 AM]Trying to get at whether you continue to the next taxeme if the current lowest one is exhausted during a transaction.
— — -
November 9th, 2015 — — -
jeffreybpetersen[6:58 PM]And I figure you’d like balances held under contract so that taxes can be easily enforced?
jeffreybpetersen [11:11 PM] I’m currently working out how to best encode the rates given the lack of floating point support in Solidity. I’m leaning towards a simplified implementation of floating point with a constant exponent, leaving all the bits for the mantissa (no sign bit either unless you want negative rates available). A very minor drawback would be the lack of a 100% tax rate, instead having the largest possible rate be 1–2^bits_in_mantissa (99.998% for 16 bits).
— — -
November 10th, 2015 — — -
johan.nygren9[1:03 AM]you are better then me at floating points and so on
jeffreybpetersen [1:22 AM] If my taxeme is set at 2%, and I inherit another 2% taxeme, then should the other taxeme remain dormant unless I raise my rate or should my taxeme be given minimum priority at the given rate?
jeffreybpetersen[1:25 AM]FIFO would imply the others remain dormant.
— — -
— — -
Including if you want me to polish up whatever I’ve got at the moment and push it.
jeffreybpetersen [11:16 AM] An interesting property I came across is that it’s possible to treat everyone as a member of the system, where a lack of explicit participation is effectively a personal taxeme at 0%, and transactions must always be declared by the sender as otherwise anyone could force arbitrary taxemes onto anyone else so long as they’re willing to pay the associated tax costs.
— — -
— — -
johan.nygren9 [11:05 AM] Not sure. This is the first time the framework is being tested. It might make sense to track the origin of a taxeme by logging how much of a particular taxeme a node has originated, in a particular tax-rate. That node will then collapse taxemes in those tax-rates.
johan.nygren9 [4:55 PM] instead of logging the creator of a taxeme, each creator logs what taxemes they have originated, and act as destructors for taxemes in those tax-rates
this increases the amount of turn-over for taxemes. the likelyhood that a specific taxeme will return to its creator is probably low, but the likelyhood that a taxeme of a specific tax-rate will return to someone who originated a similar taxeme would be much higher. higher turn-over seems like it would work better.(edited)
johan.nygren9 [5:15 PM] not sure why i didn’t mention this first, it’s a very complex system with many parts and it was probably conceptually easier to describe it as “creators of specific taxemes collapse taxemes that return to them” while i walked you through how the inheritance worked etc(edited)
Such as if my active rate is 5% (whether my own rate or a taxeme I inherited), and people inherit 100 ETH worth of that 5% rate from me, then the next 100 ETH of 5% that I inherit myself will be collapsed instead of passed on?
If I’m understanding it correctly then the net effect is proportionately reducing the size of taxemes as they’re passed on, specifically by half.
Since it’d be alternating between passing on a specific tax rate and collapsing it.
— — -
— — -