비트코인 네트워크에서 블록 타임을 쉽게 줄이지 못하는 이유: 스테일 블록(Stale Block)은 무엇인가?

in #kr7 years ago

안녕하세요 여러분. 참새입니다.

이번 시간에는 비트코인 네트워크가 블록 타임(block time)을 쉽게 줄이지 못하는 이유에 대해서 간단하게 알아보겠습니다!

비트코인을 주고 받아보신 분들은 아시다시피 비트코인 네트워크의 처리 속도가 무.지.하.게. 느린 것을 체감하셨을 겁니다. 간단하게 생각해보면, 비트코인의 블록 타임이 줄어들면 더 많은 블록들이 더 짧은 시간 동안에 생성될 수 있기 때문에 비트코인 네트워크가 기능적으로 향상될 수 있을 것 같습니다 (상식적으로는 그렇지 않나요? ㅎㅎ).

하지만, 스테일 블록 (stale block)이라는 존재 때문에 비트코인의 블록 타임이 10분보다 훨씬 더 낮은 시간으로 줄어든다면 비트코인 네트워크가 큰 혼란에 쌓일 수 있습니다.

그렇다면 스테일 블록은 무엇인가요?

스테일 블록은 채굴자에 의해 올바른 형식으로 채굴된 블록이지만 현재의 블록 체인에 업데이트되지 못한 블록을 뜻합니다. (네????)

비트코인 블록이 추가되는 순서를 보면서 예를 들어보겠습니다.
(1). 인증되지 않은 거래(transactions)들이 있습니다.
(2). 채굴자들이 자신들이 속한 pool에 있는 거래들을 보고 어떤 거래들을 다음 블록에 추가할 건지 고릅니다.
(3). 채굴자들이 다음 블록을 채굴하기 위해 경쟁합니다.
(4). 가장 먼저 proof-of-work 컴퓨터 퍼즐을 푼 채굴자는 자신이 고른 거래들 정보와 블록들을 블록 체인에 추가할 수 있습니다.

자, 여기까지는 모든 분들이 아시는 기본적인 거래 처리 순서입니다. 그렇다면, 만약에 채굴자들이 다음 블록을 채굴하기위해 경쟁할 때, 미국에 살고 있는 ‘참새’와 독일에 살고 있는 ‘비둘기’가 블록을 동시에 같은 시간에 채굴하게 되면 어떤 일이 생길까요?

참새와 비둘기가 블록을 불법적으로 채굴하는 것이 아니기 때문에 참새가 채굴한 블록과 비둘기가 채굴한 블록은 동시에 비트코인 네트워크에 전파되게 됩니다. 네트워크 내에서도 전파되는 위치와 주변에 있는 노드(node)들이 다르기 때문에, 미국 근처에 있는 노드들은 참새의 블록의 정보를, 독일에 있는 노드들은 비둘기의 블록의 정보를 먼저 알게 되겠죠.

그렇다면, 미국에 노드가 더 많다면 다수결로 더 많은 노드들이 블록 정보를 갖고 있는 참새의 블록이 블록 체인에 추가가 되는 걸까요? 아닙니다!

어떤 블록이 추가가 될 지는, 다음 채굴자가 참새나 비둘기 중 누구의 블록 위에 새로운 블록들을 추가하는지에 따라서 결정됩니다.

비트코인 네트워크에서는 다양한 버전의 블록 체인이 존재하게 될 때 가장 긴 블록 체인을 고르고 짧은 블록 체인을 버리게 되는데요, 참새와 비둘기 예의 경우를 볼 때 참새와 비둘기 다음으로 비트코인을 채굴한 채굴자가 블록을 참새의 블록 위에 추가한다면 참새의 블록이 블록체인에 추가가 되고, 반대로 비둘기의 블록 위에 추가한다면 비둘기의 블록이 블록체인에 추가가 됩니다 (블록 체인 길이가 더 긴 것이 승리하니까요^^).

이런 경우에 블록체인에 추가되지 못하고 버려진 블록을 ‘스테일 블록’이라고 합니다. 스테일 블록이 네트워크에서 거래들을 처리하는 과정에서 도움이 되는 것은 아니란 느낌은 모두들 받으셨나요? 스테일 블록들이 많아질 수록 거래 처리 과정은 더 복잡해지고 혼란스러워질 것 입니다!

모든 것들을 정리해보자면, 비트코인 네트워크의 블록 타임이 줄어든다면 더 많은 블록들이 더 짧은 시간 내에 생성될 테고, 더 많고 새로운 블록들이 생성되는 정보들이 네트워크 내에서 전파되어야 함으로 스테일 블록들이 결과적으로 더 많이 생성되게 됩니다. (블록 타임이 10분일 때 스테일 블록이 5개 생겼었다면, 블록 타임이 5분일 때는 더 많은 정보들이 네트워크 내에서 노드들한테 전파되어야 하기 때문에 5개보다 많은 스테일 블록들이 생성되게 되겠죠!)

이러한 점 때문에 비트코인 네트워크 내에서 처리되는 정보들이 모든 노드들에게 충분한 시간을 갖고 전달될 수 있는 블록 타임이 필요하게 됩니다. 결론적으로 블록 타임을 줄인다고 비트코인 네트워크의 기능성 향상이 이루어지는 것은 아니라고 볼 수 있겠네요 ^^

Sort:  

몰랐던 부분 잘 보고 갑니다.
정말 많이 아시네요.

타임을 줄인다고 무조건 좋은것은 아니었군요ㅎㅎ

궁금해 하던 내용인데 잘 설명해 주셔서 감사드립니다.

요즘은 이런 네트웨크성향의 가상화폐들이 많이 보이는 듯 합니다...

항상 많이 배우고 갑니다!

비트코인 전송 때 너무 느려서 답답함이 있었는데...
스테일 블록, 저 녀석 때문이였군요 :) ㅋㅋㅋ
복잡한 개념을 쉽게 풀어 설명해주셔서 감사합니다 :)
앞으로도 유용한 정보 많이 부탁드릴게요!!!

스테일 블록이 뭔지 그리고 비코가 처리속도를 빨리하지 못하는 어려움 알고 갑니다.

우와 또 하나 배웁니다~

잘 보고 갑니다 ^^

알수록 어려운 코인의 세계네요 오늘도 시기한 코인의 세계잘보고 갑니다 참새님 즐거운 저녁 보내세요 ^^

쉽지 않은 암호화폐의 세계~ㅎ

스테일블록이라는 것 때문에 비트코인이 더 느림보가 됬군요 ㅎ 배우고 갑니다^^

왜 이더리움도 ICO 송금할 때 이리도 fail이 자주 나는지 알았네요 ㅎㅎ

해박한 지식을 배워갑니다ㅎ

고급 정보 감사합니당ㅎㅎ 스테일블록에 대해 처음 알게되었네요.. bch나 3세대 코인들이 이 문제를 어떻게 처리했는지도 설명해주실 수 있으신가요?

비트캐시 라이트코인은 전송속도가 비트코인이나 이더리움에 비해 확실히 빠른 편인가요?? EOS 등 다른 알트코인은요?? 트레이딩만 하다가 전송할 일이 생겼는데 비트를 무엇으로 바꿔서 전송 할지 고민이네요. 잘 아시는 분 댓글 달아주시면 감사하겠습니다

@longblueline00 EOS는 써본 적 없지만 라이트코인은 확실히 비트코인 보다는 빠르더라구요! ㅎㅎ 전송하실 일이 있으시면 라이트코인 추천합니당

댓글 감사합니다. 혹시 빠르다는 건 10분 내외인가요? 초보라 모르는 게 많네요ㅎㅎ

모든 코인들은 코인들의 블락타임에 딱 맞춰서 전송되는게 아니라서 , 어디서 보내시는지, 각 코인의 네트워크 상태가 어떤지, 얼만큼의 양을 보내시는지에 따라서 달라진다고 알고 있습니다. 라코 0.1개를 보낼 때와 라코 100개를 보낼 때는 시간 차이가 많이 나게 되겠죵? ㅎㅎ

스팀챗 확인 부탁드립니다

유익한 정보 감사합니다.

항상 좋은글 감사합니다