Front-end Developer

0%

블록체인 무엇인가? 2장 왜 우리에게 블록체인이 필요한가?

2. 왜 우리에게 블록체인이 필요한가?

4. 블록체인에게 떨어진 미션

P2P 시스템의 지속가능성은 신뢰와 무결성에 달려 있다

신뢰와 무결성은 동전의 양면과 같다. 신뢰가 사전에 형성되고 지속적인 상호작용의 결과에 따라 더욱 굳어지거나 약해진다. P2P 시스템은 시스템을 믿는 사람들이 일단 합류하여 시스템에 기여한다. 이후 상호작용 결과가 만족스러우면 계속해서 시스템의 구성원으로 남는다. 사용자들이 계속해서 구성원으로 참여할 수 있도록 시스템에 대한 신뢰를 강화시키려면 시스템의 무결성이 필요하다. 이것이 부족하면 신뢰가 낮아지고 소비자를 잃게 된다.

그렇다면 순수 분산 P2P 시스템의 무결성을 확보하고 유지할 수 있는 방법은 무엇일까?

  • 전체 노드 또는 피어의 개수를 아는가?
  • 각 피어의 신뢰성에 대해 어느 정도 알고 있는가?

분산 P2P 시스템 내의 노드 개수각 노드의 신뢰성을 알고 있다면 무결성을 확보할 가능성이 더 커진다.

P2P 시스템의 무결성을 위협하는 두 가지 요소

  1. 기술적 결함

P2P 시스템은 사용자의 개별 컴퓨터로 구성되는데 기계장비라는 것은 언제든 고장이나 오류를 일으킬 수 있기 때문에 개별 컴퓨터나 네트워크 장비 등이 고장이나 오류를 일으켰을 때 대처할 수 있어야 한다.

  1. 악의적 피어

기술적인 원인이 아닌 시스템을 자신의 이릭을 위해 착취하려는 악의적 사용자들이 있고, 이런 사용자들이 P2P 시스템의 신뢰성을 무너뜨린다. 다른 피어를 믿지 못하게 된다면 시스템 사용자들은 시스템을 떠날 것이다.

블록체인이 해결해야 할 과제는 개수도 알려져 있지 않고 신뢰성과 안정성도 알 수 없는 피어들로 구성된 순수 분산 P2P 시스템의 무결성을 확보하고 유지하는 것이다. 컴퓨터 과학 분야에서는 비잔틴 장군 문제라 한다.


5. 그래서 블록체인이 뭔가요?

  1. 데이터 구조의 명칭
  2. 알고리즘의 명칭
  3. 기술묶음의 명칭
  4. 일반 응용분야를 가지는 순수 분산 P2P 시스템을 포괄하는 용어
  1. 데이터 구조의 명칭

    블록이라 불리는 단위에 모인 모든 데이터

블록체인은 책을 구성하는 페이지들과 유사하게 마치 체인처럼 서로 연결되어 있어서 블록체인이라는 이름이 붙었다. 데이터 구조에서 데이터 블록의 연결은 책의 페이지 번호 매김 방식과는 다른 특수한 번호 매김 방식을 사용한다.

  1. 알고리즘의 명칭

    순수 분산 P2P 시스템에서 여러 블록체인-데이터-구조 내의 정보 내용을 민주주의 투표 방식과 비슷한 방법을 써서 서로 협상하는 일련의 명령어

  2. 기술묶음의 명칭

    블록체인-데이터-구조, 블록체인-알고리즘, 암호화 및 보안 기술의 조합을 의미.

이들의 조합은 응용분야와 상관없이 순수 분산 P2P 시스템의 무결성을 확보하는 데 이용될 수 있다.

  1. 일반 응용분야를 가지는 순수 분산 P2P 시스템을 포괄하는 용어

    블록체인-기술묶음을 활용하는 거래장부(원장ledger)들의 순수 분산 P2P 시스템을 지칭하는 포괄적인 용어

이 맥락에서 쓰이는 블록체인은 순수 분산 시스템을 구성하는 한 부분인 소프트웨어의 단위를 의미하는 것이 아니라 순수 분산 시스템 전체를 의미한다.

이 책에서는 블록체인을 블록체인-기술묶음을 활용하는 원장의 순수 분산 P2P 시스템을 지칭하는 포괄적인 의미로 사용.

블록체인이란?

무결성을 확보하고 유지하기 위해 순서에 따라 연결된 블록들의 정보 내용을 암호화 기법과 보안기술을 이용해 협상하는 알고리즘으로 구성된 소프트웨어 요소를 활용하는 원장의 순수 분산 P2P 시스템.

보통 블록체인의 목적을 디지털 화페의 소유권을 관리하기 위한 것으로 두기 마련인데, 암호화폐의 소유권을 관리하는 것은 블록체인 응용분야의 하나일 뿐이며, 그 자체가 블록체인의 전부는 아니다.

다만 블록체인이 유독 디지털 재화의 소유권 관리 측면이 부각된 것은 1. 이해하고 설명하기 쉽고, 2. 경제에 가장 크게 영향을 미치는 실사례이기 때문이다. 소유와 소유권 강화는 인간사회의 핵심 요소이기 때문에 소유권 관리 방식을 혁신적으로 바꿀 수 있는 블록체인이 엄청난 변혁을 불러올 수 있는 기술이라 여겨진다.


6. 소유권의 본질 이해하기

소유권을 증명하기 위해 단 한 명의 목격자라도 확보하는 것은 좋은 일인데, 특히 독립적인 다수의 목격자를 확보하는 것이 중요하다. 이 아이디어가 블록체인의 핵심 개념 중 하나이다.

소유권 입증에 필요한 3요소

  • 소유자가 누구인가
  • 소유 물건은 무엇인가
  • 소유자와 물건의 매핑

소유권 사용은 오직 허가박은 사람만 그 자산을 사용하도록 인증하고 승인하면서 식별도 필요하다.

속성으로 보안의 3가지 개념 이해하기

  • 식별 : 누구라고 주장하는 것
  • 인증 : 당신과 당신이라고 주장하는 누군가가 일치하는지 증명
  • 승인 : 사전에 인증된 개체에 대해 무엇인가에 대한 접근을 허가하는 것.

  • 식별: 이름 또는 다른 식별자를 사용해 ‘누군가’라고 주장하는 것. 식별을 통해 대상이 ‘누구’라고 주장할 수 있는데 그렇게 주장한 사람과 누구로 주장된 사람이 일치하는지는 증명할 수 없다.

  • 인증: 어떤 사람이 다른 누군가를 사칭하는 것을 방지하기 위한 것. ‘누구’라고 주장한 사람과 ‘누구’로 주장된 사람이 일치하는지를 ‘무엇’을 통해 증명한다. 이때 ‘무엇’은 ‘누구’라고 주장되는 그 사람만의 고유한 무엇이어야 한다. (e.g. 지문, 얼굴 사진 등 고유성을 식별해 줄 수 있는 것.)

  • 승인: 식별된 사람의 성질과 특성에 기반해 특정 자원이나 서비스에의 접근을 허가해 주는 것. 성공적인 인증과 함께 인증된 특정인이 가진 특성과 권리에 대한 평가를 토대로 얻는 최종 결과. 항상 이미 인증된 개체의 특성이나 성질을 특정 규칙과 비교 평가한 다음 이루어진다.

원장은 소유권을 증명하기도, 이전하기도 한다

원장은 두 가지 상반된 역할을 수행한다.

  • 원장에서 읽은 과거 데이터를 이용해 소유권을 증명해 주는 수단의 역할
  • 소유권의 이전이 발생한 경우 원장에 새로운 데이터를 생성하여 이 사실을 문서화해두는 역할

원장이 누구에게나 공개되어 있다면 소유권 증명은 쉬워진다. 따라서 투명성은 소유권을 증명하는 기초가 되고, 소유권의 이전은 법적인 소유자에게만 배타적으로 허가된다.

원장의 소유권 증명 원장의 소유권 이전
소유권 증명 소유권 이전
투명성 개인정보 보호
데이터 읽기 데이터 쓰기
데이터 이력 사용 신규 데이터 생성
상태 유지 상태 변경

원장은 위와 같이 두 가지 상반된 역할들을 수행하는데 블록체인도 이와 비슷하다. 누구나 읽을 수 있게 개방된 원장과 유사한 데이터 구조를 사지는 거대한 분산 P2P 시스템이기 때문이다.

소유권 관리자로 임명된 블록체인

정부 규제 원장처럼 형식을 갖춘 목격자를 만드는 것이 자산의 소유권을 명확히 하는 핵심 요소인데, 독립적인 목겨자들이 많아서 상호 영향을 받지 않는 증언을 많이 확보하는 것이 진실을 찾기 위한 이 접근방식의 핵심이다. 이러한 방식을 원장의 소유권 명확화에 적용하면 조작될 위험이 있는 원장을 하나만 유지하는 대신 원장의 순수 분산 P2P 시스템을 활용해 다수의 노드가 동의하는 진실을 이용해 소유권을 확인하면 된다. 즉 하나의 중앙 통제된 원장은 훼손이나 위조의 위험이 있기 때문에 하나의 중앙 통제된 원장 대신 소유권을 기록하는 개별 원장들의 그룹을 형성한 뒤 대다수의 개별 원장이 동의하는 진실을 사용해 소유권을 관리한다.

  • 소유권 관리를 위해 사용된 개별 원장은 소유권 관련 데이터를 저장하기 위해 사용된 블록체인-데이터-구조 하나와 같다.
  • 개별 원장들은 P2P 시스템의 컴퓨터(노드)에 저장된다.
  • 블록체인-알고리즘은 개별 노드들이 최종 판결의 기초가 되는 하나의 일관된 소유권 상태에 집단적으로 도달하게 해준다.
  • 시스템의 무결성이란 소유권에 대한 진실을 판단할 능력을 말한다.
  • 식별, 인증, 승인, 데이터 보안을 믿을 수 있는 수단으로 만들기 위해 암호화 기법이 필요하다.

7. 이중사용, 블록체인이 해결한다

P2P 시스템의 취약성을 이용한 범죄 예방책

이중사용은 이중분양 사기와 비슷한데 두 사람이 동시에 같은 집을 소유할 수 없고, 둘 중 하나만 새로운 합법적 소유자가 되어야 하는 상황을 말한다. 이 책에서는 이중사용을 원장의 순수 분산 P2P 시스템에 발생할 수 있는 취약성을 의미하는 말로 사용하였다. 예를 들어 P2P 시스템에서 소유권이 다른 사람에게 이전될 때 모든 원장이 소유권 이전 사실이 기록된 최신 버전으로 갱신되어야 하는데, 여기에는 시간이 좀 걸리기 때문에 어떤 피어는 최신 정보를 알고 잇고, 다른 피어는 아직 그 정보를 모르는 상태가 있을 수 있다. 그렇기 때문에 예를 들어 만약 A가 B에게 소유권을 이전한 사실을 다른 피어들이 알기 전에 악의적으로 다른 대상에게 소유권 이전을 시도하면 아직 소유권 이전에 대한 사실을 모르는 피어들은 이를 승인하게 된다. 이처럼 소유권을 중복해서 판매할 수 있는 문제점이 생긴다.

대표적인 이중사용 문제 3가지 유형

1. 디지털 재화를 복사해 발생하는 이중사용 문제

컴퓨터 데이터는 별다른 제약 없이 복사할 수 있는 특성이 있어서 디지털 재화를 비롯한 소유자가 둘 이상일 수 없는 모든 데이터에 문제를 야기한다. 디지털 화폐를 복사해서 동일한 돈을 반복해서 지불에 사용하는 행위이다.

2. 원장의 분산 P2P 시스템에서 발생하는 이중사용 문제

모든 요소들이 소유권 이전과 같은 정보를 전달받기까지 시간이 걸리는 문제 때문에 일부 피어가 상이한 소유권 정보를 가지는 상황이 발생한다. 모든 피어가 동시에 최신 정보를 갖지 못하면 먼저 최신 정보를 습득한 누군가가 이를 악용해서 이중 사용할 우려가 있다.

3. 순수 분산 P2P 시스템의 무결성이 침해된 이중사용 문제

이중사용을 추상화해서 바라보면 분산 P2P 시스템 내 데이터의 일관성을 유지하는 문제이며, 이는 시스템 무결성의 한 측면이기도 하다. 따라서 이중사용은 시스템 무결성이 침해된 특정 사례라 할 수 있다.

이중사용 문제를 해결하는 방법

1. 디지털 재화를 복사해 이중으로 지불하는 문제 해결

디지털 재화를 나타내는 데이터와 소유자를 매핑하는 수단만 있으면 해결 가능.

2. 원장의 분산 P2P 시스템에서 발생한 이중사용 해결

응용분야는 물론 아키텍처까지 알고 있을 때 블록체인이란 용어 자체가 원장의 분산 P2P 시스템의 이중사용 문제를 없애주는 해결책.

3. 분산 P2P 시스템의 무결성이 침해된 이중사용 해결

시스템의 아키텍처는 특정되었지만 응용분야는 특정되지 않았을 때, 시스템의 구체적인 용도와 상관없이 분산 P2P 시스템의 무결성을 확보하고 유지하는 것에 초점이 있다. 단 분산 P2P 시스템의 용도가 무엇인지에 따라 무결성의 내용과 의미가 결정된다. 따라서 블록체인-기술묶음이 시스템의 무결성을 확보하고 유지할 수 있는 적절한 도구인가는 응용분야의 목적을 알아야만 판단할 수 있다.


References
[블록체인 무엇인가?] 다니엘 드레셔 지음