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

"역사증명"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(특징)
 
(사용자 3명의 중간 판 9개는 보이지 않습니다)
1번째 줄: 1번째 줄:
 +
[[파일:솔라나 글자.png|썸네일|300픽셀|'''[[솔라나]]'''(SOLANA)]]
 +
 +
'''역사증명'''<!--역사 증명-->(PoH; Proof of History)은 [[노드]](검증자) 간 합의에 걸리는 시간을 단축한 [[알고리즘]]이다.
 +
 +
== 개요 ==
 
[[파일:역사증명 타임 스탬프.png|썸네일|역사증명 타임 스탬프]]
 
[[파일:역사증명 타임 스탬프.png|썸네일|역사증명 타임 스탬프]]
'''역사증명'''(PoH; Proof of History)은 노드(검증자) 간 합의에 걸리는 시간을 단축한 알고리즘이다.
 
  
== 개요 ==
+
역사증명 합의 알고리즘은 [[솔라나]](Solana)의 대표적인 기술로 블록체인 네트워크상에서 노드들이 거래가 언제 발생했는지 함께 증명하고 합의함으로써 거래내역을 저장한다. 솔라나는 이 과정에서 [[검증가능지연함수]](VDF; Verifiable Delay Function)를 도입해서 합의를 단순화한다. 또한, 거래내역을 암호화할 때 시간 순서에 대한 정보를 추가함으로써 검증자들이 각각의 거래를 일일이 확인하지 않고도 합의할 수 있다. 합의에 걸리는 시간이 단축되기에 거래 처리 속도는 빨라지며, 속도가 빨라지기에 확장성도 늘어나고 블록체인의 성능 자체가 향상된다.
역사증명 합의 알고리즘은 솔라나(Solana)의 대표적인 기술로 블록체인 네트워크 상에서 노드들이 거래가 언제 발생했는지 함께 증명하고 합의함으로써 거래내역을 저장한다. 솔라나는 이 과정에서 '검증 가능한 지연 함수'를 도입해서 합의를 단순화한다. 또한, 거래내역을 암호화할 때 시간 순서에 대한 정보를 추가함으로써 검증자들이 각각의 거래를 일일이 확인하지 않고도 합의할 수 있다. 합의에 걸리는 시간이 단축되기에 거래 처리 속도는 빨라지며, 속도가 빨라지기에 확장성도 늘어나고 블록체인의 성능 자체가 향상된다.
+
 
 
== 특징 ==
 
== 특징 ==
 
* '''역사적 기록 생성'''
 
* '''역사적 기록 생성'''
 
[[파일:역사증명 시퀀스 메시지 기록.png|썸네일|역사증명 시퀀스 메시지 기록]]
 
[[파일:역사증명 시퀀스 메시지 기록.png|썸네일|역사증명 시퀀스 메시지 기록]]
: 역사증명을 사용하면 특정 순간에 사건이 일어났음을 증명하는 역사적 기록을 만들 수 있다. 역사증명이란 고주파수 검증가능지연함수(VDF; Verifiable Delay Function)이다. 검증가능지연함수는 평가하기 위해 특정한 수의 순차적 단계가 필요하지만 효율적이고 공개적으로 검증될 수 있는 고유한 출력을 생성한다. 우리의 구체적인 구현은 다음 입력으로 사용된 이전 출력과 함께 연속적으로 자기 위로 흐르는 순차적인 사전 이미지 내성 해시를 사용하며, 카운트와 전류 출력이 주기적으로 기록되어 SHA-256 해시함수의 경우 <math>2^{128}</math> 코어를 이용한 무차별 대입 공격 없이는 프로세스를 병렬화가 불가능하다. 이후, 생성된 각 카운터 사이에 실시간으로 전달되어 각 카운터의 기록된 순서가 실시간과 동일하다는 것을 확인할 수 있다.
+
: 역사증명을 사용하면 특정 순간에 사건이 일어났음을 증명하는 역사적 기록을 만들 수 있다. 역사증명이란 고주파수 검증가능지연함수이다. 검증가능지연함수는 평가하기 위해 특정한 수의 순차적 단계가 필요하지만, 효율적이고 공개적으로 검증될 수 있는 고유한 출력을 생성한다. 우리의 구체적인 구현은 다음 입력으로 사용된 이전 출력과 함께 연속적으로 자기 위로 흐르는 순차적인 사전 이미지 내성 해시를 사용하며, 카운트와 전류 출력이 주기적으로 기록되어 [[SHA-256]] 해시함수의 경우 <math>2^{128}</math> 코어를 이용한 무차별 대입 공격 없이는 프로세스 병렬화가 불가능하다. 이후, 생성된 각 카운터 사이에 실시간으로 전달되어 각 카운터의 기록된 순서가 실시간과 동일하다는 것을 확인할 수 있다.
 
[[파일:역사증명 시간의 하한.png|썸네일|역사증명 시간의 하한]]  
 
[[파일:역사증명 시간의 하한.png|썸네일|역사증명 시간의 하한]]  
 
* '''시간의 상한'''
 
* '''시간의 상한'''
: 데이터의 해시를 이전 발생 상태에 추가하여 시퀀스에 데이터를 삽입할 수 있다. 상태, 입력 데이터, 카운트가 모두 게시된다. 입력을 추가하면 미래의 모든 출력이 예측할 수 없이 변경된다. 병렬화는 여전히 불가능하며, 해시함수가 사전 이미지 및 충돌 방지 기능인 경우 향후 원하는 해시를 생성하는 입력을 작성하거나 대체할 수 있는 동일한 이력을 작성할 수 없다. 또한, 두 개의 추가 작업간에 시간이 지났다는 것을 증명할 수 있으며, 데이터가 추가되기 전에 언젠가 생성되었음을 증명할 수 있다.
+
: 데이터의 해시를 이전 발생 상태에 추가하여 시퀀스에 데이터를 삽입할 수 있다. 상태, 입력 데이터, 카운트가 모두 게시된다. 입력을 추가하면 미래의 모든 출력이 예측할 수 없이 변경된다. 병렬화는 여전히 불가능하며, 해시함수가 사전 이미지 및 충돌 방지 기능인 경우 향후 원하는 해시를 생성하는 입력을 작성하거나 대체할 수 있는 동일한 이력을 작성할 수 없다. 또한, 두 개의 추가 작업 간에 시간이 지났다는 것을 증명할 수 있으며, 데이터가 추가되기 전에 언젠가 생성되었음을 증명할 수 있다.
 
* '''시간의 하한'''
 
* '''시간의 하한'''
: 역사증명에 대한 입력은 역사의 증거 그 자체에 대한 참조를 가질 수 있다. 역참조는 사용자 서명이 있는 서명된 메시지의 일부로 삽입될 수 있으므로 사용자 개인키 없이는 수정할 수 없다. 이 메시지에는 '''0xdeadc0de''' 해시가 포함되어 있으므로 카운트 '''5101448069912'''가 생성된 후에 생성되었다는 것을 알 수 있다. 그러나 이 메시지는 역사증명 스트림에도 다시 삽입된다.
+
: 역사증명에 대한 입력은 역사의 증거 그 자체에 대한 참조를 가질 수 있다. 역참조는 사용자 서명이 있는 서명된 메시지의 일부로 삽입될 수 있어 사용자 개인키 없이는 수정할 수 없다. 이 메시지에는 '''0xdeadc0de''' 해시가 포함되어 있어 카운트 '''5101448069912'''가 생성된 후에 생성되었다는 것을 알 수 있다. 그러나 이 메시지는 역사증명 스트림에도 다시 삽입된다.
 
[[파일:역사증명 병렬 검증.png|썸네일|병렬 검증]]
 
[[파일:역사증명 병렬 검증.png|썸네일|병렬 검증]]
* '''확인'''
+
* '''검증'''
: 기록된 시퀀스는 단일 CPU 코어에서만 생성될 수 있지만 출력은 병렬로 확인할 수 있다. 기록된 각 슬라이스는 생성에 소요된 <math>\frac{1}{\text{코 어  수 }}</math> 시간으로 별도의 코어에서 처음부터 끝까지 확인할 수 있다. 따라서 4,000개의 코어가 있는 최신 GPU는 0.25ms로 1초를 확인할 수 있다.
+
: 기록된 시퀀스는 단일 [[CPU]] 코어에서만 생성될 수 있지만 출력은 병렬로 확인할 수 있다. 기록된 각 슬라이스는 생성에 소요된 <math>\frac{1}{\text{코 어  수 }}</math> 시간으로 별도의 코어에서 처음부터 끝까지 확인할 수 있다. 따라서 4,000개의 코어가 있는 최신 [[GPU]]는 0.25ms로 1초를 확인할 수 있다.
 +
 
 +
== 활용 ==
 +
[[솔라나]](Solana)는 블록체인의 확장성을 극복할 수 있는 기술인 [[샤딩]] 없이 자체 알고리즘인 역사증명을 기반으로 빠른 거래 처리 속도를 구현하고자 하는 프로젝트다. 역사증명 알고리즘을 통해 네트워크의 노드인 데이터 검증자가 [[네트워크]]의 모든 사건을 직접 확인하지 않고도 사건의 시간과 순서를 확인한다. 이를 통해 일반적인 블록체인과 달리 데이터를 병렬 처리하여 확장성을 극복할 수 있다는 것이 특징이다.<ref>이선영 기자, 〈[http://www.coincatmedia.com/4699 솔라나, 멀티코인 캐피탈 등에서 230억 원 규모 투자 유치 성공]〉, 《코인캣미디어》, 2019-08-22</ref> 솔라나는 [[코인베이스]](Coinbase)의 상장 검토 대상 프로젝트로 선정된 바 있으며, 발표 당시 [[폴카닷]](Polkadot), [[애벌런치]](Avalanche)를 포함한 총 17개의 유망 프로젝트들이 상장 검토 목록에 오른 바 있다.<ref>gyeonghun.lee, 〈[https://kr.thenodist.com/articles/42073 블록체인 플랫폼 솔라나, 코인베이스 커스터디 서비스 지원 프로젝트로 선정]〉, 《더노디스트》, 2019-10-11</ref> 솔라나는 역사증명 덕분에 객관성을 확보할 수 있다. 경과시간이 블록 자체에 임베드되고 검증인들이 역사증명 검증을 병렬화를 통해 역사증명 초기 버전보다 최소 천 배 빠르게 할 수 있기 때문에, 새 노드는 대역 외 정보없이 해당 체인의 정합성을 창조시부터 현재 시점까지 검증할 수 있다.<ref>Kyle Samani, 〈[https://multicoin.capital/ko/2019/07/30/the-world-computer-should-be-logically-centralized/ 세계 컴퓨터가 논리적으로 중앙화되어야 하는 이유]〉, 《멀티코인캐피탈》, 2019-07-30</ref>
  
 
{{각주}}
 
{{각주}}
 +
 
== 참고자료 ==
 
== 참고자료 ==
 
* 비트라관리자, 〈[http://bitlife.co.kr/bbs/board.php?bo_table=review&wr_id=13 (SOLANA) 솔라나! 막강한 호재가 두 개나?!!]〉, 《비트라이프》, 2019-10-22
 
* 비트라관리자, 〈[http://bitlife.co.kr/bbs/board.php?bo_table=review&wr_id=13 (SOLANA) 솔라나! 막강한 호재가 두 개나?!!]〉, 《비트라이프》, 2019-10-22
 
* Anatoly Yakovenko, 〈[https://medium.com/solana-labs/proof-of-history-a-clock-for-blockchain-cf47a61a9274 Proof of History: A Clock for Blockchain]〉, 《미디움》, 2018-04-19
 
* Anatoly Yakovenko, 〈[https://medium.com/solana-labs/proof-of-history-a-clock-for-blockchain-cf47a61a9274 Proof of History: A Clock for Blockchain]〉, 《미디움》, 2018-04-19
 +
* 이선영 기자, 〈[http://www.coincatmedia.com/4699 솔라나, 멀티코인 캐피탈 등에서 230억원 규모 투자 유치 성공]〉, 《코인캣미디어》, 2019-08-22
 +
* gyeonghun.lee, 〈[https://kr.thenodist.com/articles/42073 블록체인 플랫폼 솔라나, 코인베이스 커스터디 서비스 지원 프로젝트로 선정]〉, 《더노디스트》, 2019-10-11
 +
* Kyle Samani, 〈[https://multicoin.capital/ko/2019/07/30/the-world-computer-should-be-logically-centralized/ 세계 컴퓨터가 논리적으로 중앙화되어야 하는 이유]〉, 《멀티코인캐피탈》, 2019-07-30
  
 
== 같이 보기 ==
 
== 같이 보기 ==
 
* [[솔라나]]
 
* [[솔라나]]
  
{{합의 알고리즘|토막글}}
+
{{합의 알고리즘|검토 필요}}

2021년 10월 19일 (화) 14:23 기준 최신판

솔라나(SOLANA)

역사증명(PoH; Proof of History)은 노드(검증자) 간 합의에 걸리는 시간을 단축한 알고리즘이다.

개요[편집]

역사증명 타임 스탬프

역사증명 합의 알고리즘은 솔라나(Solana)의 대표적인 기술로 블록체인 네트워크상에서 노드들이 거래가 언제 발생했는지 함께 증명하고 합의함으로써 거래내역을 저장한다. 솔라나는 이 과정에서 검증가능지연함수(VDF; Verifiable Delay Function)를 도입해서 합의를 단순화한다. 또한, 거래내역을 암호화할 때 시간 순서에 대한 정보를 추가함으로써 검증자들이 각각의 거래를 일일이 확인하지 않고도 합의할 수 있다. 합의에 걸리는 시간이 단축되기에 거래 처리 속도는 빨라지며, 속도가 빨라지기에 확장성도 늘어나고 블록체인의 성능 자체가 향상된다.

특징[편집]

  • 역사적 기록 생성
역사증명 시퀀스 메시지 기록
역사증명을 사용하면 특정 순간에 사건이 일어났음을 증명하는 역사적 기록을 만들 수 있다. 역사증명이란 고주파수 검증가능지연함수이다. 검증가능지연함수는 평가하기 위해 특정한 수의 순차적 단계가 필요하지만, 효율적이고 공개적으로 검증될 수 있는 고유한 출력을 생성한다. 우리의 구체적인 구현은 다음 입력으로 사용된 이전 출력과 함께 연속적으로 자기 위로 흐르는 순차적인 사전 이미지 내성 해시를 사용하며, 카운트와 전류 출력이 주기적으로 기록되어 SHA-256 해시함수의 경우 코어를 이용한 무차별 대입 공격 없이는 프로세스 병렬화가 불가능하다. 이후, 생성된 각 카운터 사이에 실시간으로 전달되어 각 카운터의 기록된 순서가 실시간과 동일하다는 것을 확인할 수 있다.
역사증명 시간의 하한
  • 시간의 상한
데이터의 해시를 이전 발생 상태에 추가하여 시퀀스에 데이터를 삽입할 수 있다. 상태, 입력 데이터, 카운트가 모두 게시된다. 입력을 추가하면 미래의 모든 출력이 예측할 수 없이 변경된다. 병렬화는 여전히 불가능하며, 해시함수가 사전 이미지 및 충돌 방지 기능인 경우 향후 원하는 해시를 생성하는 입력을 작성하거나 대체할 수 있는 동일한 이력을 작성할 수 없다. 또한, 두 개의 추가 작업 간에 시간이 지났다는 것을 증명할 수 있으며, 데이터가 추가되기 전에 언젠가 생성되었음을 증명할 수 있다.
  • 시간의 하한
역사증명에 대한 입력은 역사의 증거 그 자체에 대한 참조를 가질 수 있다. 역참조는 사용자 서명이 있는 서명된 메시지의 일부로 삽입될 수 있어 사용자 개인키 없이는 수정할 수 없다. 이 메시지에는 0xdeadc0de 해시가 포함되어 있어 카운트 5101448069912가 생성된 후에 생성되었다는 것을 알 수 있다. 그러나 이 메시지는 역사증명 스트림에도 다시 삽입된다.
병렬 검증
  • 검증
기록된 시퀀스는 단일 CPU 코어에서만 생성될 수 있지만 출력은 병렬로 확인할 수 있다. 기록된 각 슬라이스는 생성에 소요된 시간으로 별도의 코어에서 처음부터 끝까지 확인할 수 있다. 따라서 4,000개의 코어가 있는 최신 GPU는 0.25ms로 1초를 확인할 수 있다.

활용[편집]

솔라나(Solana)는 블록체인의 확장성을 극복할 수 있는 기술인 샤딩 없이 자체 알고리즘인 역사증명을 기반으로 빠른 거래 처리 속도를 구현하고자 하는 프로젝트다. 역사증명 알고리즘을 통해 네트워크의 노드인 데이터 검증자가 네트워크의 모든 사건을 직접 확인하지 않고도 사건의 시간과 순서를 확인한다. 이를 통해 일반적인 블록체인과 달리 데이터를 병렬 처리하여 확장성을 극복할 수 있다는 것이 특징이다.[1] 솔라나는 코인베이스(Coinbase)의 상장 검토 대상 프로젝트로 선정된 바 있으며, 발표 당시 폴카닷(Polkadot), 애벌런치(Avalanche)를 포함한 총 17개의 유망 프로젝트들이 상장 검토 목록에 오른 바 있다.[2] 솔라나는 역사증명 덕분에 객관성을 확보할 수 있다. 경과시간이 블록 자체에 임베드되고 검증인들이 역사증명 검증을 병렬화를 통해 역사증명 초기 버전보다 최소 천 배 빠르게 할 수 있기 때문에, 새 노드는 대역 외 정보없이 해당 체인의 정합성을 창조시부터 현재 시점까지 검증할 수 있다.[3]

각주[편집]

  1. 이선영 기자, 〈솔라나, 멀티코인 캐피탈 등에서 230억 원 규모 투자 유치 성공〉, 《코인캣미디어》, 2019-08-22
  2. gyeonghun.lee, 〈블록체인 플랫폼 솔라나, 코인베이스 커스터디 서비스 지원 프로젝트로 선정〉, 《더노디스트》, 2019-10-11
  3. Kyle Samani, 〈세계 컴퓨터가 논리적으로 중앙화되어야 하는 이유〉, 《멀티코인캐피탈》, 2019-07-30

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 역사증명 문서는 합의 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.