안녕하세요 훕블입니다. 이번에는 블록체인 관련 기술인 DAG알고리즘과 이 알고리즘을 활용한 Tangle이라는 기술에 대해서 설명하겠습니다.
DAG(Directed acyclic graph)?
대표적인 블록체인 암호화폐인 비트코인과 이더리움은 지금까지 P2P 네트워크라는 기술아래 보안과 투명성이라는 강력한 장점이 있지만 그 이면에는 부족한 확장성과 느린 트랜잭션 처리속도, 증가하는 수수료 등 실제 활용되기에는 부족한 단점들이 많습니다. 그래서 완벽한 대안은 아니지만, 이런 부분을 보완할 수 있는 DAG알고리즘의 마이닝 기법들이 많이 개발되고 있습니다. 블록체인과 DAG알고리즘, 어떤 차이가 있을까요?먼저 비트코인을 예로 들겠습니다. 제네시스 블록을 시작으로 각 트랜잭션을 블록에 기록하기 위해서 마이닝 과정을 거칩니다. 하지만 블록하나를 생성하는데 평균적으로 10분 정도 소요되고 1초당 거래 처리 건수가 평균 7건 입니다. 그래서 현재 많은 사람들이 거래에 참여하고 있지만 트랜잭션 처리속도와 처리양의 한계 때문에 수수료가 증가하고 미승인 트랜잭션이 늘어나고 있습니다.
DAG는 사이트의 검증에 활용되는 알고리즘입니다.
이 알고리즘이 사용되는 기술(Tangle)을 블록체인과 비교해서 설명하자면, Tangle은 블록이 없이 트랜잭션 자체가 검증과정에 참여하는 기준이 됩니다. 또한 각각의 트랜잭션은 미승인된 트랜잭션 2개를 검증해야 생성이 완료됩니다. 이 검증해야하는 트랜잭션 선택해주는 방법에 DAG를 활용한다고 보면 됩니다. (위 그림의 네모상자가 트랜잭션이라고 보면 됩니다)
DAG알고리즘에서 정렬방향은 일정한 규칙이 있습니다.
각 사이트는 한 방향으로만 정렬이 진행되는 동시에 순환이 발생해서는 안되고 역방향으로 정렬이 진행되어서도 안됩니다. 또한 모든 사이트를 거쳐야합니다.왼쪽그래프를 보면 A와 B C 사이에서 순환이 발생하는 것을 볼 수 있습니다. 이런 그래프를 네거티브 그래프라고 합니다. 이런 순환은 한 곳에만 계속해서 맴돌게 되는 심각한 오류를 초래합니다. 그래서 오른쪽과 같이 방향이 역방향으로 흘러서도 안되고 모든 사이트를 동시다발적으로 거치도록 하는 것이 DAG 알고리즘의 핵심입니다.
Tangle ?
DAG 알고리즘을 활용한 대표적인 마이닝 방식은 IOTA 프로젝트에 활용되는 탱글(Tangle) 이라는 기술입니다.왜 IOTA는 DAG 알고리즘을 활용했을까요?
IOTA는 사물인터넷 관련 프로젝트입니다. 사물인터넷의 경우 많은 스마트 기기를 연결해야하고 폭발적인 트랜잭션을 수용할 수 있는 기술이 필요합니다. 하지만 블록체인은 직렬 방식으로 마이닝이 진행되기 때문에 블록생성시간이 오래걸립니다. 그래서 트랜잭션 처리속도가 느리고 처리량에 한계가 있습니다. 사물인터넷은 다양한 스마트기기를 연결하는 동시에 기기들의 엄청난 트랜잭션을 처리해야하기 때문에 블록체인 기술이 적합하지 않습니다.반면에 Tangle의 경우 트랜잭션의 양이 많을 수록 더 안정적이며, 마이닝 과정이 병렬적으로 진행되기 때문에 사물인터넷에 아주 적합합니다. 또한 탱글은 거래자가 트랜잭션을 발생시키면 동시에 검증을 진행하여 채굴자의 역할도 겸해야합니다. 그래서 채굴자에게 보상해야할 수수료가 필요하지 않는 특징도 존재합니다.
IOTA 이외에도 Iot chain, Byteball 등 많은 프로젝트가 블록체인이 아닌 DAG을 활용하여 서비스를 개발하고 있다고 합니다. 지금까지 블록체인이 해결하지 못한 여러 문제들을 DAG이 과연 해결할 수 있을까요?