아이오타 포괄적 분석 Overall Analysis of IOTA
3rd Generation Of blockchain technology
서문
제 3세대 블록체인으로 소개되는 다양한 기술들, 예를 들어 Tangle과 Hash Graph는 사실 엄밀히 말하자면 블록체인이 아니다. 어쩌면 이 새로운 기술들은 기존의 블록체인 기술을 무너뜨리는 역할을 할 수 있다.
이 중 대표적으로 IOTA 프로젝트를 들 수 있는데 IOTA 프로젝트는 Tangle이라는 고유 플랫폼을 사용한다. IOTA의 어원을 직관적으로 볼 때 사물인터넷 IoT와 관련된 것으로 생각할 수 있지만 실제로 IOTA는 아주 적은 양을 의미한다. 실제로 IOTA는 아이오타 네트워크의 매우 작은 결제 단위로 비트코인의 사토시, 이더리움의 Wei로 생각하면 된다. 2018년 2월 5일 기준 현재 거래되는 IOTA 단위는 100만 IOTA, 즉 MIOTA이다. David Sonstebo, Sergey Ivancheglo, Domonik Schiener 그리고 Serguei Popov가 아이오타의 창립 멤버로 2015년도에 ICO를 하여 5억원의 창립 자금을 마련 하여 현재 베를린, 독일에 본사를 두고 비영리 재단을 운영하고 있다.
아이오타 플랫폼의 목표는 기계와 기계가 서로 자유로이 결제 및 소통하는 Machine Economy(기계 경제)와 원활한 사물인터넷의 보급이다. 하지만 현존하는 사물인터넷 플랫폼은 특히 보안 측면에서 상당히 취약하다고 할 수 있는데 예를 들어 스마트 홈 해킹을 통해 여름에 에어컨을 틀지 못하게 하는 랜섬웨어, 사물 인터넷 기반 자동차를 해킹하는 행위, 당뇨병 환자의 목숨이 걸린 인슐린 펌프를 해킹하는 사례까지. 사물인터넷의 미래는 철저한 보안 없이는 이루어 질 수 없다.
IOTA 재단은 이러한 문제를 태생적으로 보안에 매우 훌륭한 분산원장 기술로 극복하고자 했고 더 나아가 M2M Payments 즉, 기계와 기계간의 자동화된 소액결제 및 커뮤니케이션이 가능한 플랫폼을 개발하였다.
기존 1세대, 2세대 블록체인의 한계
Scalability(확장성)
최근 사람들 사이에 가상화폐 인지도가 높아짐에 따라 대두되는 문제는 확장성 문제이다. 여기서 확장성이란 주어진 시간에 얼마만큼 데이터를 처리할 수 있느냐에 있다. 대표적인 척도로 초당 거래 횟수를 들 수 있는데 비트코인의 경우 Segwit이 적용되었다 하더라도 초당 3-7개 정도의 거래가 가능하다. SegWit 적용 후 해결된 Transaction Malleability** 문제는 비트코인 Lightening network 구축을 가능케 했는데 LN이 성공 할 경우 더 많은 거래를 해결 할 수 있지만 2018년 2월 5일 기준 테스트 단계로 넘어야 할 장애물이 많이 남아 있다.
이더리움의 경우 현재 초당 15개에서 30개의 거래가 가능하며 Sharding과 비트코인의 LN네트워크와 비슷한 off-chain transactions을 통해 이를 해결하려 하고 있다. 확장성 문제에 있어 1세대와 2세대 블록체인으로 대표되는 비트코인과 이더리움의 역량은 대표적인 카드 글로벌 VAN사인 VISA에서 현재 처리하는 초당 4만 5천개의 거래와 비교했을 때 터무니 없이 작다고 할 수 있다.
Fees(수수료)
2018년 2월 6일 기준 비트코인을 송금하기 위한 fee는 평균적으로 9 천원 정도 한다. 기계간의 잦은 소액 결제에는 사용이 불가하다.
Hardware & Resource Requirements(하드웨어 및 진입 장벽)
비트코인의 PoW를 유지하기 위해 대규모 마이닝 시설이 해쉬파워를 경쟁하는 현 시점에 보통의 유저가 현실적으로 마이닝에 참여 할 수 없다. 이는 결국 비트코인 네트워크의 보안이 소규모의 마이닝 그룹에 의해서 좌지우지되는 것을 의미하며 이를 해결 하기 위해 이더리움은 Casper 프로젝트로 PoW에서 PoS로 넘어가려는 준비를 하고 있다.
IOTA의 Tangle
탱글은 아이오타가 자체 개발 한 DAG(Directed Acyclic Graph) 기반의 분산원장 기술이다. 아이오타 재단에 따르면 탱글은 ‘블록과 체인이 없는 블록체인’이다. 기존의 블록체인과 설계는 전혀 다르지만 기존 블록체인이 갖는 특징들, 분산화 된 데이터베이스, P2P 네트워크, 그리고 합의 메커니즘을 그대로 유지한다.
DAG의 의미를 풀어보면 Directed, 즉 거래의 데이터 생성에 방향성이 존재한다는 의미이다.
Acyclic이란 거래가 꼬리의 꼬리를 무는 형태 즉 순환 형태를 갖지 않는다는 의미이며 Graph는 말 그대로 설계 구조이다.
의미를 합쳐서 한국말로 풀어 보자면 방향성을 갖고 순환하지 않는 설계 구조의 분산원장이란 의미이다.
아이오타의 탱글과 비트코인의 블록체인의 가장 큰 차이는 DAG 구조가 갖는 특이성을 들 수 있다. 비트코인 블록체인의 경우 비트코인 사용자 A가 B에게 비트코인을 보낼 경우 지갑 어플리케이션에서 거래 ID를 생성하고 이 거래 정보가 비트코인 네트워크로 전송(broadcasting)이 된 후 전 세계 비트코인 마이너들이 서로 경쟁하여 수학 문제를 풀어 발견한 블록에 거래 ID를 기록함으로써 거래가 이루어 진다. 반면, 아이오타는 ‘레퍼런싱’ 이라는 메커니즘으로 거래가 진행 되는데 레퍼런싱이란 사용자가 자신의 거래를 탱글 네트워크에 등록하기 위해 아직 승인되지 못한 두 개의 거래를 확인하는 것을 말한다. 결국 사용자는 레퍼런싱을 통해 두 개의 거래를 ‘직접’ 확인하게 되고 이 직접 확인한 두 개의 거래가 확인한 세부 거래를 ‘간접적’으로 확인하는 결과를 낳게 된다. 탱글의 간접적 확인 횟수가 늘어남은 곧 거래 신뢰도가 높아지는 것을 의미하며 비트코인 블록체인의 거래 승인 횟수 중첩과 매우 유사하다.
아이오타의 탱글이 비트코인의 블록체인과 크게 차이를 두는 부분은 마이너와 사용자를 따로 구분 짓지 않는다는 점이다. 비트코인 네트워크의 보안을 담당하는 마이너들은 해쉬 파워 경쟁으로 소수의 막강한 마이닝 풀(그룹)에 힘이 집중되는 문제가 있는 반면 아이오타 네트워크상의 모든 참여자 혹은 기기가 거래 생성과 확인에 관여하게 된다. 이 특징은 확장성에 있어서 매우 유리하게 작용할 수 있는데 아이오타 네트워크의 사용자 숫자가 많아 질수록 속도와 보안이 개선되는 효과를 얻을 수 있다.
Snapshot: 스냅샷
그렇다면 과연 아이오타의 분산 원장이란 탱글은 어디에 저장이 되며 어떤 방식으로 운영 될까? 탱글은 비트코인의 블록체인과 같이 Full Node가 저장 및 관리한다. 그렇다면 탱글 역시 시간이 지남에 따라 비트코인 블록체인과 같이 거대한 용량을 차지할까? 그렇지 않다. 왜냐면 탱글 네트워크를 관리하는 노드들은 정해진 시간에 ‘Snapshot’이라는 기능을 통해 거래 전체를 사진 찍듯 캡처를 하는데 스냅샷 이후 소모된 거래를 지우고 아직 잔액이 남아있는 거래만 모아 Genesis block 즉 탱글의 시작점으로 사용한다. 이를 통해 아이오타 재단은 탱글 데이터를 최소화 할 수 있으며 Lightweight 지갑 개발이 완료됨에 따라 많은 전산처리기능을 가지지 않은 기기에서도 거래가 가능하도록 만들 예정이다.
관리자(Coordinator)
아이오타 네트워크의 태동기에서 걸음마를 떼는 유아기 동안 관리자가 네트워크에 존재하게 된다. 관리자는 짧게 ‘Coo’라고 불리우고 아이오타 네트워크 상에 전 세계적으로 퍼져있는 몇 개의 Full node를 아이오타 재단이 직접 관리한다. 거래 생태계의 유지를 위해 체크 포인트 역할을 하며 milestone이라는 가치가 없는 거래를 만들어 사용자들의 거래를 최종적으로 레퍼런싱하는 역할을 맡는다. 관리자는 노드의 한 부분으로 역할을 하기 때문에 다른 노드와 마찬가지로 작위적으로 아이오타를 생성하거나 이중 지불을 승인할 수 없다.
Zero 금전적 거래 수수료
아이오타 탱글의 디자인은 궁극적으로 금전적 수수료가 들지 않는 거래를 가능케 한다. 여기서 굳이 ‘금전적 수수료’라 말한 이유는 아이오타 네트워크 참여자 및 기기는 비트코인 거래에서 마이너들에게 지급해야하는 정해진 수수료를 지불하는 대신 스팸과 Sybil attack을 막는 Hashcash 와 비슷한 Proof of Work 위해 어느 정도 컴퓨팅 파워를 사용해야 한다.
IOTA 결제 프로세스
Signing: 결제 입력값에 개인 키를 사용하여 서명
Tip Selection: MCMC(Markove Chain Monte Carlo)를 사용하여 아직 확인되지 않은 두 개의 거래 마디를 고르고 레퍼런싱을 진행 한다.
Proof of Work: 아이오타 네트워크에 결제를 등록하기 위해 HashCash와 비슷한 방법으로 PoW를 진행 한다.
위의 세 가지 절차에 따라 당신의 결제는 아이오타 네트워크에 전달 될 것이고 다른 참여자 혹은 기기가 당신의 거래 마디를 선택하여 거래가 승인을 받게 될 것이다.
IOTA 네트워크 컨센서스
그렇다면 이제 아이오타 네트워크 참여자들이 어떤 방식으로 거래를 승인하는지 알아보자. 이 부분을 알아 보면서 우리는 자연스럽게 이중지불문제를 함께 짚고 넘어 갈 수 있을 것이다. 그림에서 보는 바와 같이 녹색 블록은 승인 된 (거래의 보안이 보장된) 거래를 나타내고 붉은 색 블록은 적절한 합의엔 도달했지만 네트워크에 아직 완벽히 받아들여지지 않는 거래를 나타낸다. 회색의 블록은 아직 확인이 되지 않은 이제 막 추가 된 거래의 끝 마디를 보여준다.
모든 거래의 목표는 회색 블록이 녹색이 되는 것이다. 블록은 탱글에 존재하는 모든 회색 블록에 의해 직/간접적으로 레퍼런싱이 완성되면 녹색을 띄게 된다. 이는 곧 각각의 승인 된 거래에는 모든 끝 마디 에서 도달하는 길이 있다는 의미이다. 아이오타 재단의 설명에 따르면 Markov Chain Monte Carlo(MCMC)** 알고리즘을 N번 실행할 경우 당신의 거래가 승인 될 확률을 M(N)으로 정의한다. 예를 들어 당신이 MCMC 알고리즘을 100번 실행 하여 이 중 51번 성공적으로 당신의 거래로 도달하는 길이 있는 끝 마디를 찾았다면 당신의 거래가 승인 될 확률을 51%로 보는 것이다. 따라서, 판매자는 이 확률을 바탕으로 결제를 받아드릴지 아닐지 여부를 판단할 수 있다.
확장성(Scalability)
아이오타 네트워크 구조는 거래가 늘어 날수록 네트워크의 보안과 속도가 높아지는 장점이 있다. 2017년 4월 진행된 네트워크 스트레스 테스트 결과 250개의 노드로 초당 180개의 거래를 처리하였다.
오프라인 거래(Partitioning)
아이오타의 탱글 네트워크의 다른 특징은 오프라인 거래가 가능하다는 점이다. 메인 네트워크에 항시 등록되어있지 않은 기계 혹은 사물 간 거래는 탱글 네트워크의 Partitioning(분할) 기능을 사용 할 수 있다. 이 기능은 메인 탱글 네트워크에서 분리되어 인터넷이 아닌 ZigBee와 Bluetooth LE 같은 다른 커뮤니케이션 프로토콜을 사용하여 오프라인 네트워크를 형성하며 지속적으로 거래를 가능케 한다. 이 후 인터넷 연결이 확보되는 지점에서 따로 분리, 형성된 오프라인 탱글은 메인 네트워크와 합치게 된다.
Full Node Set-up
누구나 쉽게 Virtual Private Server를 통해 아이오타 네트워크의 Full Node를 설치할 수 있다. 자세한 설치 방법 참조: http://iota.partners/
Institute of Blockchain Technology (IBCT)
Analyst, Juno Yu
안녕하세요 잘 읽었습니다!
지난 금요일 강의 후기를 남기려고 하는데 후기에 이 글 링크 남겨도 괜찮을까요?
팔로우와 보팅 했습니다.^^
네. 강의 참석해 주셔서 감사합니다~ 네 물론입니다. 링크 남기셔도 됩니다.
안녕하세요~ 어제강의 잘들었습니다~