{"type":"rich","version":"1.0","author_name":"npub1fx98zxt3lzspjs5f4msr0fxysx5euucm29ghysryju7vpc9j0jzqtcl2d8","author_url":"https://nostr.ae/npub1fx98zxt3lzspjs5f4msr0fxysx5euucm29ghysryju7vpc9j0jzqtcl2d8","provider_name":"njump","provider_url":"https://nostr.ae","html":"📅 Original date posted:2015-09-18\n📝 Original message:Well, with utxo commitments at some point maybe is enough to validate the\nfull headers history but only the last 5 years of ttansaction history\n(assuming utxo commitments are buried 5 years worth of blocks in the past).\nThis scales much better than validating the full history and if we get a 5\nyear reorg something is going really wrong anyway...\nMaybe after validating the last 5 years you also want to validate the rest\nof the history backards to get the \"fully-full node\" security.\nOf course 5 years it's just an arbitrary number: 2 or maybe even 1 would\nprobably be secure enough for most people. I've referred to this idea as\n\"hard checkpoints\" or \"moving the genesis block forward\" in the past.\nOn Sep 18, 2015 4:18 PM, \"Rune Kjær Svendsen\" \u003c\nbitcoin-dev at lists.linuxfoundation.org\u003e wrote:\n\n\u003e There are a couple of points I’d like to address.\n\u003e\n\u003e Firstly, yes, \u003e50% attacks are a problem for Bitcoin. Bitcoin does not\n\u003e function if the majority of mining power is dishonest. There is no way\n\u003e around that. It’s how proof-of-work functions. And if we lose\n\u003e proof-of-work, we lose Bitcoin.\n\u003e\n\u003e Secondly, I’m not suggesting that UTXO set hashes *replace* block hashes,\n\u003e or even that it should be in the block header (probably in the coinbase\n\u003e somewhere). I suggest it as an *addition* to the existing consensus rules.\n\u003e Full nodes can still verify the chain with the added step of hashing the\n\u003e UTXO set for every block. Of course, this can easily be deferred to after\n\u003e proof-of-work has been verified already, such that no work is wasted.\n\u003e Unless a 51% attack is in effect. But I argue that this is a moot point,\n\u003e since Bitcoin is useless anyway under such circumstances.\n\u003e\n\u003e Lastly, I’m not suggesting miners discard the blockchain history. A miner\n\u003e has an incentive to be absolutely sure that the chain he’s building on is\n\u003e the right one. If he’s wrong, he loses money/income. There’s simply no\n\u003e reason for a professional miner *not* to do the full initial sync, which\n\u003e only needs to be done once. Non-miners, who just want to check the balance\n\u003e of their wallet, however, really don’t need to retrieve information about\n\u003e Hal Finney sending bitcoins to Satoshi in 2010. In any case, this practice\n\u003e isn’t sustainable.\n\u003e\n\u003e In the end, it isn’t possible to control whether a miner verifies the\n\u003e entire blockchain anyway (anyone can send the UTXO set over the wire). Not\n\u003e letting the proof-of-work cover the UTXO hash doesn’t solve this problem,\n\u003e it only makes it impossible to know whether a given UTXO set is the one\n\u003e that the majority is mining on without retrieving the entire blockchain,\n\u003e and doing the verification yourself. People can choose to skip that\n\u003e regardless of what we do.\n\u003e\n\u003e Furthermore, all nodes have the option of deciding which level of security\n\u003e they want. We’re not lessening security of the protocol, we’re\n\u003e strengthening the security of something that’s already possible to do\n\u003e (build on top of an unverified blockchain), but we’d rather want that\n\u003e people not do.\n\u003e\n\u003e /Rune\n\u003e\n\u003e\n\u003e \u003e On 18 Sep 2015, at 21:43, Patrick Strateman via bitcoin-dev \u003c\n\u003e bitcoin-dev at lists.linuxfoundation.org\u003e wrote:\n\u003e \u003e\n\u003e \u003e Full nodes using UTXO set commitments is a change to the bitcoin\n\u003e \u003e security model.\n\u003e \u003e\n\u003e \u003e Currently an attacker with \u003e50% of the network hashrate can rewrite\n\u003e history.\n\u003e \u003e\n\u003e \u003e If full nodes rely on UTXO set commitments such an attacker could create\n\u003e \u003e an infinite number of bitcoins (as in many times more than the current\n\u003e \u003e 21 million bitcoin limit).\n\u003e \u003e\n\u003e \u003e Before we consider mechanisms for UTXO set commitments, we should\n\u003e \u003e seriously discuss whether the security model reduction is reasonable.\n\u003e \u003e\n\u003e \u003e On 09/18/2015 12:05 PM, Rune Kjær Svendsen via bitcoin-dev wrote:\n\u003e \u003e\u003e Currently, when a new node wants to join the network, it needs to\n\u003e retrieve the entire blockchain history, starting from January 2009 and up\n\u003e until now, in order to derive a UTXO set that it can verify new\n\u003e blocks/transactions against. With a blockchain size of 40GB and a UTXO size\n\u003e of around 1GB, the extra bandwidth required is significant, and will keep\n\u003e increasing indefinitely. If a newly mined block were to include the UTXO\n\u003e set hash of the chain up until the previous block — the hash of the UTXO\n\u003e set on top of which this block builds — then new nodes, who want to know\n\u003e whether a transaction is valid, would be able to acquire the UTXO set in a\n\u003e trustless manner, by only verifying proof-of-work headers, and knowing that\n\u003e a block with an invalid UTXO set hash would be rejected.\n\u003e \u003e\u003e\n\u003e \u003e\u003e I’m not talking about calculating a complicated tree structure from the\n\u003e UTXO set, which would put further burden on already burdened Bitcoin Core\n\u003e nodes. We simply include the hash of the current UTXO set in a newly\n\u003e created block, such that the transactions in the new block build *on top*\n\u003e of the UTXO set whose hash is specified. This actually alleviates Bitcoin\n\u003e Core nodes, as it will now become possible for nodes without the entire\n\u003e blockchain to answer SPV queries (by retrieving the UTXO set trustlessly\n\u003e and using this to answer queries). It also saves bandwidth for Bitcore Core\n\u003e nodes, who only need to send roughly 1GB of data, in order to synchronise a\n\u003e node, rather than 40GB+. I will continue to run a full Bitcoin Core node,\n\u003e saving the entire blockchain history, but it shouldn’t be a requirement to\n\u003e hold the entire transaction history in order to start verifying new\n\u003e transactions.\n\u003e \u003e\u003e\n\u003e \u003e\u003e As far as I can see, this also forces miners to actually maintain an\n\u003e UTXO set, rather than just build on top of the chain with the most\n\u003e proof-of-work. Producing a UTXO set and verifying a block against a chain\n\u003e is the same thing, so by including the hash of the UTXO set we force miners\n\u003e to verify the block that they want to build on top of.\n\u003e \u003e\u003e\n\u003e \u003e\u003e Am I missing something obvious, because as far as I can see, this\n\u003e solves the problem of quadratic time complexity for initial sync:\n\u003e http://www.youtube.com/watch?v=TgjrS-BPWDQ\u0026t=2h02m12s\n\u003e \u003e\u003e\n\u003e \u003e\u003e The only added step to verifying a block is to hash the UTXO set. So it\n\u003e does require additional computation, but most modern CPUs have a SHA256\n\u003e throughput of around 500 MB/s, which means it takes only two seconds to\n\u003e hash the UTXO set. And this can be improved further (GPUs can do 2-3 GB/s).\n\u003e A small sacrifice for the added ease of initial syncing, in my opinion.\n\u003e \u003e\u003e\n\u003e \u003e\u003e /Rune\n\u003e \u003e\u003e _______________________________________________\n\u003e \u003e\u003e bitcoin-dev mailing list\n\u003e \u003e\u003e bitcoin-dev at lists.linuxfoundation.org\n\u003e \u003e\u003e https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev\n\u003e \u003e\n\u003e \u003e\n\u003e \u003e _______________________________________________\n\u003e \u003e bitcoin-dev mailing list\n\u003e \u003e bitcoin-dev at lists.linuxfoundation.org\n\u003e \u003e https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev\n\u003e\n\u003e _______________________________________________\n\u003e bitcoin-dev mailing list\n\u003e bitcoin-dev at lists.linuxfoundation.org\n\u003e https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev\n\u003e\n-------------- next part --------------\nAn HTML attachment was scrubbed...\nURL: \u003chttp://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20150918/a57078f8/attachment-0001.html\u003e"}
