public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Brian Hoffman <brianchoffman@gmail•com>
To: Pieter Wuille <pieter.wuille@gmail•com>
Cc: Bitcoin Dev <bitcoin-development@lists•sourceforge.net>
Subject: Re: [Bitcoin-development] Chain pruning
Date: Thu, 10 Apr 2014 13:06:22 -0400	[thread overview]
Message-ID: <CAADm4BB_JS8-tWi8bhUsuye6JpdrFciBxbNki67AV+U5rxX5jA@mail.gmail.com> (raw)
In-Reply-To: <CAPg+sBg88Q1Ddwsvuk3-17wO=0DF7L1wtxx4mWUoiV1=cWKhEQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2931 bytes --]

Ok I think I've got a good understanding of where we're at now. I can
promise that the next person to waste your time in 30 days will not be me.
I'm pleasantly surprised to see a community that doesn't kickban newcomers
and takes the time to explain (re-explain) concepts.

Hoping to add *beneficial* thoughts in the future!


On Thu, Apr 10, 2014 at 12:59 PM, Pieter Wuille <pieter.wuille@gmail•com>wrote:

> On Thu, Apr 10, 2014 at 6:47 PM, Brian Hoffman <brianchoffman@gmail•com>
> wrote:
> > Looks like only about ~30% disk space savings so I see your point. Is
> there
> > a critical reason why blocks couldn't be formed into "superblocks" that
> are
> > chained together and nodes could serve a specific superblock, which
> could be
> > pieced together from different nodes to get the full blockchain? This
> would
> > allow participants with limited resources to serve full portions of the
> > blockchain rather than limited pieces of the entire blockchain.
>
> As this is a suggestion that I think I've seen come up once a month
> for the past 3 years, let's try to answer it thoroughly.
>
> The actual "state" of the blockchain is the UTXO set (stored in
> chainstate/ by the reference client). It's the set of all unspent
> transaction outputs at the currently active point in the block chain.
> It is all you need for validating future blocks.
>
> The problem is, you can't just give someone the UTXO set and expect
> them to trust it, as there is no way to prove that it was the result
> of processing the actual blocks.
>
> As Bitcoin's full node uses a "zero trust" model, where (apart from
> one detail: the order of otherwise valid transactions) it never
> assumes any data received from the outside it valid, it HAS to see the
> previous blocks in order to establish the validity of the current UTXO
> set. This is what initial block syncing does. Nothing but the actual
> blocks can provide this data, and it is why the actual blocks need to
> be available. It does not require everyone to have all blocks, though
> - they just need to have seen them during processing.
>
> A related, but not identical evolution is merkle UTXO commitments.
> This means that we shape the UTXO set as a merkle tree, compute its
> root after every block, and require that the block commits to this
> root hash (by putting it in the coinbase, for example). This means a
> full node can copy the chain state from someone else, and check that
> its hash matches what the block chain commits to. It's important to
> note that this is a strict reduction in security: we're now trusting
> that the longest chain (with most proof of work) commits to a valid
> UTXO set (at some point in the past).
>
> In essence, combining both ideas means you get "superblocks" (the UTXO
> set is essentially the summary of the result of all past blocks), in a
> way that is less-than-currently-but-perhaps-still-acceptably-validated.
>
> --
> Pieter
>

[-- Attachment #2: Type: text/html, Size: 3609 bytes --]

  reply	other threads:[~2014-04-10 17:06 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-10 11:37 Mike Hearn
2014-04-10 11:57 ` Wladimir
2014-04-10 12:10   ` Gregory Maxwell
2014-04-10 14:19     ` Wladimir
2014-04-10 16:23       ` Brian Hoffman
2014-04-10 16:28         ` Mike Hearn
2014-04-10 16:47           ` Brian Hoffman
2014-04-10 16:54             ` Ricardo Filipe
2014-04-10 16:56               ` Brian Hoffman
2014-04-10 16:59             ` Pieter Wuille
2014-04-10 17:06               ` Brian Hoffman [this message]
2014-04-10 18:19               ` Paul Rabahy
2014-04-10 18:32                 ` Pieter Wuille
2014-04-10 20:12                   ` Tier Nolan
2014-04-10 20:29                     ` Pieter Wuille
2014-04-10 19:36                 ` Mark Friedenbach
2014-04-10 21:34               ` Jesus Cea
2014-04-10 22:15                 ` Mark Friedenbach
2014-04-10 22:24                   ` Jesus Cea
2014-04-10 22:33                     ` Gregory Maxwell
2014-04-10 16:52           ` Ricardo Filipe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAADm4BB_JS8-tWi8bhUsuye6JpdrFciBxbNki67AV+U5rxX5jA@mail.gmail.com \
    --to=brianchoffman@gmail$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=pieter.wuille@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox