본문 바로가기

IT/스크랩

개념적으로 훑어보는 블록체인

반응형

정부의 암호화폐 및 블록체인 대책으로 블록체인 이야기가 핫하네요.

이미 블록체인의 뭐하는 것인지는 다른 좋은 글들도 많고 해서 질답 형식으로 정리해 보겠습니다

 

출처 : https://www.clien.net/service/board/lecture/11669712?po=0&od=T33&sk=&sv=&category=&groupCd=&articlePeriod=2015&pt=0

 

 

1. 블록체인이 왜 필요하죠?

A: 거래를 비롯해서 투표에 이르기까지 면대면이 아닌 관계에서 어떤 정보가 잘 전달된게 맞는지를 확인하는건 중요한 문제입니다. 현재는 이 정보가 맞다는 사실을 제3의 기관(금전 거래라면 한국은행이나 제도권 은행을 비롯한 금융기관들과 국가기관들, 투표라면 선거관리위원회와 검표 절차 등)이 보증해주고 있습니다.

 

따라서 그런 거래나 경제활동 혹은 어떤 행동이 성립할 수 있는건 제3자 기관에 대한 신뢰입니다. 실제로 실물 화폐를 믿지 못하기 때문에(위조지폐가 너무 많거나, 위폐 감별 기술이 떨어지거나) 전자결제가 활성화되는 나라도 있습니다. 아니면 자국 통화 대신 다른 나라 통화를 쓰기도 하구요. 대표적인 사례가 북한이죠. 실물 화폐 보유자에게 불리한 화폐개혁이 자주있다보니 오히려 위안화나 달러화를 쓰게 되듯이요.

 

블록체인은 이런 문제를 제3자 기관의 개입없이 하기 위해서, 즉 제3자의 검증 없이도 거래 당사자들끼리의 거래만으로도 서로 거래 내용이 맞다는 것을 확인할 수 있게 하려고 나온 물건입니다. 합의 알고리즘이라고도 하고, The Byzantine Generals Problem(비잔틴 장군 문제)이라는 논문에서도 이 정보의 검증 문제를 다룬 바가 있습니다.

 

해당 논문은 '한 비행 시스템 내부에서 서로 다른 부속들이 각자 상충되는 정보를 보낼 때, 어떤 정보가 맞는정보인지 어떻게 알 수 있을까'를 해결하기 위해 나온 논문으로 알고 있습니다.(현실적으로 있는 사례인지 가물가물한데 예를들어 디지털 고도계는 현재 고도 유지중이라고 말하는데, 아날로그 고도계는 현재 고도가 상승 또는 하강중이라고 말하는 경우.)

 

 

2. 그럼 어떻게 제3자 기관을 없앨 수 있을까?

A: 이걸 해결하기 위한 방법은 여러가지가 있는데, 대표적인것이 작업증명방식(PoW:Proof of Work)과 지분증명방식(Proof of Stake)입니다.

 

PoW가 바로 비트코인 등 일부 암호화폐에서 사용하는 방식이고, 해시함수를 이용하여 블록을 검증합니다.(블록은 그냥 블록체인에서 사용하는 정보의 단위라고 생각하시면 됩니다.)

 

예를들어 이렇게 하는거죠. '이전 블록의 검증값(해시값)과, 새로 추가하려는 블록의 값, 임시값(Nounce)을 모두 해시함수에 넣은 해시값이 0000으로 시작하게 만드는 임시값을 찾으면 검증 통과'라는 규칙을 만듭니다.

 

새로운 블록을 추가하려면 이 임시값을 찾으면 됩니다. 예를들어 1을 넣었더니 해시값이 0asdibks....가 나왔다면 아직 0asd로 시작하니까 안됩니다.

 

계속 찾아나가다보니 568332를 넣었을 때 해시값이 0000ghsaiadks....이 되었다면 검증에 성공한 겁니다. 그럼 이 블록은 기존 블록에 연결되게 되고, 이 다음에 추가될 블록은 방금 추가된 0000ghsaiadks....과 자신의 블록 값, 임시값을 이용해 또 다시 0000으로 시작하는 값을 찾아나갑니다.

 

이렇게 추가된 블록은 항상 [이전 블록의 값, 자기 블록의 값, (검증에 성공한) 임시값]인 상태입니다. 따라서 그 전에 어느 한 블록에 위조가 발생해서 값이 변경되면 그 뒤의 블록들은 줄줄이 검증 실패상태로 돌아갑니다.(왜냐하면 [0000ab, 0000cd, 3]인 상태에서 이전 블록의 정보가 바뀌면 000cd가 다시 asidfjd나 0adifjs같은 값으로 바뀌기 때문입니다.)

 

이렇게 임시값을 찾는데는 전력과 컴퓨터 연산능력이 필요합니다. 해시 함수에 숫자를 넣어서 맞는 값을 찾아나가야 하니까요.

 

지분증명(PoS)방식은 사전에 토큰을 분배한 다음 이 토큰을 소모하며 어떤 거래가 정당한지 아닌지를 투표하는 방식 등이 있다고 합니다. (이 부분은 아직 공부를 못해서 자세히는 모르겠습니다. 죄송합니다 ㅠ )

 

 

3. 그런데 검증을 누가하죠?

A: (암호화폐 가지고 싶은 사람) 누구나요.

 

블록의 신뢰도를 보증해주는 제3자가 없기 때문에 블록체인 네트워크에서 누군가는 그 임시값을 찾는 검증 작업을 해서 신뢰를 확보해야 합니다. 전기요금과 컴퓨터를 이용해서요.

 

그런데 보상이 없으면 호기심으로 조금 하고 말지, 네트워크가 유지될 정도로 많은 사람이 검증작업에 붙지 않을겁니다. 그래서 도입한게 비트코인을 보상으로 주는겁니다. 유인(incentive)을 제공한거죠.

 

검증에 성공하면 비트코인(지금은 얼마나 주나 모르겠네요 ㅎㅎ)을 보상으로 주고, 이걸 채굴(Mining)이라고 표현합니다. 그러니까 전세계에 있는 채굴업자들이 비트코인 네트워크를 유지시켜주는 검증자들입니다.

 

 

4. 그럼 검증하는 사람들이 담합하면요?

A: 사토시가 쓴 페이퍼에서는 담합해서 블록체인 네트워크를 교란할 때의 이익 보다 각자 검증 작업에 참여해서 얻는 이득이 크다는 것을 수학적으로 검증했던데 51% 공격이라고 해서 전체 네크워크의 과반의 연산력을 활용한 공격 방법이 이론적으로 이야기 되고 있는 것을 보면 절대적으로 블록체인 네트워크 교란이 불가능하다고 말할 수는 없어 보입니다.(이 부분은 제 생각입니다^^;)

 

 

5. 그런데 여기에 쓰이는 전기랑 컴퓨터가 아까운데요

A: 그걸 해결하고자 나온게 지분증명방식입니다.

 

토큰을 배포해주고, 토큰을 소비해서 투표를 하는 방식으로 검증작업을 해주는건데 대신 이 방법은 전력소모나 연산능력이 많이 필요하지는 않지만 '그럼 그 토큰은 어떤기준으로 누구한테 얼마나 줄지 누가 결정하지?'라는 탈중앙화가 약한 단점이 있습니다.

 

누군가가 주도적으로 토큰을 분배하고 발행한다면 결국 토큰 발행하는 사람의 신뢰도가 중요해지겠죠.

 

 

6. 가상화폐 제재한다던데 그럼 다 쓸모 없는거 아닌가요?

A: 처음 부분에 언급했던 것처럼 정보의 검증과 신뢰 확보 문제는 다양한 시스템에 적용될 수 있습니다. 어떤 정보가 맞는지, 위조된게 아닌지를 검증할 필요가 있다면 전부 블록체인의 응용분야가 될 수 있습니다. 지금까지 예로든 금융거래, 항공기의 비행 시스템, 선거 등등이 있죠.

 

만약 제3자 없이 100% 신뢰 가능한 모종의 시스템 연구에 성공해서 검증이 불필요한 투표 시스템이 탄생한다면, 투표의 검증이라는 측면에서 선거관리 위원회도 필요없어지거나 규모가 줄어들겁니다.(그만큼 선거에 드는 세금도 적게 들겠죠) 굳이 개표해서 검표할 필요 없이 투표한 시점에서 검증이 완료되는 그런 상황인거죠. 사실 저도 이게 가능할지는 모르겠습니다만 여튼 블록체인같은 합의 알고리즘의 목표는 이런 방향입니다.

 

 

7. 블록체인이 그렇게 보안에 좋다던데 왜 이렇게 해킹 소식이 들리죠?(작년에 실제로 모 금융공기업 면접위원이 저에게 한 질문)

A: 블록체인 시스템과 암호화폐 거래소는 서로 다릅니다. 블록체인 자체도 구현 방식에 따라 이론상 취약점이 없지는 않지만 가상화폐 거래소는 블록체인 네트워크의 한 노드(컴퓨터)이기 때문에 물리적인 공격이든 사이버 공격이든 공격받을 수 있습니다.

 

대신 블록체인은 이렇게 공격당한 거래소나 컴퓨터가 위조된 정보를 비트코인 네트워크에 뿌려대도 제3자의 검증없이 네트워크 내부에서 이것을 걸러낼 수 있다는데 의의가 있습니다.

 

 

7-1. 블록체인이 보안을 대체할거라던데요.

A: 보안의 목표를 기밀성, 가용성, 무결성 3가지로 꼽습니다. 기밀성은 권한 있는 사람만 그 정보를 알 수 있어야 한다는 것이고, 가용성은 아무리 비밀스런 정보여도 필요할 땐 써먹을 수 있어야 된다는 뜻입니다. 무결성은 그 내용이 위조되지 않았음 혹은 위조가 불가능함을 보장 해주는 것입니다.

 

이 3가지 중에 블록체인은 무결성에 특화된 기술입니다. 예를들어서 물건을 하나 구입한 다음, 이 거래가 담긴 블록을 모두 검증해서 블록체인 네트워크에 전송했다고 하겠습니다.

 

그런데 이 블록체인 네트워크는 암호화를 하지 않았다면, 이 블록을 전송받은 누구나 거래 내용을 알 수 있습니다. 블록체인은 'A가 XX원 지불'이라는 거래내용을 검증해서 네트워크 자체적으로 신뢰를 확보하게 만든 물건이지, A가 XX원을 지불했는지를 모르게 하려는 기술이 아니기 때문입니다.

 

이걸 해결하기 위해서 거래 내용을 암호화 합니다. 이미 널리 쓰이는 암복호화 알고리즘(DES, 공개키 암호화 등등), 해시함수를 이용해서 코인 거래를 인증하거나 거래 내용을 암호화 하는 것이죠.

 

그래서 블록체인'만'으로는 암복호화가 필요한 보안을 대체할 수 없습니다.

 

 

음.. 이쯤되면 대충(정말 대충) 블록체인에 대해 개념적으로 겉핥기를 한 것 같습니다. 이제 자주 보이는 질문이나 의문을 정리해보겠습니다.

 

 

- 가상화폐=블록체인?

A: 애초에 가상화폐가 비트코인류의 암호화폐를 지칭하는 단어가 아닙니다. virtual currency(가상화폐) 영문 위키를 보시면 유럽중앙은행에서 '정부에 통제받지 않으면서 특정 가상 커뮤니티 내에서 사용하는 화폐로, 개발자가 생성해서 공급하는 화폐'를 가상화폐라고 하고 있습니다.

 

그렇습니다. 아덴은 가상화폐입니다. 비트코인 등 코인류는 암호화폐로 따로 분류합니다.(비트코인은 온/오프라인에서 받아주기도 하고, 발행을 코인 개발자가 하는게 아닌 시스템에서 하기 때문)

 

그럼 비트코인 등 암호화폐는 블록체인일까요? 역시 아닙니다. 현재까지 출시된(?) 암호화폐들은 블록체인 기반으로 만들어졌지만, 블록체인의 응용 분야중 하나입니다.

 

 

 

- 암호화폐는 실질적인 이득도 없으면서 전기와 컴퓨터를 사용하는 소모적인 물건일 뿐이다

A: 반드시 그렇지는 않습니다. 전기/연산능력 소모가 너무 크다보니 완성도는 별론으로 하더라도 지분증명방식 등 작업증명방식의 단점을 극복하기 위한 노력들이 존재합니다.

 

대신 전기/컴퓨터 연산능력 소모가 큰 코인을 채굴하는 사업자들 같은 경우 채산성이 안맞으면 폐업하거나 광산 노예들을 처분할 가능성이 올라갈겁니다.(채굴이 시들하다 시세가 오르면서 채산성이 오르고 광산 노예 채용이 급증한 것과 일맥상통합니다.)

 

그리고 그렇게 채굴업자(검증자)들이 줄어들면 검증자의 규모에 반비례해서 블록체인 네트워크의 위협은 증가하죠.

 

 

이정도면 개념적으로 블록체인에 대해 대충은 이해하실 수 있을거라고 생각합니다. 세부적인 내용은 저도 잘 모릅니다..ㅠㅠ

 

본문에서 언급은 안했지만 분산원장 기술로 검색하시면 Public인지 Private인지로도 구분가능하고 PoW, PoS말고도 다양한 방법이 존재하고 있지만 저도 잘 모를 뿐더러 개념적으로 블록체인의 구조를 이해하는데 필수적인 내용은 아닌듯 해서 뺐습니다.

 

실제 구현방법에 따라서도 이런저런 장치를 많이 해두고 있구요. 전체 총량을 그대로 유지한 상태에서 검증 작업 난이도를 올려서 보상 수준이 일정하게 유지되도록 한다던가 하는 방법입니다.

 

재정거래나 폰지사기 같이 금융분야에서 사용되었던 꼼수(?)나 사기는 블록체인 자체와는 관계가 없어서 뺐습니다. 과연 화폐/금융정책이 탈중앙화가 된다고 좋은 결과가 나타날지를 생각해보는 것도 재밌는 주제이지만 블록체인의 기술적인 특징과 의의에 섞이면 혼란스러울 수도 있을 것 같아서요. (IMF출범과도 관계가 있는 주제입니다. 각국이 각자 자유롭게 경제정책을 폈는데 세계화가 되면서 이게 오히려 안좋은 결과가 될 수 있더라 같은.. 결국 금태환은 폐지되고 SDR-특별인출권으로 넘어가긴 했습니다만 여튼 IMF는 그런 문제의식에서 출발한 결과입니다.)

블록체인

반응형