관리 메뉴

A seeker after truth

이더리움과 솔리디티 입문(2) - 미스트 브라우저 본문

Blockchain

이더리움과 솔리디티 입문(2) - 미스트 브라우저

dr.meteor 2019. 10. 10. 23:55

*본문은 경희대 블록체인 학회원으로서 상반기 동안 블록체인 기초 교육을 이수한 뒤 2019년 7월 경 <이더리움과 솔리디티 입문>(위키북스,2018) 을 읽으며 문서에 메모한 내용을 옮겨온 것입니다.

*소웨 = 소프트웨어, 하웨 = 하드웨어, 플밍 = 프로그래밍, 데베 = 데이터베이스, 컴터 = 컴퓨터, 컴과 = 컴퓨터 과학, 알고 = 알고리즘, 컴네 = 컴퓨터 네트워크 의 줄임말입니다.

 

 

암호화폐 소웨 분야에는 기본적으로 두 가지 클라이언트 어플, 지갑과 풀 노드가 있다.

지갑 = 일반적으로 블록체인이 연결된 상태에서 암호화폐 송수신과 같은 기본 기능을 수행하는 가벼운 노드.

풀 노드 = 네트워크에서 허용하는 모든 작업 범위를 수행할 수 있는 커맨드 라인 인터페이스.

미스트 브라우저는 사용성이 좋은 지갑 클라이언트로서, 풀 노드의 기능 중 일부를 수행할 수도 있다. 즉 스마트 계약을 실행할 수 있다는 뜻. 따라서 이더 백엔드 상에 구현된 웹 앱과 유사한 프로그램에 미스트를 통해 액세스할 수 있다. 그래서 미스트는 브라우저라고 불리는 것이다. 미스트는 단순해 보이지만 실제론 그렇지 않다. 지금은 그냥 암호화폐 송수신에 유용한 소웨일지 몰라도 앞으로는 앱스토어처럼 소비자 및 기업용 소웨 배포의 중심이 될 수도 있다.

 

1)    지갑은 왜 지갑인가?

지갑 = EVM에 키를 보관하는 역할. =계정=길이가 긴 일련의 바이트로써, 소유주 이름이나 기타 개인 정보를 저장하지 않는 준익명성. 그래서 계정도 여러 개 생성 가능.

공개키 = 계정 주소. 공개키는 언제나 대응되는 개인키를 가지며, 개인키가 있어야만 계정에 액세스할 수 있다. 개인키는 자기만 알아야 한다. 이 둘은 비대칭키 암호화의 일부이다. 이더/비트를 받으려면 전송할 사람에게 주소를 전달해야 하며, 그렇기에 이러한 주소는 공개키라 부르는 것.

 

2)    주소

현재 일반적인 영어로 된 사용자 이름을 생성해 주소로 사용할 수 있는 연구가 진행되고 있다.

오늘날의 도메인과 같은 방식으로 작동하게 되는데, 탈중앙화 네트워크의 도메인 대행자에게 이름을 등록하면 실제 주소로 연결되는 방식이 될 것이다. 오늘날 상위 도메인이 IP 주소로 리다이렉션되는 방식과 동일할 것이다. 이더리음 네트워크는 오늘날 http 웹이 가진 멋진 기능을 구현하기 위한 계획을 많이 갖고 있다.

계정은 결국 데이터 객체다. 즉 계정이란 블록체인 원장의 주소로써 주소 자체가 인덱스 역할을 하며, 잔액과 같은 계정 상태에 대한 데이터를 담고 있다.

계정의 주소는 특정 사용자에 속하는 공개키이며, 유저가 자신의 계정에 접근하는 방법이기도 하다. 엄밀히 말하면 주소는 공개키 자체가 아니라 공개키의 해시값이다.

EVM의 비대칭 암호는 네트워크에서 유효한 이더리움 주소를 생성, 인식, 트랜잭션에 디지털 서명하는데 사용된다. 공격자는 이 암호를 가로채도 읽을 수 없고, EVM 트랜잭션 요청 형태의 메시지가 자금을 탈취하려는 침입자가 아닌 실제 주소 소유자로부터 오는 것임을 보증한다.

 

개인키만 잘 보관하고 있으면, 미스트 지갑을 설치한 컴이 망가지더라도 다른 노드를 통해 자신의 이더에 접근할 수 있다. 이더가 특정 컴이나 어플에 포함된 것이 아니기 때문. 하지만 개인키를 딴 사람에게 넘겨주면 그 사람이 EVM에 접근해 내 잔고를 모두 인출할 수 있다. + 개인키를 백업도 해야 함. 그래야지 돈을 잃지 않음. 백업 방법만 해도 굉장히 여러 가지다!!!

이더리움은 오늘날의 어플과 달리 신뢰할 수 있는컴을 찾지 않는다. /네 스마트폰을 서로 구분하지도 못한다.

 

3)    이더리움 트랜잭션

지갑 어플이 데베를 변경하려고 하면 가장 가까운 이더리움 노드에서 변경 사항을 감지한 다음 변경 사항을 네트워크를 통해 전파한다. 따라서 모든 거래가 모든 원장에 기록된다. 비트와 이더의 기술 혁신은 네트워크 지연으로 인한 상태 변화 순서의 불일치를 네트워크가 조정하고, 하나의 단일 원장으로 통일할 수 있단 점에 있다.

 

4)    암호화를 통한 신뢰

 낯선 사람들이 함께 운용하는 네트워크의 보안을 보장하기 위해 블록체인은 비대칭 암호화, 암호화 해싱, p2p 분산 컴퓨팅 세 기술을 사용한다.

비대칭 암호화 = 공개키 “ = 네트워크 상에서 발신&수신자가 신뢰할 수 없는 통신 채널을 통해 보안 메시지(EVM의 경우 트랜잭션)를 주고받는 방법을 말한다. 트랜잭션은 계정의 상태를 변경하기 위해 네트워크로 전송된다. 비대칭인 이유는 메시지를 주고받는 두 당사자가 서로 다르지만 수학적으로 연관된 한 쌍의 키를 각각 갖고 있기 때문이다.

대칭키 암호화와 달리 비대칭 암호화 통신은 당사자 사이에 보안 채널을 필요로 하지 않음. 비트랑 이더는 아무 검토 없이 네트워크에 참여할 수 있기 때문에 공개키 암호화가 필수적. 개념적으로 이더리움은 암호화를 통해 EVM의 계정 잔액에 대한 모든 변경 사항의 합법성을 검증하고 계정 잔액이 잘못된 방법으로 증/감하지 않았는지 검사한다.

 

5)    이더리움 계정 종류

-      외부 계정 = 사람이 만들고 사용하는 계정

-      계약 계정 = 스마트 계약이 점유하는 주소

왜 스마트 계약이 점유하는 주소가 따로 있냐면, 스마트 계약이 인간의 일을 자동화하여 대신하기 때문이다. 이를테면 사람한테 이더를 직접 보내는 것 말고도 스마트 계약을 통해 송금을 자동화하는 방법도 있다.

 

6)    블록체인이란 결국?

블록 = 특정 거래 횟수를 포괄하는 시간 단위. 거래 데이터가 기록되며, 단위 시간이 경과되면 다음 블록이 시작된다.

블록체인은 EVM 네트워크 데베 내에서의 상태 변경 내역을 포괄한다.

블록체인의 블록은 시간 단위를 나타낸다. 블록체인 자체는 시간 차원이며, 체인 상에 블록으로 지정된 이산 시점의 집합에 담긴 상태의 전체 기록을 나타낸다.”

 

7)    트랜잭션 비용 지불

EVM에서 트랜잭션을 처리하기 위한 약간의 수수료가 부과된다. 스마트 계약의 업로드도 이와 유사하게 작동한다. 사용자는 EVM이 각 계약을 실행하는 데 소요되는 연산량의 대가를 지불해야 한다. 이로써 끝없이 소모적으로 실행되는 프로그램의 구동 가능성을 이론적으로 줄일 수 있다. 이 비용은 gas란 단위로 측정된다.

Gas = EVM이 수행해야 하는 작업의 수를 나타내는 지표

트랜잭션이 복잡할수록 그 수수료는 비싸다. 계산이 복잡하면 전력 많이 소모되는 것과 같은 원리.

가스 한도가 있다. 트랜잭션 송신자가 트랜잭션이 실행되기 위해 지불할 금액을 기재하는 것을 말함.

풀 노드는 수수료를 받는다. 이들은 채굴을통해 지불 네트워크의 보안을 관장하며, 수많은 트랜잭션을 대조하고, 유효성을 검사하고 청산하고 블록체인에 저장하기 위한 하웨를 제공하는 대가로 송금이나 스마트 계약을 실행하는 사용자로부터 수수료를 받는다. 채굴자는 수수료를 징수하기 때문에

 

8)    이더 확보

이더를 확보하는 가장 쉬운 방법은 미스트 지갑 내에서 비트코인을 이더로 변환하는 방법이다. 채굴로도 얻을 수 있지만 초기 설정이 필요하다. 그리고 미스트는 테스트넷이 아닌 한 채굴이 불가능하다. 법정 화폐로 이더를 구입하려면 거래소를 방문하거나 인가받은 송금기를 사용해야 한다. 테스트넷에서는 이더를 무료로 확보할 수 있다.

 

9)    암호화폐의 익명성

비트와 이더는 익명성 있는 지불수단이 아니다. 공개키만 알면 트랜잭션 날짜와 금액을 모두 조회할 수 있으니까. 그만큼 투명하기도 하고. 비트와 이더 주소는 사실상 가명이며, 개인의 이름 및 정보와 관련이 없다. 연결도 안되어 있다. 그런데도 거래 내역을 조회할 수 있으니 투명하다는 것.

스마트 계약 자체의 데이터는 부호화되지만, 암호화되지는 않는다. 암호화는 대규모 데이터 집합을 해시하고 트랜잭션을 보낸 사람과 받는 사람을 확인하는 데만 사용된다. 하지만 데이터를 이더리움 스마트 계약에 넣기 전 직접 암호화하는 방식을 통해 퍼블릭 이더리움 체인을 프라이빗에 가까운 방식으로 사용하는 것도 가능하다.