Smart Contract/Smart Contracts4 동일한 스마트 컨트랙트 주소로 배포 CREATE2 ✏️ 서로 다른 체인 간 계약 주소가 동일할 수 있을까? 결론부터 얘기하면 서도 다른 체인, 즉 이더리움 네트워크와 클레이튼 네트워크에 동일한 계약주소로 계약을 배포할 수 있습니다. 계약주소를 생성할 때 기본적으로 사용되는 CREATE opcode는 아래와 같은 식으로 2개의 인자값으로 계약 주소를 생성합니다. opcode에 대해 궁금하시면 아래 글을 참고해 주세요. EVM과 Ethereum Opcode ✏️ EVM EVM(Ethereum Virtual Machine)은 이더리움 가상 머신으로, 우리가 흔히 geth 같은 이더리움 클라이언트를 설치하면 스마트 계약을 실행하기 위해 특별히 제작된 경량 운영 체제인 EVM도 함께 제공 tech-talks.tistory.com keccak256(rlp([sen.. Smart Contract/Smart Contracts 2023. 12. 24. 외부 컨트랙트 호출하기 call ✏️ 외부 컨트랙트를 호출? A컨트랙트에서 B컨트랙트에 함수를 호출할 수 있을까요? 결론부터 말하면 가능합니다. 정확히는 A에서 B의 계약주소만 알고 있다면 가능합니다. 방법은 A컨트랙트에서 B의 계약주소와 call( ) 메서드를 사용하여 접근이 가능합니다. 이 외에도 delegatecall( ) 메서드를 사용하여 접근이 가능하지만 오늘은 call( ) 메서드에 대해서만 다뤄보도록 하겠습니다. 이때 call 메서드의 인자값으로 bytecode가 필요한데, 이 bytecode는 실행할 함수, 인자값을 인코딩한 bytecode입니다. bytecode와 EVM이 스마트 컨트랙트를 실행하는 동작원리가 궁금하시면 아래 글을 참고해 주세요. EVM과 Ethereum Opcode ✏️ EVM EVM(Ethereum .. Smart Contract/Smart Contracts 2023. 12. 22. 스마트 컨트랙트 업그레이드 ✏️ 스마트 컨트랙트 업그레이드 스마트 컨트랙트 업그레이드란 스마트 컨트랙트의 비즈니스 로직을 변경하면서 스마트 컨트랙트의 상태를 유지하는 것을 말합니다. 블록체인에서 한 번 배포된 스마트 컨트랙트는 수정할 수 없다는 원칙이 있습니다. 그러나 실제로는 이러한 제한을 극복하기 위해 다양한 전략과 패턴이 개발되었습니다. 1️⃣ 컨트랙트 마이그레이션 컨트랙트 마이그레이션은 기존 스마트 컨트랙트의 새 인스턴스를 배포하고, 스토리지와 잔액을 새로운 컨트랙트로 이전하는 과정입니다. 새롭게 배포된 컨트랙트는 초기 상태가 비어있어, 이전 컨트랙트에서 데이터를 복구하여 새로운 구현에 쓸 수 있습니다. 이후에는 이전 컨트랙트와 상호작용 했던 모든 컨트랙트를 새 주소로 업데이트해야 합니다. 이 방법은 상대적으로 간단하나, .. Smart Contract/Smart Contracts 2023. 11. 2. ERC (Ethereum Request for Comment) ✏️ ERC (Ethereum Request for Comment) ERC는 프로그래머가 Ethereum 블록체인에서 스마트 컨트랙트를 작성하는 데 사용하는 문서입니다. 이 문서들은 이더리움 기반 토큰이 준수해야 하는 규칙과 표준을 설명합니다. Ethereum 커뮤니티는 이러한 문서들을 검토하기 위해 Ethereum 개선 제안(EIP)이라는 프로세스를 사용합니다. 개발자들은 새로운 아이디어나 기능, 토큰 표준 등을 개선하거나 제안하기 위해 EIP를 작성합니다. 이러한 EIP들은 커뮤니티에 공개되고 검토를 거쳐 최종적으로 받아들여질 수 있습니다. EIP로 시작된 문서들 중 일부가 ERC로 최종화됩니다. 예를 들어, ERC-20, ERC-721, ERC-1155 등과 같은 토큰 표준은 이러한 프로세스를 거쳐.. Smart Contract/Smart Contracts 2023. 11. 1. 이전 1 다음