일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 코드스테이츠
- 옵저버패턴
- 업그레이더블 컨트랙트
- 웹툰
- github
- 솔리디티
- 스테이트머신패턴
- 회로차단
- 프록시패턴
- 멀티시그
- 부트캠프
- 블록체인
- 일시정지
- 투표
- github 에러
- 트러블슈팅
- 코드리뷰
- 디자인 패턴
- 팩토리패턴
- 팀 프로젝트
- 토큰노믹스
- 인센티브 기반 커뮤니티
- 싱글톤패턴
- RBAC
- solidity
- 배팅
- 재진입
- git commit
- git add
- Today
- Total
목록블록체인 (29)
보다 더 생생한 기록

솔리디티로 디자인 패턴 알아보고 적용하기 (上) 에서 이어집니다 목차6. 멀티시그 패턴7. 회로차단(Pausable) 패턴8. RBAC(Role-Based Access Control) 패턴9. 재진입 방지 패턴 6. 멀티시그 패턴 (Multisignature Wallet Pattern)멀티시그 패턴은 트랜잭션이나 특정 행동이 여러 사용자의 서명을 필요로 하는 패턴입니다. 이 패턴으로 만든 지갑이 '다중 서명 지갑'입니다. 기존 단일 서명 지갑에서는 하나의 개인 키만 필요했지만, 다중 서명 지갑에서는 특정 액션을 취할때 여러명의 서명이 필요합니다. 이를 이용하여 악의적인 공격이나 개인 키 탈취 등에서 한층 보안성을 높일 수 있습니다. 간단한 컨트랙트의 틀을 작성해보겠습니다.contract MultiSigW..

3번째 공부 마라톤 주제로 디자인 패턴을 선정했습니다.디자인 패턴에 대해 알아보고, 솔리디티에 적용하여 이야기를 해볼까 합니다.총 두 편으로 나눠 포스팅됩니다.목차1. 프록시 패턴2. 팩토리 패턴3. 싱글톤 패턴4. 옵저버 패턴5. 스테이트 머신 패턴 1. 프록시 패턴 (Proxy Pattern)프록시 패턴을 이용한 업그레이더블 컨트랙트 구현은 불변성을 지닌 컨트랙트 생태계에서 유명한 내용입니다.이 내용은 따로 포스팅해 뒀으니, 이번 글에서는 넘어가겠습니다. 1편 : 업그레이더블 컨트랙트 (이론)2편 : 업그레이더블 컨트랙트 + 하드햇 테스트 (실전) 2. 팩토리 패턴 (Factory Pattern) 디자인 패턴을 이용한 스마트 컨트랙트 개발의 두 번째 주제로 팩토리 패턴을 소개합니다. 팩토리 패턴은 객..

직전 포스트에서 업그레이더블 컨트랙트의 개념과 원리를 이해했으니, 이제 실제로 구현해보고 하드햇(Hardhat)을 이용해 테스트를 진행해 보자. 이번 프로젝트는 업그레이더블 스마트 컨트랙트를 통해 로직을 변경할 수 있는 시스템을 설계하는 것이다.프로젝트 설명이번 프로젝트에서는 프록시 컨트랙트(Proxy Contract)와 로직 컨트랙트(Logic Contract)를 활용하여, 필요 시 로직을 쉽게 업그레이드할 수 있는 스마트 컨트랙트를 구현한다. 주된 목적은 기존 상태를 유지하면서 새로운 기능을 추가하거나 버그를 수정하는 것이다.구조 설명아래 다이어그램은 프록시 패턴의 구조를 시각적으로 나타낸 것이다. User: 프록시 컨트랙트를 호출하는 사용자.Owner: 프록시 컨트랙트를 업그레이드할 수 있는 권한을..

업그레이더블 컨트랙트를 이용해서 간단한 프로젝트를 만들기전에, 제대로 짚고 넘어가보자. 업그레이더블 컨트랙트(Upgradable Contract): 한번 배포하면 수정할 수 없는 불변성의 특징을 가진 스마트컨트랙트를 업그레이드 시킬 수 있는 방식으로 설계한 스마트컨트랙트 프록시 패턴(Proxy Pattern): 실제 로직 컨트랙트(Logic Contract)을 대리하는 역할을 하는 프록시 컨트랙트 사용자는 프록시 컨트랙트와 상호 작용하지만, 실제 실행되는 로직은 별도의 논리 컨트랙트에서 수행 위 그림처럼 사용자가 프록시 컨트랙트의 함수를 호출하면, 프록시 컨트랙트에 저장된 주소를 이용하여 로직 컨트랙트의 함수를 호출할 수 있도록 한다. 위 그림1만 보면 다른 컨트랙트의 함수를 불러와 사용하는 것과 뭐가..
예전에 해둔 요약 그대로 포스팅https://hardhat.org/tutorial Hardhat | Ethereum development environment for professionals by Nomic FoundationHardhat is an Ethereum development environment. Compile your contracts and run them on a development network. Get Solidity stack traces, console.log and more.hardhat.org Hardhat 튜토리얼npm init하드햇 깔고config 빈 파일 생성하고플러그인(toolbox : 유용한거 다 들어있음) 설치하고 config 파일에 추가하기contracts와 t..
여러가지 기본적인 부분들을 포함해 놓친부분이 너무 많았다.1년전에 공부했던 부분과, 새로운 업데이트 사항을 적용시켜 녹여보자.1. transfer / send / calltransfer (2300 gas, 에러 발생)send (2300 gas, 성공여부 true / false)call (gas값 지정 가능, 성공여부 true / false) -> 재진입 공격 위험성 막기위해 19년 12월 이후 call 사용 2300 gas로 정해진 transfer과 send를 사용시, 밑의 receive 또는 fallback이 들어있는 컨트랙트로 자금을 보내도 실패할 가능성이 높음. receive 또는 fallback이 이더가 들어옴을 감지하고 이벤트 로그를 발생시켜야하는데, 그 이벤트 발생까지 들어가는 가스비용이 23..