암호화폐에서 방향성 비순환 그래프(DAG)란 무엇인가요?
암호화폐에서 방향성 비순환 그래프(DAG)란 무엇인가요?
아티클

암호화폐에서 방향성 비순환 그래프(DAG)란 무엇인가요?

중급
Published Jul 19, 2020Updated Apr 29, 2021
7m

들어가며

여러분이 암호화폐에 대해 생각할 때면, "블록체인"이라는 용어 또는 "분산화된 원장 기술"이 먼저 떠오르실 것입니다. 비트코인이 출시된 이후, 수백 개의 암호화폐가 등장했습니다. 이들 대부분은 비슷한 네트워크 구조에 기반하고 있습니다. 사용자는 이들의 데이터 구조를 통해 가치를 전달하거나 탈중앙화 애플리케이션과 상호작용할 수 있습니다.
블록체인에서 새로운 블록은 계속해서 길어지는 블록들의 체인에 주기적으로 추가됩니다. 각 블록은 이전 블록과 일련의 암호학적 고리(구체적으로는 해시)로 연결됩니다. 이러한 블록 내의 최근 트랜잭션들은 사용자에 의해 전송된 것입니다.
그러나 전송되고 있는 트랜잭션과 블록에 포함된 트랜잭션 사이에는 보통 대기 시간이 발생합니다. 이를 역에서 기차를 기다리는 것처럼 생각해보시기 바랍니다. 운반하는 짐의 크기(블록 크기)와 이를 기다리는 사람들(대기 트랜잭션) 수에 따라 다음 열차에 아예 타지 못할 수도 있습니다. 심지어는 그 다음 열차도 말입니다. 여러분은 트랜잭션이 승인될 때까지 수 초에서 수 시간을 기다려야 할 수 있습니다.
기다림이 발생할 수 있지만, 많은 이들에게 이는 나쁘지만은 않은 일입니다. 어쨌거나 중앙화된 조정자에 의존하지 않고, 상당히 높은 수준의 보안을 제공하기 때문입니다. 다른 이들에게 블록체인 기술은 언젠가 사라질 것이기도 합니다. 가치를 폄하하는 이들은 장기적인 관점에서 블록체인 기술이 직면하고 있는 확장성 문제가 대중화를 이루지 못하게 할 것이라 믿고 있습니다.

다른 이들은 암호화폐 결제 네트워크의 미래가 다른 구조인 방향성 비순환 그래프(DAG, Directed Acyclic Graphs)에 전적으로 달려있다고 믿습니다.


방향성 비순환 그래프란 무엇인가요?

방향성 비순환 그래프는 일종의 데이터 구조이며, 이를 다른 정보 조각과 함께 연결되어 있는 데이터베이스로 생각해 보시기 바랍니다. "방향성 비순환 그래프"는 복잡한 용어이니, 이를 세분화하여 살펴보도록 하겠습니다.


방향성 비순환 그래프.


개념적으로 볼 때, 방향성 비순환 그래프는 위와 같습니다. 이는 꼭짓점(구)(이들을 잇는 선)으로 구성됩니다. 이들은 한 방향을 향하기 때문에 방향성을 갖고 있습니다(그림에서 화살표를 통해 볼 수 있음). 이들은 비순환적(즉, 순환하지 않음)인데, 꼭짓점들이 되돌아 가지 않기 때문입니다. 여러분이 특정 지점에서 시작하여 그래프를 따라 간다면, 동일한 지점으로 돌아갈 수 없습니다. 이를 곧 이해하실 수 있을 것입니다.

이러한 데이터 구조는 보통 모델 데이터에 사용됩니다. 여러분은 과학적 또는 의학적 분야에서 방향성 비순환 그래프를 통해 변수 간의 관계를 관찰하고, 각 변수가 서로에게 미치는 영향을 확인할 수 있습니다. 예를 들어, 여러분은 영양, 수면 주기, 신체 증상 등을 가져온 다음, 이들 사이에 고리를 연결하여 환자에게 어떤 영향을 미치는지 알아볼 수 있습니다.

우리는 이것이 분산화된 암호화폐 네트워크 내에서 합의를 달성하는 데 어떤 도움을 주는지에 초점을 맞추고자 합니다.


방향성 비순환 그래프는 어떻게 작동하나요?

암호화폐에서 방향성 비순환 그래프의 각 꼭짓점은 하나의 트랜잭션 구조를 나타냅니다. 여기엔 블록의 개념이 없으며, 데이터를 확장하기 위해 마이닝이 필요하지도 않습니다. 따라서 트랜잭션을 블록에 모으는 대신, 각 트랜잭션은 서로 다른 트랜잭션 위에 구성됩니다. 그럼에도 노드가 트랜잭션을 제출할 때 진행하는 약간의 작업 증명 작업이 존재합니다. 이는 네트워크 스팸을 차단하고, 이전 트랜잭션을 승인하기 위함입니다.

새로운 트랜잭션을 추가하려면, 이는 반드시 이전 트랜잭션 위에 구성되어야 합니다. 앨리스가 새로운 트랜잭션을 만들고자 한다고 해보겠습니다. 해당 트랜잭션이 인증되기 위해서는, 반드시 이전 트랜잭션을 참조해야 합니다. 이는 비트코인 블록이 이전 블록을 참조하는 것과 약간 유사하지만, 이는 다수의 트랜잭션을 참조합니다.

일부 시스템에서는 알고리즘은 새로운 트랜잭션이 어느 트랜잭션(또는 "팁") 위에 구축되어야 하는지 선택합니다. 더 많은 팁(tips) 경로 확인 횟수를 나타내는 척도인 가중치가 누적된 팁이 선택될 확률이 더 높습니다.

앨리스가 위에 구축할 트랜잭션은 승인되지 않은 것입니다. 앨리스가 이를 참조한 다음부터, 이는 승인됩니다. 앨리스의 트랜잭션은 현재 승인되지 않았으며, 누군가 그 위에 트랜잭션을 구축해야 승인됩니다.

사용자들은 "더 높은" 가중치를 가진 트랜잭션을 승인할 가능성이 높으며, 따라서 시스템은 계속 성장합니다. 그렇지 않다면, 사용자가 계속해서 오래된 트랜잭션 위에 트랜잭션을 구축하는 것을 막을 수 없을 것입니다.

블록체인에서는 이중 지불을 쉽게 방지할 수 있습니다. 동일한 자금은 하나의 블록 내에서 두 번 소비될 수 없으며, 노드는 그러한 시도를 쉽게 파악하고, 문제가 되는 트랜잭션을 포함하고 있는 모든 블록을 거부할 수 있습니다. 블록을 생산하는 데는 무척 많은 비용이 들기 때문에, 마이너들은 합리적으로 행동하게 될 것입니다.

방향성 비순환 그래프에도 이중 지불을 방지하는 메커니즘이 있습니다. 이는 블록체인과 어느 정도 유사하나, 여기에는 마이너가 없습니다. 노드가 이전 트랜잭션을 승인할 때, 이들은 전송자가 충분한 잔고를 갖고 있는지 확인하기 위해, 방향성 비순환 그래프의 가장 처음 트랜잭션까지의 전체 경로를 평가합니다. 다양한 경로가 있을 수 있지만, 단 하나만 검증하면 됩니다.



사용자가 유효하지 않은 경로를 구축한다면, 이들은 자신의 트랜잭션이 거부될 수 있는 위험을 자초하는 것입니다. 이들의 트랜잭션은 유효한 것일 수 있지만, 이전의 블록이 그렇지 않기 때문에 누구도 해당 경로를 확장하려하지 않을 것입니다.

처음에는 이해하기 쉬워 보이지 않을 수 있습니다. 다수의 분기점들이 서로의 존재를 인지하지 못하는 상황에 처하게 되지 않을까요? 그렇다면, 사람들은 이러한 다른 분기점에서 동일한 자금을 사용할 수 있지 않을까요?



이는 실제로 가능한 일이지만, 더 높은 가중치를 가진 팁을 선호하는 알고리즘을 통해 이러한 문제를 해결합니다. 이는 시간이 지나며 특정 분기점이 다른 분기점보다 훨씬 강력해진다는 것입니다. 상대적으로 연약한 것들은 버려지게 되고, 네트워크는 가장 높은 가중치를 갖는 것 위에서 계속 구축될 것입니다.

블록체인에는 절대적인 변경 불가능성이라는 것이 존재하지 않으며, 트랜잭션이 역전될 수 없다고 100% 장담할 수 없습니다. 그럴 가능성은 무척 낮지만, 이론적으로는 비트코인 또는 이더리움 블록 내부의 모든 트랜잭션을 되돌려 이를 "무효화 할 수" 있습니다. 여러분의 트랜잭션이 포함된 블록 이후에 더 많은 블록이 추가될수록, 이를 더 신뢰할 수 있습니다. 이것이 바로 자금을 사용하기 전에 6컨펌을 기다리는 것이 좋은 이유입니다.
IOTA의 탱글과 같은 방향성 비순환 그래프에서는 승인 신뢰(confirmation confidence)라는 개념이 존재합니다. 선택 알고리즘이 100번 실행되며, 선택된 팁에서 트랜잭션이 직간접적으로 승인된 횟수를 계산합니다. 백분율이 높을수록, 여러분의 트랜잭션은 "안정된" 상태로 유지될 것이라 확신할 수 있습니다.

이는 좋지 않은 사용자 환경으로 이어질 수 있어 보입니다. 그러나 그렇지 않습니다. 앨리스가 밥에게 10 MagicDAG 토큰을 전송할 때, 그래프에서 올바른 팁을 선택하는 것을 걱정하지 않아도 됩니다. 앨리스의 지갑은 다음과 같은 과정을 진행할 것입니다.

  • 가중치가 가장 높은 팁을 선택(이는 승인 누적 횟수가 가장 많은 팁이라는 걸 기억하세요).
  • 팁에 사용할 수 있는 잔액이 충분한지 확인하기 위해 이전 트랜잭션을 통과하는 경로를 거슬러 올라감.
  • 조건을 만족하면, 해당 트랜잭션이 구축되고 있는 트랜잭션을 승인하며 사용자의 트랜잭션을 방향성 비순환 그래프에 추가함.
이는 앨리스에게는 보통의 암호화폐 작업 흐름처럼 보일 것입니다. 앨리스는 밥의 주소와 전송하고자 하는 금액을 입력하고 전송을 클릭합니다. 위의 목록들은 트랜잭션을 생성하는 모든 참여자가 진행하는 작업 증명입니다.



방향성 비순환 그래프의 장점과 단점

방향성 비순환 그래프의 장점

속도

블록 시간 제한 없이 누구나 트랜잭션을 전송하고 어느 때나 트랜잭션이 처리될 수 있습니다. 사용자가 이전 트랜잭션을 승인하는 한 제출하는 트랜잭션 수에 제한이 없습니다.


마이닝 없음

방향성 비순환 그래프는 우리가 익숙한 작업 증명 합의 알고리즘을 사용하지 않습니다. 따라서 이들의 탄소 발자국은 블록체인 네트워크를 보호하기 위해 마이닝에 의존하는 암호화폐들에 비해 아주 적은 수준에 불과합니다.


트랜잭션 수수료 없음

마이너가 없기 때문에, 사용자는 트랜잭션 전송 수수료를 지불하지 않아도 됩니다. 그렇기는 하지만, 특정한 종류의 노드에게 약간의 수수료를 지불해야 합니다. 저렴한 수수료(또는 무료에 가까운)는 상당한 네트워크 수수료를 없애고자 하는 소액 결제 활성화로 이어질 수 있습니다.


확장성 문제 없음

방향성 비순환 그래프는 블록 시간에 구애받지 않으며 기존 블록체인 네트워크보다 더 많은 초당 트랜잭션을 처리할 수 있습니다. 다수의 방향성 비순환 그래프는 지지자들은 모든 유형의 기기들이 상호작용하는 사물 인터넷(IoT) 활용 예시에서 가치있게 사용될 것이라 생각합니다.


방향성 비순환 그래프의 단점

완전한 탈중앙화가 아님

방향성 비순환 그래프에 기반한 프로토콜에는 다양한 중앙화 요소가 존재합니다. 일부의 경우, 이는 네트워크 부트스트랩을 위한 단기 솔루션일 것이지만, 제3자의 개입 없이 방향성 비순환 그래프가 커나갈 수 있을지는 미지수입니다. 그렇지 않을 경우, 네트워크에 심각한 손상을 주는 공격 벡터를 자초하게 됩니다.


다양한 규모에서 테스트되지 않음

방향성 비순환 그래프 기반 암호화폐는 몇 년 전부터 존재해왔지만, 폭넓게 사용되기 위해서는 아직 갈 길이 멉니다. 따라서 향후 사용자가 어떠한 동기로 시스템을 부당하게 이용할지 예측하기가 어렵습니다.


마치며

방향성 비순환 그래프는 암호화폐 네트워크를 구축하는 흥미로운 기술이 분명합니다. 지금까지는 해당 데이터 구조를 사용하는 프로젝트가 거의 없었지만, 이는 완전한 발달된 것은 아닙니다. 
그렇기는 하지만, 잠재력을 살릴 수 있다면 대규모로 확장될 수 있는 생태계에 동력을 공급할 수 있습니다. 방향성 비순환 그래프는 높은 처리량과 수수료가 들지 않아야 하는 사물 인터넷과 소액 결제와 같은 무수히 많은 영역에 활용될 수 있습니다.