MaidSafe part III – Joining & anonymity

This is a large area of the network, partially covered  in a small post. I hope it makes sense. My intent is lots of posts and all small, I think it works better.

A lot of chat about, is the system really anonymous is based on tracking IP addresses etc. I was surprised recently when I heard that Tor/i2p exposed users ip address at compromised web sites. Not because there was a flaw, that happens, but because the source IP address was available at all.  I thought further and it made sense. There is a significant difference and this issue will always exist in those systems as they are currently designed.  This is not an anti Tor or i2p post in any way, but a foray into a different approach. I would love the TOR/i2p folks to be part of this journey, so poking a stick in their eyes is not an intent of mine.

A different approach

As we covered in earlier parts of this series, MaidSafe uses a secured DHT implementation, based on XOR networking.  This is hugely important, the DHT has the ability to hold information. Some of that is encrypted and secured (in our case all of it bar, public data and public keys).  So lets not dive too deeply in that for now. Keep in mind though this is not an encryption mechanism to traverse todays Internet (web services), its very different.

This is peoples data we are talking about, it is very important!

It may be a debate to some, but it should be restricted to pure logic where possible.

 Types of nodes on MaidSafe

There are two main node types for now (to keep it simple), a client and a vault. So lets recap

Client -> Unique and private ID that has no link to any public ID or name. This ID is used to GET and PUT data. It is not linked to a person or a name, it is a unique 512 bit id. Even owners will probably not know what it is.  A client does not perform routing tasks, that means it is like a passive producer/consumer of information.

Vault-> Unique and private ID that has no link to any public ID or name. This ID is used to store data. These ID’s are the routing infrastructure and what we all connect to, essentially.

Connection to network

Both node types join the network in fundamentally the same way. They read from either a locally cached list of previously known nodes, or they fall back to hard coded nodes in the source code. The nodes they list have IP:PORT and Public keys. The node will encrypt a message to one of these nodes requesting login (or connect).  The bootstrap node gathers this info and returns it to the joining node (encrypted).

The joining node then connects (encrypted) to the closest nodes as returned by the bootstrap node.

So there you have it, 100% encrypted communications from the very first message.  [note the node connects to multiple bootstrap nodes to confirm the answers match and a user can be emailed a connection list from a friend if they wish. This gets away from arguments about centralised root nodes etc, which is pretty silly, but folk do argue that point].

Operate on the network

As a client you will join / login (explained in a later post) as above and be connected. Many people ask, can a client store data (for the network) etc. or be part of routing and we say no. This seems harsh, but important.  I will explain.

A client connects to its close nodes (with an anonymous ID as explained) and then requests data etc. The request goes to the close nodes (who do know the IP:PORT)  and is then relayed across the network (with the IP:PORT stripped).  At the end or location where the data exists, it’s sent back to the anonymous ID. Each node sends this closer to the ID and the close nodes eventually deliver it.

So on the network there is no notion of IP:PORT for messages unless you are close to the node (XOR close).

So then people say, I will get close and then get the IP address. Well this is not simple, close to where? You cannot connect or ask for connection info to a client, it cannot answer, it is not part of routing.  Where is it located geographically for you to snoop on? Can you become a close node vault? That’s going to take a huge amount of work now. It will mean getting a vault ID close to the node. You do not choose your vault ID the network does and this is random across the address range. Even then you are not part of routing either until you have enough rank. This is not an easy feat at all, very likely millions of computers running correctly for a while with a random ID  and to potentially get close to a single node, which may change its ID anyway. A very hard task indeed. At the end of such an attack, who are you monitoring, you will have zero clue as any public name info is further encrypted inside the messages encrypted by the anonymous ID. We could get into reams and reams of what ifs here, I intentionally don’t as it makes the post too long and boring for most.  The system docs go into great detail and are continually updated for those answers.  TL;DR a targeted attack like this is not easy. Non targeted attacks are covered later in the consensus chain mechanism, this is a good precursor to that.

We could go further and create a random client ID every time, or even easier create a data-getter/putter id every time. I do not think it necessary, but very simple if required.  So you cannot see an IP address or tie a data ID to a person, so already it feels a bit secure. As every single message is encrypted, who cares if you compromise the routers etc. We don’t.

Vaults are persistent on the network and connect to more than just their close nodes, but each node decides to respond to a request for connection or not. It will only connect if the request looks good, i.e. improves the routing table. To put this in perspective after a node starts the first such accepted connection will be 1 in 1 million, after that its circa 1 in several million and increases quickly. What this means is that to improve a nodes routing table you will need a huge amount (100’s of millions) of connection requests and these have to be from valid well ranked nodes.

I hope this small post helps people put the network into perspective. The fact the IP address does not traverse the network is important. This is all down to the fact everything lives on a decentralised addressable network where all communications and exchanges of messages are encrypted by mechanism that ensure in transit encryption and end to end identification of every network hop.  If people ‘get’ that part then it makes this journey so much simpler, but also shows this path has not been trodden, so there is a huge amount to consider. A simplification is to say, this is a fully encrypted system that includes the data within it, as data is included there is no leak out to any third parties at any point (no server or machines that know or choose what they store).

So there you go another 6am post, I am off for a sleep now.

[edit fixed typo i2c/i2p too much arduino recently 🙂 Thanks  @anonymouscoin (Kristov Atlas)



Posted in complex systems, MaidSafe

Proof Of Storage (maidsafe part II), follow up video

This is a mini post to show how MaidSafe uses hashes to identify data after processing it in a way that’s invisible to end users. I hope it is at least a little bit useful. (note the use of encryption to obfuscate and later I may get into a debate about why we consider it only for obfuscation and creation of non repeating data). This is relevant to the previous post, where we describe hashes and their use for proof of retrievability and corruption free data.

How to make data safe?

Ok, to make this a shorter entry, I have embedded a video Shona in the office did for us to explain self encryption. It confuses many people, but it quite straightforward.

It should be noted, this process is a very small part of the “securing data” story. This will most likely secure data beyond any known decryption ability known today, but, and a big but!

 This is logical security, what I mean is where do you store the actual data? On Dropbox, Google, some other provider, on your hard drive etc. Well no!

None of these give what you want, physical security! Physical security (to me) means that nobody can know where your chunks of data are, so this means that this data has to be scattered to the 4 corners of the planet, on many machines, owned by many people, non of whom know what they hold or can disable or corrupt it in a way that affects the network copies of the data. It also means nobody can ban access, monitor or affect your relationship with your data in any form. This data is yours, it belongs to nobody else and there is no logical reason that anyone gets between you and your data, none whatsoever. This fundamental issue lies at the heart of MaidSafe and it’s design. It is not something people ask for, most likely because they do not realise it is possible.  It is possible, it works and its coming to everyone.

Why is it needed?

Well now we can start seeing the need for not only logically secure data, but also physical security. This about this for a minute, when in history of computing could we have private, physically secured data, accessible across the world? A mechanism where you can log in or access privately and without any third party get your private data securely. It is amazing, but never is the answer. You could argue, use truecrypt, backup tapes, copy to off-line and on-line backups etc.. All of which are hard, leak information about your actions at the very least and most importantly depend on great technical knowledge.

This is where you need an autonomous network geographically distributed and on peers that are monitored, not by humans, but by the network. This allows people to physically damage chunks, but the network spots that very quickly and creates a new copy and at the same time de-ranks your machine. Nothing to gain, except loss of safecoin earning now.  So vandals can happily vandalise, they can use their vandalism energy on that task, that’s fine.

Without an autonomous network this system of protection is only 50% of the job, only logical encryption, worse than that the upload and downloads are monitored in on-line cloud providers, so leak of security is certain. On disks and tapes, then a quick search will find info, if it ever was really secure to begin with.

The point it we need to secure data physically and logically, logical security on its own is at best a hassle.

In later parts of this series, when I get some time. I will explain again self authentication, the vital third part of the network after self encryption and an autonomous secure network. This is where your data maps are made available to you in a pretty fascinating structure. Next week though, I will continue the series on the network itself, that is a very large body of work with a lot of innovation (I believe).

Further details on self encryption can be found here

and of course the code is all on github


Posted in complex systems, MaidSafe

Proof Of Storage (maidsafe part II)

Sorry folks, another too fast an furious post, forgive mistakes and I will again update with any comments and improvements.

Proof of Storage != Proof Of Resource 

Proof of storage is an important part of proof of resource, but only a part of it. I will explain the whole proof of resource as this series continues. This part of the MaidSafe network should in fact be rather simple and make people wonder, why did we not see this before? So lets get to the problem quickly. 

“I think you hold some data, but I need to be sure you have it” (are you telling lies?). 

There are many grand schemes about for trying to achieve this very thing. It is considered a very hard problem and it is, well until you can see a solution then its a nothing problem.First we need to understand what a hash is, it sounds hard, but it is pretty straightforward. 

What is a hash?

In simple terms a hash is a fingerprint of some information. It is (like a human fingerprint) a certain size, or fixed length. so a SHA256 hash is 256bits long, a SHA512 hash is 512 bits long. Thats all that fixed length means. No matter how large or small the data we want the hash of is, the answer is always 256 or 512 in the above example. We use 512 bit hashes, so lets say no matter what we have, the answer is a 512 bit long fingerprint. That’s it really. Very simple.  N,B. As a human fingerprint does not contain the human, a digital fingerprint does not contain the data (weird maths arguments can start here for data less then hash length etc. but lets ignore that). 

So a hash is the digital version of a human fingerprint, but for data! It does not contain data, you cannot reverse a hash to get data, you cannot reverse a fingerprint to get a human. They are always the same length for any given hash type. 

An irreversible data fingerprint.

What is a secure hash?

This is a statement that throws people, they think, oh secure, it encrypts my data. It does not (read previous paragraph).  All that the security means is:

The more secure the algorithm, the less chance two pieces of data will share the same fingerprint (hash). [This is called a hash collision] 

It also means (and we use this) that for given random inputs the hash result will be evenly distributed across the whole address range. This means even a tiny change to data, will produce a wildly different hash result

“I think you hold some data, but I need to be sure you have it”

Right OK, back to the question.

Now we see, hash is a pretty simple to understand thing (its actually pretty simple code, which shows its beauty). In MaidSafe we already know that data is stored in an unusual manner (again simplicity). Each data element uses the hash (fingerprint) of its contents as the name. This means 

When you construct that piece of data in code, you hash the content and check the name is the same as that result.

This helps a little, but is not proof you have the data (we can prove that many ways, the simplest is to ask you for it 🙂 ). What MaidSafe does for many reasons is NOT to ask for the data, but instead we want you to prove you have it, more than that we want to prove you have the data and not a virus (a good reason not to ask for it). To achieve this we use a very simple process, called Integrity Check (code is here).

Integrity Check


Do not panic, this is just a reminder that there are nodes on the network (Data Managers) who knows some nodes that should hold data (PmidNodes) and these PmidNodes are managed by the nodes closest to them. You can sum this all up, by just stating, the network knows what data you should be holding

This proof in MaidSafe uses a mechanism similar to a zero knowledge proof. In this case the check should not require to know the content of any data to be checked, but must know the data is in fact held and held in a manner that is accurate. This means zero corruption or viruses…etc… can have affected the data. This is achieved with the following steps:

  1. A checking group (Data Managers) creates a random string
  2. This random string is sent, encrypted to all holders of the data
  3. The data holder takes this string and appends to the original data and hashes the result
  4. The result is collected at the checking group and compared
  5. If any node returns a different result then it is believed compromised and de-ranked

This mechanism triggers on Get requests and during account transfers etc. It is non deterministic and randomised by use by users. It is considered to be secure and uses zero knowledge, not to conceal content (as anyone can ask for any data), but to ensure any data with a contamination is not required to be transferred.

It is really this simple. 

An observation

There are two really important points to make here, and I cannot emphasise them enough

1: Hard things are only hard till you solve them, difficult is not always smart maths or amazing crypto babble, difficult means we cannot imagine the solution, we are trained not to and defeating all those years of conditioning is very hard. 

2: If a solution is complex then its very likely to not be an optimal solution in itself. If there are lots of conditions and checks in the solution, then I tend to not like it, at best it is a sticking plaster solution and will not last. The optimum solution will be simple in its own right, anyone should be able to understand it without too much effort (or its not optimal enough, arguably). 

This is actually what makes MaidSafe hard and complex looking.  Most of the solutions are very simple and start by requiring us to go down the sticking plaster approach, this is the part where folks say, thats amazing and complex, you must be smart, actually the opposite is likely the case. Then we remove that for a more simple algorithm that improves the solution, this is very hard, but the result should look as though it was easy all along (quandary? you bet).

This boils down to a situation where, you can explain a little part (as I am supposed to be doing here) and people say, oh yea thats rubbish cause look at this other problem, bet you have not thought of that (bet highly we have, not 100% but bet highly).  So explain the little parts and making them simple is OK, the complexity in MaidSafe is that it is a network of many of these little parts and they compliment each other. So to understand it you need to understand the little parts in isolation, then stitch them together. This is a difficult thing for people who want the answer now!

Further considerations 

This short text has touched on the issues that require solving and hopefully presented a simple, easy to understand solution to proof of storage. It is the part folk talk and pontificate about with elaborate schemes to solve. This shows the solution is in fact simple. It masks the actual issue though (as do all the expert opinions on this). What about mutating data, i.e. directories change when a file changes, thats not held as a hash, safecoin and transactions need a key that cannot be a hash of the data, so … there is a taster of the actual issue, when you solve this one. This is all for later in the series though, I hope you will see it’s just as simple, but all this is required info to get to that position.

Part 1 of this series is here.

Posted in complex systems, MaidSafe, Uncategorized

Shortest distance between two points is not always a straight line

This post is probably very brief and disingenuous for any mathematician out there, it is aimed at as many people as possible and I hope it comes across in an easy to understand way. We will see I suppose 🙂

I find myself explaining MaidSafe many times to many people and try to do so in  a language and counting system they will understand. I ‘get it’ that people want this, so do I, but to understand MaidSafe it’s really not possible to think in our comfortable world of linear number lines and counting. The term used to describe what I am talking about is ‘non euclidean maths’. I dislike that a lot as its like calculus or similar, a term to scare people off. This is not necessary as it is way simpler than a confusing term.  It is also way more simple if you immerse yourself in this type of maths, many people will not and never understand you, but it leads to many hours of quiet solitude and relaxation as a whole new world of possibilities opens up in front of you. I find that you can lose yourself in such counting systems, a bit like the Gauss clock counting base number systems, it’s very unusual and interesting. Not at all clever, but very different.

Down to business 

MaidSafe is based on an XOR network at is root. This is not really the crux of what makes it different, but it seems to be what people focus on (“what if my computer goes off?”, “I can Sybil attack this easily!” etc.). I figured it was time to try and explain this as understanding issues like mutating data such as safecoin etc. are impossible without understanding this way of thinking.

So here is how we think.

0--1--2--3--4--5--6--7 (real number line)

And here is XOR


So what?

Immediately we will look and run our eyes along the bottom and think it’s our comfortable world again. It is far from it, we will see why soon.

XOR opens up huge possibilities and many unusual attributes (and I hope I do not sound like I am using a weird maths unintelligible language that makes people think this is clever, it is very easy, honestly).  Many smarty pants people will tell you this is all irrelevant, but just think for a minute and realise you have moved on a level, understood a little more than the real number system. So lets looks at some different properties of this system:

1: Distance is not based on the normal number system, i.e. the distance from 4->3 is 7, but the distance from 2->3 is 1 (get a scientific calculator with xor in it and try).

2: Each node has a unique distance from every other number bar 1. (i.e. the distance from you to another is symmetric, but you share no distance from you to any other specific node with that partner, plus every other node is such a partner).

3: There is no straight line distance from any node to any other node (like points on a sphere, but no calculus, don’t worry)

4: Every number on this line sees a different network from any other number, so to see the network from a numbers point of view you need to become that number (after all its distances are unique to it, remember!).

These additional comments can also be made, feel free to ignore these though as they are a bit more confusing (sorry, but some may find them useful)

a: Distance from any node to any other is almost the same as the height you need to climb the tree, you can verify by actually XORing the numbers if you wish (I do to check). Be aware though the last bit of the address is important, you are closer to the address ending in your last bit than the opposite of the last bit. I check the side of the tree in the last position, so if you are on the left you are closer to the node also on the left (if you look closely at the diagram you will see this) than the one on the right.

b: The other (maths) way to measure distance is to evaluate the most common leading bits of any number. (again you need to consider the last bit as if your address ends in a 0 you are closer to it than the address that ends in a 1)

 A bit more interesting

Another thing we do as humans is revert immediately to straight line thinking, but additionally we also assume a fully populated network or tree as we picture above. If you stay in dream world a little longer and think what a sparse tree would look like then its eye opening.

1 - - - - 6 - - -- -- 9-10-11-12-13------21----

So in the above tree we can see that its sparse, i.e. full of holes where nodes could be. This makes it more clear that if we know each node has a unique distance (to it) from every other node then it gets interesting. To make this clear, from any node all distances to every other node are unique, but the distance to any node is symmetrical, i.e. dist(A->B) == dist(B->A) but this distance will be unique to A and B, neither of them will share that distance with any other node on the network. There is a strange (sometimes called triangle property)  property as well so [N:B ⊕ means XOR]  ((AB)C)(A(BC)) which basically means that if you XOR something with something you will get an answer. If you XOR the answer with any of the two inputs you get the other input as a result.

so  4⊕5 == 1 so 1 is the answer. If we then do 5⊕1 we get 4, or if we do 4⊕1 we would get 5. So this is a handy thing we use to obfuscate information at times.  If the 5 is your info and 4 is a completely random number only you know and use once then you have a very powerful secrecy mechanism (if the 4 is the same length or larger than the 5 you have ‘perfect secrecy‘). On that note readers should take a look at self encryption for fun. Anyway I digress. 

So XOR has some pretty strange peculiarities when you first come across it. We have listed only a few here, to whet your appetite to know more, but its this tricky and somewhat hidden set of attributes that has people looking at an XOR network and saying, “oh that’s obvious” etc. I thought so too and especially when I first came across Kademlia. That paper is very tricky, I read it and thought, simple enough let’s do this, then it became clear there was much more to this than met the eye. After digging it was also clear there were deficiencies in kadmelia networks that would be very hard to overcome.  So on we go with our excursion into non linear counting methods and some really cool side effects.  There is more info on some of these kademlia deficiencies (well from our perspective, for public only data its way good enough)  here.

OK What about closeness

This concept takes the XOR thinking and expands on that a bit more, again with surprising side effects that do not seem to be noticed easily. In MaidSafe the notion of closeness is used to evaluate a nodes capability to make a decision on an action depending on the action type, data ID and some other parts (too much for this post, you can read about it here though). In other words closeness is important. So if we can assume a secured mechanism in place for address creation and maintenance (there is and its called PKI) then we can look further, normally you need to argue for days to get to this point if you are discussing MaidSafe so this is great progress.

If we imagine a close group is size 4 for now then look at this network

1 2 - 4 - - - 8 9 10 11

We can calculate the close groups, these are

for node 1 – 2, 4 & 8

for node 8 – 9,10,11

Hold on!

If we ask node 1 then node 8 is close to it, but if we ask node 8 then 1 is nowhere to be seen! We know that dist(1->8) == 9 and conversely the dist(8->1) is 9.

Wait! now look at what happens when a node appears.

1 2 - 4 - - 7 8 9 10 11

Now look again at the groups (and remember to stay away from linear thinking)

node 1 -2.4,7

node 8 -9,10,11 (not 7?)

now look at node 7 (4,2,1) its miles away from 8! (15 away actually), stay away from the dark side of linear counting at all times with this stuff, there be dragons 🙂

[Edit from our own Mark Hughes, a clean example (thanks Mark @markhughes)

 Here are binary representations of the digits 7 to 11:
     7        8       9      10     11
0111 1000 1001 1010 1011

To get the distance between 8 and each of the others, we XOR the number with 1000 (binary 8), remember we have to become 8 to see the distances form it.

0111 (binary 7) XORed with 1000 (binary 8) is 1111 (binary 15, quite a large distance).
1011 (binary 11) XORed with 1000 is 0011 (binary 3, which is smaller than 15, and so eleven is closer to eight in XOR space than seven.


So there is a simple example and description of closeness, it is uni-directional or asymmetric and distance is bi-directional or symmetric.

A network of networks

First thing in MaidSafe to realise is that the address space is huge (2^512) in fact its way larger than all the atoms in the visible universe.  The distances between nodes will be numbers so large they have no names. So these distances are vast, it makes little difference though. This ensures we do not run out of addresses and data locations to store (although in MaidSafe these are typed, i.e. we can have a node at position 001 and a data element of type 1 say at position 001, so not happy with this huge number we have gone a bit mad (or so it seems)) This basically means that we have multiple types in the same space, so message type1 has a 2^512 network, message type 2 has another 2^512 network etc. This can be thought of as each message / data type has its own network.

At this point it is easy to spot that every node sees a different distance from other nodes. We have kinda proved that above. Now this starts to hurt a wee bit, its like everyone sees their own rainbow, no two people ever see that same one (think, think). So from any node the network looks different. We also know that to measure distance from a node to another (especially closeness) we need to become that node. It’s not possible to do otherwise, in MaidSafe this means getting as many nodes around that point as we can (16) and then sort that list of nodes from the address we are interested in. Then we can tell which nodes are the closest. So we do not become that node per se, but we do look at the network from that nodes perspective, told you it was gonna hurt.

Right, so now we see we have a network of networks. Some still at this point will say “so what”, ignore them and continue.

 The large interconnected Venn diagram appears


In the above diagram imagine A B and C are nodes. They are looking after an address in common. C shares a small part of the responsibility for this common data, as does A and B. If we imagine another bit of data A is responsible for you can see from the diagram that C or B may not even see that data. This shows that you cannot look at a group and work out what they are responsible for.  You must become each data element and look at what group is responsible for that element. Again the take away is close groups are different close groups depending on the data element in consideration. The network of networks is not restricted to nodes, bit to every single data element within that network. It is very unlikely two data elements will share the same close group. This makes attacks in groups of data more difficult. If you also consider the network alters continually with nodes going on and off you will see why this is not a problem for MaidSafe, its a huge security feature. The target is moving now, so a piece of data has different protectors with each churn event.  So it is not how we handle machines going on an off, we welcome it as it provides a layer of security that is not obvious. We will make great use of this as this series moves on to show where the security of consensus chains becomes inordinately capable in such an environment.

I am not good at maths, or in a traditional sense anyway. I see shapes and sort of dream myself into the problem, in this case the network and poke around it in my head, even while sleeping. It’s hard to do (for me anyway) and you almost get into a trance to really focus your mind on this.  So I think Kademlia is like a semi organised collection of random nodes, this is indicated by the fact emule used to have 30% duplicate addresses and you cannot be sure you are close to data or addresses, you just search until you find stuff. It’s not good enough, we need more accuracy.

So we take our network of networks, our large Venn diagram and make a big change. We connect all nodes to the 16 closest nodes they know off, add in some more for uni directional interest and make the rest random across the address range (should be equally spaced in a perfect system, but it will not be). Now these nodes have great knowledge of each other and can spot when one changes, very quickly. The random part actually takes the shape of a kademlia routing table and each node monitors addresses to try to improve this table. This allows logarithmic search or in layman’s terms massively reduces the number of hops to a target.

When a node goes off or comes on the network it will affect its circle of closeness to it. It will also appear at a point in the network that means it should be doing something and looking after some small state (state is distributed evenly across all nodes). As no node has the same distances from any other node, then the state each node holds will be different from its peers. It will share some info, but its list will be unique. Each item will be on at least the number we have chosen as close groups (4 in our case).

So a node going off will affect the close part to it. The whole network is reconfigured without any other node far away knowing it is until they look. No node can look everywhere so the equilibrium of control establishes extremely fast. No need to transmit messages all over the place to let others know what’s happening, they do not need to know and can do nothing about it anyway.

I hope this very brief foray will be helpful, it’s a bit of a head dump, so may contain some info that could be better, it will be too simple for some. My intent is that anyone can read this and begin to understand the journey I hope to take this blog series down over the next few weeks. This will explain consensus chains and mechanisms and then on to how to think about decentralised control and applications in a way that I cannot see has been done before. I do hope it helps. I hope at least people can look at this fundamental part of project SAFE and realise there is nothing out there like it as far as I can see, it’s certainly wildly different from Tor/i2c/Freenet/Bittorrent etc., or at least I hope that’s becoming more obvious now. This will be a long journey, but at the end I hope readers will be pleased at the differences this approach offers.

Tagged with: , ,
Posted in complex systems, MaidSafe

What is a vision?

This is more of a quick note than a full post. I hope it helps others who are trying to change this pale blue dot for the better! [watch this, it explains a lot and is very enlightening]

Recently as MaidSafe has come out of the shadows it has been very interesting to watch from the sidelines. People seem to split into many camps

  • Don’t care
  • Not reading this
  • Not listening
  • Rubbish
  • Scammers
  • Canny happen
  • These folk are nuts
  • This is amazing
  • Wow cannot wait
  • Freedom at last

And so on. It’s an interesting thing to watch.

What vision

MaidSafe have had the same vision since day 1. Privacy Security and Freedom for all the worlds people. This is what is interesting. Practically nobody disputes this vision, many actually actively support it and see it as significant. Lets assume for the rest of this article this is true of most people. I cannot see anyone not wanting these foundations of a society anyway.

I believe I have noted three basic groups of people in the journey so far and more in number in the last few weeks. the ratio seems solid though. I shall try to describe what I have seen, not that I am trying to say that this is always the case or even a repeatable pattern. I do find it intriguing though. So I am noting it down.

The care later (maybe) group

Now lets look back at the list. It is actually very representative of what I have witnessed. So about 1/3 care about the vision, but cannot be bothered to hear about it or invest time looking at how it may be achieved. These people have different immediate goals and do not want bothered with more work to do.

I think these people have many reasons for this behaviour:

  • Too busy
  • Too tired
  • Too stressed
  • have very urgent issues to deal with
  • Do not see the problem

Who can blame these people for apparently not caring in your vision. Sounds like they have their own issues to work on and these issues at this time are more important.

You have a desire to change the world, give up everything and they do not care! Well they do care, but it’s not their time, that time is later on. These people are not your enemy, they are not opposed to your dream, they frankly do not care, but in the nicest way, they really do not care if you win or lose. Not yet anyway!

The no way team

The next 1/3 immediately shun the idea and to do that effectively. They simply state it has some fundamental flaw. This 1/3 are interesting. Some invest zero time and just throw out statements, often very hurtful and cutting. Some read headlines and presume total knowledge and some simply refuse to believe it. These people will inflict any pain they can to stop a change dead in its tracks. It becomes their duty and they will try very hard to do that.

These people also fall into various categories I think.

Lied to before

This group is understandably stand offish. Like a police officer who deals with crooks continually, they see every person as a threat. Every opportunity as a con. This group is actually OK and a few messages back and forth and they start to wonder, what if? As long as you are honest, true and really believe in your vision, these people can become supporters. It is not an easy thing to speak with these people, sort of like cuddling a porcupine really, but many times it will be worth it. They actually want this to be true, but have been bitten, possibly more than once.

They need to be persuaded you are honest and capable, that is all really and in all honesty it is not a big ask.

Protectors of the status quo

This is the group that will see a plane fly overhead and still deny flight is possible. This is a tough group. Many here may even revert to statements like, well even if the rest is true you have a silly name, how can we take that seriously. Occasionally they just shout scam or fraud and then put their fingers in their ears. This is the horse you take to water and it refuses to drink, it would prefer to die than admit to needing a drink.

All is not lost, I think this group just need to see they will not drown drinking from a pool. They need reassurance this will not be sore or somehow damage them. You need to guide them off the path, they will not go far so you need to show them quickly there are no dragons living in the bushes.

These people will take several hours to persuade that they should look further. It is a porcupine thing though, you will continually be jagged as they tense up and stick you repeatedly. So you need your Kevlar skin suite to deal with them.

Cannot leave the ego at the door

Well these people, I believe have given up on education, they have stopped learning and will take way too much time to persuade. They will not speak to you anyway, instead shout at you for their supporters to hear and applaud their genius (an immediate giveaway). These people will do everything to kill your project and idea off. In fact these people will show immense strength and tenacity to make you just go away and die. Yes they would like to see you disappear and never come back, no matter the price.

There is nothing you can do, these people will suck any energy from you and will give everything they have to fight change. The only way to win here is to be polite, fix obvious errors in any statement and move on, do not look back and never read the reply to your polite statements. It will honestly just suffocate you.

The kindred spirits

The last 1/3 are interesting though, many will not really know much detail, but want the change you have noticed so badly they jump right in. However, then something magical happens, they ask and they ask a lot. The more they find out the deeper they are involved and more convinced this is worthwhile. Many of these people, will just know this is special and become great friends. It is a humbling experience.

This is where your strength is actually challenged, not fighting the second group, but supporting this third group. You now not only have shared a vision, you have support and this support becomes the bedrock of your vision. Break this and it is all over.  This group though will amaze! After very polite hello’s and introductions this group will defend, not you, but the vision. They came here for this vision, not for you and that is great. The vision will be more important than you.

This third group now do something rather amazing, after a small amount of time, you are them and they are you. A transformation or metamorphosis occurs that changes everyone involved. The vision is still solid and arguably even more cemented in place. The legions of people who are willing it to happen, by moral support, encouragement, new ideas, questions and occasionally helping with the manufacturing process is now doing something you could not.  They are growing in all directions, new sites appear, people across the Internet start supporting and defending (dealing with the 2nd group) this vision. Everyone starts working out ways to me more involved  and turn a vision into a reality.

Who owns a vision?

This is a great question, it is like asking who owns a particular word, or who owned the wheel or even who owns your telephone or tv. The people who get involved believe in a vision, there may be people who pushed this vision and worked to make it happen, but they cannot own it. It is such a strange thing to ask when you think of it. So why then during the 90’s and on did companies all rush to come up with a vision statement, put it in a glass box and shove it on a wall? More importantly why did these companies not know what they were in business to achieve, or was their goal purely profit?

Herein lies the big difference. If you look at some of the successful large companies you will notice something particular about them. No matter what happens after they IPO as that’s another matter, they are then obliged to increase profit at all costs. Before that though, these large successful companies had a clear vision, to connect everyone, to index all the worlds data, to make computing available to all in a stunning package etc. The successful companies seemed to have a clear vision and the community wanted it to happen.

What is a vision?

This is pretty clear I think. A vision is noticing that we can advance a little as a society. People can imagine that if things were to be changed a little then we all would live better. The vision that is inclusive and fair gains momentum fastest. This is evolution, so a vision is merely a step in an evolutionary chain. Just as species will physically evolve to better work in its surroundings. A vision is important to allow us to evolve and make better use of our surroundings. That is all.

Why the 2nd group then?

This group is actually important in many ways. Any change that is dramatic, is likely not fully thought out and tested. This second group forces the vision to be tested and their opposition to it actually makes it stronger and more likely to succeed, if it is indeed an added value to society. Whether these people can see that or not, they are vital to big change, the tenacity and grim determination to kill something off, often makes it stronger. This is like a comprehensive set of tests on the network in our case.

The wild accusations etc. are just fluff and easily seen by many as just noise. The deeper probing of this community can be a very effective tool, the key here is to not take it personally, even when it’s delivered in an extremely personal way. Inwardly thank these people, but never to their face, that would drive them mental.

So this second group are vicious, dangerous and absolutely required. An interesting point.

Nature allows evolution, but does so very slowly. Many evolutionary steps in organisms is once every 20,000 generations, so not fast. The reason is that the surroundings need to also adapt to these change in a species. The surrounding species need to also evolve to become more efficient. Otherwise imbalance happens. This second group merely act as the brake and slow down change in many ways. This is perhaps why nature made us in this way, so we can all evolve together. Look at schools, they still teach primarily Newtonian physics and almost ignore quantum physics, even after 40 years. Change takes time, not matter how obvious it is.

What is the lesson?

The lesson is not one for the masses, it is one for you, the reader. Change is something we have inbuilt in our species, it drives many and we all take part in many ways. You need to embrace all the parties involved and realise that nobody owns a vision, nobody can. The more you share your vision and the quicker it becomes a vision of a movement who may not (if you are lucky) even know the name of the originator. If you have such a vision, then believe in that vision above all else, above profit, above ego and most of all above your own self. If anyone can help you achieve this then take that help, even if it is a competitor, after all did you not go after a vision!

An important point is that you can only hope to create the seed of change, it will take many iterations to get right. Look at anything, the first phone, bitcoin or the first car etc. many people will try to stop you by pointing out something that is not required now (like a fancy braking system for a Ford model T). Do not try to put ABS in your Model T, just make it drive first, remember evolution is a continual thing and you do not need to aim for perfection, although detractors will use lack of perfection as a reason your vision is flawed.

Who cares who cured smallpox, polio or who created the first wheel, we just care these got cured or discovered. All of your effort is to help the vision come true, if you believe it is yours or is personal you will lose immediately. If you truly believe  in the vision and what it will mean for everyone and remove yourself from ‘ownership’ then that vision will take on a strength that is just not possible to stop. You become part of a team to make this happen, you may even be thrown out the team, who knows. If you see the vision come to life and fulfill the promise, should you really care who did it? (I don’t)

Tagged with:
Posted in Personal Opinion, strategy

Surviving a crowd sale


From the outside, some people see, that lot just got $7Million for nothing. From the inside of the bubble life is very different. Lets go back a bit though. MaidSafe is an enormous proposition, replace all Internet services, redo the design from the network up to the person. Put individuals in complete control of their digital life. No small feat and extremely difficult to do correctly.  This took many years (8) and almost $5million on funding from mostly friends and family as well as local people who came to hear of us. This is a huge responsibility, if we fail it’s not just lost opportunity, it is lost friends and disappointed families, most importantly we believe the world loses an opportunity for freedom of it’s people.  A big difference from faceless money, this is support from people who care about us and the project. Of course some greed did slip in, not much, but enough to cause us delay and frustration at times.  Our investors though are amazing and have shown immense patience in a project we thought we could tackle in a year or two, eight years later we release it to the world. A huge step, some say brave, but entirely logical in any case.

Background to the sale

MaidSafe has a goal that is pretty huge, so large a select few investors we have would not talk of it. One of our largest investors told us repeatedly you cannot go and pick a fight with the big guys. I never said to much, but knew the whole time it was not about picking fights, we were just going to replace those services, every one of them. It was not about beating big guys, it is about privacy security and freedom for all, that’s it. A very small number of later investors would say, release some small utility and focus on that, i.e. wanting to jump off the bus and see where we were, perhaps even sell out to a large company for a few bucks and get a return. These things are very limited, but they exist and are a constant distraction for sure. It is understandable as many of our investors have been backing us for 8 years, interestingly those early investors, just support us, that all, they totally believe in us and watch us work non stop through the night.  MaidSafe need to prove to everyone that this was not a get rich quick buy for a £1 and sell for £2 scheme, this was a world changing event if we did it right. Returns follow value and this is my absolute belief, otherwise rob a bank, it’s faster and more likely to succeed.

So MaidSafe needed the masses to shout about change and demand we succeed. It demanded a following of early adopters who could see the goals and tell everyone that this could change their lives.  We needed smart backers and more importantly, much more importantly MaidSafe had to give up control of its digital assets to the world. Time to release the thing to the community and have legions of followers and supporters. The world was moving on and the need for project SAFE was overwhelming.

Go for it

In this brave new world where many have gathered we found great support. The Master Protocol seemed like the vehicle to issue a smart property, a bitcoin VC BitAngels also found us and were exceptional at offering advice and planning. So we set a date and moved towards that date with vigour. This allowed us to introduce the currency of the network that dated back to 2006 when the design was first envisaged. So this was not going to be a step forward, this was us leaping onto a world stage.

The conduit to the community for us was the developer mailing list and Google Hangouts. This list was full of supporters, ideas and exceptional honesty. A great place to work from. In the background we were finding out the Master Protocol was almost ready and they were working hard to meet our deadlines (software projects and deadlines, always include pressure).  The planning of the sale was unfolding in front of us as well.

Plan for it

We decided to set a price of 17,000 MaidSafeCoins per bitcoin. This was to say to everyone, we will take the risk of fluctuation and if BTC fell then we pay the price, if it increased during the sale we would benefit. Either way people could know exactly what they were getting. We spread the word, all our staff started to buy BTC for this sale, the excitement was growing. We knew MSC could be used directly and automatically issue MaidSafeCoins, this was how the protocol worked. This gave us cause for concern, but experts in the field reassured us the MSC part of sale would be minimal. This was comforting, but relied on us using advice and not setting a rule (this was our big mistake).  BTC purchasers would be handled manually in the back office with us actually doing the conversions and using the MSC loan account to make the actual MaidSafeCoin purchase, we got set up for night shifts during the sale to do this.

Days before the sale we found out the loan amount of MSC would not cover the bitcoin part of the sale, this floored us. A date was set, we had done loads of meetings, talks and interviews stating this. Was MaidSafe going to fail in such a huge step? No we were determined not to. It was suggested we could set the MSC -> BTC rate at 0.3 or 0.4 which we read and nearly collapsed. This was 3 or 4 times market value, how would this be possible. We were convinced to set a rate of 0.2 and the sale could be funded to make sure BTC holders were covered. Again it was stated that MSC would not be above 25% of the sale.

We were comfortable with this explanation. Just before the sale we set the price of MSC at 0.2, which was actually 2X the current market price, why do this? Well we had to cover the BTC and all information we got made it clear this was the only way. We were also convinced that as people seen the value of MSC as a vehicle for smart property then this price would be eclipsed very quickly.

We then found out about the reward scheme, a rolling discount that would incentivise early purchasers and kick the sale off. This had been previously done and was a success. We agreed it would be a good thing to do this and anyway it is how the protocol worked.

Press the button

09:38am April 22nd 2014, we pressed the button and the sale address became live. We had on a screeen in the office and used this to track the sale. It went mental almost immediately, in less than an hour there were hundreds of thousands of dollars worth of purchasers, mostly small. We were amazed. I had to rush home to make my BTC purchases for my friends. I rushed.

At home the was going even faster, excitement turned to worry, this was too fast. That sounds crazy, but it does make you nervous when this happens, I cannot explain why, but it does.

On returning to the office, myself and some of the team went outside for a sit down in the sun. Then people rushed out of the office to us saying, the MSC part of the sale had gone ballistic, numbers on the different MasterCoin sites were all different, one saying the sale was over.  This was bad, all BTC purchasers including us were now locked out and the coins were all purchased. Euphoria to the death of the project in seconds.

Staring into the Abyss

Ok it was over, we had screwed up and screwed all our supporters who were BTC holders. We had bet the business on this sale and spent months working towards it, sacrificing everything to make this happen.  Time for action!

We got on to the Master Protocol guys in the USA, to figure out where we were. They were convinced only 50% of the orders we had seen on an exchange were real.  What? we could still save the day. Stop the sale I said and then realised we could not as this would stop any more MSC including the MSC we need to convert for the BTC purchasers.

Stop MSC inputs from any more people then! This was also not possible, it was going mental.

OK, remove the MSC address from the site and put up a message this MSC part was finished. All our advice was down a toilet somewhere and we had taken it as fact, what a stupid move on my part.

We would halt everything and use the MSC loan to process the BTC purchasers, we owed them this and needed it to happen.

N.B. The Master protocol team are working out many of the issues we had to deal with, both technically and politically. This is a frank and open discussion and great to see.

Climb out of the fire

So we managed to figure out the amount of MSC that had been used so far was circa 50%.  We could still accept BTC. I then said, lets buy all remaining MaidSafeCoin with the loan fund and close this sale technically in the background. This meant the BTC people were protected and we could take our time processing the purchases. The manual process was excruciating to say the least and this amount of transactions was going to introduce error.

In steps the Master Protocol team and our devs, between them they created a set of tools to automate the process. The MSC guys created a test smart property and tested overnight. It was a success, so three days after the sale completed we were able to make all of the transfers. A few last minute purchase attempts got locked in the master blockchain and these were handled after protocol correctness discussions and debates.

The hard part

The end result was going to happen anyway. MaidSafe’s project became free and a movement is now underway.  We are still stunned in MaidSafe as the whole thing was surreal. Yes we ended up with way less actual liquid cash to allow us to achieve some early goals, but it was never about money. It was never about taking from people, this was all about giving. Many people could not understand that and a tiny amount of people made up some stories that were so incredible they seemed insane. These stories caught fire and had otherwise normal people perpetuating stomach wrenching stories about MaidSafe, it’s goals and supporters.

This was actually more difficult than I thought it would be, we are so used with open honest communications and try hard to make sure everyone sees us in a ‘warts and all’ manner. We even had a few on our mailing list that got banned, these people admitted trying to manipulate the market etc. they were also added as the ‘expert witness’ testimony to the weird and bizarre stories that were being manufactured. A person who started one story then bragged of ‘getting in’ and getting some MaidSafeCoins.

It is a strange world and shows again why a privacy enhancing, free and secure network is required. The education of people is so important.  The madness of these people is the same madness that causes many to harm many. These memes that are actually very false is where persecution starts, that can often end up in a situation where people end up taking up arms against each other. It really is amazing to watch, initially I thought it was funny, then when these stories grew it made me feel very sad that the connected world is not smarter just yet. This is something I will continue to try hard to remedy, we have to. We just have to!

The end result

One thing that struck us in house was the supporters on our mailing lists and forums. They hardly took any notice of the crazy stories and continued on, planning and working out ways to create remote development groups and meetups.  This was the opposite of the feelings earlier, this was immense pride and a wake up call. What we just did was unbelievable and a huge step to freedom. Project SAFE supporters were doing something important here. First they obviously thought, I hope, none of that nonsense is true and when they seen it was not gave it no thought. The other thing I hope was the case was that it did not matter. Project SAFE was not MaidSafe, it was not David Irvine and it was not bothered by dafties. Something very much more important had just happened, we achieved our goal. Project SAFE now was firmly community property, we were secondary as we wanted to be.

So the oodles of cash, the pile of loot, what happens to that? This part is easy, it is much more equivalent to $3M in todays cash if we were to convert it, so there is a long term position required.  It will keep the MaidSafe staff paid and housed for 3 years as stated. The rest, all of it will be used to get the community up and running, so we give it away. No we invest it in our future! We had hoped the foundation would have enough to buy the land it’s on and build a new building, that may still happen, but only after we can be sure the community is up and running first. A lot will depend on the liquidity of the crypto we took in.  I know we will make sure it is accounted for penny by penny (well it has to be anyway) and that it makes sure project SAFE is not only real, but that it accelerates onto the world at a significant pace. I know we will make people proud and I know we will at least start to make the world change for the best, it’s our duty and now we share that with many more like minded owners of project SAFE.

I was asked in an interview recently what it felt like, this crowd sale? I replied

If you want to feel 1mm tall, do a crowd sale for something you care about!

Yes I would do it all again, and I hope many do, we broke the water for others and found some holes along the way. We are working with the Master Protocol team to make sure no other project falls down them, but we did it! and man did we do it. It was and still is unbelievable and surreal. Another stage in the project SAFE story is now complete, the next steps are likely to be dramatic, I cannot wait.


Posted in MaidSafe, Personal Opinion, safecoin, strategy

In a MaidSafe state of mind

I have often been asked by people near me saying “how did you come up with all these parts and glue them together in your head” I then usually answer, “you need to think the maidsafe way”.  First though we need to recognise that I came up with seeds of ideas that others helped me develop over time. This is a very tough thing to describe and I suppose it is a few different parts that all come together in a weird idea soup. To try (and probably fail) to sum this up I think it may involve:

  • FInd a vision and go all out towards that
  • Look for the parts considered impossible and consider them solvable (always)
  • Figure out the logic at the very heart of the issue
  • As the parts solve themselves try and use those core algorithms to integrate with the next problem
  • As these structures build into a system, be prepared to start again (many times)
  • Know the whole time until all the parts do compliment each other you will never know what it looks like

Now if this sounds difficult, it is. If it sounds easy, it’s not. There are other significant parts you will need to do:

  • Find people to pay you enough to live on (no more) to achieve this
  • Provide a reward mechanism for supporters
  • Find criticism whilst avoiding negativity

The last part is significant and extremely difficult. The investor part is less difficult, but will cause you to be interrupted in your thoughts continuously. You learn to work with these interruptions (I do it by working through the night and knowing I will not be able to think complex systems during the day). The people who disturb you in this way will all tell you that you need to sleep and take a break, its strange, but true.

Learning to shun negativity whilst seeking critique is the extremely difficult part though.  The proportion of critiques to informed opinion is pretty imbalanced in some forums, particularly those that find themselves at the peak of voices wanting to be heard, such as many Internet sites. This is certainly an innovator’s dilemma and may be related to the commonly known version of that paradigm.

What is an Innovator or Inventor?

This is an unusual stance I think. It is a person who is looking sideways at things we all look at and consider impossible. It is also a person who wants to make something more efficient or simple, occasionally its just somebody who looks at something and sees something very different from the rest of us. An invention to me is a fix for something. Many people invent all the time and do not even consider it. I see inventors of the past and think that it’s great. I do think though an invention is a single thing, so perhaps the person who invents a new widget will only ever do that. This is where I see the difference between inventors and innovators. I think invention is the continued output of an innovator. A single invention may be stumbled upon by anyone, an innovator seeks the next problem immediately as that is what drives them.

I think this drive for finding better ways defines innovators and just like a Physicist or Engineer, they likely will not stop. The search for the next answer can be like a drug. It drives people to despair and ruin on occasion.  Innovators look for hard problems, so monetising in Invention seems to easy an issue and unfortunately innovators are forced to protect an invention by stopping finding the next problem and doing a relatively boring (to them) job of monetisation. This should not be misunderstood, monetisation is one way to get an invention to the masses sometimes. I strongly feel this should not always be the way though, look at Jonas Salk and his polio cure, he just gave it away, polio got cured, how much was that worth to a monetisation expert? how much was it worth to society? Which is the most important?

An important excerpt from Wikipedia

But as he was sitting in a park and watching children play, he realized how important his work was. He saw that there were thousands of children and adults who would never walk again and whose bodies would be paralyzed. He realized his awesome responsibility, and so he continued his task with renewed vigor

What if in our work we could see the people we could help, would the drive for monetisation really be so important in all cases?

In any case, we know now I see innovators as those who constantly invent.

Incremental or step change

Every innovator will be doing something that he or she is told by the educated in that field is impossible. This is great and food for the drive required.  This is even more pronounced though as the size of the invention is described.  I find myself finding people intellectually lazy, by this I mean we as a species seem to want soundbites and fast summaries of complex ideas. The more complex the idea the harder this becomes, until the Invention cannot be summarised to a sentence. So incremental improvements are easier to fund and understand and we humans love it. A fatter coffee jar that does not slip out of your hand so easy, a wheelchair with ratchets to allow users to go uphill easier, a battery that lasts longer etc. These are all soundbitable (another invention :-)) and easily sold to investors. This is because investors can understand it, and if you add a market size, selling price and some hockey shaped growth curve to a spreadsheet they are as happy as Larry. This is especially true as they can show their expertise of coffee jars and batteries and pontificate market opportunities etc. These investors are not the ones you want to work with, honestly. There are some real forward looking smart investors out there, it’s hard to get to them in todays wash of ‘theres an app for that’ pitches, but they are there, persevere and find the smart guys if you want to stand half a chance.

So back to the step change proposition, the invention that is so large it has few words anyone could understand to describe it and maybe has revenue potential so huge nobody would believe it. Here I think of aeroplanes (if nobody else had been trying), telephones, television etc. In many of these cases though there was a furor and race to get to the line, it seemed many thought these were possible. What though if a huge changing invention were to come about, what would we all feel then?  Imagine, what did we call a wheel before we seen one, or a telephone before it existed, it’s a tougher question than we realise as we are not good at thinking about these issues, they show our fallibility.

In today’s world of “explain it in two words or a short sentence” then the wheel would be hard, the telephone impossible to believe. I wonder if they would have actually succeeded?

Of course I am talking about innovators with no financial means to look after themselves here. For the wealthy these questions are less relevant. Edison and Tesla are great examples of both sides of this fence.

So a step change leads to an incredibly difficult place for an innovator. That innovator will find themselves asking why why why can nobody see this.  I think again its my old friend nature.  If we improve to quickly then we could be wiped out. If we back all the things we do not understand we may kill the planet around us. So I believe we are built with a defense against massive change and this defence is for the best.  So a large innovation is gonna be a fight, that innovator will need tenacity and the ability to make it happen, even with very limited resources. Nature made some of us very tough and this is one reason.  This is also a reason to not worry about revenue models of how to monetise, these innovators will be a different breed and will certainly know 1+1 = 2 and understand they want to have enough cash that nobody else suffers this pain. I think that is why so many set up foundations for education and research, its just to valuable to not let it happen. Added to that the revenue model may be one that does not exist or can be believed (charge people for talking into a bit of bakelite!), another problem.

Is it worth it

This is the whole point. The innovator cannot only see the advantage of an innovation, he or she can see the faces of the children who will die if this is not done! Oh yes it’s worth it and that motivation is more powerful than any soundbite or wondering how much cash you will get.  So worry not about monetisation, worry more about not doing it, this is what drives true change in our society and what makes humans different. We need to not be to far removed from that premise and this is one place capitalism fails dramatically. We must find ways to let people dream and that means removing stress. This is one thing maidsafe will meet with project SAFE, give people back control, give them cash and remove the stress. Then when they dream (as opposed to worry) they may see a solution and the childs face I mentioned and that is where the magic will happen.

Tagged with: ,
Posted in complex systems, nature, Personal Opinion, strategy

Member of The Internet Defense League

Follow Metaquestions on

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 2,426 other followers

BTC address