이더리움은 공개 키와 개인 키 쌍을 이용하는 공개 키 암호화 시스템을 채택하고 있습니다. 즉, 이더리움의 공개 키 값은, 개인 키를 '타원곡선 산술 연산'함으로써 얻어진 값이라고 할 수 있습니다.
이 때 연산은 단방향적으로 이루어지므로 '개인 키 -> 공개 키'를 연산하는 것은 가능하지만 '공개 키 -> 개인 키'를 연산하는 것은 불가능합니다.
그러므로 공개 키 값을 암호화한 이더리움 지갑 주소를 통해 개인 키 값을 알아내는 것이 불가능하므로, 우리가 다른 사람에게 이더리움 지갑 주소를 알려주더라도 아무런 문제가 없게 됩니다.
다시 돌아와서 타원곡선 산술 연산을 통해 얻어진 공개 키 값에 이더리움의 암호화 해시 함수인 Keccak256 을 적용하게 되면 상당히 긴 문자열이 만들어지는데, 그것을 모두 지갑주소로 사용하는 것이 아니라,
공개 키 값을 Keccak256으로 해싱한 값 중 끝에서부터 20 바이트의 값을 이더리움 주소로 활용하게 됩니다.
그리고 나서 이더리움 주소가 16진수로 암호화 되었다는 표시로 지갑 주소의 맨 앞에 접두사 '0x'를 붙여 준다고 할 수 있겠습니다.
답변이 도움이 되길 바랍니다.