검수요청.png검수요청.png

"이전블록해시"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(특징)
잔글
 
(사용자 3명의 중간 판 30개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''이전블록해시'''<!--이전 블록 해시, 이전블록 해시, 이전 블록해시-->(previous block hash)는 이전 블록의 주솟값을 알려주는 [[해시]]이다. [[블록헤더]]에 속한다. 이전블록해시 값으로 블록간의 연결이 이뤄진다. [[블록체인은]]은 거래 정보의 묶음인 블록이 실제 체인처럼 연결되어 있지는 않지만 뒤의 블럭이 앞의 블럭을 참조하고 또 뒤의 블럭이 앞의 블럭을 참조하는 모양에서 마치 체인 형태로 연결되어 있는 모습에 블록체인이라고 부르게 되었다.
+
'''이전블록해시'''<!--이전 블록 해시, 이전블록 해시, 이전 블록해시-->(previous block hash)는 이전 블록의 주솟값을 알려주는 [[해시]]이다. [[블록 헤더]]에 속한다. 이전블록해시 값으로 블록 간의 연결이 이뤄진다. [[블록체인]]은 거래 정보의 묶음인 블록이 실제 체인처럼 연결되어 있지는 않지만, 뒤의 블록이 앞의 블록을 참조하고 또 뒤의 블록이 앞의 블록을 참조하는 모양에서 마치 체인 형태로 연결된 모습에 블록체인이라고 부르게 되었다.
  
 
== 개요 ==
 
== 개요 ==
체인(Chain)은 블록들이 [[이전 블록 해시]]값을 이용하여 서로 연관되는 형태로 블록들을 연결시킨다. 이로써 데이터 변조도 방지된다. [[블록체인]]에서 '블록'은 '헤드(Head)'와 '바디(Body)'로 나뉜다. [[블록 바디]]엔 여러 거래 기록이 [[머클트리]](Merkle Tree)로 불리는 구조로 구성된 후 저장된다. 이렇게 하면 블록 바디 전체를 대표하는 암호 해시가 만들어 진다. [[블록 헤드]]엔 블록 바디 암호 해시 등 여러 가지 정보가 기록된다. 블록 헤드 또한 하나의 문서와 같은 만큼 암호 해시를 구할 수 있다. 이 블록 헤드 암호 해시는 다음에 만들어지는 블록에 전달되는데, 다음 블록 입장에서 보면 이는 앞서 주의 깊게 봐둔 이전 블록 헤드 암호 해시다. 즉, 다음 블록 입장에서 보면 내 블록 헤드의 암호 해시가 다음 블록 헤드에 저장되는 이전 블록 헤드 암호 해시가 되는 것이다. 블록체인이란 명칭은 이처럼 "이전 블록 헤드 암호 해시가 다음 블록에 저장되는 행태의 반복"이란 뜻에서 붙여졌다.<ref>박용범, 〈[https://news.samsung.com/kr/author/park-yongbeom 블록체인 기술의 핵(核), ‘암호 해시’ 파헤치기]〉, 《삼성뉴스룸》, 2018-08-09</ref> 각 블록이 이전 블록의 해시 정보를 가지고 있기 때문에 각 블록이 서로 서로 연결되어 있는 구조가 될 수 있다.
+
[[파일:이전블록해시1.png|썸네일|600픽셀|'''이전블록해시''']]
 +
체인(Chain)은 블록들이 [[이전 블록 해시]]값을 이용하여 서로 연관되는 형태로 블록들을 연결한다. 이로써 데이터 변조도 방지된다. [[블록체인]]에서 '블록'은 '헤드(Head)'와 '바디(Body)'로 나뉜다. [[블록 바디]]엔 여러 거래 기록이 [[머클트리]](Merkle Tree)로 불리는 구조로 구성된 후 저장된다. 이렇게 하면 블록 바디 전체를 대표하는 암호 해시가 만들어진다. [[블록 헤드]]엔 블록 바디 암호 해시 등 여러 가지 정보가 기록된다. 블록 헤드 또한 하나의 문서와 같은 만큼 암호 해시를 구할 수 있다. 이 블록 헤드 암호 해시는 다음에 만들어지는 블록에 전달되는데, 다음 블록 입장에서 보면 이는 앞서 주의 깊게 봐둔 이전 블록 헤드 암호 해시다. 즉, 다음 블록 입장에서 보면 내 블록 헤드의 암호 해시가 다음 블록 헤드에 저장되는 이전 블록 헤드 암호 해시가 되는 것이다. 블록체인이란 명칭은 이처럼 "이전 블록 헤드 암호 해시가 다음 블록에 저장되는 행태의 반복"이란 뜻에서 붙여졌다.<ref>박용범, 〈[https://news.samsung.com/kr/author/park-yongbeom 블록체인 기술의 핵(核), ‘암호 해시’ 파헤치기]〉, 《삼성뉴스룸》, 2018-08-09</ref> 각 블록이 이전 블록의 해시 정보를 가지고 있기 때문에 각 블록이 서로서로 연결되어 있는 구조가 될 수 있다.
  
 
== 특징 ==
 
== 특징 ==
이전블록해시는 문자 그대로 바로 앞의 [[블록 해시]](Block Hash)로, 새로 생성되는 블록의 유효성을 검증하는 데 활용된다. 블록해시는 블록의 식별자 역할을 수행한다. 블록 해시는 쉽게 말해 '블록'의 이름 정보라고 할 수 있다. 블록 해시는 [[블록 헤더]] 정보인 [[버전]], [[이전블록해시]], [[머클루트]], [[타임]], [[비트]], [[논스]] 정보를 모두 더하여 합을 구한 후 [[SHA 256]]방식으로 변환된 결과 값이다. 이전블록해시 정보는 새로운 블록이 생성되는 시점에서 바로 이전 블록의 블록 해시 정보를 참조한다. 블록이 생성되는 시점에서 이전 블록 해시 정보를 참조함으로써 블록과 블록이 [[연결 리스트]](Linked list)형태로 연결된 자료구조를 가질 수 있다. 예를 들어 1000번 째 블록의 이전블록해시 정보는 999번 째 블록의 블록 해시 정보를 참조하고 있으며, 999번 째 블록 또한 마찬가지로 이전 블록인 998번 째 블록의 블록 해시 정보를 참조하게 된다. 이러한 방식으로 최초의 블록인 [[제네시스 블록]]까지 모든 블록이 시간의 흐름 순서에 따라 연결되어 있으며, 블록과 블록이 이러한 방식으로 [[체인]] 형태처럼 연결되어 있다고 하여 [[블록체인]]이라고 표현하는 것이다.<ref>keepit, 〈[https://steemit.com/coinkorea/@keepit/keep-t-column-3 KEEP!T Column 비트코인 뽀개기(3편)]〉, 《스팀잇》, 2018-04-26</ref> 블록체인은 결국 이전블록해시가 다음 블록의 한 구성요소가 되는 방식으로 체인처럼 연결되는 것으로 해시값이 맞지 않으면 다음 블록으로 자격을 갖추지 못하게 된다.
+
[[이전블록해시]]는 문자 그대로 바로 앞의 [[블록 해시]](Block Hash)로, 새로 생성되는 블록의 유효성을 검증하는 데 활용된다. 블록 해시는 블록의 식별자 역할을 수행한다. 블록 해시는 쉽게 말해 '블록'의 이름 정보라고 할 수 있다. 블록 해시는 [[블록 헤더]] 정보인 [[버전]], [[이전블록해시]], [[머클루트]], [[타임]], [[비트]], [[논스]] 정보를 모두 더하여 합을 구한 후 [[SHA 256]]방식으로 변환된 결과 값이다. 이전블록해시 정보는 새로운 블록이 생성되는 시점에서 바로 이전 블록의 블록 해시 정보를 참조한다. 블록이 생성되는 시점에서 이전 블록 해시 정보를 참조함으로써 블록과 블록이 [[연결리스트]](Linked list)형태로 연결된 자료구조를 가질 수 있다. 예를 들어 1000번째 블록의 이전블록해시 정보는 999번째 블록의 블록 해시 정보를 참조하고 있으며, 999번째 블록 또한 마찬가지로 이전 블록인 998번째 블록의 블록 해시 정보를 참조하게 된다. 이러한 방식으로 최초의 블록인 [[제네시스 블록]]까지 모든 블록이 시간의 흐름 순서에 따라 연결되어 있으며, 블록과 블록이 이러한 방식으로 [[체인]] 형태처럼 연결되어 있다고 하여 [[블록체인]]이라고 표현하는 것이다.<ref>keepit, 〈[https://steemit.com/coinkorea/@keepit/keep-t-column-3 KEEP!T Column 비트코인 뽀개기(3편)]〉, 《스팀잇》, 2018-04-26</ref> . 제네시스 블록은 블록체인의 첫 번째 블록이므로 이전블록해시를 포함할 필요가 없다. 블록체인은 결국 이전블록해시가 다음 블록의 한 구성요소가 되는 방식으로 체인처럼 연결되는 것으로 해시값이 맞지 않으면 다음 블록으로 자격을 갖추지 못하게 된다.
  
 
블록 헤더는 80 바이트이다.
 
블록 헤더는 80 바이트이다.
14번째 줄: 15번째 줄:
 
* 비트 : 4 바이트
 
* 비트 : 4 바이트
 
* 논스 : 4 바이트
 
* 논스 : 4 바이트
머클 트리는 블록의 모든 [[트랜잭션]][[해시]]하고 비트 필드는 헤더의 대상 해시를 계산하는데 사용되며, 논스는 주어진 머클 트리에서 새 블록 헤더를 생성하는 카운터로 사용된다.<ref>alcio, 〈[http://a.to/19a72FC Is the hash of the previous block included in the block header?]〉, 《StackExchange》, 2017-07-11</ref>
+
 
 +
=== 장점 ===
 +
[[비트코인]]은 블록체인을 이용해 거래장부를 저장하고 관리한다. 비트코인은 거래 내역을 위·변조하려는 악의적인 해킹에서도 자유롭다. 첫 번째 이유는 블록체인의 구조 때문이다. 블록체인은 새로운 블록이 생성될 때 이전의 블록이 가진 고유한 값(해시값)을 저장하게 돼 있다. 즉 해시값을 통해 모든 블록이 연결되는 셈이다. 만약 누군가 거래 내역을 악의적으로 변조한다면 그 거래 내역이 담긴 블록의 해시값이 바뀔 것이고 그 해시값을 저장하고 있는 다음 블록의 해시 값도 변경된다. 해킹된 블록 이후의 모든 블록 정보가 연쇄적으로 다 바뀌어야 하는데 이는 대단히 어려운 일이다. 더구나 블록체인 장부는 모든 사용자에게 공유돼 있다. 한 개인이 가진 거래장부가 바뀐다고 하더라도 이미 수많은 사용자들이 동일한 장부를 공유하고 있기 때문에 바로 원래대로 복구할 수 있다. 즉 거래 내역을 바꾸고자 한다면 전체 사용자의 과반수 이상의 장부를 동시에 수정해야 한다.<ref>송은정 기자, 〈[http://www.seoulwire.com/news/articleView.html?idxno=122550 4차 산업혁명 중심 블록체인 공공서비스에 접목…안전한가?]〉, 《서울와이어》, 2019-05-02</ref> 이것은 큰 네트워크를 가진 곳에서는 사실상 불가능 한 것이다.
 +
 
 +
=== 단점 ===
 +
하나의 거래가 발생시 이를 즉시 처리하지 못하고 다수의 거래내역이 모여 하나의 블록을 형성할때 까지 기다려야 하기에 처리속도가 느리다. 블록을 형성한 이후에도 다른 노드들에게 이를 검증받아야 하기에 오랜시간이 소요된다. 블록체인을 이용한 암호화폐의 경우 '화폐'의 역할을 하려면 신속해야 하는 데 이런 점 때문에 실생활에서 결제수단으로서 이용하기 어렵다.<ref>장경재, 〈[http://a.to/195eGx5 [Makers Basic 11] 블록체인의 문제점과 대안1]〉, 《Medium》, 2018-10-06</ref>
 +
 
 +
== 해결방안 ==
 +
블록체인의 느린 속도와 [[확장성]] 문제를 해결하기 위해 일부 기능을 개선한 새로운 알고리즘이 출현하고 있다. [[라이트닝 네트워크]](Lightning network)는 기존 블록체인의 느린 속도를 해결하고 번개처럼 빠른 속도를 구현하기 위해, 개별 거래를 별도의 채널에서 처리한 후 그 결과만 블록체인에 기록하는 방식으로 작동하는 알고리즘이다. 이와 유사한 방식으로 [[플라즈마]](plasma) 알고리즘이 개발되었다. 모든 거래내역을 [[메인체인]](main chain)에서 처리하지 않고 별도의 [[차일드체인]](child chain)에서 처리한 후 결과만 메인체인에 전달하는 방식으로 작동하는 알고리즘이다. 플라즈마를 개량하여 [[플라즈마캐시]](plasma cash) 알고리즘이 등장했다. 기존처럼 모든 사용자가 모든 블록을 다운로드해서 검증하지 않고, 개별 사용자가 관심을 가진 특정 코인이 포함된 블록만 추적함으로써 처리 속도를 향상시킨 알고리즘이다. 이런 새로운 알고리즘의 등장으로 기존 블록체인의 느린 속도 문제를 개선하고 좀 더 빠른 속도를 기대할 수 있게 되었다.<ref>해시넷, 〈[https://blog.naver.com/hashnet/221348593041 (해시넷 블록체인 시리즈 4) 블록체인의 문제점과 대안 (작업증명 문제, 체인 알고리즘 문제, 오라클 문제)]〉, 《네이버 블로그》, 2018-08-29</ref>
  
 
{{각주}}
 
{{각주}}
  
 
== 참고자료 ==
 
== 참고자료 ==
* yahweh87, 〈[https://steemit.com/kr/@yahweh87/3 #3- 블록체인 기술 및 블록에 관한 정의]〉, 《스팀잇》, 2018-02-07
 
 
* 랜딩블록, 〈[https://cafe.naver.com/tang2011/4627450 “트랜잭션(Transaction)”, “블록(Block)”, “체인(Chain)”]〉, 《네이버 카페》, 2019-03-20
 
* 랜딩블록, 〈[https://cafe.naver.com/tang2011/4627450 “트랜잭션(Transaction)”, “블록(Block)”, “체인(Chain)”]〉, 《네이버 카페》, 2019-03-20
 
* 불곰, 〈[https://brownbears.tistory.com/371 블록체인 기술 정의]〉, 《티스토리》, 2018-07-08
 
* 불곰, 〈[https://brownbears.tistory.com/371 블록체인 기술 정의]〉, 《티스토리》, 2018-07-08
 +
* 이우찬 기자, 〈[http://www.newstomato.com/ReadNews.aspx?no=900471 (블록체인ABC)블록해시와 논스…블록의 구성 요소들]〉, 《뉴스토마토》, 2019-06-10
 +
* 권정수 기자, 〈[http://www.itdaily.kr/news/articleView.html?idxno=95038 [특별기획] 보안 업계, 블록체인 ‘기술’에 주목한다]〉, 《IT데일리》, 2019-05-31
 +
* 해시넷, 〈[https://blog.naver.com/hashnet/221348593041 (해시넷 블록체인 시리즈 4) 블록체인의 문제점과 대안 (작업증명 문제, 체인 알고리즘 문제, 오라클 문제)]〉, 《네이버 블로그》, 2018-08-29
 +
* alcio, 〈[http://a.to/19a72FC Is the hash of the previous block included in the block header?]〉, 《StackExchange》, 2017-07-11
 +
* yahweh87, 〈[https://steemit.com/kr/@yahweh87/3 #3- 블록체인 기술 및 블록에 관한 정의]〉, 《스팀잇》, 2018-02-07
 +
* Joseph Axisa, 〈[https://thirdeyemalta.com/blockchain-what-the-faq-is-it/ Blockchain: what the FAQ is it?]〉, 《TheThirdEye》, 2019-07-31
  
 
== 같이 보기 ==
 
== 같이 보기 ==
28번째 줄: 42번째 줄:
 
* [[블록헤더]]
 
* [[블록헤더]]
  
{{블록체인 기술|토막글}}
+
{{블록체인 기술|검토 필요}}

2020년 8월 14일 (금) 09:22 기준 최신판

이전블록해시(previous block hash)는 이전 블록의 주솟값을 알려주는 해시이다. 블록 헤더에 속한다. 이전블록해시 값으로 블록 간의 연결이 이뤄진다. 블록체인은 거래 정보의 묶음인 블록이 실제 체인처럼 연결되어 있지는 않지만, 뒤의 블록이 앞의 블록을 참조하고 또 뒤의 블록이 앞의 블록을 참조하는 모양에서 마치 체인 형태로 연결된 모습에 블록체인이라고 부르게 되었다.

개요[편집]

이전블록해시

체인(Chain)은 블록들이 이전 블록 해시값을 이용하여 서로 연관되는 형태로 블록들을 연결한다. 이로써 데이터 변조도 방지된다. 블록체인에서 '블록'은 '헤드(Head)'와 '바디(Body)'로 나뉜다. 블록 바디엔 여러 거래 기록이 머클트리(Merkle Tree)로 불리는 구조로 구성된 후 저장된다. 이렇게 하면 블록 바디 전체를 대표하는 암호 해시가 만들어진다. 블록 헤드엔 블록 바디 암호 해시 등 여러 가지 정보가 기록된다. 블록 헤드 또한 하나의 문서와 같은 만큼 암호 해시를 구할 수 있다. 이 블록 헤드 암호 해시는 다음에 만들어지는 블록에 전달되는데, 다음 블록 입장에서 보면 이는 앞서 주의 깊게 봐둔 이전 블록 헤드 암호 해시다. 즉, 다음 블록 입장에서 보면 내 블록 헤드의 암호 해시가 다음 블록 헤드에 저장되는 이전 블록 헤드 암호 해시가 되는 것이다. 블록체인이란 명칭은 이처럼 "이전 블록 헤드 암호 해시가 다음 블록에 저장되는 행태의 반복"이란 뜻에서 붙여졌다.[1] 각 블록이 이전 블록의 해시 정보를 가지고 있기 때문에 각 블록이 서로서로 연결되어 있는 구조가 될 수 있다.

특징[편집]

이전블록해시는 문자 그대로 바로 앞의 블록 해시(Block Hash)로, 새로 생성되는 블록의 유효성을 검증하는 데 활용된다. 블록 해시는 블록의 식별자 역할을 수행한다. 블록 해시는 쉽게 말해 '블록'의 이름 정보라고 할 수 있다. 블록 해시는 블록 헤더 정보인 버전, 이전블록해시, 머클루트, 타임, 비트, 논스 정보를 모두 더하여 합을 구한 후 SHA 256방식으로 변환된 결과 값이다. 이전블록해시 정보는 새로운 블록이 생성되는 시점에서 바로 이전 블록의 블록 해시 정보를 참조한다. 블록이 생성되는 시점에서 이전 블록 해시 정보를 참조함으로써 블록과 블록이 연결리스트(Linked list)형태로 연결된 자료구조를 가질 수 있다. 예를 들어 1000번째 블록의 이전블록해시 정보는 999번째 블록의 블록 해시 정보를 참조하고 있으며, 999번째 블록 또한 마찬가지로 이전 블록인 998번째 블록의 블록 해시 정보를 참조하게 된다. 이러한 방식으로 최초의 블록인 제네시스 블록까지 모든 블록이 시간의 흐름 순서에 따라 연결되어 있으며, 블록과 블록이 이러한 방식으로 체인 형태처럼 연결되어 있다고 하여 블록체인이라고 표현하는 것이다.[2] . 제네시스 블록은 블록체인의 첫 번째 블록이므로 이전블록해시를 포함할 필요가 없다. 블록체인은 결국 이전블록해시가 다음 블록의 한 구성요소가 되는 방식으로 체인처럼 연결되는 것으로 해시값이 맞지 않으면 다음 블록으로 자격을 갖추지 못하게 된다.

블록 헤더는 80 바이트이다.

  • 버전 번호 : 4 바이트
  • 이전블록헤더 해시 : 32 바이트
  • 머클 루트 : 32 바이트
  • 타임 스탬프 : 4 바이트
  • 비트 : 4 바이트
  • 논스 : 4 바이트

장점[편집]

비트코인은 블록체인을 이용해 거래장부를 저장하고 관리한다. 비트코인은 거래 내역을 위·변조하려는 악의적인 해킹에서도 자유롭다. 첫 번째 이유는 블록체인의 구조 때문이다. 블록체인은 새로운 블록이 생성될 때 이전의 블록이 가진 고유한 값(해시값)을 저장하게 돼 있다. 즉 해시값을 통해 모든 블록이 연결되는 셈이다. 만약 누군가 거래 내역을 악의적으로 변조한다면 그 거래 내역이 담긴 블록의 해시값이 바뀔 것이고 그 해시값을 저장하고 있는 다음 블록의 해시 값도 변경된다. 해킹된 블록 이후의 모든 블록 정보가 연쇄적으로 다 바뀌어야 하는데 이는 대단히 어려운 일이다. 더구나 블록체인 장부는 모든 사용자에게 공유돼 있다. 한 개인이 가진 거래장부가 바뀐다고 하더라도 이미 수많은 사용자들이 동일한 장부를 공유하고 있기 때문에 바로 원래대로 복구할 수 있다. 즉 거래 내역을 바꾸고자 한다면 전체 사용자의 과반수 이상의 장부를 동시에 수정해야 한다.[3] 이것은 큰 네트워크를 가진 곳에서는 사실상 불가능 한 것이다.

단점[편집]

하나의 거래가 발생시 이를 즉시 처리하지 못하고 다수의 거래내역이 모여 하나의 블록을 형성할때 까지 기다려야 하기에 처리속도가 느리다. 블록을 형성한 이후에도 다른 노드들에게 이를 검증받아야 하기에 오랜시간이 소요된다. 블록체인을 이용한 암호화폐의 경우 '화폐'의 역할을 하려면 신속해야 하는 데 이런 점 때문에 실생활에서 결제수단으로서 이용하기 어렵다.[4]

해결방안[편집]

블록체인의 느린 속도와 확장성 문제를 해결하기 위해 일부 기능을 개선한 새로운 알고리즘이 출현하고 있다. 라이트닝 네트워크(Lightning network)는 기존 블록체인의 느린 속도를 해결하고 번개처럼 빠른 속도를 구현하기 위해, 개별 거래를 별도의 채널에서 처리한 후 그 결과만 블록체인에 기록하는 방식으로 작동하는 알고리즘이다. 이와 유사한 방식으로 플라즈마(plasma) 알고리즘이 개발되었다. 모든 거래내역을 메인체인(main chain)에서 처리하지 않고 별도의 차일드체인(child chain)에서 처리한 후 결과만 메인체인에 전달하는 방식으로 작동하는 알고리즘이다. 플라즈마를 개량하여 플라즈마캐시(plasma cash) 알고리즘이 등장했다. 기존처럼 모든 사용자가 모든 블록을 다운로드해서 검증하지 않고, 개별 사용자가 관심을 가진 특정 코인이 포함된 블록만 추적함으로써 처리 속도를 향상시킨 알고리즘이다. 이런 새로운 알고리즘의 등장으로 기존 블록체인의 느린 속도 문제를 개선하고 좀 더 빠른 속도를 기대할 수 있게 되었다.[5]

각주[편집]

  1. 박용범, 〈블록체인 기술의 핵(核), ‘암호 해시’ 파헤치기〉, 《삼성뉴스룸》, 2018-08-09
  2. keepit, 〈KEEP!T Column 비트코인 뽀개기(3편)〉, 《스팀잇》, 2018-04-26
  3. 송은정 기자, 〈4차 산업혁명 중심 블록체인 공공서비스에 접목…안전한가?〉, 《서울와이어》, 2019-05-02
  4. 장경재, 〈[Makers Basic 11 블록체인의 문제점과 대안1]〉, 《Medium》, 2018-10-06
  5. 해시넷, 〈(해시넷 블록체인 시리즈 4) 블록체인의 문제점과 대안 (작업증명 문제, 체인 알고리즘 문제, 오라클 문제)〉, 《네이버 블로그》, 2018-08-29

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 이전블록해시 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.