나만 몰랐던 블록체인 상식) 지분증명(POS)과 마스터노드는 다르다?

in #coinkorea7 years ago

안녕하세요 에스리입니다. 나만 몰랐던 블록체인 상식이라는 시리즈를 진행해볼까해요. 전에 없던 시리즈를 시도해보려니까 떨리네요. 만약에 반응이 좋으면, 제가 블록체인 공부하다가 헐! 진짜? 말도안돼! 싶었던 내용이 생길 때마다 진행해볼까 합니다.

사실 이 시리즈를 기획하면서 걱정되는 부분이 있었는데.... 정말 나만 몰랐으면 어떡하지? 그냥 내가 바보였던 것은 아닐까 하는... 그런... 걱정이요. 모쪼록 그렇다 하더라도 재밌게 봐주셨으면 좋겠습니다. + 본인만 알고있는 상식이 있다면 제보해주세요!

지분증명(POS)과 마스터노드는 다르다?


(정말) 나만 몰랐던 (것은 아니기를 바라는) 이야기 시작하겠습니다!

제보자


사실 제보라고 하기 조금 민망한 구석이 있긴 합니다. 지나가던 현자(?)가 일러준 일침이라 해야할 것 같기도 하네요. 때는 얼마전 DPOS 글을 올렸을 때 였습니다.

응? 이보게 의사양반! 그게 무슨 소리요! 좀 더 자세히.. 알려주시오!

위 댓글을 보고 급히 조사에 나섭니다. 제 글은 "POS=마스터노드" 라는 전제를 깔아놓고 진행했었거든요. 한글로 찾으니 제대로 된 자료가 없어서 영어로 찾아봅니다. 그리고 진짜 다르다는 것을 발견합니다..

혼자 있고 싶어요.. 불끄고 나가주세요..

마스터노드란


진짜 나가시지는 않으셨죠? 불만 끄셨기를 바랍니다. 아니 그럼 대체 마스터노드는 그럼 뭐였을까요. 무엇이 다른 것이었을까요. 저는 마스터노드가 무엇인지 제대로 알아보기 위해 마스터 노드의 대장격인 대시(Dash)의 백서를 찾아 떠났습니다... 총총...

  • 아래 내용은 대시 백서를 바탕으로 기술 되었습니다. 이 챕터에서 채굴(Mining)은 작업증명(POW)기반 채굴을 의미합니다.

풀 노드 (Full node) VS 라이트 노드 (Lightweight node)


마스터 노드 개념을 원활히 이해하기 위해서는 풀 노드와 라이트 노드가 무엇인지부터 알아야합니다. 앗, 그러고보니 "노드"가 무엇인지도 알아야겠군요.

노드

노드는 블록체인 네트워크에 연결 되어 있는 모든 컴퓨터를 말합니다. 블록체인 생태계를 구성하는 모든 사용자를 다 노드(=유저)라고 부른다고 보시면 됩니다.

풀 노드 (Full node)

풀 노드는 노드 중에서도 네트워크의 모든 규칙에 통달한 노드를 말합니다. 모든 블록체인의 이체내역은 물론이고, 퍼블릭 키, 해쉬 등등 필요한 모든 것을 저장해놓습니다. 현실 세계에서는 "판사" 쯤 되려나요?

라이트 노드 (Lightweight node)

라이트 노드는 노드 중에서 네트워크를 겉핥기로만 이해한 노드를 말합니다. 정확히는 블록 헤더(이체 내역의 검증만 가능)만 저장한 노드를 말합니다. 현실 세계의 "시민" 이라 하겠습니다.

채굴자 (Miner)

채굴자는 이 네트워크 블록을 생성하는 구성원입니다. 채굴자가 만들어낸 블록은 네트워크의 모든 노드에게 전파되게 됩니다. 현실 세계의 "경찰"이라 하겠습니다.

  • 사실 채굴자가 되기 위해서는 풀 노드를 운영해야합니다. 따라서 채굴자는 풀 노드에 포함되는 구성원입니다. 그러나 이해를 돕기 위해 위 두 구성원을 다른 것처럼 분리하였습니다.

풀 노드를 속일 수는 없지만 라이트 노드는 속이기 쉽다

만일 채굴자(경찰)가 나쁜 마음을 먹고, 전송 내역을 조작한 블록을 네트워크에 전파합니다. 이 전송 내역이 조작되었다는 것을 풀 노드(판사)들은 금새 알아차릴 수 있습니다. 그런데 선량하고도 순진한 라이트 노드(시민)들은 이를 철썩같이 믿습니다. "진짜" 경찰이 마음먹고 나쁜 짓 하는데, 시민이 무슨 힘이 있나요. 믿어야죠. 풀 노드는 이 공격을 방어할 수 있지만, 라이트 노드는 속수무책입니다.

채굴하지 않는 풀 노드(Non-mining Full node)의 필요성


네트워크를 이루는 소규모 구성원들의 대부분은 "라이트 노드"를 선호할 가능성이 높습니다. 풀 노드를 운영하기에는 돈이 많이 들거든요. 특히나 채굴을 안할 경우, 풀 노드를 운영하는 유지비를 감당할 보상도 지급되지 않습니다. 이 때문에 비트코인의 풀 노드들은 대부분 채굴을 위한 풀 노드들이지, 개인 이용자가 사용하는 노드가 아닙니다.

채굴자가 아직 착한 경찰인 이유

사실상 현재 비트코인 네트워크는 채굴자=경찰=판사 모든 역할을 하고 있다고 봐도 과언이 아닙니다. 그런데 네트워크 사용자가 점점 늘어나고, 라이트 노드들의 숫자도 거대해지면 어떻게 될까요? 훔쳐먹을 파이의 크기가 본인들의 기회비용보다 커진다면? 채굴자들이 다른 마음을 품을 수도 있게 됩니다.

비트코인 네트워크의 풀 노드 숫자가 줄어들고 있다고 대시 백서에 기술되어 있습니다. 2014년 자료여서 당시 상황의 문제에 국한되어 있기는 합니다만, 언제든 다시 일어날 수 있는 문제입니다. 현재는 11800개의 노드가 확인되고, 꾸준히 늘어나고 있네요.

채굴하지 않는 풀 노드를 늘려보자!

채굴하지 않는 풀 노드를 늘리기 위해 고안한 것이 마스터노드(Master node)입니다. 마스터노드를 운영한다는 것은 크게 다음의 것들을 의미합니다. 다음은 대시의 경우 해당하는 사항들입니다.

  1. 마스터 노드를 운영하는 권한을 얻기 위해서 일정 수준의 담보(최소 코인 보유량)를 맡겨야 합니다.
  2. 마스터 노드는 네트워크에 특정 서비스를 제공(익명성 부여 작업/라이트 노드의 레퍼런스 등)합니다.
  3. 마스터 노드는 해당 서비스의 제공 댓가로 채굴(POW) 보상의 일정 수준(45%)을 가져갑니다. (대시는 POW 채굴이 가능합니다!)

3번이 핵심인데요. 마스터 노드를 운영해주면 소정의 인센티브(이자)가 지급됩니다. 즉, 채굴을 굳이 하지 않더라도 풀 노드를 운영할 유인이 생긴 것입니다. 그러면 채굴풀들이 담합하여 실행하는 51% 어택에도 어느정도 방어가 되는 견고한 네트워크가 형성될 수 있습니다.

더불어 마스터 노드에서 부여하는 트랜잭션의 익명성은 본 마스터노드의 또 다른 장점이라고 볼 수 있습니다. 다크 코인이 되어서 어두운 곳에서 사용될 수 있는 것 아니냐는 지적도 있지만, 여하튼 이런 저런 기능이 추가될 "수" 있다는 것은 장점이 아닐까요?


마치며: 마스터 노드는 작업증명(POW)의 안전 장치


마스터 노드가 왜 등장하게 되었는지 조금 눈에 들어오시나요? 사실 마스터 노드는 작업증명(POW)을 기반으로 하는 코인들을 위해 설계되었습니다. 작업증명 기반 코인들은 풀 노드를 구성할 유인이 일반 사용자들한테 적기 때문에, 채굴자들의 이해관계에 따라 전체 네트워크의 보안이 한순간에 무너질 수도 있습니다. 이러한 문제를 개선하기 위해 설계된 노드라고 보시면 될 것 같습니다.

본래 마스터 노드의 존재 이유는 이러했습니다만, 요즘 보면 애초에 POS 기반 코인임에도 마스터 노드가 들어가는 경우가 왕왕 있습니다. 이 경우는 맑은(?) 의도로 들어간 장치는 아니라고 보시는 것이 맞을 것 같아요. POS 기반이면 개인 사용자가 풀 노드를 유지할 유인이 이미 충분히 많거든요. 마스터 노드의 이자율로 사람들의 이목을 집중시키기 위한 마케팅 전략 카드라고 보시는 것이 맞을 것 같습니다.

그럼 이만 글 마치겠습니다. 저만 몰랐던 블록체인 상식이 아니길 바라며, 다음엔 더 신기방기+충격적인 반전 내용으로 찾아뵐 수 있었으면 좋겠네요. @sol7142님과 같은 촌철살인 제보를 기다립니다! 감사합니다 :)

맺음말


저는 한국의 암호화폐 투기 열풍이 가라앉고, 좀 더 성숙하고 건전한 시장 참여가 이루어지길 기대합니다. 그러기 위해서는 블록체인이 무엇인지에 대한 이해가 필요합니다. 블록체인 기술에 대한 더 깊은 이해를 바탕으로 모두 건강한 투자 하셨으면 좋겠습니다. 리스팀/팔로우/댓글/보팅 감사드립니다. 더 알차고 신나는! 포스팅에 많은 힘이 됩니다.

Sort:  

그리고 살짝 덧붙이자면, 마스터 노드와 POS의 가장 큰 차이점은, POS는 채굴+트랜젝션 증명이지만 마스터 노드는 트랜젝션 증명의 역할입니다. POS는 없던 코인을 채굴하지만, 마스터 노드는 이미 생성된 코인이 오가면서 생기는 수수료나 채굴 된 코인의 할당량을 가져오는 방식이죠

앗, 또 방문해주셨네요. 거기에 질문에 대한 댓글까지..! 많이 배우고 있습니다 ^^ 지나가던 말이셨지만 저에겐 꽤나 큰 충격이었네요. 앞으로 많이 알려주세요. 감사합니다~

좋은 정보 감사드립니다!
아직은 제가 모든 내용을 다 이해하기는 어려운 수준이라 좀 더 공부를 해야겠어요! 하지만 이 암호화폐와 암호경제학을 공부하는 것이 너무 재밌어 요즘 시간가는줄 모르고있습니다^^

저도 그래요~~ 공부할수록 매력있는것 같습니다^^

a very good post
anyone who reads it will like it
I really like your posts
@muhammadkariman

thanks, your post! have a nice day.

"풀 노드를 운영하기에는 돈이 많이 들거든요"

풀노드와 라이트노드의 차이점은 전체 블록체인 정보를 가지고 있냐 블록 헤더의 체인 만을 가지고 있냐로 이해하고 있는데요. 그렇다면 단순히, 100+GB 쯤의 용량을 더 가지는 차이밖에 없는 것 같은데 이 정도의 용량은 굉장히 값싸다고 생각합니다. 제가 모르는, 마스터노드의 특별한 역할가 있나요? 가령 CPU/RAM 을 많이 잡아먹는 연산이 있다고 하면 말이 되는 것 같습니다. 이 부분 알려주시면 감사하겠습니다 :)

새로운 댓글을 계속 남기기 무안하여...대댓글로 남깁니다.

"마스터 노드는 네트워크에 특정 서비스를 제공(익명성 부여 작업/라이트 노드의 레퍼런스 등)합니다."
-> 여기서 "라이트 노드의 레퍼런스"는 구체적으로 무엇을 의미 하나요? 배경지식이 부족하네요 ㅠㅠ.

"마스터 노드는 해당 서비스의 제공 댓가로 채굴(POW) 보상의 일정 수준(45%)을 가져갑니다. (대시는 POW 채굴이 가능합니다!)"
-> 비트코인 기준으로 모든 트랜잭션은 "A가 B에게 C만큼의 비트코인 을 준다." 라는 값을 표현합니다. 덧붙여, 비트코인의 POW 기준으로, 채굴 보상은 특별한 것이 아니라, 채굴자가 본인이 추가하는 블록에다가 "(사실상 비트코인 프로토콜이) 채굴자에게 고정된 금액 C(예를들어 25비트코인)의 비트코인 을 준다." 라는 트랜잭션을 특별히 추가하는 작업으로 알고 있습니다. 대시의 POW 도 크게 다르지 않을 것으로 예상하는데요.

그렇다면, "마스터 노드는 해당 서비스의 제공 댓가로 채굴(POW) 보상의 일정 수준(45%)을 가져갑니다" 라는 말은 어떻게 동작하는 걸까요? 제가 만약 마이너 A라면 마스터노드 B, C, D 중에 누구에게 45% 만큼의 채굴보상을 지급해야 하나요? 아니면, 그냥 마스터노드가 "특정 서비스" 를 제공하는 과정에서 인풋 트랜잭션의 얼마 만큼을 때먹는다는 말씀을 하시는건가요?

기술적으로 상세히 잘 설명해주셔서, 글 잘 보고 있습니다. 제가 세부 알트코인들의 백서는 들여다보지 않아서 무지하게 하는 질문일 수도 있으니 ㅠㅠ 답해주시면 감사하겠습니다.

라이트 노드의 레퍼런스는 단순 트랜젝션 유지 등을 포함합니다. 또한 마스터 노드가 대시의 경우 45%의 채굴 할당량을 가져가는 퍼센테이지 까지는 처음 알았으나, 트랜젝션 수수료를 가져가는 마스터 노드나 기타 코인들의 경우와 비슷한 매커니즘으로 보여집니다. 혹은 신규 코인의 경우 채굴되는 양의 1퍼센트를 개발자가 받아가는 것을 예로 들 수도 있겠네요. 후자의 경우가 더 매커니즘 이해는 가까울 것입니다.

POW와 마찬가지로 마스터노드도 마스터노드를 유지하는 풀이 많아질 수록 마스터 노드의 수익률또한 감소하는 모습을 보입니다. 이는 채굴 할당량을 마스터 노드끼리 나누기 때문이지요

아하, 전체 채굴 보상의 총액을 R 이라 하면 그냥 R의 특정 퍼센티지를 마스터 노드들 끼리 동일하게 나누나 보네요. 이해 했습니다 :)

아닙니다! 질문은 언제나 환영입니다. 날카로운 질문은 저도 배우는 좋은 계기가됩니다. + 사실 저는 전문가가 아니기 때문에 틀린 내용이 있을 수도 있고요.

  1. 풀 노드를 운영한다. VS 채굴을 한다.
    위와 같이 비교하면 풀 노드 운영 비용이 굉장히 쌉니다. 그런데 채굴도 안하고, 단순히 입출금을 위한 개인 지갑을 쓰기 위해 풀 노드를 계속해서 운영한다? 이건 수지에 안맞다고 봅니다. 앞으로 계속 업데이트도 되어야 하기 때문에 다운로드 용량을 감당하는 것 등은 덤이고요. 개인이 지갑을 운영하기 위해 풀 노드를 가진다 VS 라이트노드를 가진다 로 비교하셔야 옳습니다.
  2. 라이트 노드의 레퍼런스
    개인이 지갑 운영을 하기 위해 라이트 노드를 가지고 있다고 해보겠습니다. 이 때 개인이 보유한 잔액의 송금을 원합니다. 이 경우 개인은 풀 노드를 가지고 있지 않기 때문에 원활한 네트워크 전달이 어렵습니다. 때문에 풀 노드를 거쳐서 송금을 하게 됩니다. 어이 풀노드! 내 것좀 전송해줄래? 하는 등의 행위라고 보시면 되겠네요. 이 때 믿을 수 있는 풀 노드가 라이트 노드의 레퍼런스가 됩니다.
  3. 마스터노드가 벌어가는 돈
    일단 이 부분은 질문자 분 께서 A,B,C,D를 혼용하셔서 제가 이해를 잘 못했는데요 ㅠㅠ. 그냥 쉽게 생각하면 블록 생성시 채굴자가 가져가는 블록 보상이 있잖아요? 그 보상의 일부를 마스터노드가 가져간다고 보시면 됩니다. POW만 되는 비트코인의 경우는 채굴자가 블록보상의 100%를 가져가고, 마스터노드도 있는 대시는 채굴자가 55%, 마스터노드가 45% 가진다고 보시면 됩니다. "새로" 생기는 코인을 나눠갖는 거에요.

상세한 답변 감사합니다. 깔끔하게 이해가 되네요. 채굴자가 새로 생기는 코인의 일부를 본인이 갖고 (즉 특별한 트랜잭션을 추가하고), 이 중 45%를 모든 마스터노드 들에게 똑같이 나누던 아니면 그 기대값 만큼 랜덤하게 주는 방식의 트랜잭션을 별도로 따로 기록하나 보네요. 몰랐던 사실입니다. 감사합니다.

자주 읽고 댓글로 소통하겠습니다.

지나가는 길에 잠깐 던지고 간 말에 이렇게 글이 올라와서 조금 당황스럽습니다 ㅋㅋ... 잘 보고 갑니다 보팅하고 갈게요

오호.... 마스터노드는 원래 채굴 풀에 보완역할이었군요. 포스와의 차이가 궁금했는데 좋은 글 감사합니다

감사합니다 :)

"풀 노드를 속일 수는 없지만 라이트 노드는 속이기 쉽다"

-> 이 부분에 대한 자세한 설명 부탁드려도 될까요?

일반적으로, 블록 헤더에 담긴 해쉬는 해당 블록에 담긴 머클트리의 루트 값으로 알고 있습니다. 어택커가 블록체인의 특정 트랜잭션을 조작하면, 그 트랜잭션을 포함하는 머클트리의 루트 해시값이 바뀌기 때문에 해당 블록 헤더의 해시값이 바뀝니다. 그럼 이를 참조하는 바로 다음 블록에 적힌 해시값과 다르기 때문에 조작이 쉽게 들통나버립니다. 즉, 헤더의 해시값들만 체인으로 가지고 있어도 조작의 유무를 판별 할 수 있다고 생각합니다.

따라서, "풀 노드를 속일 수는 없지만 라이트 노드는 속이기 쉽다" 는 옳지 않은 명제 같은데 어떤 케이스에서 속이기 쉬운걸까요?

좋은 질문 감사드립니다. 스팀잇엔 워낙에 고수분들이 많아서 매번 긴장하게 되네요 ^^
말씀하신 부분은 이미 완료된 트랜잭션 내역에 대한 조작 이야기를 하시는 것 같습니다. 제가 이야기드린 조작은 새로 생겨나는 트랜잭션 내역을 조작하는 것이고요.
특정 마이닝 풀이 프로토콜 자체를 수정하여 블록을 계속 이어붙여 나가는 경우를 생각해보겠습니다. 다른 풀 노드들은 이게 잘못되었다는 것을 인지할 수 있어 해당 블록에 새로운 블록을 이어 붙이지 않고, 새로운 체인을 만들어 블록을 이어 붙입니다. 하드 포크가 되는 것이지요.
라이트 노드들은 이런 상황을 인지할 수 있는 확률이 적습니다. 단순히 생성된 블록만 받아들이기 때문에 자칫 잘못하면 가짜 체인 위에 갇혀버리는 함정에 빠지게 될 위험이 있습니다. 가짜 체인을 계속해서 메인 체인이라 착각하고 블록업데이트를 하게 될 경우가 생길 수 있다는 것이죠. 그럴 경우, 해당 체인에서 일어나는 모든 송금 내역은 "허위"내역이 됩니다.

제가 참고한 자료는 https://en.bitcoin.it/wiki/Full_node 의 Economic strength 파트입니다. 감사합니다 ^^

아주 좋은 리소스 감사합니다. 생각 보다 블록체인 데이터 말고도 다양한 메타 데이터가 함께 풀노드에 저장되나 보네요 (e.g. 채굴 보상의 액수). 감사합니다 :)

블록체인에 관해 완 전 초짜입니다. 하지만 글이 정말 쉽고 이해하기 쉬워서 많은 도움이 되었습니다. 감사합니다.

감사합니다! 앞으로도 쉽게 전달할수있도록 노력할게요~

Coin Marketplace

STEEM 0.20
TRX 0.19
JST 0.033
BTC 88985.87
ETH 3290.31
USDT 1.00
SBD 2.98