블록체인 스터디 [26-27주차]

개발새발·2021년 11월 10일
0

블록체인 스터디

목록 보기
19/25

블록체인 스터디 [26주차]

저번주에 타원곡선암호에 대해 미리 공부해둔 덕분에(100% 완벽하게 이해하진 못했지만) 책에서 설명하는 타원곡선 예제들을 이해하는데 훨씬 수월했다. 아마 책으로만 학습했으면 타원곡선암호에 대해 반도 이해하지 못하고 넘어갔을 것 같다.

이 후의 내용은 암호화 해시 함수, 이더리움 주소에 대한 내용이었다. 해시 함수(hash function)는 임의 크기의 데이터를 고정된 크기의 데이터로 매핑하는 데 사용할 수 있는 모든 함수다. 해시 함수는 이더리움 공개키 주소로 변환하는 작업에서의 일부분과 데이터 확인에 도움이 되는 디지털 지문을 만드는 데 사용된다. 암호 해시 함수는 임의 크기의 데이터를 고정 크기의 비트 열로 매핑하는 단방향(one-way) 해시 함수다. '단방향' 특성은 결괏값 해시만 알고 있을 때 입력 데이터를 다시 작성하는 것이 계산적으로 불가능함을 의미한다.

이더리움 주소는 Keccak-256 단방향 해시 함수를 사용하는 공개키 또는 컨트랙트에서 파생한 고유 식별자(unique identifier)다. 이더리움 주소는 16진수이며, 공개키 Keccak-256 해시의 마지막 20바이트에서 파생한 식별자다. 더 자세한 내용은 아래 블로그에 정리해 두었다. 다음주는 chapter5 지갑에 대해 학습할 예정이다.

『Mastering Ethereum』 chapter4 정리한 블로그

 

블록체인 스터디 [27주차]

우리는 지갑에 관해 일반적인 오해를 가지고 있는 경우가 있다. 그것은 바로 이더리움 지갑이 이더 혹은 토큰을 보유한다는 것이다. 사실 지갑은 단지 키만 보유할 뿐이고 이더 혹은 다른 토큰은 이더리움 블록체인에 기록되며 사용자는 지갑에 있는 키로 트랜잭션을 서명함으로써 네트워크에서 토큰을 제어한다.

이렇듯 '지갑'은 우리가 생각하는 것보다 더 넓은 의미를 담고있다. 이더리움의 지갑은 이더리움의 주요 사용자 인터페이스를 제공하는 소프트웨어 애플리케이션으로써 사용자 존에 대한 접근을 통제하고, 키와 주소를 관리하며, 잔액을 추적하고, 트랜잭션 생성과 서명을 제어한다. 한마디로 지갑은 사용자의 키를 보관하고 관리하기 위해 사용되는 시스템이다.

지갑에는 두 가지 형태가 있는데, 지갑이 포함하는 키가 서로 관련이 있느냐 없느냐에 따라 구분된다. 첫 번째는 각기 다른 무작위 수로부터 각각의 키를 무작위적으로 추출하는 비결정적 지갑(nondeterministic wallet)이고 두 번째는 모든 키가 시드(seed)라고 하는 단일 마스터 키로부터 파생된 결정적 지갑(deterministic wallet)이다. 결정적 지갑에서 가장 많이 사용되는 키 파생(key derivation)방식은 HD 지갑(BIP-32/BIP-44) 방식으로 트리 같은 구조를 사용한다. 아마 우리가 흔히 사용하는 지갑은 생성 시 니모닉 코드 단어를 제공하는(예 : Metamask) 결정적 지갑일 것이다. 비결정적 지갑은 백업하고 사용하기 매우 불편하기 때문에 사용이 권장되지 않는다.

『Mastering Ethereum』 chapter5 정리한 블로그

profile
블록체인 개발 어때요

0개의 댓글