Why XRP is a security (fraud) or Fake Cryptocurrencies (Ethereum, Tron, Ripple and others)In numerous popular videos and texts explaining the principles of cryptocurrencies, this explanation is usually given on the example of Bitcoin, the first of the cryptocurrencies. Bitcoin is actually a clean and clear implementation of the principles necessary for a cryptocurrency: openness of transaction history, possibility to check the source of money along the chain, clear rules for money appearance, clear rules for creating new transactions.
New coins only appear as a result of mining new blocks, and the reward for mining gradually decreases according to a logarithmic law, with the result that the total amount of bitcoins issued will never exceed the limit (21 million). Any spending of money (transaction input) must match the output of another transaction, money cannot come out of nowhere. To spend, the transaction must be signed with a private key. Simple scripting language allows to do multisig and all other useful things, including creation of new currencies (tokens) based on bitcoin blockchain (omni layer, that's how USDT lives).
There is no central node, the new block is determined by consensus of all nodes - if there are several options, they accept the branch in which the maximum number of calculations is made, this is a formal criterion that allows no variation. Own node can be started by any user, the source code is open.
Unfortunately, the concept of cryptocurrencies, despite its elegance, has not been understood by the bulk of users. "The average user" does not care whether his or her money is in a distributed blockchain or on a particular site. For him it is still "somewhere on the net. When the money is on the site, it is even more peaceful, because it is clear who is responsible for it, in case of something you can argue or write on social networks about what scoundrels they are, or even to sue, but if the money is "lost" in the blockchain, then there is no one to complain to. Users who buy bitcoins don't keep their private keys for themselves, but basically delegate the process to third-party sites, so it really doesn't make a difference for them. Even if they do store it, first they generate that key somewhere and then download it. It is clear that it is not completely their key. As a result, rumors about "bitcoin hacking" spread, with money going to hackers and similar tales. On the other hand, smart and reputable people explain that blockchain and cryptocurrencies built on it are reliable and correct, and there is no reason not to believe them.
This naturally led to the appearance of fake cryptocurrencies, which supposedly use the same technology, but give preferences to their creators, are not so decentralized. The users don't care, but the creators benefit. The most common of these muzzles is Ethereum.
In the zero Ether block, 72_009_995 Ethers were distributed to 8903 addresses, which is more than the total block mining rewards received (first it was 5 Ethers per block, then they made 3 Ethers, now 2 Ethers) for all time. Once again: more than half of all Ether now available was handed out in zero blocks at the start of this cryptocurrency, and a smaller portion came from block mining. Try to google this fact in the description of this cryptocurrency - most likely nothing will come out, it is not advertised, and even hidden.
The ethereal geth node doesn't show these start transactions, as if they don't exist. It says that the zero block is empty. Explorers either show their existence but don't let you see details (etherscan.io, blockchair.com), or don't show them at all, which makes the transaction history at the address look weird: only spending, no income, but a positive or zero final balance. This information is especially poignant when combined with declared plans to switch from proof-of-work to proof-of-stake, it means to changing the consensus algorithm from "the person who has done more calculations is right" to "the person who has more money is right".
The presence of such cheating in the startup block led to the fact that this cryptocurrency could not in principle be as open and transparent as bitcoin, otherwise this story would have been immediately visible to everyone. And if in bitcoin to determine the balance of the address is enough to calculate the amount of utxo (unspent transaction outputs), in ether it is much more complicated: you need to look at all transactions at the address (spending and income), but even this is not enough: the balance can change as a result of the smart contract ("internal transactions"), which is binary code in the body of the transaction.
As a result, even running my own node, I can’t see the history of transactions at any address (even my own), I have to go to third-party sites running their own software, that is, trust them:
"There's not currently any way to do this using the web3 API. […] Blockchain explorers like etherscan obtain internal transactions by running a modified node with an instrumented EVM" (1); "The trouble I see with this is that this centralizes that data. If I create that data, how you know I didn't fake it? I've been trying to figure out a way to both index it and decentralize the 'indexing calculation.' I know how to decentralize the storage (IPFS), but not how to decentralize the indexing calculation. (2)
The history of address balance changes is nowhere to be requested, because it is simply not stored anywhere: the node stores only the state (each address balance), and the blockchain stores the checksum (hash) of that state, and the transactions themselves, in the form of binary code.
Etheric smattercontracts are a separate song. In essence it's no different from executing some binary file on your computer, its code is not open and the logic of operation is unknown. The fact that it is in a blockchain and not on someone's website does not fundamentally affect anything, except the psychology of users who trust the word "blockchain". Which is, in fact, what is required. The ERC20 standard defines "recognizable" function signatures like "transfer so many tokens from so-and-so address to so-and-so", but ERC20 does not regulate what other functions this smart contract can have (for example, "take all tokens from all users"). The smart contract code, like the code of a normal program, can be opened by the author, but it's a matter of goodwill.
Open-source smartcontracts are certainly more trustworthy - to the same extent as regular open-source programs. But do many users care that Chromium and Firefox are open source, while Chrome and Safari are closed source? Since purity and elegance of technical implementation were not the goal in the creation of ether, these qualities have suffered greatly compared to bitcoin in ether. Here are a few examples:
A bitcoin transaction can have multiple inputs and multiple outputs. As a result, I can, for example, give each of my counterparties a separate address to transfer money to me, see when one of them has paid, and when I need to pay myself, I can pay from several of those addresses at the same time. And generate some new address for the change. This results in a certain degree of anonymity: whoever I paid does not know how much money I have in total at other addresses, how many clients I pay, etc. Tracing the history of each of the inputs of the transaction in which he received money from me will not give him any interesting information.
A transaction has one input and one output on the air. To pay someone, if I don't want to pay in multiple installments (that's what a transaction is), I need to first collect enough money at one of my addresses and then pay from that address, with the change remaining there as well. The transaction history of the address from which the person received the payment from me will give a lot of information about me.
And it's not just about privacy. When I make a payment, I put a public key for that address on the blockchain. Obtaining a private key from a public one is unlikely at the moment, but with the advent of quantum computers, anything is possible. Bitcoin, as I said, surrenders to a new address (that's what they recommend to do), and there's nothing to hack at the addresses from which the payment took place, it means, whose public keys are published in the blockchain.
The rules for the appearance of new coins in bitcoin are laid down from the start - it is predetermined starting from which blocks "halving" (halving the reward per block) will be made, so the code has laid down how many bitcoins will be released in total. In ether, the situation is different: the size of the reward is written as a constant in the code, but the code needs to be updated regularly, and some updates change the size of the reward. Changing the node algorithm with loss of compatibility in bitcoin leads to a fork, essentially creating another cryptocurrency. Because by buying bitcoin, I express trust in the algorithm and the starting block (the chain). In ether, it is a standard "upgrade" process that all nodes must apply regularly, otherwise they will simply fall off the network, losing compatibility. Buying ether now, I don't know what protocol this currency will work on tomorrow, it means, I'm not expressing trust in the open protocol, algorithm and startup block, but in the specific people who will release updates, there is no decentralization in this again.
Transaction fee (gas) is a separate hell. It is built from two components: the price of "gas", and how much gas is spent. The price of gas is set by the creator of the transaction on the basis of how quickly he wants his transaction to be confirmed and the current "market price" - this is something like bitcoin. But how much gas will need to be spent on a transaction is not known in advance, the sender does not know. Even the same function of the same smart contract can require different amounts of gas, not only because of possible branching, but simply depending on the amount at the addresses at the time of its inclusion in the blockchain.
So the sender sets the maximum amount of gas he is willing to spend, and how much is actually spent will only become clear when the transaction is confirmed. Consequently, it's hard to spend all the money available at the address: the commission is taken from the same address, and if you set a large max_gas, there will still be change, and if you set a small one, it may not be enough. For the same reason "spend unconfirmed", which is so convenient and familiar in bitcoin, is impossible in Ethereum. That is, if there is a transaction to receive money, then I can create next transaction to send that money somewhere else, without waiting for the first transaction to become confirmed. If it is cancelled, the second transaction will automatically be cancelled as well. Or they will both be confirmed.
You can't do that over the air, because until a transaction is confirmed, you don't know how the balances on the addresses will change as a result of that transaction. For example, if I have an address with tokens but no ether, I can't spend those tokens because I have to pay a fee, and that's from the address from which the tokens are sent. Accordingly, I must first send ether to that address, and then send tokens from there. And I can't send these two transactions in a row - no, I have to wait for the first transaction to be confirmed before sending the second.
Where did the idea of this unpredictable gas even come from? In bitcoin, the fee is set in proportion to the size of the transaction in bytes. This makes sense: the block size is limited, and you can include either one large transaction or ten small ones in its place. In ether, gas is determined by the number and complexity of operations in a smart contract, which is illogical: although the mining node must execute that smart contract to include the transaction in the blockchain, the amount of those calculations is completely incomparable to the calculations of the actual block hash needed for proof-of-work. They are different units, like meters and kilograms. And it is more profitable for a miner to include "expensive" smartcontract transactions in a block than cheap simple transfers, because he will then get more reward. So much for the idea of the miner generating more profit. And in order for simple transactions to be confirmed too, they need to be set higher gas_price - and as a result we'll come to the fact that we count the market fee per transaction (given its size), then divide by the estimated expendable gas, and the result is written in the gas_price field. This is nonsense, isn't it?
But the situation is even more comical. Why register a smart contract at all, why can't we write data in a normal transaction? That's how omni layer works on top of bitcoin blockchain, and USDT was launched on it. After all, it's just a matter of interpretation, and nothing stops us from agreeing and treating certain data in eth-transactions as forwarding some tokens, paying a minimal gas for it. There is only one reason why a smart contract might need to be registered: if it sends ether to someone, those "internal transactions" that cause so many problems and ruin the structure of the blockchain. A normal ERC-20 smart contract (of which the majority is a simple implementation of another currency or token) does not send ether using a smart contract (although it does not prohibit it), it means, no registration is needed for them, and no additional gas needs to be paid. In other words, by paying gas for smart contract transactions, we pay not for the distributed execution of this smart contract by miners and not for data storage in the blockchain, but only for the algorithm used. Let's run our own slightly modified algorithm on the same ether blockchain - and voilà, we get tokens without additional gas, just like the omni layer in bitcoin.
Moreover, we do not need all nodes or even a significant part of them to run this software - it is enough for the owners of tokens to run it, it means, it can be just a wallet. This list could go on for a long time, but it's not that important anymore. What is important is that Ethereum is a fake cryptocurrency that parasitizes on the ideas of decentralization, distribution and openness implemented in Bitcoin, but perverts these ideas for the business interests of the creators of this currency.
Their essence is similar. Decentralization, distribution, everything is declared. Is it possible to raise your own node - yes, no problem, here are the sources, anyone can do it. But on closer examination it turns out that this node is not involved in the consensus, but only receives information about transactions from other nodes and sends their transactions to other nodes. If you dig deeper, you can find information that it is possible to raise a mining node, you need to get other software, pay someone some money and apply for consideration. That is, these currencies are not decentralized administratively or technically (a new mining node is connected to the network manually).
The question of how money is distributed in such a situation is irrelevant: it is clear that in any case the complete control over the appearance of coins, as well as the consensus mechanisms, is in private hands.
This rejection of decentralization fundamentally simplifies consensus issues - a new block can be accepted by a simple majority of nodes without costly proof-of-work signature calculations, and the issue of new coins generation falls away altogether - they all initially belong to the currency owner and are issued only by him (or trusted nodes, which is essentially the same).
There has been a shift in terminology to please business. Initially, only "real" decentralized currencies were called cryptocurrencies with fully open and uniform appearance of new coins, as in Bitcoin, Litecoin and similar. Then a cryptocurrency began to be called Ethereum, which, however, hid "features" of the starting issue. Next, cryptocurrency became smart contract tokens, living in ether blockchain, even with closed code (with unknown rules). Then the proud name "cryptocurrency" began to be worn by any currencies using blockchain, decentralization ceased to be obligatory. And finally, blockchain is no longer necessary either: Ripple does not have it, but just essentially any electronic money began to be called a cryptocurrency.
We should separately mention stablecoins like USDT. These too exist in a distributed blockchain as if they were real cryptocurrencies, but the difference is that there is an owner who can create new coins in arbitrary amounts. This owner declares that he issues new coins in exactly the amount of real money paid to him, keeps this real money in a safe, and thus guarantees that these coins can always be sold at the rate of 1:1 to USD.
For users, the predictability of the exchange rate is more convenient than the high volatility of bitcoin, and the magic words "cryptocurrency" and "blockchain" evoke more trust than just someone's electronic money like perfectmoney. It is fairly obvious that blockchain in this case is nothing more than an open registry, and the owner has full control over the currency. The exchange rate is stable insofar as it can be prevented from growing by additional issuance, but if it starts to fall, the owner is unlikely to compensate for it by too large injections, he will simply run out of money. After all, hardly anyone really believes that they really keep all the money they get in the safe and don't spend it. Although such a declaration can probably be beneficial in terms of paying taxes, it turns out to be a zero profit.