블록생성자 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
67번째 줄: 67번째 줄:
 
===이더리움===
 
===이더리움===
 
[[파일:이더리움 글자.png |썸네일|300픽셀|'''이더리움'''(Ethereum)]]
 
[[파일:이더리움 글자.png |썸네일|300픽셀|'''이더리움'''(Ethereum)]]
[[이더리움]]의 블록체인은 순서가 정렬된 일련의 [[블록]]으로 구성된다. 블록은 메타정보를 담은 [[헤더]]와 일련의 트랜잭션으로 구성된다. 블록은 블록 생성자가 채굴해 생성되고 네트워크의 다른 노드로 브로드캐스트된다. 모든 노드는 일련의 합의 규칙에 따라 수신된 블록을 확인하고, 합의 규칙을 충족시키지 못하는 블록은 네트워크에서 거부된다. [[포크]](fork)는 새로운 규칙 집합이 이전 규칙의 하위 집합일 때 발생하는데, 여전히 이전 규칙을 사용하는 클라이언트도 새 규칙을 사용해 [[클라이언트]]가 만든 블록을 거부하지 않음으로, 블록 생성자(채굴자)만 소프트웨어를 업데이트 하면 된다. [[하드포크]]는 새로운 규칙이 이전의 규칙과 호환하지 않을 때 발생한다. 이 경우 모든 클라이언트가 소프트웨어를 업데이트해야 한다. 하드포크는 언제나 논쟁의 소재인데 사용자 그룹이 소프트웨어 업데이트를 거부하면 체인의 분할이 발생하고 한 체인에서 유효한 블록은 다른 체인에서 유효하지 않게 되기 때문에 지급까지 이더리움은 콘스탄티노플 하드 포크까지 7번의 하드 포크를 겪었고 그중 하나의 포크는 체인 분할로 이어져 [[이더리움 클래식]]을 탄생시켰다.
+
[[이더리움]](Ethereum)의 블록체인은 순서가 정렬된 일련의 [[블록]](Block)으로 구성된다. 블록은 메타정보를 담은 [[헤더]](Header)와 일련의 트랜잭션으로 구성된다. 블록은 블록 생성자가 채굴해 생성되고 네트워크의 다른 노드로 브로드캐스트된다. 모든 노드는 일련의 합의 규칙에 따라 수신된 블록을 확인하고, 합의 규칙을 충족시키지 못하는 블록은 네트워크에서 거부된다. [[포크]](fork)는 새로운 규칙 집합이 이전 규칙의 하위 집합일 때 발생하는데, 여전히 이전 규칙을 사용하는 클라이언트도 새 규칙을 사용해 [[클라이언트]]가 만든 블록을 거부하지 않음으로, 블록 생성자(채굴자)만 소프트웨어를 업데이트 하면 된다. [[하드포크]](hard fork)는 새로운 규칙이 이전의 규칙과 호환하지 않을 때 발생한다. 이 경우 모든 클라이언트가 소프트웨어를 업데이트해야 한다. 하드포크는 언제나 논쟁의 소재인데 사용자 그룹이 소프트웨어 업데이트를 거부하면 체인의 분할이 발생하고 한 체인에서 유효한 블록은 다른 체인에서 유효하지 않게 되기 때문에 지급까지 이더리움은 콘스탄티노플 하드 포크까지 7번의 하드 포크를 겪었고 그중 하나의 포크는 체인 분할로 이어져 [[이더리움 클래식]]을 탄생시켰다.
  
이더리움 네트워크의 [[채굴]] 노드는 [[이더해시]](Ethash)라는 독자적인 [[작업증명]] 알고리즘을 사용해 블록을 생성하고자 경쟁한다. 이더해시 알고리즘에 대한 입력은 [[논스]]라고 하는 임의로 생성된 숫자를 포함하는 블록 헤더 이며, 그 출력은 32바이트의 16진수이다. 논스를 수정하면 출력도 수정되는데, 예측할 수 없는 방식으로 수정된다. 네트워크가 채굴된 블록을 수용하려면 블록 헤더에 대한 이더해시 출력이 네트워크 난이도보다 적어야 하며 또 다른 32바이트의 16진수가 채워질 대상으로 사용되며, 목표 난이도를 상회하는 블록을 브로드캐스트하는 모든 채굴자는 블록 보상을 받는다. 블록 보상은 블록에 [[코인베이스]] 트랜잭션을 포함함으로써 부여되고, 코인 베이스 트랜잭션은 일반적으로 블록의 첫 번째 트랜잭션이며 블록 보상을 블록 생성자가 같은 시간에 한 블록을 생산하고 오직 하나만 주체인에 합류하게 된다. 수용되지 않은 블록을 [[엉클 블록]](uncle block)이라고 하며, 엉클 블록은 체인에 포함되어 더 적은 블록 보상을 받으며, 엉클 블록의 트랜잭션은 상태 트리를 수정하지 않는다. 블록체인의 보안은 네트워크의 해시 파워에 비례하여 네트워크의 해시 파워가 클수록 개별 채굴자의 총 해시 파워는 낮아지고 네트워크 점유 공격이 더 어려워지게 된다. 체인에 엉클 블록을 포함하면 체인의 보안이 강화되어 수락되지 않는 블록을 만드는 데 사용하는 해시 파워가 낭비되지 않기 때문이다. 네트워크 난이도는 지속 조정되며, 난이도 조절로 15~30초마다 블록을 생성하도록 만든다.<ref>키더아이어, 크리스대넌, 〈[http://a.to/1946Efn 이더리움 블록체인 게임 개발]〉, 《도서》, 2019-09-06 </ref> {{자세히|이더리움}}
+
이더리움 네트워크의 [[채굴]](mining) 노드는 [[이더해시]](Ethash)라는 독자적인 [[작업증명]](PoW) 알고리즘을 사용해 블록을 생성하고자 경쟁한다. 이더해시 알고리즘에 대한 입력은 [[논스]](nonce)라고 하는 임의로 생성된 숫자를 포함하는 블록 헤더 이며, 그 출력은 32바이트의 16진수이다. 논스를 수정하면 출력도 수정되는데, 예측할 수 없는 방식으로 수정된다. 네트워크가 채굴된 블록을 수용하려면 블록 헤더에 대한 이더해시 출력이 네트워크 난이도보다 적어야 하며 또 다른 32바이트의 16진수가 채워질 대상으로 사용되며, 목표 난이도를 상회하는 블록을 브로드캐스트하는 모든 채굴자는 블록 보상을 받는다. 블록 보상은 블록에 [[코인베이스]] 트랜잭션을 포함함으로써 부여되고, 코인 베이스 트랜잭션은 일반적으로 블록의 첫 번째 트랜잭션이며 블록 보상을 블록 생성자가 같은 시간에 한 블록을 생산하고 오직 하나만 주체인에 합류하게 된다. 수용되지 않은 블록을 엉클 블록(uncle block)이라고 하며, 엉클 블록은 체인에 포함되어 더 적은 블록 보상을 받으며, 엉클 블록의 트랜잭션은 상태 트리를 수정하지 않는다. 블록체인의 보안은 네트워크의 해시 파워에 비례하여 네트워크의 해시 파워가 클수록 개별 채굴자의 총 해시 파워는 낮아지고 네트워크 점유 공격이 더 어려워지게 된다. 체인에 엉클 블록을 포함하면 체인의 보안이 강화되어 수락되지 않는 블록을 만드는 데 사용하는 해시 파워가 낭비되지 않기 때문이다. 네트워크 난이도는 지속 조정되며, 난이도 조절로 15~30초마다 블록을 생성하도록 만든다.<ref>키더아이어, 크리스대넌, 〈[http://a.to/1946Efn 이더리움 블록체인 게임 개발]〉, 《도서》, 2019-09-06 </ref> {{자세히|이더리움}}
  
 
===합의 알고리즘===
 
===합의 알고리즘===

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)