암호화폐 플랫폼은 일반적으로 블록체인을 사용하지만 DAG를 사용하는 경우도 있습니다. 블록체인에서는 각 정점(노드)들이 블록으로 구성되어 있으며, 블록 내에 실제 데이터인 트랜잭션이 담겨있습니다. 트랜잭션들은 수수료를 내고 블록에 담기게 되고 최종적으로 체인에 연결되면서 블록체인을 구성합니다.
DAG(Directed Acyclic Graph)는 각 정점들이 블록이 아닌 트랜잭션들로 구성되어 있으며, 채굴 과정을 필요로 하지 않습니다. 트랜잭션들은 상호 참조를 통해 유효성을 검증하게 됩니다. 이전 거래 내역들이 새로운 트랜잭션에 담기게 되면서 하나의 트랜잭션만 확인해도 이전의 거래 이력들을 확인할 수 있습니다.
DAG 장점
빠른 트랜잭션 처리
비트코인의 경우 10분에 1개씩 블록이 생성됩니다. 블록을 검증하고 생성한 후 실제 체인에 연결되기 까지 시간이 걸리기 때문에 트랜잭션이 발생하고 체인에 올라가기까지 약 10분이 소요되며 트랜잭션이 완전히 처리될 때 까지는 약 1시간이 소요됩니다.
DAG를 사용할 경우 블록 개념을 사용하지 않고, 트랜잭션간 유효성 검증을 병렬로 처리하기 때문에 블록체인에 비해 트랜잭션 처리 속도가 빠릅니다. DAG를 차용한 IOTA는 10,000TPS 성능을 보이고 있습니다.
수수료 없음
DAG는 블록을 사용하지 않습니다. 따라서 채굴과정도 필요없습니다. 이 때문에 채굴자에게 지불해야 할 트랜잭션 수수료가 없습니다. PoW 방식으로 유효성검증을 하지 않기 때문에 친환경적인 환경을 유지할 수 있습니다.
강한 확장성
DAG는 트랜잭션이 늘어나면 늘어날 수록 새로운 트랜잭션들이 이전 트랜잭션들을 검증할 확률이 높아집니다. 따라서 블록체인 확장성 문제를 효율적으로 해결할 수 있습니다. 트랜잭션 처리 속도도 빠르기 때문에 확장성을 문제를 효과적으로 해결하고 있습니다.
DAG 유효성 검증 과정
① 트랜잭션을 네트워크에 제출됩니다.
② 새로운 트랜잭션은 네트워크 상 이전 트랜잭션을 참조해야 네트워크에 승인될 수 있으므로 이전 트랜잭션을 검색합니다. 이전 트랜잭션은 굳이 직전 트랜잭션일 필요는 없습니다. 이 과정에서 더 많이 검증된 트랜잭션을 검색하도록 하여 안정적인 네트워크 성장이 가능하게 됩니다.
③ 이전 트랜잭션을 찾은 그래프의 최초 트랜잭션 까지 경로로 거슬러 올라가면서 해당 트랜잭션의 유효성 검사를 진행합니다.
④ 만약 해당 트랜잭션에 대한 유효성 검사에 실패할 경우 다른 이전 트랜잭션을 검색해 다시 유효성 검사를 진행합니다. DAG에서는 현재 참조하고 있는 트랜잭션의 전체 경로를 확인하고 해당 트랜잭션의 송신자가 충분한 잔고를 가졌는지 검증하는 과정을 통해 이중 지불 문제를 해결합니다.
⑤ 이후 다음으로 네트워크에 제출된 새로운 트랜잭션이 현재 트랜잭션을 검증해주면 최종 승인 됩니다.
DAG를 사용하는 암호화폐
IOTA의 Tangle
사물인터넷(Internet of Things)를 구현하기 위해 기기간 거래 처리 용으로 개발된 분산원장 및 암호화폐입니다. DAG를 사용해 원장에 트랜잭션을 저장하고, 채굴자를 사용하지 않는 방식으로 새로운 노드(트랜잭션)이 이전 트랜잭션을 승인하면서 네트워크에 트랜잭션이 추가됩니다.
기기간 거래 처리(Machine To Machine, M2M)를 위해 Tangle 네트워크를 사용합니다. 채굴이 없고, 수수료가 없기 때문에 소액 거래에 사용될 수 있습니다. 플랫폼 내 트랜잭션의 단위가 작기 때문에 100만 IOTA 단위인 메가 아이오타(MIOTA)단위로 거래 됩니다.
아이오타(IOTA)는 블록체인을 사용하지 않고 DAG를 사용하므로 트랜잭션이 네트워크에 추가되기 위해서는 2명 이상의 이전 거래자 트랜잭션을 검증해야 하고, 코디네이터(Coordinator)라는 특수 중앙 노드가 1~2분 마다 트랜잭션을 추가로 검증하면서 합의를 도출하게 됩니다. 2021년, IOTA 2.0이라는 이름으로 코디네이터에 의존하지 않는 분산 네트워크를 출시했습니다.
Byteball
블록체인 대신 DAG를 사용해 데이터를 저장하는 암호화폐 플랫폼입니다. 암호화폐는 GBYTE를 사용합니다. 모든 사용자들은 이전 데이터를 참조하는 방식으로 보안성을 강화하고 블록체인의 확장성 문제를 해결합니다.
Byteball은 블록을 사용하지 않기 때문에 채굴자들이 트랜잭션을 체인에 올릴 때 까지 기다릴 필요 없이, 본인의 트랜잭션을 바로 네트워크에 추가할 수 있습니다. 물론 이후에 추가된 트랜잭션들에 의해 참조되어야 최종 승인이 이뤄지게 됩니다.
Byteball은 스마트 컨트랙트 기능을 지원합니다. 조건이 맞는 경우에 한해서 코인이 전송될 수 있으며, 코인 전송은 이메일로 보낼 수 있습니다. 이메일에 Byteball 주소를 링크에 추가하는 방식으로 수신자에게 코인을 보내게 됩니다. 개인간 결제에는 추적 불가능한 블랙바이트를 사용할 수 있습니다.
'Blockchain' 카테고리의 다른 글
[Blockchain] DHT(분산 해시 테이블)이란? (0) | 2022.06.29 |
---|---|
[Blockchain] 해시 테이블(Hash Table)이란? (0) | 2022.06.29 |
[Blockchain] 블룸 필터(Bloom Filter)란? (0) | 2022.06.28 |
[Blockchain] 탭 루트(Tap Root)란? 슈노르 서명? (0) | 2022.06.28 |
[Blockchain] PBFT(Practical Byzantine Fault Tolerance) 합의 알고리즘이란? (0) | 2022.06.27 |
댓글