{"repo":"ergoplatform/sigmastate-interpreter","free":true,"listed":false,"github":"https://github.com/ergoplatform/sigmastate-interpreter","clone":"git clone https://github.com/ergoplatform/sigmastate-interpreter.git","description":"ErgoScript compiler and ErgoTree Interpreter implementation for Ergo blockchain","language":"Scala","stars":66,"topics":["authentication-language","interpreter","ergoplatform","blockchain","compiler"],"license":"MIT","category":"blockchain-web3","readme_excerpt":"ErgoScript compiler and ErgoTree interpreter This repository contains implementations of ErgoScript compiler and ErgoTree Interpreter for a family of Sigma-protocol based authentication languages (or simply Sigma language). This library is used internally in Ergo Node and ergo-wallet, the public interfaces are subject to change. For development of Ergo applications using JVM languages (Java/Scala/Kotlin/etc) a better alternative is to use Appkit. The library is cross-compiled to JS using Scala.js and the main abstractions can be used from JS directly by importing NPM module. See README for details. Sigma Language Background Every coin in Bitcoin is protected by a program in the stack-based Script language. An interpreter for the language is evaluating the program against a context (few variables containing information about a spending transaction and the blockchain), producing a single boolean value as a result. While Bitcoin Script allows for some contracts to be programmed, its abilities are limited. Also, to add new cryptographic primitives, for example, ring signatures, a hard-fork is required. Generalizing the Bitcoin Script, ErgoScript compiler and ErgoTree interpreter implement an authentication language which allows to express coin spending conditions. The ErgoScript Compiler compiles the source code into ErgoTree byte code, which can be saved in UTXO coins to protect their spending (same as in Bitcoin). ErgoTree, in turn, is a bytecode language and memory representat","default_branch":null,"files":null,"tree":[],"storefront":"/r/ergoplatform","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ergoplatform/sigmastate-interpreter/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}