피드로 돌아가기
The Smart Contract That Handles Your Money. No Bank Needed
Dev.toDev.to
Security

신뢰 기반 Middleman 제거를 위한 Solidity 기반 CrowdFunding 시스템 설계

The Smart Contract That Handles Your Money. No Bank Needed

Srashti2026년 6월 16일7beginner

Context

기존 크라우드펀딩의 중앙 집중식 은행 및 플랫폼 의존으로 인한 신뢰 문제와 중개 수수료 발생. 코드 기반의 강제력을 통해 제3자 개입 없이 자금 집행과 환불을 자동화하는 Trustless 시스템 필요성 대두.

Technical Solution

  • Campaign struct 및 Mapping 기반의 State 관리로 개별 캠페인 상태와 기여자별 기부 금액의 정밀한 추적 설계
  • msg.sender와 block.timestamp를 활용한 인증 및 시간 제약 조건 부여로 별도의 Auth 서버 없는 신원 확인 및 마감 기한 강제
  • payable 키워드와 msg.value를 통한 ETH 직접 수신 및 컨트랙트 내 자금 보관으로 뱅킹 인프라 대체
  • storage 키워드 사용으로 블록체인 상의 상태 데이터를 직접 수정하여 데이터 일관성 유지 및 가스 비용 최적화
  • Reentrancy Attack 방지를 위해 자금 전송 전 withdrawn 상태를 true로 변경하는 Checks-Effects-Interactions 패턴 적용
  • require 문을 통한 사전 조건 검증으로 잘못된 트랜잭션의 즉각적인 Revert 처리 및 시스템 무결성 확보

- 스마트 컨트랙트 설계 시 자금 전송 전 상태 변경을 우선 수행하는 패턴 검토 - 가스 비용 최적화를 위한 storage와 memory의 명확한 구분 및 사용처 정의 - 블록체인 타임스탬프(block.timestamp)의 오차 범위를 고려한 시간 기반 로직 설계 - 배포 후 수정 불가능한 Immutable 특성을 고려한 사전 단위 테스트 및 Hardhat 환경 검증

원문 읽기