post-thumbnail

[Research] RWA

RWA는 실물 자산을 블록체인 상에서 거래할 수 있도록 디지털 토큰화하는 개념입니다. 부동산, 주식, 채권 그리고 예술품 등 다양한 실물 자산을 토큰으로 변환하고 거래할 수 있게 하여 기존 시장의 비효율성을 해소합니다. 이는 블록체인 기술이 만들어내는 금융의 한 분의

4일 전
·
0개의 댓글
·
post-thumbnail

[Solidity] ERC20 Offchain Approve

ERC20Permit 은 오픈제플린의 ERC20 Extension 라이브러리 중 하나이다.https://eips.ethereum.org/EIPS/eip-2612기존에는 사용자가 ERC20 토큰을 전송하기 위해서는 dApp 에 토큰의 제어 권한 상태를 업데이트하

2023년 11월 21일
·
0개의 댓글
·
post-thumbnail

[Solidity] Chainlink Datafeed

체인링크의 서비스 중 하나로, 오프체인 데이터를 온체인으로 전달해주는 역할을 한다. 데이터 종류에 따라 몇가지의 카테고리로 나뉜다.가장 많이 쓰이는 4가지만 소개하면,Cryptocurrencies 가장 많이 쓰이는 데이터이며, 암호화폐의 현재 가격을 알려준다.Proof

2023년 11월 19일
·
0개의 댓글
·
post-thumbnail

[Solidity] Signature Replay Attack

시그니쳐 리플레이는 전자서명 과정에서 일어나는 해킹 공격이다.다음과 같이 Multi Signature Wallet 을 구현한 컨트랙트와 함께 설명하면,A, B 라는 두명의 오너가 MultiSigWallet 컨트랙트를 관리한다.컨트랙트에는 2 ETH 가 예치되어 있다.

2023년 11월 15일
·
0개의 댓글
·
post-thumbnail

[Solidity] Multi Signature Wallet

멀티 시그니쳐 월렛은 설정한 2개 이상의 주소가 owner 가 되어 각 주소가 signature 를 생성 후, tx 를 실행하는 방식이다.예를 들어 2-3 멀티 시그니쳐 월렛의 경우 3개의 주소가 owner 가 되고, 2개 이상의 주소가 tx에 서명한다면 이 tx 를

2023년 11월 6일
·
0개의 댓글
·

[Solidity] Proxy contract part 2 - Separate interface

Solidity interface 프록시 컨트랙트의 내부에는 어드민의 관리를 위해 만든 함수가 있다. 이 함수명이 로직 컨트랙트의 함수명과 동일하다면 프록시의 admin 함수를 호출하게 된다. 예를 들어, 아래와 같이 두 컨트랙트 코드를 작성했다면 로직 컨트랙트의 함수를 호출. address(1), address(2) 값을 반환하는 것이 개발자의 의...

2023년 10월 31일
·
0개의 댓글
·

[Solidity] block.timestamp manipultation

솔리디티는 가장 최근 생성 블록의 생성 시간을 불러오는 전역변수가 있다.block.timestamp 변수를 사용하면 UNIX 시간으로 값을 받을 수 있다.그리고 현재 이더리움의 블록은 매 10~15초 사이에 생성이 된다.이렇게 변화하는 값을 이용한다면 다음과 같이 간단

2023년 10월 31일
·
0개의 댓글
·
post-thumbnail

[Solidity] Proxy contract part 1 - Write to Any Slot

Solidity Write to Any Slot 이전 글에서는 하드햇과 오픈제플린의 라이브러리를 사용해 간단하게 상속 스토리지 패턴의 프록시를 구현하고 배포했다. 이번에는 Solidity Example 코드를 바탕으로, 직접 슬롯을 지정하고 지정한 슬롯에 로직 컨

2023년 10월 31일
·
0개의 댓글
·

[Solidity] EIP-1967 : Proxy Storage Slots & 배포

프록시 패턴의 종류와 슬롯에 대해 기록했던 글이다. 프록시 컨트랙트를 직접 배포하기 전에 알아두면 좋을 내용을 적어두었다.EIP-1967 은 프록시 스토리지 슬롯의 표준에 대해 설명하고 있다.프록시와 로직 컨트랙트가 일정한 스토리지 슬롯에 변수를 저장하고, 로직 컨트랙

2023년 10월 25일
·
0개의 댓글
·
post-thumbnail

[Solidity] Proxy Patterns

오픈제플린 블로그를 참조하여 작성했습니다.Openzeppelin - Proxy Patterns 솔리디티는 이미 배포된 컨트랙트의 코드를 업그레이드할 수 없지만, 새로운 배포된 컨트랙트를 사용하여 로직이 업그레이드된 것처럼 동작하도록 프록시 계약 아키텍처를 설정하는 것이

2023년 10월 24일
·
0개의 댓글
·

[Solidity] Front Running

Solidity Mempool & Gas price 먼저, 더 머지 이후 이더리움의 블록 생성 과정에 대해 알아보면, 32 ETH 이상 스테이킹한 사람이 검증자가 될 수 있다. 매 블록마다 블록 생성을 제안하는 사람은 검증자 중에서 무작위로 선정된다. 블록을

2023년 10월 22일
·
0개의 댓글
·
post-thumbnail

[Solidity] Hiding Code

컨트랙트를 배포하면 바이트코드 형태로 블록체인에 저장된다.이렇게 저장된 컨트랙트를 인간의 언어로는 읽기 어렵다.etherscan 에서는 컨트랙트 코드를 업로드하면 contract ABI, bytes code, constructor Argument 등을 띄워준다.Ethe

2023년 10월 18일
·
0개의 댓글
·
post-thumbnail

[Solidity] tx.origin Phishing

tx.origin 은 트랜잭션을 보낸 사람의 주소 값을 돌려주는 솔리디티의 전역 함수이다.그림으로 설명하면,A 유저가 B 컨트랙트를 거쳐 C 컨트랙트의 함수를 호출했을때, C 컨트랙트의 msg.sender 는 B 이다.A 유저가 B 컨트랙트를 거쳐 C 컨트랙트의 함수를

2023년 10월 16일
·
0개의 댓글
·
post-thumbnail

[Solidity] Denial of Service

Denial of Service 는 서비스의 작동을 망가뜨리는 것을 말한다.간단하게 아래의 코드로 예시를 들어보면,EtherGame 컨트랙트는 owner 에게 현재 balance 이상의 이더를 지불하고 본인이 새로운 owner 가 될 수 있다.이 컨트랙트를 망가뜨릴 수

2023년 10월 15일
·
0개의 댓글
·
post-thumbnail

[Solidity] Insecure Source Of Randomness

Solidity Randomness randomness 는 무작위성을 뜻하는 단어이다. 여러 프로그래밍 언어는 난수를 요청하는 내장함수가 있는데, 이 경우 요청하는 컴퓨터의 로컬 시간 값을 시드로 사용하여 난수를 생성한다. 하지만 스마트 컨트랙트 언어인 솔리디티

2023년 10월 13일
·
0개의 댓글
·

[Solidity] Unsafe Delegate Call.2

Solidity Unsafe Delegate Call.2 중요한 것. delegate call 은 storage, ether 를 제어할 권한을 다른 컨트랙트에 넘기는 것이기에 주의할 것. 반드시 Storage layout(slot, 상태변수) 를 확인하고 이에

2023년 10월 11일
·
0개의 댓글
·
post-thumbnail

[Solidity] Unsafe Delegate Call.1

간단하게 설명하면,A 라는 컨트랙트가 있고, B 라는 컨트랙트가 있다고 했을 때.A 라는 컨트랙트가 B 컨트랙트의 함수를 이용해서 자신의 State 를 바꾸는 것을 delegate call 이라고 한다.과거에 delegate call, function selector

2023년 10월 10일
·
0개의 댓글
·
post-thumbnail

[Solidity] Accessing Private Data

Solidity EVM & Slot 배포한 컨트랙트의 내부에는 코드가 들어있다. 그리고 컨트랙트에 저장하는 상태변수는 각 Slot 에 저장된다. 총 슬롯의 갯수는 2256 개이다. 따라서 솔리디티는 0 ~ 2256 -1 의 숫자만을 표현하고 인식할 수 있다.

2023년 10월 9일
·
0개의 댓글
·

[Solidity] Selfdestruct & Forcefully send Ether

Solidity selfdestruct selfdestruct 는 전역함수로, 어떤 컨트랙트에서도 사용할 수 있다. 말그대로 스스로 붕괴시키다 라는 의미인데, 이 전역함수를 사용하면 사용하는 컨트랙트에 있는 이더를 지정하는 주소로 이전시킨 후, 컨트랙트를 비활성화

2023년 10월 5일
·
0개의 댓글
·