Introduction

This essay tries to explain what is the underlying force which make any notable human achievement possible. Then apply this concept to what make a crypto currency possible in the first place.

Then I would like to start a discussion, given this framework, on what problem that need to be solving exactly in Bitcoin.

How to build a bridge

As any notable human achievement, Bitcoin is not built by one team or by one company. It is built by collaboration, this mean that each individual specializing in his own area of expertise and building on the top of what other individual did.

If you are an urban designer, who wish to improve traffic in your city, and you think building a bridge is the best solution to your problem, then you have the collaboration of several people, each one building on top of the work of another area.

Traffic is Urban Design problem. Bridge building is Architecture problem. Aero dynamic is Physic problem. Differential equations is Mathematic problem.

The bottom layer is Mathematic. Mathematicians build on top of other Mathematicians work. Mathematics is the most fundamental layer.

This does not necessarily mean this is the most complicated, just that if Mathematics is broken, then the bridge will just collapse.

On the reverse, if the bridge collapse, it does not necessarily mean the Mathematics is broken. Maybe it is just a mistake at Architecture level or Physic level?

If the problem was at the physic level, then you learned something and by communicating the mistakes with other physicians, you can know if the mistake was your own incomprehension or a flaw in the theory. If it is a flaw in the theory, then humanity knownledge just progressed a bit more.

The most fundamental is the layer, the least likely you will find an issue with it. The reason is that so many things is built on top of it, so many building and bridges collapsed, causing so much revision to physic theory, that you will have harder time finding an issue at this layer than on the top one. In software development terminology, humanity adopt a Bug driven approach to acquire knowledge.

It does not mean that everything is equal at the same layer. Novel mathematics is more fragile than mathematic that has been proven working in the wild. The bridge is as fragile as the weakest layer between Architecture, Physic and Mathematic.

It is unlikely you will find a problem in differential equations as so many things use it. (You also use it for building plane after all)

This does not mean you can’t find an issue here though.

Some people knows about several layer at once. But as human knowledge expand, individual tends more and more to specialize in a single layer, or even a single division in the layer.

How to build a crypto currency

Crypto currency is not different from bridge building, it just involves different layers.

On my side, I am a Software developer. This is where I shine. I can create things that can be understood and reused by other developers. I create abstractions so you don’t have to understand Computer Science to build your Service.

Now if you are a service, and your business is failing. The problem can be in one of the four layers.

Maybe your service took bad assumptions about what the customers wanted.

Maybe, as a developer, I did a bad job at making it easy for your to build your service on top of Bitcoin, and you leaked your private keys (Reused K value).

Maybe, on the computer science aspect, a malicious miner is making blocks which take too much resource to validate ( O(n2) signature hash calculation problem), making Bitcoin unable to move forward.

Maybe, Elliptic curve is broken, as it is possible to find the discrete logarithm of your curve.

Clearly, in Bitcoin, some services are failing else they would not take action. The current dispute is on which layer is the failure.

Clearly, Elliptic curves are not broken.

But before knowing on which layer is the problem, I would like to understand what is the failure that services are experiencing?

What is broken?

Clearly, for an exchange, having constant high fees should not be a problem. The money they are making is on margin of off-chain trading. Does high cost on-chain payment limit their bottom line generated by their off-chain payment? Unlikely, this cost is only taken by the customer at withdrawl and deposit time.

Does the complain is on the limited adoption caused by high fee?

Well, as we can see Bitcoin continue to grow. Also, most of the exchanges are trading other altcoins, altcoin trading attracts way more profit than any announcement of lower fees can do to Bitcoin.

Maybe it is on the customer supports being overheated? If so, the problem is a Software Development issue. Saying transactions take longer to confirm because the blockchain is congested is just wrong. It can always take more or less 10 minutes given the appropriate fees. Because of irregular spamming on Bitcoin, fees were not calculated correctly by most wallet. (Bitcoin Core included, which should be better in 0.15)

By thinking about it, there is only two services that I know which can really suffer from high fees.

The first is by Bitflyer. Bitflyer is the only japanese exchange on more than a dozen which signed NYA. Bitflyer did a huge partnership with Bic Camera in japan which is a chain of big retail store for electronic goods.

Thanks to Bitflyer, you can buy anything with your bitcoin wallet at Bic Camera. (I bought my PS4 and way more thanks to them)

Indeed, high fees make people use less their services. Or only for bigger purchases.

The other case, is Shapeshift (never used, so correct me if wrong) which also use exclusively on chain transactions.

If that is the case, Shapeshift is definitively loosing market share to Poloniex, Bittrex and other off chain altcoin exchanges.

While I think Shapeshift business model is completely broken as it requires trust even for on-chain trades, which is the worst of both world.

A trustless cross chain swap way of doing their business would at least fix their business model, and move the issue on the lower layers. (will create such tool myself soon)

I think that Bitflyer use case is just great though. One could argue that they can use trusted off-chain mechanism instead, but I disagree: Because of regulatory hurdles, you can’t easily store Bitcoin on behalf of someone. Also, having to install another app for making payments would defeat the purpose of Bitcoin: Bitcoin is the HTTP of Money, a sort compatibility layer to communicate value. I think Bitpay is in a similar situation.

In Bitflyer case, the only way to fix definitively the problem is to have a compatible way to exchange bitcoin which can scale. The Lightning Network, but this is being ready and adopted by the community!

For Bitflyer, the problem is at the Software Development layer. (hey this is me!)

A Developer between a rock and a hard place

As a Software Developer, I always feel between a rock and a hard place.

On one side, there is the Services layer guys who are pucking new buzzword faster than I can make technical due diligence on them.

On the other, there is the cryptographers who are writting new paper which are slower to get adopted than the speed of making it obsolete by another cryptographer.

There is the community which put significant pressures to get things done fast. While lower layers constantly arguing that something is not ready and need more work. Argh…

In the case of Bitflyer use case, the problem is definitively at the Software Development layer. And I understand completely that Bitflyer would like a temporary size bump for your case, then waiting segwit to be more widespread in wallet, and lightning network ready.

But as some of you know, Bitcoin should be resistant to human whims. Having a minority of the community trying to force a rebrand for the purpose of some specific use case will just fail, while hurting confidence, it is not worth the consequences.

I think a good middle ground on the short term would be working on payment hub (A working standard + wallet), with segwit such technology is not very difficult to build and would solve Bitflyer like use case.

Conclusion

I hoped bringing my input as a Software Developer, which I think other developers can relate to.

While many of NYA signers are just angry men, some are broken business model, but there is some services like Bitflyer, who have valid use case which is growing fast.

Bitcoin Core is working on the right thing, Segwit and Signature aggregation will significantly lower the charge. But as I explained, many bridges and building have fallen before making Physic solid enough. However, I would like to Bitcoin to never fall, and so we can’t just “test in production” the computer science layer. Which is why Core takes time. (The battle in the community did not helped)

On the Software Development part (payment hub), I think there is more short/middle term experimentation that can be done.

I think this is the bottleneck today.

My hands are now full for a while, but I am hopeful: there is huge traction of .NET Developers on Bitcoin, and .NET developers are the best Software Developers I met. So I think awesome Software Developer layer tools will be developed in the near future which all services will be able to profit from.

I must admit that Stratis community did a lot for that, as I see lot’s of developer contributing around Breeze, and learning about Bitcoin. This was my goal when I created NBitcoin and when I wrote my book. I sincerely was not expecting an altcoin community and product would help Bitcoin so much.

For Services with valid use cases, I will only say: Please be a bit more patient, a developer can only code with two hands and one brain!