A Deep Look at the Company Blockstream & Their Bitcoin ...
script - Are P2SH transactions with disabled opcodes ...
Bitcoin Script Explained - HedgeTrade Blog
If Monero(XMR) can change proof of work and still be XMR on every single exchange, Bitcoin Cash can change transaction ordering and an opcode and still be Bitcoin Cash.
While I understand why exchanges which allowed pre-fork trading needed ticker symbols for the 2 forks while BCH itself still existed, if BCHABC doesn't get renamed to BCH as soon as deposits/withdrawls are re-enabled, then the entire exchange is engaging in fraud by selling something under an incorrect name.
Taproot, CoinJoins, and Cross-Input Signature Aggregation
It is a very common misconception that the upcoming Taproot upgrade helps CoinJoin. TLDR: The upcoming Taproot upgrade does not help equal-valued CoinJoin at all, though it potentially increases the privacy of other protocols, such as the Lightning Network, and escrow contract schemes. If you want to learn more, read on!
Let's start with equal-valued CoinJoins, the type JoinMarket and Wasabi use. What happens is that some number of participants agree on some common value all of them use. With JoinMarket the taker defines this value and pays the makers to agree to it, with Wasabi the server defines a value approximately 0.1 BTC. Then, each participant provides inputs that they unilaterally control, totaling equal or greater than the common value. Typically since each input is unilaterally controlled, each input just requires a singlesig. Each participant also provides up to two addresses they control: one of these will be paid with the common value, while the other will be used for any extra value in the inputs they provided (i.e. the change output). The participants then make a single transaction that spends all the provided inputs and pays out to the appropriate outputs. The inputs and outputs are shuffled in some secure manner. Then the unsigned transaction is distributed back to all participants. Finally, each participant checks that the transaction spends the inputs it provided (and more importantly does not spend any other coins it might own that it did not provide for this CoinJoin!) and that the transaction pays out to the appropriate address(es) it controls. Once they have validated the transaction, they ratify it by signing for each of the inputs it provided. Once every participant has provided signatures for all inputs it registered, the transaction is now completely signed and the CoinJoin transaction is now validly confirmable. CoinJoin is a very simple and direct privacy boost, it requires no SCRIPTs, needs only singlesig, etc.
Let's say we have two participants who have agreed on a common amount of 0.1 BTC. One provides a 0.105 coin as input, the other provides a 0.114 coin as input. This results in a CoinJoin with a 0.105 coin and a 0.114 coin as input, and outputs with 0.1, 0.005, 0.014, and 0.1 BTC. Now obviously the 0.005 output came from the 0.105 input, and the 0.014 output came from the 0.114 input. But the two 0.1 BTC outputs cannot be correlated with either input! There is no correlating information, since either output could have come from either input. That is how common CoinJoin implementations like Wasabi and JoinMarket gain privacy.
Unfortunately, large-scale CoinJoins like that made by Wasabi and JoinMarket are very obvious. All you have to do is look for a transactions where, say, more than 3 outputs are the same equal value, and the number of inputs is equal or larger than the number of equal-valued outputs. Thus, it is trivial to identify equal-valued CoinJoins made by Wasabi and JoinMarket. You can even trivially differentiate them: Wasabi equal-valued CoinJoins are going to have a hundred or more inputs, with outputs that are in units of approximately 0.1 BTC, while JoinMarket CoinJoins have equal-valued outputs of less than a dozen (between 4 to 6 usually) and with the common value varying wildly from as low as 0.001 BTC to as high as a dozen BTC or more. This has led to a number of anti-privacy exchanges to refuse to credit custodially-held accounts if the incoming deposit is within a few hops of an equal-valued CoinJoin, usually citing concerns about regulations. Crucially, the exchange continues to hold private keys for those "banned" deposits, and can still spend them, thus this is effectively a theft. If your exchange does this to you, you should report that exchange as stealing money from its customers. Not your keys not your coins. Thus, CoinJoins represent a privacy tradeoff:
It's very hard for everyone else to determine which output belongs to which input.
It's obvious to everyone else that the output was involved in a mixing operation.
Let's now briefly discuss that nice new shiny thing called Taproot. Taproot includes two components:
The use of Schnorr-based signature scheme, with multisignature support. Spending from a Schnorr pubkey is called a "keypath spend".
The ability to secretly commit to a set of scripts, one of which can be revealed later and its inputs provided correctly in order to spend the coin. Spending via a hidden script is called a "scriptpath spend".
This has some nice properties:
Direct multisignature support means all multisignature uses look the same. In current Bitcoin, a 2-of-2 "multisignature" is really a script which demands that two signatures be provided, from 2 different pre-specified public keys. To a cryptographer, the strict definition of multisignature is that this is a single signature that is cooperatively created by multiple parties.
A typical minimal "multisig" setup would be a 2-of-3, because that lets you lose one signing device while still being able to keep access to your money, and still providing an increase in security relative to a singlesig, since a 2-of-3 requires that potential thieves abscond with at least two signing devices. In current Bitcoin, a 2-of-3 is a SCRIPT containing 3 public keys, requiring that two signatures from those three public keys be provided.
But a Lightning Network channel has exactly two participants. Thus, it uses a 2-of-2, and is a SCRIPT containing 2 public keys, requiring that two signatures from those public keys be provided. If you look for 2-of-2 spends on the blockchain after Lightning became cool, the chances are very good that a random 2-of-2 spend is a Lightning Network channel being closed, because there are hardly ever any other uses of 2-of-2.
Just from there, you can easily differentiate the most common HODLer multisig of 2-of-3 (SCRIPT contains 3 pubkeys) from the Lightning channel 2-of-2 (SCRIPT contains 2 pubkeys).
Fortunately, with Taproot, 2-of-3 and 2-of-2 (and any arbitrary k-of-n) can look exactly the same, because Schnorr allows for the cryptographer's strict definition of "multisignature": a single signature cooperatively created by multiple parties.
Complex SCRIPTs, like HTLCs, can be hidden in a Taproot output.
For example, the output can have a keyspend branch that is a n-of-n of all participants, with hidden SCRIPTs that encode the conditions under which the output can be spent
The hidden SCRIPTs ensure that the protocol is followed. If one of the participants drops from the protocol, the rest can reveal the hidden SCRIPTs and follow their conditions.
If everyone follows the protocol correctly, and agrees to the result, they can all cooperatively sign with the keyspend n-of-n. They can just all agree on what the result of the SCRIPTs would be, and sign a transaction that performs that, without revealing any SCRIPTs. Since all of them agreed on the result, nobody should complain (if one of them believes the result is not correct, they can just refuse to sign and force everyone else to publish the SCRIPTs onchain).
If everyone agrees, they get privacy: none of the SCRIPTs they were following ever get published onchain, and it looks like every other multisignature spend.
Taproot DOES NOT HELP CoinJoin
So let's review! CoinJoin:
CoinJoin inputs are singlesig
There are no SCRIPTs involved in CoinJoin.
Improves multisig privacy.
Improves SCRIPT privacy.
There is absolutely no overlap. Taproot helps things that CoinJoin does not use. CoinJoin uses things that Taproot does not improve.
B-but They Said!!
A lot of early reporting on Taproot claimed that Taproot benefits CoinJoin. What they are confusing is that earlier drafts of Taproot included a feature called cross-input signature aggregation. In current Bitcoin, every input, to be spent, has to be signed individually. With cross-input signature aggregation, all inputs that support this feature are signed with a single signature that covers all those inputs. So for example if you would spend two inputs, current Bitcoin requires a signature for each input, but with cross-input signature aggregation you can sign both of them with a single signature. This works even if the inputs have different public keys: two inputs with cross-input signature aggregation effectively define a 2-of-2 public key, and you can only sign for that input if you know the private keys for both inputs, or if you are cooperatively signing with somebody who knows the private key of the other input. This helps CoinJoin costs. Since CoinJoins will have lots of inputs (each participant will provide at least one, and probably will provide more, and larger participant sets are better for more privacy in CoinJoin), if all of them enabled cross-input signature aggregation, such large CoinJoins can have only a single signature. This complicates the signing process for CoinJoins (the signers now have to sign cooperatively) but it can be well worth it for the reduced signature size and onchain cost. But note that the while cross-input signature aggregation improves the cost of CoinJoins, it does not improve the privacy! Equal-valued CoinJoins are still obvious and still readily bannable by privacy-hating exchanges. It does not improve the privacy of CoinJoin. Instead, see https://old.reddit.com/Bitcoin/comments/gqb3udesign_for_a_coinswap_implementation_fo
Why isn't cross-input signature aggregation in?
There's some fairly complex technical reasons why cross-input signature aggregation isn't in right now in the current Taproot proposal. The primary reason was to reduce the technical complexity of Taproot, in the hope that it would be easier to convince users to activate (while support for Taproot is quite high, developers have become wary of being hopeful that new proposals will ever activate, given the previous difficulties with SegWit). The main technical complexity here is that it interacts with future ways to extend Bitcoin. The rest of this writeup assumes you already know about how Bitcoin SCRIPT works. If you don't understand how Bitcoin SCRIPT works at the low-level, then the TLDR is that cross-input signature aggregation complicates how to extend Bitcoin in the future, so it was deferred to let the develoeprs think more about it. (this is how I understand it; perhaps pwuille or ajtowns can give a better summary.) In detail, Taproot also introduces OP_SUCCESS opcodes. If you know about the OP_NOP opcodes already defined in current Bitcoin, well, OP_SUCCESS is basically "OP_NOP done right". Now, OP_NOP is a do-nothing operation. It can be replaced in future versions of Bitcoin by having that operation check some condition, and then fail if the condition is not satisfied. For example, both OP_CHECKLOCKTIMEVERIFY and OP_CHECKSEQUENCEVERIFY were previously OP_NOP opcodes. Older nodes will see an OP_CHECKLOCKTIMEVERIFY and think it does nothing, but newer nodes will check if the nLockTime field has a correct specified value, and fail if the condition is not satisfied. Since most of the nodes on the network are using much newer versions of the node software, older nodes are protected from miners who try to misspend any OP_CHECKLOCKTIMEVERIFY/OP_CHECKSEQUENCEVERIFY, and those older nodes will still remain capable of synching with the rest of the network: a dedication to strict backward-compatibility necessary for a consensus system. Softforks basically mean that a script that passes in the latest version must also be passing in all older versions. A script cannot be passing in newer versions but failing in older versions, because that would kick older nodes off the network (i.e. it would be a hardfork). But OP_NOP is a very restricted way of adding opcodes. Opcodes that replace OP_NOP can only do one thing: check if some condition is true. They can't push new data on the stack, they can't pop items off the stack. For example, suppose instead of OP_CHECKLOCKTIMEVERIFY, we had added a OP_GETBLOCKHEIGHT opcode. This opcode would push the height of the blockchain on the stack. If this command replaced an older OP_NOP opcode, then a script like OP_GETBLOCKHEIGHT 650000 OP_EQUAL might pass in some future Bitcoin version, but older versions would see OP_NOP 650000 OP_EQUAL, which would fail because OP_EQUAL expects two items on the stack. So older versions will fail a SCRIPT that newer versions will pass, which is a hardfork and thus a backwards incompatibility. OP_SUCCESS is different. Instead, old nodes, when parsing the SCRIPT, will see OP_SUCCESS, and, without executing the body, will consider the SCRIPT as passing. So, the OP_GETBLOCKHEIGHT 650000 OP_EQUAL example will now work: a future version of Bitcoin might pass it, and existing nodes that don't understand OP_GETBLOCKHEIGHT will se OP_SUCCESS 650000 OP_EQUAL, and will not execute the SCRIPT at all, instead passing it immediately. So a SCRIPT that might pass in newer versions will pass for older versions, which keeps the back-compatibility consensus that a softfork needs. So how does OP_SUCCESS make things difficult for cross-input signatur aggregation? Well, one of the ways to ask for a signature to be verified is via the opcodes OP_CHECKSIGVERIFY. With cross-input signature aggregation, if a public key indicates it can be used for cross-input signature aggregation, instead of OP_CHECKSIGVERIFY actually requiring the signature on the stack, the stack will contain a dummy 0 value for the signature, and the public key is instead added to a "sum" public key (i.e. an n-of-n that is dynamically extended by one more pubkey for each OP_CHECKSIGVERIFY operation that executes) for the single signature that is verified later by the cross-input signature aggregation validation algorithm00. The important part here is that the OP_CHECKSIGVERIFY has to execute, in order to add its public key to the set of public keys to be checked in the single signature. But remember that an OP_SUCCESS prevents execution! As soon as the SCRIPT is parsed, if any opcode is OP_SUCCESS, that is considered as passing, without actually executing the SCRIPT, because the OP_SUCCESS could mean something completely different in newer versions and current versions should assume nothing about what it means. If the SCRIPT contains some OP_CHECKSIGVERIFY command in addition to an OP_SUCCESS, that command is not executed by current versions, and thus they cannot add any public keys given by OP_CHECKSIGVERIFY. Future versions also have to accept that: if they parsed an OP_SUCCESS command that has a new meaning in the future, and then execute an OP_CHECKSIGVERIFY in that SCRIPT, they cannot add the public key into the same "sum" public key that older nodes use, because older nodes cannot see them. This means that you might need more than one signature in the future, in the presence of an opcode that replaces some OP_SUCCESS. Thus, because of the complexity of making cross-input signature aggregation work compatibly with future extensions to the protocol, cross-input signature aggregation was deferred.
What the upcoming years might hold in store for bitcoin (a technical outlook by John Newbery)
John Newbery is a developer contributing to Bitcoin Core and to various educational resources like Bitcoin Optech. Original source is here:https://twitter.com/jfnewbery/status/1208559196465184768. Keep in mind that the text below is copied from Twitter, so the formatting/phrasing might seem a little strange. -------------------------------------------------------- The end of the decade is a good time to look back and marvel at the giant strides that Bitcoin has made since Satoshi gave us the whitepaper in 2008. It's also a natural point to look forward to what the upcoming years might hold in store. This is where I think Bitcoin is headed over the next few years. Tell me why I'm wrong and what I've missed! The lightning protocol teams working on c-lightning (@Blockstream), eclair (@acinq_co), LND (@lightning) and rust lightning will continue to iterate rapidly on the lightning protocol. All implementations now support basic multi-path payments (https://bitcoinops.org/en/topics/multipath-payments/). We'll get better support of that as well as dual-funding, splice-in and splice-out (https://bitcoinops.org/en/topics/splicing/). Taken together, those technologies will make channel and liquidity management much easier. They'll be automated, fade into the background and user experience will improve drastically. Lightning infrastructure will improve. @bitfinex recently added lightning deposits and withdrawals. All other exchanges, merchant service providers, custodians and wallets will follow suit or become obsolete. We'll see more lightning wallets: a mix of non-custodial; self-custodied with outsourced routing; and fully-self-managed wallets. This is a brand new space and there'll be lots of experimentation. Different teams will find different niches to fill. Already, wallets like @MuunWallet, @Breez_Tech, @PhoenixWallet, @ln_zapand @bluewalletio are experimenting with different models. Tooling for lightning developers will improve. When we ran the lightning apps residency just over a year ago, the attendees spent a lot of time setting up their lightning dev environments. Now, with Polar (https://github.com/jamaljspolar) by @jamaljsr, lightning app developers can set up a test environment with a few clicks. More and better tools will continue to appear. With better tooling, we'll see faster innovation on the application layer. Teams at @zebedeeio, @SatoshisGames, and others we haven't heard of yet will delight us with new and unexpected lightning experiences. The schnortaproot softfork (https://bitcoinops.org/en/topics/taproot/) will be activated in 2020 or 2021. That'll provide a huge improvement in fungibility, privacy, scalability and functionality. For an overview of the benefits, watch the Optech exec briefing here: https://bitcoinops.org/en/2019-exec-briefing/#the-next-softfork That'll allow lightning to upgrade from HTLCs to Payment Points. That's a big improvement for privacy and payment decorrelation, and allows 'Stuckless payments' with proofs-of-payment -- another huge boost in LN usablity. See the @suredbits series of blog posts here https://suredbits.com/payment-points-part-1/ for more details on Payment Points. Even better, lightning channel opens and closes will look identical to payments to single pubkeys. The same is true for payments to k-of-n pubkey thresholds. That's good for fungibility, privacy and scalability. In fact, with schnortaproot, there's almost no downside to encumbering UTXOs with advanced scripts instead of single pubkey outputs. Cold storage UTXOs will be k-of-n multisig keytrees, and all hot wallet UTXOs will be stored in channels (with splicing-out used to make on-chain payments). When transactions hit the chain, they'll look like any other single pubkey/signature payment. Payments into wallets will pay directly into channel open outputs (thanks to @esneider for pointing this out to me). There'll be no concept of an on-chain balance and an in-channel balance. Just a single, unified balance that can be used for lightning or on-chain payments. Wallet teams will collaborate on a PayJoin payment protocol (https://bitcoinops.org/en/topics/payjoin/). A large number of on-chain transactions will be 2-input-2-ouput transactions, vastly improving fungibility and privacy, and foiling chain analysis. The inputs to those PayJoin transactions may be channel splice-outs, and the outputs may be channel opens, but there'll be no way to tell from observing the chain. Eventually we'll have cross-input signature aggregation (https://bitcoincore.org/en/2017/03/23/schnorr-signature-aggregation/#signature-aggregation), which means those PayJoin transactions will only have a single signature, and will be *cheaper* than regular change-producing transactions. Larger coinjoins will be cheaper still. An advanced PayJoin payment protocol could even batch multiple payments to the same merchant/exchange and use only a single signature. We'll get SIGHASH_NOINPUT or SIGHASH_ANYPREVOUT (https://bitcoinops.org/en/topics/sighash_noinput/), making eltoo (https://bitcoinops.org/en/topics/eltoo/) possible, and blurring the lines between layer 1 and layer 2 (https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-Septembe002136.html). That'll make lightning even more usable and allow more advanced layer 2 contracts like channel factories (https://bitcoinops.org/en/topics/channel-factories/). All these advanced features will require greater wallet interoperability. That's where miniscript (https://bitcoinops.org/en/topics/miniscript/) comes in. With miniscript, wallets will eventually be able to enter contracts with each other that don't require pre-templated scripts (as lightning currently does). This wallet interoperability will allow faster innovation in layer 2 contracts. OP_CTV (https://bitcoinops.org/en/newsletters/2019/12/04/#op-checktemplateverify-ctv) or some other covenant-enabling opcode will be activated, allowing richer layer 2 constructions like joinpools (https://freenode.irclog.whitequark.org/bitcoin-wizards/2019-05-21#1558427254-1558427441). Taken together with taproot and SIGHASH_NOINPUT, we'll get extremely rich and private off-chain contracts will be made possible. Some of these things will happen in 2020, and some will take a bit longer, but they're all heading in the same direction: using the chain for what the chain's good for (h/t Andrew Poelstra). That's to say: the block chain allows nodes to arrive at an agreed ledger state, while contracting and functionality move up onto layer two. Doing so is cheaper, more secure, more private and allows for more rapid innovation. None of this is inevitable, and none can happen without the industry of many hands and the creativity of many minds. There are years of work ahead for developers, researchers, businesses and users. If you run a Bitcoin business, you can help by supporting, sponsoring or hiring open source developers. If you're a Bitcoin user, you can help by *demanding* that any service you use supports the open source ecosystem. If you're a developer, you can help by reviewing and testing PRs and releases. https://bitcoincore.reviews/ is a great place to start. 2020 is going to be a great year for Bitcoin and Lightning protocol development! /fin
Electron Cash coin splitting tool (for Nov 2018 hardfork) released!
Together with Mengerian and Jonald Fyookball, I've coded up and released an Electron Cash coin splitting tool for the November 15, 2018 chain splits: https://github.com/markblundeberg/coinsplitter_checkdatasig/releases/tag/3.3.1CS Along with the tool is a user guide explaining how it can be used to safely split coins . The purpose of this tool is to give users more control over their coins if it turns out that the BCH network splits into two chains (or more) on November 15th. It allows people to give their coins "replay protection", by making it possible to spend coins using a script which is valid only on a chain following the upgraded Bitcoin Cash ruleset that includes OP_CHECKDATASIGVERIFY. The tool also allows the user to later move the coins on the Bitcoin SV chain using a separate script that will be valid on both chains. This allows users and exchanges to protect themselves from replay attacks. More information about Electron Cash ecosystem can be found in an announcement made by Jonald, today: https://electroncash.org/nov2018.html ... Added offer!On fork day, I am planning to personally create some more experimental transactions that are only compatible with bitcoin SV. This (together with the tool) allows a full two-way split where neither side's transactions can be replayed on the other. If you are interested in receiving SV-only coins, please send a tiny nominal amount (the network minimum is 546 satoshis) to my address bitcoincash:qrsplterpal0qx0ncerywfq2m7rjmyle3vzcektuccbefore fork day. Then, I will try to arrange for an SV-only coin to be sent back to the first input address, as soon as possible after the fork activates. You can then mix the received SV-only coin with your other coins, and thus start making transactions on SV that definitely cannot be replayed elsewhere.Edit: As it's just as easy for me, I will also be sending some small ABC-only dust to all addresses. The ABC-only tx and SV-only tx will each be marked with an OP_RETURN message. In case it is not obvious, I am planning on keeping excess funds as donations. I'm no longer accepting further requests on this address. Update here about which txes I made.
Rick Falkvinge: The SWOT chart has changed between 2011 and 2018 for bitcoin. Things that used to be impressive, such as instant phone-to-phone cash transfers, are often now a minimum bar to even play.
Third party services currently assist users to exchange one form of digital cash or asset for another, but a trusted third party is still required to mediate these transactions. We propose a solution to the problem of these isolated digital currency systems using a meta-level transfer protocol with an extendable and modular design, making accessible any kind of ledger-based economy or other digital cash system for cross-blockchain and inter-systemic transactions. Every hybrix protocol transaction yields profit to these respective ecosystems by paying transaction fees to their network supporting miners and stakers. Technically Bitcoin earlier on had solved some of the problems of the reversibility of transactions and trust issues that plagued online commerce new players in the arena are offering replacements for Bitcoin's peer-to-peer payment solution. Its transactions are stored in a data block inside the attachment section of a zero-value transaction on any distributed ledger system. Transactions containing meta data pay the usual fees denominated in the base currency Our proposal is to create a protocol - called hybrix protocol -as a cross-ledger colored coin, making it technically borderless and not bound to a single ledger system. Intersystemic transaction A transaction occurring between two distinct ledger systems. Entanglement Informational connection between two transactions on separate ledger systems, that functionally relate them as a cross-ledger transaction. Validator Network actor that analyses past transactions and makes available the legitimacy of these transactions according to the rules of the system protocol. Double spend A transaction that illegitimately increases the money supply in a ledger system. Immutability of past transactions attachment The data included with a transaction, sometimes called message or in the case of Bitcoin and its derived coins - OP RETURN. Primarily used on most ledger systems for annotation of the transaction. Transactions have a unique transaction id OPRETURN An Bitcoin script opcode used to mark a transaction output as an attachment field for storing data 3 invalid. Figure 2: The parsing function p parses the attachment of the base transaction into the required fields. Intersystemic Transactions 3.2 Structured Data on a Ledger We define an electronic intersystemic token as a block of structured data that is inserted into the attachment section of a zerovalue transaction on a distributed ledger system. The content of the attachment of transaction on a base ledger can be parsed into a second layer transaction of the meta ledger. A parsing function p will extract the required meta transaction details from the base transactions attachment as well as using details from the base transaction that are still relevant. Token ownership is secured by the underlying ledger system every time a transaction is done. Each owner transfers their zero-value transaction containing the token data to another owner by digitally signing a hash of the previous transaction and the current transaction. The only thing that is added to the recipe is the ledger symbol, and transaction hash of where the verification hash can be found. Subsequently the token is minted on the same address using a followup transaction 3. cross-ledger entangled transactions Other Types of Transactions tion and then choosing a branch that has not yet been validated. When a transaction contains more data than a ledger system can handle in its attachmentstorage space, the transaction may be split up, and sent using a transaction accompaniedby tailing part transactions that complete thecontents of the entire operation 7. A swap transaction is legitimate when the counterparty responds to a swap proposal using a signing transaction. Finally a burn transaction returns spendable HRC1 token balance to address E on the Ethereum chain 9. In case of a collision, validators will only accept the recipe that was proven first by way of the genesis transaction. The older genesis transaction must also be recorded in the recipe, so the chain of mutations can be followed and approved by validators. Validators check a new incoming recipe for validity first, by comparing its hashes with available data in the blockchain, and authenticating that the updated genesis transaction has been done using the same secret key as the first genesis transaction. Validation of Transactions DR AF T 6 5 6.1 Mutation of Monetary Supply Validation as a Service External validation should be handled in a decentralized manner using a consensus amongst multiple validator nodes. If a transaction fee is enforced by the ruleset, the supply is subtracted from on every transaction. 7 7 Examinations 7.1 Validating the Validators Validators need to be rigorously examined in order to find out if they are properly doing their job of validating transactions on the chains. In the case that all is going according to plan validators check the transactions and record their findings for the public truthfully. In sending a transaction they can opt to pay a higher fee, and this will result in more validators eager to validate the user's chain of transactions. A decentralized consensus state database maintained by a pool of validators will consist of a sub tree Tn0 where n increments with each state update, providing a snapshot of the agreed upon valid transaction tree. To ensure the recovery from a 51% attack on any one single chain, snapshotting by validators could enable network users to request the verification of the current ledger and balances state, regardless of a transaction history tainted by 51% attack damage. Common hybrix Index Storing the genesis transaction ID, or other hash information in every transaction would require a significant amount of blockchain storage as the volume of transactions grows. The token protocol Omni, on the contrary, uses an index number for the asset ID in every transaction. Where less computing and storage resources are available a hybrixjslib client can be used to sign and interpret transactions and get necessary data from a publicly available hybrixd node API. AF T Deterministic Libraries and API Connectors For a meta ledger we define a seed k KL¯ that can be used to generate a corresponding key pair in each base ledger using the function χL¯ : L¯ K(` ) χL,j :K L j DR 9 ψL : KL AL We connect to a large variety of blockchain APIs using a peer-to-peer network daemon called hybrixd 10. Deterministic functions are used to generate key pairs for all included 10 Conclusion We have proposed a system for meta-level transfers across multiple distributed ledgers 10 Notes without relying on centralized exchanges or decentralized atomic transaction compatibility. The process of moving value between ledger systems is not controlled by a centralized party, as transactions can be created and signed client-side and sent peer-to-peer among users. We started with the usual framework of second-layer tokens specified by storing data attached to transactions, which provides a method of accounting on top of existing ledgersystems, but is incomplete without a way to prevent double-spending.
With all of these token proposals being announced let's remember that BCH is permissionless. As long as the proposal doesn't require any HF or SF changes it can be implemented without anyone's approval. There will be lots of different standards and tokens on BCH within the next year. People's criticisms of certain proposals don't matter as they are opinions only. The economic and security advantages are something that is baked into each concept. Their weaknesses and strengths are something that the market will decide upon. This disorganization is part of the market organised chaos that makes bitcoin cash strong. It is not a weeknesses this is a strength. BCH is the standard. Everything else is ancillary. May the best proposal win.
Blockchain hard forks happen when protocol or consensus rules are updated in node software to produce blocks and transactions that are not compatible with non-updated versions of nodes. This is generally described as the software not being “backward compatible” which is a bit of a misnomer, since the new version nodes are compatible with older blocks and transactions, thus preserving the full history of a blockchain. Node software enforces the protocol change at a block height certain. What is incompatible after a hard fork is the blocks going forward. After a hard fork, the blockchain is split and exists as two blockchains with separate characteristics. For “consensus” hard forks, where the community agrees on the updates to a blockchain, a single “official” new blockchain will continue after the hard fork, and perhaps a split chain for laggards who didn’t update in time. However, if there is developer support for both chains after a hard fork, and technology — business — community interest in supporting two versions of the blockchain, the hard fork will give two blockchains going forward. This report compares three blockchain splits from hard forks which are shown schematically below. https://preview.redd.it/oxk7fj852oq41.jpg?width=1400&format=pjpg&auto=webp&s=aa6b7dfa017cdaf621c653be747a7c7630f46639 This timeline shows the Bitcoin Cash split from Bitcoin was on August 1, 2017, the Bitcoin SV split from Bitcoin Cash on November 15, 2018, and Bitcoin SC will split from Bitcoin in the June timeframe at a block height TBD. Next, consideration of some of the technical issues for these hard forks.
Block size is an important parameter in blockchain configuration since it controls scaling for transaction capacity, transactions per second, and node requirements. Block size has been a contentious issue in the blockchain community and has been a motivating factor for past chain splits. Table 1 - Block Size Bitcoin launched with a 1.0 MB block size, and has retained this size although adjustments using block “weight” for SegWit transactions allow larger blocks. Bitcoin Cash launched with an initial block size of 8 MB, and hard forked in May 2018 to a size of 32 MB. Bitcoin SV features very large blocks, launched with 128 MB, and implemented the Quasar protocol in July 2019 allowing blocks up to 2 GB. Bitcoin SC will launch with 2.0 MB blocks and is scalable up to 32 MB size (plus the SegWit “weight” adjustment). Another way to examine block size and TPS is to see actual usage of blocks on-chain. Blockchains are occasionally overloaded, but most run at a lesser capacity than full blocks. getchaintxstats give some statistics for the blockchain capacity usage over the past 4,320 blocks or 30 days. Table 2 gives transactions during the last 30 days (window_tx_count) and TPS (txrate) and shows an actual usage rate over the last month of 3.4 TPS for Bitcoin, 0.5 TPS for Bitcoin Cash and 6.3 TPS for Bitcoin SV. Table 2 - getchainxstats The commonly used value for Bitcoin TPS is 4, implying a transaction size of 417 bytes, and using SegWit transactions would give higher throughput. Bitcoin SC with 2 MB block size would give 2x Bitcoin TPS.
Block Height Delta
As you know, difficulty is adjusted every 2,016 blocks (~ 2 weeks) to maintain the 10-minute block spacing. In a perfect world, after splitting from the Bitcoin blockchain, the split chains would run block height roughly in sync with Bitcoin block height. However, various tweaks attempting to improve difficulty adjustment can decouple block height on the split chains. By definition, at the hard fork block height, the main chain and split chain are exactly in sync. There are minimal practical issues with these different block heights, although it is nice when software does what you are expecting for block spacing. Perhaps the only implication for different block heights is that halvings will occur at different times, so more for reference, the approximate block height offsets are shown below. Table 3 - Block Height Offset Again, the practical implication of these block height offsets is that Bitcoin Cash and Bitcoin SV will reach their halvings a little over a month earlier than Bitcoin. Bitcoin SC may use a more frequent and gentler difficulty adjustment algo, effectively tracking closer to the Bitcoin block height.
Since the addresses, private keys and coins are otherwise identical between Bitcoin and a forked chain, developers of the new split chain can add replay protection. Without replay protection, a signed transaction from one chain will validate and execute on the split chain in a “replay attack”, as Ethereum discovered in 2016. Bitcoin Cash added replay protection in their hard fork by adding a marker so that signatures wouldn’t match between Bitcoin and Bitcoin Cash (two-way replay protection). Bitcoin SV did not initially add replay protection (for philosophical reasons). Bitcoin SC will add replay protection using a modified signature similar to Bitcoin Cash.
Opcodes and Bytecodes
Bitcoin and its forks use script opcodes for basic programming operations executed on a stack. By design, script has limited capability for safety and of the ~100 opcodes available, relatively few are used for normal transactions (pay2pubkeyhash, multi-sig, etc.). Table 4 - Opcodes There is a slight variation in opcodes between these projects. Table 4 shows the count in current release GetOpName() function. The Bitcoin SV count includes 16 opcodes (OP_1 — OP16) for pushing onto the stack but otherwise is in the same size range as Bitcoin and Bitcoin Cash. Bitcoin SC, forked from Bitcoin v0.19, will include additional opcodes for interfacing with the smart contract layer, which will offer Turing-complete on-chain smart contract execution with ~100 bytecodes (e.g., a Constantinople-class virtual machine). In contrast to Bitcoin and these other forks, Bitcoin SC is a fully programmable blockchain, capable of running on-chain applications such as decentralized exchanges and DeFi solutions. More info and sign your support for Bitcoin SC https://bsc.net/ Another kind of hard fork: American Gothic, Grant Wood, 1930
A Guide To The BCH Fork on November 15th - Be Informed!
BCH November 15th Forking Guide
Intro As you may have heard, on 15th November 2018 the Bitcoin Cash Blockchain will fork into at least two separate chains. We felt it our duty to provide information to the community on the situation that we hope will offer some clarity on this rather complex situation.
What Is A Fork? A fork occurs when at least one group of miners decide to follow a separate set of rules from the current consensus protocol. Due to the way bitcoin is designed, these miners will then operate on a separate network from the current network. This was in fact how Bitcoin Core and Bitcoin Cash was created from the original Bitcoin. Both changed the consensus rules in different ways that made them incompatible. To make the current situation slightly more complex, there are to be two sets of miners that are changing the protocol rules away from the current protocol. It is not expected that the currently operating consensus rules will be in operation by any significant set of miners after November 15th. This means that after November 15th there will be two new sets of competing protocol rules. For simplicity these will be described as the BitcoinABC ruleset and the BitcoinSV ruleset (although other implementations such as Bitcoin Unlimited, bcash, bchd, BitcoinXT and bitprim all also have the ABC consensus ruleset). This is quite a unique fork situation as one side (BitcoinSV) has indicated that they will be willing to attack their competition (BitcoinABC) using reorgs and doublespends to destabilise and reduce confidence in it.
BitcoinABC Fork Details The main new features in the BitcoinABC that make it incompatible with the current protocol are CTOR and DSV. To summarise: CTOR (Canonical Transaction Ordering) is a technology that allows blocks to be transmitted in a much more efficient way. This means that as blocks become larger as the network gains more adoption, the hardware and bandwidth requirements on nodes is decreased. This reduces centralisation pressures and allows us to scale the network with fewer adverse effects. You can read more about CTOR in this excellent ARTICLE by u/markblundeberg. DSV (CheckDataSigVerify) is a technology that allows oracles directly on the Bitcoin blockchain. This means that the transactions on the Bitcoin blockchain can be dependent on actions that happen in the real world. For example you could bet on the weather tomorrow, or if a specific candidate wins an election, all directly on the blockchain. You can read more about DSV at this excellent ARTICLE by u/mengerian.
BitcoinSV Fork Details The main new features in the BitcoinSV that make it incompatible with the current protocol are an increase in the default block size limit to 128MB, increase of the 201 opcode limit within Bitcoin’s script system to a maximum of 500 opcodes, and a new set of opcodes including; OP_MUL, OP_LSHIFT, OP_RSHIFT, OP_INVERT. The increase in the default block size limit will in theory allow miners on the BitcoinSV ruleset to produce and propagate blocks up to 128MB in size. It may be the case that the current state of the network cannot handle, or at least sustain, 128MB blocks but this will allow miners to decide if they want to try and produce blocks over 32MB (the current protocol limit agreed upon by miners). Increasing the opcode limit will allow miners to make transactions using scripts of larger lengths. This means that more complex scripts can be developed. The new opcodes allow new operations to happen within the Bitcoin scripting system.
What Are Your Options? When the fork happens your coins will become available on both chains. This is because both chains will share the same blockchain history up until the point the fork occurs. Things are unfortunately not quite as simple as that (when are they ever in cryptoland?). Transactions that would be valid on both chains will occur on both chains. Your transactions will be considered valid on both chains as long as you do not use any of the exclusive features from either ruleset, or use inputs from transactions that are considered invalid on one of the chains. You can alternatively split your coins so that you can control them exclusively on each chain. So what should you do? We won’t recommend what you should do with your own money, and this is not financial advice, but here are some of your options.
Do Nothing and HODL The simplest option is to keep your Bitcoin Cash in a wallet you control and wait for things to blow over. Make sure you have the private keys and or the seed written down in at least one place to be able to recover your funds if needed. As long as you do not move your funds they will be available on both chains after the fork. Risks - Price volatility. Like always the price can go up and down any amount. Only risk what you can afford to lose.
Sell BCH for Fiat Another simple option is to sell your BCH for fiat. This means moving your Bitcoin Cash to an exchange such as Bitstamp.net, Kraken.com or Coinbase, and then selling them for a fiat currency. You may also consider then withdrawing your funds to your bank account for extra security (exchanges have been known to implode with everyone’s funds every now and again). Risks - If the BCH price increase while you hold fiat your BCH holdings will be less if and when you buy back. Exchanges and banks can confiscate your money if they like (that why love Bitcoin remember). By selling you may also be liable for taxes in your jurisdiction.
Split Your Coins and HODL If you want to be ready for anything then you can split your coins after the fork occurs. This means that you will be able to control your coins exclusively on each chain. You will still need to make sure you have your wallet(s) backed up and have the private keys and seeds written down somewhere. To split your coins you can use a tool developed on Electron Cash HERE. This is unfortunately not a simple tool to use right now. Make sure to read the tips and advice given in that thread. You can also use http://forkfaucet.cash/ to receive a tiny amount of split coins to your address(es) so that they will become split once you spend from them. Risks - This has the same risks as simply HODLing your BCH. You should also be aware that some services have decided to refuse to use split coins during the fork. This means that if you send them split coins they will not allow you to spend them. These services include: Yours.org, moneybutton, HandCash, CentBee and CoinText.
Split Your Coins and Sell Some If you interested in gambling on which chain will be more successful you can split your coins using the method above, and can then send coins from either chain to an exchange that allows buying and selling of specific sides of the chain. Most exchanges have decided to close deposits and withdrawals of BCH and even trading of BCH until the outcome of the forks have become more clear. After the fork occurs exchanges will likely make announcements about whether which chain they will support (potentially both), and you will then be able to trade each fork as separate cryptocurrencies. Risks - By selling your coins on one of the chains you will no longer be invested in that side of the fork. In the case that one side of the fork ceases to exist and you are only holding coins on that side, you will have lost that money. By selling you may also be liable for taxes in your jurisdiction.
Summary It is unfortunate that Bitcoin Cash has to go through a fork without unanimous consensus on the new protocol rules. The unique situation with this fork, in particular, has presented some interesting new issues, and it is likely that we as a community will learn a lot from it. We hope that in similar situations in the future that the major entities in the industry, including miners, developers, businesses and community leaders can come together to find compromise that keeps the ecosystem stable and focused on adoption. Further Resources You can get more information at bitcoincash.org, bitcoinabc.org, bitcoinsv.io, and bitcoin.com. If you have further questions about this or just want to discuss the fork in general, we encourage you to join our chat at bitcoincashers.org/chat and join the conversation.
This post was inspired by the video “Roger Ver’s Thoughts on Craig Wright”. Oh, wait. Sorry. “Roger Ver’s Thoughts on 15th November Bitcoin Cash Upgrade”. Not sure how I mixed those two up. To get it out of the way first and foremost: I have nothing but utmost respect for Roger Ver. You have done more than just about anyone to bring Bitcoin to the world, and for that you will always have my eternal gratitude. While there are trolls on both sides, the crucifixion of Bitcoin Jesus in the past week has been disheartening to see. As a miner, I respect his decision to choose the roadmap that he desires. It is understandable that the Bitcoin (BCH) upgrade is causing a clash of personalities. However, what has been particularly frustrating is the lack of debate around the technical merits of Bitcoin ABC vs Bitcoin SV. The entire conversation has now revolved around Craig Wright the individual instead of what is best for Bitcoin Cash moving forward. Roger’s video did confirm something about difference of opinions between the Bitcoin ABC and Bitcoin SV camps. When Roger wasn’t talking about Craig Wright, he spent a portion of his video discussing how individuals should be free to trade drugs without the intervention of the state. He used this position to silently attack Craig Wright for allegedly wanting to control the free trade of individuals. This appears to confirm what Craig Wright has been saying: that DATASIGVERIFY can be used to enable widely illegal use-cases of transactions, and Roger’s support for the ABC roadmap stems from his personal belief that Bitcoin should enable all trade regardless of legal status across the globe. Speaking for myself, I think the drug war is immoral. I think human beings should be allowed to put anything they want in their own bodies as long as they are not harming others. I live in the United States and have personally seen the negative consequences of the drug war. This is a problem. The debasement of our currency and theft at the hands of central banks is a separate problem. Bitcoin was explicitly created to solve one of these problems. Roger says in his video that “cryptocurrencies” were created to enable trade free from government oversight. However, Satoshi Nakamoto never once said this about Bitcoin. Satoshi Nakamoto was explicitly clear, however, that Bitcoin provided a solution to the debasement of currency.
“The root problem with conventional currency is all the trust that's required to make it work. The central bank must be trusted not to debase the currency, but the history of fiat currencies is full of breaches of that trust.” – Satoshi Nakamoto 02/11/2009
As we’ve written previously, the genesis block is often cited as a criticism of the 2008 bailout. However, the content of the article outlines that the bailout had already occurred. The article reveals that the government was poised to go a step further by buying up the toxic bank assets as part of a nationalization effort! In this scenario, according to the Times, "a 'bad bank' would be created to dispose of bad debts. The Treasury would take bad loans off the hands of troubled banks, perhaps swapping them for government bonds. The toxic assets, blamed for poisoning the financial system, would be parked in a state vehicle or 'bad bank' that would manage them and attempt to dispose of them while 'detoxifying' the main-stream banking system." The article outlines a much more nightmarish scenario than bank bailouts, one that would effectively remove any element of private enterprise from banking and use the State to seize the bank's assets. The United States is progressively getting to a point where cannabis can be freely traded and used without legal repercussion. As a citizen, each election has given me the opportunity to bring us closer to enacting that policy at a national level. However, I have never had the ability to have a direct impact on preventing the debasement of the United States dollar. The dollar is manipulated by a “private” organization that is accountable to no one, and on a yearly basis we are given arbitrary interest rates that I have no control over. The government uses its arbitrary control over the money supply to enable itself to spend trillions of dollars it doesn’t have on foreign wars. Roger Ver has passionately argued against this in multiple videos available on the internet. This is what Bitcoin promised to me when I first learned about it. This is what makes it important to me. When the Silk Road was shut down, Bitcoin was unaffected. Bitcoin, like the US dollar, was just a tool that was used for transactions. There is an inherent danger that governments, whether you like it or not, would use every tool at their disposal to shut down any system that enabled at a protocol level illegal trade. They, rightfully or wrongfully, did this with the Silk Road. Roger’s video seems to hint that he thinks Bitcoin Cash should be an experiment in playing chicken with governments across the world about our right to trade freely without State intervention. The problem is that this is a vast underestimation of just how quickly Bitcoin (BCH) could be shut down if the protocol itself was the tool being used for illegal trade instead of being the money exchanged on top of illegal trade platforms. I don’t necessarily agree or disagree with Roger’s philosophy on what “cryptocurrencies” should be. However, I know what Bitcoin is. Bitcoin is simply hard, sound money. That is boring to a lot of those in the “cryptocurrency” space, but it is the essential tool that enables freedom for the globe. It allows those in Zimbabwe to have sound currency free from the 50 billion dollar bills handed out like candy by the government. It allows those of us in the US to be free from the arbitrary manipulation of the Fed. Hard, sound, unchanging money that can be used as peer to peer digital cash IS the killer use case of Bitcoin. That is why we are here building on top of Bitcoin Cash daily. When Roger and ABC want to play ball with governments across the globe and turn Bitcoin into something that puts it in legal jeopardy, it threatens the value of my bitcoins. Similar to the uncertainty we go through in the US every year as we await the arbitrary interest rates handed out by the Fed, we are now going to wait in limbo to see if governments will hold Bitcoin Cash miners responsible for enabling illegal trade at a protocol level. This is an insanely dangerous prospect to introduce to Bitcoin (BCH) so early in its lifespan. In one of Satoshi Nakamoto’s last public posts, he made it clear just how important it was to not kick the hornet’s nest that is government:
“It would have been nice to get this attention in any other context. WikiLeaks has kicked the hornet's nest, and the swarm is headed towards us.” – Satoshi Nakamoto 12/11/2010
Why anyone would want to put our opportunity of sound monetary policy in jeopardy to enable illegal trading at a base protocol level is beyond me. I respect anyone who has an anarcho-capitalist ideology. But, please don’t debase my currency by putting it at risk of legal intervention because you want to impose that ideology on the world. We took the time to set up a Q&A with the Bitcoin SV developers Steve Shadders and Daniel Connolly. We posted on Reddit and gathered a ton of questions from the “community”. We received insanely intelligent, measured, and sane responses to all of the “attack vectors” proposed against increasing the block size and re-enabling old opcodes. Jonathon Toomim spent what must have been an hour or so asking 15+ questions in the Reddit thread of which we obtained answers to most. We have yet to see him respond to the technical answers given by the SV team. In Roger’s entire video today about the upcoming November fork, he didn’t once mention one reason why he disagrees with the SV roadmap. Instead, he has decided to go on Reddit and use the same tactics that were used by Core against Bitcoin Unlimited back in the day by framing the upcoming fork as “BCH vs BSV”, weeks before miners have had the ability to actually vote. What Bitcoin SV wants to accomplish is enable sound money for the globe. This is boring. This is not glamorous. It is, however, the greatest tool of freedom we can give the globe. We cannot let ideology or personalities change that goal. Ultimately, it won’t. We have been continual advocates for miners, the ones who spend 1000x more investing in the network than the /btc trolls, to decide the future of BCH. We look forward to seeing what they choose on Nov 15th. Roger mentions that it is our right to fork off and create our own chains. While that is okay to have as an opinion, Satoshi Nakamoto was explicit that we should be building one global chain. We adhere to the idea that miners should vote with their hashpower and determine the emergent chain after November 15th.
“It is strictly necessary that the longest chain is always considered the valid one. Nodes that were present may remember that one branch was there first and got replaced by another, but there would be no way for them to convince those who were not present of this. We can't have subfactions of nodes that cling to one branch that they think was first, others that saw another branch first, and others that joined later and never saw what happened. The CPU proof-of-worker proof-of-work vote must have the final say. The only way for everyone to stay on the same page is to believe that the longest chain is always the valid one, no matter what.” – Satoshi Nakamoto 11/09/2008
Connor of The BCH Boys
Edit: A clarification. I used the phrase "Bitcoin is boring". I want to clarify that Bitcoin itself is capable of far more than we've ever thought possible, and this statement is one I will be elaborating on further in the future.
What improvements are you most excited about for bitcoin cash?
I'm mostly in ETH but am considering diversifying to more focused currencies. I read the Bitcoin ABC medium term development plan and it looks like it's mostly focused on block sizes. Any other improvements planned (e.g. shorter confirmation times)?
FYI: Atomic swaps between Ethereum, Erc20 tokens and Bitcoin-based coins have now be completed successfully on mainnet!
Support for Eth/Erc20 is soon going to be added to Komodo's BarterDex p2p exchange, after just ~2 months since concept, the first "Etomic" swap between Eth and a bitcoin-based coin (Doge) has been completed on mainnet. https://github.com/dogethereum/dogerelay/issues/29 BarterDex has a working beta since a few months. So far it only supported Bitcoin and a lot of bitcoin-based coins like BCH, DASH, LTC, ZEC, etc... . BarterDex works with on-chain atomic swaps. Ethereum doesn't have the opcodes necessary, for this reason many projects that are working on atomic swaps with Ethereum have focused on simulating the missing parts with smart contracts. Komodo team has instead found a clever workaround that has rapidly led to success, it's less prone to bugs and also a lot cheaper in gas cost than all other solutions.
How is OP_CHECKDATASIGVERIFY illegal but stealing money from exchanges is not?
This is just one of the things that stood out to me about the things craig said. He tells everyone that including the DSV opcode would be illegal in many countries, but on the other hand he says that he is going to do reorgs on the BCH (ABC) chain, block all transactions from exchanges (TARGETED!) and reorg the chain (source: https://youtube.com/watch?v=4TOnHAlI_Vg?t=43). This just sounds to me like they are/were willing to steal funds from exchanges, by reverting all the transactions that are made to them on the BCH (ABC) chain. He also said that if you would split your coins on the ABC chain that they were going to mine (read: steal) all your funds on the SV chain (source: https://medium.com/@craig_10243/bitcoin-is-all-about-incentives-72894518f6b5). This is something that RXC even defended in his videos. If you are talking about what is permitted by most countries laws, which sounds more unlawful to you? To me it just sounds like a terrorist who says that you should do what he wants, OR ELSE! He threatens people like RXC with lawsuits if they don't follow their chain. How does anyone support any of this behavior? How does this coin have a $1.7B market cap? Can a market be this irrational? What the hell is going on?
Strange errors in the Blockstream Liquid, announcement post
If you don't fancy reading my post below, you can instead, listen to it here. Liquid is claimed to be the "world’s first production Bitcoin sidechain". It's an off-chain transaction system. You don't transact BTC on Liquid. Instead, you transact with representative tokens called L-BTC. This is a bit like how USDT (Tether) aren't real US dollars, they're representative tokens. The following is a paragraph from from the announcement post. I have highlighted the errors in bold:
In addition to the enhancements to Bitcoin’s functionality\1]), the launch of the Liquid Network marks the beginning of a new era of digital asset issuance and transacting by enabling the tokenization of fiat, gold, securities, and even other new crypto assets – all with Bitcoin at the center\2]).
Error 1: "enhancements to Bitcoin’s functionality"
Contrary to the claim: "Bitcoin" hasn't been enhanced by Liquid. If you enhance an off-chain system (e.g. a centralized exchange, a tipping app, a payment channel network or a side chain), you are not "enhancing Bitcoin", you are enhancing the off-chain system that is using Bitcoin. If I modify my car engine to enhance the performance, you wouldn't say that I have "enhanced the road". If I improve an algorithm in a game I had written to allow the game to render more smoothly, you wouldn't say that I have "enhanced the game console". If Rocketr enhance the their reddit tippr bot, you wouldn't say that they have "enhanced Bitcoin Cash". This may not be an accidental error on Blockstream's part. It may be another data point in a pattern of deception emanating from Bitcoin Core developers and supporters. They often conflate systems built on-top of BTC with BTC itself. I'm sure many of you have heard BTC users claiming "Lightning is Bitcoin" or "Lightning transactions are Bitcoin transactions". This appears to be more of the same; IE Liquid is an enhancement to Bitcoin. These people appear to want people to believe that Bitcoin is a centrally managed, partially-AXA funded, side-chain project (among other things). So here are some actual examples of real enhancements to Bitcoin:
In May of 2018, 6 op codes were renabled and a new one (OP_SPLIT) was added to Bitcoin (BCH). source, source.
Also in May of 2018, Bitcoin's (BCH) on-chain transaction processing capacity was increased by increasing the miner-consensus, block size limit from 8 MB to 32 MB. This allows more people to use the system.
Again in May of 2018, the OP_RETURN relay size was increased to 223 total bytes. This has made it possible to use Bitcoin (BCH) for more purposes than were previously possible. You can now store more arbitary data in a single transaction. Memo.cash is one such service taking advantage of the increased OP_RETURN space. BitDB2 also provides a convenient mechanism to allow for the creation of novel apps that utilize this extra space.
In November of 2018, Bitcoin (BCH) is likely being enhanced with 2 new op codes: OP_CHECKDATASIG and OP_CHECKDATASIGVERIFY. These op codes combined with the previously mentioned string processing OP codes allow Bitcoin (BCH) to gain some of the power of Ethereum. They enable Bitcoin scripts to get information from outside the blockchain. For example: you will be able to easily make a betting application using Bitcoin script where the outcome of the bet is reported by a source or set of sources external to the blockchain and the Bitcoin script decides who wins the bet based on that data. You can learn a little more about this by reading this article by Andrew Stone (A Bitcoin Unlimited developer).
Error 2: "all with Bitcoin at the center"
"Bitcoin" is not in the center... "Bitcoin" is off to the side (literally). There is no economic revolution happening on the BTC chain. The genius and evolutionary Bitcoin technology has been systematically constrained, limited and shoved off to the side. The vision that Blockstream, Bitcoin Core, Greg Maxwell, Adam Back, Samson Mow and others have for your monetary future is one where the Bitcoin technology is reduced to being a settlement system for corporations and the super-rich: IE people that can afford to pay the high fees on their artificially constrained system. BTC users may be unable to afford to transact on the artificially constrained BTC system due to the intermittent high fees. These users may be unable to use the trust-less Lightning Network due to the fact it's only suitable for "small or micro value payments" (source) and it is impractical and has a poor user experience. Blockstream helped to create these problems and they conveniently offer up the solution: Liquid. Blockstream see Liquid as a suitable system for use by end-users using wallets like the Blockstream GreenAddress wallet. Is BTC too slow and expensive for you? No worries! Try Liquid! The whole system is securely maintained by government licensed, centralized currency exchanges that pay a recurring monthly fee to Blockstream. Liquid is the financial system of the future that Satoshi could only dream of! /s
My Suggested Correction To The Article
I have reworded the offending paragraph to correct the errors and more honestly represent Blockstream:
As part of a well-organised, ongoing effort to move Bitcoin’s functionality into inferior, permissioned or trusted off-chain systems, the launch of the Liquid Network brings humanity one step closer to complete monetary enslavement. Bitcoin; a peer-to-peer, electronic cash system; was a tool created-to, and promoted-as a system to give humanity sound money, prosperity and economic freedom like never seen before. Liquid is just one part of a multi-pronged approach to take that system and re-purpose it to serve the will of the existing financial oligarchs.
Blockstream: feel free to update your announcement post and use my corrections, verbatim. No charge.
New Electron Cash coinsplit tool with support for both OP_CDSV and OP_MUL released!
Here (source only, for now): https://github.com/markblundeberg/coinsplitter_checkdatasig/releases/tag/3.3.1CSplus There has been a lot of focus lately on the opcode OP_CHECKDATASIGVERIFY which can be used to make ABC-only transactions -- a property used in the previous release of my coin splitting tool. In the spirit of Electron Cash's support of both chains, today I'm releasing an update that helps you use an SV-only opcode, OP_MUL. I strongly suggest that only experts use the OP_MUL tool, for technical reasons:
The MUL variant of the splitter is slightly less flexible in that disabled opcodes prevent creation of a 'refund' branch in script. So, the 1000 satoshis you send to the splitting contract will be semi-permanently unspendable on the ABC chain, until a future date when OP_MUL gets enabled.
By carefully using both the CDS tool and the MUL tool, you can create a full two-way split that lets you immediately start transacting on both chains without fear of replay attacks. However,doing this in a properly attacker-immune way will require a deep understanding of the UTXO aspect of bitcoin.
See previous announcement and user guide for more info. Note: Most users who want to split coins do not even need to use coin splitting tools like this, and can obtain already-split coins from many services such as cryptocurrency exchanges. I have released this tool mainly to help advanced users (including exchange operators) to control their coins independently of other services. Edit: documentation has been updated to describe how to split coins on non-standard (hardware / cold) wallets and non-Electron-Cash wallets.
What is Bitcoin: How Bitcoin Works, BTC History Review, Satoshi Nakamoto, User Tips and Knowledge Quiz. Bitcoin Exchange Guide has assembled what we believe to be the best ‘what is bitcoin‘ guide on the Internet.This user-first masterpiece is over 8,500 words of top-shelf insider knowledge that will take anyone from beginner to hodler in a matter of moments. The final 4th section of this article uses several basic examples of Bitcoin opcodes and scripts. These demonstrate that the script relies on the combination and correct ordering of operations for the program to execute itself correctly. T,he transaction is only confirmed and released to the new address once the script is approved and the signatures are verified. As also discussed, a ... Post hard fork Bitcoin Cash re-enabled opcodes previously disabled in the early days of Bitcoin for fear of bugs. Re-enabling the opcodes makes Bitcoin Cash’s scripting language more flexible than Bitcoin’s so assets could potentially be tokenized on its chain and simple smart contracts executed. To improve Bitcoin Cash’s scaling capabilities Graphene blocks are being incorporated to ... Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It only takes a minute to sign up. Sign up to join this community . Anybody can ask a question Anybody can answer The best answers are voted up and rise to the top Bitcoin . Home ; Questions ; Tags ; Users ; Unanswered ; Jobs; List of current opcodes? Ask Question Asked 3 years, 7 months ago. Active 3 ... Auto Added by WPeMatico. Home » Opcodes. Jan 23 2020 23 2020
The Bitcoin Source Code: A Guided Tour - Part 4: Splitting the Mining Reward
Check out coinspot, the easiest exchange to use for buying/trading bitcoin and altcoins https://www.coinspot.com.au?affiliate... #altcoindevelopment #cryptocurrencydevelopment #bitcoinsourcecode ... Bitcoin Cash Development video meeting January 3 2018 - 8am UTC Participants: Amaury Séchet, Andrea Suisani, Antony Zegers, Jason B. Cox, Chris Pacia, Emil Oldenberg, Mark Lundeberg, Host: David ... Check out coinspot, the easiest exchange to use for buying/trading bitcoin and altcoins https://www.coinspot.com.au?affiliate... In these tutorials I teach you how become a bitcoin/altcoin developer. Check out coinspot, the easiest exchange to use for buying/trading bitcoin and altcoins https://www.coinspot.com.au?affiliate... In these tutorials I teach you how become a bitcoin/altcoin developer. Here are two BIP drafts that specify a proposal for a Taproot softfork. A number of ideas are included: * Taproot to make all outputs and cooperative spends ...