안녕하세요, @sjchoi입니다.
오늘은 IOTA나 Byteball, 두 프로젝트에서 주요 알고리즘으로 선택한 DAG(방향성 비순환 그래프, Directed Acyclic Graph)에 대해서 정리해 보려고 합니다. 사실 DAG에 대해서는 이야기만 들었지, 알아 볼 생각을 하지는 않았는데, 제가 관심있게 보고 있는 ADK 프로젝트 역시 이 기술을 채택했기에 공부 차원에서 정리하게 되었습니다.
공부하면서 느낀 건데요.. 깊이 들어가면 한없이 어려워서, 쉽게 이해할 수 있는 부분 위주로 짚었습니다. DAG가 어떤 방식인지, 이 기술이 왜 주목받고 있는지 등 이런 것이 있구나 하고 가볍게(?) 읽어 보시면 좋을 것 같습니다. 음... 정리하다 보니 예상보다 길어져서 가벼울 지는 모르겠습니다^^;
블록체인의 발전 단계
제목에서도 언급했지만, DAG 알고리즘을 적용한 기술은 블록체인 3.0 시대를 이끌 기술로 꼽히고 있습니다. 세대라고 표현해도 나쁘지 않을 겁니다. Melanie Swan이 쓴 Blockchain에는 블록체인 발전 단계를 3단계로 나누어 설명하고 있습니다.
블록체인 1.0 단계에서는 통화나 화폐로서의 목적을 수행하기 위한 논의가 이루어지는 단계입니다. 현재 우리나라에서 격론이 벌어지고 있는 단계라고 보시면 되겠습니다. 이 단계는 주로 비트코인의 이름으로 진행되는 단계라고들 합니다.
블록체인 2.0 단계는 금융, 경제 분야에서 큰 변화를 가져오는 단계입니다. 거래나 계약에 있어서 국가나 정부와 같이 중앙집권적인 조직이나 중개인을 거치지 않고 상호 계약으로도 충분히 신뢰를 가지고 이루어지는 과정을 그려볼 수 있습니다. 이더리움의 Smart Contract가 대표적인 사례로 언급됩니다.
그러고 난 이후, 블록체인 3.0 단계는 어떤 모습을 보일까요? 이제 단순히 특정 분야를 넘어서 사회 전반에 블록체인 기술이 영향을 미치는 단계입니다. 정부 정책을 활용하는 단계에서도, 의료계에서도, 운송업에서도, 스포츠나 예술 분야에서도 이러한 기술들이 효과적으로 적용될 수 있습니다. 3.0 단계에서는 탈중앙화, 보안, 공개된 장부 등을 바탕으로 하는 블록체인 기술의 특징으로 사회 구성원 개개인에 의한 신뢰를 형성합니다.
사실 어떤 것도 아직 구체화된 것은 없지만, 블록체인 기술의 청사진을 보았을 때 이 기술을 바탕으로 수많은 프로젝트가 사회를 바꾸기 위한 노력을 진행하고 있는 것은 누구나 알고 계실 겁니다. 그 가운데 블록체인 3.0 단계 실현을 위한 훌륭한 기술로 꼽히는 것이 바로 DAG입니다.
DAG(Directed Acyclic Graph)란?
IOTA 탱글 이미지 / 출처: 위키피디아
블록체인 기술은 분명 획기적인 변화를 이끌어 낼 기술이지만, 몇 가지 아쉬운 단점을 가지고 있습니다. 비트코인에서 항상 논란이 되고 있는 확장성 문제라든지, 블록 생성 시간, 점점 더 커지고 있는 수수료 등은 암호화폐를 실용화하는 데 큰 장애물이 됩니다. 실제로 작년에 ICO 등으로 비트코인이나 이더리움 트랜잭션이 갑작스럽게 몰리면서 전송 속도가 현저히 느려졌던 기억들 다들 있으실 겁니다.
이러한 문제에 대한 해결책의 일환으로 대두된 것이 DAG 방식입니다. DAG는 IOTA에서 ‘탱글’이라는 기술로 다듬어 소개되면서 많이 알려진 알고리즘입니다. Byteball 역시 DAG 방식을 채택하면서 많이 알려졌죠.
그대로 해석을 하면, Directed 방향이 있는 / Acyclic 사이클(순환)을 이루지 않는 / Graph 그래프 입니다. 그래서 방향성 비순환 그래프 또는 방향성 비사이클 그래프라고 일컬어집니다. 위의 그림을 보면 이해가 쉬울 겁니다. 처리를 나타내는 화살표는 일정한 방향이 있고, 순환을 만들지 않습니다. 쉽게 말해 한 트랜잭션이 다음 트랜잭션을 증명해 주는 방식입니다. 이러한 알고리즘을 블록체인 기술과 접목을 시키게 되면서 획기적인 변화를 가져오게 됩니다.
비트코인 블록체인 형성 이미지 / 출처 : 위키피디아
비트코인과 비교를 해 볼까요? 현재 비트코인의 블록은 위와 같은 방식으로 형성이 됩니다. 블록은 보통 10분마다 생성이 되고, 거래의 승인이 됩니다. 거래소나 지갑에서 요구하는 승인의 수는 다르지만, 개개의 승인을 위해서는 10분 단위로 기다려야 합니다. 처음 등장했던 블록체인의 기술은 모두를 열광시켰지만, 사용하면 사용할수록 비효율적인 부분이 드러납니다.
왜 블록을 하나만 인정해서 줄 세우지? 꼭 블록 안에 트랜잭션을 우겨 넣어야 할까? 블록이라는 개념 때문에 10분이나 기다리고, 내 트랜잭션이 블록에 포함되지 않으면 또 기다려야 하잖아!
블록체인은 Block + Chain 입니다. DAG 기술은 DAG 알고리즘을 블록체인 기술에 적용하면서 과감히 블록을 없애고 체인의 형식만을 남겨 버립니다. 사실상 더이상 블록체인이라고 부를 수 없게 된 셈이긴 합니다.
DAG 이미지 / 출처: 위키피디아
위 사진에서 보이는 것처럼 DAG 알고리즘을 적용하게 되면 하나의 트랜잭션은 다음 트랜잭션을 검증하고 승인하게 됩니다. 또 이러한 검증 라인은 직렬이 아니라 병렬적으로 이루어지게 됩니다. 그러니까 블록의 수준을 트랜잭션 수준으로 쪼개고, 이러한 검증이 동시 다발적으로 이루어지는 방식입니다. 위의 아이오타 탱글 이미지를 한 번 더 참고하시면 이해를 도울 수 있습니다.
이 기술이 획기적인 이유는!!
비트코인과 스케일링(확장성) 이슈를 예로 들어 볼 수 있겠습니다. 비트코인의 대표적인 문제로 지적되는 문제로 스케일링 문제가 있습니다. 처음 설계된 비트코인 블록의 크기는 1MB였는데, 여기에는 대략 3,000개의 트랜잭션이 담길 수 있다고 합니다. 처음에는 이 정도 크기로도 충분히 감당할 수 있었죠. 그런데 비트코인 거래가 늘어나면서 블록이 감당하지 못하는 수준에 이르자, 이 문제의 해결책으로 세그윗이나 사이드 체인이 언급된 것입니다. 세그윗을 통해 비트코인을 그대로 두면서 블록의 크기를 늘리거나 트랜잭션을 더욱 가볍게 도와줄 수 있는 사이드 체인(대표적으로 루트스탁)을 통해 이 문제를 해결하려고 했던 것인데, 많은 사람들이 기억하듯 세그윗 과정에서는 수많은 논란과 공포가 있었고, 루트스탁은 아직 진행 중인 프로젝트입니다.
스케일링 이슈에 참고할 스팀잇 글
@coinpressokr님 [비트코인 시리즈 칼럼] (3) 두 번째 치명적 약점, 스케일링 이슈
@morning님 세그윗
@twinbraid님 세그윗(SegWit)에 대해서 알아보자
@maa님 비트코인 스케일링 해결책? : 루트스톡(Rootstock)
그런데 위의 복잡한 과정을 블록을 없애고 검증 단위를 쪼개면서 해결한 것이 바로 DAG 기술입니다. 이것이 기술의 대중화에 가장 큰 난관이었던 확장성 문제를 해결할 수 있는 대안으로서, 블록체인 3.0 단계에서 주목받게 된 이유입니다.
DAG 방식의 장점
DAG 이미지 / 출처: 위키피디아
속도가 빠르다
앞서 설명 드렸듯이, DAG 알고리즘이 적용된 기술은 블록이 없기 때문에 채굴자들의 트랜잭션 승인을 기다릴 필요가 없습니다. 블록 생성 없이 트랜잭션이 다른 트랜잭션을 검증하기 때문에 매우 빠른 속도로 이 절차가 수행됩니다. 여기에 더해서 이러한 과정이 동시에 병렬적으로 이루어지므로 속도에 있어서는 강점을 가지게 됩니다.
수수료가 없다
거래소 수수료는 논외로 하고, POW 방식의 암호화폐를 전송하는 데 드는 수수료는 대체로 채굴에 대한 보상으로 발생합니다. 그리고 덩치가 커진 암호화폐는 그만큼 수수료가 커집니다. 하지만 블록의 개념이 없는 DAG 방식은 채굴자가 없기 때문에 기본적으로 수수료 또한 발생하지 않습니다.
확장성 문제에서 자유롭다
비트코인과의 비교에서 살펴본 것처럼 DAG 방식은 확장성에서 자유롭습니다. 거래 요청이 늘어난다고 해서 거래 승인이 지연되거나 병목현상이 발생하지 않습니다. 오히려, 사용자가 늘어 트랜잭션이 많아질수록 검증의 신뢰도와 속도는 증가합니다. 이는 블록체인 기술의 대중화에 걸맞은 장점이라고 볼 수 있습니다.
DAG 방식을 채택한 프로젝트
참고
Blockchain(BLUEPRINT FOR A NEW ECONOMY), Melanie Swan
A Primer on IOTA (with Presentation)
DAG vs the Blockchain
Explaining Directed Acylic Graph (DAG), The Real Blockchain 3.0
[포커스] 가상화폐는 시작일 뿐, 블록체인 3.0 시대가 오면…
Directed acyclic graph Wikipedia
마치며
부족한 글 읽어주셔서 대단히 감사합니다. 정리하는 데만 몇 시간이 걸렸네요.
DAG에 관해 다룬 포스팅은 많지 않은 것 같습니다. 부족한 검색 능력으로 정리한 내용들이라 보면서 미흡한 점들이 보이실 수 있을 텐데요. 보시다가 수정 및 보완할 사항이 있으시거나 더 자세한 정보가 있으시다면 언제든 알려주세요! 틈틈이 보완해서 완성도를 높여 보겠습니다ㅎㅎ
공부하면 할수록 새롭게 알게 되는 것이 정말 끝도 없이 쏟아져 나오는 것 같습니다. 그만큼 변화의 물결이 거세다는 게 아닌가 합니다. 앞으로 몇 년 동안 얼마나 많은 것들이 변화할지 가늠이 되지 않지만, 변화의 흐름에서 눈을 돌리기보다는 적극적으로 살펴보는 것이 중요하지 않을까 합니다.
또 다음 포스팅으로 인사드리겠습니다.
좋은 하루 보내세요^^
Cheer Up!
잘 모르던 내용이었는데 이 곳에서 양질의 정보를 보게 되니 반갑고 기쁩니다. 예전에 IOTA 대란(?) 때 극도로 느린 탱글이 만천하에 공개되고 말았었던 것을 보면 아직 좀더 발전의 여지는 있지 않나 생각이 듭니다.
앗, 그란투리스모님이 들러주시다니...ㅎㅎ 영광입니다^^
항상 좋은 글 열심히 읽고 유튜브도 보고 있습니다ㅎㅎ
IOTA도 그렇고 많은 DAG 기반 프로젝트들이 트랜잭션 처리가 안정화돼서 자기들 장점을 부각하고 싶은 마음이 가득할 것 같습니다. 기술 자체의 컨셉은 좋은데, 아직 받쳐주는 환경이 조금 더 조성되어야 한다는 게 분위기이긴 하더라고요. 다른 기술이 어떻게 치고 올라올지 모르겠지만, 이번에 공부하면서 현재는 대중화에 가장 가까운 방식이지 않을까 하는 생각을 해 봤습니다.
스스로 홍보하는 프로젝트에서 나왔습니다.
오늘도 좋은글 잘 읽었습니다.
오늘도 여러분들의 꾸준한 포스팅을 응원합니다.
들러주셔서 감사합니다^^
adk는 기술도 기술이지만 비즈니스 플랜도 대박이죠.
https://steemit.com/kr/@vincentkang/se5j8
https://steemit.com/adk/@jjum/adk
이하 한글 백서 드래프트 링크입니다.
백서 개요~1장
https://steemit.com/kr/@vincentkang/2wlgqo-adk
2장
https://steemit.com/kr/@vincentkang/adk-2
3~10장
https://steemit.com/kr/@vincentkang/adk-3-10
와!! 항상 DAG 개념을 제대로 이해를 못해서 찜찜한 부분이 남아있었는데 덕분에 잘 이해하고 갑니다.
팔로우랑 보팅할께요~~~~~~!
부족한 글 잘 읽어주셔서 감사합니다^^
도움이 되셨다니 다행입니다 ㅎㅎ
추운데 날 조심하시고 좋은 하루 보내세요~!
좋은 글 잘 보고 갑니다 !! 리스팀할게요
잘 읽어 주셔서 감사합니다^^
IOTA에서 트랜잭션 처리 중 내용이 날라가서 코인이 실종되는 경우가 발생한다고 하는데 이런 문제점이 없이 보장된다면 좋은 방법일 것 같습니다.
개념 정리 잘 해주셔서 쉽게 이해하고 갑니다.
좋은 하루 보내세요~!
헉.. IOTA 소식을 세세하게 알지는 못해서 그런 일이 있는 줄은 몰랐네요.
아무래도 새로운 방식은 늘 장애물이 있게 마련이지만.. 코인 자체가 실종되면 신뢰에 문제가 생길 수 있겠네요.
그게 DAG의 문제인지, 다른 문제인지는 모르겠지만 잘 해결됐음 좋겠습니다.
즐거운 하루 보내세요^^
DAG에 대한 글은 찾기가 쉽지 않았는데 이렇게 잘 정리해 주셔서 감사합니다^^
스팀잇에 있을 법했는데, 의외로 찾으려고 하니 생각보다 글이 없긴 없더라고요^^;
저야말로 좋게 봐 주셔서 감사합니다 ㅎㅎ
어려운 내용을 간단명료하게 잘 정리된 글이네요 DAG에 관심이 많았는데 다시한번 머리속에 정리되는 계기가된것같아 아침부터 좋은선물 받은것 같아요 감사합니다 "블럭체인 3세대기술" 언급하신종목들 다시한번씩 들여다봐야 할것같아요
잘 읽어주셔서 정말 감사합니다. 선물이라고까지 해주시니 몸 둘 바를 모르겠습니다^^;;
아직 1세대, 2세대도 제대로 안착하지 못한 상황에서 3세대라고 하면 조금 앞서 나간 느낌도 있지만, 사실 기술이라는 게 무조건 단계적으로 끊어서 진행되는 것은 아니니 관심을 가지고 지켜보게 됩니다^^
기술이름을 처음 들어봤는데 덕분에 쉽게 이해했네요. 감사합니다. 확실히 기술이 나날이 발전하는 것 같아요.
DAG 기술을 과하게(?) 긍정적으로 보는 사람들은 기존 블록체인 기술과 대응할 만한 획기적인 방식이라고까지 극찬하기도 하더라고요.. 아직은 초기 단계라 그 정도는 아니지만 이 기술이 시장에 얼마나 잘 녹아들지를 지켜보는 것도 좋은 공부가 될 것 같습니다^^
저는 코인에 있어서는 정말 지식이 없는 축에 속하는데 제가 봐도 너무 이해가 쏙쏙 잘되는 글을 써주셔서 감사드립니다. 앞으로도 자주 와서 많이 배워가도록 하겠습니다. 팔로업 하고 갑니다 감사합니다!!
잘 읽어주셨다니 그저 감사할 따름입니다 ㅎㅎ 게을러서 다음 포스팅이 언제가 될 지는 모르겠지만 ㅜㅜ 또 좋은 내용으로 인사드리겠습니다!
초보라 여쭙습니다. 채굴자가 필요없다는 말이 무슨 의미일까요? 보상으로 암호화폐를 주지 않아도 된다는 건가요? 채굴이 필요없는 상황이라면 노드는 어떻게 이뤄지는지요...
사실 채굴자가 필요한 방식은 POW 방식을 따르는 암호화폐뿐입니다. POW 방식에서는 채굴자들이 트랜잭션 검증을 하면서 받아가는 블록 생상 보상이 있지만, 블록의 개념을 아예 없애고 트랜잭션이 다른 트랜잭션을 검증하기 때문에 특정인에게 보상을 줄 필요가 없습니다. 그리고 마지막으로 질문을 주신 노드는 어떻게 이루어지느냐는 물음은 어떤 측면에서 물어보신 건지 정확히 이해를 못 했습니다..ㅜㅜ
DAG, 또는 해시그래프에 대해서 관심이 있었는데 자료를 찾기가 힘들더라구요
이렇게 정리를 해주셔서 감사합니다. 앞으로도 좋은 정보 부탁드립니다.
좋게 봐 주셔서 감사합니다. 저도 이번에 공부가 많이 되었네요 ㅎㅎ
또 좋은 포스팅으로 인사드릴 수 있으면 좋겠습니다.
좋은 하루 보내세요!
처음 접해보는 내용입니다. 덕분에 많은 공부되었습니다. 감사합니다~~^^
도움이 되셨다니 다행입니다^^ 감사합니다 ㅎㅎ
블록체인에 대한 공부도 게으르게 하면 안되는데 자꾸 미루게 되네요. 큭... 잘보고갑니다.
너무 부담스럽게 생각 마시고 스팀잇 글 한번 씩 올라오는 것 틈틈이 읽어보면 어느새 큰 도움이 되어 있는 것 같습니다^^
@홍보해
좋은 글 감사합니다:) 새로운 것을 배울 때 항상 재미있는 것 같습니다! 한가지 궁금한점이 생겨서 질문남기고 갑니다.
현존하는 스케일링 솔루션은 얻는게 있으면 잃는게 있는 것 같습니다.
off-chain 솔루션(플라즈마, 라이덴)의 경우는 security문제를 조금 포기하고 dpos같은 경우에는 decentrailze 문제를 조금 포기합니다.
DAG의 경우에는 어떤 부분을 포기하는 건가요? 아니면 포기하는 부분없이 모든 문제를 해결할 수 있는 문제인가요?
일단 제가 이 기술에 전문가 수준으로 파악하고 있지는 않다는 점을 먼저 말씀드리면서 답변 드리겠습니다.
DAG의 경우에 트랜잭션이 늘어나면 늘어날수록 보안성이나 신뢰도에 강점을 가지는데, 반대로 이야기하면 트랜잭션이 충분히 생성되지 않는 초반에는 대단히 불안정할 수밖에 없습니다.
이럴 때 바이트볼 같은 경우는 메인 체인을 형성하거나 아이오타는 moderator를 두고 문제 발생에 대처를 한다고 들었습니다. 그렇게 본다면 초반에는 말씀하신 'decentralize'의 문제를 다소 포기한다고 볼 수 있지 않을까 하고 제 견해를 남겨봅니다^^
친절한 답변 정말 감사합니다:) 더 공부해보고 싶은 마음이 드네요^^
정말 좋은글 잘 보고 갑니다^^
DAG에 대해 공부하고 있었는데 심각한 장면을 보고 대안을 찾기 했죠.
아이오타가 비트코인처럼 노드도 이득을 취할 수 있는 구조가 아니라서 노드 관리가 불안합니다.
TPS가 0.1인가요??? 초반에 지반을 얼마나 잘 다져놓느냐가 중요하겠네요.
공부에 도움이 되네요.
제가 아직 잘몰라서 몇 가지좀 여쭤볼게요~
비트코인은 채굴자들이 트랜젝션을 감당하는거잔아요?
그럼 아이오타 같은 DAG는 누가 그 많은 트렌젝션을 감당하는건지 궁금합니다.
그리고 블록체인의 장점 중하나가 블록이이라는 개념으로 위변조가 불가능하다는 거잔아요
그럼 DAG는 어떤식으로 보안을 하는거죠 ????
트랜잭션을 감당한다는 개념을 어떻게 사용하고 계신지는 잘 모르겠습니다만, POW에서 채굴자들의 역할은 트랜잭션이 올바로 이루어지고 블록이 제대로 생성될 수 있도록 검증하는 역할을 한다고 알고 있습니다. 그리고 POS에서는 지분에 의해서 그것을 검증하죠. 그리고 DAG에서는 이전 트랜잭션이 다음 트랜잭션을 검증하는 방식을 취합니다. 감당한다는 표현을 쓰셔서 블록체인을 채굴자들이 짊어지고 책임지는 개념으로 쓰신 듯한 느낌으로 전해집니다만, 그냥 트랜잭션 검증 방식의 차이가 다르다고 생각해 보시면 좋지 않을까 생각해 봅니다 ㅎㅎ
제가 DAG 전문가는 아니지만, 1차로는 Directed Acyclic Graph의 개념처럼 트랜잭션 검증이 순환 방식이 아니기 때문에 기존의 트랜잭션을 위변조하지 못하도록 설계가 되어있는 것은 맞습니다. 트랜잭션 하나하나가 개별적인 블록의 개념으로 이해하셔도 됩니다. 거기에 추가적으로 몇 가지 기술을 더해 보안을 강화하기도 하는데요. IOTA의 경우는 POW 방식을 차용하기도 하고, 바이트볼의 경우에도 기타 암호화 알고리즘을 더해 강화한 것으로 알고 있습니다.
답변감사합니다 자주들리겠습니다:)
맞아요, 정말 공부할수록 끝이 없는 것 같아요. 오늘도 좋은 정보 감사드립니다!
앗 오래 전 글이었는데도 방문해 주셨네요 ㅎㅎ
지루한 하락장이 계속되니 공부를 더 해야 할 텐데 시간이 여의치가 않네요ㅠㅠ
또 좋은 자료들 있으면 정리해서 공유하고 하겠습니다!