Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/541ed0bb4a7cbc66b499c04bd8352f68 to your computer and use it in GitHub Desktop.
Save anonymous/541ed0bb4a7cbc66b499c04bd8352f68 to your computer and use it in GitHub Desktop.

Resilience — RES with built-in dividend pathways and swarm redistribution, for decentralized basic income

The idea to use the global financial network of daily transactions, and to link these transactions together into a web, is a bit similar to Tim Berners Lee's idea to link all documents on the internet together with the Hypertext Transfer Protocol (HTTP), which gave us the world wide web. When Tim Berners Lee had the idea for the world wide web in the 80s, there were already documents on the internet. He did not have to invent the internet, and his contribution was instead that he saw a way to harness the information on the internet in a new way.

The same goes for the Resilience protocol. The world is electrified with millions, or billions, of financial transactions happening every single day. The global financial network is part of our infrastructure already. What Resilience aims to do is to re-purpose these transaction networks, into a web-of-links, where each transaction forms a dividend pathway.

The main resource which Resilience taps into, is transactions as a network.

Dividend Pathways form with each transaction

transfer: (_to, _amount) ->
    dividendPathway = 
            from: msg.sender
            amount: _amount
            timestamp: now
    @dividendPathways[_to].push dividendPathway

Swarm Redistribution sends tax into the dividend pathways

iterateThroughSwarm: (_node, _timeStamp) ->
len = dividendPathways[_node].length
for i in [0...len]

    timeStamp = dividendPathways[_node][i].timeStamp
    if timeStamp <= _timeStamp
        # Pathways are decayed with decayPathways() at later time
 
        pathway = node: _node
                  pathway: i            
        
        @swarmTree.push pathway
        
        from = dividendPathways[_node][i].from
        # Humans in the swarm redistribution pulse get share of tax
        if @isHuman[from] == true and @inHumans[from] == false
            @humans.push from
            @inHumans[from] = true
        iterateThroughSwarm(node, timeStamp, _taxCollected)
doSwarm:(share) ->
len = @humans.length
for i in [0...len]
    node = @humans[i]
    @totalBasicIncome[node] += share
    @inHumans[node] = false
@humans = []

Exponential decay of dividend pathways

The decay rate of pathways should increase exponentially (for example, double every two months). The base decay would then be share = taxCollected / humans.length (the whole pathway recycled), and then increase exponentially over time (possibly with an upper limit, for example taxCollected)

decayPathways: (share) -> 
len = @swarmTree.length 
for i in [0...len]
    node = @swarmTree[i].node
    pathwayIndex = @swarmTree[i].pathway
    # Decay rate doubles every two months
    timestamp = @dividendPathways[node][pathway].timestamp
    # two months is 5184000 seconds
    doublings = Math.floor(now - timestamp) / 5184000) 
    doublings = Math.floor((20 - 10) / 3)
    decayRate = Math.pow(2, doublings)
    decayAmount = share * decayRate
    if @dividendPathways[node][pathway].amount > decayAmount
        @dividendPathways[node][pathway].amount -= decayAmount 
    else 
        @dividendPathways[node].splice pathway, 1 
@swarmTree = []

Pathways form "branching schemes", which grow chronologically

Each transaction forms a pathway that includes a timestamp,

    dividendPathway = 
            from: msg.sender
            amount: _amount
            timestamp: now
    @dividendPathways[_to].push dividendPathway

and, during swarm redistribution, pathways are iterated through with a filter by timestamp.

iterateThroughSwarm: (_node, _timeStamp) ->
len = dividendPathways[_node].length
for i in [0...len]

    timeStamp = dividendPathways[_node][i].timeStamp
    if timeStamp <= _timeStamp

dividend pathways connect in a way that follows the order in which transactions occurred, chronologially.

Each transaction will grow links and pathways which connect across many nodes (using node as in a person or a company, steps in a supply chain or employees being paid out), and as tax is collected during swarm redistribution, it will flow down through the pathways. Every transaction connects to its own unique tree of pathways, which extend from it. In the Resilience protocol these trees are called "branching schemes.

In branching schemes, each branch behaves like its own wealth transfer system. The word "branching scheme" is based on pyramid scheme, since like a pyramid scheme, the Resilience protocol promises a reward if the branching scheme continues to grow. In contrast to pyramid schemes, each person stays on top only for a short time since their pathway decays when it acts as a conduit for tax during swarm redistribution.

Branching schemes could be viewed as "positive pyramid schemes".

branching scheme

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment