43 comments

[ 2.7 ms ] story [ 51.8 ms ] thread
If folks are interested in the old Monero PoW function (and, uh, the reason they changed it), I wrote up a thing about it a long time ago:

https://da-data.blogspot.com/2014/08/minting-money-with-mone...

The history of people trying to design GPU or ASIC-resistant proof-of-work functions is long and mostly unsuccessful. I haven't looked into RandomX; it's possible they've succeeded here (or possible that with the alt-coin market mining profitability tanking after Ethereum moved to proof-of-stake, it just wasn't worth it).

RandomX is designed so that if you design a RandomX ASIC then you've designed a CPU. It writes and then executes random programs. To minimize the possible efficiency gains from matching the instruction set architecture, the same program is executed several thousand times, reducing the relative overhead of translating it to a different ISA.
I partially heat my home by running the default Monero client on old Xeons (heat ejects near my desktoes). As I only mine when it's cold outside (otherwise using resistive heating), there is no actual net electricity cost. IMHO it's not "worth it" for an individual to buy equipment specifically to mine crypto... but if you already have an old machine AND you heat without a heatpump, it's a free hobby/heater.

----

To anybody else that is syncing a fresh monero blockchain copy (i.e. installing the official client), I recommend using the custom node flag ` --db-sync-mode safe ` — which is slower but corruption-avoiding — before node's initial bootup. Without safemode, any halt of the client will [most likely] corrupt the local blockchain (losing days of DL/verification).

Also, if you use an SSD for storing any blockchain (as recommended by monero team... but not by me), know that its lifespan will be greatly reduced from the constant IO/access. Personally, I recommend safemode (see above) on a 7200RPM spinner (HDDs effectively don't wear during IO/access).

----

What are your thoughts on running xmrig vs. the default getmonero.org client? Would you in general agree that monero remains ASIC-resistant?

They had to design a specialized verification function, which I imagine would be the easy way to break it.

The brilliant part of Bitcoin is that it uses very widely known crypto primitives - verification is the same as getting the right seed (you just happen to be told what the right seed is, rather than having to pay for it to be discovered).

Hmmm. That's not the reason we changed it. We just got tired of tweaking things to prevent ASICs.

I'll add that there was such a large influx of miners at the outset, that (statistically) it seems any crippling of the original algorithm was fairly futile - the edge was both short-lived and minimally impactful. We're over a decade later, and nobody mining in the first month (even with that unfair advantage) was able to gain any meaningful percentage of Monero's emission.

I'll add that RandomX has proven that it is indeed possible to create a GPU and ASIC-resistant PoW algorithm. I'd encourage you to dig in further - the closest to an "ASIC" is a multi-CPU miner (Bitmain X9) with a bunch of RISC-V CPUs in it.

Monero has used Random X for 7 years

Why even mention that era? Your fascinating by that time was shorter than its post Random X lifecycle

I never quite understand this stuff, maybe someone can help.

Are cryptocurrencies supposed to be a potential replacement for real life cash? This was my understanding of the motivation behind Bitcoin, at least.

If so, why does it make sense that people can "generate" cash by proving some amount of work done? This of course cannot be done with normal cash.

Is the main functionality of these cryptocurrencies supposed to be "people can send currency to each other", or "people generate currency -- a number -- and sell this currency for real life money"?

There are two parts of an answer to this, because your questions are somewhat divergent:

> why does it make sense that people can "generate" cash by proving some amount of work done? This of course cannot be done with normal cash.

People do generate money when they work, in a sense, because money doesn't have value. Money represents value. To really understand that you need to think about what money is and why it was invented in the first place.

Before the invention of money there was only direct exchange; I do/give something for/to you and you do/give something for/to me in return. But what if you want what I have but I don't want what you have? Or what if we want something from each other but are too far apart to make the exchange directly? Well, we find a third participant who can act as a kind of transfer agent. They could, for instance, have something I want that you don't want and also want something from you. They trade with you first so now you have something from them that you don't want that you can then trade to me for the thing you want, and everyone is happy. This extends to arbitrarily many, dozens or hundreds even, of intermediate steps.

Now it should be easy to recognize two things:

1) Everyone needing to store a bunch of stuff they don't actually want just so they can pass it on to the next person can become a huge burden for everyone. And how do you store labor anyway? You can't. You can only store goods.

2) Organizing dozens of intermediate links is an extremely difficult problem to solve just so you can get what I have.

The first one can be solved by exchanging IOU vouchers instead. The holder of the voucher becomes entitled to the thing that hasn't yet been given or done. Storing those vouchers is trivially easy compared to storing the things. And you can just as easily store vouchers for work that hasn't been done yet as you can for goods that haven't been given yet.

The second one can be solved by saying what if people put their vouchers into a central voucher bank instead of passing all their vouchers around to each other directly, and then the central voucher bank organizes all the intermediate steps for people without people needing to figure out who has the vouchers they need to complete the chain.

And then once you're there, why even use specific IOUs at all? Why not have all the vouchers be generic but you get different amounts of them instead of different kinds that you can then use freely for anything? And that's obviously what money is.

And from there a new thing should become obvious: The money itself doesn't have any intrinsic value. The labor/good behind it does. Money is just a way of representing the value of something you did/produced in a form that can be easily traded for other things. It's the medium of exchange, not the product. And when there are fewer vouchers in the system relative to what's being produced, each voucher becomes worth more (deflation), and vice versa (inflation). And then the government literally prints and destroys vouchers as needed to try to keep a balance. That is a thing that happens. And so what if there can be prolonged time delays between you doing your work and you receiving your vouchers under some systems? Time delays are not inherent, just practical for bookkeeping. And when long time delays are not practical for bookkeeping they become shorter.

> Are cryptocurrencies supposed to be a potential replacement for real life cash? This was my understanding of the motivation behind Bitcoin, at least.

Only as an unrealistic pretense in the current climate. The reality is that a currency needs to be both moderately inflationary and also very stable to be useful as a medium of exchange of goods/services. You never want it to be a better financial decision to hold onto currency forever instead of using it, and you also never want people to randomly wake up destitute. And r...

One of the weird things about our world is that money is central to everything, but it’s hard to understand how it works. There’s a great deal of handwaving around how, for example, dollars are created, much of which is, in fact, not correct at all (most dollars are created not by the government, or even the Federal Reserve, but by private banks, via a mechanism which I will not pretend to fully understand).

The big flaw of Bitcoin, to my mind, is that it is an inherently deflationary currency. Deflation is one of those things that seems great on the surface: prices go down, not up, but when that happens it ends up creating an economic incentive to avoid spending since why buy something today if it will be cheaper tomorrow, and this ends up causing economic activity to slow down or stop entirely. A small amount of inflation, on the other hand creates an incentive to either spend money or invest it in something that will provide a better than inflation return, whether that’s putting it in a high-yield savings vehicle or making capital or financial investments. With deflation, you can just leave your funds in cash (where they will not provoke any economic growth) and get a return.

> Are cryptocurrencies supposed to be a potential replacement for real life cash?

They are supposed to be a medium of exchange. “Real life cash” is one of many forms of money; even for any particularly currency, like dollars, a very small fraction of use is “real life cash”. But, yes, in the most extreme visions, cryptocurrencies replace other currencies for all uses. More moderate visions, however, exist. So, as always when you use “supposed”, the answer is undefined without qualifying it as to by whom it is supposed.

> If so, why does it make sense that people can "generate" cash by proving some amount of work done?

Because there needs to be some mechanism to provide the currency supply, and also some incentive for people to provide the infrastructure on which the currency system relies. For fiat money systems the first is typical policy making in a central bank, and the second is government action to control competition in the banking space and to support banks, reinforcing the profitability of banks. Mining serves both of those functions in a cryptocurrency system (both reinforcing the profitability of transaction network participants and providing the mechanism by which currency supply is managed.)

> Is the main functionality of these cryptocurrencies supposed to be "people can send currency to each other", or "people generate currency -- a number -- and sell this currency for real life money"?

Participants in a currency system selling it for other currencies (FOREX) is a feature of every currency system in a world with more than one currency. Again, the degree to which each of those is “supposed” to be the main function depends on exactly whose supposition you are looking at it.

Bitcoin was designed to be a replacement for real life cash, but it ultimately failed in this role. Nonetheless it was a great experiment that essentially invented the industry.

Most cryptocurrencies, if we go only by their number, are designed to make their creators rich and moderately succeed at that. This is your ERC20s, pump dot fun, et cetera.

If we only consider ones that have any serious chance of being usable as actual currencies, these days they're usually designed to run arbitrary money-like programs known as "smart contracts", of which traditional money is just one.

Money can't be sent until it's generated, that's the same whether you're talking bitcoin or dollars. There's always a rule for who gets the new money when it's created, and somehow the rule always ends up being "rich people get the new money". Dollars go to politicians and big bankers, bitcoins go to big compute farms, ethers go to big bankers, monero goes to big compute farms. The aforementioned get-rich-quick currencies go to their creators, if course.

> Are cryptocurrencies supposed to be a potential replacement for real life cash? This was my understanding of the motivation behind Bitcoin, at least.

This was the original stated purpose, yes. But this works poorly in practice. Hypothesized frictionless tooling that would make it easy to make purchases with crypto has not emerged.

Nowadays it's held more like a speculative asset with value that comes from scarcity and demand, much like gold (though gold has some industrial application which Bitcoin does not).

In a distributed system you still need all the features of the centralised system.

For a currency, that means you still need issuance, and you still need security.

Miners, glossing over a lot of theory, provide security in exchange for receiving issuance. They can be seen like the decentral bank of the crypto world.

Bitcoin attempted to replace cash, but failed because the transaction costs are orders of magnitude too high. The high cost of zero-trust makes it a desirable medium of exchange only for criminals and scammers.

In an effort to make Bitcoin a reasonable medium of exchange, various businesses arose to act as intermediaries/market makers. But this violates the trust-free model – and many of those intermediaries have proven to be outright scams. It turns out that trusting an intermediary to handle your cryptographically untraceable asset is not a wise thing to do.

So that leaves Bitcoin in a similar category as gold. You're either a paranoid type for whom the high cost of holding and transacting the asset is a price you're willing to pay for an asset that could survive a global meltdown. OR you extend trust to various intermediaries (gold ETFs, bitcoin ETFs for example) and treat it as just another tradable financial asset.

Bitcoin is undeniably the cleverest way anyone ever became a billionaire. Nakamoto's sole contribution was posting an anonymous 9 page whitepaper to the internet and voila, today he (or she, or it) is worth $80+ billion.

>Bitcoin attempted to replace cash, but failed because the transaction costs are orders of magnitude too high.

The current fees are less than 0.40$. It may be too high for a starbuck coffee, but that's way lower than the fees charged by a credit card provider if you are purchasing something over 50$. On a 2%+0.10$ structure, you only need to transfer around 15$ before your credit card fee is higher than the current average BTC tx fee.

> This of course cannot be done with normal cash.

Yes, it can be! Just open a bank.

> Are cryptocurrencies supposed to be a potential replacement for real life cash?

I think the better word would be alternative, rather than replacement.

Crypto currencies have way too many flaws to be really useful as currencies.

Not just usability, technology, fees, etc, but the very deflationary nature of most of them makes them unsuitable as a currency because the incentive is hoarding, not spending.

But...you can still use them as a mean of transferring money. So they are absolutely an alternative.

[flagged]
is privacy of financial transactions not a valuable problem to be solved in your opinions?
Hackernews is completely oblivious to cryptocurrencies. There we major hacks in April involving values 100x bigger than whatever gets upvoted here, and still I saw 0 posts commenting about it.

Just as an example, aave lost 295 million last month due to a hack in another protocol, and nothing was posted here.

It's both a waste of compute and it also solves problems. Namely, how to transfer money without the government stopping you.
Having dealt with hackers (not the HN variety unfort) who go to extraordinary lengths to cryptojack pennies, I completely agree. They always use Monero for some reason. In sum, what is this technology good for?

1. Illegality 2. Speculation (i.e., gambling)

So yes, +1. :-(

Can someone explain to me why RandomX miners don't just generate programs without branching? I'm a bit confused on why that's not possible
Because it's designed to be hard to execute on anything that is not a CPU.
The program is randomly generated and I am guessing that the seed for this is deterministically determined from the current block head (or something similar) making it hard to attack.

It might lead to scenarios where a miner may optimise block generation itself, I guess?

I was more curious about the possibility of generating optimised branchless variants and then running them in parallel on multiple ASICs to ensure you cover every branch and submit all the results and hope you’re fast? Would that be more inefficient than relying on branch prediction and CPUs?

It can skip but it has 7 more programs to go and it can only know the program after completing the first one so after first one there is no advantage
Side question: what's the least scammy and complicated way to buy Monero these days?
(comment deleted)
So many people here know how bitcoin works but don't know that it doesn't.

It is hilarious.

The article skip over the results? Did the design succeeded? Which hardware do miner uses, and is it evenly distributed? Can I mine Monero on potato hardware?
I had hoped this would describe a system that did not use very large amounts of power. Sadly it does.
ugh, "GiB"

author sold his soul to marketmen

Proof of waste. I wonder for the base price of the currency what the cost of energy and environment are to create it.
In terms of software that genuinely fascinates me Monero would have to be up there (along with Postgres, ZFS and OpenBSD). It's in my opinion one of the only (but probably the only) cryptos that has actually held true in terms of its principles of privacy (which was a perceived principle of crypto by users) and mass ability to mine and not be dominated by ASICs.

I've since taken to running a non-public Monero node, which will become public when I can ensure my network security as it's being run from my home.

In saying that, there is a lot of concern around the new Carrot changes. To preface, I don't understand it enough to have an opinion either way, but a good chunk of the vocal user base seems to be worried that making “optional” view keys show both incoming and outgoing transactions will force the hand of the remaining exchanges, and be a condition of adoption of new exchanges to support Monero.

I haven't really seen a dumbed down explanation from the core Monero team as to exactly what the change looks like, and what the theoretical implications could be. It would be nice if Monero had more accessible PR for non-technical users to encourage adoption and squash FUD when it arises or at least acknowledge it from a top level in a blog post or something so that the already hyper-paranoid user base doesn't unnecessarily drive a mass anti-Monero campaign.

As PoW goes, this is cool.

One thing I didn't understand though is Light mode:

> Fast mode is for mining. Light mode is for verification. The reference README says

The post only describes Fast mode, right?

Presumably verification is done by miners who already have the memory set up so Fast mode would be faster for them.

Verification is still relatively fast because you don't have to try gazillions of nonces so who is Light mode necessary and how does it work?