[Ethereum] - ch4. 암호학

‍허진·2023년 3월 14일
0

Blockchain

목록 보기
17/19
post-thumbnail

본 글은 'Mastering Ethereum(Andreas M.Antonopoulos, Gavin Wood 저)'을 바탕으로 작성되었습니다.

이더리움의 기반 기술 중 하나는 컴퓨터 보안에 광범위하게 쓰이는 수학의 한 분야인 암호학(cryptography)이다. 원래 기존의 이더리움 프로토콜은 어떤 부분도 암호화되어 있지 않았다. 즉, 이더리움 플랫폼과 노드 간(트랜잭션 데이터 포함)의 모든 통신은 암호화되어 있지 않고, 누구나 내용을 읽을 수 있었다. 이렇게 해서 모든 사람이 상태 업데이트의 정확성을 확인할 수 있고, 합의에 도달할 수 있었다.

현재는 영 지식 증명(zero knowledge proof)과 동형 암호화(homomorphic encryption) 같은 고급 암호화 도구를 사용하여 합의를 가능하게 하면서도 암호화된 계산을 블록체인에 기록할 수 있다.

이와 관련된 내용은 다음을 참고하도록 하자.

  1. zk-STARKs: The Quest for Succinct Arguments of Knowledge
  2. Keeping Secrets in Public Places with Homomorphic Encryption

> 키와 주소

이더리움은 외부 소유 계정(Externally Owned Account, EOA)과 컨트랙트(contract)라는 두 가지 유형의 계정을 갖고 있다. 디지털 개인키(private key), 이더리움 주소(Ethereum address), 디지털 서명(digital signature)을 통해 외부 소유 계정의 이더 소유권을 확립한다. 개인키는 모든 사용자와 이더리움 간 상호작용의 핵심이다. 계정 주소는 개인키에서 직접 생성된다.

이러디움 시스템은 개인키를 이더리움에 전송하거나 저장하는 방식으로 직접 사용하지 않고, 비공개로 유지하며 네트워크로 전달된 메시지에 나타나지도 않는다. 계정 주소와 디지털 서명만 이더리움 시스템에 전송되고 저장된다.

개인키를 사용하여 생성된 디지털 서명을 통해 자금의 접근과 통제가 이루어진다. 이더리움 트랜잭션은 유효한 디지털 서명이 블록체인에 있어야 한다. 개인키의 사본을 가진 사람은 누구나 해당 계정과 해당 계정이 가진 이더를 제어할 수 있다. 사용자가 자신의 개인키를 안전하게 유지한다면, 이더리움 트랜잭션의 디지털 서명은 개인키의 소유권을 증명하기 때문에 자금의 실제 소유자임도 증명한다.

이더리움에서 사용하는 것과 같은 공개키 암호화 기반 시스템에서 키는 개인키와 공개키로 구성된 쌍으로 제공한다. 공개키는 은행 계좌 번호와, 개인키는 PIN(개인 식별 번호)와 유사하다고 생각해 보자. 후자는 계정에 대한 제어권을 제공하고, 전자를 가지고 계정을 식별할 수 있다. 개인키 자체는 이더리움 사용자에게 드러나는 경우가 거의 없다. 대부분 암호화된 형태로 특수 파일에 저장하고, 이더리움 지갑 소프트웨어로 관리한다.

이더리움 트랜잭션의 지급 부분에서 지정된 수신자는 이더리움 주소로 표시하며, 이 주소는 은행 송금의 수익자 계좌 세부 정보와 동일한 방식으로 사용한다.

> 공개키 암호화와 암호화폐

이더리움에서 사용하는 공개키 암호화와 암호화폐에 대한 설명은 다음 문서들을 참고하도록 하자.

공개키 암호화
타원 곡선 암호화
암호화 해시 함수

profile
매일 공부하기 목표 👨‍💻 

0개의 댓글