From 423ae8eb4ecca51736d2326cba36d460bdd33c0e Mon Sep 17 00:00:00 2001 From: "Abdel @ StarkWare" Date: Wed, 31 Jul 2024 09:20:23 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20init=20`raito`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/CODEOWNERS | 1 + .github/ISSUE_TEMPLATE/01_FEATURE_REQUEST.md | 11 +++ .github/ISSUE_TEMPLATE/02_BUG_REPORT.md | 13 ++++ .../ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md | 7 ++ .github/PULL_REQUEST_TEMPLATE.md | 7 ++ .github/linter/base_style.rb | 4 ++ .github/linter/readme_style.rb | 12 ++++ .github/workflows/build.yml | 18 +++++ .github/workflows/check.yml | 26 +++++++ README.md | 65 +++++++++++++++++- Scarb.lock | 6 ++ Scarb.toml | 7 ++ docs/img/memes/raito_shinigami_fusion.jpg | Bin 0 -> 97746 bytes src/engine.cairo | 19 +++++ src/lib.cairo | 3 + src/main.cairo | 13 ++++ 16 files changed, 210 insertions(+), 2 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 .github/ISSUE_TEMPLATE/01_FEATURE_REQUEST.md create mode 100644 .github/ISSUE_TEMPLATE/02_BUG_REPORT.md create mode 100644 .github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/linter/base_style.rb create mode 100644 .github/linter/readme_style.rb create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/check.yml create mode 100644 Scarb.lock create mode 100644 Scarb.toml create mode 100644 docs/img/memes/raito_shinigami_fusion.jpg create mode 100644 src/engine.cairo create mode 100644 src/lib.cairo create mode 100644 src/main.cairo diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..53811172 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @b-j-roberts diff --git a/.github/ISSUE_TEMPLATE/01_FEATURE_REQUEST.md b/.github/ISSUE_TEMPLATE/01_FEATURE_REQUEST.md new file mode 100644 index 00000000..ff340577 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/01_FEATURE_REQUEST.md @@ -0,0 +1,11 @@ +--- +name: Feature request +about: suggest new feature +title: "[feat] " +labels: "feature" +assignees: "" +--- + + + +#### References diff --git a/.github/ISSUE_TEMPLATE/02_BUG_REPORT.md b/.github/ISSUE_TEMPLATE/02_BUG_REPORT.md new file mode 100644 index 00000000..57a92f1b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/02_BUG_REPORT.md @@ -0,0 +1,13 @@ +--- +name: Bug report +about: create bug report +title: "[bug] " +labels: "bug" +assignees: "" +--- + +**ver:** + + + +**How to reproduce:** diff --git a/.github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md b/.github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md new file mode 100644 index 00000000..0132b950 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md @@ -0,0 +1,7 @@ +--- +name: Codebase improvement +about: docs, ci, tooling, other +title: "[dev] " +labels: "dev" +assignees: "" +--- diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..87fcfe5b --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,7 @@ + + +- [ ] issue # +- [ ] follows contribution [guide](https://github.com/keep-starknet-strange/raito/blob/main/CONTRIBUTING.md) +- [ ] code change includes tests + + diff --git a/.github/linter/base_style.rb b/.github/linter/base_style.rb new file mode 100644 index 00000000..8d981050 --- /dev/null +++ b/.github/linter/base_style.rb @@ -0,0 +1,4 @@ +all +# lame rules +exclude_rule 'MD002' +exclude_rule 'MD041' diff --git a/.github/linter/readme_style.rb b/.github/linter/readme_style.rb new file mode 100644 index 00000000..02e6b483 --- /dev/null +++ b/.github/linter/readme_style.rb @@ -0,0 +1,12 @@ +all +# allow inline HTML for README fmt +exclude_rule 'MD033' +# badges trigger rule +exclude_rule 'MD034' +# README img serves as 'First Header' +exclude_rule 'MD002' +exclude_rule 'MD041' +# TODO: disable/enable not working for all-contribs +exclude_rule 'MD013' +# Allow no endline at the end +exclude_rule 'MD047' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..a46b0608 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,18 @@ +name: build + +on: + workflow_dispatch: + push: + branches: + - main + pull_request: +permissions: read-all + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: asdf-vm/actions/install@v3 + - run: scarb fmt --check + - run: scarb build diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 00000000..1c54c2b1 --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,26 @@ +name: check + +on: + workflow_dispatch: + push: + branches: + - main + pull_request: +permissions: read-all + +jobs: + markdown: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: | + sudo gem install mdl + mdl -s .github/linter/readme_style.rb README.md + mdl -s .github/linter/base_style.rb .github + + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: asdf-vm/actions/install@v3 + - run: scarb test diff --git a/README.md b/README.md index 603c4228..1fbf6b8d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,63 @@ -# raito -Bitcoin ZK client using Circle STARK proofs. +
+

Raito ⚡

+

Bitcoin ZK client written in Cairo.

+ +GitHub Workflow Status + Bitcoin + Cairo + +
+ +## About + +Raito is a zero-knowledge Bitcoin client implemented in Cairo. It aims to provide trustless validation of the Bitcoin blockchain through STARK proof verification. It is heavily inspired by [ZeroSync](https://github.com/ZeroSync/ZeroSynchttps://github.com/ZeroSync/ZeroSync) project. + +> **Disclaimer:** This project is in the early stages of development and should not be used in production. It will evolve rapidly, expect breaking changes. + +Design goals: + +- **Usability:** One-click install and run. WebAssembly compatibility for browser-based execution. +- **Maintainability:** Emphasis on simplicity and clean code structure. +- **Performance:** Optimized for speed and efficiency, leveraging STWO's next-generation prover. + +## Name reference + +Raito is a reference to Light Yagami (夜神月, Yagami Raito) from the manga/anime Death Note. + +Why ? + +- Raito in Japanese means "Light", which in turns can refer to Lightning ⚡ (and hence both a reference to speed of verification of the Bitcoin blockchain using a ZKP and a reference to the Lightning Network) +- Raito can work in tandem with [Shinigami](https://github.com/keep-starknet-strange/shinigami) that enables verification of Bitcoin Script programs. Raito = Consensus and Shinigami = Execution. + +![Raito and Shinigami](./docs/img/memes/raito_shinigami_fusion.jpg) + +### Running + +```bash +scarb cairo-run --available-gas=200000000 +``` + +This will run the provided Bitcoin Script in Cairo. + +### Building + +```bash +scarb build +``` + +This will compile all the components. + +### Testing + +```bash +scarb test +``` + +This will run the test-suite for all op-codes, integration, and test Bitcoin Scripts. + +## References + +- [STWO](https://github.com/starkware-libs/stwo) +- [Cairo](https://www.cairo-lang.org/) +- [Circle STARK paper](https://eprint.iacr.org/2024/278) +- [ZeroSync](https://github.com/ZeroSync/ZeroSync) diff --git a/Scarb.lock b/Scarb.lock new file mode 100644 index 00000000..a0e0284f --- /dev/null +++ b/Scarb.lock @@ -0,0 +1,6 @@ +# Code generated by scarb DO NOT EDIT. +version = 1 + +[[package]] +name = "raito" +version = "0.1.0" diff --git a/Scarb.toml b/Scarb.toml new file mode 100644 index 00000000..76c84c49 --- /dev/null +++ b/Scarb.toml @@ -0,0 +1,7 @@ +[package] +name = "raito" +version = "0.1.0" +edition = "2023_11" + +[dependencies] +starknet = "2.6.3" diff --git a/docs/img/memes/raito_shinigami_fusion.jpg b/docs/img/memes/raito_shinigami_fusion.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fd05adb5368ebd4864e3b48ca9fb98f7bfb3562e GIT binary patch literal 97746 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 z zk}adHyWrx`zz9FvZ3WxB?Q5vYo)J~>lfot_%1hb8ZfgilM4*n}z`9P@lHr%6W@aq5 zyJhR}X-7_zg32^rpQ!|v;prk-IO*!LywpXc+(UpFL8+F5Lg@F#_x}FZs#l2~5~K-s zP!)RIY++Vwjk730NW?B0^6N#QjaH7H!JAo^!l`g-m}VV9OR$^eug~Qa9~7&_;R%e7n@Q0jX%3^qvS3aoL_a-P=v!iT04`mI0 z2CUq-Qd!e_(vAdL)a?Y=AJ%%B^<{A2*WBlJiLGZD2vY*}a<{+y%!cen^D+jh9ruPR z{T!aJgBzrB6XPtI|i4B1-;t;K??M z`P&ZDVq)JWxsx|qXNQeznQ;?T080LDCpD|*gg(>=xW`#ZOwCd=+x2K21RVuyg=Z|K zkpV1RxE(5#tXn+oK>{UGR!ld$jM0S8w(=3)20NC?zFtWN6>qKbD_$RdAyM4@Jvy`x zj_I)RS_HxK>I$yw%9Drgjuqw?xvUTS;dx3NlW{z1m=AmgEI zoH=LDu}k=d1|ivjBlIcR*U+~))B48oR`?2K6S3|h_r%C2gY69RMLi6&G`Q3H;^3;j z*J4w{SzFT3V&L)89HcuAa_J^P<(TTCA-D!DLd^H3xoG(a2m**x zCzYHvUfGEIzO+?lsb!XOqaH%Kz;odZ>J?6p+GQaG>^~P8994S8Vk`YRO0)H!@GMfn zi=9)}%K&$Y^mnq2Fp9k6>YT{pXo*AnO=6lp9Ws0mr7$Tr3j#I3w~1S8oYH_rYx%8w zIXQ;rzpU}3x(_Kwh*2)H_PDvo$~E=^UyEhYwvCw}ZQzuk0LF=NN(=}?U zTuu2Z%sg=xQYun^Ym?E?=$#CPP7~@b&rgM8f=6!e)=R4!*!Hadk(sbMMm@cZ2s_ci zj#|nn^iOH5Hy$I4&iaVeVB#XzO1Rc`&>8?X6lTHgEDmq@x)NioixjSPQmqVg#G zERXbF=W|_y>MqhvPwY55q87)QkJb7!t!`(qg$KLCx_hHlu1;z;b$g=^rsnqzcEH{D zDzYf)=TpZ~uuX4cx)w*TO&RTirtO^&qNPq#Md4?jA-xbRw`zHPUDMTuUx9Q^gKZ*Png>)J=ggZZK}$hJTSR!fV|VG=yj!ul z<=1s!C4b_gV|`D*LVkfiF9Cx@a73woZ}~zXIpU&1GZ-)vdoxhbwp8j+yJ|P71H>`6 zp{*<j@CRnOw%+EB2gHFP(tb9@G;u)^Rw;17X z*Xv`~#Tg2Z90h$S_Ryu8!L@`2$D&?kHL$Uf9~7QZ50W^8qT+Okfl5bMHW0l_rjad`C#pZ0s)9%6PTH)|#~!`MFe=rd_c$AzNTeBNe6LXdj(-9Vr4U3vT5|odSU;`nNk%(8 zvYZfJyit6Sw|DP`PryXd!M3GsV}ZYY5QMue{;|m@x1_tPCPbh2wXEdJPku76?8ve2 P7&;2*JpcI6e;@xpl0qUR literal 0 HcmV?d00001 diff --git a/src/engine.cairo b/src/engine.cairo new file mode 100644 index 00000000..514a5f8c --- /dev/null +++ b/src/engine.cairo @@ -0,0 +1,19 @@ +// The engine is the main component that coordinates the verification of the Bitcoin consensus rules in Cairo. +#[derive(Destruct)] +pub struct Engine {} + +pub trait EngineTrait { + fn new() -> Engine; + fn check_consensus_rules(ref self: Engine) -> Result; +} + +pub impl EngineTraitImpl of EngineTrait { + fn new() -> Engine { + Engine {} + } + + + fn check_consensus_rules(ref self: Engine) -> Result { + return Result::Ok(""); + } +} diff --git a/src/lib.cairo b/src/lib.cairo new file mode 100644 index 00000000..829eb99c --- /dev/null +++ b/src/lib.cairo @@ -0,0 +1,3 @@ +pub mod engine; + +mod main; diff --git a/src/main.cairo b/src/main.cairo new file mode 100644 index 00000000..732c0871 --- /dev/null +++ b/src/main.cairo @@ -0,0 +1,13 @@ +use raito::engine::EngineTrait; +use raito::engine::EngineTraitImpl; + +fn main() { + println!("Running Raito Bitcoin ZK client"); + let mut engine = EngineTraitImpl::new(); + let res = engine.check_consensus_rules(); + if res.is_ok() { + println!("Execution successful"); + } else { + println!("Execution failed"); + } +}