<p>People creating smart contracts on a cryptocurrency network are designing cryptographic protocols—frankly, it might be a good thing if not every JavaScript programmer takes a go at that. Bitcoin does not have a virtual machine, but there are <a href="http://bitcoin.sipa.be/miniscript/" rel="nofollow noreferrer">Miniscript</a>, <a href="https://min.sc" rel="nofollow noreferrer">Minsc</a>, or <a href="https://judica.org/blog/sapio-tutorial/" rel="nofollow noreferrer">Sapio</a> as higher level languages that translate to script. Additionally, there is an on-going development effort with <a href="https://blockstream.com/2018/11/28/en-simplicity-github/" rel="nofollow noreferrer">Simplicity</a> as a language specifically engineered to express smart contracts with provable outcomes.</p>
<p>And if you insist on EVM, check out <a href="https://www.rsk.co/" rel="nofollow noreferrer">RSK</a>.</p>

CC BY-SA 4.0
2021-08-24T04:18:01.380Z
2021-08-24T18:04:39.343Z
2021-08-24T18:04:39.343Z
Murch
<p>Is there a tool like Ethereum EVM at present? Users can write bitcoin scripts in a syntax just like python(or like other programming language); through this tool, they can be translated into bitcoin original scripts; it sounds like a new programming language has been invented.</p>
<p>In my opinion， Bitcoin script programming is based on reverse Polish expression; this is not friendly to programmers;</p>
<p>In fact, Bitcoin's opcode expression ability is very rich, and it may be unfriendly, which has affected the promotion of Bitcoin in the technical community.</p>

CC BY-SA 4.0
2021-08-24T06:16:01.950Z
@Prayank  sorry sir, Maybe I misled you by using EVM; indeed, what I want to know is whether there is a bitcoin script compiler that allows programmers to write scripts in a high-level language programming mode; this question may be more appropriate;
Ethan
CC BY-SA 4.0
2021-08-24T08:33:53.890Z
As Murch says below, check out Miniscript (encoding of Script), Policy or Minsc for a higher level language for writing scripts. Best resource on Miniscript and Policy is http://bitcoin.sipa.be/miniscript/. Best resource on Minsc is https://min.sc/
Michael Folkson
CC BY-SA 4.0
2021-08-24T09:32:13.593Z
@MichaelFolkson  AGREE about best resource points.
Ethan
CC BY-SA 4.0
2021-08-24T12:50:15.220Z
FYI, EVM is also reverse Polish notation, although there exist compilers from higher-level languages. The same is possible in principle for bitcoin script, although by design, only a very restricted subset of the things that are possible with EVM are possible with bitcoin script.
James_pic
CC BY-SA 4.0
2021-08-26T02:36:14.653Z
@MichaelFolkson Thanks for your reply. If I use miniscript, how to compile miniscript to bitcoin OP_CODE script? I don't find a compiler to do this.
Ethan
CC BY-SA 4.0
2021-08-26T11:08:28.957Z
The easiest way is to put the Miniscript in the Analyze a Miniscript section of http://bitcoin.sipa.be/miniscript/ and then press the Analyze button. That's useful for learning. But Miniscript is just an encoding of Script there is no compiling between Miniscript and Script. You'd need to use the C++ or Rust encoding/decoding code to convert Miniscript to Script in a software project. Or if you use Policy, that compiles to Miniscript and there is compiler code in the C++ and Rust implementations.
Michael Folkson
CC BY-SA 4.0
2021-08-26T11:08:38.157Z
See https://bitcoin.stackexchange.com/questions/91565/what-does-bitcoin-policy-language-offer-the-developer-that-miniscript-doesnt-w for more details
Michael Folkson
<bitcoin-core><script>
Is there a tool like Ethereum EVM at present for Bitcoin script?
Ethan
# Is there a tool like Ethereum EVM at present for Bitcoin script?

(Asked by: username_0 on 2021-08-24)

Is there a tool like Ethereum EVM at present? Users can write bitcoin scripts in a syntax just like python(or like other programming language); through this tool, they can be translated into bitcoin original scripts; it sounds like a new programming language has been invented.

In my opinion， Bitcoin script programming is based on reverse Polish expression; this is not friendly to programmers;

In fact, Bitcoin's opcode expression ability is very rich, and it may be unfriendly, which has affected the promotion of Bitcoin in the technical community.

**Tags:** bitcoin-core, script

> **Comments:**
> **username_0**: @Prayank  sorry sir, Maybe I misled you by using EVM; indeed, what I want to know is whether there is a bitcoin script compiler that allows programmers to write scripts in a high-level language programming mode; this question may be more appropriate;  
> **username_1**: As username_3 says below, check out Miniscript (encoding of Script), Policy or Minsc for a higher level language for writing scripts. Best resource on Miniscript and Policy is http://bitcoin.sipa.be/miniscript/. Best resource on Minsc is https://min.sc/  
> **username_0**: @username_1  AGREE about best resource points.  
> **username_2**: FYI, EVM is also reverse Polish notation, although there exist compilers from higher-level languages. The same is possible in principle for bitcoin script, although by design, only a very restricted subset of the things that are possible with EVM are possible with bitcoin script.  
> **username_0**: @username_1 Thanks for your reply. If I use miniscript, how to compile miniscript to bitcoin OP_CODE script? I don't find a compiler to do this.  
> **username_1**: The easiest way is to put the Miniscript in the Analyze a Miniscript section of http://bitcoin.sipa.be/miniscript/ and then press the Analyze button. That's useful for learning. But Miniscript is just an encoding of Script there is no compiling between Miniscript and Script. You'd need to use the C++ or Rust encoding/decoding code to convert Miniscript to Script in a software project. Or if you use Policy, that compiles to Miniscript and there is compiler code in the C++ and Rust implementations.  
> **username_1**: See https://bitcoin.stackexchange.com/questions/91565/what-does-bitcoin-policy-language-offer-the-developer-that-miniscript-doesnt-w for more details  

---

## 1 answers

### Answer by username_3 on 2021-08-24. Score: 4

People creating smart contracts on a cryptocurrency network are designing cryptographic protocols—frankly, it might be a good thing if not every JavaScript programmer takes a go at that. Bitcoin does not have a virtual machine, but there are [Miniscript](http://bitcoin.sipa.be/miniscript/), [Minsc](https://min.sc), or [Sapio](https://judica.org/blog/sapio-tutorial/) as higher level languages that translate to script. Additionally, there is an on-going development effort with [Simplicity](https://blockstream.com/2018/11/28/en-simplicity-github/) as a language specifically engineered to express smart contracts with provable outcomes.

And if you insist on EVM, check out [RSK](https://www.rsk.co/).


---

