4721988d95
added a link to it from socil networking
92 lines
4.1 KiB
Markdown
92 lines
4.1 KiB
Markdown
---
|
|
# katex
|
|
title: >-
|
|
consensus
|
|
sidebar: true
|
|
notmine: false
|
|
abstract: >-
|
|
consensus is a hard problem, and considerably harder when you have shards
|
|
Nakomoto Satoshi's implementation of Nakomoto consensus, aptly described
|
|
as wading through molasses, failed to scale
|
|
---
|
|
|
|
This document is work in progress, incomplete and inchoerent.
|
|
|
|
# Failure of Bitcoin consensus to scale
|
|
Mining pools, asics
|
|
|
|
# Monero consensus
|
|
RandomX prevented asics, because RandomX mining is best done on a general purpose CPU,
|
|
but as Monero got bigger, it came to pass that payouts got bigger. And because
|
|
more and more people were trying to mine a block, they got rarer and rarer
|
|
|
|
So miners joined in mining pools, so as to get smaller, but more regular and
|
|
predicable payouts more often. Which destroys the decentralization objective
|
|
of mining, giving the central authority running the mining pool dangerously great
|
|
power over the blockchain.
|
|
|
|
Monero's workaround for this is P2Pool, a mining pool without centralization.
|
|
But not everyone wants to use P2Pool.
|
|
|
|
Monero has a big problem with people preferring to mine in big pools, because
|
|
of the convenience provided by the dangerously powerful central authority.
|
|
|
|
It easier for the individual miner to let the center make all the decisions that
|
|
matter, but many of these decisions matter to other people, and the center could
|
|
make decisions that are contrary to everyone else's interests. Even if the
|
|
individual miner is better off than mining solo, this could well make everyone
|
|
including the individual miner worse off, because he and everyone may be
|
|
adversely affected by other people's decision to pool mine.
|
|
|
|
# POW
|
|
|
|
> why do you hate POW? Because of resource waste? I thought it was the
|
|
> reason for success of BTC. With proof of share, or proof of stake,
|
|
> there will be always discussions of pre-mine, centralization etc.
|
|
> Would it be the case?
|
|
|
|
Hate the resource waste. It offends me. Plus a system that does
|
|
not directly handle money, that is a a messaging system between
|
|
systems that do handle money, cannot incentivise the
|
|
necessary resource waste.
|
|
|
|
It could bill people for messaging, and the payments could go to the block winner, but then
|
|
it would be a dao or yet another crypto currency, and not a neutral platform that other daos
|
|
and crypto currencies could use.
|
|
|
|
Suppose we have a filecoin style proof of spacetime .
|
|
Which also wastes resources, but identifies those
|
|
peers that are contributing to the network by storing
|
|
information and are capable of passing it around,
|
|
and have lots of connections to other peers.
|
|
All peers that pass the proof of space test become
|
|
authorized consensus makers for
|
|
a certain number of blocks, say 8192 blocks.
|
|
The test is not too hard. Most peers are authorized.
|
|
|
|
We harvest randomness, possibly from the fact that parties
|
|
do not know each other's secret keys, possibly from the
|
|
proof of space time test, so that each round, or each group of rounds,
|
|
a peer gets a random weight, such that the inverse of the weight is uniformly
|
|
distributed between one and two to the fifty sixth
|
|
|
|
Which means the weight is non uniformly distributed, with a very few peers
|
|
having most of the weight.
|
|
|
|
Each peer goes with the consensus block that has the highest chain of weights that it knows of.
|
|
|
|
Actually that algorithm has pathologies that could lead to suprising chain re-organisations
|
|
-- a slightly more complex algorithm is needed.
|
|
|
|
Every time a proposed block consensus is shared, it now has addiitional support.\
|
|
The weights of the two peers that have that consensus
|
|
and have the highest weight of all peers having that consensus is propagated
|
|
among all the peers that have that consensus, and the weight of the consensus is the weight of
|
|
the lesser of the two peers, plus the weight of the lesser of the two peers of the block it
|
|
was built upon that were known to the peer that built upon it at the time he built upon it,
|
|
plus the weight of the block that block was built upon, and so on and so forth.
|
|
|
|
Thus the most well known chain is propagated, becoming more well known. The more
|
|
peers that know of a block, the greater the weight of the block.
|
|
|
|
It is a better algorithm, but a whole lot more work to implement than RandomX POW. |