본문 바로가기

전체 글

(34)
[Ethereum] Upgradable Contract에 대해 알아보자 Upgradable Contract개념contract를 배포하고나서 contract의 로직을 업데이트할 수 있도록 설계된 계약을 말한다. 사용자와 상호작용하는 proxy contract와 실제 구현을 담고 있는 implementation contract로 구성된다.proxy contract는 데이터를 보관하고 있고 사용자의 요청이 오면 delegate call을 통해 implementation contract에게 위임한다.implementation contract는 함수를 보관하고 있고 새로운 로직이 필요하면 새로운 주소로 배포된다. OpenZeppelin ContractProxy사용자가 proxy contract에서 함수를 호출하면 실제 함수는 implementation contract에 있기 때문에 ..
[Ethereum] Multisig에 대해 알아보자 Multisig개념보안을 강화하기 위해 여러 명의 서명을 통해 트랜잭션을 실행시키는 것을 mutisig 서명이라고 한다. Gnosis ContractMultisig Wallettransactions는 transactionId마다 구조체로 이루어진 transaction 정보를 저장한다.confirmations는 transactionId마다 owner들의 서명 유무를 저장한다.owners는 onwers들을 저장한다.required는 트랜잭션이 실행되기 위한 최소 서명 개수를 나타낸다.uint public constant MAX_OWNER_COUNT = 50;struct Transaction { address destination; uint value; bytes data; bool ex..
[Ethereum] ERC-721A에 대해 알아보자 ERC-721A개념ERC-721A는 IERC721의 구현체로 여러 개의 NFT를 하나의 NFT와 비슷한 gas 비용으로 minting할 수 있게 해준다. ERC-721 Enumerable과의 비교ERC-721 Enumerable은 IERC721과 IERC721Enumberable를 구현하고 있는 추상 contract로토큰 목록을 순회해서 조회하는 기능을 가지고 있다. 아래는 ERC-721 Enumerable과 ERC-721A의 성능을 비교한 자료이다.대량의 토큰을 miniting하는 상황에서 ERC-721A가 적합한 것을 확인할 수 있다. ERC-721A에서는 ERC-721 Enumerable과 비교했을 때 아래와 같은 부분을 최적화했다.1. 토큰의 metadata를 중복으로 저장하는 부분을 제거했다.2..