{"id":19154995,"url":"https://github.com/TritonVM/triton-vm","last_synced_at":"2025-04-19T17:31:07.266Z","repository":{"id":40735647,"uuid":"432742058","full_name":"TritonVM/triton-vm","owner":"TritonVM","description":"Triton is a virtual machine that comes with Algebraic Execution Tables (AET) and Arithmetic Intermediate Representations (AIR) for use in combination with a STARK proof system.","archived":false,"fork":false,"pushed_at":"2024-10-29T12:14:23.000Z","size":12043,"stargazers_count":246,"open_issues_count":34,"forks_count":37,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-10-29T13:31:59.792Z","etag":null,"topics":["cryptography","rust","stark","zero-knowledge","zk-starks"],"latest_commit_sha":null,"homepage":"https://triton-vm.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TritonVM.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-28T14:57:16.000Z","updated_at":"2024-10-29T12:13:37.000Z","dependencies_parsed_at":"2023-09-27T22:23:55.990Z","dependency_job_id":"48f913ae-b4a2-4412-8ed2-7465e7232813","html_url":"https://github.com/TritonVM/triton-vm","commit_stats":{"total_commits":947,"total_committers":14,"mean_commits":67.64285714285714,"dds":0.2713833157338965,"last_synced_commit":"29780b06dfefccde75e975a727396a85ddbff3d8"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonVM%2Ftriton-vm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonVM%2Ftriton-vm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonVM%2Ftriton-vm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TritonVM%2Ftriton-vm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TritonVM","download_url":"https://codeload.github.com/TritonVM/triton-vm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223804541,"owners_count":17205740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","rust","stark","zero-knowledge","zk-starks"],"created_at":"2024-11-09T08:29:07.542Z","updated_at":"2025-04-19T17:31:07.260Z","avatar_url":"https://github.com/TritonVM.png","language":"Rust","funding_links":[],"categories":["Technical details","Projects","Uncategorized"],"sub_categories":["Zk-VM","Uncategorized"],"readme":"# Triton VM\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![GitHub CI](https://github.com/TritonVM/triton-vm/actions/workflows/main.yml/badge.svg)](https://github.com/TritonVM/triton-vm/actions)\n[![crates.io](https://img.shields.io/crates/v/triton-vm.svg)](https://crates.io/crates/triton-vm)\n[![Spec: online](https://img.shields.io/badge/Spec-online-success)](https://triton-vm.org/spec/)\n[![Coverage Status](https://coveralls.io/repos/github/TritonVM/triton-vm/badge.svg?branch=master)](https://coveralls.io/github/TritonVM/triton-vm?branch=master)\n[![Check Links](https://github.com/TritonVM/triton-vm/actions/workflows/link_checker.yml/badge.svg)](https://github.com/TritonVM/triton-vm/actions/workflows/link_checker.yml)\n\nTriton is a virtual machine that comes with Algebraic Execution Tables (AET) and Arithmetic\nIntermediate Representations (AIR) for use in combination with\na [STARK proof system](https://neptune.cash/learn/stark-anatomy/). It defines a Turing\ncomplete [Instruction Set Architecture](https://triton-vm.org/spec/isa.html), as well as the\ncorresponding [arithmetization](https://triton-vm.org/spec/arithmetization.html) of the VM. The\nreally cool thing about Triton VM is its efficient _recursive_ verification of the STARKs produced\nwhen running Triton VM.\n\n## Getting Started\n\nIf you want to start writing programs for Triton VM, check out the\n[Triton TUI](https://github.com/TritonVM/triton-tui). If you want to generate or verify proofs of\ncorrect execution, check out the [Triton CLI](https://github.com/TritonVM/triton-cli). If you want\nto use Triton VM as a library, check out the [examples](triton-vm/examples).\n\n## Recursive STARKs of Computational Integrity\n\nNormally, when executing a machine – virtual or not – the flow of information can be regarded as\nfollows. The tuple of (`input`, `program`) is given to the machine, which takes the `program`,\nevaluates it on the `input`, and produces some `output`.\n\n![](./specification/src/img/recursive-1.svg)\n\nIf the – now almost definitely virtual – machine also has an associated STARK engine, one additional\noutput is a `proof` of computational integrity.\n\n![](./specification/src/img/recursive-2.svg)\n\nOnly if `input`, `program`, and `output` correspond to one another, i.e., if `output` is indeed the\nresult of evaluating the `program` on the `input` according to the rules defined by the virtual\nmachine, then producing such a `proof` is easy. Otherwise, producing a `proof` is next to\nimpossible.\n\nThe routine that checks whether a `proof` is, in fact, a valid one, is called the Verifier. It takes\nas input a 4-tuple (`input`, `program`, `output`, `proof`) and evaluates to `true` if and only if\nthat 4-tuple is consistent with the rules of the virtual machine.\n\n![](./specification/src/img/recursive-3.svg)\n\nSince the Verifier is a program taking some input and producing some output, the original virtual\nmachine can be used to perform the computation.\n\n![](./specification/src/img/recursive-4.svg)\n\nThe associated STARK engine will then produce a proof of computational integrity of _verifying_ some\nother proof of computational integrity – recursion!\nOf course, the Verifier can be a subroutine in a larger program.\n\nTriton VM is specifically designed to allow fast recursive verification.\n\n## Project Status\n\nTriton VM is still under construction. We currently don't recommend using it in production.\n\nPlease note that the [Instruction Set Architecture](https://triton-vm.org/spec/isa.html) is not to\nbe considered final. However, we don't currently foresee big changes.\n\n## Specification\n\nThe specification can be found [online](https://triton-vm.org/spec/). Alternatively, you can\nself-host the [mdBook](https://rust-lang.github.io/mdBook/) by first installing the dependencies,\nthen serving the mdBook.\n\n```sh\ncargo install mdbook\ncargo install mdbook-katex\ncargo install mdbook-linkcheck\n\nmdbook serve --open\n```\n\nPotentially, `~/.cargo/bin` needs to be added to the PATH.\n\n## Running the Code\n\nThe Rust implementation of Triton VM resides in [triton-vm](./triton-vm) and can\nbe [found on crates.io](https://crates.io/crates/triton-vm).\n\nTriton VM depends on the [`twenty-first`](https://crates.io/crates/twenty-first) cryptographic\nlibrary.\n\nFor trying out the code, [install Rust](https://www.rust-lang.org/tools/install) and run:\n\n```sh\n~ $ git clone https://github.com/TritonVM/triton-vm.git\n~ $ cd triton-vm\n~/triton-vm $ make test\n```\n\nFor local development of both libraries, it is encouraged to\nfollow [GitHub's fork \u0026 pull workflow][gh-fap] by forking and cloning both, place `twenty-first`\nrelative to `triton-vm`, and change the dependency to be `path`-local:\n\n[gh-fap]: https://reflectoring.io/github-fork-and-pull/\n\n```sh\n~ $ git clone git@github.com:you/triton-vm.git\n~ $ git clone git@github.com:you/twenty-first.git\n~ $ cd triton-vm\n~/triton-vm $ ln -s ../twenty-first/twenty-first twenty-first\n~/triton-vm $ sed -i '/^twenty-first =/ s/{.*}/{ path = \"..\\/twenty-first\" }/' triton-vm/Cargo.toml \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTritonVM%2Ftriton-vm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTritonVM%2Ftriton-vm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTritonVM%2Ftriton-vm/lists"}