What is Lisk? And what it isn't.

Since the launch of Lisk there was a lot of confusion about what it really is, and what it enables people to do in the future. This is partly our fault because during the ICO we advertised Lisk within other cryptocurrency communities, and we still haven’t released our vision paper. With this blog post I want to clean up some misunderstandings, and explain briefly what Lisk is and what it isn’t.

By Lisk

26 Jul 2016

whatislisk-andwhatitisnt-MAIN@2x.png

Misunderstandings

There are various misunderstandings, myths, and other wrong facts about Lisk being circulated around. So let’s clean up the most prominent ones.

Lisk is a fork of Ethereum!

No! The Lisk code base was forked from theCrypti project Oliver and I were a part of for 18 months before we started Lisk. About 2 years ago Crypti collected 750 BTC in order to develop a blockchain application platform. In the end the Crypti foundation developed a code base which was a good starting point for a new project. However, for the ultimate goal the available financial reserves were simply not enough to develop the idea to its fullest extent, even though it was managed extremely carefully. Oliver and I saw the potential and decided to take over, giving Crypti holders an exit opportunity, and giving the world the decentralized blockchain application platform it deserves. To get a more detailed understanding why Lisk is different than Ethereum, continue reading.

Lisk is written in JavaScript, which is not secure!

No!Even though JavaScript is a weakly typed language it doesn’t mean that it is inherently unsecure. Yes, the programming language used plays an important role, but at the end of the day it is the developers obligation to write secure code in the first place. There are other programming languages we could have used, which owing to their strongly typed nature, make it less probable for the developer to write bad code. However, that doesn’t mean these languages do not come with other important trade offs. We chose JavaScript because it runs literally everywhere, is extremely popular & widespread, and has huge companies like Google or Microsoft working on its speed and security across a wide range of devices. Therefore, its ever increasing developer base and ease of access played a huge role in that decision.

With regard to JavaScript’s known limitation on number precision larger than 32 bits. We have worked around this limitation by conducting integer based arithmetic throughout the code base usingBigNumber.js(a library for arbitrary-precision decimal and non-decimal arithmetic). Blockchain application developers are largely shielded by our API, or in cases which require it, they can utilize the same library used by the Lisk core. Therefore, this limitation is not a problem, nor has it been since Lisk’s inception.

To further strengthen the code base, we are planning an eventual transition to TypeScript — a strongly typed JavaScript super-set — which once implemented should mitigate the issues normally associated with weakly typed code. We are also contemplating pushing back certain critical core features to C++ for maximum speed and security. In summary, we are leveraging all options available to solve some of the known problems associated with using JavaScript on such a project as Lisk.

Lisk is a competitor to every blockchain project!

No!While it’s true that you can implement practically everything into a Lisk sidechain, we believe that the blockchain space is big enough to have several projects solving the same issues.

  • Decentralized storage can be done on a stand-alone blockchain or on Lisk.
  • Anonymous transactions can be done on a stand-alone blockchain or on Lisk.
  • A social blogging system can be done on a stand-alone blockchain or on Lisk.
  • And the list goes on..

The best part is, if you need one of these services in your Lisk blockchain app you don’t need to re-implement everything. You can just plug into third party technologies and leverage their functionalities from within your Lisk blockchain app. Continue reading to learn more about that.

What is Lisk

A decentralized network

WhatIsLisk-1.jpeg

<pdecentralized network such as Bitcoin, Nxt, or BitShares. It doesn’t utilize Proof of Work like Bitcoin, or Proof of Stake like Nxt. Lisk uses a simplified implementation of BitShares’ original consensus algorithm called Delegated Proof of Stake. That means every LSK holder can vote for mainchain delegates which are securing the network. There are only a maximum of 101 active mainchain delegates which always got the most votes on the whole network, and only they can earn block generation rewards, that means there is a financial incentive to become an active delegate. Every other delegate is on standby awaiting to become elected, or alternatively, securing a Lisk sidechain.

A cryptocurrency

Lisk is a cryptocurrency and its token is called LSK. To send LSK from one account to another takes 10 seconds, after about 1–2 minutes the transaction can be deemed immutable.

A framework

<pTheLisk App SDKis a framework to deploy your own sidechains and develop blockchain applications on top of them. Everything is written in JavaScript. That means you can develop platform independent social networks, messengers, games, financial applications, prediction markets, exchanges, storage platforms, contract execution platforms, sharing economies, online shops, IoT applications, and much more on your own blockchain, fully decentralized, and without the hassle of complicated consensus protocols or P2P networking algorithms.

WhatIsLisk-2.png

A sidechain platform

In the previous section, you read that the Lisk App SDK enables you to deploy a sidechain to Lisk. This sidechain is a fully customizable blockchain, free of pollution or spam on the mainchain or other sidechains. All specifications, parameters, and transaction types can be changed to fit perfectly to your blockchain application.

In order to prevent spam on a blockchain there is always a token of value which is required to save any data on the blockchain, e.g. a fee to send transactions. In your Lisk sidechain you can either use the LSK tokens from the mainchain or an entirely new custom token.

In case you want to use mainchain LSK tokens within your sidechain you have one limitation. You can’t simply transfer tokens between different blockchains. Remember, a sidechain is a completely new and independent blockchain! You also can’t send Litecoin to the Bitcoin network.

That’s why there is a special transaction type to transfer LSK tokens from the mainchain to a sidechain. Practically, the LSK tokens never leave the mainchain. They simply get transferred to the sidechain owners Lisk account (on the mainchain!). At the same time, the equal number of LSK tokens will be replicated on the sidechain and can be used by yourself as normally.

That means in the case of a badly written sidechain or blockchain application, all LSK tokens are safe and can be retrieved easily by the sidechain owner. However, this also means that you have to trust the sidechain owner. This doesn’t make sense for all types of blockchain applications, only for some owned by startups or reputable individuals.

WhatIsLisk-3.jpeg

In the case you want to develop a truly trustless application, and you don’t want to hold LSK tokens belonging to your users, then you can simply issue your own custom token (or multiple ones) on the sidechain and use them as a completely new cryptocurrency. That means you can distribute them in an ICO or sell them on exchanges. This way your users have full and exclusive control over their custom tokens in a completely trustless way, and can use them inside your blockchain application. To easily exchange custom token against LSK you might implement a mini-exchange system inside your blockchain application.

If a hardfork is necessary because there was a bug discovered in the Lisk sidechain or blockchain application, then only the sidechain needs to be hardforked. The mainchain stays completely unharmed and immutable.

There are ongoing discussions about public, private, and consortium blockchains. With Lisk you can build whatever you want and need. However, in order to attract startups and developers we are putting our main focus on public consortium blockchains. That means federated blockchains which are secured by delegates chosen from a public marketplace which are being paid for generating blocks, either by the blockchain application owner or its users. Continue reading in order to learn more about the Lisk delegate marketplace.

A blockchain application platform

At the end of the day sidechains are only decentralized databases of blockchain applications; which allow the issuance of tokens of value, being immutable, and having a decentralized network. For our users the most interesting part is the blockchain application platform.

The Lisk App SDK not only allows the deployment of sidechains, it also offers all necessary tools to develop a blockchain application. A blockchain application is not only a script running in a decentralized and trustless manner. It’s much more powerful. It basically consists of four parts.

  • Consensus Algorithm (e.g. DPoS)
  • Sidechain (as the immutable database)
  • Back end (the application logic)
  • Front end (the application user interface)

A blockchain application is a fully fledged application, with its own consensus algorithm (by default DPoS), blockchain, optional custom token, back end, and front end. However, it can also connect into the existing ecosystem of Lisk by utilizing the LSK token, leveraging other blockchain applications (i.e. blockchain services), attracting sidechain delegates, and starting with an existing user base.

WhatIsLisk-4.jpeg

It is important to note, that thanks to the Lisk App SDK you are not only able to develop the back end of your application (i.e. the functionalities), you are also able to develop a front end (i.e. user interface). This way you can easily create complete blockchain applications ready to download and use in one convenient package. In this case the front end can also be accessed in a decentralized way, what is currently a unique feature within the blockchain industry.

We often hear the argument that if the code is not stored on the blockchain then it’s not a decentralized application. We have to make a distinction here, the application itself is running on your computer just as the Bitcoin client or a Torrent client. That means you have to download it first. Now there are multiple users running the application; some of them have the special permission to generate new blocks inside the sidechain and therefore secure the network (=delegates), others are simply using the application (=users). Your blockchain application and sidechain is secured by multiple devices now and therefore is decentralized, thus it’s a decentralized application.

A blockchain service platform

Blockchain services are a sub-category of blockchain applications. They allow you to do something very specific, similar to a single purpose application.

Some examples to name are:

  • Identity as a service (e.g. single sign-in for various websites with encrypted personal information directly accessible on demand)
  • Decentralized hosting as a service (e.g. to store images or documents in a decentralized, encrypted cloud)
  • Smart contract execution as a service (e.g. to calculate a random number which is safe from manipulation)
  • Oracles as a service (e.g. to get opinions about your product or to get the result of a real life event)

The great thing about Lisk blockchain services are that they are all plugged into the Lisk mainchain and ecosystem, because they are all running on their own Lisk sidechains. That means that once such a service exists every other blockchain application developer can leverage it. For example, if you want to develop a social network and want to store user images, you can plug into a blockchain service which enables you to do exactly that (the other option is to create a bridge to a third party decentralized hosting service, i.e. StorJ).

That means over time Lisk blockchain applications can become more complex and feature-rich, the whole Lisk app ecosystem grows. It’s like a brain making more and more neural connections to become more capable.

All those blockchain services can fall back on the existing Lisk ecosystem with its users and the LSK token, hopefully stimulating demand for it. Additionally, all those blockchain services are independent and if they fail, only they fail. What remains is a small sidechain entry on the Lisk mainchain, that’s it.

Another powerful component is the open source character. While there are ways to hide JavaScript code, we estimate the majority won’t do it in order to gain trust. Now, every time someone integrates a cool feature into his blockchain application or service everyone else can copy it, enhance it, and integrate it into his own blockchain application or service.

Some examples where being open source has real advantages:

  • In the beginning we won’t have the necessary libraries to execute Solidity smart contracts on Lisk, however it’s possible to integrate the EVM into any Lisk sidechain. If someone does that at one point of time, everyone could utilize the source code and would be able to either execute smart contracts locally inside their sidechain, or offer smart contract execution as a service. At that point developers won’t need to plug into the Ethereum network anymore.
  • If a project fails because of political or financial reasons someone else can simply use the code and re-deploy the blockchain application again. He might even write a sidechain migration so he can take the old users with him to his new sidechain.

A decentralized directory for applications

Nowadays, we have Apple’s App Store and Google’s Play Store. Both centralized solutions owned by corporations for centralized applications.

With Lisk we not only have the network, ecosystem, and SDK for decentralized blockchain applications, we also have a decentralized application directory directly within the client which everyone can access. All blockchain applications and services built on the Lisk platform have to be registered on the Lisk mainchain, this way the connection between mainchain and sidechain is created (for the LSK replication within the sidechain) and the application directory can find all blockchain applications and services. During the registration the developer is able to set a unique blockchain application name, description, category, icon, tags, and download link.

WhatIsLisk-5.jpeg

With that we offer an alternative app store for decentralized, platform-independent, blockchain applications.

A decentralized and public delegate marketplace

The Lisk delegate marketplace is a way to connect blockchain application developers and sidechain delegates. This is necessary, because every sidechain is an independent blockchain which needs its own set of nodes to secure it. If blockchain application developers don’t use our default consensus algorithm (e.g. PoS or PoW) they will have to take care of the sidechain miners/forgers themselves, which might be a better option for some use-cases. However, if the blockchain application developer is using our default consensus algorithm (DPoS) he will be able to rent delegates from the delegate marketplace for a recurring fee.

WhatIsLisk-6.jpeg

This kind of delegate marketplace can only work with DPoS and it enables us to do a lot more with Lisk than other platforms can do.

  • Supporting third party software like Bitcoin (or IPFS, Ethereum, etc.)

Let’s say you have a blockchain application which saves purchase receipts on the sidechain for every Bitcoin transaction your users are doing. How do you get the Bitcoin transactions of your users? An oracle is far to slow and a blockchain explorer is centralized. That means you have to run the Bitcoin client locally next to your blockchain application in order to access its API and get all necessary data immediately. That means these kind of delegates will have to promote themselves as sidechain delegates with a local Bitcoin instance running. This will be one of the attributes a delegate will have inside the delegate marketplace. The same applies to any other third party software, centralized and decentralized.

WhatIsLisk-7.jpeg
  • Staying in certain jurisdictions for legal reasons

Some blockchain applications might offer features which are illegal in one country and legal in another. The startup behind the blockchain application might be very serious about it and wants to stay 100% legal, that means the sidechain needs to be secured by nodes which are only running in the jurisdictions where the blockchain application features are legal. The node country will be another attribute a delegate will have inside the delegate marketplace.

  • Generating income for everyone in the world

Every sidechain delegate can be rented for a fee they define (e.g. 10 LSK for every 100 blocks). Imagine in two years you can secure 50 niche blockchain applications with your Raspberry Pi 5 which you bought for $15, generating a monthly income of $50. For many, this might not sound like much, but in large parts of the world this is enough money to last for a month. The world is becoming more connected every day and even in those parts of the world the internet accessibility is improving. Making this scenario not fiction, but a very possible reality.

  • Lite clients for every blockchain application and service

Thanks to federated sidechains it’s extremely easy to update the code and introduce changes. Even more important, it is extremely easy to develop a lite client for your blockchain application or service. We estimate that mobile devices will be (and already are) the computers of the future and nobody wants to stay in sync with a blockchain on mobile devices. This means we need to let users access any blockchain application with a simple click inside the application directory, without any installation process. This can be done with a lite client which is receiving the whole blockchain application (back end and front end) from a sidechain delegate in a decentralized way.

What Lisk isn’t

A smart contract platform

I hope that the above explanations showed that we are not a smart contract platform that simply executes Solidity contracts inside an EVM fork. Lisk blockchain applications are integrating their features directly into their back end.

A few examples how you can implement specific features in a Lisk blockchain application:

  • Authorization within a blockchain application

You can completely rely on the Lisk APIs here. Your users can simply use their Lisk passphrase, which always converts to the same blockchain application account. For security reasons we suggest users to setup a second passphrase on the mainchain and never input this second passphrase on a sidechain.

→ You can now build applications that require users to authorize themselves. This is important for all kinds of applications.

  • Sending a message, writing a blog post

You have to add a new transaction type which allows you to append text with the required length. Additionally, you have to add two API calls to initiate this new transaction and to retrieve the content of a transaction from the sidechain.

→ You can now build a decentralized messaging service, social network, or blogging system. You can even develop voting systems by relying on the stake of individual users.

  • Setting a flag

Again, you simply have to add a new transaction type which allows you to set a boolean state of true or false.

→ You can now build a decentralized Internet of Things application that allows you to securely (with authorization!) turn on gadgets with a simple transaction, which can be just a push on a button.

  • Generating random numbers

Every calculation within a Lisk blockchain application needs to be deterministic. That means every node executing the blockchain application code has to come to the same end results. So you can’t use a random() JavaScript function, you have to rely on other methods. One option is to calculate a random number of the next 10 block IDs. Another option for a system with multiple users is to force everyone to announce a number and calculate the random number with the help of every announced number.

→ You can now build games that require a random number, e.g. a slot machine.

A Bitcoin startup

We are a blockchain startup, and more importantly a Bitcoin independent network; running on our own blockchain, with its own cryptocurrency, and full control over how the platform evolves over the forthcoming years. This should become evidently clear if you check out whichconferences, meetups, and events we are attending.

A pump and dump

Many users are urging us to spend our funds on unnecessary stuff and give out exorbitant bounties. We won’t! We are here to build and promote the platform consistently over a long time. The development speed accelerates over time once the team grows and internal processes are being established. The promotion is growing in steps and certain marketing campaigns only make sense once the project is at a specific stage in terms of development. We estimate our funds are enough for a minimum of 5 years.

Ready…

Lisk isn’t ready, else there wouldn’t have been an ICO! Some parts of our great vision still take months, other parts maybe years. It doesn’t take a week to revolutionize the app market.