How to write gas optimized solidity contract?
·
개발/BlockChain
Gas Optimized ContractsI will explain about gas optimization when writing contract code with reference to nodeguardians gas optimization campaignYou can find the all of codes in Github.1. Reducing Storage AccessAccessing contract storage is a very expensive operation.The opcodes for accessing storage are SLOAD and SSTORE. we can see that SLOAD and SSTORE are very expensive operations.Here is an ..
Uniswap v2 core 분석
·
개발/BlockChain
Markdown 을 그대로 티스토리에 옮겼더니 너무 많이 깨지는데 더 깔끔한 글은 깃허브에 있습니다.uniswap v2 core contract 분석uniswap v2 core 에는 크게 factory, pair 2개의 컨트랙트가 있다.이 컨트랙트들을 코드를 까보며 보려고 한다.1. Factoryfactory 에서는 흔히 LP 라고 부르는 pair를 만든다.그리고 프로토콜 수수료를 받을 주소를 저장하고 있는다.눈여겨볼 함수는 createPair 이다.프로세스는 다음과 같다.graph TD A[토큰 A, B 입력] --> B[token0, token1 정렬] B --> C[바이트코드 준비] C --> D[솔트 생성] D --> E[CREATE2 실행 - 페어 컨트랙트 생성] E ..
ZK 교육 후기
·
개발/BlockChain
2025.06.28 ~ 2025.08.02 기간에 이더리움 재단에서 주관한 ZK 교육을 듣게된 후기를 작성한다.교육은 매주 토요일 판교에서 오프라인으로 진행되었고 매주 리서치한 자료를 발표한걸 듣거나 ZK 관련된 분야의 현직자들의 연사를 들을 수 있었다.1. 계기블록체인쪽으로 커리어를 전향한건 25년 5월부터이다.정말 기본적인 것도 모르는게 많았고 블록체인쪽 기술은 너무 많고 새롭게 느껴져서 재밌었다.그러던중 지인의 소개로 해당 교육을 알게되었다.ZK 라는걸 아예 모르고 있었고 찾아봤는데 영지식증명이라는 이름 자체가 흥미로웠다.다른 사람과 함께하면 그만큼 동기부여도 될 것 같았고 다양한 인사이트를 얻을수 있을거 같아 주저없이 신청했다.2. 입문ZK 교육을 신청하고 사전과제로 암호학과 관련된 내용들을 사전..
[Blockchain] kaiascan은 token transfer 를 어떻게 처리할까
·
개발/BlockChain
kaiascan은 token transfer 를 어떻게 처리할까예시로 만든 컨트랙트는 깃허브에 있습니다.메인넷 익스플로러에서 token에 대한 전송과정은 db에 저장해놓고 보여줘야 한다.하지만 트랜잭션만 보고 토큰을 전송한건지 뭐한건지는 정확히 알수 없다. 추측은 가능할뿐..카이아 코인도 몇개 있고 해서 카이아에서 테스트해보기로 결정했다.그래서 카이아에서 토큰 트랜스퍼를 어떻게 감지하는가에 대한 테스트를 해보고 뇌피셜로 정리해보려고 한다.여러가지 컨트랙트를 erc20에 기반하여 배포해보고 실제로 전송해보며 테스트를 진행했다.1. Transfer event 다 제거해보고 배포token 으로 아예 인식 안함토큰전송을 해봐도 token transfer 에 기록이 안남는다.물론 balance 도 안찍힘https..
[Blockchain] ZK - noir, cairo 섞어쓰기
·
개발/BlockChain
ZK - noir, cairo 섞어쓰기모든 코드는 깃허브에서 볼수 있습니다.이전에 ZK [Cairo] - 나이 인증 회로 구현 에서 나이 인증 회로를 만들어봤다.위 과정에선 굉장한 문제점이 있다.zk proof 를 만들때 포세이돈 해시로 만드는데 이 과정만 알아버리면 누구든지 verify를 통과하는 proof를 만들수 있다는 것이다.그래서 이 부분을 숨기고싶었다.굉장히 많이 찾아봤지만 cairo 에서 proof를 만들고 온체인에서 verify를 하는걸 못 찾았다.그래서 noir로 circuit을 짜고 proof를 만들어서 noir가 제공해주는 verifier를 통해서 구현해보고 싶었다.(1) Noir circuit다시 보니 vscode 에는 noir 하이라이팅 익스텐션이 있는데 cursor 에는 없다.예..
[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_..