DAG(Directed Acyclic Graph) 기술은 무엇인가요?
IoT 기기와 데이터가 기하급수적으로 늘어나는 상황에서 블록체인의 속도(TPS)문제를 해결하기 위해 사용된다는 방향성 비순환 그래프(DAG: Directed Acyclic Graph) 기술은 무엇인가요?
안녕하세요. DAG 기술에 대하여 답변드리겠습니다.
DAG(Directed Acyclic Graph)란?
방향성 비순환 그래프는 연속으로 이어지는 방향성을 가진 네트워크 연결방법을 말합니다.
즉, 반복되거나 동일한 패턴에 의해 다른곳과 연결되지 않고 불특정 다수에게 계속 연결되는 특징을 가지고 있습니다.
DAG의 트랜잭션이 여러곳에서 동시다발적으로 이루어지기 때문에 속도가 빠르며, DAG를 사용하는 네트워크 사용자가 많아진다해도 느려짐이 발생하지 않습니다.
쉽게 말해 기존의 블록체인의 처리방식이 순차처리 였다면, DAG의 처리방식은 동시에 처리되는 병렬처리 방식입니다.
이 기술을 활용한 IOTA의 "탱글(Tangle)"이 있습니다.
탱글 트랜젝션은 일반적인 블록체인 시스템과 다르게 트랜젝션을 발생시키는 자가 검증도하는 특징을 가지고 있습니다. 이는 인체의 신경세포들 처럼 각자 유기적인 상호작용을 통해 해당 트랜젝션을 처리하게 됩니다.
그렇기 때문에 복잡한 도시에서 활동하는 사람들이나 차량들간 상호 직접 정보를 주고 받기 때문에 실시간적 데이터 분석 및 처리가 가능하게 됩니다.
감사합니다.
방향성비순환그래프(DAG)에 대해 답변 드리기 전에 한 가지 그림부터 보고 가도록 하겠습니다.
왼쪽이 DAG 방식의 알고리즘에 따른 구조이고 오른쪽이 블록체인이 새로운 블록을 생성하여 이어져 나가는 모습을 나타낸 것입니다.
이 DAG는 방향성 비순환 그래프를 의미하는데요, 이 말은 일정한 방향으로 나아가되 특정한 순서로 순환이 이루어지지 않는다는 의미입니다. 즉 시작과 함께 일정하게 나아가는 방향이 존재하지만 그 안에서 일정한 순서로 순환되는 것이 아니라 다양하게 무작위로 뻗어나가며 계속 확장될 수 있다는 것이죠.
또한 DAG 구조로 거래 내역을 검증하게 된다면 블록을 생성하지 않고 하나의 노드가 다른 많은 노드들과 연결되며 동시에 다른 노드들을 검증하는 것이 가능해 집니다. 이것은 블록체인이 이전의 거래 내역을 통해 새롭게 블록에 기록될 내역을 검증하여 블록을 생성하고 기록하며 이어져 나가는 것과 차이가 있는 것입니다.
따라서 노드들의 숫자가 많아질수록 DAG의 확장성은 더욱 증가하고 트랜젝션을 처리하는 속도도 빨라집니다. 또한 트랜젝션을 처리하는데 소요되는 수수료도 저렴해질 수 있죠.
즉, 앞서 말씀드린 것처럼 한 노드가 다른 노드들과 연결되어 있다고 할 때 일정한 순서가 없고 비순환적이기 때문에 빠르게 다른 노드를 선택하여 거래를 검증해 줄 수가 있는 것입니다.
끝으로 DAG가 이론적으로는 블록체인보다 더 빠르게 트랜젝션을 처리할 수 있는 방식이라고 생각하지만 실제로 노드가 많지 않다면 보안성이 취약할 수 있습니다.
예를 들어 DAG 방식의 체인이 적용된 IOTA가 보안성을 확보하기 위해 회사 자체에서 중앙화된 검증, 관리 노드를 별도로 운영하고 있다는 점에서 그렇습니다. 그러므로 앞으로 DAG가 미래의 블록체인으로서 제대로 기능하기 위해서는 참여자들을 많이 확보하는 것이 필요해 보입니다.
답변이 도움이 되길 바랍니다.