책 커버 표지
일경네트워크_2022/08_Web3에 필요한 기술에 대한 이해
  • 저자 : 日経BP社
  • 발행일 : 20220728
  • 페이지수/크기 : 74page/28cm

요약

Nikkei Network_2022.8 (20~33)

Web3에 필요한 기술에 대한 이해
토큰이나 월렛 등 

지금부터는 웹(Web)3를 성립시키는 기술에 대해 알아보자. 이미 언급했듯이 블록체인이 웹3의 중심을 이루고 있다. 블록체인을 특징짓는 것은 1)블록화된 장부 데이터, 2)암호 해시에 의한 동일성의 담보, 3)전파 알고리즘, 4)공개키 암호를 이용한 인증, 5)합의 형성 알고리즘 등의 5가지이다.

먼저 블록화된 장부 데이터는 블록체인 데이터의 기록 방식을 말한다. 블록체인에서는 기록할 데이터를 '블록'이라는 단위로 분할하고 이를 연결해 관리한다. 블록 안에는 기록하는 데이터인 트랜잭션(Transaction, 거래내역) 데이터와 이전 블록 전체를 요약한 데이터(요약 데이터)가 들어 있다.

'블록체인은 조작이 어렵다'고 알려진 이유는 요약 데이터가 있기 때문이다. 데이터가 한 군데 조작될 경우 이후 블록의 요약 데이터에 부정합이 생긴다. 트랜잭션 데이터를 조작하기 위해서는 이후 모든 블록의 요약 데이터를 수정해야 한다.

이처럼 조작을 어렵게 하는 것이 두 번째인 암호 해시에 의한 동일성의 담보이다. 구체적으로는, 앞에서 말한 요약 데이터의 작성에 해시함수를 적용. 이를 통해 조작되었을 때에 검지할 수 있게 된다. 이전 블록의 해시값을 트랜잭션 데이터와 함께 입력함으로써 조작을 어렵게 한다.

이러한 블록의 연결은 블록체인에 참여하는 모든 노드가 보지(保持)한다. 이것이 블록체인이 '분산형 장부'으로 불리는 이유이다. 노드 간에는 직접 P2P 방식으로 통신한다. 이것이 세 번째 전파 알고리즘이다.

클라이언트 서버 방식과 달리 각 노드가 대등한 입장에서 데이터를 주고받는다. 하나의 노드가 정지해도 다른 노드가 데이터를 보지한다. 이 때문에 블록체인은 누군가가 독단적으로 운용을 멈추는 것은 불가능하다.

네 번째 공용 키 암호에 의한 인증을 통해 참가자의 개인정보를 공개하지 않고도 블록체인 이용이 가능하다. 키 페어를 생성하고 그것을 통해 블록체인과 데이터를 주고받을 수 있다.

마지막인 합의 형성 알고리즘은 추가된 트랜잭션 데이터를 노드 간에 공유하고 블록체인에 추가하기 위한 시스템이다. 트랜잭션 발생부터 블록체인 등록까지의 흐름을 살펴보자. 한 노드에서 트랜잭션이 발생하면 노드는 이를 블록체인 전체에 통보한다. 다른 노드들도 동일하게 전체에 트랜잭션을 통지해나간다.

하지만 잘못된 정보가 나오는 경우도 있어, 합의 형성 알고리즘을 통해 어떤 트랜잭션을 추가하고 블록체인 전체에서 공유할지를 결정한다. 합의 형성 알고리즘으로 인증에 성공할 경우 트랜잭션이 블록체인에 등록된다. 실패할 경우에는 파기된다.

-- 이더리움(Ethereum), PoS 도입 --
이러한 블록체인의 기초는 비트코인에 의해 만들어졌다. 그러나 웹3에서 비트코인은 별로 사용되지 않는다. 스마트 컨트랙트 구현에는 적합하지 않기 때문이다.

웹3에서 자주 사용되는 것은 이더리움이다. 이더리움은 스마트 컨트랙트의 자유도가 높은 점이 특징이다. 디앱스(DApps, 탈중앙화된 응용프로그램)을 개발하기 쉬워 가상화폐 이외의 용도를 개척해오고 있다.

이더리움은 현재, 등장 이래 최대 업데이트 '더 머지(The Merge)'를 눈앞에 두고 있다. 올 후반에 실시될 예정인 더 머지는 이더리움이 안고 있던 과제 중 몇 가지가 개선된 것이다.

더 머지에서 합의 형성 알고리즘이 바뀐다는 점이 가장 중요하다. 지금까지의 계산량이 많아 시간이 걸리는 PoW(Proof of Work, 작업증명)를 채택해왔지만, 그것을 단시간에 계산을 끝낼 수 있는 PoS(Proof of Stake, 지분증명)로 바꾼 것이다.

PoS는 '보유에 근거하는 증명'이라고 번역할 수 있다. PoS는 블록체인에서 나돌고 있는 토큰, 이더리움으로 말하면 암호화폐 '이더'를 보유해온 노드는 블록체인을 해치는(신뢰성을 해치는) 행위를 하지 않을 것이라는 생각에 기반하고 있다. 만일 부정이 발생하면 신뢰를 잃어 이더 가격이 하락하고 보유자도 손해를 보게 본다.

PoS에서는 토큰을 일정량 이상 보유하는 노드를 '밸리데이터(Validator, 유효성 검사도구)'라고 부르며, 블록을 추가할 담당자를 밸리데이터 중에서 랜덤으로 선출한다. 블록을 추가한 노드는 토큰을 보상으로 받게 된다.

-- 체인을 분할해 처리를 고속화 --
또 다른 큰 변화는 샤딩(Sharding) 구현이다. 블록체인을 '샤드'라고 부르는 그룹으로 분할해 처리 속도를 높이는 시스템이다.

샤드 별로 체인의 일부를 검증한 후에 각 샤드의 검증 결과를 연결한다. 이를 통해 복수의 트랜잭션을 병렬로 처리할 수 있게 되어 처리속도의 향상을 기대할 수 있다.

하지만 합의 형성 알고리즘으로 PoW를 채택한 블록체인이 샤딩을 실시하기는 어렵다. 샤드 단위로 분할했을 때 특정 노드에 샤드를 탈취당할 수 있기 때문이다.

반대로 말하면 합의 형성 알고리즘을 PoS로 바꿈으로써 샤딩 구현이 가능하게 되었다. PoS에서는 특정 노드가 특정 샤드를 계속 담당하는 상황은 발생하기 어려워 탈취 우려가 적기 때문이다.

-- 가스비 저감에 기대 --
더머지에서 PoS와 샤딩을 구현하는 것은 이더리움이 안고 있는 과제 중 하나인 가스비 문제를 해결할 수 있을 것으로 기대되고 있다. 가스비란 이더리움에 트랜잭션을 추가할 때 발생하는 수수료이다. 블록체인에서는 트랜잭션을 처리할 때 인증한 노드에 보수로 수수료를 지불한다. 이것이 가스비이다.

가스비는 트랜잭션 처리의 수요에 따라 달라지지만, 최근 상승 추세에 있었다. 디앱스 이용이 활발해지면서 트랜잭션 처리 수요가 급증했기 때문이다. 이더 송금 비용도 은행을 통한 법정화폐 송금보다 훨씬 비싼 상황이 이어지고 있다.

더머지로 이더리움 전체의 처리 속도가 향상된다면 트랜잭션 처리 수요가 증가해도 가스비 급등은 발생하기 어려워질 것이다.

-- 이더리움 VM이 처리 실행 --
또 하나 이더리움을 특징짓는 것이  '이터리움 VM'이라는 가상 머신의 존재이다. 이더리움에서는 이 VM(가상 머신 기술) 를 사용해 스마트 컨트랙트를 실행한다. 이더리움 VM 는 ‘튜링 완전(Turing Completeness)’의 실행 환경이라고 한다. 이를 통해 이론 상 이더리움에서는 어떠한 프로그램도 실행할 수 있게 된다.

이더리움의 스마트 컨트랙트는 전용 언어를 사용해 기술한다. '솔리디티(Solidity)'가 자주 쓰이며, 솔리디티로 기술한 스마트 컨트랙트를 컴파일하고 이를 블록체인에 입력함으로써 가상 머신이 컨트랙트를 처리하게 된다.

-- 토큰이 규격화 --
이더리움 상에서 주고받는 토큰에는 몇 가지 규격이 마련되어 있다. 이러한 규격이 있기 때문에 하나의 월렛으로 서로 다른 NFT를 관리할 수 있는 것이다.

많은 토큰에 사용되는 것이 'ERC20'이다. 이 ERC20을 통해 토큰을 공통 인터페이스 상에서 취급할 수 있게 되었다.

하지만 ERC20에는 운용 상의 문제가 있었다. 존재하지 않는 어드레스로 토큰을 잘못 전송할 경우 스마트 컨트랙트가 트랜잭션을 처리하지 못해 토큰이 소실된다는 문제이다. 실제로 ERC20을 기반으로 만들어진 토큰 가운데 수 억엔 분이 소실된 것으로 알려져 있다.

이러한 문제를 해결하기 위해 새롭게 등장한 규격이 ERC223이다. ERC223은 'token-Fallback'이라는 함수를 구현해 문제를 해결하고 있다. token Fallback을 사용하면 트랜잭션 처리에 실패했을 때 토큰을 송신한 곳으로 반환할 수 있다. ERC223은 ERC20과 호환성을 가지고 있기 때문에 ERC20에 대응한 스마트 컨트랙트는 ERC223 토큰에도 적용할 수 있다.

ERC20과 ERC223은 가상화폐와 같은 교환이 가능한 토큰(FT)용 규격이지만, 'ERC721'이라는 NFT 전용 규격도 만들어졌다. ERC721은 토큰의 소유자나 양도 이력을 적을 수 있는 함수를 구비하고 있다. 이러한 데이터가 입력된 상태에서 블록체인에 보내지기 때문에 조작이 불가능한 정보가 되어 NFT로서 성립하는 것이다.

ERC1155라는 하이브리드 규격도 생겼다. ERC1155에서는 하나의 스마트 컨트랙트로 FT와 NFT를 모두 취급할 수 있다. 또한 ERC1155에서는 복수의 토큰을 한 번에 송신할 수 있다.

-- NFT의 작성부터 양도까지 --
NFT를 작성해 양도할 때까지의 흐름을 살펴보자. 디지털 아트를 예로 들면 다음과 같다. 먼저 아티스트가 디지털 아트를 제작한다. 그 다음 인터넷 상에서 아트를 공개해 구매자를 모집. 동시에 대응하는 NFT를 생성한다.

통상적으로는 일반적인 EC 사이트 등에서 구입을 모집한다. 많은 사람들의 눈에 띄지 않으면 매수자가 모이지 않기 때문이다. 여기까지는 기술적으로 웹3와의 관계는 거의 없다.

웹사이트에서 아트를 소유하고 싶은 사람이 나타나면 양도 절차로 넘어간다. 아트 구매자는 가상화폐로 요금을 지불한다. 요금 지불을 확인한 사람(EC 사이트라면 판매 대행업자)은 NFT에 소유자명을 기입한다. 구매자가 자신이 NFT 소유자로 되어 있는지를 확인하면 거래가 완료된다.

디지털 아트 용량이 큰 경우에는 데이터를 그대로 블록체인에 보낼 수 없다. 즉 NFT라고 해도 아트 자체는 복제와 조작이 가능하다. 하지만 소유자 정보는 조작할 수 없기 때문에 복제되더라도 NFT 소유자가 소유권을 주장할 수 있다. 이것이 현재의 NFT이다.

-- 디지털 데이터를 분산하여 저장 --
NFT의 디지털 데이터를 저장하기 위해 웹서버를 사용하면 해당 서버가 다운됐을 때 소유자도 이용할 수 없게 된다.

이를 위해 비중앙집권적으로 파일을 보관하는 ‘IPFS’를 구현한 웹3 앱을 사용한다.

IPFS는 ‘컨텐츠 지향형 프로토콜’에 기반하는 분산 파일 시스템을 위한 프로토콜이다. 컨텐츠 지향형의 의미를 이해하려면, 지금까지의 로케이션 지향형 프로토콜과 비교하면 알기 쉽다.

예를 들면 웹서버에 파일을 저장했을 경우, URL이라고 하는 컨텐츠 장소(로케이션)를 지정하면 파일을 꺼낼 수 있다. 장소를 지정하기 때문에 ‘로케이션 지향’이라고 불리는 것이다.

한편, IPFS 에서는 컨텐츠에 대응하는 정보를 지정한다. 구체적으로는 파일의 해시값에 따라 파일을 지정한다. 파일 내용을 기반으로 지정하기 때문에 '콘텐츠 지향'이라고 불린다.

파일 취득 시 컨텐츠의 보존 장소를 지정하지 않는다는 것은 어느 노드에 보존되어도 상관없다는 것이기도 하다. 같은 파일을 저장하는 가장 가까운 스토리지로부터 취득하기 때문에 특정 노드에 액세스가 집중되지 않는다. 대용량 파일의 경우에는 분할하여 여러 노드에 저장한다.

여기서 문제가 되는 것은 파일을 취득할 때 지정하는 해시값을 어떻게 알 수 있는가이다. IPFS 에서는 IPNS라고 하는 DNS와 비슷한 시스템을 마련해 쉽게 액세스할 수 있도록 했다.

하지만 현시점에서는 로케이션 지향형 프로토콜의 편리성이 뛰어나다는 지적도 있다. “이 때문에 어느 하나의 플랫포머 서버에 보존하는 웹3 앱도 있다”(아빔 컨설팅의 네모토(根本) 시니어 컨설턴트)라고 한다.

-- 월렛으로 개인인증 --
마지막으로 월렛을 설명하겠다. 블록체인에 참여하려면 월렛이 필요하다. 월렛이라는 말은 '지갑'이자 '가상화폐를 넣어두는 곳'으로 여겨지기 쉽다. 그러나 실제로는 ‘키의 보관 장소’가 더 정확하다. 월렛은 개별 이용자와 밀접하게 연결되어 있기 때문에 웹3에서는 월렛을 통해 인증하는 서비스가 많다.

블록체인으로 암호화폐를 보낼 때 보내는 곳의 주소는 받는 측의 공용 키 값이 된다. 한편 보내는 측은 자신의 비밀키로 서명한다. 월렛에는 이때 사용할 비밀키를 저장한다.

송신자는 송신지의 주소나 송금액 등을 기술한 거래 정보를 작성하고, 그것을 자신의 월렛 안의 비밀키를 사용해 서명한다. 이것들을 함께 수신자에게 송부하며 동시에 블록체인에 보내 승인을 의뢰한다. 따라서 비밀키가 누출되면 보유 암호자산을 쉽게 절취당할 수 있다.

월렛의 안전성은 구현 방법따라 다르다. 구현 방법으로는 클라우드 서비스가 제공하는 '클라우드형'과 자신의 단말기에 설치하는 '핫월렛형', 네트워크에서 분리해 USB 단말기나 종이 정보로 보관하는 '콜드월렛형'이 있다.

복잡한 점은 장소마다 월렛을 바꿔 써야 한다는 점이다. 예를 들어 가상화폐 교환사업자에 계좌를 개설하면 사업자 사이트에 월렛이 만들어진다. 이 월렛은 사업자에 의해 관리되는 클라우드 형태다.

또한 웹앱의 대부분은 월렛을 이용해 개인 인증을 한다. 이때 쓸 수 있는 것은 핫 월렛형이다. 하지만 안전하게 자산을 관리하고 싶다면 콜드월렛을 사용할 필요가 있다.

 -- 끝 --

Copyright © 2020 [Nikkei Network] / Nikkei Business Publications, Inc. All rights reserved.

목차