본문 바로가기

블록체인교육117

다중 서명(multi-sig) 기업 지갑 샘플 코드 다중서명 기업 지갑 샘플 코드입니다.교육용이니 참고하시기 바랍니다.// SPDX-License-Identifier: MITpragma solidity ^0.8.20;// 4-Eyes Principle 기반 다중 서명(Multi-Sig) 기업 지갑contract CorporateMultiSig { // 기업 자금 관리 권한을 가진 임원(Owner)들의 지갑 주소 목록 address[] public owners; mapping(address => bool) public isOwner; // 자금 이체를 위해 필요한 최소 서명(결재) 개수 (예: 3명 중 2명) uint256 public requiredApprovals; // 결재를 위해 상신된 자금 이체(트랜잭.. 2026. 10. 9.
실물자산(RWA) 토큰화 및 KYC(신원 인증) 기반 송금제어 스마트컨트랙트 실물자산 토큰화 및 KYC 기반 송금제어 스마트컨트랙트 샘플 코드입니다.교육용이니 참고용으로만 활용하세요!// SPDX-License-Identifier: MITpragma solidity ^0.8.20;// KYC 화이트리스트 기반 실물자산(부동산/채권) 토큰contract RWAToken { string public name = "Real Estate Asset Token"; // 토큰 이름 (예: 부동산 조각투자 토큰) string public symbol = "REA"; uint8 public decimals = 18; uint256 public totalSupply; address public bankOwner; // 금융기관(관리자) 주소 // 고객들의 토큰 잔.. 2026. 10. 9.
체인링크(오라클) 활용한 스테이블 코인 - 이더 교환 스마트컨트랙트 체인링크 오라클 활용한 스테이블 코인- 이더 교환 스마트컨트랙트 기본 코드입니다.교육을 위한 자료이므로, 참고용으로만 활용하시기 바랍니다. // SPDX-License-Identifier: MITpragma solidity ^0.8.20;// 1. IERC20 기능만 직접 선언interface IERC20 { function balanceOf(address account) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external retu.. 2026. 10. 9.
브릿지 토큰(이더<->베이스) 브릿지 토큰 컨트랙트 소스입니다.이더 베이스 예시이고코드는 기본적인 구성만 되어 있기 때문에 학습용도로만 활용하시기 바랍니다. ETH->Base 체인// SPDX-License-Identifier: MITpragma solidity ^0.8.20;import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";// [Ethereum L1 Bridge] 자산을 보관하는 금고(Vaul.. 2026. 10. 9.
예금, 대출 스마트컨트랙트 예금, 대출 스마트컨트랙트 예제 샘플입니다.코드에 결함이 있을 수 있으니 참고 예시로만 활용하시기 바랍니다. // SPDX-License-Identifier: MITpragma solidity ^0.8.20;contract CollateralBank { mapping(address => uint256) public deposits; mapping(address => uint256) public loans; // 1. 예금: 이더리움을 컨트랙트에 예치 function deposit() public payable { require(msg.value > 0, "Must send ETH"); deposits[msg.sender] += msg.value; } .. 2026. 10. 9.
dapp 샘플소스((string)hello world 쓰고 불러오기) 1.솔리디티 소스// SPDX-License-Identifier: MITpragma solidity ^0.8.20;contract Simple { string public val = "First Message"; // 초기값 설정 function set(string memory _val) public { val = _val; } function get() public view returns (string memory) { return val; }} 2. 웹 소스 Simple dApp 블록체인에 메시지를 저장해보세요. 1. 지갑 연결 연결된 계정: 없음 현재 메시지: ... 값 새로고침 .. 2026. 4. 7.
dapp 샘플소스(integer 숫자 저장 및 읽어오기) 1. 솔리디티// SPDX-License-Identifier: MITpragma solidity ^0.8.20;contract SimpleStorage { uint256 private storedData; // 숫자를 블록체인에 저장하는 함수 function set(uint256 x) public { storedData = x; } // 저장된 숫자를 읽어오는 함수 function get() public view returns (uint256) { return storedData; }} 2. 웹소스 Simple Storage dApp 지갑 연결 블록체인에 저장 값 불러오기 현재 저.. 2026. 4. 7.
dapp 기초 샘플 소스(카운터 컨트랙트 예제) 개발환경ganache : 로컬 이더리움 환경Remix : 솔리디티 작성 및 배포VisualStudio : 프론트 엔드 웹메타마스크 : 지갑카운터 컨트랙트 소스코드// SPDX-License-Identifier: MITpragma solidity ^0.8.20;contract Counter { uint256 public count; function increment() public { count += 1; } function getCount() public view returns (uint256) { return count; }} 3. 카운터 DApp 웹 소스 코드Counter DAppCount: -지갑 연결조회+1 증가 4. 결과화면- Remix - 웹.. 2026. 4. 6.
[블록체인 보안] 스마트컨트랙트 취약 (transfer(),send() 부적절한사용) payable.transfer(), send()의 부적절한 사용 이스탄불 하드포크에서 EIP1884가 시행된 이후, SLOAD 작업의 가스 비용이 증가함으로써 일부 기존 스마트계약이 손상됨. ETH를 수신자에게 전송할때, 솔리디티의 transfer() 또는 send() 매서드를 사용하는 경우 특정한 결함이 발생할 수 있는데, 특히 수신자가 스마트계약인 경우임. 이러한 결함으로 인해 ETH를 스마트계약 수신자에게 성공적으로 전송할 수 없게 될 수 있음. 구체적으로 스마트계약이 다음중 하나를 만족할때 전송은 반드시 실패함. 1 . 지불 가능한 fallback 함수를 구현하지 않은 경우. 지불 가능한 fallback 함수가 2300 이상의 가스 단위를 소비하는 경우 2300 이하의 가스단위를 소비하는 지불 가.. 2023. 8. 25.