We have implemented Rule 110 on Bitcoin. Similar to two-dimensional cellular automata (CA) Conway’s Game of Life, Rule 110, a one-dimensional CA, is also Turing-complete. By deduction, we have shown Bitcoin is Turing Complete, once again.

Rule 110

250 iterations of rule 110

The Rule 110 cellular automaton is a 1-dimensional elementary CA, where a linear pattern of 0s and 1s evolves according to a simple set of rules. Whether a point in the pattern will be 0 or 1 in the new generation depends on its current value and on those of its two neighbors. The Rule 110 has the following set of rules:

After introducing zero knowledge proof (ZKP) through an example, we demonstrate how it can be used as a powerful tool to increase privacy and further develop many applications building atop. We have implemented a ZKP-based escrow for purchasing physical goods using bitcoin.

Zero Knowledge Proof

A zero knowledge proof lets one party (i.e., a prover), who claims to know a secret, convince another party (i.e., a verifier) that the claim is valid, whilst not revealing the secret.

Where’s Waldo?

Finding Waldo is a game where you have to find Waldo among a sea of people that look like him.

Finding Waldo

Peggy (the prover) tells Victor (the…

Today we are extremely thrilled to publish sCrypt IDE v1.0, after over 40 iterations since our first release in early 2020. It offers multiple new critical features and significantly improves a wide range of existing features, which we selectively highlight below.


The IDE can automatically optimize and reduce the resulting Script by up to 50%. This directly translates to enormous savings of running smart contracts.

Release Build


Full IDE documentation can be found in both English and Chinese.


Code can be automatically formatted to look consistent. This is especially useful when multiple developers are collaborating on the same codebase.

Why Ethereum is never needed

The entire reason for Ethereum’s existence is to overcome Bitcoin scripting language’s “limitations”. There are four limitations listed in the Ethereum whitepaper. We analyze each of them and show all claims of the supposed limitations are false, calling its existence into question.

Lack of Turing-completeness

while there is a large subset of computation that the Bitcoin scripting language supports, it does not nearly support everything. The main category that is missing is loops.

Contrary to popular belief, Bitcoin is Turing complete. Not only are there peer-reviewed theoretical¹ proofs², but it is also empirically verified on the Bitcoin blockchain³.

One common misconception lies in…

Smartphone vs pocket calculator

We compare two smart contract blockchains, Bitcoin and Ethereum, side by side. We find Bitcoin offers superior performance, security, and cost-effectiveness, due to its skillfully constructed fundamental design. This articles focuses on their technical differences. Economic, philosophical, legal, and environmental differences are beyond the scope of the article.


Ethereum: account model and vertical scaling


In Ethereum, each smart contracts resides in an account. It has its own storage that persists across contract execution. To see how, let us examine the core smart-contract engine of Ethereum: the Ethereum Virtual Machine (EVM). It is stack based and stores data in three places: stack, memory, and storage. The former…

Part I: manual optimization

sCrypt programming is different from traditional programming done in Javascript or Python, as the compiled code size directly determines their running cost when the transaction encapsulating it is submitted to the Bitcoin network. It is thus imperative that the resulting Script is as small as possible to save transaction fees¹. We list some tips for developers to manually optimize their sCrypt contracts’ Script outputs.

1. Batch same function calls

All function calls are implemented by inlining. The function body is copied to where it is called. If there are multiple callers of the same function, code size can be saved by merging them. In the…

Outsource the training to others

Previously, we have implemented a single-layer perceptron, which can be continuously trained on Bitcoin. This can quickly become prohibitively expensive when the dataset is large and it takes many iterations to find the desired weights.


We develop a contract to outsource the training. It is a public bounty that can be collected by anyone offering the right weights that make predictions match outputs for all training dataset inputs. The computationally intensive training is done off chain and the contract only verifies the training is valid, thus making training a perceptron on Bitcoin significantly more cost efficient.

Perceptron Outsource Contract

Perceptron as an Example

Artificial intelligence, especially in the form of machine learning, has recently seen tremendous advances, with applications ranging from face recognition to autonomous vehicles. We propose to combine AI with the Bitcoin blockchain, for many salient advantages unachievable otherwise¹:

  • Open and transparent: both the code and data on the blockchain are public and can be verified by anyone and thus be trusted.
  • Collaborative datasets: everyone can contribute data and access the published data, compared to traditional siloed datasets.

Not only can Bitcoin maintain the datasets on chain for input into AIs, it can also host an AI algorithm itself to work…

Practical MPC on Bitcoin Today

We introduce an efficient protocol for multiple parties in a secure computation (MCP) to exchange their secret inputs fairly. By fairness, we mean the following two guarantees:

  1. An honest party following the protocol/contract faithfully never loses deposit, if any.
  2. If a malicious party deviating from the protocol obtains all secrets and can thus compute the output, he shall compensate all honest parties.

Allowing all inputs to be collected securely and economically, this opens the door for all kinds of MPC to be conduct on Bitcoin, without relying on the cooperation of all parties.


Previously, we introduce how to conduct MPC…

How Off-Chain Honesty Saves On-Chain Computation

We introduce a generic approach to skip on-chain computation in Bitcoin smart contracts, while ensuring security in the presence of malicious parties. In this approach, honest contracting parties can reach agreements peer to peer off chain and opportunistically decide to short-circuit complex computational alternative.

Outsource Example

Alice asks Bob to compute an input/witness x which makes function f(x) return true. For example, f can be a hash puzzle, a solution to a Sudoku puzzle or a Travelling Salesman Problem (TSP). If Bob can provide x, he is paid in Tx1 as shown below. Otherwise, Alice can cancel and get her fund back…


sCrypt Inc (https://scrypt.io) is a company with mission to providing integrated on-chain smart contracting solutions on Bitcoin SV. scrypt@moneybutton.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store