You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pages/stack/fault-proofs/asterisc.mdx
+23-20Lines changed: 23 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,13 +3,14 @@ title: Asterisc
3
3
lang: en-US
4
4
description: Learn about Asterisc
5
5
---
6
+
6
7
# Asterisc
7
8
8
9
[Asterisc](https://github.com/protolambda/asterisc/tree/master) is an alternative fault-proof VM for the OP Stack, crafted to validate RISC-V program execution via an interactive fraud-proof mechanism. Asterisc bridges simplicity and functionality, delivering a minimalist yet powerful solution for optimistic rollup fraud-proofing. Leveraging the RISC-V architecture, it offers:
9
10
10
-
- Support for 64-bit operations
11
-
- Concurrent yet deterministic threading
12
-
-Compatibility with RISC-V’s expanding ecosystem
11
+
* Support for 64-bit operations
12
+
* Concurrent yet deterministic threading
13
+
*Compatibility with RISC-V's expanding ecosystem
13
14
14
15
Read more about fault-proofs in our [Fault-proof explainer](/stack/fault-proofs/explainer)
15
16
@@ -21,17 +22,17 @@ Ready to dive in? Keep reading or head over to the [Asterisc repo](https://githu
21
22
22
23
## Getting started
23
24
24
-
1. Read through the [additional repo docs](https://github.com/protolambda/asterisc/tree/master/docs).
25
-
2. Use Foundry to compile the associated smart contracts.
26
-
3. Compile test binaries using the [`Makefile`](https://github.com/protolambda/asterisc/blob/master/tests/go-tests/Makefile).
27
-
4. Execute `rvgo` tests to validate both on-chain and off-chain operations through RISC-V unit tests.
25
+
1.Read through the [additional repo docs](https://github.com/protolambda/asterisc/tree/master/docs).
26
+
2.Use Foundry to compile the associated smart contracts.
27
+
3.Compile test binaries using the [`Makefile`](https://github.com/protolambda/asterisc/blob/master/tests/go-tests/Makefile).
28
+
4.Execute `rvgo` tests to validate both on-chain and off-chain operations through RISC-V unit tests.
28
29
29
30
## Key components
30
31
31
-
-**`rvgo`:** A Go-based RISC-V emulator with two operational modes:
32
-
-**`Fast Mode`:** Executes one instruction per step on the VM state.
33
-
-**`Slow Mode`:** Emulates one instruction per step using a VM state oracle.
34
-
-**`rvsol`:** A Solidity/Yul implementation of the slow-mode step for EVM compatibility.
32
+
***`rvgo`:** A Go-based RISC-V emulator with two operational modes:
33
+
***`Fast Mode`:** Executes one instruction per step on the VM state.
34
+
***`Slow Mode`:** Emulates one instruction per step using a VM state oracle.
35
+
***`rvsol`:** A Solidity/Yul implementation of the slow-mode step for EVM compatibility.
35
36
36
37
### Yul in Solidity
37
38
@@ -42,11 +43,12 @@ Yul is chosen for its simplicity and precision, offering direct mirroring with G
42
43
## Supported RISC-V subsets
43
44
44
45
Here's a few key subsets. For the complete list, see the [repo](https://github.com/protolambda/asterisc?tab=readme-ov-file#risc-v-subset-support).
45
-
-`RV32I`: Base 32-bit instruction set
46
-
-`RV64I`: 64-bit instruction set
47
-
-`RV32M` and `RV64M`: Multiplication
48
-
-`RV32A` and `RV64A`: Atomics
49
-
- Compact instructions for Rust: Work in progress
46
+
47
+
*`RV32I`: Base 32-bit instruction set
48
+
*`RV64I`: 64-bit instruction set
49
+
*`RV32M` and `RV64M`: Multiplication
50
+
*`RV32A` and `RV64A`: Atomics
51
+
* Compact instructions for Rust: Work in progress
50
52
51
53
Unsupported operations are implemented as no-ops, ensuring compatibility with the Go runtime.
52
54
@@ -57,17 +59,18 @@ The following section highlights specific advantages that Asterisc provides over
57
59
### Benefits over Cannon
58
60
59
61
[Cannon](https://github.com/ethereum-optimism/cannon/), originally developed by [`geohot`](https://github.com/geohot/) and now maintained by Optimism, offers similar functionality but has key differences:
60
-
- Cannon operates on a 32-bit MIPS architecture, whereas Asterisc uses RISC-V.
61
-
- Asterisc supports 64-bit operations and deterministic threading, making it more future-ready.
62
+
63
+
* Cannon operates on a 32-bit MIPS architecture, whereas Asterisc uses RISC-V.
64
+
* Asterisc supports 64-bit operations and deterministic threading, making it more future-ready.
62
65
63
66
### Benefits over Cartesi
64
67
65
68
[Cartesi](https://github.com/cartesi/) provides RISC-V fraud-proofing for a full machine, including numerous additional features. However, this added complexity can introduce risks. Asterisc focuses on simplicity by running single-process executions with minimal system calls.
66
69
67
70
### Benefits over WebAssembly
68
71
69
-
Arbitrum’s WebAssembly-based fraud-proofing leverages a business-source license and transformation to WAVM, limiting its general usability. In contrast, Asterisc is open-source under the MIT license, offering broader applicability.
72
+
Arbitrum's WebAssembly-based fraud-proofing leverages a business-source license and transformation to WAVM, limiting its general usability. In contrast, Asterisc is open-source under the MIT license, offering broader applicability.
70
73
71
74
## Contributing
72
75
73
-
Asterisc is designed to run Go programs for fraud-proofing optimistic rollups. Contributions that align with its goals of simplicity, minimalism, and compatibility are highly encouraged.
76
+
Asterisc is designed to run Go programs for fraud-proofing optimistic rollups. Contributions that align with its goals of simplicity, minimalism, and compatibility are highly encouraged.
0 commit comments