"역사증명"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
+ | [[파일:역사증명 타임 스탬프.png|썸네일|역사증명 타임 스탬프]] | ||
'''역사증명'''(PoH; Proof of History)은 노드(검증자) 간 합의에 걸리는 시간을 단축한 알고리즘이다. | '''역사증명'''(PoH; Proof of History)은 노드(검증자) 간 합의에 걸리는 시간을 단축한 알고리즘이다. | ||
== 개요 == | == 개요 == | ||
역사증명 합의 알고리즘은 솔라나(Solana)의 대표적인 기술로 블록체인 네트워크 상에서 노드들이 거래가 언제 발생했는지 함께 증명하고 합의함으로써 거래내역을 저장한다. 솔라나는 이 과정에서 '검증 가능한 지연 함수'를 도입해서 합의를 단순화한다. 또한, 거래내역을 암호화할 때 시간 순서에 대한 정보를 추가함으로써 검증자들이 각각의 거래를 일일이 확인하지 않고도 합의할 수 있다. 합의에 걸리는 시간이 단축되기에 거래 처리 속도는 빨라지며, 속도가 빨라지기에 확장성도 늘어나고 블록체인의 성능 자체가 향상된다. | 역사증명 합의 알고리즘은 솔라나(Solana)의 대표적인 기술로 블록체인 네트워크 상에서 노드들이 거래가 언제 발생했는지 함께 증명하고 합의함으로써 거래내역을 저장한다. 솔라나는 이 과정에서 '검증 가능한 지연 함수'를 도입해서 합의를 단순화한다. 또한, 거래내역을 암호화할 때 시간 순서에 대한 정보를 추가함으로써 검증자들이 각각의 거래를 일일이 확인하지 않고도 합의할 수 있다. 합의에 걸리는 시간이 단축되기에 거래 처리 속도는 빨라지며, 속도가 빨라지기에 확장성도 늘어나고 블록체인의 성능 자체가 향상된다. | ||
− | |||
== 특징 == | == 특징 == | ||
− | [[파일:역사증명 | + | [[파일:역사증명 시퀀스 메시지 기록.png|썸네일|역사증명 시퀀스 메시지 기록]] |
− | 역사증명을 사용하면 특정 순간에 사건이 일어났음을 증명하는 역사적 기록을 만들 수 있다. 역사증명이란 고주파수 검증가능지연함수(VDF; Verifiable Delay Function)이다. 검증가능지연함수는 평가하기 위해 특정한 수의 순차적 단계가 필요하지만 효율적이고 공개적으로 검증될 수 있는 고유한 출력을 생성한다. 우리의 구체적인 구현은 다음 입력으로 사용된 이전 출력과 함께 연속적으로 자기 위로 흐르는 순차적인 사전 이미지 내성 해시를 사용하며, 카운트와 전류 출력이 주기적으로 기록되어 SHA-256 해시함수의 경우 <math>2^{128}</math> 코어를 이용한 무차별 대입 공격 없이는 프로세스를 병렬화가 불가능하다. 이후, 생성된 각 카운터 사이에 실시간으로 전달되어 각 카운터의 기록된 순서가 실시간과 동일하다는 것을 확인할 수 있다. | + | * '''역사적 기록 생성''' |
− | + | : 역사증명을 사용하면 특정 순간에 사건이 일어났음을 증명하는 역사적 기록을 만들 수 있다. 역사증명이란 고주파수 검증가능지연함수(VDF; Verifiable Delay Function)이다. 검증가능지연함수는 평가하기 위해 특정한 수의 순차적 단계가 필요하지만 효율적이고 공개적으로 검증될 수 있는 고유한 출력을 생성한다. 우리의 구체적인 구현은 다음 입력으로 사용된 이전 출력과 함께 연속적으로 자기 위로 흐르는 순차적인 사전 이미지 내성 해시를 사용하며, 카운트와 전류 출력이 주기적으로 기록되어 SHA-256 해시함수의 경우 <math>2^{128}</math> 코어를 이용한 무차별 대입 공격 없이는 프로세스를 병렬화가 불가능하다. 이후, 생성된 각 카운터 사이에 실시간으로 전달되어 각 카운터의 기록된 순서가 실시간과 동일하다는 것을 확인할 수 있다. | |
− | + | [[파일:역사증명 시간의 하한.png|썸네일|역사증명 시간의 하한]] | |
+ | * '''시간의 상한''' | ||
+ | : 데이터의 해시를 이전 발생 상태에 추가하여 시퀀스에 데이터를 삽입할 수 있다. 상태, 입력 데이터, 카운트가 모두 게시된다. 입력을 추가하면 미래의 모든 출력이 예측할 수 없이 변경된다. 병렬화는 여전히 불가능하며, 해시함수가 사전 이미지 및 충돌 방지 기능인 경우 향후 원하는 해시를 생성하는 입력을 작성하거나 대체할 수 있는 동일한 이력을 작성할 수 없다. 또한, 두 개의 추가 작업간에 시간이 지났다는 것을 증명할 수 있으며, 데이터가 추가되기 전에 언젠가 생성되었음을 증명할 수 있다. | ||
+ | * '''시간의 하한''' | ||
+ | : 역사증명에 대한 입력은 역사의 증거 그 자체에 대한 참조를 가질 수 있다. 역참조는 사용자 서명이 있는 서명된 메시지의 일부로 삽입될 수 있으므로 사용자 개인키 없이는 수정할 수 없다. 이 메시지에는 '''0xdeadc0de''' 해시가 포함되어 있으므로 카운트 '''5101448069912'''가 생성된 후에 생성되었다는 것을 알 수 있다. 그러나 이 메시지는 역사증명 스트림에도 다시 삽입된다. | ||
{{각주}} | {{각주}} | ||
== 참고자료 == | == 참고자료 == | ||
* 비트라관리자, 〈[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 | ||
== 같이 보기 == | == 같이 보기 == |
2020년 2월 26일 (수) 17:04 판
역사증명(PoH; Proof of History)은 노드(검증자) 간 합의에 걸리는 시간을 단축한 알고리즘이다.
개요
역사증명 합의 알고리즘은 솔라나(Solana)의 대표적인 기술로 블록체인 네트워크 상에서 노드들이 거래가 언제 발생했는지 함께 증명하고 합의함으로써 거래내역을 저장한다. 솔라나는 이 과정에서 '검증 가능한 지연 함수'를 도입해서 합의를 단순화한다. 또한, 거래내역을 암호화할 때 시간 순서에 대한 정보를 추가함으로써 검증자들이 각각의 거래를 일일이 확인하지 않고도 합의할 수 있다. 합의에 걸리는 시간이 단축되기에 거래 처리 속도는 빨라지며, 속도가 빨라지기에 확장성도 늘어나고 블록체인의 성능 자체가 향상된다.
특징
- 역사적 기록 생성
- 역사증명을 사용하면 특정 순간에 사건이 일어났음을 증명하는 역사적 기록을 만들 수 있다. 역사증명이란 고주파수 검증가능지연함수(VDF; Verifiable Delay Function)이다. 검증가능지연함수는 평가하기 위해 특정한 수의 순차적 단계가 필요하지만 효율적이고 공개적으로 검증될 수 있는 고유한 출력을 생성한다. 우리의 구체적인 구현은 다음 입력으로 사용된 이전 출력과 함께 연속적으로 자기 위로 흐르는 순차적인 사전 이미지 내성 해시를 사용하며, 카운트와 전류 출력이 주기적으로 기록되어 SHA-256 해시함수의 경우 코어를 이용한 무차별 대입 공격 없이는 프로세스를 병렬화가 불가능하다. 이후, 생성된 각 카운터 사이에 실시간으로 전달되어 각 카운터의 기록된 순서가 실시간과 동일하다는 것을 확인할 수 있다.
- 시간의 상한
- 데이터의 해시를 이전 발생 상태에 추가하여 시퀀스에 데이터를 삽입할 수 있다. 상태, 입력 데이터, 카운트가 모두 게시된다. 입력을 추가하면 미래의 모든 출력이 예측할 수 없이 변경된다. 병렬화는 여전히 불가능하며, 해시함수가 사전 이미지 및 충돌 방지 기능인 경우 향후 원하는 해시를 생성하는 입력을 작성하거나 대체할 수 있는 동일한 이력을 작성할 수 없다. 또한, 두 개의 추가 작업간에 시간이 지났다는 것을 증명할 수 있으며, 데이터가 추가되기 전에 언젠가 생성되었음을 증명할 수 있다.
- 시간의 하한
- 역사증명에 대한 입력은 역사의 증거 그 자체에 대한 참조를 가질 수 있다. 역참조는 사용자 서명이 있는 서명된 메시지의 일부로 삽입될 수 있으므로 사용자 개인키 없이는 수정할 수 없다. 이 메시지에는 0xdeadc0de 해시가 포함되어 있으므로 카운트 5101448069912가 생성된 후에 생성되었다는 것을 알 수 있다. 그러나 이 메시지는 역사증명 스트림에도 다시 삽입된다.
각주
참고자료
- 비트라관리자, 〈(SOLANA) 솔라나! 막강한 호재가 두 개나?!!〉, 《비트라이프》, 2019-10-22
- Anatoly Yakovenko, 〈Proof of History: A Clock for Blockchain〉, 《미디움》, 2018-04-19
같이 보기