Dr Adam Back [ARCHIVE] on Nostr: đź“… Original date posted:2015-06-19 đź“ť Original message:Nicely put Eric. Relatedly ...
đź“… Original date posted:2015-06-19
đź“ť Original message:Nicely put Eric. Relatedly my initial experience with Bitcoin in
trying to improve bitcoin in fungibility, privacy & decentralisation,
I found some interesting things, like Confidential Transactions (that
Greg Maxwell has now optimised via a new generalisation of the
hash-ring signature construct he invented and with Pieter made part of
the alpha side-chain release) and a few other things.
As I went then to discuss and learn: a) what are the characteristics
needed for inclusion (clearly things need to fit in with how things
work, not demand massive rewrites to accommodate and to not conflict
with existing important design considerations), so that I could make
proposals in a practically deployable way, and then b) the
practicality of getting a proposed change that say people found
clearly useful. Then I bumped into the realisation that this is
actually really high risk to change, and consensus critical coding
security is very complex and there are some billion $ resting on
getting this rigidly correct under live conditions, so that deployment
must be cautious and incremental and rigorously tested.
So then I focussed instead on question of whether we could improve
bitcoins development model: how could we allow bitcoin to more rapidly
and agilely test beta features or try novel things to see how they
would work (as someone might do in a feature branch of a normal FOSS
project, to code and test a proposal for later addition), but with
criteria we want real bticoins so there is economic incentive as that
is actually part of the bitcoin protocol so you've not validated
something unless you're run it in a real network with money. I was
hypothesising therefore we need a way to run bitcoin beta network.
There's a thread about this here stretching back to may 2013.
Or similarly to run in parallel kind of subnets with different
trade-offs or features that are not easy to merge or high risk to
apply all at once to bitcoin with the inflight billions in capital and
transactions on it.
Anyway I thought that was a productive line of thinking, and generally
people seemed to agree and problem statement of 2wp: then 1wp
mechanism was proposed and then Greg extracted a concept from his
SNARK witness idea (which encapsulates a snark variant of a 2wp) but
now without snarks, then 2wp a conservative crypto 2wp proposal was
made. This was dec 2013 I think on wizards channel. The sidechain
alpha release now makes this a (alpha quality and so testnet coin, and
without DMMS peg) reality. I could imagine others who have a desire
to try things could elect to do so and copy that patch-set and make
more side-chains.
This is inherently non-coercive because you largely do not directly
change bitcoin by doing this, people elect to use which ever chain
suits them best given their usecase. If the sidechain is really early
stage it should have test-net coins in it not bitcoins in it, but
still its caveat emptor kind of beta chain, with good testing but
non-trivial to soft-fork on bitcoin but managable refactor a sidechain
to integrate something novel or try some existing feature (like the
segregated witness which robustly addresses malleability for example)
So I dont want to say side-chains are some magical solution to
everything, but its a direction that others may like to consider for
how to test or even run alternative trade-offs bitcoin side-chains in
parallel. For example it could hypothetically allow 10MB blocks on
one chain and 100kB blocks on the main chain. People say complexity,
scary. Sure I am talking longer term, but we have to also make
concrete forward progress to the future or we'll be stuck here talking
about perilously large constant changes in 5 years time!
This approach also avoids the one-size fits all problem.
Extension-blocks are an in-chain sub-net type of thing that has a
security boost by being soft-fork enforced (relative to side-chains
which are looser coupled and so more flexible relative to the simplest
form of extension-blocks)
Adam
On 19 June 2015 at 07:59, Eric Lombrozo <elombrozo at gmail.com> wrote:
> I don’t think the issue is between larger blocks on the one hand and things
> like lightning on the other - these two ideas are quite orthogonal.
>
> Larger blocks aren’t really about addressing basic scalability concerns -
> for that we’ll clearly need architectural and algorithmic improvements…and
> will likely need to move to a model where it isn’t necessary for everyone to
> validate everyone else’s latte purchases. Larger blocks might, at best, keep
> the current system chugging along temporarily - although I’m not sure that’s
> necessarily such a great thing…we need to create a fee market sooner or
> later, and until we do this, block size issues will continue to crop up
> again and again and economic incentives will continue to be misplaced. It
> would be nice to have more time to really develop a good infrastructure for
> this…but without real market pressures, I’m not sure it will happen at all.
> Necessity is the mother of invention, after all. The question is how to
> introduce a fee market smoothly and with the overwhelming consensus of the
> community - and that's where it starts to get tricky.
>
> ——
>
> On a separate note, as several others have pointed out in this thread (but I
> wanted to add my voice to this as well), maintenance of source code
> repositories is NOT the real issue here. The bitcoin/bitcoin project on
> github is a reference implementation of the Satoshi protocol…but it is NOT
> the only implementation…and it wasn’t really meant to be. Anyone is free to
> fork it, extend it, improve upon it, or create an entirely new network with
> its own genesis block…a separate cryptoledger.
>
> The real issue regarding XT is NOT the forking of source code nor issues
> surrounding commit access to repositories. The real issue is the *forking of
> a cryptoledger*.
>
> Open source repositories are meant to be forked - in fact, it is often
> encouraged. It is also encouraged that improvements be submitted for review
> and possibly merged back into the parent repository…although this doesn’t
> always happen.
>
> However, we currently have no mechanisms in place to support merging of
> forked cryptoledgers. Software, and most other forms of digital content,
> generally increases in value with more copies made. However, money is
> scarce…by design. The entire value of the assets of a decentralized
> cryptoledger rests on the assumption that nobody can just unilaterally fork
> it and change the rules. Yes, convincing other people to do things a certain
> way is HARD…yes, it can be frustratingly slow…I’ve tried to push for many
> changes to the Bitcoin network…and have only succeeded a very small number
> of times. And yes, it’s often been quite frustrating. But trying to
> unilaterally impose a change of consensus rules for an existing cryptoledger
> sets a horrendous precedent…this isn’t just about things like block size
> limits, which is a relatively petty issue by comparison.
>
> It would be very nice to have a similar workflow with consensus rule
> evolution as we do with most other open source projects. You create a fork,
> demonstrate that your ideas are sound by implementing them and giving others
> something that works so they can review them, and then merge your
> contributions back in. However, the way Bitcoin is currently designed, this
> is unfortunately impossible to do this with consensus rules. Once a fork,
> always a fork - a.k.a. altcoins. Say what you will about how most altcoins
> are crap - at least most of them have the decency of starting with a clean
> ledger.
Published at
2023-06-07 15:38:47Event JSON
{
"id": "b125b59f4d14253af830d043334f96e22b5fa2718a611a5b6d6a2925250273ff",
"pubkey": "9841003e19bf941ddd3afb1bcbe274b62c57d96704a2b51a86038c7eacdccb11",
"created_at": 1686152327,
"kind": 1,
"tags": [
[
"e",
"48e81df3a73e441acd6c6e5c3151759bce9454a93871ca63dce7257540670bc0",
"",
"reply"
],
[
"p",
"a23dbf6c6cc83e14cc3df4e56cc71845f611908084cfe620e83e40c06ccdd3d0"
]
],
"content": "📅 Original date posted:2015-06-19\n📝 Original message:Nicely put Eric. Relatedly my initial experience with Bitcoin in\ntrying to improve bitcoin in fungibility, privacy \u0026 decentralisation,\nI found some interesting things, like Confidential Transactions (that\nGreg Maxwell has now optimised via a new generalisation of the\nhash-ring signature construct he invented and with Pieter made part of\nthe alpha side-chain release) and a few other things.\n\nAs I went then to discuss and learn: a) what are the characteristics\nneeded for inclusion (clearly things need to fit in with how things\nwork, not demand massive rewrites to accommodate and to not conflict\nwith existing important design considerations), so that I could make\nproposals in a practically deployable way, and then b) the\npracticality of getting a proposed change that say people found\nclearly useful. Then I bumped into the realisation that this is\nactually really high risk to change, and consensus critical coding\nsecurity is very complex and there are some billion $ resting on\ngetting this rigidly correct under live conditions, so that deployment\nmust be cautious and incremental and rigorously tested.\n\nSo then I focussed instead on question of whether we could improve\nbitcoins development model: how could we allow bitcoin to more rapidly\nand agilely test beta features or try novel things to see how they\nwould work (as someone might do in a feature branch of a normal FOSS\nproject, to code and test a proposal for later addition), but with\ncriteria we want real bticoins so there is economic incentive as that\nis actually part of the bitcoin protocol so you've not validated\nsomething unless you're run it in a real network with money. I was\nhypothesising therefore we need a way to run bitcoin beta network.\nThere's a thread about this here stretching back to may 2013.\n\nOr similarly to run in parallel kind of subnets with different\ntrade-offs or features that are not easy to merge or high risk to\napply all at once to bitcoin with the inflight billions in capital and\ntransactions on it.\n\nAnyway I thought that was a productive line of thinking, and generally\npeople seemed to agree and problem statement of 2wp: then 1wp\nmechanism was proposed and then Greg extracted a concept from his\nSNARK witness idea (which encapsulates a snark variant of a 2wp) but\nnow without snarks, then 2wp a conservative crypto 2wp proposal was\nmade. This was dec 2013 I think on wizards channel. The sidechain\nalpha release now makes this a (alpha quality and so testnet coin, and\nwithout DMMS peg) reality. I could imagine others who have a desire\nto try things could elect to do so and copy that patch-set and make\nmore side-chains.\n\nThis is inherently non-coercive because you largely do not directly\nchange bitcoin by doing this, people elect to use which ever chain\nsuits them best given their usecase. If the sidechain is really early\nstage it should have test-net coins in it not bitcoins in it, but\nstill its caveat emptor kind of beta chain, with good testing but\nnon-trivial to soft-fork on bitcoin but managable refactor a sidechain\nto integrate something novel or try some existing feature (like the\nsegregated witness which robustly addresses malleability for example)\n\nSo I dont want to say side-chains are some magical solution to\neverything, but its a direction that others may like to consider for\nhow to test or even run alternative trade-offs bitcoin side-chains in\nparallel. For example it could hypothetically allow 10MB blocks on\none chain and 100kB blocks on the main chain. People say complexity,\nscary. Sure I am talking longer term, but we have to also make\nconcrete forward progress to the future or we'll be stuck here talking\nabout perilously large constant changes in 5 years time!\n\nThis approach also avoids the one-size fits all problem.\n\nExtension-blocks are an in-chain sub-net type of thing that has a\nsecurity boost by being soft-fork enforced (relative to side-chains\nwhich are looser coupled and so more flexible relative to the simplest\nform of extension-blocks)\n\nAdam\n\nOn 19 June 2015 at 07:59, Eric Lombrozo \u003celombrozo at gmail.com\u003e wrote:\n\u003e I don’t think the issue is between larger blocks on the one hand and things\n\u003e like lightning on the other - these two ideas are quite orthogonal.\n\u003e\n\u003e Larger blocks aren’t really about addressing basic scalability concerns -\n\u003e for that we’ll clearly need architectural and algorithmic improvements…and\n\u003e will likely need to move to a model where it isn’t necessary for everyone to\n\u003e validate everyone else’s latte purchases. Larger blocks might, at best, keep\n\u003e the current system chugging along temporarily - although I’m not sure that’s\n\u003e necessarily such a great thing…we need to create a fee market sooner or\n\u003e later, and until we do this, block size issues will continue to crop up\n\u003e again and again and economic incentives will continue to be misplaced. It\n\u003e would be nice to have more time to really develop a good infrastructure for\n\u003e this…but without real market pressures, I’m not sure it will happen at all.\n\u003e Necessity is the mother of invention, after all. The question is how to\n\u003e introduce a fee market smoothly and with the overwhelming consensus of the\n\u003e community - and that's where it starts to get tricky.\n\u003e\n\u003e ——\n\u003e\n\u003e On a separate note, as several others have pointed out in this thread (but I\n\u003e wanted to add my voice to this as well), maintenance of source code\n\u003e repositories is NOT the real issue here. The bitcoin/bitcoin project on\n\u003e github is a reference implementation of the Satoshi protocol…but it is NOT\n\u003e the only implementation…and it wasn’t really meant to be. Anyone is free to\n\u003e fork it, extend it, improve upon it, or create an entirely new network with\n\u003e its own genesis block…a separate cryptoledger.\n\u003e\n\u003e The real issue regarding XT is NOT the forking of source code nor issues\n\u003e surrounding commit access to repositories. The real issue is the *forking of\n\u003e a cryptoledger*.\n\u003e\n\u003e Open source repositories are meant to be forked - in fact, it is often\n\u003e encouraged. It is also encouraged that improvements be submitted for review\n\u003e and possibly merged back into the parent repository…although this doesn’t\n\u003e always happen.\n\u003e\n\u003e However, we currently have no mechanisms in place to support merging of\n\u003e forked cryptoledgers. Software, and most other forms of digital content,\n\u003e generally increases in value with more copies made. However, money is\n\u003e scarce…by design. The entire value of the assets of a decentralized\n\u003e cryptoledger rests on the assumption that nobody can just unilaterally fork\n\u003e it and change the rules. Yes, convincing other people to do things a certain\n\u003e way is HARD…yes, it can be frustratingly slow…I’ve tried to push for many\n\u003e changes to the Bitcoin network…and have only succeeded a very small number\n\u003e of times. And yes, it’s often been quite frustrating. But trying to\n\u003e unilaterally impose a change of consensus rules for an existing cryptoledger\n\u003e sets a horrendous precedent…this isn’t just about things like block size\n\u003e limits, which is a relatively petty issue by comparison.\n\u003e\n\u003e It would be very nice to have a similar workflow with consensus rule\n\u003e evolution as we do with most other open source projects. You create a fork,\n\u003e demonstrate that your ideas are sound by implementing them and giving others\n\u003e something that works so they can review them, and then merge your\n\u003e contributions back in. However, the way Bitcoin is currently designed, this\n\u003e is unfortunately impossible to do this with consensus rules. Once a fork,\n\u003e always a fork - a.k.a. altcoins. Say what you will about how most altcoins\n\u003e are crap - at least most of them have the decency of starting with a clean\n\u003e ledger.",
"sig": "9e14af925fc7dcf619807c20e13014bbe98eda705a50f2a90b8fb3fb4d8c3fc559843e87f6c7ad808e3ff57e4ba008b53820bfb05f3601f7b23adb86d7e88468"
}