주소만보고 ERC20 토큰인지 알수있나요
암호화폐를 개인지갑으로 보낼때 주소가 맞는지 걱정할 때가 많이 있습니다. 개인 지갑으로 보낼때 주소만으로 ERC20 주소인지 알 수있는지 궁금합니다.
암호화폐를 개인 지갑으로 보낼 때 상대방 주소를 확인함으로써 이더리움 지갑 주소라는 것을 알 수 있습니다. 왜냐하면 이더리움 지갑의 경우에는 처음에 '0x'라는 접두사가 붙기 때문입니다.
보다 자세하게 설명드리자면, 이더리움은 공개 키와 개인 키 쌍을 이용하는 공개 키 암호화 시스템을 채택하고 있습니다. 즉, 이더리움의 공개 키 값은, 개인 키를 '타원곡선 산술 연산'함으로써 얻어진 값이라고 할 수 있습니다.
이 때 연산은 단방향적으로 이루어지므로 '개인 키 -> 공개 키'를 연산하는 것은 가능하지만 '공개 키 -> 개인 키'를 연산하는 것은 불가능합니다.
그러므로 공개 키 값을 암호화한 이더리움 지갑 주소를 통해 개인 키 값을 알아내는 것이 불가능하므로, 우리가 다른 사람에게 이더리움 지갑 주소를 알려주더라도 아무런 문제가 없게 됩니다.
다시 돌아와서 타원곡선 산술 연산을 통해 얻어진 공개 키 값에 이더리움의 암호화 해시 함수인 Keccak256 을 적용하게 되면 상당히 긴 문자열이 만들어지는데, 그것을 모두 지갑주소로 사용하는 것이 아니라, 공개 키 값을 Keccak256으로 해싱한 값 중 끝에서부터 20 바이트의 값을 이더리움 주소로 활용하게 됩니다.
그리고 나서 이더리움 주소가 16진수로 암호화 되었다는 표시로 지갑 주소의 맨 앞에 접두사 '0x'를 붙여 준다고 할 수 있습니다.
그러므로 이더리움이나 ERC20 토큰을 전송하실 때 상대방의 지갑 주소가 0x로 시작된다면 일반적으로 상대방이 이더리움 지갑 주소를 이용하고 있다는 것을 알 수 있는 것입니다.
하지만 끝으로 한 가지 주의하셔야 하는 것은 이더리움의 영향을 받았거나, 이더리움의 소스 코드를 포크하여 개발되었거나, 이더리움과 호환성이 있는 블록체인의 경우, 지갑 주소가 동일하게 0x로 시작하는 경우도 있습니다. 예를 들어 클레이튼 블록체인의 지갑 주소도 0x로 시작하므로 암호화폐를 전송하기 전에 이더리움 지갑 주소를 요구하시고, 한 번 더 확인하시는 것이 필요할 것이라 판단됩니다.
답변이 도움이 되길 바랍니다.