| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- hard fork
- coin flip
- EVM
- Smart contract
- secureum
- web3
- audit
- ethereum virtual machine
- libray
- syntax
- TransferFrom
- Oracle Cloud
- Block
- NaughtCoin
- Ethererum
- transaction
- openzepplin
- Wargame
- byte code
- solidity
- writeup
- Assembly
- approve
- Coin
- soft fork
- ethernaut
- chain reorganization
- web assembly
- ethereum
- tx.origin
- Today
- Total
목록Coin (5)
c0mpos3r
1. 문제 분석This is a simple wallet that drips funds over time. You can withdraw the funds slowly by becoming a withdrawing partner.If you can deny the owner from withdrawing funds when they call withdraw() (whilst the contract still has funds, and the transaction is of 1M gas or less) you will win this level. 이것은 시간이 지남에 따라 자금을 떨어 뜨리는 간단한 지갑입니다. 철수 파트너가되어 자금을 천천히 인출 할 수 있습니다.Dencist ()에 전화 할 때 소유자가..
100 more Audit Findings102. 훅(Hook) 수신 컨트랙트의 잠재적 엣지 케이스 문서화 필요취약점: 프로토콜의 인출 함수는 사용자가 지정한 임의의 "훅" 컨트랙트를 호출할 수 있습니다. 그런데 누구나 소량의 토큰을 자신이 제어하는 주소로 보낸 뒤 인출하는 방식으로 이 훅을 트리거할 수 있습니다. 이는 사실상 누구나, 어떤 컨트랙트든 훅으로 지정하여 강제로 호출할 수 있음을 의미합니다.권장 사항: 훅을 수신하는 컨트랙트를 개발하는 개발자들은, 이 훅 함수가 예상치 못한 주체(msg.sender)에 의해 호출될 수 있음을 인지하고, 호출자와 전달된 파라미터를 반드시 검증해야 한다는 내용을 명확히 문서화해야 합니다.감사 출처: Umbra의 ConsenSys 감사103. 지원 토큰의 동작 제..
101 Finding from Audits1. transfer와 transferFrom의 반환 값을 처리하지 않음취약점: 모든 ERC-20 토큰이 표준을 동일하게 따르지는 않습니다. 일부 토큰의 transfer나 transferFrom 함수는 실패 시 revert 되는 대신 false를 반환합니다. 만약 이 반환 값을 확인하지 않으면, 컨트랙트는 전송이 실패했음에도 성공한 것으로 착각하고 다음 로직을 실행하여 심각한 문제를 일으킬 수 있습니다.권장 사항: 호출 결과를 require()로 감싸서 실패 여부를 확인하거나, OpenZeppelin의 SafeERC20 라이브러리를 사용하여 안전하게 호출해야 합니다.심각도: Medium (Aave Protocol V2의 Consensys Diligence 감사)2..
101 key aspects of Solidity102. 다중 상속과 다형성솔리디티는 다형성을 포함한 다중 상속을 지원합니다.다형성 (Polymorphism): 함수를 호출하면, 상속 계층 구조상 가장 하위(most derived)에 있는 컨트랙트의 함수가 항상 실행되는 특징을 의미합니다.컴파일 방식: 여러 컨트랙트를 상속받아도 블록체인에는 단 하나의 컨트랙트만 생성됩니다. 모든 부모 컨트랙트의 코드가 이 하나의 컨트랙트 안으로 컴파일되어 합쳐집니다.함수 오버라이딩 (Function Overriding): 부모 컨트랙트의 함수에 virtual 키워드가 붙어 있으면, 자식 컨트랙트에서 해당 함수의 동작을 덮어쓸 수 있습니다. 이때 자식 컨트랙트의 함수에는 반드시 override 키워드를 사용해야 합니다.다..
Ethereum 이란?Ethereum은 스마트 계약이라고 하는 애플리케이션 코드를 안전하게 실행하고 검증하는 P2P 네트워크를 구축하는 탈중앙화 블록체인 플랫폼입니다. 스마트 계약을 통해 참가자는 신뢰할 수 있는 중앙 기관 없이도 서로 거래할 수 있습니다.Ethereum의 개요이더리움은 2015년 7월 30일 비탈릭 부테린이 창안한 퍼블릭 블록체인 플랫폼이자, 이 플랫폼의 자체 통화(ETH) 이름이다.이더리움은 스마트 계약이라고 하는 애플리케이션 코드를 안전하게 실행하고 검증하는 P2P(Peer to Peer) 네트워크를 구축하는 탈중앙화 블록체인 플랫폼이다.스마트 계약: 블록체인에 코딩되어 있는 프로그램으로 금융, 부동산, 공증 등 다양한 형태의 계약을 처리Smart Contract (DApp: Dec..