You Should Watch “Banking on Bitcoin”

I cannot recommend warmly enough that you watch this documentary on Netflix. It is incredibly informative. It presents a lot of very interesting facts and characters involved in the genesis and early history of bitcoin and the blockchain movement as a whole. And even if it looks like the first episode of a long series, it clearly demonstrates the foolishness of governments and traditional financial institutions, as well as the fact that we are witnessing the birth of something truly amazing.

And when you think that this documentary only covers what bitcoin is doing to the financial industry and doesn’t even mention guys like Vitalik Buterin or Andreas Antonopoulos other than by showing their faces, this gives me the chills! If anything, I think this documentary is nothing less than a landmark, a checkpoint, a cornerstone in a history we will all look back on in awe 20 years down the road. And I know it all sounds grandiose and unreal right now, but it is so ridiculously clear and obvious to me right this second that writing these very words in my PJs at 1:20AM feels like a heroic symbolic act of sorts.

So please anyone listening and reading those words, go watch that movie, you’ll thank the people it portrays and those who portray them later.

We Need to Know… What You Need to Know!

As we announced during our Devoxx talk, Said and I are working on creating an online training about the blockchain as a software development platform, and more specifically about creating distributed applications (DApps) on top of Ethereum.

We decided to launch this initiative for several reasons.

First of all, because we are absolutely fascinated by this technology, but it is clearly in its infancy and it needs some more advanced tools, libraries and frameworks. And the only way it’s gonna have that is if more software developers get involved, figure out the gaps and contribute to expand the ecosystem.

Second of all because the field is wide open for killer applications and real projects that will demonstrate the incredible scope of this platform.

Last but not least, there is far too much blockchain discussion nowadays that is focused on private blockchains, because the banks are attracting all the attention with their misplaced money. And we really think it’s essential we stop wasting all this money in something that has way less potential.

On the other hand, most of the Ethereum and blockchain documentation out there is very fragmented or outdated. We couldn’t find any source of information that was at the same time:

  • comprehensive, to present all the information regarding what a blockchain is, how it works, and how you can develop on it, not just with a programming language but also with a full development environment
  • up-to-date, especially as all the tools and languages evolve very fast
  • progressive, taking you from a basic software development basis to fully functional distributed application development knowledge
  • and supported, meaning that you should get answers to all your questions as you are progressing though this complex learning experience.

And that’s exactly what we would like to create with this training program. And yes, we intend to make this a commercial training, because otherwise it would simply be impossible to answer all the questions from the students, and to update the material on a regular basis, while keeping the quality of it at a maximum.

Now the thing is if we really want to maximize the value of this program, we need to know where our future students are and what they would like to get from it. And that’s why we prepared a little survey for you.

Thanks a lot in advance for answering that survey and/or sharing it with all the developers you know who might be interested in our training program.

What Qualifies as a Blockchain?

Over the last couple of weeks, Said and I gave our first public talk about the blockchain as a development platform to a crowd of software developers gathered in Devoxx Morocco and Belgium. Our primary goal was to take a step back from the technical aspects, from how you write smart contracts, how you secure the data using cryptography, and make developers sensitive about what’s at stake, the use cases, the limitations and generally WHY you should be interested in the blockchain as a development platform. The video of our talk in Devoxx Antwerp is on Youtube:

One question that we were asked a lot had to do with all the different flavours of blockchains and which ones have the most potential. And it is a very important question indeed, because as software developers, we are used to learning new technologies, new languages, new frameworks, new libraries, new paradigms, but we know that those learning curves are big investments and betting on the right horse as soon as possible can be decisive in your career. And it’s even more critical for the blockchain because whatever the flavour, a blockchain is a network of value so the ones that will be used the most will concentrate most of the financial value as well.

The 3-layer Model

During this presentation, we introduced our 3-layer model to try and make sense of all the concepts surrounding the blockchain:

3-layer

Concepts

le-cordon-bleus-complete-cooking-techniques

At the most basic level of the blockchain, there is a set of concepts:

Where the web is a network of information, the blockchain is a network of value in the sense that it is designed to ease, accelerate and optimize the creation and transfer of assets between a number of individual or institutional participants connected to the network.

The network itself being more or less reliable depending on whether participants can join or leave the network at will, whether or not the links between participants are more or less resilient, whether or not participants themselves trust each other, the data representing the transfer of those assets should be distributed throughout the network instead of being stored in one central location.

In order for this data to be distributed, you cannot store just the latest snapshot but you are forced instead to record all the transformations applied to that data. This way, any participant that joins the network after a while can catch up with the rest of the network by downloading and applying all the transformations since the last one he had in his possession. That’s why all the blockchains are based on the concept of a distributed ledger from which the current state can always be deducted at any point in time.

Since any participant in the network can add his own transformations (also known as transactions) to the ledger, and the current state depends on which transactions are in the ledger but more importantly in what order, it is very important for all the participants to find an agreement on one common ordered list of transactions. The key mechanism by which participants find an agreement is called a consensus algorithm. In short, this algorithm defines the rules by which new transactions can be appended to the distributed ledger and recognized by all the participants as the one truth.

Since this consensus algorithm defines how the common truth is built, it is very important to determine who has control over this algorithm, in other words what is the governance model by which the ledger is determined. With a distributed data set like the one of the blockchain, the degree of decentralization of this consensus algorithm is absolutely paramount: a completely centralized consensus is very easy to corrupt even if it is easier to conceptualize. At the other end of the spectrum, a completely decentralized consensus algorithm is very hard to corrupt, but much more complex to implement and manage.

Another implication of the distribution is that you need a protocol to disseminate information in the network and for each participant to make sure that the information he receives from others is valid and genuine. And this is precisely where cryptography plays a key role in the blockchain.

Last but not least, those transactions listed on the network are essentially pieces of code that determine the conditions in which assets can be transferred from one participant to another, or more generically the conditions in which the state of the blockchain can change. These pieces of code are sometimes called smart contracts and they can be very straightforward and safe, or more sophisticated and risky.

Implementations

zest-screen-recipeThere are several possible implementations for each of those concepts, depending on the values and constraints of those writing the code that implements them. A blockchain implementation is mostly represented by a code base that determines how the generic concepts mentioned above become reality. For the most part, this code is the one of the software program that runs on each node participating in the network.

Bitcoin was the very first implementation of the concepts of the blockchain. It was created in a very specific context with a very practical goal in mind: to create a new monetary system as an alternative to the centralized banking infrastructure that produced the 2008 financial crisis. That’s why in the Bitcoin blockchain implementation, most nodes are full nodes that store the entire ledger (almost 100GB to this date), data is fully distributed, transparent and anonymous. The consensus algorithm is also fully decentralized in the sense that any node can decide to participate in the consensus or not. And it remains secure despite this openness by combining principles of cryptography, economics and game theory in a specific form of consensus algorithm called proof-of-work: each node participating in the consensus algorithm, also called miner, competes every 10 minutes  in a contest to produce the next block of transactions to be appended to the chain, this 10-minute delay being designed to minimize the interest of an attack. The first one to produce the next block gets rewarded with a freshly-created amount of bitcoins, the crypto-currency that is also the main transferred asset on the network. This way, since miners are interested in the asset growing in value, if they play against the network, they essentially cut the branch on which they are sitting. The Bitcoin blockchain implementation also has its own smart contract language called Script, but this language is voluntarily simplistic and lacks one key feature to make it Turing-complete (ie generic enough to implement any sort of algorithm): it doesn’t allow for loops. In a sense, Bitcoin is a specialized blockchain, designed primarily to solve a very specific problem. There are ways to somehow expand its functionalities beyond its original purpose of creating an alternate currency system, but they clearly come as an afterthought.

It is mainly because of those limitations in the smart contract language and in the speed of the network that another implementation called Ethereum was born. Its ledger is also fully distributed and its consensus algorithm completely decentralized in the form of a proof-of-work technique similar to the one of Bitcoin. But some key parameters are different in Ethereum. There is no pre-determined delay to produce blocks but on average they are produced every 17 seconds or so at the moment. In Bitcoin, only the miner that finds the next block in the main chain is rewarded. In Ethereum, you can also be rewarded a smaller amount of Ethers (the main crypto-currency on Ethereum) if you find a few blocks in a minority chain (uncles), which implies you have to wait for more blocks to be certain that a given transaction will stay in a specific order in the longer chain, but since those blocks are produced faster, the overall confirmation time is also shorter. In addition, the smart contract language in the Ethereum blockchain is Turing-complete, which means it is sophisticated enough to implement any kind of algorithm to decide how state can be transformed. Of course this sophistication comes at several costs. First of all it means that transactions can require a varying amount of storage space and processing power. In order to avoid the possibility for a fraudulent or badly designed contract to crush the network with infinite loops, every instruction incurs a small cost that has to be paid in transaction fees by the actor that triggers every transaction to the miner that mines the block containing the transaction. Second of all, the programming language used to write smart contracts has to be carefully manipulated in order to protect against nasty bugs that could create bugs that could jeopardize trust in the network and its currency. But with this sophisticated smart contract language, Ethereum is a much more generic blockchain, that looks a lot like a globally distributed computing surface.

When Bitcoin appeared, financial institutions, and especially banks were really scared of it. Then they started to understand that there could be opportunities for them to leverage some of its features to save time and money in their missions, especially where these missions involve collaborating with other institutions: compensation, international transfers, clearing, etc. The most interesting concept to them was the distributed ledger design. But the regulatory context in which they operate (Know-Your-Customer rules, anti-money laundering, etc.) made it hard to use a fully transparent and anonymous implementation. In addition, their position as financial intermediaries, their fiduciary duties and their business model made it very hard for them to give up on centralization of governance. That’s why most of them chose a more centralized variant of consensus algorithm with a permission model deciding which participants can join the network, and more importantly which participants are trusted with appending new blocks to the ledger. This trend gave birth to a series of implementations like Hyperledger, Corda/R3, Eris/Monax and many more. Since the consensus algorithm in these implementations is centralized, it relies on trusted parties that don’t need to be incentivized to participate in securing the network. So they don’t need to define a backing crypto-currency like Bitcoin or Ethereum. They can also offer a much higher processing speed for transactions.

In addition to those already well-known implementations, there are also plenty of implementations that are currently in development to try and tackle some of the problems and limitations identified with Bitcoin and Ethereum for example. It is a constantly evolving field and the landscape is still very much open.

Instances

strawberry-chocolate-cake-1For any given implementation, ie for any given code base, there can be many different instances. For example, you can take the code of the Bitcoin blockchain implementation, change a few parameters and initialize a brand new chain with its own backing crypto-currency. This is what we call an alternate coin, or altcoin.

Most of the existing altcoins are merely copying another implementation with very few customizations, and as such bring very little added value on top of their source implementation.

Others try to tackle some limitation of their source implementation by forking the code base and modifying some aspects of it, for example to enforce stronger anonymity as in the case of zCash.

There can also be forks that create another specialized blockchain to solve another specific problem than a monetary system. For example, namecoin was designed to create some sort of decentralized and distributed domain name service.

Also, when the code base of a given implementation changes slightly the rules by which new blocks can be appended to the chain, but not all the nodes participating in the network switch to the new version, we can observe a phenomenon called a chain fork: starting at a certain block, the chain starts splitting into 2 different versions of the ledger, effectively creating 2 variants of the initial crypto-currency incompatible with one another. That is for example what happened on the Ethereum blockchain after the DAO attack: a hard fork was implemented that split the chain into an ETH and an ETC chain. Most of the participants in the original Ethereum blockchain have switched to the new version of the algorithm and are mining ETH. But enough of the participants remained on the old version of the software, giving birth to the Ethereum Classic (ETC) crypto-currency and chain.

Last but not least, the exact same code base can be instantiated in several versions for testing purposes. For example, beside the main Ethereum chain, you also have a test Ethereum chain called Morden, on which crypto-currency is essentially monkey money, this chain being used by developers to test their smart contracts. And you can also create your own instance with a few colleagues or on your laptop for development purposes.

All those examples are here to illustrate that for each implementation, there can be many instances running either exactly the same code or a slightly changed code but on a different data set. And a given crypto-currency is only usable on a given instance.

By the way, on CoinMarketCap.com, you can follow more than 700 different crypto-currencies corresponding to as many blockchain instances.

So which implementations and instances qualify as real blockchains?

In other words, which implementations and instances have the most potential to still exist and concentrate a lot of value in the next 10 years?

For some purists, or Bitcoin maximalists are they are sometimes called, there is only Bitcoin. It is the purest, oldest and thus most mature implementation, and as such it deserves respect and you should think twice before questioning its power. And of course, resistance is all the more understandable as a lot of actors of Bitcoin have a lot of Bitcoins vested in the network, and when interests shifts to other implementations or instances, the currency potentially loses some of its value. For those in that community, there is no other viable consensus algorithm than proof of work, there is no other crypto-currency than Bitcoin, and loop-allowing smart contract languages are pure heresy because they completely endanger the safety of the assets exchanged on the network. To them, even the concept of the blockchain as a development platform makes very little sense, and they deploy treasures of creativity to extend the Bitcoin blockchain with mechanisms to implement some of the features it lacks (sidechains). And if there are limitations like the speed of the network, its scalability in terms of storage volume, etc. it can all be addressed with carefully thought out incremental improvements deployed in very slow forks agreed on after long debates in the community. To these people, even altcoins of Bitcoin, other instances of the same codebase are considered by default as potential scams or pump-and-dump schemes (or shitcoins as they call them).

Then there are those who are really amazed by the power of the concepts implemented by the Bitcoin blockchain, but would like to see them implemented in completely different ways. They still want to keep all of the design principles of the original, but they need more: more speed, more ease of use, more programmability, more extensibility. To them, Bitcoin was the first implementation, but there is no reason not to move forwards to tackle limitations of Bitcoin in a more radical way. Sure sophistication comes with its own risks and instability, but that’s merely the cost of progress. To those people, the blockchain really is a full-fledged distributed computing surface and development platform that opens the way to a whole new generation of software solutions and business models. The most popular blockchain implementation in that regard is Ethereum right now, but it doesn’t mean it is the final one. Ethereum has gone through a series of issues since May 2016 that have triggered heated debates between Bitcoin maximalists who basically said “I told you so”, Ethereum enthusiasts who said “Don’t worry, we’ll fix this, everything is under control”, and others who started to propose new chains to tackle Ethereum’s issues in more fundamental ways, like Synereo or Tezos.

line-in-the-sand

And then of course you have all these big companies, mostly financial institutions, who are working on what they call “private blockchains”. In our view, those private blockchains are a corporate attempt at shoving a new technology into old business models and cultures, ripping the stuff apart to make it fit instead of using the opportunity to completely rethink their business model based on what a full blockchain really enables. You guessed it, we are not really convinced by this approach. To us, it looks a lot like what Microsoft and AOL tried to do with the web at the very beginning, trying to apply a “walled garden” approach to it, creating their very own Internet of sorts. Or like what some companies are still trying to do with the cloud, hosting an internal cloud in their own datacenters, thus completely missing the point of mutualized resources and shared elasticity. As far as we are concerned, we don’t consider these initiatives as “real” blockchains. They are generally pushed by big consulting companies like IBM or R3 who saw an opportunity to sell consultants by the hour to implement very complex solutions to problems that could very well be solved by much simpler architectures. The problems these companies have are real, but they jumped at the hype too quickly, and we think they are going to end up realizing that:

  • Either they should completely rethink their business model and organization around an open blockchain implementation that leverages all its power in a distributed AND decentralized model
  • Or they can stay with their centralized culture and implement much simpler solutions to the problems they really have to remain competitive.

In conclusion, for us, Bitcoin is way too limited and complex to develop on top of to be considered as a long term solution for distributed application development. It is the most mature network right now, but we shouldn’t stop there. Open generic blockchains like Ethereum (and others) are way more promising to us on the long run, despite their issues and constant evolution. But private blockchains like the ones sported by big consulting companies and banks don’t present the most interesting path to us. We think that the blockchain is as much a political and cultural challenge as it is a technological one. It really gives us the opportunity to rethink business models and organization cultures and we want to explore that path. Time will tell if we bet on the right horse or not, and maybe we will be proven wrong, but for now, that’s our view on things.

A Few Resources to Get Started

Over the past few weeks, we have been reading and watching a lot of material about the blockchain and some of its variants (including the Bitcoin blockchain of course). The goal is not only to understand how it works technically, which will be necessary in order to understand how we can use it, but also to understand where it comes from, how it was created.

And we wanted to share with you some of the best resources we have found so far.

First things first. What are Bitcoin and the blockchain?  The first presentation is a great introduction that illustrates how Bitcoin and the blockchain are changing the rules of our world.

The second one is a presentation from Vinay Gupta, explaining in very clear terms how the blockchain came to be, from an historical standpoint, and how it fits in the timeline of data storage mechanisms. We love this talk because it doesn’t focus too much on the economic side of things but it sees the blockchain as a software paradigm, and a development platform, and that’s what we are really interested in as well, even though the currency part of it cannot be separated.

Vinay Gupta at Michel Bauwens & the Promise of the Blockchain from FIBER on Vimeo.

The third resource is also a video, a presentation by Andreas Antonopoulos, the author of Mastering Bitcoin, one of the THE reference books on how to develop on top of the Bitcoin blockchain apparently (we bought the book, didn’t read it yet). What we really love about this guy is that he is deeply invested in the Bitcoin blockchain, and yet he remains very curious and open-minded about all the evolutions of the blockchain technology. And as we are progressing in that space, we can see that a lot of people who have invested (or speculated) a lot on Bitcoin don’t really like the idea of being challenged by new tools and techniques about their core beliefs and assumptions. In that context, this talk and all of Andreas’ contributions are quite refreshing.

The last resource we wanted to mention in this blog post is a MOOC that I (Sebastien) have started following. It’s not free, it costs 830£ (by the way, given recent events, if you pay in euros or dollars, 830£ will be cheaper than usual), but so far, 2 weeks in, I must say that I’m pretty happy with the quality of the content.

I was kind of frustrated by the Ethereum tutorial, which seems pretty outdated and lacks a lot of details to get going. But the b9lab academy content is very practical and gives plenty of pointers to learn more around the main content. So far, it’s exactly what I was looking for. And one cool thing about this MOOC is that it will end with a certification that will be written to the Ethereum blockchain so that attendees can prove they followed through this course.

We will keep sharing some of the most interesting resources we find, both in English and French, about those topics, so if you have some resources to recommend yourself, feel free to leave a comment on this post.

Our Values

Said and I are starting a long and exciting journey with ChainSkills. And at the start of this kind of journey, it is often useful to take a step back to ask ourselves who we are, what we believe in, what our ambition is and what we want to achieve. This is what some call Mission/Vision/Values, but what we decide to call Identity/Ambitions/Project here, because we estimate that it makes more sense to think about it in that order, and there is too much ambiguity about these terms of mission, vision and values. The goal of this post is to lay the foundation of the identity of the team behind ChainSkills.

Pragmatism

We are both passionate about technology, but first as a means rather than an end in and of itself. For us, technology must always be useful and useable.

Useful because technology for itself, without concrete application, without an impact on life sounds like a huge waste given the infinite number of problems technology could help in solving.

Useable because the most elegant technology will always fail if it is not thought around its users, while keeping in mind their environments, their ecosystems and their mental models.

The thing is that when you speak about cryptography, security and networks, and mix in a little bit of economics and finance, as it is the case with crypto-currencies for example, it is very easy to get carried away by big abstract concepts, too much lingo and a certain fundamentalism that threaten this pragmatism.

We start from the assumption that, while making the best out of the benefits of a technology, it is sometimes necessary to find acceptable compromises to keep the technology useful and useable.

Innovation

At its core, technology is about making the impossible possible, and making the hard stuff easier. In doing so, it is not rare for it to upset business-as-usual, whether it is legal or fiscal rules, a business model or an industry. That’s what disruption is really all about.

When an ecosystem is disrupted, as it was the case recently with the taxi ecosystem and Uber for example, a naive reaction is to try and stop change in its course by blocking innovation or making it illegal.

And when politicians intervene, under the pressure of lobbying, they can overcompensate technological simplification with administrative complexity, such as what the Belgian administration is trying to do with models like Menu Next Door.

Our position regarding those trends is clear: we estimate that technology’s primary mission is to improve our lives, to make them easier and more rich, and we also estimate that nothing artificial should slow down or block that innovation. What we mean by artificial here is protecting abstract constructions such as employment or unfair competition. Innovation forces us to adapt, to evolve our beliefs and our vision of the world, and to grow as a civilization.

That’s why we will do everything in our power to minimize the compromises whose sole purpose would be to accommodate ancient administrative, legislative, competitive or fiscal models. The disruptive power of blockchain is too enormous to allow that.

Note that we are talking about minimizing compromises, and note about eliminating them, because we are aware that, at certain moments, such compromised will be inevitable to stay pragmatic.

And of course, what we don’t consider as artificial are the health, well-being and integrity of the recipients of this innovation, and as long and legal, fiscal and administrative rules will be designed primarily to protect those, we will abide by those rules unconditionally.

Lean

Said and I have both been immersed for years into the culture of Agile methodologies and software development. And today as entrepreneurs, we believe strongly in the values of Lean Startup.

Behind those lies the notion that we have access to limited and precious resources, whether they are time, energy, or more pragmatically financial means, and that it is our duty to use those resources with as much efficiency as possible, in order to go as far as possible.

In that regard, we have always leaned towards an experimental, incremental and iterative approach in the construction of our projects. We rarely try to do things perfectly on the first try, to think a problem through before moving forward. We prefer experimenting and observing empirically to hyper-theorizing. We value prototypes that do 80% of the job with 20% of effort. And we believe in the necessity to test and validate your hypotheses as soon as possible, before implementing them.

As in any new domain, our main goal here is not to get wealthy financially, but to learn, to understand and to integrate. Maybe one day, we will have learned enough to capitalize on this expertise and this understanding. But in a first approach, we want to explore and understand in the leanest and more pragmatic way possible.

Humanism

Blockchain technology was originally discovered in the context of a financial application with Bitcoin. It thus inherited some of its philosophical concepts that we don’t share entirely.

Most of today’s market finance is based on neo-liberal theories according to which human beings are cupid and selfish, and thus you have to embrace those trends fully and integrate them in the rules that regulate markets, betting on the fact that the sum of individual interests will always favor improvement in common interest.

We how two objections to those theories:

We have two major objections to these theories:

  • some major crises, including those that we are still going through today, tend to demonstrate that as stakes and inequalities get higher, individual interests can push people to do everything in their power to destroy interests of their peers, especially when it is easy to hide behind figures, regulations and anonymous structures. In such a situation where inequalities are too high, power tends to concentrate in the hands of a minority that threatens common interest in order to concentrate more and more power. We can only wonder about the solidity of this assumption that common interest is simply the sum of individual interests.
  • If it is true that survival instinct and adaption are parts of our genetic heritage and powerful forces, there is at least one other instinct that doesn’t seem used enough in big human interaction schemes like finance: gregarious instinct. If it is true that an individual will always do everything in his power to protect and improve his own life and the one of his lineage, he also understands the importance of the group and his own integration in this group to increase not only his own chances of survival but also his very quality of life. He instinctively knows that he needs others, and others need him, and with all the individual power in the world, he is nothing if he is isolated.

For these two reasons, we would like to witness the emergence of a system that pushes forward notions of reputation, accountability and mutual interest to go towards another macro-economic vision.

Besides, it is important to underline the fact that we do not adhere to this idea that there is a dichotomy between capitalism and socialism, and since socialism has been attempted and failed in the past, capitalism is the most advanced form of society there can be. We think there is another path, a path that would push forward some of the notions mentioned above but at a larger scale. And we think that blockchain technology, in its distributed and decentralized model, is an ideal platform to enable this kind of societal change.

Openness

The blockchain is a complex topic, that involves some advanced concepts in computer science, mathematics, economics, finance, etc. With such topics, it’s easy to get carried away in lingo and acronyms.

Moreover, with blockchain, it seems reasonable to observe that we are witnessing the dawn of a technological revolution, with its own “eldorado” effect, that gives birth to a whole generation of self-proclaimed and opportunistic experts who see this as a field to split, in which more people means smaller shares. Hence the temptation is big to exclude, to close and to place explorers of this new world in boxes: experts on one side, novices on the other.

As far as we are concerned, we don’t see this domain as a zero-sum game in which some have to lose for others to profit (more). To us, it looks like a gigantic field, whose potential is virtually unlimited, and that calls for an enormous diversity in vantage points and philosophical directions, given the large scope of potential changes.

That’s why we are convinced that yesterday’s novices are the experts of tomorrow, but more importantly that not everyone needs to be an expert in a field to have their say. We think everyone should be empowered to take ownership of these concepts to the best of their abilities, and our approach will always be to facilitate this access instead of restricting it.

Plus, in all humility, we ourselves are at the very beginning of our exploration of this vast domain, and we will thus go more naturally towards those who make information accessible and seek to include instead of excluding.

Our approach here will always be to discover together, to share what we think we understood, in good faith, with the community and to include a maximum of the constructive feedbacks we will receive to make them accessible in turn to the community.

Your comments, your corrections, your suggestions, your opinions and your questions will always be welcome on this platform.

Our goal with ChainSkills is not to create a secret society, an elite and closed group that would seek to protect its certainties and privileges.

We believe in the values of Open Source, sharing and open transparent collaboration. And this blog in the first manifestation of that spirit. By sharing our learning process, we hope it will help other explorers to move forward with these subjects, and that our shared experiences will produce a result far greater than their sum.

Of course, this will also apply to most of the products and experiments that will originate in these experiences, that will also be Open Source by default, except in special circumstances.

Lastly, this spirit of openness also applies to all those who will participate in that journey, without distinction of sex, age, beliefs or origin, provided they hold themselves to the same openness values.

No dogmatism

If blockchain was a religion, Satoshi Nakamoto would be its god, Vitalik Buterin its prophet. The Bitcoin whitepaper would be the Old Testament, the Ethereum whitepaper would be the New Testament. And there would be apostles and priests at war to spread the Word.

We don’t position ourselves in this logic at all. Our vision is that of a open-minded, pragmatic and non-dogmatic community, in which people don’t do things a certain way only because certain authorities said so. We are trying to understand, integrate and climb on the shoulders of our peers to build something greater and push forward practical applications that bring innovation in human societies.

In that regard, while completely respecting the expertise and the work of those who came before us, we naturally mistrust the argument of authority, behind which we will always try to understand the motivations behind the choices, even if it means exploring other choices and thinking out of the box.

Last but not least, we don’t see ourselves as apostles of the blockchain, we don’t position ourselves as owners of a knowledge to pass on, but more as explorers with and for the community.


Of course, if you have questions, remarks, corrections or suggestions, comments are open, and so long as they stay constructive, they will be more than welcome.


Said & Sébastien

Hello World!

We are Sebastien Arbogast and Said Eloudrhiri, we are software engineers and we welcome you to our new project.

ChainSkills was born out of a growing interest in a new concept called the blockchain. To put it simply, the blockchain is a relatively new technology that makes it possible to collaborate on a data set in a completely decentralized and distributed way.

Before the blockchain, the best way to have several actors collaborate on a common data set was to store that data set on a central server, and to have each actor connect to that central database. Then all you had to do was to secure access to this database in such a way that only certain actors could read or modify the data (authentication) and you could determine which actor could access which data in which way (authorization). Also, you had to put some code in front of the database in order to orchestrate access to that database. Security and integrity of the database was thus enforced by centralization. But this approach poses a certain number of problems:

  • If some malevolent actor wants to corrupt that data, all he has to do is to gain access to this central database and all other actors will access corrupted data (integrity)
  • If some authority wants to censor that data, they can simply change the rules to access the central database, or even alter the central database
  • If the central database is destroyed because of a technical failure of some sort, then all the actors lose access to that database and the system can suffer major damage, if not complete destruction

In addition, in principle, this way of organizing software systems is in direct contradiction with the design principles of the Internet it is using as an infrastructure. And it just so happens that the Internet was designed in a completely decentralized and distributed fashion precisely to avoid those problems, at a network level.

The blockchain is essentially an attempt at producing a software database paradigm that also works in a completely decentralized and distributed fashion, all while keeping the ability to maintain integrity, security and accessibility on that shared data.

Historically, the very first implementation of that new paradigm was part of the Bitcoin digital currency created in 2009. But since then, a lot of people have started to realize the opportunity to use this same technique as a foundation for many other use cases.

And this is where we come from.

We are not cryptography experts.
We are not cypherpunks.
We are not crypto-currency traders.
We are not security researchers.
We are not dogmatic, we don’t do things a certain way only because Satoshi Nakamoto or Vitalik Buterin or any other authority said so.

We are software developers.
We are curious experimenters.
We are lean entrepreneurs.
We are machine creators.
We are French-speaking (and a little bit of English too, obviously)

What we are going to do in this blog is simple: we want to get to understand more about this new paradigm created by the concept of a blockchain. We want to learn more about it, about all its subtleties, about the opportunities it creates, about its limitations too. And of course we want to explore these opportunities in a pragmatic and experimental way.

And we will use this blog to report our findings, share our experiments, document our progress and get the community’s feedback.

Our approach here is that of an open learning experience.

Of course, we already have plenty of concrete ideas about how we could use that new knowledge some day. But we also approach this with a humble perspective: we have to acquire the knowledge first, to know whether our ideas make sense. And if they do, we will share those ideas with you too.

So buckle up, and enjoy the ride.