[BlockChain] ZK (Cairo) - 나이 인증 회로 구현
·
개발/BlockChain
ZK [Cairo] - 나이 인증 회로 구현모든 코드는 깃허브에서 볼수 있습니다.(0) 흐름zk 에서 핵심은 내 나이를 밝히지 않고 20세 이상인걸 만족하는지 증명하는 것이다.먼저 나이와 nonce(랜덤값)을 받아서 해시값(commitment)을 만든다.이 해시값을 조건(20세)과 함께 해시값(zk-proof)을 만든다.컨트랙트에서 commitment 와 조건(20) 으로 해시값을 만들어서 zk-proof와 비교한다.commitment는 공개될 값이므로 nonce가 없다면 dictionary attack 으로 내 나이를 알수 있다.(1) 세팅scarb new proverscarb new verfier이제는 scarb new 가 어느정도 자연스러워졌다.의도는 prover 에서 age, nonce, min_..
[Blockchain] ZK - STARKNET SEPOLIA에 배포해보기
·
개발/BlockChain
ZK - STARKNET SEPOLIA에 배포해보기0. 환경 설정배포 전 로컬에서 배포를 진행해 볼건데 관련 환경설정은 아래에서 한다.starknet environment-setup1. 프로젝트 생성scarb new deploy모든 명령어는 deploy 폴더에서 진행된다.2. Local 배포Local devnet 띄우기starknet-devnet --seed=0이러면 devent 이 세팅되고 지갑주소들이 보인다.그중 하나를 선택해서 address와 private key를 입력하면된다.sncast account import \ --address=0x064b48806902a367c8598f4f95c305e8c1a1acba5f082d294a43793113115691 \ --type=oz \ -..
[Blcokchain] ZK - Cairo 로 Prime Number(소수) 증명하기
·
개발/BlockChain
ZK - Cairo 로 Prime Number(소수) 증명하기ZK- Cairo 시작해보기에 이어 2번째 cairo tutorial 이다.모든 코드는 깃허브에서 볼수 있습니다.1. 세팅scarb new prime_provercd prime_proverScarb.tomlexecutable 하게 만들어야 증명할수 있으므로 dependency 추가해준다.[package]name = "prime_prover"version = "0.1.0"edition = "2024_07"[cairo]enable-gas = false[dependencies]cairo_execute = "2.11.4"[[target.executable]]name = "main"function = "prime_prover::main"설명[cairo]..
[Blockchain] ZK - Cairo 시작해보기
·
개발/BlockChain
cairo 시작해보기모든 코드는 깃허브에서 볼수 있습니다.1. 설치starkup 설치 (Linux or MacOs)curl --proto '=https' --tlsv1.2 -sSf https://sh.starkup.dev | sh설치 후 확인scarb --versionsnforge --versionscarb 는 cairo 의 패키지 매니저라고 생각하면 된다.2. Hello Worldmkdir ./cairo_projectscd ./cairo_projectsscarb new hello_worldStarknet Foundry (default) 선택그러면 여러개의 파일이 설치된다.그중 Scarb.toml 파일에 들어가보면 아래와 같다.[package]name = "hello_world"version = "0.1..
[Blockchain] ZK - Noir 시작해보기
·
개발/BlockChain
ZK - Noir 시작해보기모든 코드는 깃허브에서 볼수 있습니다.서론영지식 증명 교육 프로그램을 듣게 되었는데 cairo, noir, halo2 중에 하나를 선택해 예시 코드를 짜보라는 과제를 받았다.셋다 처음들어보고 뭔지 모르지만 무지성 돌격하는편..gpt 한테 입문자에게 젤 만만한게 뭔지 물어보니 noir 라고 한다.그래서 일단 웹 언어에 익숙하기 때문에 예제 프로젝트를 따라해보며 이해해보려고 한다.1. Noir 설치curl -L https://raw.githubusercontent.com/noir-lang/noirup/main/install | bash % Total % Received % Xferd Average Speed Time Time Time Current ..