본문 바로가기

스마트컨트랙트4

[블록체인 보안] 스마트컨트랙트 취약성 (예측가능한 무작위성 취약점) 블록 해시, 블록 번호, 블록 타임스탬프 및 기타 필드와 같은 전역변수의 사용은 안전하지 않으며, 마이너와 공격자가 이를 제어할 수 있음 시나리오 GuessTheRandomNumber는 블록해시와 타임스탬프에서 생성된 유사한 무작위 숫자를 맞춘다면 1 이더를 얻을 수 있는 게임 처음에는 올바른 숫자를 맞추는 것은 불가능한 것처럼 보임 엘리스가 1 이더와 함께 GuessTheRandomNumber를 배포함 이브가 Attack을 배포함 이브가 Attack.attack()를 호출하고 1 이더를 획득함 개선방안 blockhash와 block.timestamp를 무작위성의 소스로 사용하지 말것 테스트 소스 https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/tes.. 2023. 8. 24.
블록체인 인 액션 서평 작년부터 블록체인에 대한 기본적인 개념 그리고 활용을 위해서 솔리디티를 기본으로 하는 dapp 프로그래밍등에 대한 강의를 진행하고 있다. 사실 적합한 교제를 가지고 강의를 하는게 가장 좋은데 지금까지는 그러한 교제가 없었다. 기본적으로 번역이 잘 안되어 있는 책들도 많고 책들에 있는 예제들은 실행이 잘안되거나(솔리디티 버전이 빠르게 변하고 환경도 빠르게 변하기 때문에..) 설명이 부족한 것들이 대부분이었다. 그래서 결국엔 외국 유튜버나 해외 사이트에서 잘 정리된 자료들을 찾아서 다시금 강의안을 새롭게 만드는 방법밖에는 없었다. 강의안을 만드는 것도 쉽지 않지만 조금 더 상세한 설명이 깃들여져 있는 좋은 교제로 강의를 하면 좋겠다는 생각은 항상 들었다. 그런데 그러한 교제를 찾지 못해서 현 수준에서 만족하.. 2021. 8. 10.
4. openzeppelin 사용하여 ERC20 토큰 만들기 1. 스마트 계약의 시작, 리믹스 도구 사용해보기 2. 솔리디티 개발환경 구성 3. 스마트컨트랙트 작성 후 배포하기 4. openzeppelin 사용하여 ERC20 토큰 만들기 5. Ropsten 테스트넷에 ERC20토큰 배포하기 6. web3.js 와 자바스크립트를 활용한 간단한 예제 7. 솔리디티 기초, 리믹스로 컨트랙트 작성하기 8. 솔리디티 기본문법 (변수, 데이터타입, 구조체) 9. 솔리디티 배열, 맵핑 10. 솔리디티 조건문, 반복문(if, else, for) 11. 솔리디티 암호화폐 지불(호텔룸 예약하기 프로그램) 12. 솔리디티 상속 13. 리믹스 솔리디티 6.0 버전 ERC20토큰 만들기 14. web3.js 와 자바스크립트를 활용하여 (이더잔액조회) 지갑 만들기 15. 솔리디티 컨트랙트.. 2020. 11. 5.
1. 스마트 계약의 시작, 리믹스 도구 사용해보기 1. 스마트 계약의 시작, 리믹스 도구 사용해보기 2. 솔리디티 개발환경 구성 3. 스마트컨트랙트 작성 후 배포하기 4. openzeppelin 사용하여 ERC20 토큰 만들기 5. Ropsten 테스트넷에 ERC20토큰 배포하기 6. web3.js 와 자바스크립트를 활용한 간단한 예제 7. 솔리디티 기초, 리믹스로 컨트랙트 작성하기 8. 솔리디티 기본문법 (변수, 데이터타입, 구조체) 9. 솔리디티 배열, 맵핑 10. 솔리디티 조건문, 반복문(if, else, for) 11. 솔리디티 암호화폐 지불(호텔룸 예약하기 프로그램) 12. 솔리디티 상속 13. 리믹스 솔리디티 6.0 버전 ERC20토큰 만들기 14. web3.js 와 자바스크립트를 활용하여 (이더잔액조회) 지갑 만들기 15. 솔리디티 컨트랙트.. 2020. 10. 29.