"고아블록"의 두 판 사이의 차이
leejia1222 (토론 | 기여) |
leejia1222 (토론 | 기여) (→대안) |
||
15번째 줄: | 15번째 줄: | ||
===대안=== | ===대안=== | ||
− | * '''[[비트코인]]''' : 평균적으로 분기가 발생했을 때 2~3개의 블록이 추가된 후에 해결되는데, 비트코인의 경우 일시적으로나마 이러한 분기 상태가 발생할 가능성이 있기 때문에 실제 거래 상황에서는 보통 어떠한 거래가 포함된 블록 이후로 3~5개의 블록이 더 추가된 후에야 그 거래를 최종적으로 유효한 것으로 | + | * '''[[비트코인]]''' : 평균적으로 분기가 발생했을 때 2~3개의 블록이 추가된 후에 해결되는데, 비트코인의 경우 일시적으로나마 이러한 분기 상태가 발생할 가능성이 있기 때문에 실제 거래 상황에서는 보통 어떠한 거래가 포함된 블록 이후로 3~5개의 블록이 더 추가된 후에야 그 거래를 최종적으로 유효한 것으로 확정한다.<ref>한반도, 〈[https://blog.naver.com/mbo8381/221362520497 비트코인과 블록 체인]〉, 《네이버 블로그》, 2018-09-20</ref> 따라서 분기가 발생하더라도 3~5개의 블록이 추가되는 과정에서 분기 상태가 해결되며 결국 하나의 블록체인만 남게 된다.<ref>알라콩, 〈[https://blog.naver.com/v_lovepooh_v/221200836603 블록체인 한 번에 이해하기]〉, 《네이버 블로그》, 2018-02-04</ref> |
* '''[[이더리움]]''' : 이더리움은 이러한 문제를 [[고스트 프로토콜]](Ghost Protocol : Greedy Heaviest Object subTree Protocol)을 사용하여 해결한다.<ref>brownbears, 〈[https://steemit.com/kr/@brownbears/58jo3j 이더리움 - 블록과 블록체인]〉, 《스팀잇》</ref> 고스트 프로토콜은 비트코인의 성능과 보안성 향상을 위해 개발된 합의 알고리즘인데 이더리움은 수정된 고스트 프로토콜을 사용한다. 이더리움은 블록 생성 속도가 빨라 고아블록의 생성 확률이 높아 보안이 취약하다. 이더리움은 이를 수정된 고스트 프로토콜을 통해 해결한다.<ref>이홍석, 〈[https://medium.com/tomak/ethereum-ghost-protocol%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-56590765eb18 Ethereum GHOST Protocol에 대한 이해]〉, 《미디엄》, 2018-07-26</ref> | * '''[[이더리움]]''' : 이더리움은 이러한 문제를 [[고스트 프로토콜]](Ghost Protocol : Greedy Heaviest Object subTree Protocol)을 사용하여 해결한다.<ref>brownbears, 〈[https://steemit.com/kr/@brownbears/58jo3j 이더리움 - 블록과 블록체인]〉, 《스팀잇》</ref> 고스트 프로토콜은 비트코인의 성능과 보안성 향상을 위해 개발된 합의 알고리즘인데 이더리움은 수정된 고스트 프로토콜을 사용한다. 이더리움은 블록 생성 속도가 빨라 고아블록의 생성 확률이 높아 보안이 취약하다. 이더리움은 이를 수정된 고스트 프로토콜을 통해 해결한다.<ref>이홍석, 〈[https://medium.com/tomak/ethereum-ghost-protocol%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4-56590765eb18 Ethereum GHOST Protocol에 대한 이해]〉, 《미디엄》, 2018-07-26</ref> |
2019년 6월 5일 (수) 14:45 판
고아블록(orphan block)(orphan block)은 두 개의 블록이 동시에 승인되었을 때 메인체인으로 연결되지 못해 따로 떨어져 존재하는 블록을 말한다. 스테일블록(stale block) 또는 엉클블록(uncle block)이라고도 한다. 고아블록에도 승인된 거래내역은 담겨져 있기 때문에 트랜잭션이 유실되지는 않는다. 고아블록은 두 명의 채굴자들이 비슷한 시기에 블록을 생성할 때, 혹은 해커가 거래를 교란시키기 위한 공격을 시도할 때 생성된다.
개요
채굴자들은 컴퓨팅 파워만 있다면 누구든지, 언제든지 블록 채굴작업에 참여할 수 있다. 전체 네트워크에 있는 수많은 채굴자들이 블록 채굴작업에 참여하기 때문에, 일정한 시간 간격을 두고 한 두 개의 블록만 채굴할 수 있도록 난이도가 자동으로 조정된다. 따라서 네트워크 내에 있는 두 노드가 동시에 블록을 채굴할 가능성은 매우 낮다.
만약 두 노드가 동시에 블록을 채굴하여 블록체인의 분기가 일어났다고 해도, 한 번 더 두 개의 블록이 동시에 생성될 확률은 적으므로 메인체인은 계속해서 길어지고 더 이상 길어지지 못하고 현재 길이를 유지하는 엉클체인이 생성된다. 결국 길이가 더 긴 메인체인에 더 많은 데이터가 들어있다고 판단되어 엉클체인은 버려지게 된다. 평균적으로 분기가 일어났을 때 2~3개의 블록이 추가된 후에 블록체인의 분기가 해결된다고 한다. 이 엉클체인에 포함된 블록을 고아블록이라고 한다.
위의 그림에서 고아블록인 D에 포함된 트랜잭션이 유실되지는 않는다. 메인체인에 연결된 정상적인 블록 A 또한 같은 시간대에 모여진 트랜잭션에 대해 생성된 블록이기 때문이다. 따라서 고아블록이 되더라도 그 안에 포함된 트랜잭션들은 정상적으로 연결된 블록 A에 똑같이 존재할 확률이 크다. 물론 트랜잭션이 네트워크에 전파되는 시간이 있기 때문에 메인체인에 연결된 블록과 고아블록의 트랜잭션 내용이 정확히 일치한다고는 할 수 없지만 블록 A에 포함되지 못한 트랜잭션은 그 다음 블록인 블록 B, 혹은 블록 C에 존재할 것이다.[1]
문제점과 대안
문제점
고아블록이 많아지면 여러 가지 문제를 일으킨다. 먼저 두 명의 채굴자가 동시에 채굴을 하면 정상적인 블록에 포함된 트랜잭션은 처리가 되는 반면, 고아블록 내에 있는 트랜잭션는 즉시 처리되지 않는다. 또한 고아블록이 연결되어있는 엉클체인의 생성 과정은 불필요한 해시 계산을 위한 컴퓨팅 파워를 쓴 셈이 된다. 고아블록 생성 이후 다음 블록을 생성하면 평균 블록 생성 시간이 더 길어지기 때문에 블록 생성 후의 난이도가 줄어들게 된다는 문제점도 있다. 난이도가 줄어들면 블록 타임이 줄어들게 되고 컴퓨팅 파워가 큰 채굴자의 영향력이 커지기 때문이다.
대안
- 비트코인 : 평균적으로 분기가 발생했을 때 2~3개의 블록이 추가된 후에 해결되는데, 비트코인의 경우 일시적으로나마 이러한 분기 상태가 발생할 가능성이 있기 때문에 실제 거래 상황에서는 보통 어떠한 거래가 포함된 블록 이후로 3~5개의 블록이 더 추가된 후에야 그 거래를 최종적으로 유효한 것으로 확정한다.[2] 따라서 분기가 발생하더라도 3~5개의 블록이 추가되는 과정에서 분기 상태가 해결되며 결국 하나의 블록체인만 남게 된다.[3]
- 이더리움 : 이더리움은 이러한 문제를 고스트 프로토콜(Ghost Protocol : Greedy Heaviest Object subTree Protocol)을 사용하여 해결한다.[4] 고스트 프로토콜은 비트코인의 성능과 보안성 향상을 위해 개발된 합의 알고리즘인데 이더리움은 수정된 고스트 프로토콜을 사용한다. 이더리움은 블록 생성 속도가 빨라 고아블록의 생성 확률이 높아 보안이 취약하다. 이더리움은 이를 수정된 고스트 프로토콜을 통해 해결한다.[5]
각주
- ↑ KIM JUN YONG, 〈블록체인의 정의와 기술 “비전공자도 이해하는 기본적 이해”〉, 《미디엄》, 2018-11-13
- ↑ 한반도, 〈비트코인과 블록 체인〉, 《네이버 블로그》, 2018-09-20
- ↑ 알라콩, 〈블록체인 한 번에 이해하기〉, 《네이버 블로그》, 2018-02-04
- ↑ brownbears, 〈이더리움 - 블록과 블록체인〉, 《스팀잇》
- ↑ 이홍석, 〈Ethereum GHOST Protocol에 대한 이해〉, 《미디엄》, 2018-07-26
참고자료
- 〈블록체인 기본 용어〉, 《오케이코인》, 2018-11-19
- moonddo, 〈블록체인의 분기: 고아블록 (Branch of block chain: Orphan Blocks)〉, 《스팀잇》
- SIMJAE 심심재, 〈블록체인의 분기〉, 《티스토리》, 2018-01-15
- NomadJin, 〈코어 이더리움 프로그래밍#2(Chapter 02)〉, 《깃허브》, 2018-03-13
같이 보기