이더리움 컨트랙트, abi 조회 방법
스마트컨트랙트 코드를 컴파일 => ABI, 바이트 코드
그리고 바이트 코드를 네트워크 상으로 배포하는것으로 압니다
1. 이더스캔등에서 스마트컨트랙트가 상세하게 보이는것은 개발자가 직접 등록했기때문인가요?
2. 만약 바이트 코드를 네트워크에 배포하고 끝이라면 다른 사용자(abi 소유자외)는 해당 컨트랙트를 이용하기가 사실상 불가능한가요?
3. byte code만 배포했을때 개발자가 아닌 사람은, 해당 contract address로 abi 를 획득하거나 method등을 알수 없나요?
55글자 더 채워주세요.
2개의 답변이 있어요!
1. 맞습니다. 실제로 컨트랙트를 배포해보신다면 이더스캔에서 등록하는 화면을 볼 수 있습니다.
2. abi를 모른다면 이용하기가 사실상 불가능 한것이 맞습니다.
abi를 공개하지 않은 채로 만약 다른 사용자가 해당 컨트랙트를 이용하게 하기 위해서는
사용에 필요한 함수명과 매개변수등의 인터페이스 정보를 제공하지 않는 이상 사용 할 수 없습니다.3. CA만으로는 ABI를 획득할 수 없습니다.
디컴파일링을 통해 method의 기능과 로직은 파악할 수 있지만, 정확하게 인지하는 것은 어렵습니다.
1. 네. 이더스캔에 컨트랙트를 직접 배포한 경우입니다 https://etherscan.io/apis#contracts
2. 오픈되어 있다면 해당 컨트랙트 어드레스를 통해 이용이 가능합니다
3. 네. 작성자가 직접 공개 등록한 경우가 아니면, , abi를 얻기가 쉽지 않아 보입니다.