Down the rabbit hole

in blockchain •  6 years ago  (edited)

RABBIT.png

Hi all, we have been studying for a while and finally we are ready to start our journey trough legaltech and legal application of the Blockchain.

As said in one of our first posts, we are trying to go deep on the “smart contract” hole, in order to start understanding the true role of lawyer in the tech era. This series of post will be about:
a) learn how to code smart contract (we are learning while writing, so please come and correct our mistakes), and
b) learn how (and if) smart contract are relevant to the lawyer.

In this first post we want to set up the machine that will guide us trough our journey and chose a platform and a language to start coding.
In our early post we said we would use learn Javascript ES6 on an Ubuntu 16.04 LTS pc: both things have changed.
The first change is about the OS we are going to use: Canonical released a new version of Ubuntu LTS, so we are going to work with Ubuntu 18.04 LTS. The reason why we are using this OS is both that at some point in our tutorial we are going to use the Terminal and that Ubuntu actually has a far better Community than other OS, so in case of need we are going to ask help to the Internet!

The second big change in our plans is about what and how we are going to learn. First of all, did you know that the Internet is full of tutorial for learn directly the Solidity (reasons why we chose Solidity are listed below) and you don’t actually have to learn Javascript? Well we found out 3 weeks ago, thanks to our friend @quellodellamoto we discovered Cryptozombies (you can easly surf their page here): this is an awesome application for learning Solidity. It has all you need: easy tutorial and a gamification story telling which will make you Solidity addicted.
Also, last week we received (aka we bought) a copy of Mastering Ethereum, by Andreas M. Antonopoulos and Dr. Gavin Wood: you can find for free on github HERE but we highly recommend to buy a copy HERE to support these incredible authors. This book will help us A LOT on understanding Ethereum, smart contracts and Solidity

These, more or less, are the reasons why we abandoned (for now) the idea of learning Javascript and we will try to focus directly on Solidity.

So, why Solidity? And most of all, why Ethereum? Well as you probably know out there is full of cool cryptocurrencies and blockchain/DLT platforms: the most famous of course is Bitcoin, THE cryptocurrencies, it has been around since 2009 and despite some forks and loss it is still here. Even if it is so good for exchanging value (money), Bitcoin is of no use (despite some project such as RSK ) for our purpose of learning smart contract. Furthermore, even if there are a huge variety of other smart contract platform (i.e. Cardano and EOS), we are fascinated by the dream of Ethereum to become the World Computer. In fact, if Bitcoin was created to exchange money, Ethereum – with Antonopolus’s words – was born as a "general purpose" blockchain, which means that it can be programmed for a lot of scopes. To us, it will be interesting for programming:
a) smart contracts and
b) Decentralized Application, which simply are a bunch of smart contracts with a User Interface (UI).

From a techy point of view there are a LOT of things you can explore about Ethereum, we suggest to read the Yellow Paper or the Beige Paper if you are not THAT technical but still want to understand something about how the black magic is done on the Ethereum blockchain. From a legal point of view, instead, what actually is most interesting are the following features:
a) P2P network: p2p has always been a pain for lawyers, because in such a network is not always easy to find a liability framework.
b) Consensus algorithm: Ethereum – as Bitcoin – uses a Prof Of Work (POW) algorithm, which means that the blockchain can run without trust (in the parties, you still have to trust the platform itself).
c) Ethereum Virtual Machine: EVM is the machine that executes bytecode, which actually makes the smart contract to work. From a legal point of view, it is very important that this code actually acts as it is supposed to act, in order to fairly drive smart contracts instructions.

Going back to our first question, why Solidity? Actually Ethereum has a lot of different high-level language (it means – as far as we understand – that you can write in a high level language but still the code must be translated “compiled” to a lower level language, in Ethereum a bytecode):

  • Bamboo: this seems to be a new language, it is cool because it avoids loops,
  • Julia: an intermediate language for different Ethereum virtual machines,
  • LLL: historical Ethereum language, not very used today,
  • Serpent: it is similar to Python, it has some side effects,
  • Solidity: it is similar to Javascript and it is the most common used language today. For us – total noobs – is the best choice because we know a little about Javascript and because we need a strong community, the one that a popular language can make,
  • Vyper: similar to Python and Serpent.

One last question: why smart contracts? We are tecnolawyers and when er heard the word contract we just get a little wet. Even if smart contract are not always relevant to the law, as they are just a bunch of lines of code, they may become very interesting for lawyers when they actually implies some legal effects (i.e. a smart contract that regulates your smart door whenever you pay your rent).

If you are ready to follow us in the rabbit’s hole, set up your machine: download HERE the latest Ubuntu release and get ready to escort us in our trip of learning to code smart contracts on Ethereum. Next time we are going to start writing a little bit of code, with the help of MetaMask, a text editor and a web-based development tool.

Book of the day -> Mastering Ethereum – A.M.Antonopoulos and G.Wood (2018)
Code of the day -> sudo apt-get upgrade

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

✅ Enjoy the vote! For more amazing content, please follow @themadcurator for a chance to receive more free votes!

Hello @dexpandette! This is a friendly reminder that you have 3000 Partiko Points unclaimed in your Partiko account!

Partiko is a fast and beautiful mobile app for Steem, and it’s the most popular Steem mobile app out there! Download Partiko using the link below and login using SteemConnect to claim your 3000 Partiko points! You can easily convert them into Steem token!

https://partiko.app/referral/partiko