Good morning Kari,

> > > You mention ASICs becoming commoditized.  I'd remind you that eventually 
> > > there will be a public mathematical breaking of the algorithm, at which 
> > > point all ASICs will become obsolete regardless.  Would you agree it 
> > > would be better to prepare for this by planning algorithm change?
> >
> > Possibly, but then the reason for change is no longer to promote 
> > decentralization, would it?
> > It helps to be clear about what your goals are, because any chosen solution 
> > might not be the best way to fix it.
> > I admit that, if the problem were to be avoid the inevitable obsoletion of 
> > SHA-2, then this is the only solution, but that is not the problem you 
> > stated you were trying to solve in the first place.
> To be up front, the reason for decentralization is due to concern around the 
> security of the hashing.  Having a public breakage of the function simply 
> makes the urgency obvious.

Now that I have thought about it more: again, the important thing about the 
proof-of-work technique is not so much the algorithm itself, only that 
executing it requires energy.

And all algorithms require energy in order to execute.

Even if some technique is found which partially breaks the hash function and 
allows faster generation of hashes for the amount of energy consumed, this is 
not a problem for mining itself: the difficulty adjusts and mining continues.
The execution of this technique is unlikely to require no computation, only 
reduced computational effort; and all that is needed is *some* measure of 
computational effort done, the *scale* of that measure is not really material 
for the purpose of ordering atomic transactional updates to the UTXO set.

Of course, things like the Merkle tree and txids and so on would need changing 
in case of even a partial break of the hash function, which would require a 
hardfork to survive; you might as well change the proof-of-work function as 
well then.

> Reddit claims two entities controlled 62% of the hashrate recently: 
>  .  Compromising the systems of these two groups seems like it is all that is 
> needed to compromise the entire blockchain (to the limited degree a 51% 
> attack does).

You seem to be equating "break of the hash function" with "centralization of 
hashrate", which I do not quite agree with.

Most human beings cannot think without constant communication with other human 
Thus, it is unlikely that a private break of the hash function is possible.
Instead, a break of the hash function is likely to be discovered in various 
ways by multiple human beings who have been communicating with each other.

Even historically, inventions never arose fully-formed from the head of the 
inventor, like Athena from the brow of Zeus; every invention has predecessors, 
successors, and peers in the inhabited milieu.

Instead, you can look up the costs of local electricity globally, and notice 
where those entities have their largest mines geographically located.

> Hence I see decentralization and cryptanalysis of the algorithm to be roughly 
> similar security concerns.
> It sounds like you agree that a change of algorithm is needed before the 
> current one is publicly broken.
> > > You mention many coordinated hardforks.  Would you agree that if we came 
> > > up with a way of programmatically cycling the algorithm, that only one 
> > > hardfork work be needed?  For example one could ask nodes to consent to 
> > > new algorithm code written in a simple scripting language, and reject old 
> > > ones slowly enough to provide for new research.
> >
> > Even *with* a scripting language, the issue is still what code written in 
> > that language is accepted, and *how*.
> >
> > Do miners vote on a new script describing the new hashing algorithm?
> > What would their incentive be to obsolete their existing hardware?
> > (using proof-of-work to lock in a hashing change feels very much like a 
> > chicken-and-egg problem: the censorship-resistance provided by Bitcoin is 
> > based on evicting any censors by overpowering their hashpower, but requires 
> > some method of measuring that hashpower: it seems unlikely that you can 
> > safely change the way hashpower is measured via a hashpower election)
> >
> > Do nodes install particular scripts and impose a switchover schedule of 
> > some sort?
> > Then how is that different from a hardfork, especially for nodes that do 
> > not update?
> > (notice that softforks allow nodes to remain non-updated, at degraded 
> > security, but still in sync with the rest of the network and capable of 
> > transacting with them)
> I'm expressing that in considering this we have two options: repeated hard 
> forks or making repeated change a part of the protocol.  There are many ways 
> to approach or implement it.  It sounds like you're noting that the second 
> option takes some work and care?
> Would it be helpful if I outlined more ideas that address your concerns?  I 
> want to make sure the idea of changing the algorithm is acceptable at all 
> first.

Go ahead.

> > > You mention the cost of power as the major factor influencing 
> > > decentralized mining.  Would you agree that access to hardware that can 
> > > do the mining is an equally large factor?  Even without ASICs you would 
> > > need the physical cycles.  Including this factor helps us discuss the 
> > > same set of expected situations.
> >
> > No, because anyone who is capable of selling hardware, or the expertise to 
> > design and build it, can earn by taking advantage of their particular 
> > expertise.
> >
> > Generally, such experts can saturate the locally-available energy sources, 
> > until local capacity has been saturated, and they can earn even more by 
> > selling extra hardware to entities located at other energy sources whose 
> > local capacities are not still underutilized, or expanding themselves to 
> > those sources.
> > Other entities might be in better position to take advantage of particular 
> > local details, and it may be more lucrative for the 
> > expert-at-building-hardware to just sell the hardware to them than to 
> > attempt to expand in places where they have little local expertise.
> It sounds like you are saying that the supply of electricity is exhausted and 
> the supply of hardware is not.
> Is that correct?

Given that electricity is consumed very quickly, and hardware takes a long time 
to truly consume or obsolete, yes: rate of consumption of electricity is 
expected to dominate compared to the rate of consumption of hardware.

> I've seen that most of the time mining hardware distributors are sold out of 
> their top-of-the-line mining equipment, mostly selling in preorders.  Are 
> implying most of the mining is done by privately built equipment?

It seems the most lucrative thing to do, that if you have a new generation of 
hardware, to mine with them yourself, until the price of local electricity has 
increased due to your consumption, and it becomes more lucrative to sell the 
hardware to other potential miners who now have lower electricity prices 
compared to yours (because you have been saturating the local electricity 
supply with your own mining operations and causing the local prices to rise up, 
or equivalently, until some governmental or other limits your usable 
electricity supply, which is equivalent to saying that the price of even more 
electricity would be your incarceration or other punishment, which might be too 
expensive for you to pay, thus selling the hardware is more lucrative).

I have no evidence to back this, thus it is not a claim to truth, only a claim 
to economic logic, if we assume that mining hardware manufacturers are 
economically rational, are interested only in the selfish gain of economic 
power, etc. etc.
Real human beings and the entities they build may not behave in such a 
perfectly rational manner, or I may be assuming details that are not accurate 
to reality.

> Would you agree that an increase in the price of bitcoin would make the 
> availability of hardware matter much more, because the price of electricity 
> would matter much less?

Electricity is a factor with every piece of hardware that is utilized, so any 
increase in hardware will also have an increase in electricity consumed.
So I expect that the materiality of the price of electricity will increase in 
lockstep with the materiality of the price of hardware (note that price is 
simply demand over supply, and supply is the availability of hardware).

You could also analyze the transient economic behaviors here, specifically that 
an increase in Bitcoin price makes it more lucrative to mine in more places, 
which would start to put in orders for more hardware, and the hardware will 
take time to deliver, so the price at those places will increase only after a 
long while, etc.
But those are transient changes, and by the time any change at the software 
level is coordinated, the transient economic behaviors may have resettled to 
the expected long-term behavior: humans operate at around the same average 
speed in many different fields.

> Something to raise here is that all of these things take time and respond in 
> ebbs and flows.  If there were to be a plan to migrate to a new algorithm, it 
> would be participating in those ebbs and flows.

The usual engineering response is to create buffers to be resilient against 
ebbs and flows.
Note how we prefer to dam water supplies (i.e. create a buffer) rather than 
adjust our water consumption dynamically according to the ebb and flow of the 
water supply.

Similarly, economic contracts like futures and options are economic buffers 
against the ebb and flow of local supply of various materials.

Within Bitcoin, my understanding is that the difficulty adjustment system acts 
as a buffer against transient ebbs and flows of the supply of hashpower.

> It takes time to build new hardware, and it takes time for the difficulty to 
> adjust to obsolete it.  What do you see as influencing how fast hardware 
> becomes obsolete?

In the long run?
We will run out of ideas of how to improve the implementation of the hashing 
function, and there will be only a few designs that implement all the known 
ideas for optimizing the implementation.
Then hardware becomes obsolete from normal wear and tear, e.g. 
electromigration, and that takes years to take effect.

> I ask these questions because the answers relate to how what ways would be 
> good to change the mining function to increase decentralization.
> > And expertise is easy to copy, it is only the initial expertise that is 
> > hard to create in the first place, once knowledge is written down it can be 
> > copied.
> Also takes measurable months to do.

But can be massively parallelized, you can have a teacher or mentor teaching an 
entire classroom of students, and created lectures can be stored and re-given 
to many students, in the form of books, videos, etc.
Human beings have been doing this since time immemorial, and possibly before 
recorded history, in such things as oral traditions and so on.

> > > You describe improving electricity availability in expensive areas as a 
> > > way to improve decentralization.  Honestly this sounds out of place to me 
> > > and I'm sorry if I've upset you by rehashing this old topic.  I believe 
> > > this list is for discussing the design of software, not international 
> > > energy infrastructure: what is the relation?  There is a lot of power to 
> > > influence behavior here but I thought the tools present are software 
> > > design.
> >
> > I doubt there is any good software-only solution to the problem; the 
> > physical world remains the basis of the virtual one, and the virtual 
> > utterly dependent on the physical, and abstractions are always leaky (any 
> > non-toy software framework inevitably gains a way to query the operating 
> > system the application is running under, because abstractions inevitably 
> > leak): and energy, or the lack thereof, is the hardest to abstract away, 
> > which is the entire point of using proof-of-work as a reliable, unfakeable 
> > (i.e. difficult to virtualize) clock in the first place.
> >
> > Still, feel free to try: perhaps you might succeed.
> You agreed earlier that changing the algorithm would increase 
> decentralization, but expressed other concerns with the idea.  Many more 
> general solutions are working in many altcoins.  I'm interested in discussing 
> changing the proof of work algorithm in bitcoin.

I did not so agree: in particular, I do not agree with equating a break of the 
proof-of-work algorithm with centralization.
More likely, any centralization seen is due to local government interference in 
economic matters, such as creating a local artificial oversupply of electricity 
by paying for electricity generation using taxes.

> My motivation is security of the blockchain, which is partially held by 
> decentralization.

Let us be more precise and avoid the word "security".

Miner decentralization supports censorship-resistance, so your motivation is 
censorship-resistance (is that correct?).

Ultimately, what really protects censorship-resistance is not the details of 
the hashing algorithm, it is the economics involved.
In order to evict a censor, hashpower must be brought to bear against the 
And that hashpower has to be bought and paid for.
The mechanism for doing this already exists, and is called the "mining fee" 
(note that the block subsidy does not protect against the censor, as the censor 
gets the block reward as well; what the censor cannot get is the fees attached 
to a transaction that the censor does not want published).

bitcoin-dev mailing list

Reply via email to