ChronosCrypto
Newbie
Offline
Activity: 25
Merit: 0
|
|
March 16, 2016, 04:36:25 PM |
|
Whoa, whoa, wait... From the point of view of old clients, segwit adds one coinbase output that contains the root hash of the Merkle tree that commits to the witness transaction ids. It uses 47 extra bytes per block, so technically, yes, it "wastes precious blockchain space".
So, 47 bytes per block. That's not too unreasonable. But... This then gets us to my question that is not being answered. On average, how many bytes in the blockchain will be needed for a standard payment sent via segwit?
Is this ever less than it would be now? Is this ever the same as it is now? Is this usually about 50 bytes more per tx?
50 bytes per transaction for fully-validating nodes? This needs to be answered.
|
|
|
|
jl777 (OP)
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
March 16, 2016, 04:49:39 PM |
|
If using logic and asking pointed questions makes me a troll, then I guess I am a troll. Convince me with the math, then I will be segwit's strongest advocate. It the math doesnt add up, I will call it what it is
the paper's out there read it and then come back FYI 1.375 to 1.75 MB per block how many bytes total does a segwit tx permanently occupy just pick any standard normal tx. is that number bigger or smaller than the size of the normal tx. if the number is bigger, is this the case where "more" means "less"? am I a troll because I am confused why something that is 10x more complicated, has potential attack vectors and requires adding trust to the bitcoin is marketed as helping with scaling by using MORE bytes. I am just a simple C programmer and I dont understand complicated things like using more bytes to help scaling when that seems to be you end up with less tx that fit in the same amount of space. please help me understand. Is there a new quantum zero knowledge phased space bit multiplexer now? do I need to find my flux capacitor from the attic?
|
|
|
|
Sigals
Member
Offline
Activity: 76
Merit: 10
|
|
March 16, 2016, 04:51:36 PM |
|
Whoa, whoa, wait... From the point of view of old clients, segwit adds one coinbase output that contains the root hash of the Merkle tree that commits to the witness transaction ids. It uses 47 extra bytes per block, so technically, yes, it "wastes precious blockchain space".
So, 47 bytes per block. That's not too unreasonable. But... This then gets us to my question that is not being answered. On average, how many bytes in the blockchain will be needed for a standard payment sent via segwit?
Is this ever less than it would be now? Is this ever the same as it is now? Is this usually about 50 bytes more per tx?
50 bytes per transaction for fully-validating nodes? This needs to be answered. I would like to see an answer to this too, it seems everyone is avoiding this question. Fully validating nodes are very important for those of us that want to verify the blockchain ourselves and are required for bootstrapping new nodes.
|
|
|
|
jl777 (OP)
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
March 16, 2016, 04:58:58 PM |
|
Whoa, whoa, wait... From the point of view of old clients, segwit adds one coinbase output that contains the root hash of the Merkle tree that commits to the witness transaction ids. It uses 47 extra bytes per block, so technically, yes, it "wastes precious blockchain space".
So, 47 bytes per block. That's not too unreasonable. But... This then gets us to my question that is not being answered. On average, how many bytes in the blockchain will be needed for a standard payment sent via segwit?
Is this ever less than it would be now? Is this ever the same as it is now? Is this usually about 50 bytes more per tx?
50 bytes per transaction for fully-validating nodes? This needs to be answered. It is answered in the BIP: Transaction ID
A new data structure, witness, is defined. Each transaction will have 2 IDs.
Definition of txid remains unchanged: the double SHA256 of the traditional serialization format:
[nVersion][txins][txouts][nLockTime] A new wtxid is defined: the double SHA256 of the new serialization with witness data:
[nVersion][marker][flag][txins][txouts][witness][nLockTime]
from the BIP...
the wtxid is based on all of the original, plus marker (1 byte?) flag (1 byte) and witness, which appears to be:
1-byte - OP_RETURN (0x6a) 1-byte - Push the following 36 bytes (0x24) 4-byte - Commitment header (0xaa21a9ed) 32-byte - Commitment hash: Double-SHA256(witness root hash|witness nonce)
all this seems to be above and beyond what would be needed for the normal, plus the nVersion (4 bytes) and nLockTime (4 bytes) are duplicated. To a simple C programmer like me it sure looks like instead of reducing the net amount as required by anything claiming to save space, it is increasing the size by approx 50 bytes. Maybe its 32 + 4 + 1 + 1 + 4, so 42 bytes? I am trying to understand enough to implement this, but unless the original tx is reduced by more than the witness data uses, it will cost more per tx. But dont worry, I was told that it is likely that 100% of nodes will be pruning nodes in the future and all that matters is the size of the utxo. I still await how any new node can bootstrap if all nodes are pruning nodes... James
|
|
|
|
jl777 (OP)
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
March 16, 2016, 05:09:39 PM |
|
Whoa, whoa, wait... From the point of view of old clients, segwit adds one coinbase output that contains the root hash of the Merkle tree that commits to the witness transaction ids. It uses 47 extra bytes per block, so technically, yes, it "wastes precious blockchain space".
So, 47 bytes per block. That's not too unreasonable. But... This then gets us to my question that is not being answered. On average, how many bytes in the blockchain will be needed for a standard payment sent via segwit?
Is this ever less than it would be now? Is this ever the same as it is now? Is this usually about 50 bytes more per tx?
50 bytes per transaction for fully-validating nodes? This needs to be answered. I would like to see an answer to this too, it seems everyone is avoiding this question. Fully validating nodes are very important for those of us that want to verify the blockchain ourselves and are required for bootstrapping new nodes. 01000000000102fff7f7881a8099afa6940d42d1e7f6362bec38171ea3edf433541db4e4ad969f0 0000000494830450221008b9d1dc26ba6a9cb62127b02742fa9d754cd3bebf337f7a55d114c8e5c dd30be022040529b194ba3f9281a99f2b1c0a19c0489bc22ede944ccf4ecbab4cc618ef3ed01eef fffffef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a0100000000 ffffffff02202cb206000000001976a9148280b37df378db99f66f85c95a783a76ac7a6d5988ac9 093510d000000001976a9143bde42dbee7e4dbe6a21b2d50ce2f0167faa815988ac000247304402 203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4 518331561406f90300e8f3358f51928d43c212a8caed02de67eebee0121025476c2e83188368da1 ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee635711000000 the above is from https://github.com/bitcoin/bips/blob/master/bip-0143.mediawikiit is a 2 input 2 output tx in the witness space. In addition to the above, the much smaller anyonecan spend tx is needed too. I think it will be about 100 bytes? so we have a combined space of around 800 bytes against the 1000 bytes the usual 2 input/2 output tx occupies. Or was that 400 bytes that the 2input/2output tx takes? I was told that all nodes are expected to be pruning nodes anyway, so you dont have to worry about any full node requirements. They will make sure all the archive copies will forever be kept safe and not tampered with. you can trust them. it is better for bitcoin to require trust Isnt it nice to have all the hard choices made for you. We can trust in the math done by the central planners. Dont worry, be happy. James
|
|
|
|
xyzzy099
Legendary
Offline
Activity: 1065
Merit: 1077
|
|
March 16, 2016, 05:20:41 PM |
|
It is possible that there is a fundamental misunderstanding here.
I don't think anyone ever claimed that segwit was a way to expand capacity in a more (or even equally) efficient way than simply increasing the block size.
The advantage of segwit is that it elegantly fixes a couple of other hard problems (malleability, O(n^2) sigops issue) while ALSO allowing more transactions per block without requiring a hard fork for the block size. The amount of data in the blockchain for fully-validating nodes will definitely increase, just as it would if there were a 2MB block-size hard-fork.
Am I misunderstanding the concern here?
|
Libertarians: Diligently plotting to take over the world and leave you alone.
|
|
|
ChronosCrypto
Newbie
Offline
Activity: 25
Merit: 0
|
|
March 16, 2016, 05:25:45 PM |
|
Hold up. I'd like to hear from Wuille (one of the creators of segwit) about the size difference between a standard 2-input, 2-output transaction and its equivalent using segwit, for a fully-validating node. No need to attack with sarcasm.
BTW, I am also curious if the O(n^2) sigops issue can be solved in a much more simple way.
|
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
March 16, 2016, 05:27:50 PM |
|
Am I misunderstanding the concern here? The problems are 1) SegWit does not exist 2) Nobody knows how it works 3) Nobody needs it There is only one goal for everyone: double his fiat money with cryptocurrency. SegWit does not solve this problem. But the developers are trying to convince you in it.
|
|
|
|
xyzzy099
Legendary
Offline
Activity: 1065
Merit: 1077
|
|
March 16, 2016, 05:27:55 PM |
|
Hold up. I'd like to hear from Wuille (one of the creators of segwit) about the size difference between a standard 2-input, 2-output transaction and its equivalent using segwit, for a fully-validating node. No need to attack with sarcasm.
BTW, I am also curious if the O(n^2) sigops issue can be solved in a much more simple way.
If you are addressing that to me, I assure you my reply was not meant to be sarcastic at all. Not sure how anyone could take it that way.
|
Libertarians: Diligently plotting to take over the world and leave you alone.
|
|
|
2112
Legendary
Offline
Activity: 2128
Merit: 1073
|
|
March 16, 2016, 05:35:49 PM |
|
The advantage of segwit is that it elegantly fixes a couple of other hard problems (malleability, O(n^2) sigops issue)
What about fixing those "other problems" (I don't want to say "hard", because IMO they aren't "hard" by themselves) without the segregation? Impossible or just not worth it?
|
|
|
|
xyzzy099
Legendary
Offline
Activity: 1065
Merit: 1077
|
|
March 16, 2016, 05:39:47 PM |
|
The advantage of segwit is that it elegantly fixes a couple of other hard problems (malleability, O(n^2) sigops issue)
What about fixing those "other problems" (I don't want to say "hard", because IMO they aren't "hard" by themselves) without the segregation? Impossible or just not worth it? I don't claim to know the answer to that question, but your reply begs the question: Have you submitted a pull request with code that fixes these problems that you see as 'not "hard" by themselves'?
|
Libertarians: Diligently plotting to take over the world and leave you alone.
|
|
|
ChronosCrypto
Newbie
Offline
Activity: 25
Merit: 0
|
|
March 16, 2016, 05:40:24 PM |
|
No need to attack with sarcasm.
If you are addressing that to me, I assure you my reply was not meant to be sarcastic at all. Not sure how anyone could take it that way. Oh, my bad, I should have been more clear. It's directed at statements like this: it is better for bitcoin to require trust
Isnt it nice to have all the hard choices made for you. We can trust in the math done by the central planners. Dont worry, be happy.
|
|
|
|
xyzzy099
Legendary
Offline
Activity: 1065
Merit: 1077
|
|
March 16, 2016, 05:41:54 PM |
|
No need to attack with sarcasm.
If you are addressing that to me, I assure you my reply was not meant to be sarcastic at all. Not sure how anyone could take it that way. Oh, my bad, I should have been more clear. It's directed at statements like this: it is better for bitcoin to require trust
Isnt it nice to have all the hard choices made for you. We can trust in the math done by the central planners. Dont worry, be happy.
Yeah, I agree with that. I was really interested in reading this thread 'til that comment made it political.
|
Libertarians: Diligently plotting to take over the world and leave you alone.
|
|
|
2112
Legendary
Offline
Activity: 2128
Merit: 1073
|
|
March 16, 2016, 05:48:03 PM |
|
I don't claim to know the answer to that question, but your reply begs the question: Have you submitted a pull request with code that fixes these problems that you see as 'not "hard" by themselves'?
Submitting pull request without first discussing the viability of proposed "pull" is only for terminally naïve. Normal programmers do design first then code later, especially on a large financial project.
|
|
|
|
xyzzy099
Legendary
Offline
Activity: 1065
Merit: 1077
|
|
March 16, 2016, 05:54:11 PM |
|
I don't claim to know the answer to that question, but your reply begs the question: Have you submitted a pull request with code that fixes these problems that you see as 'not "hard" by themselves'?
Submitting pull request without first discussing the viability of proposed "pull" is only for terminally naïve. Normal programmers do design first then code later, especially on a large financial project. My point, perhaps poorly expressed, was that if you think these problems are 'not hard', you must have solutions in mind, no? I'd be interested in hearing your ideas. I am genuinely interested, not being sarcastic here.
|
Libertarians: Diligently plotting to take over the world and leave you alone.
|
|
|
jl777 (OP)
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
March 16, 2016, 05:55:12 PM |
|
No need to attack with sarcasm.
If you are addressing that to me, I assure you my reply was not meant to be sarcastic at all. Not sure how anyone could take it that way. Oh, my bad, I should have been more clear. It's directed at statements like this: it is better for bitcoin to require trust
Isnt it nice to have all the hard choices made for you. We can trust in the math done by the central planners. Dont worry, be happy.
Yeah, I agree with that. I was really interested in reading this thread 'til that comment made it political. I did not make this a political thing. segwit is marketed as a way to enable scaling, when it is no such thing. my analysis so far is that it creates a much more complicated error prone system with potential attack vectors that is not peer reviewed that reduces the ability to scale. Maybe my problem is that I am just not smart enough to understand it well enough to appreciate it? but in some weeks it will be softforked, so its ok, there is no need to worry about it. so if the bitcoin supply is increased to 1 billion with a softfork, that's ok? All I see is that segwit tx requires more work, more space, more confusion, but we do end up where there are tx in the blockchain that need to be trusted. bitcoin becomes partly a trusted ledger, but ripple is doing fine, so why not
|
|
|
|
xyzzy099
Legendary
Offline
Activity: 1065
Merit: 1077
|
|
March 16, 2016, 05:57:10 PM |
|
I did not make this a political thing.
segwit is marketed as a way to enable scaling, when it is no such thing.
I didn't think you did. One of us replying messed up the quoting. I know you are not the one who 'went there'. [EDIT]How does it not help scaling, if it increases the number of transactions that can be included in each block?
|
Libertarians: Diligently plotting to take over the world and leave you alone.
|
|
|
jl777 (OP)
Legendary
Offline
Activity: 1176
Merit: 1134
|
|
March 16, 2016, 05:58:36 PM |
|
I did not make this a political thing.
I didn't think you did. One of us replying messed up the quoting. I know you are not the one who 'went there'. ah, the crosspost. I am just so confused how being a softfork makes fundamentally changing (breaking) things ok
|
|
|
|
2112
Legendary
Offline
Activity: 2128
Merit: 1073
|
|
March 16, 2016, 06:01:58 PM |
|
My point, perhaps poorly expressed, was that if you think these problems are 'not hard', you must have solutions in mind, no? I'd be interested in hearing your ideas. I am genuinely interested, not being sarcastic here.
It wasn't only me that had those solutions in mind. In fact they are already included in the "segregated witness" proposal, but without the "segregation" part. The "segregation" just splits the transaction in two parts. In fact one could come up with a deficient "segregated witness" proposal that wouldn't fix the discussed problems. They are orthogonal concepts.
|
|
|
|
ChronosCrypto
Newbie
Offline
Activity: 25
Merit: 0
|
|
March 16, 2016, 06:04:06 PM |
|
[EDIT]How does it not help scaling, if it increases the number of transactions that can be included in each block?
Block size is easy to change. There's an arguably-popular client (Bitcoin Classic) that solves that problem today. To help scaling you need to invent tech to make running a full node easier, such as thin-blocks or IBLT. Shameless plug: I recently produced a video on Xtreme Thin Blocks.
|
|
|
|
|