본문 바로가기

분류 전체보기95

ERC-4337 , Account Abstraction ERC-4337 , Account Abstraction 주요 개념 UserOperation 객체 도입 : 기존의 트랜잭션 구조와 다른 새로운 객체 유형, 사용자 작업 개체는 스마트 게약을 사용하여 처리되며 이를 통해 트랜잭션 처리 방식에 대한 유연성이 향상된다. 별도의 메모리 풀 : useroperation 객체는 일반 트랜잭션과 분리되어 별도의 메모리풀에 저장된다. 이를 통해 기존의 트랜잭션 처리에 영향을 주지 않으면서 사용자 작업 객체를 관리가능하다. 번들러 : 번들러는 사용자 작업 객체를 수집하고 이를 처리할수있는 번들로 만들어 주는 역할을 한다. 번들러가 번들을 처리하는 특수 계약을 호출하여 번들 내의 사용자 작업 객체들이 블록에 포함할수 있게 한다. UserOperation struct User.. 2023. 4. 4.
EIP-4337 이해하기 eip 4337은 합의 규칙을수정하지 않고 이더리움 메인넷에 계정 추상화 기능을 추가하기 위한 사양이다. 계정 추상화란 무엇인가? 계정 추상화란 사용자가 eoa 대신 스마트 컨트랙트 지갑을 사용할수 있도록 하는 제안이다. 사용 사례의 예 권한 제어 트랜잭션 일괄 처리 계정 복구 거래 중지 용어 정리 UserOperation 사용자 대신 보낼 트랜잭션을 설명하는 구조, 혼동을 피하기 위해 트랜잭션이라는 이름은 지정 되지 않음 트랜잭션과 마찬가지로 "sender", "to", "calldata", "maxFeePerGas", "maxPriorityFee", "signature", "nonce"가 포함된다 트랜잭션과 달리 아래에 설명된 몇 가지 다른 필드가 포함되어 있다 또한 "nonce" 및 "signatu.. 2023. 3. 22.
maxFeePerGas, maxPriorityFeePerGas 추정기 메인넷을 지원하는 gas tracker api들은 여러 종류가 있더라. 이 api를 써서 사용하면 될거 같은데. 테스트넷을 지원하는 api는 찾기가 힘들다 그래서 만들어보려한다. 트랜잭션이 처리되는 원리를 생각해보면 유저가 트랜잭션을 전송하고 채굴자가 채굴을 해가야하는데 채굴 우선순위는 최종 가스프라이스가 높은 순이다. 그렇다는 말은 팬딩 트랜잭션을 봐야한단 말이다. 팬딩 트랜잭션들을 조회하여 그들의 maxFeePerGas, maxPriorityFeePerGas 값을 가져와야겠다. 팬딩 트랜잭션을 조회하는 방법은 두가지 정도가 존재한다 1번: JSON-RPC 요청을 직접 사용하여 팬딩 트랜잭션 정보를 얻는 방법 2번: 외부 API를 사용하여 팬딩 트랜잭션 정보를 얻는법 네트워크 전반 사용률 확인 최근 블.. 2023. 3. 18.
transaction 모듈화 rawTransaction을 하나 하나 만들어서 쓰려니까 너무 비효율적이라 느껴 모듈화를 해보았다. rawTransaction, EIP-1559를 사용한 방법이고 txHash를 반환한다. 현재 쓰고있는 로직은 하나의 트랜잭션이 성공하면 다음 트랜잭션으로 넘어가는 형식이기 때문에 이렇게 작성하였다. package com.example.demo.controller.test.moduel; import org.web3j.crypto.Credentials; import org.web3j.crypto.RawTransaction; import org.web3j.crypto.TransactionEncoder; import org.web3j.protocol.Web3j; import org.web3j.protocol.co.. 2023. 3. 15.
가스에 대하여 가스 Gas는 Ethereum 네트워크에서 특정 작업을 실행하는 데 필요한 계산 노력의 양을 측정하는 단위 단위 1 gwei => 0.000000001Eth => 1,000,000,000 wei 런던 업그레이드 이전 TotalFee = GasLimit * GasPrice 런던 업그레이드 이후 EIP-1559 TotalFee 계산법 : units of gas used(GasLimit) * (baseFee + priorityFee) baseFee : protocol에서 설정한 값 priorityFee: 사용자가 채굴자에 대한 tip을 설정한 값 baseFee • EIP-1559는 네트워크 조건에 따라 결정되는 기본 요금 매개 변수를 도입 • 모든 트랜잭션이 블록에 포함되기 위해 지불해야 하는 최소 가스 가격.. 2023. 3. 15.
유니스왑 v2 백서 분석 AMM 자동화 마켓 메이커 기존 중앙화 거래소는 유동성 공급자가 원하는 가격을 정해서 호가를 올린다. AMM은 유동성 공급을 유저가 아니라 공식을 따르게 만든다. 토큰 A와 토큰 B의 교환 비율이 자동적으로 정해지게한다. 유니스왑은 AMM 중 CPMM을 사용한다 CPMM : x*y = k k는 변하지 않는 상수, x와 y는 특정 거래 쌍에서 사용 가능한 토큰의 수량 x와 y는 반비례를 하기 때문에 다음과 같은 그래프 형태를 따른다. 예시] 이더리움과 오미세고 교환 많은 예시로 나와있는 예시문을 가져와보자면 유니스왑에 이더리움 10개와 오미세고 500개가 있었고 이 두개의 곱 k가 5000인 컨트렉트가 있다 유저가 1이더를 오미세고로 교환하려고 한다. 1이더를 넣을 시 컨트렉트에는 11이더가 되고 11* .. 2023. 2. 28.