검수요청.png검수요청.png

탱글

위키원
(탱글 알고리즘에서 넘어옴)
이동: 둘러보기, 검색
탱글(Tangle) 알고리즘
탱글(Tangle) 알고리즘
탱글(Tangle) 알고리즘을 적용한 아이오타(IOTA)

탱글(tangle)이란 기존 블록체인의 한계를 극복하고자 블록 자체를 없애고, 새로 발생한 거래가 이전에 발생한 2개의 거래를 확인해 주는 방식으로 작동하는 알고리즘이다. 사물인터넷(IoT) 시대의 M2M[1] 코인인 아이오타(IOTA)에 사용된 알고리즘이다.

개요[편집]

탱글(tangle)이란 '엉킨 것, 꼬인 것'이라는 의미의 단어로 아이오타(IOTA)에서 블록체인 기술을 이용했다고 하지 않고 탱글이라는 이름을 붙인 것은 트랜잭션의 처리가 블록도 없고, 체인도 없이 '머리카락 뭉치가 엉켜 있는 것처럼' 이루어지기 때문이다.

흔히 탱글을 '트랜잭션 체인'이라고 부르기도 한다. 그 이유는 A가 트랜잭션을 일으킬 경우 이 트랜잭션이 처리되기 위해서는 임의로 선택된 다른 두 개의 트랜잭션을 A가 처리해야 하기 때문이다 즉, A는 트랜잭션을 일으키기도 하지만 트랜잭션을 컨펌하기도 하는 이중적인 역할을 하게 되는 것이다. 따라서 아이오타 탱글은 트랜잭션과 트랜잭션이 얽히면서 처리되는 방식인 것이고 또한 A는 아이오타 탱글의 이용자이자 트랜잭션 확인자가 되므로 전송 수수료를 지불하지 않아도 된다. 탱글이 머리카락 뭉치가 엉켜 있는 것처럼 되어 있다고 할 때 네트워크의 이용자(=확인자)가 많으면 많을수록 트랜잭션의 처리 속도가 빨라지게 된다. 따라서 블록체인의 문제점인 확장성 문제를 해결하기 위한 방법을 마련해 두었다고 할 수 있다.[2]

특징[편집]

탱글에서 코인이 발행되는 최초의 트랜잭션을 제네시스 트랜잭션이라고 한다. 탱글은 제네시스 트랜잭션부터 최신 트랜잭션까지 사슬처럼 모두 연결한다. 참여자는 누군가의 트랜잭션에 다가가 자신의 트랜잭션을 붙이는데 이는 해당 트랜잭션과 그 이전 트랜잭션을 모두 승인한다는 의미가 된다. 하지만 어떤 트랜잭션을 승인할지 말지 참여자 마음대로 결정할 수는 없다. 담합에 의한 네트워크 공격이 발생하거나 보안상 취약점을 만들 우려가 있기 때문이다. 승인은 일반적으로 랜덤 확률에 의한 선택과 중요도 점수에 의한 선택 두 가지 방법이 있다.

먼저 완전한 랜덤 선택을 하도록 방치해두면 운이 나쁜 참여자의 트랜잭션은 승인을 받기 위해 상당 시간을 대기해야 할 수도 있다. 승인받기 어려운 트랜잭션에 연결되면 데이터가 유실된 것과 사실상 마찬가지다. 그뿐만 아니라 오로지 확률에 의한 선택은 최근 거래를 우선하지 않고 매우 오래된 트랜잭션을 또다시 승인하는 끝점을 만들어낼 수 있어 문제다. 이 경우 트랜잭션이 새롭게 추가된 트랜잭션을 돕지 않아 네트워크의 일손이 낭비되는 효과가 생긴다. 반면 중요도 점수만을 기준으로 트랜잭션을 접착하면 포크가 필연적으로 발생하게 되는 문제가 있다. 탱글에서 임의의 트랜잭션의 중요도는 직간접적으로 승인한 트랜잭션의 개수로 정한다. 포크가 많아지면 탱글의 가지를 너무 많이 만들어 승인을 처리하는 속도를 떨어뜨려 비효율적이기 때문에 중요도 점수만을 우선할 수는 없다. 아이오타의 탱글은 둘을 절충해 중요도를 반영하되 확률을 토대로 구동되는 알고리즘을 탑재했다. 즉 어떤 트랜잭션을 승인할지 자신이 직접 고를 수는 없고 탱글의 알고리즘이 정해주는 트랜잭션을 승인하게 된다. 이렇게 연결 지점을 정해주는 알고리즘을 끝점 선택 알고리즘이라고 부른다. 탱글에 갓 들어온 트랜잭션은 끝점으로 투입된다. 끝점은 아직 승인 된 적 없는 트랜잭션을 말한다. 끝점 선택 알고리즘은 제네시스 트랜잭션에서 끝점까지 이르는 체인 가닥을 만들어가는 과정이다. 이렇게 연결된 끝점은 제네시스부터 뻗어 나온 고유의 가닥을 갖게 된다. 끝점 선택 알고리즘이 실행돼 끝점이 탱글에 포함되면 제네시스부터 해당 트랜잭션까지 이르는 경로에 있던 모든 트랜잭션의 중요도를 1씩 증가시킨다. 중요도는 시간이 지나며 계속 누적된다. 중요도와 확률을 토대로 끝점 선택 알고리즘을 구동하는 방식을 가중 무작위 행보(웨이티드 랜덤 워크)라고 한다.

보통 블록체인에서 트랜잭션의 완결성은 트랜잭션이 포함된 블록 뒤에 연결된 블록의 수에 따라 확률적으로 결정되지만 탱글에서는 완결성 대신 확정 신뢰도라는 용어를 사용한다. 확정신뢰도는 끝점 선택 알고리즘을 100번 실행했을 때 해당 트랜잭션이 어느 정도의 비율로 선택받아 승인되는지 나타내는 지수다. 확정 신뢰도가 높으면 이중 지불 등의 공격 등으로 거래가 변경될 가능성이 낮다.[3]

블록체인과 차이점[편집]

  • 탱글 기술
탱글 기술은 여러 블록들이 서로 얽히고 섞인 네트워크 형태를 가지게 된다. 자세히 말하자면 네트워크 참여자가 기록을 발생시키는 거래자이자 이 기록을 검증하는 채굴자의 역할 두 가지를 한 번에 한다고 생각하면 된다. 탱글 네트워크 안에서는 검증되지 않은 거래 기록 2개를 의무적으로 확인해야 한다. 즉 하나의 참여자가 두 개의 거래를 검증할 수 있기 때문에 참여자가 많아지면 많아 질수록 속도는 더욱더 무한하게 빨라질 수 있는 구조를 가지게 된다. 이러한 구조는 사물 인터넷에 사실 굉장히 특화된 기술이라고 볼 수 있다.[4]
  • 블록체인 기술
블록체인 기술은 거래들을 블록에 저장하고 채굴 과정을 통해 해당 블록을 검증한다. 이후 블록은 순서에 맞춰 기존의 체인에 연결이 된다. 이를 통해 블록체인 네트워크가 유지가 된다. 이때 블록 검증 과정(채굴)에서 기업 또는 사람들은 보상을 가지게 된다. 즉, 채굴자들이 거래를 검증하고 확인시켜주어야 거래가 성사되는 구조를 가지고 있다. 결국 거래가 증가할수록 검증이 필요한 채굴 작업이기 때문에 수수료의 증가가 일어나게 되는 것이다. 또한 거래하나를 승인받기위해 분산화된 네트워크 상의 채굴차들이 검증해줄 때까지 기다려야 한다는 단점을 가지고 있다.[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)과 마찬가지로, 탱글에 트랜잭션을 직접 올릴 필요 없이 별도의 플래시 채널에서 트랜잭션 승인을 얻음으로 인하여 빠른 거래가 이루어질 수 있게 한다.

가기.png 아이오타에 대해 자세히 보기

효율성[편집]

아이오타(IOTA) 네트워크에서 수수료가 들지 않지만 거래를 하기 위해서는 2개의 거래를 노드에서 처리해야 한다. 그렇기 때문에 IoT에 내장된 장치로 채굴/검증을 하는 것은 속도 면에서나 전력 소비 면에서 효율적이지 않은 방식이라는 우려도 있다. 이에 따라 내장 장치에 어떻게 아이오타 노드를 설치할 수 있을지에 대한 의문점을 제기하는 사람들이 있지만, 아이오타 개발 측은 작은 칩도 충분히 아이오타 네트워크에 참여할 수 있을 만큼 매우 적은 컴퓨팅 파워만 요구한다고 주장하고 있다.[4]

각주[편집]

  1. M2M이란 Machine to Machine의 약자로서, 사물인터넷(IoT) 시대를 맞이하여 기계와 기계가 인터넷을 통해 서로 정보를 주고받는 것을 말한다.
  2. erc20, 〈Q. 탱글은 블록체인의 원리와는 다른건가요?〉, 《아하 지식인》, 2019-04-25
  3. 강민승 기자, 〈블록체인보다 더 많이, 더 빠르게, DAG 분산원장〉, 《매일경제》, 2019-04-12
  4. 4.0 4.1 4.2 핵심만 콕콕! 암호화폐 분석, 〈아이오타(IOTA)는 무엇인가? 탱글과 사물인터넷과의 결합〉, 《블록센스》, 2018-06-22
  5. 아이오타 백서 - Serguei Popov, "The Tangle" Version 1.4.3, 2018-04-30
  6. 아이오타 공식 홈페이지 - https://www.iota.org/
  7. "The IOTA Trinity Wallet", GitHub
  8. Andrew Kim, 〈기본지식 아이오타(IOTA)는 무엇인가?〉, 《크로스웨이브》, 2018-03-21

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 탱글 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.