본문으로 건너뛰기
글로벌 시각으로 보는 디지털 자산글로벌 시각 · 지역별 맥락
ChainView BTC866CHAIN VIEW
블록체인

CREATE2 주소를 미리 안다고 계약을 신뢰할 수 있을까

CREATE2는 배포자 주소, salt와 초기화 코드 해시 등을 이용해 목적지 계약 주소를 계산합니다.

읽기 언어한국어简体中文繁體中文EnglishРусскийالعربيةEspañol (México)Tiếng Việtไทย
CREATE2 주소를 미리 안다고 계약을 신뢰할 수 있을까

주제별 원본 삽화: ChainView BTC866 주제별 원본 도해 · ChainView BTC866 Editorial · CC BY 4.0

주소 계산의 재료

CREATE2는 배포자 주소, salt와 초기화 코드 해시 등을 이용해 목적지 계약 주소를 계산합니다. 배포 전에 주소를 알 수 있어 특정 워크플로에 유용하지만 주소가 예측 가능하다는 성질과 코드가 안전하다는 판단은 다릅니다. 같은 표시 이름이 아니라 체인과 실제 배포자, 계산 입력을 비교하세요. 다른 체인에 모양이 같은 주소가 있어도 동일한 자산과 권한을 가진다고 볼 수 없습니다.

초기화와 실행 코드

주소 공식이 약속하는 초기화 코드와 배포 후 실행 바이트코드의 역할을 구분합니다. 생성 과정의 설정, 외부 구성 요소, 라이브러리와 초기 상태가 행동에 영향을 줄 수 있습니다. 나중에 업그레이드할 수 있는 프록시라면 관리자와 구현 변경 절차도 중요합니다. 주소를 재계산하는 데 성공했다고 모든 실행 경로와 경제적 가정을 검증한 것은 아니라는 점을 명시해야 합니다.

미배포 주소의 한계

아직 배포되지 않은 주소에는 현재 실행 중인 계약을 검사할 수 없습니다. 사전에 발표한 주소나 익숙한 접두 문자가 감사 보고서를 대신하지 않습니다. 자금을 먼저 보내는 서비스라면 배포 조건과 실패 시 회수 경로, 누가 배포를 실행할 수 있는지 문서를 확인하세요. 모르는 목적지에 시험 삼아 자금을 넣는 것으로 코드를 검증할 수 있다고 생각하면 안 됩니다.

배포 후 비교 절차

공식 배포 기록에서 체인 식별자와 거래를 찾고 실행 코드, 초기 저장 상태와 소유권을 대조합니다. 관리자 변경과 접근 제어, 외부 계약 주소를 포함해 검토하세요. 교육용으로 계산한 주소가 일치하지만 관리자 설정이 예상과 다른 사례를 생각하면 주소 검증과 권한 검증의 차이가 분명해집니다. 구현이 바뀌면 같은 주소라도 이전 검토 결론이 그대로 유지되지 않을 수 있습니다.

운영 기록의 범위

검증한 블록 높이와 코드 버전, 배포자와 설정 자료를 함께 남깁니다. 결정적 주소는 출처를 조사할 한 조각이지 신뢰의 완성 조건이 아닙니다. 코드 공개, 독립 검토와 제한된 권한, 정상적인 회수 절차를 따로 확인해야 합니다. 이 설명은 주소 계산 개념을 이해하기 위한 것이며 잘 알려진 주소처럼 보이는 목적지나 사전 입금 요청을 안전하다고 보증하지 않습니다.

같은 주소의 다른 조건

주소가 맞아도 체인 식별자와 코드 상태가 다르면 같은 검토 결과를 적용할 수 없습니다. 배포자를 확인할 때 단순 표시 이름 대신 실제 주소와 공식 발표를 대조하세요. 초기화 시 부여된 소유권과 이후 이전 기록도 남겨야 현재 통제자를 알 수 있습니다. 업그레이드 지연과 다중 서명은 구체적인 설정에 따라 위험을 바꾸며 이름만으로 충분하지 않습니다. 사전 발표된 주소에 자산을 보관하는 구조라면 배포 실패와 운영 중단 때의 회수 조건을 문서로 확인하고, 추측한 출구를 이미 검증된 기능처럼 설명하지 않습니다.

자료 출처

  1. EIP-1014 CREATE2 (새 탭에서 열림)
  2. Solidity contract creation (새 탭에서 열림)