mimblewimble team mailing list archive
-
mimblewimble team
-
Mailing list archive
-
Message #00073
Re: Potentional method of hardforking MimbleWimble via freaky invalid to valid block transitions
On Thu, Mar 16, 2017 at 12:23:45PM -0400, Ethan Heilman wrote:
> Hi Andrew,
>
> > Say that none of these blocks are valid individually but the compactions AB and AC are valid. I post both to
> the network, now everyone is split between the two, and the next block
> will force a reorg.
> >Logistically, how does somebody who has AB in their blockchain switch to AC?
>
> Since half the network has AC they must provide AC or the AB half will
> not consider the new fork valid. This would be similar to Bitcoin
> where if I have the longest fork but refuse to share some of the
> transactions in that fork, that form is considered invalid.
>
> >For that matter, how did anyone validate AB in the first place? Compact validation of an entire chain is easy because you need no inputs, but compact validation of partial chains is harder because you need a subset of each blocks' inputs.
>
> Good point.
>
Ok, so I think where we're headed is:
- We should generalize blocks to "frankenblocks" which are ranges of
consecutive blocks where cutthrough inputs and outputs are pruned
- We should have a better name for frankenblock :)
- They can be considered for the purposes of PoW accounting to be
atomic units whose difficulty is the sum of the individual blocks'
difficulty.
- Reorg/sync logic should be able to request frankenblocks, and know
the exact frankenblock partition was used to produce the chain (so
that reorgs can happen without breaking frankenblocks apart).
The problem with this is that if I've got a blockchain of the form
ABC DE FG
and Ethan has a blockchain of the form
ABCD EFG'
(G is replaced by G'), how are we going to sort this out? If Ethan's fork
wins, I'll want a replacement for frankenblock FG, which Ethan can't provide,
and conversely I can't replace EFG'. The winner would need to provide the
entire blockchain to the loser.
A simple solution is to prune only the rangeproofs of cut-through outputs,
which allows reorgs to happen within frakenblocks, and still provides the
majority of the efficiency benefit.
--
Andrew Poelstra
Mathematics Department, Blockstream
Email: apoelstra at wpsoftware.net
Web: https://www.wpsoftware.net/andrew
"A goose alone, I suppose, can know the loneliness of geese
who can never find their peace,
whether north or south or west or east"
--Joanna Newsom
Attachment:
signature.asc
Description: PGP signature
Follow ups
References