Ethereum Smart Contract Ponzi Schemes: Part 3
Waterfall

This article is part of a series of articles on the types of Ponzi Schemes found on the Ethereum Network. Read part one and part two!
The previous articles covered Chain and Tree-shaped Ponzi schemes. Comparing them, the most obvious difference between the two is the structure in which they organise the relationships between nodes.
Nodes of Chain schemes are connected to a maximum of 2 other nodes: the previous and the subsequent. This maintains a single branch throughout the whole structure. (To make the code even simpler, this structure can be represented as an array, where there is no knowledge between nodes).

Nodes in Tree schemes have more links. They have one previous node: parent, but they can also have n number of subsequent nodes where n=0..*. These are called the children. Such relationships result in a branching structure which typically causes the tree to grow wider as the number of members increases.

Waterfall
Waterfall schemes almost identical to Chain shaped schemes in structure. Each node is connected to a maximum of two other nodes: the node that joined before them, and the node that joined after (or simply an array in the order in which they join). The difference, however, is the distribution logic of the funds invested by each node.
In Chain shaped schemes, payment is propagated backwards through the chain when a new member joins. Consider it “last come first serve”. It encourages a quick return on investment, but the earnings are fixed depending on the initial investment of the node receiving the payout. The example used in part one was called Doubler, which doubled each member’s money and nothing more.
Waterfall applies the opposite distribution logic, as it starts at the beginning and propagates forward through the chain. The payouts that each member receives depend on three things:
- Their position in the chain
- Their initial investment
- The value of the new member’s investment
Here’s a walkthrough
Super Trading Algorithm!
As the owner of the scheme, I deploy the contract and advertise my scheme as a ONCE IN A LIFETIME INVESTMENT OPPORTUNITY, TAKE ADVANTAGE OF OUR SUPER DUPER BITCOIN TRADING ALGORITHM! ALL YOU HAVE TO DO IS INVEST SOME MONEY AND WATCH YOUR PROFITS SOAR!
That’s a complete lie, but enough to sucker someone in…
- Alice joins the scheme by investing 2 ETH. She is the first node in the chain. As the owner, I take a 10% fee. The pot stands at 1.8 ETH. The distribution logic takes that 1.8 ETH and distributes it, starting at the beginning of the chain at a rate of 10% of each member’s original investment, excluding this investor. Because Alice is the only one and the investor, she doesn’t earn anything. Earnings: Me: 0.2 ETH, Alice: -2 ETH. Pot stands at 1.8 ETH.
- Bob is the next to join and invests 1 ETH. I take 10%, so the pot now stands at 2.7 ETH, distribution kicks in. Alice gets 0.2 ETH from the pot (10% of her original investment, and being at the head of the chain she gets hers first). Because Bob was the investor, the distribution stops. Earnings: Me: 0.3 ETH, Alice -1.8 ETH, Bob -1 ETH. Pot is at 2.5 ETH.
- Charlie joins with 2 ETH. I take 10%, 1.8 ETH is added to the pot, now totalling 4.3 ETH. Distribution kicks in. Alice gets 0.2 ETH, Bob gets 0.1 ETH, Charlie gets none because he was the investor. Earnings: Me: 0.5 ETH, Alice: -1.6 ETH, Bob: -0.9 ETH, Charlie -2 ETH. Pot is at 4 ETH.
Eventually, the early investors break even and, with every new member, start profiting.
You’ll notice in our example the pot value is getting bigger and bigger. This will happen as long as there is a cap on the investment value. As the owner of the contract, this is favourable, because we can write a function which drains the pot, effectively killing the scheme when we’re satisfied with the profits.
Investment Capping
If there is no cap on the investment amount, a new member investing 100x the average investment significantly hampers the odds of later members profiting at all. The distribution logic would drain the pot sufficiently every time it pays out that mega-investor.
Assume Gareth, the 7th investor, invests 200 ETH. Suppose the next 18 or so members who join only invest up to 2 ETH each. The pot lies at just over ~26 ETH. Zak, the 26th member, invests 2 ETH. The distribution algorithm starts from the beginning and pays out 10% of each member’s initial investment. When Gareth is reached, 10% to his 200 ETH is 20 ETH. The algorithm pays it out, draining what’s left in the pot. Due to the logic, the distribution simply cannot go on until there is more value and therefore more users, so everyone after Gareth goes unpaid for some time.
Like Tree-shaped schemes, getting in early gives the best chance of making money. Still, the only one guaranteed to profit is the owner, who takes a small fee from every investor, and can drain the account if they deploy the correct contract code.





