About fake cryptocurrencies (Ethereum, Tron, Ripple, etc.)

In numerous popular videos and texts explaining how cryptocurrencies work, this explanation is usually given using the example of Bitcoin, the first of the cryptocurrencies. Bitcoin is actually a clean and understandable implementation of the principles necessary for a cryptocurrency: open history of transactions, the ability to check the source of money along the chain, clear rules for the appearance of money, clear rules for creating new transactions. New coins appear only as a result of mining new blocks, and the mining reward gradually decreases according to the logarithmic law, as a result of which the total amount of issued bitcoins will never exceed the limit (21 million). Any waste of money (transaction input) must match the output of another transaction, money cannot come from anywhere. To spend, you need to sign the transaction with a private key. A simple scripting language allows you to do multisig and all sorts of other useful things, including creating new currencies (tokens) based on the bitcoin blockchain (omni layer, that's how USDT lives). There is no central node, the new block is determined by the consensus of all nodes - if there are several options, they accept the branch in which the maximum number of calculations was done, this is a formal criterion that does not allow for discrepancies. Any user can run its own node, the source code is open.

Unfortunately, the concept of cryptocurrencies, despite its elegance, did not find understanding among the bulk of users. The "average user" does not care whether his money is in a distributed blockchain or on a particular site. For him, it's all the same "somewhere on the net." When the money on the site is even calmer, because it is clear who is responsible for it, in which case you can argue or write on the social network about what scoundrels they are, or even sue, and if the money is "lost" in the blockchain, then there is no one to complain to. Users who buy bitcoins do not store private keys on their own, but mostly delegate it to third-party sites, so there really is no difference for them. And even if they keep it, they first generate this key somewhere, and then download it. It is clear that this is no longer completely their key. As a result, rumors of "Bitcoin hacking", when money goes to hackers, and similar stories are spreading. On the other hand, smart and authoritative people explain that the blockchain and the cryptocurrencies built on it are reliable and correct, and there is no reason not to believe them.

This naturally led to the emergence of dummies of cryptocurrencies, which supposedly use the same technologies, but at the same time give preferences to their creators, i.e. not so decentralized. It's all the same for users, but the creators are profitable. The most common of these dummies is Ethereum.

In the zero block of ether distributed 72_009_995 Ether to 8903 addresses , this is more than the total number of rewards received for mining blocks (at first there were 5 Ether per block, then they made 3 Ether, now 2 Ether) for the entire time. Once again: more than half of all the ether that is now available was distributed in zero block at the start of this cryptocurrency, and a smaller part appeared as a result of block mining. Try to Google this fact in the description of this cryptocurrency - most likely nothing will come of it, it is not advertised, and even hidden.

The ether node geth does not show these starting transactions, as if they were not there. Says that block zero is empty.

Explorers either show their existence, but do not give details ( , ), or they are not shown at all, as a result of which transaction history by the address looks strange : only spending, no income, but a positive or zero total balance. This information becomes especially piquant in combination with the declared plans for the transition from proof-of-work to proof-of-stake, i.e. changing the consensus algorithm from "the one who has done more calculations is right" to "the one who has the most money is right".

The presence of such cheating in the starting block led to the fact that this cryptocurrency, in principle, could not be as open and transparent as bitcoin, otherwise this story would be immediately visible to everyone. And if in bitcoin to determine the balance of an address, it is enough to calculate the amount of utxo (unspent transaction outputs), then on air it is much more difficult: you need to view all transactions at the address (expenses and receipts), but this is not enough: the balance may change as a result of the smart contract ( "internal transactions"), and this is the binary code in the body of the transaction. As a result, even running my own node, I I can not see the history of transactions at some address (even my own), for this I need to refer to third-party sites running on their own software, i.e. 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" ( one ); "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 There is nowhere to request the history of changes in the address balance, because it is simply not stored anywhere: the node stores only the state (the balance of each address), and the checksum (hash) from this state is stored in the blockchain, and the transactions themselves are stored in the form of a binary code.

The on-air smutrkontrakty is a separate song. In fact, this is no different from executing some kind of binary file on your computer, its code is not open, and the logic of its work is unknown. The fact that it is on the blockchain, and not on someone's website, does not fundamentally affect anything, except for the psychology of users who trust the word "blockchain". What, in fact, is required. The ERC20 standard defines "recognizable" function signatures, like "transfer so many tokens from such and such address to such and such", 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 regular program, can be opened by the author, but this is a matter of goodwill.

Open source smart contracts are, of course, more credible - as much as regular open source software. But how many users care that Chromium and Firefox are open source, while Chrome and Safari are closed source?

Since purity and elegance of technical implementation was not the goal in the creation of ether, these qualities have suffered greatly in comparison with bitcoin on the air. Here are some 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 for transferring money to me, watch when one of them paid, and when I need to pay myself, I can pay from several of these addresses at the same time. And for the delivery, generate some new address. As a result, a certain degree of anonymity is obtained: the one to whom I paid does not know how much money I have in other addresses, how many clients I pay to, 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.

On the air, a transaction has one input and one output. To pay someone, if I do not want to pay in several installments (that is why it is a transaction), I first need to collect enough money at one of my addresses, and then pay from it, and the change will remain there. The history of transactions at 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 making a payment, I put the public key for this address on the blockchain. Obtaining a private key from a public one is currently unrealistic, but with the advent of quantum computers, everything can be. For bitcoin, as I said, the change goes to a new address (this is what they recommend to do), and at the addresses from which the payment was made, i.e. whose public keys are published in the blockchain, there is already nothing, there is nothing to hack.

The rules for the appearance of new coins in bitcoin are laid down from the start - it is predetermined from which blocks "halving" will be performed (halving the reward for a block), so the code contains how many bitcoins will be issued in total. On the air, the situation is different: the amount of the award is written as a constant in the code, but the code needs to be updated regularly, and some updates change the amount of the award. Changing the algorithm of a node with the loss of compatibility in bitcoin leads to a fork, in fact, creates a different cryptocurrency. Because when I buy bitcoin, I express my trust in the algorithm and the starting block (chain). On the air, this is a standard "upgrade" process that must be applied regularly by all nodes, otherwise they will simply fall out of the network, losing compatibility. When buying ether now, I don't know what protocol this currency will use tomorrow, i.e. I express my trust not in the open protocol, algorithm and starting block, but in specific people who will release updates, again there is no decentralization in this.

Transaction fee (gas) is a separate ad. It is built of two components: the price of "gas" and how much gas was spent. The gas price is set by the creator of the transaction based on how quickly he wants his transaction to become confirmed, and the current "market price" is similar to 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 may require a different amount of gas, and not only due to possible branches, but also simply depending on the amount on the addresses at the time of its inclusion in the blockchain. Therefore, the sender sets the maximum amount of gas that he is ready to spend, and how much is actually spent will become clear only when the transaction is confirmed. Accordingly, it is difficult to spend all the money available at the address: the commission is removed from it, and if you set a large max_gas, then change will remain, and if it is small, then it may not be enough.

For the same reason, "spend unconfirmed", which is so convenient and familiar in Bitcoin, is not possible in Ethereum either. That is, if there is a transaction for receiving money, then I can create the next transaction to send this money somewhere else, without waiting for the first transaction to be confirmed. If it is canceled, the second one will also be canceled automatically. Or both of them will be confirmed. On the air, this is not possible, because until the transaction is confirmed, it is not known how the balances on the addresses will change as a result. For example, if I have an address with tokens, but without ether, I cannot spend these tokens, because I have to pay a commission, and it is from the address from which the tokens are sent. Accordingly, I must first send ether to this address, and then send tokens from there. And I cannot send these two transactions in a row - no, I have to wait for the confirmation of the first transaction, and only then send the second.

Where did the idea for this unpredictable gas come from? In Bitcoin, the commission is set in proportion to the size of the transaction in bytes. This is logical: the block size is limited, and you can include either one large transaction, or ten small ones in its place. On the air, gas is determined by the number and complexity of operations in a smart contract, and this is illogical: although a mining node must execute this smart contract to include a transaction in the blockchain, the volume of these calculations is completely incomparable with the calculations of the actual block hash required for proof-of-work. These are different units of measurement, like meters and kilograms. And it is more profitable for the miner to include "expensive" smart contract transactions in the block than cheap simple transfers, because in this case he will receive a larger reward. So much for the idea of a miner that brings big profit And in order for simple transactions to still be confirmed, you need to set more gas_price on them - and in the end we come to the conclusion that we calculate the market commission for a transaction (given its size), then divide by the estimated consumed gas, and write the result in the gas_price field. Nonsense, isn't it?

But the situation is even more comical. Why register a smart contract at all, why can't you write data into a regular transaction? This is how the omni layer works on top of the bitcoin blockchain, and USDT was launched on it. After all, this is just a matter of interpretation, and nothing prevents us from agreeing and interpreting certain data in eth-transactions as the transfer of some tokens, paying the minimum gas for this. There is only one reason why registration of a smart contract might be necessary: if it sends ether to someone, i.e. those very "internal transactions", from which there are so many problems, and which destroy the harmony of the blockchain. The usual smart contract ERC-20 (of which the majority is a simple implementation of another currency or tokens) does not imply any sending of ether by means of a smart contract (although it does not prohibit), i.e. registration is not required for them, and you do not need to pay additional gas either. In other words, by paying for gas for smart contract transactions, we pay for the non-distributed execution of this smart contract by miners and not for storing data in the blockchain, but only for the algorithm used. Let's launch our own slightly modified algorithm on the same ether blockchain - and voila, we will receive tokens without additional gas, like the omni layer in bitcoin. Moreover, we absolutely do not need this software to be launched by all the nodes or even a noticeable part - it is enough for the owners of tokens to launch it, i.e. it might just be a wallet.

This list can be continued for a long time, but it is not so important anymore. It is important that Ethereum is a dummy cryptocurrency that parasitizes on the ideas of decentralization, distribution and openness implemented in Bitcoin, but perverted these ideas for the sake of the business interests of the creators of this currency.

Ripple, Tron

They have a similar essence. Decentralization, distribution, all affairs are declared. Is it possible to raise your own node - yes, no problem, here are the sources, anyone can raise it. But upon closer inspection, it turns out that this node does not participate in the consensus, but only receives information about transactions from other nodes and sends its transactions to other nodes. If you dig deeper, you can find information that you can raise a mining node, for this you need to take another software, pay someone some money and apply for consideration. That is, these currencies are not decentralized either 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 no longer important: it is clear that in any case, full control over the appearance of coins, as well as over the consensus mechanisms, is in private hands. Such a rejection of decentralization fundamentally simplifies the issues of consensus - a new block can be accepted even by a simple majority of nodes without expensive proof-of-work signature calculations, and the issue of generating new coins does not exist at all - they all initially belong to the owner of the currency and are issued only by him (or by trusted nodes, which is essentially the same).

There has been a shift in terminology for the sake of business. Initially, only "real" decentralized currencies were called cryptocurrencies with a completely open and even appearance of new coins, as in Bitcoin, Litecoin and the like. Then the cryptocurrency began to be called Ethereum, which, however, hid the "features" of the initial emission. Further, smart contract tokens that live on the etheric blockchain, even with closed code (i.e., with unknown rules), have become a cryptocurrency. Then the proud name "cryptocurrency" began to be worn by any currencies using the blockchain, decentralization was no longer mandatory. And, finally, the blockchain also ceased to be necessary: in Ripple it does not exist, but simply, in fact, any electronic money began to be called a cryptocurrency.

We should also mention stablecoins like USDT. They also exist in the distributed blockchain, as if they were real cryptocurrencies, but their difference is that there is an owner who can create new coins in any amount. This owner declares that he issues new coins in exactly the same amount as he was paid with real money, that he keeps this real money in a safe, and thus guarantees that these coins can always be sold at a rate of 1: 1 to USD. The predictability of the exchange rate is more convenient for users than the high volatility of bitcoin, and the magic words "cryptocurrency" and "blockchain" inspire more confidence than just someone's electronic money like perfectmoney. It is quite obvious here that the blockchain in this case is nothing more than an open register, and the owner has full control over the currency. The exchange rate is kept stable insofar as it can be prevented from growing by additional emission, but if it begins to fall, the owner is unlikely to compensate for it with too large injections, he will simply run out of money. After all, hardly anyone really believes that they really keep all the money they receive in a safe and do not spend it. Although such a declaration can probably be beneficial in terms of paying taxes, this is a zero profit.
MeLavi 3 march 2021, 19:57
Vote for this post
Bring it to the Main Page


Leave a Reply

Avaible tags
  • <b>...</b>highlighting important text on the page in bold
  • <i>..</i>highlighting important text on the page in italic
  • <u>...</u>allocated with tag <u> text shownas underlined
  • <s>...</s>allocated with tag <s> text shown as strikethrough
  • <sup>...</sup>, <sub>...</sub>text in the tag <sup> appears as a superscript, <sub> - subscript
  • <blockquote>...</blockquote>For  highlight citation, use the tag <blockquote>
  • <code lang="lang">...</code>highlighting the program code (supported by bash, cpp, cs, css, xml, html, java, javascript, lisp, lua, php, perl, python, ruby, sql, scala, text)
  • <a href="http://...">...</a>link, specify the desired Internet address in the href attribute
  • <img src="http://..." alt="text" />specify the full path of image in the src attribute