Photo by Márton Kopasz on Unsplash

Ponzi Schemes have an upgraded version: Smart Contract Ponzi Schemes. It is more challenging for people to identify and pinpoint their operations running under the smart contract code. It is more difficult when the code is open source and immutable, which promotes transparency.

A typical Ponzi Scheme

Ponzi Scheme is an investment fraud that promotes high returns while only a few in the early investment period gain the full investment returns. It highly relies on newcomers to pay off investment gains.

To determine a typical Ponzi scheme event, there are factors to identify from:

- unreasonable high returns with no risk

- short period of consistent returns

- unregistered investments

- over-complicated investment strategies

- investment cheerleaders to push you

- unlicensed sellers to promote investments

- secrecy opportunities to wait for you

- paperwork with errors and false statements

- difficulty receiving payments

- do not know who managed the money funds

The list can go on and on.

Smart Contract Ponzi Scheme

SEC recently charged Forsage, a crypto platform, with 11 individuals for Ponzi Scheme. It is a global Ponzi Scheme with a $300M crypto Pyramid Scheme.

Instead of the human promoters, Forsage launched a website that allowed investors to enter into transactions through smart contracts operated on Ethereum, Tron, and Binance blockchains.

They promote through YouTube and claim to make money quick:

Forsage claimed you could make and become a millionaire by using their platform:

And the coolest is that they told you they are implementing a Pyramid Scheme with a diagram shown below:

Here is the Pyramid (Ponzi) Scheme smart contract code shown below:


How to identify Smart Ponzi Schemes

To onboard new members of the Ponzi Schemes, the Smart Ponzi schemes will require you to join them with your wallet and access your funds to transfer to them.

Since the smart contract is open-source code, it can search through a site like Etherscan.

The logic of the smart contract follows:

Step 1: the contract distributes money among investors

Step 2: the contract receives money only from investors

Step 3: each investor makes a profit if enough investors invest enough money in the contract

Step 4: the new investors join the contract, and the greater risk they will lose their investments

Writing a smart contract goes from step 4 to step 1.

You need to pay to join the scheme:

// satoshi amount required to enter the scheme
int entryFee;

You need to recruit someone to get pay:

// recruite two members to get double payout
public function recruit(PubKeyHash recruit0, PubKeyHash recruit1, SigHashPreimage txPreimage) {
// use ANYONECANPAY so recruits can deposit
SigHashType sigHashType = SigHash.ANYONECANPAY | SigHash.ALL | SigHash.FORKID;
require(Tx.checkPreimageSigHashType(txPreimage, sigHashType));
// commission payout: double the original entry fee
bytes commissionScript = Utils.buildPublicKeyHashScript(this.schemer);
bytes commissionOutput = Utils.buildOutput(commissionScript, 2 * this.entryFee);
The more you recruit, the more you gain:
// keep the scheme going from recruit0
this.schemer = recruit0;
bytes recruitScript0 = this.getStateScript();
bytes recruitOutput0 = Utils.buildOutput(recruitScript0, DUST);
// keep the scheme going from recruit1
this.schemer = recruit1;
bytes recruitScript1 = this.getStateScript();
bytes recruitOutput1 = Utils.buildOutput(recruitScript1, DUST);
bytes output = commissionOutput + recruitOutput0 + recruitOutput1;
require(hash256(output) == SigHash.hashOutputs(txPreimage));

Let's check out the Etherscan of Forsage:

You need to pay 0.05 ETH to join:

function registration(address userAddress, address referrerAddress) private {
require(msg.value == 0.05 ether, "registration cost 0.05");
require(!isUserExists(userAddress), "user exists");
require(isUserExists(referrerAddress), "referrer not exists");

You need to recruit as many as users to gain more earnings.

if ((len == 2) &&
(users[ref].x6Matrix[level].firstLevelReferrals[0] == referrerAddress) &&
(users[ref].x6Matrix[level].firstLevelReferrals[1] == referrerAddress)) {
if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
emit NewUserPlace(userAddress, ref, 2, level, 5);
} else {
emit NewUserPlace(userAddress, ref, 2, level, 6);
} else if ((len == 1 || len == 2) &&
users[ref].x6Matrix[level].firstLevelReferrals[0] == referrerAddress) {
if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
emit NewUserPlace(userAddress, ref, 2, level, 3);
} else {
emit NewUserPlace(userAddress, ref, 2, level, 4);
} else if (len == 2 && users[ref].x6Matrix[level].firstLevelReferrals[1] == referrerAddress) {
if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
emit NewUserPlace(userAddress, ref, 2, level, 5);
} else {
emit NewUserPlace(userAddress, ref, 2, level, 6);

Only 5 winners of the entire operations:

Ower of the contract:

Earlier founder #1:

Earlier founder #2:

Earlier founder #3:

Earlier founder #4:

Here is their promotional video to detail the Pyramind scheme:

Don't be a fool in the trap!