탱글
탱글(tangle)이란 기존 블록체인의 한계를 극복하고자 블록 자체를 없애고, 새로 발생한 거래가 이전에 발생한 2개의 거래를 확인해 주는 방식으로 작동하는 알고리즘이다. 사물인터넷(IoT) 시대의 M2M[1] 코인인 아이오타(IOTA)에 사용된 알고리즘이다.
개요
탱글이란 '엉킨 것, 꼬인 것'이라는 의미의 단어로 IOTA에서 블록체인 기술을 이용했다고 하지 않고 탱글이라는 이름을 붙인 것은 트랜잭션의 처리가 블록도 없고, 체인도 없이 '머리카락 뭉치가 엉켜 있는 것처럼' 이루어지기 때문이다.
흔히 탱글을 '트랜잭션 체인'이라고 부르기도 한다. 그 이유는 A가 트랜잭션을 일으킬 경우 이 트랜잭션이 처리되기 위해서는 임의로 선택된 다른 두 개의 트랜잭션을 A가 처리해야 하기 때문이다 즉, A는 트랜잭션을 일으키기도 하지만 트랜잭션을 컨펌하기도 하는 이중적인 역할을 하게 되는 것이다. 따라서 IOTA 탱글은 트랜잭션과 트랜잭션이 얽히면서 처리되는 방식인 것이고 또한 A는 IOTA 탱글의 이용자이자 트랜잭션 확인자가 되므로 전송 수수료를 지불하지 않아도 된다. 탱글이 머리카락 뭉치가 엉켜 있는 것처럼 되어 있다고 할 때 네트워크의 이용자(=확인자)가 많으면 많을 수록 트랜잭션의 처리 속도가 빨라지게 된다. 따라서 블록체인의 문제점인 확장성 문제를 해결하기 위한 방법을 마련해 두었다고 할 수 있다.[2]
비트코인과 차이점
IOTA의 분산 장부인 탱글은 블록체인과 동일한 기본원칙에 기반하고 있지만 서로 완전히 다르게 설계되어 있다. 큰 틀에서는 탱글과 블록체인의 두 가지 차이점이 있다.[3]
데이터 구조
탱글은 일정 주기로 블록이 선형의 체인으로 연결되는 블록체인과는 달리 방향성 비순환 그래프의 구조를 가지고 있다. 이와 같은 구조로 인해 IOTA는 검증을 병렬화시켜 많은 수의 거래를 처리할 수 있으며 거래 수수료가 전혀 들지 않는다. 탱글의 규모가 커지고 많은 참가자들이 거래를 실시할수록 전반적인 시스템은 더 안전해지고 거래의 처리속도가 빨라지며 거래의 최종확인까지 걸리는 시간이 단축된다.[4]
합의
블록체인 상에서 합의는 다수의 참가자가 경쟁을 통해 다음 블록을 추가시키고 블록 보상과 거래 수수료를 획득하는 매우 면밀한 방식을 통해 이루어지고 있다. 이러한 이유로 합의는 거래의 생성과 분리되어 네트워크의 소규모 부분집합에 의해서 이루어지고 있다. 반면에 IOTA는 거래를 하는 당사자가 직접 합의 절차에 참여한다. 구체적으로 말하자면 두 개의 거래를 직접적으로 참조하며 하위 탱글에 있는 다른 거래들을 간접적으로 참조하게 된다. 이를 통해 검증이 병렬화 되어 네트워크는 완전히 분산화되어 채굴자가 따로 필요 없으며 거래수수료가 존재하지 않게 된다.[4]
탱글 알고리즘
탱글(Tangle)이란 새로 발생한 거래가 이전에 발생한 2개의 거래를 확인해 주는 방식으로 작동하는 알고리즘이다. 기존 블록체인(blockchain) 알고리즘과 달리, 탱글에는 블록도 없고 체인도 없다.
- DAG 기반 : 탱글은 방향성 비순환 그래프인 대그(DAG; Directed Acyclic Graph)를 기반으로 하는 완전히 새로운 알고리즘으로서, 기존 블록체인과 많은 차이가 있다.[5] 탱글에서는 네트워크 참여가 트랜잭션을 발생시키는 동시에 이전 트랜잭션을 확인하는 검증자가 된다. 새로운 거래를 하기 위해서는 반드시 이전에 진행되었던 2개의 거래내역을 확인하고 검증을 진행해야 한다. 전체 트랜잭션 개수가 늘어날수록 네트워크 참여자 및 검증자들이 증가하면서, 시스템의 안전성과 확장성이 더욱 커진다.[6]
- 작동 원리 : 탱글에서 트랜잭션을 처리하는 과정은 다음과 같다. 첫째, 하나의 노드는 알고리즘에 따라 승인할 두 개의 트랜잭션을 선택한다. 이 때 두 개의 트랜잭션은 우연히 같은 것일 수도 있다. 이처럼 아직 승인되지 않은 두 개의 거래를 고르는 것을 팁 선택(tip selection)이라고 한다. 팁 선택을 위해 마르코프 체인 몬테 카를로(MCMC; Markov Chain Monte Carlo) 알고리즘을 사용한다. 둘째, 두 개의 트랜잭션이 충돌하지 않는지를 검사하며, 충돌하는 트랜잭션은 승인하지 않는다. 셋째, 트랜잭션이 유효하려면, 노드는 반드시 암호화되어 있는 퍼즐을 풀어야 한다. 이는 비트코인 등 작업증명(PoW) 합의 알고리즘에서 사용하고 있는 채굴과 유사하다.
- 충돌 문제 : 일반적으로 네트워크는 비동기적(asynchronous)이고, 따라서 노드는 반드시 동일한 트랜잭션의 세트를 보지 못할 수도 있다. 탱글은 충돌하는 트랜잭션을 포함할 수도 있다. 노드는 어떠한 유효한 트랜잭션이 원장(ledger)에 적혀야 하는지 만장일치로 결정할 필요가 없다. 충돌하는 트랜잭션이 있는 경우에, 어떤 트랜잭션이 고아(orphan) 상태가 될지를 결정해야 한다. 두 개의 충돌하는 트랜잭션에 대해서 노드가 사용하는 주된 규칙은 다음과 같다. 노드는 팁 선택 알고리즘을 여러 번 사용하며, 두 개 중 어떤 트랜잭션이 좀 더 간접적으로 선택된 팁(tip)에 의해서 승인되는지를 검사한다. 예를 들어, 만약 100번 이상의 팁(tip) 선택 알고리즘을 수행한 이후, 트랜잭션이 97번 선택되었다고 하면, 97퍼센트의 신뢰도로 확정(confirmation)되었다고 말할 수 있다.[7]
- 수수료 무료 : 탱글은 비트코인, 이더리움 등에서 문제가 되었던 거래 수수료와 트랜잭션 속도 저하 문제를 해결하고자 하는 새로운 시스템이다. 탱글은 채굴 기능이 없이 네트워크 참여자들이 이전 트랜잭션을 검증하게 함으로써, 거래 수수료를 없애고 트랜잭션 속도를 증가시킨다. 이러한 트랜잭션들이 네트워크 내에서 늘어나게 되면 보안이 더 강화되는 특징을 지닌다. 탱글은 데이터 전송 수수료가 없기 때문에 기기들 간의 송금 결제를 수수료 없이 완벽하게 처리할 수 있다. 또한, 참여자 하나당 2개의 검증이 발생되어, 참여자가 많아질수록 보안성과 확장성이 높아지는 구조로서, 사물인터넷을 통한 머신 이코노미에 적합한 기술이다.[8]
- 플래시 네트워크(flash network) : 아이오타(IOTA)는 비트코인의 확장성 문제를 해결하기 위해 나온 대안들 중 하나인 라이트닝 네트워크(lightning network)와 유사한 플래시 네트워크 기능을 가지고 있다. 라이트닝 네트워크는 모든 거래를 블록체인에 올리지 않고, 특정 주소의 채널 상에서 먼저 거래를 마친 참여자들의 트랜잭션을 블록체인에 저장 생성하는 방식으로 속도를 개선한 플랫폼이다. 플래시 네트워크는 라이트닝 네트워크의 오프 채널 또는 사이드체인(sidechain)과 마찬가지로, 탱글에 트랜잭션을 직접 올릴 필요 없이 별도의 플래시 채널에서 트랜잭션 승인을 얻음으로 인하여 빠른 거래가 이루어질 수 있게 한다.
각주
- ↑ M2M이란 Machine to Machine의 약자로서, 사물인터넷(IoT) 시대를 맞이하여 기계와 기계가 인터넷을 통해 서로 정보를 주고받는 것을 말한다.
- ↑ erc20, 〈Q. 탱글은 블록체인의 원리와는 다른건가요?〉, 《아하 지식인》
- ↑ 블록체인 GEEK, 〈Q. 아이오타 코인이 사용하는 탱글 기술은 블록체인과 어떤 차이가 있나요?〉, 《아하 지식인》
- ↑ 4.0 4.1 인용 오류:
<ref>
태그가 잘못되었습니다;.EC.95.84.ED.95.98_.EC.A7.80.EC.8B.9D.EC.9D.B8
라는 이름을 가진 주석에 제공한 텍스트가 없습니다 - ↑ 아이오타 백서 - Serguei Popov, "The Tangle" Version 1.4.3, 2018-04-30
- ↑ 아이오타 공식 홈페이지 - https://www.iota.org/
- ↑ "The IOTA Trinity Wallet", GitHub
- ↑ Andrew Kim, 〈기본지식 아이오타(IOTA)는 무엇인가?〉, 《크로스웨이브》, 2018-03-21
참고자료
- IOTA 공식 홈페이지 - https://www.iota.org/
- 황보수현 기자, 〈(신비한 코인사전) <9>블록체인에 반기를 들다 "아이오타"〉, 《서울경제》, 2018-03-20
- 아이오타 백서 - Serguei Popov, "The Tangle" Version 1.4.3, 2018-04-30
- 핵심만 콕콕! 암호화폐 분석, 〈아이오타(IOTA)는 무엇인가? 탱글과 사물인터넷과의 결합〉, 《블록센스》, 2018-06-22
같이 보기