XST — The Only BTC Descendant with True Feeless Transactions
Feeless transactions were introduced with Stealth’s latest major upgrade. The ability to send without a monetary fee is a practically essential but surprisingly rare feature of transactions of any type. By “transaction” we mean the transfer of money from one person to another, or from one account to another.
Most transactions have an associated fee. For example, we are all familiar with ATM charges, or even monthly checking account fees. Credit cards don’t take fees from the senders (individuals who use a credit card to buy things), but credit cards do take fees from the recipients (vendors). Transactions that have an associated fee are called “money fee” transactions.
In contrast to a money fee transaction, a feeless transaction is one in which neither the sender nor recipient pay a monetary fee. Feeless transactions have a number of benefits compared to money fee transactions. First, and most obviously, feeless transactions improve the user experience. From a user’s perspective, feeless transactions are a money saver. Second, feeless transactions make accounting much easier. If a user has 3 XST (Stealth’s native currency) and sends 1 XST in a feeless transaction, then the user still has 2 XST, while the recipient gets a full 1 XST.
Stealth is the only BTC descendant with true feeless transactions.
(What we mean by “true feeless transactions” is described below.) Why is the BTC heritage so important? BTC has a particular type of ledger that allows for two key types of transactions. The first, and possibly more important, is the multi-signature transaction. These types of transactions allow for a subset of signatories to sign a transaction. For example, an address may have three signatories, but any two of the three could sign spending transactions from that address.
The second type of transaction is a data-carrying transaction. Data-carrying transactions are useful for applications, called “layer two applications”, that use the blockchain network as a base layer. An early example is called Omnicoin (formerly Mastercoin), the application in which USDT was first implemented. A more recent example is Rootstock, a smart contract platform designed for Bitcoin.
Finally, the BTC-style blockchain enables cryptographic privacy. Examples include StealthAddresses, a type of limited privacy already implemented on Stealth, and zkSNARKs, a strong type of privacy used in zCash.
At first glance, feeless transactions seem to circumvent two necessities for any transaction system. The first is that feeless transactions seem to ignore that using any system has an inherent cost. In other words, nothing in this world is free. The second necessity is a mechanism to prevent abuse of the system, which typically takes the form of transaction spam. This type of spam is where spammers (or attackers) send an overwhelming number of transactions that hinder normal operations of the blockchain (deny service), or, at the very least, cause burdensome bloat of the blockchain data.
Money fee transactions prevent spam because it makes absolutely no financial sense to burn money just to make the lives of others slightly more inconvenient.
But how do feeless transactions prevent spam? The answer is that feeless transactions require the sender to attach a type of digital coupon, called a “feework”, that proves the sender’s computer did at least one second of computational work. In other words, the feework coupon substitutes for money, because it costs money to produce. The production cost is equal to renting the computer CPU core for one second plus the energy of using that core for one second.
Although a feework coupon does not represent much expense, several aspects of Stealth’s feeless transaction system leverage that expense to make spam attacks completely impractical. First, the coupon specifies the difficulty of the feework calculation. This means that a spammer must commit to a difficulty level before they calculate the feework for a given transaction. To successfully deny service, the spammer must calculate work of more difficulty than users are willing to calculate. For example, users may be able to tolerate waiting 10 seconds for a transaction to be produced, so a spammer would have to at least spend more than 10 seconds on each spam transaction.
Second, feework is specific to a transaction at an exact moment in time. This specificity is achieved by requiring the feework coupon to reference a particular block. This reference commits not only to a moment in time (the time the block was produced), but also to a specific fork of the chain. Together, these requirements mean that the feework of a failed transaction can not be reused later. An attacker must continually produce work, which is a tough burden.
Third, the block commitment also allows for the expiration of feeless transactions that have not yet been added to the blockchain. Feeless transaction expiration, a technology pioneered by Stealth, both improves the user experience as well as fights many types of attacks. The user experience is better in the case of a spam attack that ends up denying service. For example, if a legitimate transaction is held up for two minutes, it will expire and the user can retry the transaction with a higher feework difficulty.
Expiration makes denial of service much harder because these types of attacks rely on not only filling blocks with spam transactions, but filling memory with spam transactions ready to go into blocks. These latter types of transactions are called “unconfirmed”. To understand what a burden expiration creates, imagine that a typical computer node on the Stealth network had 4 GB of memory (modest by today’s standards, with a monthly rental cost of about $7). This amount of memory allows for about 1 GB for the “mempool” (memory pool) of unconfirmed transactions.
Now, if an attacker wanted to keep this 1 GB memory pool filled, he would have to create about 2,880,000 transactions every 2 minutes. All of those transactions would need to be at a high difficulty. Let’s assume the attacker chooses the max difficulty, requiring about 13 seconds for a high end Intel Xeon core. Each core could create 9 transactions in 2 minutes, amounting to 320,000 cores operating at max difficulty. Remember, the attacker has to do this work continuously simply to attempt a denial of service. An 8 core machine of such power would cost about $120/month, so 320,000 cores would cost about $4.8M/month, or about $6,700/hr. Only governments could afford this type of attack.
To put it simply, a denial of service spam attack on Stealth’s feeless transaction system is prohibitively difficult. Moreover, Stealth will always have a reasonable fraction of each block reserved for money fee transactions, meaning a spammer would have to continuously spend fees in XST as well $6,700/hr renting computers to attempt to shut down the Stealth blockchain.
— — — — — — — — —
Dr. James Stroud PhD
— — — — — — — — —