DAG - 방향성 비순환 그래프(Directed Acyclic Graph)
Last updated
Was this helpful?
Last updated
Was this helpful?
일방향은 한계가 있지 않을까 내가 이런걸 왜 보고 있을까
확장합의 동향? / 사진 추
DAG를 적용한 블록체인 프로젝트로는 (Locus Chain)에 적용된 DAG-AWTC와 (IOTA)에 적용된 알고리즘 그리고 헤데라 해시그래프에 적용된 등이 있다.
방향성 비순환 그래프에서 개별 요소들은 처럼 여러 개의 트랜잭션을 하나의 블록으로 묶지 않고, 각 개별 요소들끼리 상호 연결되어 있다. 방향성 비순환 그래프는 시간적으로 이전 트랜잭션에 대해 그 이후 트랜잭션이 검증하는 구조로 되어 있다. 시간 t를 기준으로 그 다음에 이어질 시간 t+1의 상태를 추측하기 위해 (MCMC; Markov Chain Monte Carlo) 알고리즘을 사용한다.
DAG 원장은 토털 오더링(total ordering) 방식이 아닌 파셜 오더링(partial ordering) 방식이기 때문에 서로 연결된 트랜잭션끼리만 그 쓰여진 순서를 정의할 수 있다. 동시다발적으로 발생하고 있는 트랜잭션을 각 노드들이 추가하고 있기 때문에 현재의 전체 원장 상태라는 것이 존재하지 않는다. 즉, 빠른 속도를 가지는 반면 확정합의를 하기에는 적합하지 않은 구조이다. 확정합의를 하기 위해서는 모두가 동일한 상태를 가지고 있어야 하는데, 그러면 새로운 트랜잭션의 생성을 멈추고 현재의 상태가 모든 네트워크에 전파되기를 기다려야 한다. 이렇게 프로세스를 멈추게 되면 빠른 속도를 저해하므로 DAG 상에서는 나카모토 계열의 비확정합의를 채택하는 프로젝트가 대부분이다. 하지만 비확정합의는 언제든 거래 결과가 뒤집어질 가능성이 있기 때문에 블록체인이 암호화폐로 실사용되기 위해서는 반드시 확정합의가 필요하다. DAG 상에서 BFT 확정합의 구현에 성공한 프로젝트로는 있다.