Bitcoin: Can you see me? Can I build a decentralized application?

Tjark Friebe
BlockchainSpace
Published in
4 min readOct 30, 2017

--

Who can see me in the Bitcoin network? How well can I as a developer build Dapps on Bitcoin? In this blog post of the series on the Bitcoin blockchain, I will talk about anonymity and scripting in the Bitcoin network.

Let’s start with anonymity. This topic is relevant because the Bitcoin blockchain is often used to make payments for illegal activities. Thus, there are many users that want to remain anonymous in the network. To what extent this is possible, will be outlined in the following.

Level of anonymity

The level of anonymity refers to:

whether the identity of a user on the blockchain is openly transparent — Walsh et al. 2016

In order to participate in the Bitcoin network and make transactions, users need a virtual wallet that provides them with a public/private key pair. The address of a user is derived from a hash of his public key. This eventually provides a user with pseudonymity.

Although the user could also directly use his public key for transactions, it is recommended to use a new address for every transaction as this prevents comparison based attacks and the tracking of coin flows. Such attacks can harm security and privacy.

However, even hiding behind many pseudonyms does not guarantee that identifying information is not revealed. Because various strategies exist to de-anonymize users in the Bitcoin blockchain, the degree of anonymity is somewhat limited. Consequently, there is no real anonymity in Bitcoin, only pseudonymity under which users can still be traced back.

When taking into consideration that the public Bitcoin blockchain openly reveals all transaction data without encryption, it can be anticipated that some developers who want to create decentralized applications on the Bitcoin blockchain might not be able to do so due to privacy concerns or regulatory requirements. Such openness is especially a hindrance for most business use cases. As a consequence companies form consortia to build applications on private, permissioned blockchains that do not reveal data openly to the public. I will go more into detail here when talking about Hyperledger Fabric.

Another important blockchain characteristic for both, corporate and non-corporate use-cases is a blockchain’s scripting possibility.

Level of scripting possibility

How easy is it for developers to create decentralized applications on top of Bitcoin? The level of scripting possibility tries to answer this for each blockchain. For developers the ease of scripting (or programming) is highly important in order to efficiently develop decentralized applications (Dapps).

With respect to scripting, the Bitcoin blockchain by itself is rather limited as it relies on a scripting language that is non-Turing-complete and thus does not support complex loops.

The decision to implement such a restricted scripting language on the one hand leads to lower vulnerability to external attacks on the Bitcoin blockchain, but on the other hand limits the possibility to create smart contracts. Smart contracts are code snippets, if-then functions, that are run across the blockchain nodes and that are necessary to build sophisticated decentralized applications.

Although these limitations might seem to be a major hindrance for developers that want to develop more complex decentralized applications on top of the Bitcoin blockchain, it should be kept in mind that there are various projects that aim to overcome Bitcoin’s scripting limitations.

Solutions usually provide features on higher layers of the software stack. One of those is RSK Lab’s RootStock project. As a two-way pegged sidechain to Bitcoin, it aims to provide a Turing-complete scripting language and thus enables developers to create decentralized applications on Bitcoin’s large, existing network. At the time of writing (March 2017), RSK has set up a test network for partner developers and plans to gradually open it to the public.

Another promising approach is Bitcoin’s SegWit soft-fork. Among many other technical features, it would bring script versioning to the Bitcoin protocol. This enables developers to update current script versions and thus add Turing-complete scripting without the need for hard-forks.

This illustrates the future possibilities for complementors that want to build complex decentralized applications on the Bitcoin blockchain. Still, as changes to the Bitcoin protocol are rather rare and complicated, the platform is currently not the most attractive one for creating complex applications. Others, such as Ethereum, offer Turing-complete scripting, which makes Dapp development feasible and viable.

Ethereum? What is the difference to Bitcoin and how does it support Dapp developers? To find out, see here.

To see an overview of all articles, go here.

--

--