"방향성 비순환 그래프"의 두 판 사이의 차이
잔글 |
잔글 |
||
(사용자 3명의 중간 판 6개는 보이지 않습니다) | |||
10번째 줄: | 10번째 줄: | ||
'''방향성 비순환 그래프'''는 '''DAG'''(대그)라고도 하며 Directed Acyclic Graph의 약자이다. 직역 그대로 한 방향으로 이어지지만, 순환은 하지 않는 그래프 이다. '방향성 비 사이클' 그래프이며 방향을 가지지만 루프를 생성하지 않는 그래프라는 의미이다. 여기서 루프, 또는 사이클이란 자기 자신에서 출발해 다시 자신에게 돌아오는 경로를 말하며 비 사이클이므로 이러한 경로가 없어야 한다.<ref>마스터누누, 〈[https://new93helloworld.tistory.com/182 DAG와 위상 순서]〉, 《티스토리》, 2017-05-24</ref> | '''방향성 비순환 그래프'''는 '''DAG'''(대그)라고도 하며 Directed Acyclic Graph의 약자이다. 직역 그대로 한 방향으로 이어지지만, 순환은 하지 않는 그래프 이다. '방향성 비 사이클' 그래프이며 방향을 가지지만 루프를 생성하지 않는 그래프라는 의미이다. 여기서 루프, 또는 사이클이란 자기 자신에서 출발해 다시 자신에게 돌아오는 경로를 말하며 비 사이클이므로 이러한 경로가 없어야 한다.<ref>마스터누누, 〈[https://new93helloworld.tistory.com/182 DAG와 위상 순서]〉, 《티스토리》, 2017-05-24</ref> | ||
− | a라는 최초의 거래내역을 그 뒤의 b, c, d, e가 검증한다. 또한 그 뒤의 g, f가 b, c, d, e를 검증한다. g, f 는 동시에 a 를 | + | a라는 최초의 거래내역을 그 뒤의 b, c, d, e가 검증한다. 또한 그 뒤의 g, f가 b, c, d, e를 검증한다. g, f 는 동시에 a 를 간접적으로 검증했다고 볼 수 있다. |
− | 이런식으로 꼬리에 꼬리를 물며 추가되는 | + | 이런식으로 꼬리에 꼬리를 물며 추가되는 [[트랜잭션]]들이 앞의 트랜잭션들을 직간접적으로 검증하게 되면서 [[네트워크]]가 형성된다. 이러한 직, 간접 검증이 누적된 트랜잭션은 검증이 완료되었다고 보고 확정이 된다. 이것은 거래가 완료되었다고 볼 수도 있다. |
− | [[아이오타]]에서는 이 구조를 [[탱글]]이라고 부르는데, 이 탱글에 사람들이 참여하면 참여할 수록 검증이 더욱 많이 되므로, 더 신뢰할 수 있는 시스템이 된다. 또한 사람들이 이 시스템에 많이 참여할수록 | + | [[아이오타]]에서는 이 구조를 [[탱글]]이라고 부르는데, 이 탱글에 사람들이 참여하면 참여할 수록 검증이 더욱 많이 되므로, 더 신뢰할 수 있는 시스템이 된다. 또한 사람들이 이 시스템에 많이 참여할수록 확정되는 트랜잭션들이 늘어남으로써 확장성의 문제도 해결할 수 있다. |
[[로커스체인]]에서는 DAG를 기반으로 한 어카운트별 원장구조인 '''AWTC'''(Account-Wise Transaction Chain)를 채택했다. AWTC는 이름 그대로 어카운트 단위로 트랜잭션을 관리하는 병렬형 구조이며 [[블록격자]](block lattice)와 유사한 형태를 가진다. | [[로커스체인]]에서는 DAG를 기반으로 한 어카운트별 원장구조인 '''AWTC'''(Account-Wise Transaction Chain)를 채택했다. AWTC는 이름 그대로 어카운트 단위로 트랜잭션을 관리하는 병렬형 구조이며 [[블록격자]](block lattice)와 유사한 형태를 가진다. | ||
57번째 줄: | 57번째 줄: | ||
== 장점 == | == 장점 == | ||
=== 사용자가 많을 수록 빠르다 === | === 사용자가 많을 수록 빠르다 === | ||
− | DAG 알고리즘이 적용된 기술은 불록이 없기 때문에 채굴자들의 트랜잭션 승인을 기다릴 필요가 없다. 블록 생성 없이 트랜잭션이 다른 트랜잭션을 검증하기 때문에 매우 빠른 속도로 절차가 수행되며 검증과정이 병렬적으로 이루어지기 때문에 트랜잭션이 많을 수록 즉, | + | DAG 알고리즘이 적용된 기술은 불록이 없기 때문에 채굴자들의 트랜잭션 승인을 기다릴 필요가 없다. 블록 생성 없이 트랜잭션이 다른 트랜잭션을 검증하기 때문에 매우 빠른 속도로 절차가 수행되며 검증과정이 병렬적으로 이루어지기 때문에 트랜잭션이 많을 수록 즉, 사용자가 많을 수록 검증절차는 더욱 빨라진다. |
=== 수수료가 없다 === | === 수수료가 없다 === | ||
74번째 줄: | 74번째 줄: | ||
* 아이오타 백서 - Serguei Popov, "[https://assets.ctfassets.net/r1dr6vzfxhev/2t4uxvsIqk0EUau6g2sw0g/45eae33637ca92f85dd9f4a3a218e1ec/iota1_4_3.pdf The Tangle]" Version 1.4.3, 2018-04-30 | * 아이오타 백서 - Serguei Popov, "[https://assets.ctfassets.net/r1dr6vzfxhev/2t4uxvsIqk0EUau6g2sw0g/45eae33637ca92f85dd9f4a3a218e1ec/iota1_4_3.pdf The Tangle]" Version 1.4.3, 2018-04-30 | ||
* 로커스체인 백서: https://www.locuschain.com/en/whitepaper | * 로커스체인 백서: https://www.locuschain.com/en/whitepaper | ||
− | * | + | * 〈[https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%96%A5_%EB%B9%84%EC%88%9C%ED%99%98_%EA%B7%B8%EB%9E%98%ED%94%84 유향 비순환 그래프]〉, 《위키백과》 |
+ | * 〈[https://www.locuschain.com/ko/socialView?blogSeq=100&blogLanguage=ko&blogCategory=post 로커스체인, 세계 최초 'DAG-BFT 확정합의 알고리즘' 블록체인 기술 구현 성공]〉, 《Locus Insight》, 2019-02-28 | ||
* prosong77, 〈[https://steemit.com/coinkorea/@prosong77/dag-iota DAG (방향성 비순환 그래프) 아이오타의 합의구조 (IOTA)]〉, 《steemit》 | * prosong77, 〈[https://steemit.com/coinkorea/@prosong77/dag-iota DAG (방향성 비순환 그래프) 아이오타의 합의구조 (IOTA)]〉, 《steemit》 | ||
* 조은써비스, 〈[https://blog.naver.com/xyz4989/221525630146 블록체인 3.0 세대를 이끌 기술, DAG(Directed Acyclic Graph)]〉, 《네이버블로그》, 2019-04-29 | * 조은써비스, 〈[https://blog.naver.com/xyz4989/221525630146 블록체인 3.0 세대를 이끌 기술, DAG(Directed Acyclic Graph)]〉, 《네이버블로그》, 2019-04-29 |
2021년 12월 3일 (금) 05:55 기준 최신판
방향성 비순환 그래프(DAG; Directed Acyclic Graph)란 개별 요소들이 특정한 방향을 향하고 있으며, 서로 순환하지 않는 구조로 짜여진 그래프를 말한다. 유향 비순환 그래프라고도 한다. 간략히 DAG(대그)라고 쓴다. DAG를 적용한 블록체인 프로젝트로는 아이오타(IOTA)에 적용된 탱글 알고리즘과 헤데라 해시그래프에 적용된 해시그래프 그리고 로커스체인(Locus Chain)에 적용된 DAG-AWTC 등이 있다.
방향성 비순환 그래프에서 개별 요소들은 블록체인처럼 여러 개의 트랜잭션을 하나의 블록으로 묶지 않고, 각 개별 요소들끼리 상호 연결되어 있다. 방향성 비순환 그래프는 시간적으로 이전 트랜잭션에 대해 그 이후 트랜잭션이 검증하는 구조로 되어 있다. 시간 t를 기준으로 그 다음에 이어질 시간 t+1의 상태를 추측하기 위해 마르코프 체인 몬테 카를로(MCMC; Markov Chain Monte Carlo) 알고리즘을 사용한다.
목차
개요[편집]
방향성 비순환 그래프는 DAG(대그)라고도 하며 Directed Acyclic Graph의 약자이다. 직역 그대로 한 방향으로 이어지지만, 순환은 하지 않는 그래프 이다. '방향성 비 사이클' 그래프이며 방향을 가지지만 루프를 생성하지 않는 그래프라는 의미이다. 여기서 루프, 또는 사이클이란 자기 자신에서 출발해 다시 자신에게 돌아오는 경로를 말하며 비 사이클이므로 이러한 경로가 없어야 한다.[1]
a라는 최초의 거래내역을 그 뒤의 b, c, d, e가 검증한다. 또한 그 뒤의 g, f가 b, c, d, e를 검증한다. g, f 는 동시에 a 를 간접적으로 검증했다고 볼 수 있다.
이런식으로 꼬리에 꼬리를 물며 추가되는 트랜잭션들이 앞의 트랜잭션들을 직간접적으로 검증하게 되면서 네트워크가 형성된다. 이러한 직, 간접 검증이 누적된 트랜잭션은 검증이 완료되었다고 보고 확정이 된다. 이것은 거래가 완료되었다고 볼 수도 있다.
아이오타에서는 이 구조를 탱글이라고 부르는데, 이 탱글에 사람들이 참여하면 참여할 수록 검증이 더욱 많이 되므로, 더 신뢰할 수 있는 시스템이 된다. 또한 사람들이 이 시스템에 많이 참여할수록 확정되는 트랜잭션들이 늘어남으로써 확장성의 문제도 해결할 수 있다.
로커스체인에서는 DAG를 기반으로 한 어카운트별 원장구조인 AWTC(Account-Wise Transaction Chain)를 채택했다. AWTC는 이름 그대로 어카운트 단위로 트랜잭션을 관리하는 병렬형 구조이며 블록격자(block lattice)와 유사한 형태를 가진다.
이러한 DAG 합의 구조를 쓰는 코인에 아이오타, 하이퍼캐시, ADK 등이 있다.
특징[편집]
방향성 비순환 그래프(Directed Acyclic Graph)는 블록체인 3.0단계이다. DAG 알고리즘을 적용한 기술은 블록체인 3.0 시대를 이끌 기술로 꼽히고 있다. 세대라고 표현해도 나쁘지 않다. Melanie Swan이 쓴 Blockchain에는 블록체인 발전 단계를 3단계로 나누어 설명 하였다.
- 블록체인 1.0 단계 : 통화나 화폐로서의 목적을 수행하기 위한 논의가 이루어지는 단계. 현재 우리나라에서 격론이 벌어지고 있는 단계라고 볼 수 있으며 이 단계는 주로 비트코인의 이름으로 진행되는 단계라고 한다.
- 블록체인 2.0 단계 : 금융, 경제 분야에서 큰 변화를 가져오는 단계. 거래나 계약에 있어서 국가나 정부와 같이 중앙집권적인 조직이나 중개인을 거치지 않고 상호 계약으로도 충분히 신뢰를 가지고 이루어지는 과정을 그려볼 수 있다. 이더리움의 Smart Contract가 대표적인 사례로 언급된다.
- 블록체인 3.0 단계 : 단순한 특정 분야를 넘어서 사회 전반에 블록체인 기술이 영향을 미치는 단계. 정부 정책을 활용하는 단계에서도, 의료계에서도, 운송업에서도, 스포츠나 예술 분야에서도 이러한 기술들이 효과적으로 적용될 수 있다. 3.0 단계에서는 탈중앙화, 보안, 공개된 장부 들을 바탕으로 하는 블록체인 기술의 특징으로 사회 구성원 개개인에 의한 신뢰를 형성한다.
사실 어떤 것도 아직 구체화된 것은 없지만 블록체인 기술의 청사진을 보았을 때 이 기술을 바탕으로 수많은 프로젝트가 사회를 바꾸기 위한 노력을 진행하고 있는 것은 누구나 알고 있을 것이다. 그 가운데 블록체인 3.0 단계 실현을 위한 훌륭한 기술로 꼽히는 것이 DAG 이다.
DAG는 올바른 기능을 위해 정확하게 사용된다면 블록체인의 확장성 딜레마를 극복 할 수 있다. 모든 거래가 이전의 두 가지 거래를 수락하기 때문에네트워크의 속도는 그 차원에 따라 기하 급수적으로 증가한다. 블록이없고 그 채굴이 없다는 것은 일반적으로 거래가 덩어리 진"이 아니라 "온더 플라이 (ON-THE-FLY)"로 진행된다는 것을 의미하며
활용 사례[편집]
방향성 비순환 그래프(DAG)를 사용하는 곳은 다음과 같다.
아이오타[편집]
아이오타(IOTA)는 사물인터넷을 뜻하는 IOT(아이오티)에 응용 프로그램을 뜻하는 애플리케이션을 결합하여 만든 말이다. 즉, 아이오타는 사물인터넷, 시대의 M2M 애플리케이션을 위한 암호화폐이다. 매우 작은 데이터 트랜잭션을 처리해야 하므로, 화폐 단위가 매우 작다. 그래서 100만 아이오타를 뜻하는 메가 아이오타(Mega IOTA) 단위를 주로 사용한다. 그에 따라 아이오타는 메가 아이오타(Mega IOTA), 또는 간략히 엠아이오타(MIOTA), 엠이오타 또는 마이오타, 미오타라고 부른다.
아이오티체인[편집]
아이오티체인(IOTchain)은 블록체인 기반의 사물인터넷을 위한 암호화폐이다. 중국판 아이오타(IOTA)라고도 부른다. 아이오티체인은 기존 아이오타에 비해 10배 이상 빠른 처리 속도와 완성도 높고 간편한 내장 시스템을 갖추고 있다. 글로벌 블록체인 이노베이티브 캐피탈(GBIC)의 투자를 받았다. 아이오티체인에서 운영되는 아이티씨(ITC) 토큰은 생태계 전반에서의 스마트 장비의 사용권, 소유권 등 가치 이전의 결제에서 사용된다. 아이티씨 토큰은 라즈베리 파이 레벨의 저성능 사물인터넷 장비에서의 사용이 가능하며, 사물인터넷에 블록체인 안전레벨의 운영체제를 제공할 뿐만 아니라 각종 주류 메인체인 기술과의 연동도 가능하다.
하이퍼캐시[편집]
하이퍼캐시(Hypercash) 또는 에이치캐시(Hcash)는 블록체인뿐 아니라 블록이 없는 비블록체인에 대해서도 사이드체인을 제공해 줌으로써 서로 다른 블록체인 간에 데이터를 자유롭게 전달할 수 있게 해 주는 암호화폐이다. 창시 직후에는 에이치셰어 또는 에이치쉐어라고 부르다가 2018년 11월 29일 메인넷으로 전환하면서 하이퍼캐시(HC; HyperCash)로 코인 이름을 리브랜딩했다. 하이퍼캐시는 블록 기반과 블록리스(blockless) 기반간 크로스 플랫폼의 역할을 하기 위해 블록리스 기반, 즉 방향성 비순환 그래프(DAG) 알고리즘의 장점과 강점을 도입해 유저가 정해진 블록내에서도 횟수 혹은 개래량에 구애 받지않고 빠르게 거래를 할 수 있다.
해시그래프[편집]
해시그래프(hashgraph)란 기존 블록체인의 한계를 극복하고자 연결 리스트 방식이 아니라, 하나의 노드가 다른 불특정 노드에게 가십(gossip)을 전달하는 방식으로 작동하는 알고리즘이다. 기존 블록체인의 장점인 위변조 방지 기능과 탈중앙 의사결정구조를 유지하면서도, 1초에 수십만 건 이상의 빠른 속도로 트랜잭션을 처리할 수 있다. 노드는 완벽한 포워드 보안을 위해 TLS 암호화에 의해 보호되는 TCP/IP 연결에 의해 통신한다. 노드는 기호 이름이 아닌 IP 주소와 포트로 처리되므로 DNS 시스템에 대한 공격은 네트워크에 영향을 미치지 않는다.
하이콘[편집]
하이콘(Hycon)은 ㈜글로스퍼(Glosfer)가 방향성 비순환 그래프(DAG) 기술인 스펙터 프로토콜을 이용하여 개발한 암호화폐이다. 하이콘(hycon)은 하이퍼커넥티드 코인(hyperconnected coin)의 약자이다. 스펙터 알고리즘을 사용한 블록체인은 블록의 생성속도를 높여도 보안성이 일정 수준 이상으로 유지된다. 이에 따라 스펙터 합의 알고리즘을 통해 안정성과 확장성을 동시에 해결할 수 있다.
팬텀[편집]
팬텀코인(Fantom Coin) 또는 팬텀(Fantom)은 방향성 비순환 그래프(DAG) 기술을 이용하여 개발한 암호화폐이다. 팬텀은 푸드테크 전문 기업인 식신㈜과 한국푸드테크협회가 참여하여 만든 블록체인 인프라 개발 프로젝트이다. 팬텀은 기존 블록체인 기술의 확장성 및 확인 시간문제를 해결하는 세계 최초의 DAG 기반 스마트 계약 플랫폼이다. 블록을 생성하는 대신 노드들 간의 비동기화 정보 전달 및 확인이 가능한 탈 블록체인 기술인 DAG를 통해 블록체인의 확장성 및 느린 트랜잭션 속도를 해결하며, 생활과 밀접한 연관이 있는 푸드테크 거래에 직접 적용하여 실질적인 3세대 암호화폐 혁신을 이끌고 있다.
로커스체인[편집]
로커스체인(Locus Chain)은 DAG를 기반으로 한 어카운트별 원장구조인 AWTC(Account-Wise Transaction Chain)를 채택하고 있다. AWTC는 어카운트/유저를 중심으로 트랜잭션 그래프를 구성하여 각 트랜잭션을 관리하는 DAG구조이다. 어카운트 별로 자신과 연관된 트랜잭션을 자기 자신의 체인에 자신의 비밀키로 서명을 하여 추가를 하는 방식인데 이것은 마치 은행 계좌 소유자가 자신과 관련된 거래내역만을 관리하는 방식과 유사하므로 일반 DAG와 비교하여 논리적으로 이해하기 쉬운 구조이다. 어카운트 소유자만이 독점적으로 거래를 기록하기 때문에 소유자 본인이 악의적인 사용자가 아니라면 트랜잭션은 추가 즉시 거의 확정된다. 이러한 성질을 갖는 로커스체인의 원장구조는 기존 블록체인이 가지고 있던 거래처리 지연 문제를 근본적으로 해결하기 위한 주요 기술적 특징 중 하나로 볼 수 있다. 또한 각 트랜잭션의 전후 관계와 다른 트랜잭션들과의 관계가 그래프상에 직접 배치됨으로써 고속 참조가 가능하면서도, 어카운트 단위로 정보를 종합 관리함으로써 샤드간 이동과 통합을 가능하게 하는 데이터 구조이다.
장점[편집]
사용자가 많을 수록 빠르다[편집]
DAG 알고리즘이 적용된 기술은 불록이 없기 때문에 채굴자들의 트랜잭션 승인을 기다릴 필요가 없다. 블록 생성 없이 트랜잭션이 다른 트랜잭션을 검증하기 때문에 매우 빠른 속도로 절차가 수행되며 검증과정이 병렬적으로 이루어지기 때문에 트랜잭션이 많을 수록 즉, 사용자가 많을 수록 검증절차는 더욱 빨라진다.
수수료가 없다[편집]
POW 방식의 암호화폐를 전송하는데 드는 수수료는 대체로 채굴에 대한 보상으로 발생한다. 하지만 블록의 개념이 없는 DAG 방식은 채굴자가 없기 때문에 기본적으로 수수료 또한 발생하지 않는다.
확장성 문제가 없다[편집]
일반적인 블록체인에서는 사용량이 많아질 수록 블록 대비 트랜잭션 수가 넘쳐나는 병목현상이 발생하지만 DAG는 사용량이 많아질 수록 새로운 트랜잭션을 검증할 이전 트랜잭션이 많아지므로 오히려 검증의 신뢰도와 속도는 증가한다.
단점[편집]
확정합의가 어렵다[편집]
DAG 원장은 토털 오더링(total ordering) 방식이 아닌 파셜 오더링(partial ordering) 방식이기 때문에 서로 연결된 트랜잭션끼리만 그 쓰여진 순서를 정의할 수 있다. 동시다발적으로 발생하고 있는 트랜잭션을 각 노드들이 추가하고 있기 때문에 현재의 전체 원장 상태라는 것이 존재하지 않는다. 즉, 빠른 속도를 가지는 반면 확정합의를 하기에는 적합하지 않은 구조이다. 확정합의를 하기 위해서는 모두가 동일한 상태를 가지고 있어야 하는데, 그러면 새로운 트랜잭션의 생성을 멈추고 현재의 상태가 모든 네트워크에 전파되기를 기다려야 한다. 이렇게 프로세스를 멈추게 되면 빠른 속도를 저해하므로 DAG 상에서는 나카모토 계열의 비확정합의를 채택하는 프로젝트가 대부분이다. 하지만 비확정합의는 언제든 거래 결과가 뒤집어질 가능성이 있기 때문에 블록체인이 암호화폐로 실사용되기 위해서는 반드시 확정합의가 필요하다. DAG 상에서 BFT 확정합의 구현에 성공한 프로젝트로는 로커스체인이 있다.[2]
각주[편집]
- ↑ 마스터누누, 〈DAG와 위상 순서〉, 《티스토리》, 2017-05-24
- ↑ 여용준 기자, <로커스체인, 세계 최초 'DAG-BFT 확정합의 알고리즘' 블록체인 기술 구현 성공>, 《이뉴스투데이》, 2019-02-21
참고자료[편집]
- 아이오타 백서 - Serguei Popov, "The Tangle" Version 1.4.3, 2018-04-30
- 로커스체인 백서: https://www.locuschain.com/en/whitepaper
- 〈유향 비순환 그래프〉, 《위키백과》
- 〈로커스체인, 세계 최초 'DAG-BFT 확정합의 알고리즘' 블록체인 기술 구현 성공〉, 《Locus Insight》, 2019-02-28
- prosong77, 〈DAG (방향성 비순환 그래프) 아이오타의 합의구조 (IOTA)〉, 《steemit》
- 조은써비스, 〈블록체인 3.0 세대를 이끌 기술, DAG(Directed Acyclic Graph)〉, 《네이버블로그》, 2019-04-29
- 〈DAG가 Blokchain 확장 성 문제를 해결하는 방법〉, 《코인뉴스》, 2018-05-14
같이 보기[편집]
이 방향성 비순환 그래프 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.