Yes, to me Fraud Proofs and Segregated Witness seem almost completely orthogonal. I just wanted to make sure there wasn't something I was missing.Fraud proofs absolutely could be implemented without SW.
Yes, thanks, your proposal was my primary reading when I was trying to understand the concept of fraud proofs.I sketched out a method for doing so here:
https://gist.github.com/justusranvier/451616fa4697b5f25f60
You can get rid of the ordering requirement if you can eliminate all cases where you need to demonstrate the non-existence of an item in the merkle tree. You don't want to be in a position where you need the full merkle tree in a proof, because even if those trees are small today they will not always be small.I did have one comment/question about your proposed implementation. I am just wondering about the requirement that transaction in the block be ordered by transaction hash. I think this requirement can be eliminated is you construct the proof tree so that that the leaf nodes contain "existence proofs" for the transactions corresponding to each input of the transaction. In other words, the leaf nodes of the proof tree would contain block hashes, and partial merkle trees leading to the input transactions.
Would this work? Even though it seems like lots of information to include in the proof tree, I think it would actually result in more efficient fraud proofs. The fraud proof would then just consist of the existence proof of the proof-tree node, which contains the existence proof of the input transaction. And since the proof trees can be generated locally by full nodes, having more information in the proof tree is OK, especially since it is information full nodes need to keep track of anyway to generate the proof trees
You're absolutely right. Translation isn't a machine like process at all. Ideally anybody we pay we would pay enough that he or she would take the time to thoroughly understand the bitcoin space and BU before attempting to translate anything.There's a widespread misconception that translation is a simple, machine-like process. You don't just take the English words and transpose them into Chinese words. It's not as simple as just hiring any old English-Chinese translator. The translator has to
1) be very familiar with Bitcoin in general or else the translation will be incoherent
2) actually understand all the concepts covered or else the translation will be far less persuasive (and could be worse than not having a translation at all)
This is especially true when dealing with a paradigm shift like BU, where without pitch-perfect phrasing the reader will likely walk away confused. Ideally the translator will also have experience debating BU with other Chinese native speakers.
That is why having someone here participating would be ideal. They could get up to speed, bring the debate to Chinese Bitcoin forums, self-correct on the phrasing for maximum impact battle-hardened in some Chinese forum discussion, and even bring valuable feedback about how to tailor the message for maximum impact to a Chinese audience (may involve changes to content of the text itself, not just a straight translation).
In other words, we need a Chinese PR agent who is up to speed on understandings here and can write well. Failing that, a Chinese bitcoiner who can be given a solid grasp on BU philosophy and significance.
Hiring a lay Chinese translator would just be a waste of money. A Bitcoin-conversant Chinese translator would be acceptable but not ideal unless they are willing to take time to understand BU. Any misunderstanding is liable to show through in the text and get BU written off in China, so a mediocre translation may be worse than none unless it is only about the broadest strokes and doesn't get into any technical details.
Also, someone who is interested in BU already will be most motivated to go the extra mile, and they probably won't charge an arm and a leg for it.
Ok, cool. I also think it's very important for the proof tree to have a canonical structure so that it can be generated deterministically from the list of transaction in the block. So ordering by txid could be part of that.You can get rid of the ordering requirement if you can eliminate all cases where you need to demonstrate the non-existence of an item in the merkle tree. You don't want to be in a position where you need the full merkle tree in a proof, because even if those trees are small today they will not always be small.
I think you're right that putting the existence proofs, rather than just source block numbers, in the leaf nodes of the proof tree would eliminate the need to sort the transaction tree.
The proof tree itself would still need to be sorted by txid though, so that a compact proof can be created showing that a transaction in a block has no corresponding proof tree entry.
And even if some majority change them, the chain will split and the majorcoins will go the way of the fiats. So this is really not a problem. And I see no reason to make it convenient to change those parameters.The way I see it, a client ought to make it easy
to modify all those variables that reflect the individual
preferences of a node operator. The tolerance threshold for
misbehaving peers, for example and (of course) the acceptable
block sizes.
Block reward, block interval, difficulty etc. OTOH are consensus-critical
variables. Your communication will be ignored and your node banned if you
try to alter those.
I agree 100% about the blocksize reward. A 21,000,000 cap is what makes bitcoin, bitcoin and it shouldn't be easy to change that.And even if some majority change them, the chain will split and the majorcoins will go the way of the fiats. So this is really not a problem. And I see no reason to make it convenient to change those parameters.
@Norway, and other potential volunteers, a great way to start is to tackle one of the BUIP002 BIP Implementations originally proposed for Bitcoin Core which are all to be separate commits. Some are trivially simple like the Core1MB and would be a good way to practice a pull request.@theZerg
I want to help on the Bitcoin Unlimited project.
I'm 45, live in Norway, learned to program om Commodore 64, have programmed a lot, but never on open source projects, worked as journalist for newspapers and art director for magazines, done startups that failed, studied nuclear physics at the University.
I have organized 8 bitcoin meetups this year. http://www.meetup.com/Oslo-Bitcoin-Meetup/
If there is anything you need help with, please ask!
Happy new year everybody!