분산원장과 블록체인, 탱글

in #blockchain8 years ago (edited)

들어가며

이번 포스팅의 주제는 블록체인과 탱글이다.
분산원장과 블록체인(Blockchain), 아이오타의 탱글(Tangle)의 개념과 특징을 알아본다.
(블록체인은 주로 퍼블릭이다.)

분산원장(Distributed Ledger)

분산원장기술(DLT : Distributed Ledger Technology)은 중앙서버나 중앙관리자의 제어 없이 분산화된 네트워크의 각 노드(개인)들이 데이터베이스를 공유하고 계속 동기화하는 기술이다.
이것을 이해하기 앞서 기존의 중앙집중형 시스템과 잠시 살펴보자.
우리가 아무런 이질감 없이 Facebook, 우버와 같은 서비스나 은행시스템과 같은 중앙집중형 시스템을 이용할 수 있는 것은 그들이 알아서 잘 관리하고 처리해줄 것이라는 신뢰가 뒷받침되어 있기 때문이다. 우리는 이러한 기관, 기업에게 신뢰비용을 지불하고 그들은 서비스를 제공하며 데이터를 보관(보안)하고 활용한다. 이렇게 지금까지 자본주의가 발전하면서 신뢰받는 제3자(TTP : Trusted Third Party)에게 어떤 권한을 위임해왔고 그들에게 서비스를 받으며 성장해왔다. 여기서 우리는 기존 중앙집중형 데이터베이스 관리시스템의 문제점을 몇 가지 알아보도록 한다.

- 비효율성

은행이나 해외유통물류 등 각자가 데이터베이스를 가지고 운영하는 비즈니스의 경우 시간, 비용 측면에서 상당히 비효율적이다. 은행의 경우 각 은행들의 데이터베이스를 통해 거래를 확인하고 청산하기까지 중앙은행과 금융결제원, 외환거래의 경우 더 많은 중간다리가 포함된다. 또한 해외물류의 경우도 마찬가지로 화주부터 트럭회사, 해운사, 심지어 보험사까지 많은 중간 이해관계자들이 있다. 이렇게 많은 미들맨(Middle man)들이 존재할 경우 프로세스 전반에 걸쳐 시간과 비용이 증가하여 효율성이 떨어진다.

- 해커의 단일공격취약점

중앙집중형 데이터베이스를 이용하면 당연히 해커들의 공격대상이 되기 쉽다.

- 비용문제

중앙집중형 시스템은 데이터베이스를 유지, 관리하기 위해 많은 보안유지비용을 지출한다. 금융권의 경우 매년 천문학적인 돈을 보안인프라에 투자한다. 또한 데이터관리가 투명하게 공개되지 않아 과도한 관리, 중개수수료를 청구받을 수도 있다.

- 인간의 실수를 포함한 악의적 이용의 대상

중앙집중형 시스템은 관리자의 실수나 내부자의 악용(위, 변조 등)의 대상이 될 수 있다.

위 문제점들은 분산원장을 통해 어느 정도 완화가 가능하다.
하나의 분산원장을 서로 공유하고 데이터를 관리하여 중개프로세스를 단순화시켜 효율성을 증대시키고 분산된 네트워크로 인해 해커들의 공격을 방지하며 과도한 보안인프라비용, 중개수수료를 절약하고 실수나 악용의 가능성을 허용하지 않는다.

이렇게 분산원장기술은 중앙집중형 시스템의 단점을 보완하고 극복하는 모델로써 각광받고 있으며 현재도 개발 중에 있다.

블록체인(Blockchain)

* 개요

블록체인은 ‘합의를 통한 공유 분산데이터베이스’ 기술이다. 블록체인은 분산원장이라는 틀 속에서 블록이라는 하나의 단위(unit)를 시간의 시퀀스(sequence)로 구성한다. 하나의 블록에는 데이터가 들어가며 해시함수(hash function)를 이용해 블록을 연결해나가 하나의 체인(chain)을 이룬다. 이렇게 구성된 블록체인은 하나의 원장(Ledger)으로써 중앙기관이나 관리자 없이 분산되어 있는 노드들(신뢰를 전제로 하지 않는)에게 복제(replicate)-공유(share)되어 모두가 진본을 관리(기록, 저장, 전달)하고 동기화해 나간다.

분산된 환경에서 P2P네트워크를 실현하고 각각의 노드(개인)들이 데이터를 주고받는 일련의 과정을 블록에 담아 네트워크에 전파(broadcasting)하면 검증노드들이(PoW에서는 miner, PoS에서는 validator) 합의를 통해 데이터의 진위판별(무결성), 시스템과의 정합성 등을 검증(validation)하여 순차적으로 체인으로 연결하는 아키텍쳐를 이룬다.

블록에 들어가는 데이터들은 거래내역뿐만 아니라 존재하는 모든 데이터가 될 수 있다. 따라서 스마트 컨트랙트와 수 많은 응용분야로 확장가능하다.

블록체인은 합의방식, 참여권한, 데이터검증권한, 데이터열람권한 등의 차이에 따라 그 유형이 달라질 수 있다.

일반적으로 퍼블릭 블록체인의 한계를 극복해 기업의 업무의 커스터마이징한 프라이빗 블록체인이 있다.

* 특징

  • 블록체인에 기록된 데이터들은 큰 문제가 없는 한 비가역적으로 기록된다.

    (따라서 다수의 동의/합의 없이 임의로 데이터를 수정할 수 없다.)

  • 블록체인에 기록된 데이터들은 참여자들에게 투명하게 공개된다. 거래데이터라면 거래내역, 주소의 잔고까지 공개된다.
  • 블록체인을 이용하는 참여자들은 기본적으로 익명으로 참여한다. 데이터를 관리하는 것도 모두 익명이다.

    (때문에 악의적인 노드도 얼마든지 참여할 수 있다.)

  • 블록체인에서 데이터들은 분산된 다수의 합의를 통해 정합성과 무결성을 확인받는다.

    (이런 합의구조 때문에 데이터의 실시간처리는 어려울 수 있다.)

  • 블록체인 시스템의 업데이트, 수정 등은 합의를 통해 이루어진다.(거버넌스 문제)

IOTA 탱글(Tangle)

* 개요

IOTA는 분산원장으로 블록체인을 채택하지 않고 탱글(Tangle)이라고 하는 자체개발한 DAG(Directed Acyclic Graph, 방향성 비순환 그래프) 프로토콜을 사용한다. 블록체인의 단점(구조, 속도, 확장성, 수수료 등)을 개선하여 미래 IoT영역을 위한 시스템 설계와 자동화된 사물 간 결제(M2M)를 가능하게 하는 것을 목표로 한다.

IOTA의 메커니즘은 tangle white paper(백서)에 있다. 백서는 구체적 프로토콜 구현방법이 아닌 수학적 접근을 통해 전개해놓고 있다.

Tangle의 백서 첫 페이지를 보면, 블록체인은 거래를 요청하는 사람(user)과 거래를 승인하는 사람(ex. miner)이 구분되어 있는 것은 ‘차별’이며 이러한 차별이 여러 갈등을 야기한다고 이야기한다. 탱글에서는 그와 다르게 사용자(user)가 거래를 요청하는 동시에 승인하는 시스템이다. 새 거래를 요청하기 위해서는 본인이 ‘tip’이라고 하는 ‘아직 승인받지 못한 이전 거래’ 2개를 승인해야 한다. 즉 채굴자의 역할을 거래를 요청하는 사람이 모두 수행하기 때문에 채굴자가 필요없고 수수료도 낼 필요가 없다.

거래는 그냥 승인하는 것이 아니라 비트코인에서 채굴자가 거래를 승인할 때 하는 작업증명(hashcash)과 비슷한 작업(hashcash-lite)을 하게 된다. 수수료가 없는 상황에서 스팸/시빌공격을 차단하기 위해서이다. 승인할 거래내역과 논스(nonce)의 해시값이 어떤 특정한 형식(particular form)을 갖는 논스를 찾는 것이다. 그리고 그 두 거래가 과거의 트랜잭션과 충돌(conflict)하지 않는지 확인하여 이상이 없으면 새 거래를 추가한다.

위의 그림이 탱글 네트워크이다. 왼쪽에서 오른쪽(→)으로 시간이 흐른다. 가장 오른쪽의 회색 박스(+노란색박스)가 tip이고 최근에 탱글에 들어온 미승인된 트랜잭션이다. 각 거래들이 이전 거래들을 승인할 때 화살표(edges)로 승인대상을 표시한다. 내가 새로운 거래를 추가하려면 2개의 과거거래(tip)를 승인해야 한다. z거래가 v와 t를 승인하므로 이것을 직접(directed) 승인이라고 하고 z거래가 o거래를 직접 승인하지는 않지만 v를 통해 간접적으로 승인하기 때문에 간접(indirected) 승인이라고 한다.

a박스는 genesis트랜잭션이다. 최초에 생긴 거래로, 모든 거래들에 의해 직접적, 간접적으로 승인된다. 또한 제네시스 트랜잭션은 최초 모든 iota토큰(27억개)을 보유했으며 이후 다른 founder의 주소로 보내졌다.

파란색 박스는 아직 모든 tip의 승인을 받지 않았으므로 ‘확정’되었다고 보기 어렵다. 이 거래들은 더 시간이 지나 새로운 tip들에 의해 점차 ‘확정’되어갈 것이다. 초록색 박스는 모든 tip에 의해 승인을 받았으므로 ‘확정’되었다고 말할 수 있다.

회색 박스는 아직 승인받지 못한 tip으로, 시간이 지나 이 회색박스들을 승인하는 새로운 tip이 생기면 파란색 박스로 바뀔 것이다. 결국 거래들의 목표는 초록색 영역으로 가는 것이다.

IOTA 이용자는 승인도를 스스로 정하고 거래를 할 수 있는데, 금액이 큰 거래는 승인도를 높게 잡고 그 반대인 경우에는 승인도를 낮게 잡아 물건을 거래할 수 있다. tip selection algorithm(팁 선택 알고리즘)을 수행하는 MCMC(Markov Chain Monte Carlo)알고리즘을 통해 그 승인도를 측정할 수 있다. 모든 거래가 tip selection algorithm을 따른다고 가정했을 때, tip selection algorithm을 몇 번 돌렸을 때(run) tip으로부터 몇 번 간접승인이 되었는지를 보고 그 확률을 따져볼 수 있다.

10번 tip selection algorithm을 적용했을 때 8번 선택(승인)된다면 80% 승인된다고 보는 것이다.

충돌이 일어나는 거래들은 tip selection algorithm을 통해 해결한다. 두 충돌되는 거래 중 하나의 거래만이 살아남고 나머지 거래는 버려지게 된다.

각 트랜잭션에는 위와 같이 숫자가 표시되어 있다.위 숫자들은 각 트랜잭션의 무게(weight)를 나타낸 지표이다.

박스 내 오른쪽 밑의 작은 숫자는 그 트랜잭션의 고유 무게(own weight)를 나타내고 왼쪽 위의 굵은 숫자는 누적 무게(cumulative weight)를 나타낸다. 무게는 트랜잭션을 요청할 때 투자한 작업의 양에 비례한다. 그리고 누적무게는 그 거래의 고유의 무게 + 그 무게를 승인하는 거래들의 고유 무게의 합으로 표시된다. 그래서 D의 누적 무게는 1(D)+1(A)+3(B)+1(C)=6이다. 새로운 tip이 추가된다면 그 tip이 직/간접적으로 승인하는 거래들의 누적 무게는 tip의 무게만큼 증가할 것이므로 누적 무게는 그 거래의 누적된 승인도를 나타냄과 동시에 컨펌율을 나타낸다. 무게는 공격에 대한 MCMC 알고리즘을 적용, tip 승인 등 네트워크 security를 유지하는데 하나의 요인으로 작용한다.

탱글에서는 비트코인의 라이트닝네트워크(Lightning network), 이더리움의 레이든(Raiden)처럼 오프체인 탱글(플래시 채널)을 만들 수 있다. 주 탱글에 트랜잭션을 올릴 필요 없이 플래시 채널을 통한 대용량 거래처리가 가능하다. 기계와 기계간 네트워크에서 오프라인 환경은 안전한 데이터관리(기록, 저장, 전달)를 위해 필수적이다. 서로 동일하지 않은 프로토콜을 적용받는 사물네트워크 간에도 상호운용이 가능해야 하기 때문이다. 플래시 채널은 2017년 8월 첫 공개되었다.

탱글은 MAM(Masked Authenticated Messaging)이라고 하는 레이어2 데이터전송프로토콜 모듈을 사용한다. MAM은 데이터스트림을 암호화해서 전송하는 기능으로 데이터(메시지)의 무결성과 프라이버시가 필요한 산업에 적합하다.

기본 아이디어는 채널ID를 가진 참가자들이 암호화된 데이터에 접근가능하다는 것이다.

MAM에서 가시성(visibility)과 접근성(access)를 제어하기 위해 Public mode와 Private mode, Restricted mode를 사용할 수 있다.

Public mode : 공개모드. 데이터의 무결성(integrity)과 불변성(immutability)을 기반으로 트위터처럼 개인이, 또는 device에서 공개적으로 announcement하는 use case로 쓰일 수 있다.

Private mode : 비공개모드. 서로 사적으로 통신하는 장치에서 유용하게 쓰일 수 있다.

Restricted mode : 제한모드. 위의 Private mode에 인증키를 추가하여 참가자의 접근권한을 통제할 수 있다.

MAM은 메시지를 암호화해 전송하는 기능이지만 iota 토큰을 암호화해 전송하지 않는다. IOTA는 privacy 향상을 위해 토큰전송에도 암호화기능을 추가해 IOTA의 익명성과 fungibility를 향상시켰다. 이 과정에서 Mixer가 사용된다. Mixer는 토큰을 주고받는 과정에서 추적할 수 없도록 하는 기능이다. 2017년 11월 Mixer version 1을 release했다.

  • 장점

수수료 : 거래수수료가 없다. 이렇게 제로 수수료구조를 통해 사물인터넷 간 M2M결제가 가능하고 나노페이먼트를 가능하게 하는 비즈니스가 가능하다.

확장성 : 현재의 블록체인시스템과 달리 데이터의 평행처리가 가능하고, 네트워크 참여자가 많아질수록 처리량이 많아져 속도가 증가한다. 또한 네트워크 참여자가 많아질수록 검증자가 많아지므로 네트워크 안정성이 증가한다.

운영비용 : 비트코인이나 이더리움과 달리 탱글을 이용하는 아이오타는 마이너가 존재하지 않는 상황에서 계속 운영해나가기 위해 자본이나 자원이 필요하지 않다.

  • 특징

코디네이터(coo, coordinator) : IOTA는 자체 코디네이터(조정자)를 둔다. 아이오타에서는 현재는 네트워크의 성장과 유기적인 참여자의 활발한 활동이 있기 전까지 비트코인 블록체인과 달리(51%공격 또는 그 이하) 34%의 공격으로부터 보호하기 위해 조정자를 두어 네트워크의 보안과 안정성을 담보하고 있다. 하지만 빠른 시일 내에 조정자를 오라클로 대체하는 등의 제거를 할 예정이라고 밝혔다.

타임스탬프 : 현재 블록체인에서 사용하는 타임스탬프 기능이 없어서 스마트계약 구현에도 한계가 있다. 하지만 이것도 가능하도록 연구중이다.

자체 해시함수 : IOTA는 curl이라는 3진(trinary) 암호 해시함수를 자체 개발하여 일부 소프트웨어에 사용하고 있다.

암호학 전문가를 고용하고 자본을 투자하여 개발하고 있지만 아직 완전한 검증이 이루어지지 않아 언제든 문제가 생길 가능성이 있다. curl은 Winternitz-OTS(One-Time-Signature)라고 하는 해시기반 암호화 서명기법을 사용한다. 블록체인과 달리 curl이라는 해시함수와 W-OTS 서명은 Quantum-resistance(양자-저항성)를 가질 수 있다.

3진법 : 아이오타는 일반 컴퓨터 2진법(binary)과 달리 3진법(trinary)을 사용한다. 사물인터넷에 적용하기 위한 최적의 에너지효율을 내기 위한 설계였다고 한다.

// 2017년은 2018년에 이루어질 작업 중 상당수가 이루어진 해였다고 이야기한다. 작년에 독일에 비영리재단을 설립하기도 했지만 올해는 더 완비된 운영을 할 것으로 보인다. IOTA의 탱글은 지금까지 엄청난 성장이 있었지만 아직 해결해야 할 문제들도 많다. 아이오타 재단은 신생 스타트업과 여러 기업들을 지원하고 있고 올해 최단 목표는 인재영입일 것이다(아이오타 홈페이지를 가보면 알 수 있듯이 꾸준히 인재영입을 하고 있다.). 2018년에는 본격적인 연구개발과 함께 흥미로운 프로젝트와 응용프로그램, 거래소 상장, 컨텐츠, 해커톤 개최 등을 위한 기금마련과 투자에 전념할 전망이다. //

Sort:  

Congratulations @worud2020! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.081
BTC 59760.45
ETH 1568.67
USDT 1.00
SBD 0.42