In terms of price, there’s not much to say, except it has been a boring week. Opinions seem to be quite divided, although that is only natural as the market keeps moving side-ways.
Boring as hell.
What about technology? What’s new?
In terms of new and exciting developments happening on the bitcoin community, there are a few different ones I would like to discuss today.
Again, I’m not focusing in other projects like Iota or Eos, as their product is either in testnet, training wheels or was just released.
What’s more important, to discuss how amazing new ideas will solve scalability, like PoS, DPoS and DAG’s, or to focus on what is being done at the bitcoin core development?
Yes, I agree there are many different projects worth mentioning and I will write an article discussing the ones I consider to be the most promising, their advantages and problems. But for now, let’s focus on Bitcoin. Not because of price, but due to adoption: no other cryptocurrency has as many users, developers and infrastructure support. Maybe Ethereum, which is closing in, but still Bitcoin is the most widely spread cryptocurrency and the base layer for the entire market.
Today I will be discussing ways bitcoin is being improved and infrastructure changes happening in the near future, that can potentially help by lowering fees, by improving ease-of-use, by creating off-chain payments solutions or simply by adding more transactions to each block. There are ways of implementing each solution separately, but some core technology must be widely adopted, like Segregated Witnessing (SegWit).
There will be three main topics I will approach today: batching, schnorr signatures and atomic swaps. I’ve been discussing the Lightning Network too much and I want to check different potential solutions, less prone to centralization.
Speaking of the devil, that’s definitely one of the features I believe we should be trying to avoid. Bitcoin’s purpose is to be fully decentralized, so any action, update or improvement that won’t go in that direction should be disregarded.
Ready for what’s coming?
Although this is obvious for techies, it doesn’t mean it’s an easy solution to implement on a massive scale.
First we need to understand how bitcoin works.
Each transaction is based on one input and multiple outputs. Meaning, with a single transaction you can transfer money to multiple people, for example.
What’s really interesting is how data flows in the blockchain and what we can do with that information. Let’s say I create a transaction which weight is equal to 40 bytes and that said transaction only contains one input and one output. With batching you can aggregate transactions and literally save up space, so when I add an extra output, instead of the total weight of the transaction = 80 bytes (doubling down), it only adds, for example, 20 bytes more.
This means that instead of creating single transactions, you can do one with a series of different outputs. Plus, each additional output does not double down the total transaction weight, meaning there’s economies of scale at play.
These are very good news, as this feature can also be a way to help improving scaling. It won’t increase the number of transactions, but allows for a higher number of outputs per input.
This is what batching is: aggregating many different transactions into a single transaction, by adding multiple outputs per input.
Would you like a more visual representation of the savings?
As you can see the number of bytes significantly reduces each time another payment (output) is added in a single transaction (for each input).
It’s really cool if you’re a business or someone who makes recurring transfers, like sending money abroad.
With batching there’s considerably more space in the block for more transactions with more outputs. Exchanges do this, of course; hopefully there will be tools available soon, so that single customers can easily select transaction outputs they would like to batch together on the same payment.
How can this be used in real-life?
Imagine you have a company and you do cryptocurrency payments.
Instead of doing 5 different transactions in order to pay salaries or suppliers, you could chose to batch all payments in the same transaction (input) and set 5 different outputs, which would allow you to pay way less fees and make the overall block smaller.
You already got it, right?
This is a very straightforward example, but it actually works pretty well. You still need to do it from a command terminal (I think), as there is no way to do it with most wallet apps or exchanges’ wallets (blockchain.info, coinbase, etc).
Still, learning how to do it might be worth the effort if you send money to many different addresses.
This subject might be a bit complex for the average non-technical reader and again, I’m not an expert. If you really want to get acquainted with the math behind it, check this video from a lead developer working on Schnorr Signatures. It’s still quite technical but, nevertheless, it’s the best explanation I’ve found so far.
I’ll try to make this introduction as simple as possible, so you don’t run away.
- What are Schnorr Signatures?
- How can Schnorr Signatures improve scalability?
Right, first things first;
This is the model you usually see to explain how transactions work, correct?
Bitcoin’s blockchain registers unspent transaction outputs; that’s all it does.
Read more at: CCN