의견.png

엉클블록

해시넷
wlgns12244 (토론 | 기여)님의 2019년 8월 5일 (월) 10:52 판 (특징)
이동: 둘러보기, 검색

엉클블록(uncle block)은 블록의 유효성은 통과되었지만 최종 블록으로 인정받지 못하여 고아블록으로 이루어진 체인의 첫 번째 블록이다. 이더리움, 하이콘 등에서는 엉클블록의 생성자도 보상을 지급하고, 이에 대한 해시네트워크에 포함시켜 안정적으로 네트워크를 유지한다.

개요

블락 생성 시간은 매우 중요하다. 블락 생성이 매우 빠르면, 즉 블락 생성 난이도가 낮으면 네트워크의 보안 수준이 나빠진다. 반대로, 블락 생성이 매우 느리면, 즉 블락 생성 난이도가 높으면 네트워크 보안 수준은 올라가지만, 언제 블락이 생성되는지 알기 어렵기 때문에, 트랜잭션 처리가 언제 될지 예측하기 어려운 문제가 발생하게 된다. 따라서 적절한 블락 생성 시간이 설정되어야 하는 것이다. 만약 두 채굴자가 거의 비슷한 시간에 블락을 채굴한다면 어떻게 처리해야 할까? 이더리움 네트워크는 총 블락의 난이도가 더 높은 체인을 선택한다. 그러면 난이도가 낮은 체인은 그냥 버리는게 좋을까? 이처럼 선택되지 못한 블락을 스테일 블락(stale block)이라고 하는데, 이더리움에서는 스테일 블락을 엉클 블락(uncle block)이라고 부른다.[1]

역사

특징

이더리움의 경우 현재 합의 알고리즘인 POW(Proof of Work, 작업 증명 방식)로 블록을 계속해서 생성하고 있다. 만약 서로 다른 채굴자가 동시에 블록을 생성하는 경우, 더 어려운 난이도와 큰 Nonce 값을 가진 블록은 블록체인에 연결되고, 다른 하나는 버려지게 된다. 이 때, 버려지는 블록을 엉클 블록이라고 한다.[2]

이더리움의 엉클블록은 비트코인고아블록에 상당하는 것이지만, 비트코인에서는 무효화되는 고아블록이 이더리움에서는 엉클블록으로서 메인체인의 구성 요소로 다뤄지며 채굴에 대한 보상도 주어진다. 엉클블록을 통해 채굴의 효율성과 네트워크의 안정성을 높일 수 있으며, 이더리움 블록체인에 있어 엉클블록의 비율 조작은 신규 이더리움 발행빈도의 부정조작을 방지하는 의미 또한 있다.

엉클블록은 블록 생성 평균 시간이 짧아지면 자주 발생하게 된다. 왜냐하면, 채굴자가 블록을 찾아서 다른 노드에 전파시키는데 시간이 소요되고 블록 생성 시간이 짧다는 것은 채굴자들이 쉽게 퍼즐의 해답을 찾을 수 있다는 말이 되는데, 이렇게 되면 블록을 찾았다는 신호가 전달되기 전에 다른 채굴자가 새로운 블록을 찾을 수 있기 때문이다. 엉클 블록의 문제점은 트랜잭션 confirmation을 늦춘다는 것이다. 어떤 트랜잭션이 엉클 블록에 속한다면, 그 트랜잭션은 confirmation되지 못한다. 즉 해당 트랜잭션이 포함된 블록이 다시 채굴되어야 한다는 것이다. 또 엉클 블록이 자주 발생한다는 것은 엉클블록을 채굴하는데 그만큼 해쉬 파워가 소모되었다는 것이고 즉 해쉬 파워가 불필요한 곳에 사용된 것이다. 이것은 평균 블록 생성 시간을 늦추게 되고, 평균 블록 생성 시간이 늦어졌기 때문에, 결국 난이도를 낮추게 되어 네트워크 보안 수준을 떨어트리는 문제까지 번진다. 이더리움은 고스트 프로토콜(Ghost Protocol)이란 방식으로 이러한 엉클 블록 문제를 해결한다. 즉 정상적인 블록들이 N개의 엉클블록을 가질 수 있게 함으로써, 엉클블록이 메인 체인에 붙도록 한 것이다. 그렇게 되면 엉클블록도 메인 체인에 속하므로, 난이도가 낮아지지 않는 효과를 가져온다.[1]

이더리움

Ethereum은 블록체인 기술을 기반으로 스마트 계약 기능을 구현하기 위한 분산 컴퓨팅 플랫폼이다. 이더리움이 제공하는 이더(Ether)는 비트코인과 마찬가지로 암호화폐의 일종으로 거래되고 있다. 이더리움의 화폐 단위는 ETH로 표시한다. 비트코인 이후에 등장한 알트코인 중 시가 총액이 가장 높은 대표적인 알트코인이다. Ethereum의 정확한 발음은 미국식으로는 이씨리엄([iˈθɪɹiəm])이고, 영국식으로는 이씨어리엄([iˈθɪəɹiəm])이다. 이더리움은 초기에 '이시리움' 또는 '에테리움'이라고 표기하기도 하였으나, 요즘에는 '이더리움'으로 표기하는 경우가 많다. 이더리움에서 하나의 블록만이 블록체인에 올라가고 나머지 하나는 버려지게 되는데, 이 때 버려지는 블록을 엉클블록이라고 한다.[3]

메인체인

메인체인(main chain)은 제네시스 블록부터 가장 최근의 블록까지 연결되어 있는 체인이다. 최장체인 또는 주요체인이라고도 부르며 가장 많은 해시파워가 투입되는 체인에 그 다음 블록이 연결된다. 네트워크 전파 속도 차이로 인해 하나의 체인으로 수렴하기 전에 같은 블록을 채굴하는 경우가 종종 발생하며 이는 분기, 즉 포크 를 유발한다. 동시 채굴이라는 용어는 정확히 같은 순간에 채굴에 성공했다는 개념이 아니며, 모든 노드들에게 블록이 전파되기 전, 같은 블록에 있어서 다른 노드에 의해 채굴이 완성되면 포크가 생겼다고 볼 수 있다.[4]

작업증명방식(POW)

작업증명(PoW, Proof of Work)은 블록체인 상의 대표적 알고리즘이다. 목표값 이하의 해시를 찾는 과정을 무수히 반복하면서 해당 작업에 참여했음을 증명하는 방식의 합의 알고리즘을 말한다. PoW 과정은 보통 마이닝(채굴)을 통해 이뤄진다. 암호화폐 2대 대장주인 비트코인과 이더리움이 PoW 방식을 사용하고 있다. 비트코인 계열의 라이트코인, 비트코인캐시, 비트코인골드, 시아코인 등도 PoW의 대표 암호화폐며 익명성을 보장받는 다크코인 계열인 모네로, 지캐시 등도 PoW 방식을 이용한다.PoW 개념은 지난 1993년 신시아 더크(Cynthia Dwork)와 모니 나노어(Moni Naor)가 처음으로 고안되었다. 이후 마커스 제이콥슨(Markus_Jakobsson)과 아리 쥬엘스(Ari Juels)가 1999년 Proof of Work라는 명칭을 사용하면서 널리 알려되어 진다. 앞서 1997년 아담 백(Adam Back)이 개발한 해시캐시가 PoW를 적용한 사례이지만 큰 성과를 보진 못했다. 해시캐시는 대량 발송의 스팸메일을 차단하기 위해 만들어진 일종의 암호화폐이다. 이메일을 보낼 때 우표 대신 해시캐시를 지불하게 한 것이다. 이는 스팸메일을 대량으로 보내기 위해선 해시캐시를 모두 지불해야 하기 때문에 시간과 비용에 큰 부담이 들 수밖에 없고 결국 스팸메일 발송을 포기하게 된다는 아이디어이다. 해시캐시를 받기 위해선 컴퓨터 연산 과정을 통한 일정한 해시(hash)를 찾는 PoW 과정을 거쳐야만 한다. PoW의 특징은 수많은 반복 연산을 수행해 특정 해시값을 찾도록 하면서 대량 메일 발송 자체를 어렵게 하고 있다. 해시캐시는 상업적으로 크게 성공하지 못했지만 결국 2009년 사토시 나카모토가 개발한 비트코인의 결정적 아이디어로 작용하는 역사의 한 페이지를 장식하게 된다. PoW는 암호화폐 시장성 측면에서 최소 가격대 형성을 이룰 수 있게 하고 보안성이 매우 높다는 장점을 가지고 있다. 일명 ‘51% 공격’을 손쉽게 방어할 수 있는 뛰어난 보안성을 자랑한다. 51% 공격이란 공격자가 위변조 등 악의를 가진 행위를 벌이더라도 51% 이상의 컴퓨팅 파워를 확보해야만 성공할 수 있다는 의미이다. 현실적으로 PoW 방식에서 51% 이상을 획득하는 것은 천문학적 비용이 발생할뿐더러 매우 많은 시간을 필요로 하기 때문에 현실적으로 불가능하다. 그러나 높은 마이닝 난이도에 개인 채굴자는 채굴을 전혀 할 수 없는 수준까지 이르자 이를 위해 연산에 필요한 고사양 장비를 도입하게 되는 문제점을 일으키고 있다. 과도한 전력소모로 에너지 낭비가 심각한 사회문제까지 대두되고 있다. [5]


각주

  1. 1.0 1.1 etainclub, 〈[Smart Contract 개발 #8 이더리움 핵심 개요 정리 2]〉, 《steemit》
  2. 엉클 블록〉, 《토큰 포스트》
  3. 이더리움〉, 《위키백과》
  4. 메인체인〉, 《해시넷》
  5. 강희영 기자,〈[암호화폐 초딩 작업증명(PoW) 방식이란?]〉, 《CBC NEWS》, 2019-06-03

참고자료


같이 보기


  의견.png 이 엉클블록 문서는 블록체인 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.