Author Archives: menirosenfeld

e, π and the Exponential Function

Throughout mathematics and its applications, we often encounter the numbers e and π. But what do they actually mean, what makes them so prevalent, and how are they related?

Both numbers are deeply intertwined with the exponential function, denoted exp, which can be described simply as “the function which is its own derivative”.

(Or, in slightly less simple but more accurate terms – exp is the only function f:\mathbb{R}\to\mathbb{R} which is differentiable everywhere and satisfies f'(x)=f(x) for every x\in\mathbb{R}, and f(0)=1. You can also use \mathbb{C} instead of \mathbb{R}).

Another way to say this, is that exp is a solution to the simple differential equation y'=y. As such, it is a building block for solutions to differential equations of all kinds.

Differential equations describe how the change in some quantity relates to the quantity itself. They describe how the universe works at all levels – from the most microscopic and fundamental, such as

  • Electromagnetism (Maxwell’s equations),
  • Gravity (Einstein’s field equations),
  • Quantum mechanics (Schrödinger equation),

to the macrosopic –

  • The motion of springs, pendulums, projectiles and planets,
  • Waves – be it sea waves, sound waves or radio waves,
  • Electronic circuits,
  • Radioactive decay,
  • Structural integrity of buildings,
  • Rockets and space launches,
  • The growth of populations, be it humans, animals, bacteria in a petri dish, viruses in a human host, or people sick with COVID-19,
  • Financial dynamics, like money in a bank account, stock prices, the revenues of a company, or the exchange rate of currencies such as Bitcoin,
  • Adoption of new technologies,
  • Social phenomena, like memes and viral videos,
  • And much more – including purely abstract mathematical concepts which have no direct ties to phenomena in the physical universe.

So it is no surprise that the function which is the building block for solving differential equations comes up very often. In fact, some dub it “the most important function in mathematics”.

Because the function is so important, we want to know more about it. One question of interest is – what is the value of \exp(1)? This is useful, because one of the properties of exp (which we can prove using the definition we started with) is that \exp(x+y)=\exp(x)\exp(y). Using this, we can show that \exp(n)=\exp(1)^n for every integer n (where taking a power is a simple repeated multiplication). In other words, knowing the value of the function at 1 allows us to find its value for every integer. So we give the value of \exp(1) a name. The name we choose is e.

That’s what e is – the value of the exponential function at 1. The importance of e can be understood by understanding the importance of the exponential function, which itself can be understood by understanding the importance of differential equations. That understanding can come from some experience with their applications; the examples I gave above might help.

In fact, if we extend a bit the definition of taking a power, we will find that for every real number x, we have \exp(x) = e^x, not just for integer x. This is why the exponential function is often written e^x instead of \exp(x).

The exponential function is also where π comes from. If we look at it as a complex function, we find that it is periodic – there is a specific number p\in\mathbb{C} such that for every z\in\mathbb{C}, we have \exp(z+p)=\exp(z) (which is the smallest with this property). This number happens to be purely imaginary, so if we divide it by 2i, we get a real number. This real number is what we call π.

This way of looking at π – as the period of the most important function in mathematics (divided by 2i) – is much more fundamental, and better explains why π comes up so often, than definitions based on the girth of arbitrary geometric shapes we might scribble.

The Blind Men and the Elephant. [the BIG picture] | by Sophia Tepe ...

It’s also noteworthy that the exponential function is reminiscent of the blind men and the elephant. It behaves differently and seems to be a different thing if we look at it from different perspectives. If we look at the positive real axis, it is rapidly growing. On the negative real axis, it is rapidly shrinking. On the imaginary axis it is neither growing nor shrinking – it is periodic, repeating the same values in a cycle.

Which nature of the exponential function comes to light, depends on the specific differential equation we use it to solve. That’s why some of the applications I mentioned exhibit growth or decay, and some exhibit rotation and cycles.

In fact, the well-known periodic functions sin and cos can be seen as projections of what the exponential function does along the imaginary axis.

We’ve defined e as the value of the function at 1 – a real number, and we’ve defined π using the period of the function along the imaginary numbers. It should come as no surprise, then, that e often comes up in applications dealing with growth and decay, and π often comes up in applications dealing with cycles and circularity. They are two sides of the same coin.

There Is a Satoshi of Truth in Every Joke

(Originally posted in Bitcoin Magazine)

This rather long meme, which has been circulating lately, makes fun of the views of Bitcoin supporters by listing commonly made statements and contrasting them with contradicting statements or developments.

This was obviously intended for humorous purposes, and as such, I should probably not take it too seriously.

But as the titular proverb goes, there is a grain of truth in every joke, and the existence of this image sheds light on what some people think. I found here an instructive opportunity to dissect the arguments and share my thoughts on them.

“Peer-to-peer electronic cash” vs. “Pushing people to spend is a scam”

The former is in the title of Bitcoin’s white paper; the latter appeared in a presentation by Giacomo Zucco.

This a contentious issue in the Bitcoin community. I am of the opinion that spending Bitcoin is extremely important and should be encouraged. Others think it is unnecessary — or worse.

So in a way, I kind of agree with the image creator here.

However, one argument in favor of the latter statement is that the key word is not “spend” but rather “pushing.” Even if spending Bitcoin is great, people should be free to do whatever they want, and pushing people to do anything could be frowned upon.

“In BTC bugs like this ‘never’ make it to production” vs. “CVE-2018-17144 is the biggest bug to date”

Never say never. Where there’s smoke there’s fire, and where there’s code there are bugs. It should be obvious that anyone who said that critical bugs can never make it to production in Bitcoin was overly enthusiastic.

The only thing we can do is have a rigorous development and testing process that seeks to minimize the occurrence of critical bugs and to deal with such bugs effectively once they are discovered.

The fact that we haven’t had a bug like this in the past five or eight or 10 years (opinions vary) speaks volumes about the effectiveness of this effort.

To drive the point further: The worst bug in the past eight years is one that was fixed before it managed to have any effect at all. This can be seen as a positive sign, and I wish all bugs were as benign.

This argument should not be seen as belittling the severity of CVE-2018-17144. It was very severe: It shouldn’t have happened, the fact that it happened is a failure of the process, it undermines Bitcoin’s path to mainstream adoption, and we should study how it happened and make changes to hopefully prevent bugs as severe from recurring in the future.

“Users have to be free to run the version they want” vs. “Upgrading to 0.16.3 is required”

I think the former statement is inaccurate. The correct statement, of course, is that users can run any version that is compliant with the protocol consensus rules. 0.16.2 is not compliant with the protocol, and thus nobody should run it.

It doesn’t have to be 0.16.3, though. 0.15.2 and 0.14.3 are also compliant, as are versions of separate implementations.

“SegWit is optional, that’s why we made it a soft fork” vs. “Upgrading to 0.16.3 is required”

I think the former statement mixes up a few notions.

Usage of SegWit transactions is optional. Someone who doesn’t want to use this new feature can continue using Bitcoin just as she has so far. This is in contrast to changes that could modify or invalidate existing usage practices.

Compliance with the protocol rules that make up SegWit is not really optional. They are part of the consensus rules, and all nodes should be compliant. The fact that it’s a soft fork doesn’t change that.

What using a soft fork enables is graceful degradation. Using a non-SegWit node is far from ideal, but it does not cause the node to be immediately booted from the network. It can still understand most of what is going on in the network; in particular, those parts that are relevant to it (assuming it uses neither SegWit nor anyone-can-spend opcodes that were commandeered for SegWit).

This does not mean it makes sense for anyone to purposefully handicap themselves and use a version that specifically does not understand the entirety of the consensus rules.

But if one insists … I guess he can also run pre-SegWit versions (or perhaps a new version that excises SegWit out), as long as they are not affected by CVE-2018-17144.

In addition, there is a big difference between forcing everyone to upgrade just because we want to add a new feature, and forcing everyone to upgrade because we have found a critical security bug.

And the kicker: If we do something like a hard fork, block-size increase, any non-upgraded node will be completely disconnected.

As for CVE-2018-17144: Even though the official requirement is to patch (and you should all do that!) if someone didn’t get the memo and is still running an unpatched version, he should still be fine, as long as he waits for confirmations and almost all other nodes on the network are patched.

“There’s no way to track the growth of LN (privacy!!!)” vs. “Lightning Network is growing strong”

The Lightning Network does have the potential to offer improved privacy over Bitcoin, but there are different levels of privacy. There is complete zero-knowledge where you don’t know anything about what’s going on, other than that it follows the protocol. You can have a system where you know the aggregate total of activity, but you can’t match it to individual transactions or people. You can have a pseudonymous system where you know of all transactions, but the identity of the people involved is obfuscated. And many other variations.

With the standard way of using Lightning, you can know the number of channels and total amount of funds locked in them, but not necessarily the volume of payments done on it. So you can know that it is growing even without knowing a lot about what is going on in it.

Future usage patterns might make tracking growth harder, but not necessarily impossible.

“You need to run your own full node to help secure the network” vs. “The network is safe since all the miners have upgraded”

The former statement is a somewhat contentious topic; but it is important to distinguish what running a node does fo you from what it does for the network.

Running a node helps keep you secure, by guaranteeing that when you receive bitcoins you actually receive bitcoins, and that those bitcoins comply with the protocol you agree with.

As for how it helps the network, I wouldn’t use the word “secure.” What it does is add redundancy to the data and improve connectivity, in order to make it easier for other nodes to access it.

There is also a distinction between systemic and personal risk. If you didn’t upgrade your own node, there is always the chance you will be fooled, but that is your own problem. But if an invalid transaction is being included in a block and accepted by major service providers, that is a risk to the integrity of the currency as a whole, which is much more severe.

Miners have a key role to play here, and, as long as a supermajority of miners are patched, the systemic risk is minimal.

“BTC is secure because it has the most accumulated hashrate” vs. “F*** those selfish egoist miners”

Miners are selfish and egoistic. And they should be. The system is based on an incentive mechanism that lets agents secure the network while seeking their own financial benefits. We should thank the miners for participating in this selfish way.

The only problem is when short-sighted greed causes some miners to act in a way that harms both themselves in the long run and also the network.

Anyway, one of the things that makes Bitcoin secure is indeed the large amounts of hashrate that (selfishly) rallies behind it.

“The ledger is immutable” vs. “In case of exploit the ledger would have been rolled back”

Here we get to the interesting part — which justifies a whole article on its own, so I’ll be brief here.

The meaning of “the ledger is immutable” is that:

  1. There are protocol rules that dictate which transactions are valid
  2. The protocol rules will not be changed just for the purpose of invalidating some particular transactions that people don’t like.

But that is not what is happening here. It’s not like someone stole a private key and used it to sign a transaction that is contrary to the wishes of the original owner but is still perfectly protocol compliant … and that we now wish to reverse it.

Instead, we found out that previous software versions failed at enforcing the protocol rules we all thought we were agreeing with. The default course of action (if there are indeed such invalid transactions) would be to simply run a patched version that enforces the rules more rigorously.

The problem is that such a move could basically invalidate all blocks since the first invalid transaction, which would be catastrophic. So it could be appropriate to tweak the consensus rules slightly to handle this move more gracefully.

The significant difference is that we are implementing a systemic protocol change to fix a systemic problem and not a systemic protocol change to fix an individual problem, as we’ve seen in some other cryptocurrencies.

“In Bitcoin code is law” vs. “Bitcoin is a social contract”

The latter statement is more correct.

There is a level in which code is indeed law. As long as everyone agrees on the protocol rules, what matters is the code that runs on every node on the network and mechanically enforces the rules; not any individual deciding which transactions to keep and which to throw away.

But who decides which code to run? Who decides the protocol rules? This is deferred to a higher authority: the social contract between people who use Bitcoin and give it value, known as the economic majority. Bitcoin is what people decide Bitcoin is.

“Bitcoin is valuable because of its network effect” vs. “Reducing total usage is a way to increase full node ratio”

The former statement is true, and we’ll be hard pressed to find anyone who disagrees. Currency is not something you can use by yourself; you can only use it if other people use it as well. So a strong network is necessary for Bitcoin to have value.

As for the latter, I have not previously heard of the concept “full node ratio,” and there is hardly anyone who advocates for “reducing total usage,” so I can’t really comment on that. Indeed, the two statements seem to be at odds, and it is the former which is more sensible.

And as for that guy at the end of the meme who is so stressed out by the decision he has to make …

There’s no need for stress or anxiety. As long as we remember what Bitcoin is, why it’s here, how it works and what the fundamental principles behind it are, we should be able to tackle any challenge that lies ahead.

A Flash of Insights on Lightning Network

I invented the Lightning Network.

Well, not really. But to the best of my knowledge, I was the first person to write a post describing something similar to how LN is conceived today.

I’m not saying this to take credit for its advent – it’s not like I really did anything. Others have invented the concept of micropayment channels on which my suggestion relied, and I only threw out some rough ideas; I didn’t present a full-fledged design, let alone wrote any code.

I’m saying this to emphasize the point that for some of us, that has always been the vision. One of the first burning questions I had when I was first introduced to Bitcoin was how the whole thing was supposed to scale. Concepts I’ve learned of since then – like SPV and pruning – helped, but I wasn’t completely satisfied. Ever since I heard about channels and thought about how they could be used in a network, that would become one of the first things I would reference whenever discussions of scalability came up.

The ability to use an on-chain transaction to anchor a channel, so that real bitcoins can be sent over it without having to bother the entire network or wait for confirmations for every payment – in such a way that the channel can always be closed unilaterally to recover the funds as normal bitcoins sitting in an address you control – is an idea so powerful that I can’t imagine how can anyone resist falling in love with it.

But the reason I am so excited about the development of LN is not that the vision I had is finally being brought to life.

Continue reading

Lunch is being served

I was at a conference yesterday. Estimates say that 1000 people attended. At 15:00 people have left the lecture halls and swarmed the lunch hall.

The rate at which food can be dispensed is finite, so people had to wait a long time in line to reach the coveted buffet. Those who decided to wait half an hour before going to eat (and struggle to find something to do in that time, seeing as everyone is eating), could get to the food without effort – but may have missed an opportunity to enjoy the entire variety the meal started with.

Likewise, when everyone is off the clock at the same time and drive home, they encounter traffic – but those who wait until 3 AM to hit the road, has the whole road to himself. This is the way of many aspects of life – if you try to do something at the same time many others are, you will run into overload.

Bitcoin is the conference, and lunch is being served. We are amidst a wave of interest in Bitcoin and its kin. This is not the first wave of its kind, but it is the biggest so far in absolute terms. Anyone who tries to go into the field at the same time as everyone else, sees that every system collapses under the load.

It begins with the Bitcoin network itself, where demand for transactions exceeds the available block space, and transaction fees go up.

Exchange services get hundreds of requests daily, and sometimes there are delays or missed messages.

Among the hosted wallets, those that are considered more reliable (such as Coinbase) are overloaded and struggle to handle support requests.

Other hosted wallets, which to begin with had been a scam, have decided that now is the time to pack their bags and vanish.

Public forums are overloaded, every thread is buried under many others within an hour, and there are more newbies asking questions than veterans who can answer them.

Physical community hubs are overloaded, and people who bother to arrive in person and consult, have to wait in line until an ambassador is free to assist them.

I, personally, am also overloaded with both messages and strategic activity, and one comes at the expense of the other.

When someone encounters a problem, it is hard to tell if she had unfortunately stumbled upon a scam, or whether it is a legitimate service that is experiencing load, or there is overload in the Bitcoin network, or that herself she erred in handling the wallet. And when she comes to ask and consult, she has trouble receiving answers.

Some people have lost money due to this whole mess.

Sad and doesn’t further a solution, but that is the situation today. For those who cannot accept that, I truly recommend to pass for the time being on buying Bitcoin (or Ether or ICO tokens or anything else). He can wait until the dust settles and things clear up, and one of two will happen – either the wave of interest will fade, and we go back to earlier demand levels which the systems can handle; or demand continues to grow, and over times the systems will upgrade to handle it – Segwit will be enabled, exchangers will hire more staff, and the community will muster more knowledgeable people who can support the newcomer.

If someone thinks that if he does not but bitcoins this very moment, he will miss the opportunity to get rich… Well, I can’t really tell him not to buy, and I do of course in favor of bitcoins being distributed among as many people as possible, and not concentrated in the hands of a few veterans. But he should know what he is going into, and not complain about anyone else but himself.

If you can’t take the heat, stay out of the kitchen.

Between two extremes, but not quite in the middle

If you’re reading this, you probably know that the Bitcoin community is amidst a civil war.

And you might also know that for almost 2 years, I’ve been advocating the position that if no agreement or compromise can be reached, the best course of action is to have a clean split of the network into two incompatible, competing currencies.

However, I also said that a compromise is the better outcome if at all possible. And I also said that for a split to work it must be done properly, and my fear that this will not be the case is growing.

Which is why I think we should give diplomacy another shot and pursue a genuine compromise, and why I urge people from both sides of the fence to be more receptive to it. And yes, compromise does mean giving up things that you hold dear.

I will not go into exact detail about what such a compromise could consist in. But overall, two key components will almost certainly have to be activation of Soft-Fork SegWit as soon as possible, together with a hard fork to increase the block size further (perhaps with a built-in growth schedule) without more delay than is necessary.

My own side in the debate is no secret – I believe that the best technical solution is to activate SegWit immediately, and figure out later whether we need a hard fork, and which.

But I support a compromise along the aforementioned general lines, for several reasons which I will explain.

Technical merit

I’ve said before that I didn’t really personally experience the dreaded datageddon that others reported, with slowly confirming transactions and prohibitive fees. Transactions still confirmed quickly and with relatively cheap fees. This made me question the need to rush the scaling solutions.

But time has passed and I’m sad to report this is no longer the case. Bitcoin has experienced another burst of explosive growth, and so did demand for space in the blockchain. I’ve observed firsthand that getting transactions confirmed within reasonable time requires fees upwards of a dollar. I don’t care too much about my own costs, but I’m beginning to feel embarrassed to praise the merits of Bitcoin as I have always done.

This leads to two conclusions: First, we need to resolve the situation, we can’t remain in the current situation indefinitely. If a compromise is what it takes to move forward, so be it.

Second, if previously I thought that SFSW is good enough for now – now I think that SFSW is probably sorta kinda good enough for now. If growth continues as it has so far, we’ll need a more aggressive blocksize increase sooner rather than later. So despite all the risks and disruptions, an expedited movement towards a hard fork starts to sound like not such a terrible idea.

The other technical issue is that I think we should be more open to the concept of a hard fork. When I got into Bitcoin I didn’t sign up to the idea that a hard fork would occur only whenever a mule foals. There are many much-needed upgrades to the protocol which can only be done by way of a hard fork. If we can’t even change a well-understood parameter, it doesn’t inspire confidence that we’ll be able to handle the bigger changes ahead.

Conservativeness in forks is important, but there is such a thing as too much conservatism, and we might be approaching that point. Which is why, again, expediting the hardfork schedule might not be such a bad idea.

For people, by people

More important than the technical reasons why a compromise is palatable, are the social reasons why we need it.

I don’t see Bitcoin as a piece of art, an engineering wonder that I can put on display and marvel at its technical correctness. It is a tool created by people with the goal of benefiting people. If it fails at this purpose, it should be fixed.

And right now Bitcoin is stuck, and what’s important is to unstick it, not to pat ourselves on the back for how rigorous our technical development methodology is.

Furthermore, Bitcoin is not as robust as some people might think – it is always at the risk of attack by a determined attacker of means. Its security is based on a combination of its own technical defense mechanisms, together with making sure it has as few enemies as possible. Bitcoin has enough enemies from without to worry about. It doesn’t need infighting and the threat of some segments of the Bitcoin community attacking others, which may well be the case if we go for the more militant methods of resolving the conflict. Bitcoin is strongest when all its proponents are allied, and this is what a compromise aspires to achieve.

But the issue goes much deeper than that.

The debate, it seems, becomes more and more divisive every passing day. People who express disagreement are labeled as sellouts or traitors to the Bitcoin cause. Demonization, personal attacks and mudslinging are rampant. People have picked sides. Propaganda has succeeded. It’s sad and doesn’t further a solution.

It is becoming clear that people have firmly tethered their identity to their side on the debate. And this is bad news. As Paul Graham eloquently explains, you can’t have a rational, civil debate when people’s identities are on the line. People adopt new ideas and resist others not for their underlying merit, but for which side the idea is associated with. This can quickly escalate (and in our case, already has), as people become more and more entrenched in their position, and the more vile a person is perceived just for expressing a dissenting position.

I miss the times when all Bitcoiners were on the same boat. When we could discuss technical topics based on their technical merits. When you could express an opinion without being painted as belonging to one camp or another, or having your opinion ignored just because you are already perceived as belonging to the wrong camp. When ideas were just ideas, not “the ideas of this side” and “the ideas of that side”.

But despite our sad state of affairs, I hope that we can reach a compromise. That we will each make sacrifices and rally behind the same banner. If we can do that… Then I hope it will take us back to those better times. That it will diffuse all the tension that has been built up over the years, and take the sting out of the debate. That we will be able to trust each other once more and spend our energies not on quarreling, but on moving forward and furthering solutions.

That, I believe, is a vision worth fighting for.

And God said, “Let there be a split!” and there was a split.

A year ago, I’ve written How I learned to stop worrying and love the fork, espousing my view that a split of Bitcoin into two networks is possible, and might even be good under the right circumstances and with proper preparations.

Half a year ago, I’ve followed up with I disapprove of Bitcoin splitting, but I’ll defend to the death its right to do it, which elaborated a bit and aimed to refute some misinformation.

I’ve been meaning to write another followup to address some questions that have been raised…

And then Ethereum Classic happened.

Continue reading

I disapprove of Bitcoin splitting, but I’ll defend to the death its right to do it

In a slideshow published by Brian Armstrong, CEO of Coinbase, he promotes the view that Bitcoin is currently undergoing a winner-takes-all elections, and that variety in Bitcoin protocols is akin to variety in web browsers.

I find this incorrect, misleading and destructive.

Unlike physical currencies, governed by the laws of nature, and centralized currencies, governed by the whims of their issuers, it’s not at all obvious what ultimately governs a decentralized digital currency such as Bitcoin. There’s the protocol and the code, of course, but those are mutable and thus adhere to a higher authority.

Continue reading

How I learned to stop worrying and love the fork

It’s hot in Israel in August, but not nearly as hot as the global debate surrounding the release of Bitcoin-XT and the contentious hard fork that would ensue if enough people adopt it. It seems that both proponents and opponents of Bitcoin-XT dread the possibility of the network splitting in two, and focus on making sure everyone switches to their side to prevent this from happening. Contrary to this post’s title, I don’t actually like the prospect of a fork; but I do claim that having two networks coexist side-by-side is a real possibility, that it is not the end of the world, and that we should spend more energy on preparing for this contingency.

Continue reading

How many hardware engineers does it take to develop an artificial general intelligence?

None. It’s a software problem.

At a recent wrap-up party of Harry Potter and the Methods of Rationality I attended on Pi day, I overheard a discussion about friendly artificial intelligence. I think several errors were made in that discussion, but unfortunately the suboptimal acoustic situation at the venue prevented me from offering my two satoshis. But I figured this would make for an interesting blog post, since if one person makes these mistakes, there must be more than one. (Incidentally, what HP:MoR, FAI and Bitcoin all have in common, is that I’ve heard about them from LessWrong.)

So far, humanity has had great success at building artificial specific intelligences. These are machines that can perform well in specific tasks which were once doable only with human intelligence. We have calculators that operate faster and more accurately than any human. We have chess programs that can easily beat the strongest human players. We even have cars that drive themselves more safely than humans.

What we don’t have is an artificial general intelligence (AGI) – a machine that has our ability to adapt to a very wide range of circumstances and solve practical problems in diverse fields. What will it take to create such a thing?

An argument I’ve heard says, that at our current technology level, we can build a machine with some specific level of intelligence (using, say, a generic state-of-the-art machine learning algorithm, such as a neural network). With hardware advances and Moore’s law, we will be able to build smarter machines, until one day, a computer will be as intelligent as a human. Past that point, it was said, computers with better hardware will become even smarter than humans, and gradually widen the gap.

Mankind has always been fascinated by the ability of birds to fly, and dreamed of gaining this ability itself. And people tried to proactively pursue this dream… By building feathered contraptions that resembled bird wings, attaching them to their bodies, and waving their arms vigorously.

That didn’t work.

People didn’t succeed in flying by building up muscle strength and flapping their arms more forcefully. They did it by understanding how flight works – the laws of physics, and aerodynamics in particular – and using this understanding to design a machine that can fly given our requirements and the tools available to us. These machines, of course, have only a superficial resemblance to birds.

Taking an algorithm which is crudely inspired by how brains are supposedly built, running it on increasingly faster hardware, and hoping that eventually general intelligence will emerge, is also not going to work. Instead, we need to understand how intelligence works, and use that to write software that will elicit intelligence from the technical capabilities of our computing hardware. Given the reliability and sheer processing power of modern digital computers, it is likely we will end up with a machine which is more intelligent than a human.

What’s next? The machine won’t wait around for Moore’s law to double its processing power and give it an edge in intelligence. Rather, it will use its superior intelligence to modify its own source code and create a better intelligence than we mere humans could create. The result will be even smarter and create an even better AI, and so on. The whole thing can explode rather quickly into absurd levels of intelligence.

What will this absurdly intelligent machine do? Another argument I’ve heard is that, since we wrote the code, it will only do what we told it.

It is a fundamental fact of theoretical computer science that, given an arbitrary program, there is no general way to tell if running this program will go on forever or stop at some point. Knowing whether a program stops or not is a pretty basic thing, so this already demonstrates the absurdity in thinking that knowing the code means knowing what the code does.

But we don’t need to go as far as these abstractions. Chess playing software were written by people, and these people have a good idea of the general way the program will go about finding the best moves. What they don’t know is what actual moves the program will play on the board. Indeed, chess programs often make moves no human would ever think of, because no human can do the trillions of calculations that the computer does.

But chess programs are just a specific intelligence. Once we build a program with general intelligence, we have no idea what specific course of action it will take. At first, we’ll have an idea about what the program does to reach a decision – but once the machine runs modified source code that it has written itself, we don’t even have that anymore.

It is generally assumed the AGI will be an “agent” – it will have a “target function”, a goal it wishes to achieve, and the software will be designed so that it always chooses the actions that best work toward this goal. We can try to construct the goal to be compatible with what we want, but “what we want” is incredibly complex and difficult to code; and the machine only cares about the goal we’ve written, not what we intended to write.

When we humans work towards our goals, we see fellow humans as our peers. When an AGI sees a human, it is more likely to see them as a collection of atoms that might be of more use to it in a different configuration. Avoiding the situation of a strong AI trampling humanity in pursuit of a naive target function that was coded into it, is exactly what the challenge of developing a Friendly artificial intelligence (FAI) is all about.

I’ve skipped over many details in this description, of course. But if you’re interested in learning more, you should stop listening to me – as I know nothing about this subject – and head over to https://intelligence.org/ (and if you ever decide to make a donation, they also accept Bitcoin).

What is real? And what is virtual?

The word “virtual” has several meanings. But the most obvious meaning people think of is “not real”. The uninformed often call Bitcoin a “virtual currency”, and contrast it with “real currency” such as the US dollar.

This is of course nonsensical. You could make stronger arguments for Bitcoin being real than for the US dollar. This is why Bitcoin should be more correctly referred to as a “digital currency”, emphasizing the fact that its existence consists in bits of digital information; or as a “cryptographic currency”, emphasizing that its operation is based on cryptography.

Similarly, the defining feature of the US dollar and its kin is that their issuing and usage is mandated by governments (regardless of whether an external body such as the Federal Reserve is charged with doing the actual issuing), and thus should be referred to as “government currency”. Alternatively, the terms “traditional currency” and “legacy currency” are slightly broader and emphasize that this is the kind of currency we have used so far. The term “fiat currency” is sometimes used to mean government currency, but personally I am not fond of that, as the literal meaning of the term is too broad.

A deeper understanding of the phrase “virtual currency” can be achieved only by contrasting it with something which is truly a virtual currency, such as World of Warcraft Gold. In the WoW game, virtual warriors are paying virtual gold to buy virtual swords with which to slay virtual dragons (or something like that. I’ve never actually played WoW).

None of this is real. Dragons of the kind featured in WoW have never existed in our physical universe. The WoW Gold does not correspond to any actual Au atoms. These are things that exist only in the virtual, simulated world.

The virtual dragons are encoded as bits, manifested as electrical and magnetic signals on computing devices somewhere. The bits are very real – they are configurations of actual electrons in our universe. But they are bits, not dragons.

Within the virtual world, the WoW gold is the ubiquitous currency used by the population, it is actual metal the people go out and mine, and it is not controlled by anyone. As such, the WoW gold is a virtual, physical, decentralized currency.

But just as the virtual dragons double as real bits, the WoW gold doubles as a real, digital, centralized currency.

The owners of this currency are the real players with user accounts that possess WoW Gold. And it has real value – real people offer real money (such as USD) to get WoW Gold, because they prefer to spend their real time playing WoW and slaying virtual dragons than farming virtual gold. And there are real sweatshops in China where real people work in real terrible conditions to play the game, earn WoW Gold, and sell it to aforementioned real players.

Of course, as a real digital currency, WoW Gold is centralized and is thus barely usable. It is completely controlled by Blizzard, hence is inefficient, and tricky to use because, AFAIK, its exchange for things of real value is an EULA violation. So WoW Gold is a bad real currency, whose saving grace is the extra semantics placed on it by the controlling company – which is entitlement to in-game virtual currency.

Since WoW Gold and its kin double as both digital currency and virtual currency, it is easy to see why people would get confused. But the contrast with Bitcoin becomes clear: It is digital, but it is not virtual. There is no virtual world in which Bitcoin is the currency. Rather, it is a currency used in our real world to pay for real products and services. It is digital and still fledgling, to be sure – but unlike WoW Gold, which is centralized and thus a bad currency, Bitcoin is decentralized and has all it takes to become a ubiquitous currency.

When in doubt, we should remember – that which vanishes is virtual, that which remains is real.