KR101922814B1 - Epcis 이력 이벤트 간 블록체인 구성을 통한 이력 검증 방식 - Google Patents

Epcis 이력 이벤트 간 블록체인 구성을 통한 이력 검증 방식 Download PDF

Info

Publication number
KR101922814B1
KR101922814B1 KR1020170135676A KR20170135676A KR101922814B1 KR 101922814 B1 KR101922814 B1 KR 101922814B1 KR 1020170135676 A KR1020170135676 A KR 1020170135676A KR 20170135676 A KR20170135676 A KR 20170135676A KR 101922814 B1 KR101922814 B1 KR 101922814B1
Authority
KR
South Korea
Prior art keywords
event
block chain
history
hash value
signature value
Prior art date
Application number
KR1020170135676A
Other languages
English (en)
Inventor
김상태
정성관
김대영
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020170135676A priority Critical patent/KR101922814B1/ko
Priority to PCT/KR2017/014820 priority patent/WO2019078411A1/ko
Application granted granted Critical
Publication of KR101922814B1 publication Critical patent/KR101922814B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0603Catalogue ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0607Regulated

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Storage Device Security (AREA)

Abstract

EPCIS 이력 이벤트간 블록체인 구성을 통한 이력 검증 방식이 개시된다. 일 실시예에 따른 이력 검증 방법은, 전자 상품 코드정보 서비스(Electronic Product Code Information Service)에서 각각의 이벤트간 블록체인을 형성하는 단계; 및 상기 각각의 이벤트간 형성된 블록체인을 통하여 이벤트의 이력정보를 검증하는 단계를 포함할 수 있다.

Description

EPCIS 이력 이벤트 간 블록체인 구성을 통한 이력 검증 방식{HISTORY VERIFICATION METHOD THROUGH BLOCK CHAIN CONFIGURATION BETWEEN EPCIS HISTORY EVENTS}
아래의 설명은 EPCIS 에서 이벤트의 이력을 검증하는 방법 및 시스템에 관한 것이다.
GS1 EPCGlobal 프레임워크에서는 이벤트 정보 공유를 목적으로 하는 EPCIS 표준, 발생 이벤트간 사용자 서명을 기준으로 서명을 누적시키는 페디그리(Pedigree) 표준이 존재한다.
도 1은 EPCIS와 Pedigree 표준의 이벤트 데이터 기록 방식을 비교한 예이다. 이벤트의 발생 순서가 A>B>C라고 가정하자. EPCIS 표준에서는 이벤트 레파지토리인 EPCIS에 이벤트의 발생 순서에 따라 이벤트 단위로 데이터가 저장될 수 있다. 예를 들면, 앨리스(Alice)의 EPCIS에 A 이벤트가 저장될 수 있고, 밥(Bob)의 EPCIS에 B 이벤트가 저장될 수 있고, 카롤(Carol)의 EPCIS에 C 이벤트가 저장될 수 있다.
페디그리 표준에서는 앨리스의 EPCIS에 A 이벤트가 저장됨에 따라 밥의 EPCIS에 B 이벤트를 저장함에 있어서, A 이벤트 및 B 이벤트를 밥의 개인키를 이용하여 서명한 뒤 저장하게 된다. 또한, 카롤의 EPCIS에 C 이벤트를 저장함에 있어서, C 이벤트에 밥의 개인키를 이용하여 서명된 A 이벤트가 포함된 B 이벤트를 포함시킨 뒤 카롤의 개인키를 이용하여 서명하여 저장하게 된다.
페디그리 표준의 경우, EPCIS 표준대비 새로운 이벤트를 추가할 때마다 사용자 서명을 기반으로 이벤트를 누적시킴으로써 안전성을 보장할 수 있지만, 이벤트가 누적될 대마다 데이터의 크기가 증가하고, 복잡한 이력정보를 다루는데 한계가 있다.
한국공개특허 제10-2010-0137868호, 한국공개특허 제10-2010-0098863호
이벤트 레파지토리인 EPCIS에서 데이터를 누적시키지 않고 페디그리가 제공하는 안전한 이력 검증 방법 및 시스템을 제공할 수 있다.
이력 검증 방법은, 전자 상품 코드정보 서비스(Electronic Product Code Information Service)에서 각각의 이벤트간 블록체인을 형성하는 단계; 및 상기 각각의 이벤트간 형성된 블록체인을 통하여 이벤트의 이력정보를 검증하는 단계를 포함할 수 있다.
상기 블록체인을 형성하는 단계는, 복수 개의 이벤트가 존재할 때, 제 N(N은 자연수) 이벤트가 최초로 발생된 이벤트일 경우, 상기 제 N 이벤트에 대한 제 N 해시값을 생성하고, 상기 제N 해시값에 상기 제N 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N 서명값을 획득하고, 상기 제N 이벤트에 대하여 획득된 제N 서명값을 상기 제N 이벤트의 확장 필드에 기록하는 단계를 포함할 수 있다.
상기 블록체인을 형성하는 단계는, 제N+1이벤트 및 상기 제N 서명값을 통하여 상기 제 N+1 이벤트에 대한 제 N+1 해시값을 생성하고, 상기 제N+1 해시값에 상기 제N+1 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N+1 서명값을 획득하고, 상기 제N+1 이벤트에 대하여 획득된 제N+1 서명값을 상기 제N+1 이벤트의 확장 필드에 기록하는 단계를 포함할 수 있다.
상기 이벤트의 이력정보를 검증하는 단계는, 각각의 이벤트의 확장 필드에 기록된 서명값을 각각의 객체의 공개키를 이용하여 상기 이벤트의 이력정보 및 객체의 유효성을 검증하는 단계를 포함할 수 있다.
상기 이벤트의 이력정보를 검증하는 단계는, 제N 서명값을 제N 이벤트를 기록하는 객체의 공개키를 이용하여 유효성 검증을 수행함에 따라 상기 제 N 이벤트에 대한 제 N 해시값을 추출하는 단계를 포함할 수 있다.
상기 이력정보를 검증하는 단계는, 제N+1 서명값을 제N+1 이벤트를 기록하는 객체의 공개키를 이용하여 복호화함에 따라 추출된 제 N+1 이벤트에 대한 해시값이 상기 제 N+1 이벤트와 상기 제N 서명값으로 추출한 해시값과 동일한지 여부를 판단하여 유효성을 검증하는 단계를 포함할 수 있다.
상기 이력정보를 검증하는 단계는, 상기 이벤트간 형성된 블록체인과 상기 이벤트에 대하여 생성된 서명값을 분리하여 블록체인 각각에 대한 유효성 검사 및 각각의 객체에 대한 서명값에 대한 검증을 수행하는 단계를 포함할 수 있다.
이력 검증 방법을 실행시키기 위하여 컴퓨터 판독가능한 기록 매체에 저장된 컴퓨터 프로그램은, 전자 상품 코드정보 서비스(Electronic Product Code Information Service)에서 각각의 이벤트간 블록체인을 형성하는 단계; 및 상기 각각의 이벤트간 형성된 블록체인을 통하여 이벤트의 이력정보를 검증하는 단계를 포함할 수 있다.
이력 검증 시스템은, 전자 상품 코드정보 서비스(Electronic Product Code Information Service)에서 각각의 이벤트간 블록체인을 형성하는 블록체인 형성부; 및 상기 각각의 이벤트간 형성된 블록체인을 통하여 이벤트의 이력정보를 검증하는 검증부를 포함할 수 있다.
상기 블록체인 형성부는, 복수 개의 이벤트가 존재할 때, 제 N(N은 자연수) 이벤트가 최초로 발생된 이벤트일 경우, 상기 제 N 이벤트에 대한 제 N 해시값을 생성하고, 상기 제N 해시값에 상기 제N 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N 서명값을 획득하고, 상기 제N 이벤트에 대하여 획득된 제N 서명값을 상기 제N 이벤트의 확장 필드에 기록할 수 있다.
상기 블록체인 형성부는, 제N+1이벤트 및 상기 제N 서명값을 통하여 상기 제 N+1 이벤트에 대한 제 N+1 해시값을 생성하고, 상기 제N+1 해시값에 상기 제N+1 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N+1 서명값을 획득하고, 상기 제N+1 이벤트에 대하여 획득된 제N+1 서명값을 상기 제N+1 이벤트의 확장 필드에 기록할 수 있다.
상기 검증부는, 각각의 이벤트의 확장 필드에 기록된 서명값을 각각의 객체의 공개키를 이용하여 상기 이벤트의 이력정보 및 객체의 유효성을 검증할 수 있다.
상기 검증부는, 제N 서명값을 상기 제N 이벤트를 기록하는 객체의 공개키를 이용하여 유효성 검증을 수행함에 따라 제 N 이벤트에 대한 제 N 해시값을 추출할 수 있다.
상기 검증부는, 제N+1 서명값을 상기 제N+1 이벤트를 기록하는 객체의 공개키를 이용하여 복호화함에 따라 추출된 제 N+1 이벤트에 대한 해시값이 상기 제 N+1 이벤트와 상기 제N 서명값으로 추출한 해시값과 동일한지 여부를 판단하여 유효성을 검증할 수 있다.
상기 검증부는, 상기 이벤트간 형성된 블록체인과 상기 이벤트에 대하여 생성된 서명값을 분리하여 블록체인 각각에 대한 유효성 검사 및 각각의 객체에 대한 서명값에 대한 검증을 수행할 수 있다.
일 실시예에 따른 이력 검증 시스템은 EPCIS의 이벤트간 블록체인을 생성함에 따라 각각의 이벤트에 대한 서명값을 개별적으로 저장함으로써 책임 여부를 명확히할 수 있다.
일 실시예에 따른 이력 검증 시스템은 공개키를 이용하여 이벤트간 형성된 블록체인을 검증함에 따라 데이터의 누적없이 안전하게 이력 검증을 수행할 수 있다.
일 실시예에 따른 이력 검증 시스템은 공개키를 이용하여 이벤트간 형성된 블록체인을 검증함에 따라 각각의 이벤트에 대한 이력 정보의 유효성을 검증할 뿐만 아니라 각각의 이벤트에 대한 서명 정보를 검증할 수 있다.
도 1은 EPCIS와 Pedigree 표준의 이벤트 데이터 기록 방식을 비교한 예이다.
도 2는 일 실시예에 따른 이력 검증 시스템에서 이력 검증 과정을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 이력 검증 시스템의 구성을 설명하기 위한 블록도이다.
도 4는 일 실시예에 따른 이력 검증 시스템에서 이력 검증 방법을 설명하기 위한 흐름도이다.
도 5 및 도 6은 일 실시예에 따른 이력 검증 시스템에서 이벤트간 블록체인을 형성하는 방법을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 이력 검증 시스템에서 이벤트간 블록체인의 유효성을 검증하는 방법을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 이력 검증 시스템에서 이벤트간 블록체인의 유효성을 검증하는 또 다른 방법을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 이력 검증 시스템에서 물류 환경에 적용하여 축산 이력을 관리하는 방법을 설명하기 위한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 2는 일 실시예에 따른 이력 검증 시스템에서 이력 검증 과정을 설명하기 위한 도면이다.
이력 검증 시스템은 전자 상품 코드정보 서비스(Electronic Product Code Information Service)에서 각각의 이벤트간 블록체인을 형성하고, 각각의 이벤트간 형성된 블록체인을 통하여 이벤트의 이력정보에 대한 검증을 수행할 수 있다. 이력 검증 시스템은 이벤트 레파지토리인 EPCIS에서 데이터를 누적시키지 않고도 페디그리가 제공하는 안전한 이력 인증 검증 체계를 제공할 수 있다.
일례로, A 이벤트(210), B 이벤트(220) 및 C 이벤트(230)를 포함하는 각각의 EPCIS가 존재하고, 이벤트의 발생 순서는 A->B->C라고 가정하자. 다시 말해서, 앨리스(Alice)의 EPCIS에 A 이벤트(210), 밥(Bob)의 EPCIS에 B 이벤트(220) 및 카롤(Carol)의 EPCIS에 C 이벤트(230)가 존재할 수 있다. 이때, EPCIS 각각에 존재하는 이벤트의 개수가 한정되는 것은 아니다. 실시예에서는, 각각의 EPCIS에 존재하는 A, B, C이벤트를 예를 들어 설명하기로 한다.
이력 검증 시스템은 EPCIS간 블록체인을 형성함으로써 페디그리의 이벤트 누적 방식을 구현할 수 있다. 구체적으로, 이력 검증 시스템은 EPCIS에 존재하는 이벤트 각각에 블록체인을 생성할 수 있다.
도 5 및 도 6를 참고하면, 이력 검증 시스템에서 이벤트간 블록체인을 형성하는 과정을 설명하기 위한 도면이다. 우선적으로, 이력 검증 시스템은 복수 개의 이벤트가 존재할 때, 제 N(N은 자연수) 이벤트가 최초로 발생된 이벤트인지 여부를 판단할 수 있다. 이력 검증 시스템은 제 N(N은 자연수) 이벤트가 최초로 발생된 이벤트일 경우, 제 N 이벤트에 대한 제 N 해시값을 생성하고, 제N 해시값에 제N 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N 서명값을 획득하고, 제N 이벤트에 대하여 획득된 제N 서명값을 제N 이벤트의 확장 필드에 기록할 수 있다. 도 5는 앨리스의 EPCIS에 서명값을 생성하기 위한 것으로, 이력 검증 시스템은 앨리스의 EPCIS에 존재하는 A 이벤트(210)에 대한 해시값(Hash(A))을 생성할 수 있다. 이력 검증 시스템은 A이벤트(210)에 대한 해시값(Hash(A))에 A 이벤트(210)를 기록하는 앨리스의 개인키(SignAlicePrivkey)(211)로 서명함에 따라 서명값(SignatureAlice)을 획득할 수 있다. 이력 검증 시스템은 A 이벤트(210)에 대하여 획득된 서명값(SignatureAlice)을 A 이벤트(210)의 확장 필드에 기록할 수 있다.
이력 검증 시스템은 제N+1 이벤트 및 제N 서명값을 통하여 제 N+1 이벤트에 대한 제 N+1 해시값을 생성하고, 제N+1 해시값에 제N+1 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N+1 서명값을 획득하고, 제N+1 이벤트에 대하여 획득된 제N+1 서명값을 제N+1 이벤트의 확장 필드에 기록할 수 있다. 이와 같이, 이력 검증 시스템은 EPCIS에서 각각의 이벤트간 블록체인을 형성할 수 있다. 도 6은 밥의 EPCIS에 서명값을 생성하기 위한 것으로, 이력 검증 시스템은 밥의 EPCIS에 존재하는 B 이벤트(220)와 이전 서명인 A 이벤트(210)에 대하여 획득된 서명값(SignatureAlice)을 통하여 B 이벤트(220)에 대한 해시값(Hash(B+SignatureAlice))을 생성할 수 있다. 이력 검증 시스템은 B 이벤트(220)에 대한 해시값(Hash(B+SignatureAlice))에 B이벤트(220)를 기록하는 밥의 개인키(SignBobPrivkey)(221)로 서명함에 따라 서명값(SignatureBob)을 획득할 수 있다. 이력 검증 시스템은 B 이벤트(220)에 대하여 획득된 서명값(SignatureBob)을 B 이벤트(220)의 확장 필드에 기록할 수 있다.
또한, 마찬가지로, 카롤의 EPCIS에 존재하는 C 이벤트(230)와 이전 서명인 B 이벤트(220)에 대하여 획득된 서명값(SignatureBob)을 통하여 C 이벤트(230)에 대한 해시값(Hash(C+SignatureBob))을 생성할 수 있다. 이력 검증 시스템은 C 이벤트(230)에 대한 해시값(Hash(C+SignatureBob))에 C 이벤트(230)를 기록하는 카롤의 개인키(SignCarolPrivkey)(231)로 서명함에 따라 서명값(SignatureCarol)을 획득할 수 있다. 이력 검증 시스템은 C 이벤트(230)에 대하여 획득된 서명값(SignatureCarol)을 C 이벤트(230)의 확장 필드에 기록할 수 있다. 이와 같이, 이력 검증 시스템은 이벤트간 블록체인을 형성할 수 있다. 이력 검증 시스템은 이벤트에 대한 서명값을 개별적으로 보관할 수 있다.
일 실시예에 따른 이력 검증 시스템은 이벤트간 블록체인을 형성함으로써 데이터의 크기가 증가하는 것을 방지할 수 있고 계속적으로 이벤트가 누적됨에 따라 발생하는 전체적인 연산량을 줄일 수 있다.
도 7은 일 실시예에 따른 이력 검증 시스템에서 이벤트간 블록체인의 유효성을 검증하는 방법을 설명하기 위한 도면이다.
이력 검증 시스템은 각각의 블록체인의 링크마다 블록체인을 통하여 서명값에 대한 유효성을 검증할 수 있다. 이력 검증 시스템은 제N 서명값을 제N 이벤트를 기록하는 객체의 공개키를 이용하여 유효성 검증을 수행함에 따라 제 N 이벤트에 대한 제 N 해시값을 추출할 수 있다. 이력 검증 시스템은 제N+1 서명값을 제N+1 이벤트를 기록하는 객체의 공개키를 이용하여 복호화함에 따라 추출된 제 N+1 이벤트에 대한 해시값이 제 N+1 이벤트와 제N 서명값으로 추출한 해시값과 동일한지 여부를 판단하여 유효성을 검증할 수 있다. 이때, 제N+1 서명값을 제N+1 이벤트를 기록하는 객체의 공개키를 이용하여 복호화함에 따라 추출된 제 N+1 이벤트에 대한 해시값이 제 N+1 이벤트와 제N 서명값으로 추출한 해시값과 일치할 경우, True로 판단하게 된다.
이벤트가 블록체인의 유효성을 검증하기 위하여 각각의 참여자(예를 들면, 앨리스, 밥, 카롤)간 공개키를 공유하고 있다고 가정한다.
이력 검증 시스템은 A 이벤트(210)에 대한 서명값(SignatureAlice)을 A 이벤트(210)를 기록하는 앨리스의 공개키를 이용하여 유효성 검증을 수행함에 따라 A 이벤트(210)에 대한 해시값(Hash(A))을 추출할 수 있다. 이때, A 이벤트(210)에 대한 서명값(SignatureAlice)을 A 이벤트(210)를 기록하는 앨리스의 공개키로 복호화하여 추출된 A 이벤트(210)에 대한 해시값이 기 저장된 A 이벤트(210)에 대한 해시값과 동일한지 여부를 판단하여 유효성을 검증할 수 있다. 다시 말해서, VerifyAlicePublickey(SignatureAlice)와 Hash(A)가 일치하는지 여부를 판단할 수 있다. 이때, VerifyAlicePublickey(SignatureAlice)와 Hash(A)이 일치할 경우, B 이벤트에 대한 유효성 검증을 수행하게 된다.
이력 검증 시스템은 B 이벤트(220)에 대한 서명값(SignatureBob)을 B 이벤트(220)를 기록하는 밥의 공개키를 이용하여 유효성 검증을 수행함에 따라 B 이벤트(220)에 대한 해시값을 추출할 수 있다. B 이벤트(220)에 대한 서명값(SignatureBob)을 B 이벤트(220)를 기록하는 밥의 공개키로 복호화하여 추출된 B 이벤트(220)에 대한 해시값이 B 이벤트(220) 및 A 이벤트(210)에 대한 서명값(SignatureAlice)으로 추출한 해시값과 동일한지 여부를 판단하여 유효성을 검증할 수 있다. 다시 말해서, VerifyBobPublickey(SignatureBob)와 Hash(B+SignatureAlice)가 일치하는지 여부를 판단할 수 있다. 이때, VerifyBobPublickey(SignatureBob)와 Hash(B+SignatureAlice)가 일치할 경우, C 이벤트에 대한 유효성 검증을 수행하게 된다.
이력 검증 시스템은 C 이벤트(230)에 대한 서명값(SignatureCarol)을 C 이벤트(230)를 기록하는 카롤의 공개키를 이용하여 유효성 검증을 수행함에 따라 C 이벤트(230)에 대한 해시값을 추출할 수 있다. C 이벤트(230)에 대한 서명값(SignatureCarol)을 C 이벤트(230)를 기록하는 카롤의 공개키로 복호화하여 추출된 C 이벤트(230)에 대한 해시값이 C 이벤트(230) 및 B 이벤트(220)에 대한 서명값(SignatureBob)으로 추출한 해시값과 동일한지 여부를 판단할 수 있다. 다시 말해서, VerifyCarolPublickey(SignatureCarol)와 Hash(C+SignatureBob)가 일치하는지 여부를 판단할 수 있다. 이때, VerifyCarolPublickey(SignatureCarol)와 Hash(C+SignatureBob)가 일치할 경우, 유효성 검증을 완료하게 된다.
이와 같이, 이력 검증 시스템은 이벤트의 확장 필드에 기록된 서명값을 각각의 공개키를 이용하여 추출된 값이 각각의 이벤트에 대한 해시값과 동일한지 여부를 판단할 수 있다. 이때, 추출된 값과 이벤트에 대한 해시값이 일치하지 않을 경우, 다음 단계의 블록체인의 링크를 검증할 수 없으며, 추출된 값과 이벤트에 대한 해시값이 일치할 경우, 다음 단계의 블록체인의 링크를 검증할 수 있다.
이와 같이, 이력 검증 시스템은 이벤트의 확장 필드에 기록된 서명값을 각각의 공개키를 이용하여 추출된 값이 해시값과 동일한지 여부를 판단함에 따라 전체적인 이력 이벤트에 대한 이력 검증뿐만 아니라 각각의 이벤트에 대하여 서명한 서명자의 유효성을 검증할 수 있다.
도 8은 일 실시예에 따른 이력 검증 시스템에서 이벤트간 블록체인의 유효성을 검증하는 또 다른 방법을 설명하기 위한 도면이다.
이력 검증 시스템은 블록체인과 서명정보(서명값)를 분리시켜 유효성 검증을 복수 개의 단계로 나누어 진행할 수 있다. 실시예에서는 2개의 단계로 나누어 유효성 검사를 수행할 수 있다. 이때, 각각의 참여자간 공유키를 모두 공유하지 않고, 일부의 공개키의 공유를 통하여 유효성 검증을 수행할 수 있다.
우선적으로, 각각의 EPCIS에 존재하는 이벤트 각각에 대한 해시값을 생성하는 또 다른 방법을 설명하기로 한다. 도 2에서 설명한 바와 같이, A 이벤트(210), B 이벤트(220) 및 C 이벤트(230)를 포함하는 각각의 EPCIS가 존재하고, 이벤트의 발생 순서는 A->B->C라고 가정하자. 다시 말해서, 앨리스(Alice)의 EPCIS에 A 이벤트(210), 밥(Bob)의 EPCIS에 B 이벤트(220) 및 카롤(Carol)의 EPCIS에 C 이벤트(230)가 존재할 수 있다. 이때, 앞서 설명한 바와 달리, 이력 검증 시스템은 A 이벤트(210)에 대한 해시값(Hash(A))을 생성할 수 있다. 또한, A 이벤트(210)에 대한 해시값과 B 이벤트(220)를 포함하여 B 이벤트(220)에 대한 해시값(Hash(Hash(A)+B))을 생성할 수 있다. B 이벤트(220)에 대한 해시값 및 C 이벤트(230)를 포함하여 C 이벤트(230)에 대한 해시값(Hash(Hash(B)+C))을 생성할 수 있다.
이력 검증 시스템은 각각의 이벤트에 대하여 생성된 해시값을 각각의 이벤트를 기록하는 객체의 개인키로 서명함에 따라 서명값을 생성할 수 있다. 다시 말해서, 이력 검증 시스템은 A 이벤트(210)에 대한 해시값(Hash(A))을 앨리스의 개인키를 이용하여 A 이벤트(210)에 대한 서명값(SignatureAlice)을 생성할 수 있고, B 이벤트(220)에 대한 해시값(Hash(Hash(A)+B))을 밥의 개인키를 이용하여 B 이벤트(220)에 대한 서명값(SignatureBob)을 생성할 수 있고, C 이벤트(230)에 대한 해시값(Hash(Hash(B)+C))을 카롤의 개인키를 이용하여 C 이벤트(230)에 대한 서명값(SignatureCarol)을 생성할 수 있다. 이때, 각각의 이벤트의 확장 필드에 서명값을 기록할 수 있다.
이력 검증 시스템은 해시값을 통하여 이벤트간 블록체인의 유효성을 검증할 수 있다. 이때, 각각의 참여자간 공개키의 교환이 필요하지 않게 된다. 다시 말해서, 이력 검증 시스템은 공개키의 교환없이 이벤트간 블록체인의 유효성 검증을 수행할 수 있다.
또한, 이력 검증 시스템은 블록체인의 유효성을 검증함에 따라 각각의 EPCIS에 존재하는 각각의 이벤트에 대한 서명 검증을 수행할 수 있다. 이때, 이력 검증 시스템은 각각의 이벤트에 대한 서명값의 검증을 위하여 각각의 객체에 대한 공개키의 교환이 필요하게 된다. 이에 따라, 이력 검증 시스템은 공개키의 교환을 통하여 이벤트에 서명한 서명 정보가 맞는지 여부를 판단할 수 있다. 예를 들면, 이력 검증 시스템은 A 이벤트(210)의 확장 필드에 기록된 서명값(SignatureAlice)을 앨리스의 공개키를 이용하여 A 이벤트(210)에 대한 해시값(Hash(A))을 추출할 수 있다. 이때, 추출된 A 이벤트(210)에 대한 해시값과 A 이벤트에 대한 해시값이 일치할 경우, B 이벤트에 대한 유효성 검증을 수행할 수 있다. 또한, B 이벤트(220)의 확장 필드에 기록된 서명값(SignatureBob)을 밥의 공개키를 이용하여 추출된 B 이벤트(220)에 대한 해시값이 A 이벤트(210)에 대한 해시값 및 B 이벤트(220)를 통하여 추출된 해시값과 일치하는지 여부를 판단하여 유효성을 검증할 수 있다. 밥의 공개키를 이용하여 추출된 B 이벤트(220)에 대한 해시값이 해시값이 A 이벤트(210)에 대한 해시값 및 B 이벤트(220)를 통하여 추출된 해시값(Hash(Hash(A)+B))과 일치할 경우, C 이벤트에 대한 유효성 검증을 수행할 수 있다.
C 이벤트(230)의 확장 필드에 기록된 서명값(SignatureCarol)을 카롤의 공개키를 이용하여 C 이벤트(230)에 대한 해시값이 B 이벤트(220)에 대한 해시값 및 C 이벤트(230)를 통하여 추출된 해시값과 일치하는지 여부를 판단할 수 있다. 카롤의 공개키를 이용하여 추출된 C 이벤트에 대한 해시값이 B 이벤트(220)에 대한 해시값 및 C 이벤트(230)를 통하여 해시값(Hash(Hash(B)+C))과 일치할 경우, C 이벤트에 대한 유효성 검증을 완료할 수 있다.
일 실시예에 따른 이력 검증 시스템은 블록체인을 통한 이력 검증을 통하여 EPCIS에서 이벤트 각각을 개별적으로 보관하되 블록체인으로 연결된 이벤트가 하나의 플로우를 가지고 있는지 검증을 수행할 수 있다.
도 3은 일 실시예에 따른 이력 검증 시스템의 구성을 설명하기 위한 블록도이고, 도 4는 일 실시예에 따른 이력 검증 시스템에서 이력 검증 방법을 설명하기 위한 흐름도이다.
이력 검증 시스템(100)의 프로세서(300)는 블록체인 형성부(320) 및 검증부(320)를 포함할 수 있다. 이러한 프로세서(300)의 구성요소들은 이력 검증 시스템(100)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(300)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 프로세서(300) 및 프로세서(300)의 구성요소들은 도 4의 이력 검증 방법이 포함하는 단계들(410 내지 420)을 수행하도록 이력 검증 시스템(100)을 제어할 수 있다. 이때, 프로세서(300) 및 프로세서(300)의 구성요소들은 메모리가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다.
프로세서(300)는 이력 검증 방법을 위한 프로그램의 파일에 저장된 프로그램 코드를 메모리에 로딩할 수 있다. 예를 들면, 이력 검증 시스템(100)에서 프로그램이 실행되면, 프로세서는 운영체제의 제어에 따라 프로그램의 파일로부터 프로그램 코드를 메모리에 로딩하도록 이력 검증 시스템을 제어할 수 있다. 이때, 프로세서(300) 및 프로세서(300)가 포함하는 블록체인 형성부(310) 및 검증부(320) 각각은 메모리에 로딩된 프로그램 코드 중 대응하는 부분의 명령을 실행하여 이후 단계들(410 내지 420)을 실행하기 위한 프로세서(300)의 서로 다른 기능적 표현들일 수 있다.
단계(410)에서 블록체인 형성부(310)는 전자 상품 코드정보 서비스에서 각각의 이벤트간 블록체인을 형성할 수 있다. 블록체인 형성부(310)는 복수 개의 이벤트가 존재할 때, 제 N(N은 자연수) 이벤트가 최초로 발생된 이벤트일 경우, 제 N 이벤트에 대한 제 N 해시값을 생성하고, 제N 해시값에 제N 이벤트를 기록하는 객체(예를 들면, 사람, 업체 등)가 소유하고 있는 개인키로 서명함에 따라 제N 서명값을 획득하고, 제N 이벤트에 대하여 획득된 제N 서명값을 제N 이벤트의 확장 필드에 기록할 수 있다. 블록체인 형성부(310)는 제N+1이벤트 및 제N 서명값을 통하여 제 N+1 이벤트에 대한 제 N+1 해시값을 생성하고, 제N+1 해시값에 제N+1 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N+1 서명값을 획득하고, 제N+1 이벤트에 대하여 획득된 제N+1 서명값을 제 N+1 이벤트의 확장 필드에 기록할 수 있다.
단계(420)에서 검증부(320)는 각각의 이벤트간 형성된 블록체인을 통하여 이벤트의 이력정보를 검증할 수 있다. 검증부(320)는 각각의 블록체인 링크마다 블록체인의 검증을 통하여 이력정보에 대한 유효성을 검증할 수 있다. 검증부(320)는 각각의 이벤트의 확장 필드에 기록된 서명값을 각각의 객체의 공개키를 이용하여 이력정보 및 객체의 유효성을 검증할 수 있다. 검증부(320)는 제N 서명값을 제N 이벤트를 기록하는 객체의 공개키를 이용하여 유효성 검증을 수행함에 따라 제 N 이벤트에 대한 제 N 해시값을 추출할 수 있다. 검증부(320)는 제N+1 서명값을 제N+1 이벤트를 기록하는 객체의 공개키를 이용하여 복호화함에 따라 추출된 제 N+1 이벤트에 대한 해시값이 제 N+1 이벤트와 제N 서명값으로 추출한 해시값과 동일한지 여부를 판단하여 유효성을 검증할 수 있다. 또한, 검증부(320)는 이벤트간 형성된 블록체인과 이벤트에 대하여 생성된 서명값을 분리시킬 경우, 블록체인 각각에 대한 유효성 검사 및 각각의 객체에 대한 서명값에 대한 검증을 수행할 수 있다.
도 9는 일 실시예에 따른 이력 검증 시스템에서 물류 환경에 적용하여 축산 이력을 관리하는 방법을 설명하기 위한 도면이다.
물류 환경에 적용하여 축산 이력을 관리하는 방법을 설명하기로 한다. 이력 검증 시스템은 축산 이벤트에 대하여 블록체인을 형성할 수 있고, 형성된 블록체인에 대한 유효성을 검증할 수 있다. 예를 들면, 사육 농가, 도축장, 포장처리업소, 판매장을 통하여 축산 이력이 소비자에게 전달될 수 있다.
더욱 상세하게는, 소를 사육하는 생산자와 사육 농가가 존재할 수 있으며, 사육 농가에 적어도 하나 이상의 소가 사육되고 있을 수 있다. 예를 들면, 사육 농가에 대한 EPCIS에 사육 농가에 존재하는 각각의 소와 관련된 정보(예를 들면, 소의 식별 코드, 소의 생년월일, 소의 발육 정보 등)가 저장되어 있을 수 있다. 이력 검증 시스템은 사육 농가의 EPCIS에서 발생한 생산 이벤트(910)에 대한 해시값을 생성하고, 생산 이벤트에 대한 해시값에 생산자의 개인키로 서명함에 따라 서명값을 획득할 수 있다. 생산 이벤트(910)에 대하여 생성된 서명값을 생산 이벤트(910)의 확장 필드에 기록할 수 있다. 이때, 사육 농가에 존재하는 일부의 소가 도축장으로 이동될 수 있다.
도축장으로 소가 이동됨에 따라 소가 도축될 수 있다. 이에 따라 도축장의 EPCIS에 도축 이벤트(920)가 발생할 수 있다. 이력 검증 시스템은 도축 이벤트(920)와 생산 이벤트(910)에 대하여 획득된 서명값을 통하여 도축 이벤트(920)에 대한 해시값을 생성하고, 도축 이벤트(920)에 대한 해시값에 도축자의 개인키로 서명함에 따라 서명값을 획득할 수 있다. 도축 이벤트(920)에 대하여 획득된 서명값을 도축 이벤트(920)의 확장 필드에 기록할 수 있다.
도축장에서 도축된 소가 포장 처리 업소로 이동될 수 있다. 포장 처리 업소에서 도축된 소가 각각의 부위마다 포장이 처리될 수 있다. 포장 처리 업소의 EPCIS에 포장 이벤트(930)가 발생할 수 있다. 이력 검증 시스템은 포장 이벤트(930)와 도축 이벤트(920)에 대하여 획득된 서명값을 통하여 포장 이벤트(930)에 대한 해시값을 생성하고, 포장 이벤트(930)에 대한 해시값에 포장업자의 개인키로 서명함에 따라 서명값을 획득할 수 있다. 포장 이벤트(930)에 대하여 획득된 서명값을 포장 이벤트(930)의 확장 필드에 기록할 수 있다.
포장 처리 업소에서 포장된 상품이 판매장으로 이동되어 판매될 수 있다. 판매장의 EPCIS에 판매 이벤트(940)가 발생할 수 있다. 이력 검증 시스템은 판매 이벤트(940)와 포장 이벤트(930)에 대하여 획득된 서명값을 통하여 판매 이벤트(940)에 대한 해시값을 생성하고, 판매 이벤트(940)에 대한 해시값에 판매자의 개인키로 서명함에 따라 서명값을 획득할 수 있다. 판매 이벤트(940)에 대하여 획득된 서명값을 판매 이벤트(940)의 확장 필드에 기록할 수 있다.
이러한 과정으로 유통된 상품이 판매장에서 소비자에 의하여 구매가 이루어질 수 있다. 소비자가 구매를 한 상품에 대한 이력 유효성 검증을 수행할 수 있다. 예를 들면, 소비자가 단말을 통하여 상품의 EPC가 인식됨에 따라 이벤트간 형성된 블록체인의 유효성 검증이 수행될 수 있다. 다시 말해서, 이력 검증 시스템은 상품에 대한 이력검증을 수행할 수 있다. 구체적으로, 이력 검증 시스템은 생산 이벤트(910)의 확장 필드에 기록된 서명값을 생산 이벤트(910)를 기록하는 생산자의 공개키를 이용하여 유효성 검증을 수행함에 따라 생산 이벤트(910)에 대한 해시값을 추출할 수 있다. 이때, 생산자의 공개키가 정상적인 공개키가 아닐 경우, 해시값이 추출되었더라도 상기 추출된 해시값과 기 저장된 해시값이 일치하지 않게 되어 유효성 검증에 실패하게 된다.
이력 검증 시스템은 도축 이벤트(920)의 확장 필드에 기록된 서명값을 도축 이벤트(920)를 기록하는 도축자의 공개키를 이용하여 유효성 검증을 수행함에 따라 추출된 도축 이벤트(920)에 대한 해시값이 도축 이벤트(920) 및 생산 이벤트(910)에 대한 서명값으로 추출된 해시값과 동일한지 여부를 판단할 수 있다. 이때, 각각의 해시값이 동일한 경우 True로 판단하여 다음의 블록체인 링크의 검증을 수행할 수 있다.
이력 검증 시스템은 포장 이벤트(930)의 확장 필드에 기록된 서명값을 포장 이벤트(930)를 기록하는 포장업자의 공개키를 이용하여 유효성 검증을 수행함에 따라 추출된 포장 이벤트(930)에 대한 해시값이 포장 이벤트(930) 및 도축 이벤트(920)에 대한 서명값으로 추출된 해시값과 동일한지 여부를 판단할 수 있다. 이때, 각각의 해시값이 동일한 경우 True로 판단하여 다음의 블록체인 링크의 검증을 수행할 수 있다.
이력 검증 시스템은 판매 이벤트(940)의 확장 필드에 기록된 서명값을 판매 이벤트(940)를 기록하는 판매자의 공개키를 이용하여 유효성 검증을 수행함에 따라 추출된 판매 이벤트(940)에 대한 해시값이 판매 이벤트(940) 및 포장 이벤트(930)에 대한 서명값으로 추출된 해시값과 동일한지 여부를 판단할 수 있다. 이때, 각각의 해시값이 동일한 경우 True로 판단하여 다음의 블록체인의 검증을 완료할 수 있다.
이와 같이, 각각의 이벤트간 형성된 블록체인을 통하여 이벤트의 이력정보를 검증할 수 있다.
일 실시예에 따른 이력 검증 시스템은 축산 이력뿐만 아니라, 약품, 식품 및 항공 등 다양한 분야에 적용될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (15)

  1. 블록체인 형성부 및 검증부를 포함하는 이력 검증 시스템에 의해 수행되는 이력 검증 방법에 있어서,
    상기 블록체인 형성부에서, 전자 상품 코드정보 서비스(Electronic Product Code Information Service)에서 각각의 이벤트간 블록체인을 형성하는 단계; 및
    상기 검증부에서, 상기 각각의 이벤트간 형성된 블록체인을 통하여 이벤트의 이력정보를 검증하는 단계
    를 포함하고,
    상기 블록체인을 형성하는 단계는,
    상기 각각의 이벤트와 상기 각각의 이벤트의 이전 이벤트에 대하여 획득된 서명값을 통하여 상기 각각의 이벤트에 대한 해시값을 생성하고, 상기 생성된 각각의 이벤트에 대한 해시값에 상기 각각의 이벤트를 기록하는 객체의 개인키로 서명함에 따라 획득된 각각의 이벤트에 대한 서명값을 상기 각각의 이벤트의 확장 필드에 기록하는 단계
    를 포함하는 이력 검증 방법.
  2. 제1항에 있어서,
    상기 블록체인 형성부에서, 상기 블록체인을 형성하는 단계는,
    복수 개의 이벤트가 존재할 때, 제 N(N은 자연수) 이벤트가 최초로 발생된 이벤트일 경우, 상기 제 N 이벤트에 대한 제 N 해시값을 생성하고, 상기 제N 해시값에 상기 제N 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N 서명값을 획득하고, 상기 제N 이벤트에 대하여 획득된 제N 서명값을 상기 제N 이벤트의 확장 필드에 기록하는 단계
    를 포함하는 이력 검증 방법.
  3. 제2항에 있어서,
    상기 블록체인 형성부에서, 상기 블록체인을 형성하는 단계는,
    제N+1이벤트 및 상기 제N 서명값을 통하여 상기 제 N+1 이벤트에 대한 제 N+1 해시값을 생성하고, 상기 제N+1 해시값에 상기 제N+1 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N+1 서명값을 획득하고, 상기 제N+1 이벤트에 대하여 획득된 제N+1 서명값을 상기 제N+1 이벤트의 확장 필드에 기록하는 단계
    를 포함하는 이력 검증 방법.
  4. 제1항에 있어서,
    상기 검증부에서, 상기 이벤트의 이력정보를 검증하는 단계는,
    각각의 이벤트의 확장 필드에 기록된 서명값을 각각의 객체의 공개키를 이용하여 상기 이벤트의 이력정보 및 객체의 유효성을 검증하는 단계
    를 포함하는 이력 검증 방법.
  5. 제4항에 있어서,
    상기 검증부에서, 상기 이벤트의 이력정보를 검증하는 단계는,
    제N 서명값을 제N 이벤트를 기록하는 객체의 공개키를 이용하여 유효성 검증을 수행함에 따라 상기 제 N 이벤트에 대한 제 N 해시값을 추출하는 단계
    를 포함하는 이력 검증 방법.
  6. 제5항에 있어서,
    상기 검증부에서, 상기 이력정보를 검증하는 단계는,
    제N+1 서명값을 제N+1 이벤트를 기록하는 객체의 공개키를 이용하여 복호화함에 따라 추출된 제 N+1 이벤트에 대한 해시값이 상기 제 N+1 이벤트와 상기 제 N 서명값으로 추출한 해시값과 동일한지 여부를 판단하여 유효성을 검증하는 단계
    를 포함하는 이력 검증 방법.
  7. 제1항에 있어서,
    상기 검증부에서, 상기 이력정보를 검증하는 단계는,
    상기 이벤트간 형성된 블록체인과 상기 이벤트에 대하여 생성된 서명값을 분리하여 블록체인 각각에 대한 유효성 검사 및 각각의 객체에 대한 서명값에 대한 검증을 수행하는 단계
    를 포함하는 이력 검증 방법.
  8. 이력 검증 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램에 있어서,
    전자 상품 코드정보 서비스(Electronic Product Code Information Service)에서 각각의 이벤트간 블록체인을 형성하는 단계; 및
    상기 각각의 이벤트간 형성된 블록체인을 통하여 이벤트의 이력정보를 검증하는 단계
    를 포함하고,
    상기 블록체인을 형성하는 단계는,
    상기 각각의 이벤트와 상기 각각의 이벤트의 이전 이벤트에 대하여 획득된 서명값을 통하여 상기 각각의 이벤트에 대한 해시값을 생성하고, 상기 생성된 각각의 이벤트에 대한 해시값에 상기 각각의 이벤트를 기록하는 객체의 개인키로 서명함에 따라 획득된 각각의 이벤트에 대한 서명값을 상기 각각의 이벤트의 확장 필드에 기록하는 단계
    를 포함하는 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
  9. 이력 검증 시스템에 있어서,
    전자 상품 코드정보 서비스(Electronic Product Code Information Service)에서 각각의 이벤트간 블록체인을 형성하는 블록체인 형성부; 및
    상기 각각의 이벤트간 형성된 블록체인을 통하여 이벤트의 이력정보를 검증하는 검증부
    를 포함하고,
    상기 블록체인 형성부는,
    상기 각각의 이벤트와 상기 각각의 이벤트의 이전 이벤트에 대하여 획득된 서명값을 통하여 상기 각각의 이벤트에 대한 해시값을 생성하고, 상기 생성된 각각의 이벤트에 대한 해시값에 상기 각각의 이벤트를 기록하는 객체의 개인키로 서명함에 따라 획득된 각각의 이벤트에 대한 서명값을 상기 각각의 이벤트의 확장 필드에 기록하는
    이력 검증 시스템.
  10. 제9항에 있어서,
    상기 블록체인 형성부는,
    복수 개의 이벤트가 존재할 때, 제 N(N은 자연수) 이벤트가 최초로 발생된 이벤트일 경우, 상기 제 N 이벤트에 대한 제 N 해시값을 생성하고, 상기 제N 해시값에 상기 제N 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N 서명값을 획득하고, 상기 제N 이벤트에 대하여 획득된 제N서명값을 상기 제N 이벤트의 확장 필드에 기록하는
    것을 특징으로 하는 이력 검증 시스템.
  11. 제10항에 있어서,
    상기 블록체인 형성부는,
    제N+1이벤트 및 상기 제N 서명값을 통하여 상기 제 N+1 이벤트에 대한 제 N+1 해시값을 생성하고, 상기 제N+1 해시값에 상기 제N+1 이벤트를 기록하는 객체의 개인키로 서명함에 따라 제N+1 서명값을 획득하고, 상기 제N+1 이벤트에 대하여 획득된 제N+1 서명값을 상기 제N+1 이벤트의 확장 필드에 기록하는
    것을 특징으로 하는 이력 검증 시스템.
  12. 제9항에 있어서,
    상기 검증부는,
    각각의 이벤트의 확장 필드에 기록된 서명값을 각각의 객체의 공개키를 이용하여 상기 이벤트의 이력정보 및 객체의 유효성을 검증하는
    것을 특징으로 하는 이력 검증 시스템.
  13. 제12항에 있어서,
    상기 검증부는,
    제N 서명값을 제N 이벤트를 기록하는 객체의 공개키를 이용하여 유효성 검증을 수행함에 따라 상기 제 N 이벤트에 대한 제 N 해시값을 추출하는
    것을 특징으로 하는 이력 검증 시스템.
  14. 제13항에 있어서,
    상기 검증부는,
    제N+1 서명값을 제N+1 이벤트를 기록하는 객체의 공개키를 이용하여 복호화함에 따라 추출된 제 N+1 이벤트에 대한 해시값이 상기 제N+1 이벤트와 상기 제N 서명값으로 추출한 해시값과 동일한지 여부를 판단하여 유효성을 검증하는
    것을 특징으로 하는 이력 검증 시스템.
  15. 제9항에 있어서,
    상기 검증부는,
    상기 이벤트간 형성된 블록체인과 상기 이벤트에 대하여 생성된 서명값을 분리하여 블록체인 각각에 대한 유효성 검사 및 각각의 객체에 대한 서명값에 대한 검증을 수행하는
    것을 특징으로 하는 이력 검증 시스템.
KR1020170135676A 2017-10-19 2017-10-19 Epcis 이력 이벤트 간 블록체인 구성을 통한 이력 검증 방식 KR101922814B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170135676A KR101922814B1 (ko) 2017-10-19 2017-10-19 Epcis 이력 이벤트 간 블록체인 구성을 통한 이력 검증 방식
PCT/KR2017/014820 WO2019078411A1 (ko) 2017-10-19 2017-12-15 Epcis 이력 이벤트 간 블록체인 구성을 통한 이력 검증 방식

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170135676A KR101922814B1 (ko) 2017-10-19 2017-10-19 Epcis 이력 이벤트 간 블록체인 구성을 통한 이력 검증 방식

Publications (1)

Publication Number Publication Date
KR101922814B1 true KR101922814B1 (ko) 2018-11-27

Family

ID=64603192

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170135676A KR101922814B1 (ko) 2017-10-19 2017-10-19 Epcis 이력 이벤트 간 블록체인 구성을 통한 이력 검증 방식

Country Status (2)

Country Link
KR (1) KR101922814B1 (ko)
WO (1) WO2019078411A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110708280B (zh) * 2019-08-21 2021-02-09 北京邮电大学 一种集合多家独立单元组成的根区块链认证系统及方法
US11233640B2 (en) 2020-05-13 2022-01-25 Ridgeline, Inc. Mutation processing for events
US11949784B2 (en) 2020-05-13 2024-04-02 Ridgeline, Inc. Auditing for events
US11818259B2 (en) * 2020-05-13 2023-11-14 Ridgeline, Inc. Query and projection processing for events
CN111832079B (zh) * 2020-07-16 2024-01-30 湖南大学 Epc全球网络中一种基于区块链的查询结果完整性验证方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011142477A (ja) * 2010-01-07 2011-07-21 Hitachi Ltd 原本性保証方法、管理サーバ、プログラムおよび記憶媒体

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4235193B2 (ja) * 2005-06-07 2009-03-11 日本電信電話株式会社 イベント履歴蓄積装置、イベント情報検証装置、イベント履歴蓄積方法、イベント情報検証方法およびイベント情報処理システム
KR100927591B1 (ko) * 2006-12-05 2009-11-23 한국전자통신연구원 물품의 전자이력 관리 시스템 및 그 방법
JP4845218B2 (ja) * 2007-08-09 2011-12-28 Necトーキン株式会社 物品管理システム
KR20100098863A (ko) * 2009-03-02 2010-09-10 (주) 씨이엔 알에프아이디를 이용한 계층적 계보 관리 방법 및 시스템과이를 위한 기록매체

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011142477A (ja) * 2010-01-07 2011-07-21 Hitachi Ltd 原本性保証方法、管理サーバ、プログラムおよび記憶媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
‘IBM-월마트, 블록체인으로 식품 이력 추적’, 지디넷코리아(2017.08.24. 게재)*
김상태 외 4명. ‘식품의 이력 인증 서비스를 위한 EPCIS 기반 블록체인 시스템 설계 제안’. 한국통신학회 하계종합학술발표회 논문집. 한국통신학회. 2017년 6월, pp.853-854*

Also Published As

Publication number Publication date
WO2019078411A1 (ko) 2019-04-25

Similar Documents

Publication Publication Date Title
KR101922814B1 (ko) Epcis 이력 이벤트 간 블록체인 구성을 통한 이력 검증 방식
TWI780433B (zh) 基於聯邦學習的孤立森林模型構建和預測方法和裝置
CN110458699B (zh) 基于分布式帐簿的、实现金融包容性和可持续性的供应链应用的身份和起源
Hepp et al. Securing physical assets on the blockchain: Linking a novel object identification concept with distributed ledgers
JP2020074513A (ja) 供給チェーンにおける出所の暗号検証
CN102841992B (zh) 用于基于计算机的当前组件生成用于受保护的数字数据对象的加密密钥的方法
US20200372003A1 (en) Storage of measurement datasets and distributed databases
CN108023896A (zh) 区块同步方法及系统
CN105683910B (zh) 用于更新只读系统映像内的系统级服务的系统和方法
US20200371487A1 (en) Operational policies of industrial field devices and distributed databases
EP3429167B1 (en) Published information processing method and device, and information publishing system
WO2023014604A1 (en) Non-fungible token authentication
US20160171246A1 (en) Code integrity protection by computing target addresses from checksums
KR101954304B1 (ko) 블록체인 기반의 담배 추적 방법 및 이를 이용한 담배 추적 서버
Maria et al. ScrumS: a model for safe agile development
US11715005B2 (en) Verification and identification of a neural network
CN109033818B (zh) 终端、验证方法和计算机可读存储介质
CN111798254A (zh) 追溯码生成方法、装置、设备及可读存储介质
US20210168162A1 (en) Method and system for detecting webshell using process information
KR102306195B1 (ko) 트레이서빌리티 식별자
CN111222181B (zh) Ai模型的监管方法、系统、服务器及存储介质
CN112711570A (zh) 日志信息的处理方法、装置、电子设备及存储介质
CN105593876A (zh) 序列化流中的验证
JP6663700B2 (ja) セキュリティ対策立案支援方式
US11791986B2 (en) Unauthorized use detection system, information processing apparatus, computer-readable recording medium and unauthorized use detection method

Legal Events

Date Code Title Description
GRNT Written decision to grant