CRYPTO NEWS

How The SEC Uncovered A $300 Million Crypto Pyramid Scheme

According to a press release issued by the U.S. Securities and Exchange Commission (SEC) on August 1st, eleven people have been charged for their roles in creating and promoting Forsage, a fraudulent crypto pyramid and Ponzi scheme that brought up more than $300 million from millions of retail investors across the globe.

The decentralized finance (DeFi) ecosystem and initial coin offerings (ICOs) have contributed to Ethereum’s growth in a number of ways. The Forsage gifting pyramid scam is one such strategy that cryptocurrency users are now debating.

Related Reading: How Cardano’s Charles Hoskinson Helps the Crypto Community

In pyramid schemes, which are types of financial fraud, top-level players in a hierarchical network enlist and benefit from a growing base of newly deceived members. On the other hand, a Ponzi scheme often only demands an initial payment from its victims, with promised returns at a later payment date. That is the key distinction between these two scams.

However, using smart contracts that operated on the Ethereum, Tron, and Binance blockchains, Forsage.io was a website that let millions of retail investors transact. It was created in January 2020 by Vladimir Okhotnikov, Jane Doe, a/k/a Lola Ferrari, Mikhail Sergeev, and Sergey Maslakov.

The working theory of Forsage was that there was nothing to sell. Therefore, the only way to get money is to persuade others to join Forsage.

Bitcoin is currently trading at $23,103 on the daily chart | Source: BTCUSDT From Tradingview
 SEC Charges Against 11 People For promoting Forsage

The four Forsage founders, three American promoters that the founders hired to advertise Forsage on their websites and social media platforms, and a number of the “Crypto Crusaders” members are all included in the SEC’s chargers. Moreover, the advertising campaign’s strategy was carried out in the U.S. from at least five separate states.

For more than two years, Forsage reportedly functioned as a pyramid scam in which investors made money by enlisting others as participants, according to the SEC’s statement. In a typical Ponzi scheme, Forsage illegally exploited assets from new investors to pay off prior investors.

The Securities and Exchange Commission of the Philippines and the Montana Commissioner of Securities and Insurance both took cease-and-desist actions against Forsage for operating as a fraud in September 2020 and March 2021, respectively. Still, Forsage allegedly continued to promote the scheme while disputing the allegations in many YouTube videos and other means.

Related Reading: Experts Still Think Bitcoin Mining Is Profitable, What Does That Mean?

In addition to the four founders, seven more people are accused of breaking the federal securities laws’ anti-fraud and registration requirements in the complaint, which was submitted to the Northern District of Illinois’ United States District Court. In its case, the SEC asks for civil fines, disgorgement, and injunctive relief.

Nonetheless, two of the defendants, Ellis and Theissen, settled the charges without admitting or denying the accusations and consented to be permanently restrained from engaging in specific activities as well as violating the charged provisions in the future.

Featured image from Flickr, chart from Tradingview.com

 

Trying to understand solidity assembly’s revert function

I have been absolutely racking my brain trying to understand this line of code from OpenZeppelin’s ERC721.sol file. It is inside the function _checkOnERC721Received. I’ve already dove into a bunch of documentation and I just can’t find anything that makes this line truly make sense assembly { revert(add(32, reason), mload(reason)) } taken from function _checkOnERC721Received( address::Listen

I have been absolutely racking my brain trying to understand this line of code from OpenZeppelin’s ERC721.sol file. It is inside the function _checkOnERC721Received. I’ve already dove into a bunch of documentation and I just can’t find anything that makes this line truly make sense

assembly { revert(add(32, reason), mload(reason)) }

taken from

function _checkOnERC721Received(         address from,         address to,         uint256 tokenId,         bytes memory data     ) private returns (bool) {         if (to.isContract()) {             try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {                 return retval == IERC721Receiver.onERC721Received.selector;             } catch (bytes memory reason) {                 if (reason.length == 0) {                     revert("ERC721: transfer to non ERC721Receiver implementer");                 } else {                     /// @solidity memory-safe-assembly                     assembly {                         revert(add(32, reason), mload(reason))                     }                 }             }         } else {             return true;         }     } 

Why 32 is added to reason and the starting point of revert? Is revert using 32 as bits of bytes? From my understanding it would be the difference between a fresh 256 bit block(32*8) and the 32 bits that the reason variable takes up. reason is a "bytes memory" type, which is a size of 32 bits. reason is equivalent to the error variable in a try{} catch{}. With bytes type being big endian the 32 addition, in bits, would completely skip over the reason variable into the bit immediately after reason. Either way both of these options skip over reason completely, which, from my understanding, is what revert is supposed to return. How can it return anything if revert is of the general format revert(start, end). The only way I see this working out is if revert is of the general format revert(end, start).

How The SEC Uncovered A $300 Million Crypto Pyramid Scheme

Shopping cart
There are no products in the cart!
Continue shopping
0