본문 바로가기

smart contract7

AA(Account Abstraction)란? 그동안 Ethereum에서 사용자는 EOA(External Ownerd Account)를 통하여 Transaction를 찍거나, CA(Contract Account)와 상호 작용을 하였습니다. 위에서 설명한 것처럼 EOA는 개인 키를 보유한 사용자가 모든 행위를 수행할 수 있었지만, On-Chain의 Code를 실행하기 위해서는 Contract를 Deploy하고 CA와 상호 작용해야 했습니다. CA는 자신의 Code를 실행하기 위해서는 사용자의 상호작용이 필요하다는 단점과 코드 변경이 쉽지 않다는 단점이 있었습니다. Upgradable Proxy를 통해 코드를 변경할 수는 있지만, 이러한 방법도 Code Deploy 후 Proxy 변경이 필요함 즉, On-Chain의 Code를 실행하기 위해서는 Cont.. 2023. 10. 22.
Truffle를 통한 Reentrancy Attack 실습해보기 먼저 Reentrancy Attack에 대한 내용이 궁금하신 분들은 아래 포스팅을 확인해주세요. Reentrancy Attack in Smart Contract Smart Contract는 블록체인 기술에서 중요한 개념 중 하나로, 계약 체결과 실행을 자동으로 수행할 수 있는 프로그램이며, 블록체인 기술을 활용하여 제 3자의 인증 기관 없이 개인 간 계약이 이루어 hacksms.tistory.com 참고로 Local 환경은 Truffle과 Ganache를 이용하여 구축하였습니다. 구축 방법은 아래 포스팅을 확인해주세요. Ethereum 로컬 개발 환경 구성하기 (with Smart Contract) 사실 Etehreum은 Test Nets이 있기 때문에 Remix와 같은 도구들을 통하여 Test Nets.. 2023. 7. 23.
Contract Application Binary Interface (ABI) Contract Application Binary Interface (ABI)란 Solidity 환경에서의 ABI는 블록체인 외부 환경과 Smart Contract 또는 Smart Contract 간에 상호 작용하는 표준 방법을 의미 합니다. 이러한 상호 작용을 위해서는 ABI 포맷으로 Encoding 하거나, Encoding된 ABI를 Decoding 할 수 있어야 합니다. 실제 Encoding된 ABI Data를 통하여 이러한 방식을 알아보도록 하겠습니다. ※ 이번 포스팅에서는 비표준 방식의 ABI Encoding은 다루지 않을 계획입니다! ABI Encode ABI Encoding된 데이터는 아래와 같은 포맷을 가지게 됨 정적 타입 - 일반 타입, [M]와 같이 배열 크기가 고정된 경우 4Byte .. 2023. 7. 1.
ERC-165 (Ethereum Request for Comments 165) ERC-165 (Ethereum Request for Comments 165) ERC-165는 Smart Contract에서 Interface 지원을 위해 사용하는 Ethereum 표준 규격으로, Smart Contract가 특정 Interface를 구현하고 있는 지 확인하는 기능을 지원합니다. ERC-165: Standard Interface Detection eips.ethereum.org ERC-165를 준수하는 Smart Contract는 다른 Contract나 Client가 해당 Contract가 특정 Interface를 지원하고 있는 지 확인할 수 있도록 supportsInterface 함수가 구현되어있습니다. pragma solidity ^0.4.20; interface ERC165 { //.. 2023. 6. 21.
Transaction Order Dependence Attack in Smart Contract Transaction Order Dependence Attack도 Smart Contract에서 발생할 수 있는 공격인데요. Smart Contract는 블록체인 기술에서 중요한 개념 중 하나로, 계약 체결과 실행을 자동으로 수행할 수 있는 프로그램이며, 블록체인 기술을 활용하여 제 3자의 인증 기관 없이 개인 간 계약이 이루어질 수 있도록 하는 기술입니다. 그런데 Smart Contract는 사람이 직접 코드를 개발해야 하기 떄문에 코드 상의 문제 또는 버그가 존재할 경우 예상치 못한 결과가 발생할 수 있습니다. 그 중 하나인 Reentrancy Attack은 아래의 포스팅을 통해 확인하실 수 있습니다! Reentrancy Attack in Smart Contract Smart Contract는 블록체.. 2023. 5. 5.
[DAO Hacking] Reentrancy Attack 실제 사례 분석 이전 포스팅에서 Reentrancy Attack에 대한 설명을 드렸는데요. 이번에는 실제 해킹 사례를 분석해보도록 하겠습니다. Reentrancy Attack in Smart Contract Smart Contract는 블록체인 기술에서 중요한 개념 중 하나로, 계약 체결과 실행을 자동으로 수행할 수 있는 프로그램이며, 블록체인 기술을 활용하여 제 3자의 인증 기관 없이 개인 간 계약이 이루어 hacksms.tistory.com The DAO Project The DAO(Decentralized Autonomous Organization, 이하 DAO)는 2016년 3월 Ethereum Platform을 기반으로 한 세계 최대 디지털 자산 크라우드 펀딩 프로젝트 였습니다. DAO는 참여자들이 ETH를 투.. 2023. 4. 30.
Reentrancy Attack in Smart Contract Smart Contract는 블록체인 기술에서 중요한 개념 중 하나로, 계약 체결과 실행을 자동으로 수행할 수 있는 프로그램이며, 블록체인 기술을 활용하여 제 3자의 인증 기관 없이 개인 간 계약이 이루어질 수 있도록 하는 기술입니다. 조금 더 자세히 설명드리자면, Smart Contract는 계약자가 계약 시 조건을 미리 프로그래밍하여 블록체인 네트워크 상에 올려놓고, 이 조건이 충족되거나 비충족되었을 때 사전에 정의한 행위를 컴퓨터가 자동으로 수행함으로써 정상적인 계약 이행이 이루어집니다. 이를 통해 제 3자 없이 계약이 이루어질 수 있습니다. 이러한 Smart Contract는 Ethereum이 등장하면서 최초로 구현되기 시작했으며, 현재는 다양한 형태의 Smart Contract가 개발되고 있습니.. 2023. 4. 29.