[블록체인과 게임 ①] 개념에 대한 이해

기획기사 | 이현수 기자 | 댓글: 4개 |
작년 말부터 올해까지 블록체인이 뜨겁다. 특히 블록체인의 산물인 암호화폐(가상화폐, 가상통화, 가상증서, 토큰 등)가 사회적 이슈가 되며 관심이 증폭됐다. 그리고 최근 한 방송사의 토론으로 그 열기는 더 뜨거워졌다.

이미 미국, 유럽을 포함한 국가에서는 블록체인 기술을 활용한 금융거래 서비스, 유통 서비스, 개발 등을 활발하게 진행하고 있다. 이와 발맞춰 게임도 블록체인과 게임을 접목하는 시도를 하고 있으며, 다수 업체가 블록체인 혹은 산물(토큰, 증서, 코인 등등)로 새로운 플랫폼을 도입하려고 도전하고 있다.

인벤에서는 ’블록체인과 게임’이라는 주제로 두 차례 기획 기사를 준비했다. 1부는 블록체인 기술에 대한 개론적인 이야기를 전달하며 2부는 블록체인과 게임이 만났을 때 가능한, 혹은 불가능한 변화를 다룰 예정이다.

기본적으로 현재 서버-클라이언트 게임은 이미지나 사운드 등 프론트엔드(frontend)를 뿌려줘야 하므로 중앙 서버가 전혀 없는 블록체인 네트워크는 구현할 수 없거나 할 필요가 없다. 그러므로 이 기사에서는 블록체인 기술이 특정 점에서, 국소적으로 사용된다고 가정하였을 때 게임 혹은 게임을 둘러싼 인접 산업 및 환경에 어떤 영향을 끼치게 될지 설명하며, 암호 화폐(cryptocurrency)는 법무부에서 표기하는 증서(scrip)로 표기한다. 또한, 증서가 실물경제에서 영향을 끼치는 어떠한 가치 판단 요소를 제외한다. 특별한 표기가 없는 한 블록체인은 퍼블릭 블록체인(Public Blockchain)을 뜻한다.



▲ 최근 한 방송사에서 진행한 토론 장면 (출처: Jtbc)


블록체인의 개념

개념적으로 블록체인은 완전한 분산형, P2P 소프트웨어 네트워크로써, 암호화를 사용해 애플리케이션을 호스팅하고 데이터를 저장함을 뜻한다. 수학적 암호화를 통해서 수천 개의 유사한 시스템으로 이루어진 하나의 보안 컴퓨터 환경이 중앙 권한 없이, 단일 소유자 없이 실행되게 하는 것이 근간이다.

그런데 이 말은 몰라도 된다. 유시민 작가가 방송에 나와서 했던 말처럼 우리는 ‘문송’한 사람들이 태반일 테니까. 나 역시 전문가들을 만나러 다니기 전까지는 세상에 존재하는지도 몰랐던 개념이다.

일반적으로는 블록체인은 거래 정보를 한데 모아 공개 데이터 장부(원장, Public ledger)를 만들고 이를 사슬처럼 연결하는 기술을 칭한다. 모든 원장이 서로 연결되어 공유되기 때문에 위조할 수 없으며, 해커들의 공격에서 자유롭다는 특징을 가진다. 하나의 정보를 임의로 변경하려면 수많은 컴퓨터에 동시에 인증을 받거나 해킹을 해야하는데 이는 경제성이 그리 높지 않기 때문이다.

아주 단순화시키자면 우리가 어렸을 때 했던 롤링페이퍼와 비슷하다. 차이가 있다면 롤링페이퍼에 참여한 모든 사람이 같은 사본을 가지고, 한 명의 멘트가 추가될 때마다 반수 이상이 인정하고 자신의 롤링페이퍼에 같은 내용을 적어 넣는다는 것뿐이다. 그래서 누군가 몰래 롤링페이퍼에 욕을 써도 비교를 통해 변조를 쉽게 확인할 수 있다.

다시말해 ‘서로 신뢰하지 않는 컴퓨터가 연결된 네트워크에서 같은 데이터를 하나로 유지할 수 있고 아무도 데이터를 위조할 수 없는’정도로 정리할 수 있다. 즉 신뢰불요(信賴不要)와 보안으로 주목받고 있는 것이다. 나아가 암호화 자체 역시 지금처럼 서명만 확인하는 것이 아니라 검증 자체를 프로그래밍할 수 있게 되어 있어 다양한 구조 계약을 담는 것도 가능하다.

사실 블록체인의 디테일한 기술은 각사마다 다르고 확장성도 다르다. 다만, 무결성 정보 저장은 공통적인 사항이다. 거래를 감독하는 중앙 관리자가 없는 대신 네트워크 내에 존재하는 수학적 합의 알고리즘을 통해 거래의 신뢰 자체가 필요없는 신뢰도를 높이는 것이다.



▲ Thomson Reuters(2016.1.16.), 'Blockchain technology: Is 2016 the year of the blockchain?'


블록체인은 메쉬 네트워크 또는 LAN(Local Area Network)과 같은 방식으로 작동한다. 즉 같은 소프트웨어를 실행하는 ‘피어(Peer)’ 컴퓨터에 연결된다. 웹 브라우저를 통해 이러한 P2P(Peer-to-Peer)네트워크 중 하나에 액세스하려면 Web3.Js와 같은 특수 소프트웨어 라이브러리를 사용하고 자바스크립트 API를 통해 애플리케이션의 프론트엔드(GUI)를 백엔드(블록체인)으로 연결해야한다. (Chris Dannen, ‘Introducing Ethereum and Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners’ 임지순 옮김, 위키북스)

2부에서 다룰 ‘게임과 블록체인이 만났을 때’의 이해를 위해 블록의 개념을 조금 더 설명할 필요가 있다. 앞서 말했듯 블록체인은 블록이라는 일정 구획에 최대 1MB 정보를 넣어놓고 정보가 변경됐을 때마다 다른 블록을 만들어 붙여 사슬을 늘리는 방식이다.

각 블록은 헤더와 바디로 구성된 구조체로 헤더에는 이전, 현재 블록의 해시(Hash) 값, 넌스(Nonce), 머클루트(Merkle Root) 등을 포함되어 있으며 블록 검색 시 데이터 베이스 방식으로 데이터값을 찾는다.

한편, 특정 거래 횟수를 포괄하는 시간 단위를 뜻하기도 한다. 예를 들어 소주 한 잔을 돌려서 한 테이블이 다 마시고 다시 돌아오는 잔수로 생각할 수도 있겠다. 블록에는 트랜잭션(transaction) 데이터가 기록되며, 단위 시간이 지나면 다음 블록이 시작된다. 블록체인은 상태 변경 내역을 포함하므로 체인 상, 블록으로 지정된 이산 시점(Discrete-time)에서 집합에 담긴 상태의 전체 기록이라고 풀어 설명할 수 있다.

이 블록은 블록체인 상에서 ‘채굴’이라는 과정을 거쳐 탄생한다. 이를 작업증명(Proof of work, 지분증명 Proof of Stake, POI 등 다양한 용어가 있다.)이라 부르기도 한다. 블록을 생성하려면 해시 캐시(hash cash) 문제를 풀어야 한다. 난이도는 미리 정해진 알고리즘에 따라 주어지고 각 블록체인마다 다른, 특정 시간에 찾을 수 있도록 조정된다.



▲ 헤더의 도식화

누군가 해시 값을 찾아서 블록을 생성하면 네트워크에 전송해 모든 피어가 공유하게 하고, 다시 새로운 블록을 만들어 새로 생성된 블록체인에 포함하는 작업을 반복한다. 해시 값은 주어진 입력 자료를 해시 함수(Hash Function)를 통해 계산하여 기존보다 짧은 길이로 변환한 값으로 데이터마다 고유한 값을 가진다.

일반적으로 해시 함수의 목적은 데이터 집합을 빠르게 비교하고 내용이 유사한지 평가하는 것이다. 해시는 블록에 대해 신뢰불요 서명을 생성해, 다음 블록이 그 위에 구축할 수 있도록 한다. 암호문은 복호화가 가능하지만 해시는 역해시가 불가능하여 안전하다. 원래 형식으로 되돌릴 수 없으므로 블록체인 프로토콜은 해시 알고리즘을 사용한다.

블록체인은 익명의 공개키(Public Key)를 계좌 정보로 이용한다. 약간의 비약이 담겨있지만, 로그인할 때 아이디 정도 쯤으로 생각하면 이해가 쉽다. 공개키는 일종의 주소로 고유한 일렬번호를 가지며 언제나 대응하는 개인키(Private key)를 가진다. 계정은 블록체인 원장의 개체로써 자체가 인덱스 역할을 한다.

누구나 신뢰할 수 있는 자체 실행 금융 계약(스마트 계약)을 작성해 이를 통해 추후에 증서를 움직일 수 있다. 이를 통해 미래에 영향을 미치는 재정적 계약을 만들 수 있고, 계약서 상의 이해 관계자는 증서를 통해 가치를 보관할 수 있다.

정리하자면, 블록체인에 기반을 둔 데이터는 임의로 변경할 수 없으므로 변조 가능성이 낮아지고 정보 추적이 매우 쉽다는 특징을 가지고 있다. 또한, 거래 정보와 인증을 위한 중앙 서버와 집중화된 시스템이 필요 없으므로 비용이 적게 들며, 참여자들의 실시간 거래 모니터링이 가능하므로 가시성이 극대화되어, 투명성과 자기부인 방지의 기능을 얻는다.


블록체인? 비트코인? 이더리움? 리플?

블록체인을 이해하는 데 있어 대중이 가장 혼동하는 것이 ‘비트코인’과 같은 증서들이다. 아무래도 대중이 가장 흔하게 접하며 사회적으로도 이슈이기 때문일 것이다.

쉽게 말하자면 블록체인은 제4차 산업혁명을 이야기할 때 나오는 원천, 기반 기술이며 증서는 이를 구체화하여 표현하는 기술이다. 전문가에 따라 블록체인을 뿌리, 증서를 줄기로 말하는 사람도 있고, 블록체인을 꽃, 증서를 생태계를 이루는 벌로 설명하는 사람도 있는데, 이는 현상을 바라보는 시각의 차이다.

요는 네트워크를 구성하는 데 있어 신뢰를 필요하지 않은 신뢰를 만들기 위한 하나의 부산물이라는 점이다. 개념상 AWS 같은 클라우드와 비슷한 프라이빗 블록체인은 아예 이런 과정이 필요하지 않다.

왜냐하면 퍼블릭 블록체인 네트워크는 공개된 P2P로 구성되기 때문이다. 그런데 P2P 네트워크는 사용자가 서로 신뢰할 수 없다는 치명적인 약점을 가지고 있다. 당신이 소리바다나 토렌트에서 엉뚱한 파일을 받는 이유도 그것이다.



▲ P2P는 서로 신뢰할 수 없다는 치명적인 약점이 있다.

이러한 문제를 해결하기 위해 블록체인은 게임 이론에 기반을 둔 보상체계를 마련했다. 작업증명을 수행하도록 함으로써 참여한 사람이 네트워크에 선의를 가졌다는 것을 확인하게 한다.

여기에서 선의는 선의(善意)의 사전적 의미가 아닌 게임이론에 기반을 둔 경제적 보상체계를 뜻한다. 다시 말해 노드 보상을 바라고 네트워크에 참여하여 보상을 받고 이를 부인했을 때 페널티를 주는 것이다. 물론 리플과 같이 증명과정이 없는 블록도 존재한다.

즉 네트워크 사용자들이 해시 값을 통해 새로운 데이터를 검증하는 행위에 인센티브를 지급하는 것인데, 이들이 우리에게 익숙한 증서 BTC, ETH인 것이다. 개념적으로 등장한 BTC나 기술적으로 등장한 ETH는 증명 과정에서 주는 보상이며 이 과정을 통해 신뢰불요 네트워크를 만드는 것이다.

결과적으로 블록체인은 효과적인 인센티브와 불이익을 가진, 게임과 유사한 이론을 접합하여 네트워크를 안정적으로 유지하기 위한 긴장 상태로서 신뢰를 획득한다.


블록체인의 구성 요소

블록체인의 요소가 정확히 정의된 바는 없지만, 일반적으로 전문가들은 P2P 네트워킹(peer-to-peer networking), 비대칭 암호화(asymmetric cryptography), 암호 해싱(cryptographic hashing)을 핵심 요소로 꼽는다.

P2P 네트워킹은 우리에게도 익숙한 당나귀, 프루나, 토렌트와 같이 하나의 중앙 관리 기관에 의존하지 않고 통신할 수 있는 컴퓨터 통신 방식으로, 구조상 단일 고정 점이 없다는 장점이 있다.

네트워크 구축을 위한 서버가 없어도 거대한 네트워크를 원활하게 운용할 수 있으며, 비트코인, 이더리움과 같은 증서 작업 증명을 통한 네트워크 형성이 이뤄진다. 비교적 적은 자원을 분산하여 필요한 서비스를 제공할 수 있다.

비대칭 암호화는 컴퓨터가 특정 수신자에 대해 암호화된 메시지를 보내 모든 사람이 보낸 사람의 진위를 확인할 수 있지만, 의도된 수신자만 메시지 내용을 읽는 방법이다. 블록체인 네트워크는 비대칭 암호를 사용해 계정에 대한 자격 증명 집합을 만들어 증서 소유자만이 증서를 전송할 수 있도록 한다. 이를 비대칭이라고 부르는 이유는 트랜잭션을 주고받는 두 당사자가 서로 다르지만, 수학적으로는 연관된 한 쌍의 키를 따로따로 가지고 있기 때문이다.

암호 해싱은 모든 데이터에 대해 고유의 작은 ‘지문’을 생성해 대규모 데이터셋을 신속하게 비교하고, 데이터가 변경되지 않았음을 확인하는 안전한 방법이다. 비트코인과 이더리움의 ‘머클트리(Merkle tree)’데이터 구조는 거래의 정렬된 순서를 기록하는 데 사용되며, 네트워크상의 컴퓨터에 대한 비교의 기초 역할을 하는 ‘지문’으로 해싱되고 신속하게 동기화할 수 있다.


그럼 미래를 바라본 완벽한 기술인가?

앞서 말했듯 블록체인은 향상된 보안, 추적의 용이, 운영 및 보수, 보안 투자비용 절감할 수 있는 장점이 때문에 주목받고 있다. 그러나 발전속도가 굉장히 빠르다고는 하나 아직 걸음마를 시작한 기술임은 틀림없다.

대표적으로 개인키의 도난 및 분실의 위험성이 크다는 점이다. 개인키가 공개되면 완전히 존재 의미를 상실해 버려 자산 및 기밀이 유출될 가능성이 있다. 키 생성 알고리즘 자체가 취약해지면 재생성 공격이 가능할 경우 자산 및 기밀 거래 메시지가 유출될 가능성도 있다. 이더리움의 창시자 비탈릭 부테린도 이를 언급한 바 있다.

또한, 가능성은 매우 낮지만, 과반수가 합의를 통해 블록체인 합의 과정을 조작하여 네트워크 보안의 근간을 뒤흔들 수도 있다. 예를 들어 양자컴퓨터와 같이 고성능 컴퓨터를 활용하여 계산력을 높이면 거래 조작이 완전히 불가능하지는 않다.

메인체인에서 유효하지 않은 자산을 사이드체인에서 비정상적으로 거래할 가능성도 있다. 물론 이중 거래(Double-Spending)방지와 같은 분기(Fork) 보완책이 있기는 하지만, 가능성은 충분하다. 스마트 계약에 취약점이 존재할 경우 DDos 공격 등에도 악용될 소지가 있다.

성능적인 면에서도 블록체인이 가진 처리 속도 한계에 정보가 급증하면 제한이 걸려 가용성이 저하될 수 있다. 특히 차단 기술이 매우 부족하여 게임의 경우 격리 및 제재가 힘들어질 수도 있다.


게임과 결부할 수 있는 이유 - 암호경제학

경제학은 전통적으로 수학으로 모델링하려는 시도를 해왔으나 실패했다. 고전 경제학은 매우 오래도록 유지된 시스템을 설명하도록 발전해왔다. 그래서 경제학은 최근 수년간 조사와 관찰을 통해 주요한 성과를 올려 왔다. 이 때문에 부분적으로 디자인 됐고 부분적으로 발전해 왔다.

블록체인의 개념과 기술을 놓고 봤을 때 이는 하나의 경제라 하며 이를 암호경제학(cryptoeconomics)으로 부른다. 암호경제학은 고전 경제학과 달리 암호자산을 처음부터 공급, 인플레이션, 보상, 벌금 등으로 설계한다는 의미를 내포하고 있다.

이는 블록체인의 선언적 의미를 상기하면 더 쉽게 이해할 수 있다. 다양한 사람들이 있는 공간에 집을 지을 수 있는 사람이 단 한 명만 있다고 가정하자. 그 한 명만 큰 집을 짓는 기술을 가지고 있기에 모든 사람은 자연스럽게 큰집으로 가게 된다. 하지만 이 기술자가 나쁜 짓을 할 수도 있다. 사람들을 이유 없이 쫓아내거나 예쁜 여자만 모여 살게 할 수도 있다.

그런데 누군가 공공장소에 큰집을 쉽고 빠르게 완벽하게 재화가 통제된 인테리어 설치 방법을 개발했다고 해보자. 공공장소는 처음에 비어있다. 어떤 사람이 이를 보고 이렇게 이야기한다. “야 내가 왜 공공장소에서 시간을 보내야 해? 비어있잖아!” 반면 어떤 이는 “큰집 짓는 기술자가 관리하지 않는 공공장소를 만들었다고? 멋진데! 구경하고 싶어”라고.

결국 몇몇 사람들이 공공장소의 큰 집에 들어온다. 이 집은 갑자기 작은 그룹이 서로 어울려 노는 장소가 돼버린다. 그러면서 사람들은 점점 더 들어온다. 신문에도 공개적으로 기사가 나고 또 사람들이 몰려든다. 하나의 대안이 생긴 것이다. 이게 블록체인의 선언적 의미다.



▲ 이더리움의 창시자 비탈릭 부테린(Vitalik Buterin)

이더리움의 창시자 비탈릭 부테린(Vitalik Buterin)은 암호경제학을 “원하는 어떤 특성이 있는 시스템을 구축하기 위해 암호학과 경제적 인센티브를 사용하는 것을 연구하는 분야”라고 설명했다.

구글의 에릭 슈미트(Eric Schmidt)회장은 2014년 3월 "디지털 세계에서 무언가 복제 불가능한 것을 만들어낼 수 있다는 것은 엄청난 것이다"라고 언급하기도 했다.

이런 개념에 근거하면 게임, 그중에서도 MMORPG와 같은 가상 세계를 구현한 게임에서는 블록체인 기술을 합리적으로 사용할 수 있다. 지금까지는 크립토키티와 같은 이더리움 네트워크 위에 올린 게임이 실험적 시도에 앞섰으며, 디센트럴랜드(Decentraland)와 같은 익숙한 형태의 게임이 선보일 준비를 하고 있다.

게임 내 뿐만 아니다. 게임 외적으로 블록체인 네트워크를 활용한 ‘신뢰불요의 플랫폼’을 구성하여 e스포츠 분야에서 활용할 수 있다. 예를 들면 스마트 계약을 통한 송금 등이 있겠다.

또한, 웹보드 게임, 카지노 게임 등과 같이 보안과 공정성(확률의 공정이 아닌 자금의 공정)이 특히나 중요한 분야에서는 이를 공정하고 입증 가능한 신뢰불요(信賴不要)네트워크로 활용할 수 있다. 게다가 VR 게임에서 실제 화폐를 표현하고 현실 세계에서 소비할 수 있는 포인트로 쓰일지도 모르므로 도전이 계속되고 있으며 이를 활용한 게임들이 개발, 서비스되고 있다.

다만, 게임은 특성상 완벽한 블록체인 네트워크에 올라갈 수가 없다. 서버가 반드시 필요한 구조이기 때문이다. 그럼에도 블록체인은 게임의 몇몇 부분에서 시스템을 안전하게 만들 수 있다는 장점이 있다.




블록체인은 개념적으로 해킹을 방지한다기보다는 악의적인 요인을 막기 위한 강력한 재정적 인센티브 및 불이익 정책을 가지고 있다. 이는 사용자 애플리케이션 측면에서 강력한 매력이 있다.

현재 웹, iOS, OSX, 윈도우, 안드로이드 등을 위한 앱은 일반적으로 프론트엔드 백엔드 나눈다. 백엔드는 데이터베이스와 상호작용하는 논리를 말하며, 정보를 저장하는 곳이기도 하다. 프론트엔드는 애플리케이션에서 사용자가 시각적으로 볼 수 있는 부분, 즉 다양한 레이블 및 컨트롤로 구성된 인터페이스를 의미한다.

오늘날 기술 산업을 주도하는 영역은 애플리케이션이다. 구글이나 페이스북은 애플리케이션 데이터를 모으기 위해 다양한 영역에서 영향력을 행사하고자 인프라를 구축했다. 인프라를 구축하는 데는 TCP/IP, HTTP, SMTP, DNS와 같이 대중이 어디선가 들어본 프로토콜을 기반으로 한다.

기존의 웹 애플리케이션에서는 네트워크를 통해 데이터를 주고받고 공유하는 데이터베이스를 가진 많은 개별 서버가 필요했다. 그래서 트래픽 수요를 감당하기 위해 더 많은 서버를 필요로 했다.

그러나 블록체인 네트워크에서는 네트워크 그 자체가 곧 데이터베이스다. 네트워크에서 모든 사용자가 사용할 수 있는 애플리케이션을 실행한다. 또한, 블록체인 네트워크는 프로토콜이 대부분을 지원하므로 애플리케이션 계층(application architecture, client-server architecture, Peer-to-Peer architecture, hybrid에서)이 상대적으로 적다.

전통적인 웹 애플리케이션은 사용자의 데이터를 저장하고 교환하도록 설계되어야 하므로 큰 비용을 소모해야 하며, 신뢰를 보장하기 위해 악의적인 행위자를 처벌, 격리할 수 있는 시스템이 필요하다. 그래서 사인코드 등과 같은 사설 방화벽과 차단 기술이 사용된다. 이러한 사설 인프라 보안이 분산 네트워크로 대체되면 운영사는 간접비용(Overhead cost)을 절감할 수 있다. 이 때문에 게임과 결부시킬 가능성이 대두하는 것이다.

블록체인의 열성적인 옹호론자들은 블록체인이 모든 기술적 패러다임을 대체할 것으로 기대한다. 그러나 대부분은 전통적인 데이터베이스가 잘 작동하기에 그런 일은 쉽게 일어나지 않을 것이다. 게임도 마찬가지다.

다만, 기존에는 여의치 않았던 구조와 환경이 블록체인의 도입으로 개선이 가능한 경우는 생길 것이다. 2부에서는 블록체인 기술이 게임과 결합하였을 때 어떠한 가능성이 있는지 알아보겠다.

ㄴ 관련기사: [블록체인과 게임 ②] 기술 발전의 가능성 12가지

댓글

새로고침
새로고침

기사 목록

1 2 3 4 5