KR20190120549A - 블록 체인 기반의 의사 표시 검증 시스템 및 방법 - Google Patents

블록 체인 기반의 의사 표시 검증 시스템 및 방법 Download PDF

Info

Publication number
KR20190120549A
KR20190120549A KR1020180043873A KR20180043873A KR20190120549A KR 20190120549 A KR20190120549 A KR 20190120549A KR 1020180043873 A KR1020180043873 A KR 1020180043873A KR 20180043873 A KR20180043873 A KR 20180043873A KR 20190120549 A KR20190120549 A KR 20190120549A
Authority
KR
South Korea
Prior art keywords
indication
pseudo
result data
key
participation
Prior art date
Application number
KR1020180043873A
Other languages
English (en)
Other versions
KR102062281B1 (ko
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 KR1020180043873A priority Critical patent/KR102062281B1/ko
Publication of KR20190120549A publication Critical patent/KR20190120549A/ko
Application granted granted Critical
Publication of KR102062281B1 publication Critical patent/KR102062281B1/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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • G06Q50/30
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • 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
    • G06Q2230/00Voting or election arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Operations Research (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 블록 체인 기반의 네트워크 상에 포함된 복수의 노드 내 적어도 하나 이상의 프로세서에 의해 실행되는 의사 표시 수집용 어플리케이션이 블록 체인 내에 포함되어 수행되는 블록 체인 기반의 의사 표시 검증 시스템 및 방법에 관한 것으로서, 상기 복수의 노드 중 적어도 하나 이상은 관리 노드이며, 상기 관리 노드는 공개키 및 개인키를 관리하며, 참여자 각각에 대한 신원 확인 절차를 통해 서로 다른 참여키를 생성함과 더불어 상기 의사 표시 수집용 어플리케이션과 상기 생성한 참여키 및 공개키를 제공하며, 상기 의사 표시 수집용 어플리케이션은 참여자로부터 의사 표시가 이루어짐에 따라 의사 표시 결과 데이터를 생성한 후 이를 상기 공개키로 암호화하여 기록매체에 저장함과 더불어 참여키 및 암호화된 의사 표시 결과 데이터를 블록 체인 기반의 네트워크 상의 이웃하는 노드에 전송하며, 상기 블록 체인 기반의 네트워크 상의 이웃하는 노드로부터 참여키 및 암호화된 의사 표시 결과 데이터가 수신됨에 따라 상기 수신한 참여키와 암호화된 의사 표시 결과 데이터를 기록매체에 저장하되, 상기 수신한 참여키와 기록매체에 저장된 참여키간의 비교를 통해 중복 체크를 수행한 후 중복 체크 결과에 의거하여 상기 암호화된 의사 표시 결과 데이터 및 참여키를 저장함과 더불어 상기 수신한 암호화된 의사 표시 결과 데이터 및 참여키를 이웃하는 다른 노드에 전송할 수 있다.

Description

블록 체인 기반의 의사 표시 검증 시스템 및 방법{METHOD AND SYSTEM FOR VERIFYING EXPRESSION OF ONE'S INTENTION BASED BLOCK CHAIN}
본 발명은 블록 체인 기반의 의사 표시 검증 시스템 및 방법에 관한 것이다.
온라인상으로 사용자가 의사 표시를 하고 수신자가 이를 확인하는 경우(전자 투표)가 빈번하게 발생한다. 전자 투표가 대표적인 예인데, 전자 투표 이외에도 온라인 거래나 계약에 관련된 의사 표시, 온라인 토론 등에서의 의사 표시, 온라인 콘텐츠에 대한 댓글 등이 있을 수 있다.
온라인 의사 표시 중 예를 들어 전자 투표는 투표장에 가지 않고 전자적 연산 및 데이터 처리가 가능한 전자 단말기를 통해서 하는 투표로서 저비용, 편의성, 확장성이라는 장점이 있음에도 불구하고 해킹, 내부자 조작 위험, 원격 상황에서 일어날 수 있는 강압적 의사표시 등의 문제로 과정과 결과에 대한 무결성(integrity)을 보장하기 어려워 광범위하게 도입되지 못하고 있는 실정이다.
이 관점에서 분산원장 기술인 블록체인을 전자투표와 같은 온라인 의사표시 확인에 적용하면 조작 또는 해킹의 위협을 배제할 수 있다. 그러나 블록체인은 공개키와 이를 사용할 수 있는 개인키만 있으면 어디에서든 사용할 수 있고, 이외에 일체의 개인정보가 불필요하기 때문에 1인이 수많은 ID를 생성해서 마치 여러 사람의 의사 표시인 것으로 호도하는 시빌 공격(Sybil Attack)에 취약하게 되어 참여자 간 의사 표현의 평등성이 침해되는 문제가 있다.
시빌 공격을 막기 위해서는 참여자의 고유성을 보장할 수 있어야 하고, 결국 민감한 개인정보가 수집되고 저장되어야 한다. 이는 사용자의 프라이버시와 익명성을 훼손하고, 되려 자유로운 의사 표시가 제한될 수 있다.
대한민국 등록특허 제10-0912794호(2009.08.18. 등록)
본 발명은 익명성과 시빌 공격을 원천적으로 차단할 수 있는 블록 체인 기반의 의사 표시 검증 시스템 및 방법을 제공한다.
또한, 본 발명은 어느 하나의 참여자가 복수의 단말기를 이용하여 의사 표시를 수행할 수 있는 것을 원천적으로 차단할 수 있는 블록 체인 기반의 의사 표시 검증 시스템 및 방법을 제공한다.
상술한 해결하고자 하는 과제를 해결하기 위해서 본 발명의 일 실시예에 따른 블록 체인 기반의 의사 표시 검증 시스템은 블록 체인 기반의 네트워크 상에 포함된 복수의 노드 내 적어도 하나 이상의 프로세서에 의해 실행되는 의사 표시 수집용 어플리케이션이 블록 체인 내에 포함되어 수행되며, 상기 복수의 노드 중 적어도 하나 이상은 관리 노드이며, 상기 관리 노드는 공개키 및 개인키를 관리하며, 참여자 각각에 대한 신원 확인 절차를 통해 서로 다른 참여키를 생성함과 더불어 상기 의사 표시 수집용 어플리케이션과 상기 생성한 참여키 및 공개키를 제공하며, 상기 의사 표시 수집용 어플리케이션은 참여자로부터 의사 표시가 이루어짐에 따라 의사 표시 결과 데이터를 생성한 후 이를 상기 공개키로 암호화하여 기록매체에 저장함과 더불어 참여키 및 암호화된 의사 표시 결과 데이터를 블록 체인 기반의 네트워크 상의 이웃하는 노드에 전송하며, 상기 블록 체인 기반의 네트워크 상의 이웃하는 노드로부터 참여키 및 암호화된 의사 표시 결과 데이터가 수신됨에 따라 상기 수신한 참여키와 암호화된 의사 표시 결과 데이터를 기록매체에 저장하되, 상기 수신한 참여키와 기록매체에 저장된 참여키간의 비교를 통해 중복 체크를 수행한 후 중복 체크 결과에 의거하여 상기 암호화된 의사 표시 결과 데이터 및 참여키를 저장함과 더불어 상기 수신한 암호화된 의사 표시 결과 데이터 및 참여키를 이웃하는 다른 노드에 전송하며, 상기 기록매체에 저장된 암호화된 의사 표시 결과 데이터가 기 설정된 개수 이상일 경우 암호화된 의사 표시 결과 데이터를 이용하여 블록을 생성한 후 이를 이웃하는 노드에 전송할 수 있다.
상술한 해결하고자 하는 과제를 해결하기 위해서 본 발명의 다른 실시예에 따른 블록 체인 기반의 의사 표시 검증 시스템은 블록 체인 기반의 네트워크 상에 포함된 복수의 노드 내 적어도 하나 이상의 프로세서에 의해 실행되는 의사 표시 수집용 어플리케이션이 블록 체인 내에 포함되어 수행되며, 상기 복수의 노드 중 적어도 하나 이상은 관리 노드이며, 상기 관리 노드는 공개키 및 개인키를 관리하며, 참여자 각각에 대한 신원 확인 절차를 통해 서로 다른 참여키를 생성함과 더불어 전송 횟수 플래그가 설정된 상기 의사 표시 수집용 어플리케이션과 상기 생성한 참여키 및 공개키를 제공하며, 상기 의사 표시 수집용 어플리케이션은 참여자로부터 의사 표시가 이루어짐에 따라 의사 표시 결과 데이터를 생성한 후 이를 상기 공개키로 암호화하여 기록매체에 저장함과 더불어 블록 체인 기반의 네트워크 상의 이웃하는 노드에 전송하되, 상기 전송 횟수 플래그에 해당되는 횟수만큼 상기 의사 표시 결과 데이터를 생성하여 전송하며, 상기 블록 체인 기반의 네트워크 상의 이웃하는 노드로부터 암호화된 의사 표시 결과 데이터가 수신됨에 따라 상기 수신한 암호화된 의사 표시 결과 데이터를 상기 기록매체에 저장함과 더불어 이웃한 다른 노드에 전송하며, 상기 기록매체에 저장된 암호화된 의사 표시 결과 데이터가 기 설정된 개수 이상일 경우 암호화된 의사 표시 결과 데이터를 이용하여 블록을 생성한 후 이를 이웃하는 노드에 전송할 수 있다.
본 발명의 실시예에 따르면, 상기 관리 노드는 임의의 노드로부터 상기 참여키 및 공개키를 수신함에 따라 상기 임의의 노드에 의사 표시 수집용 어플리케이션을 제공한 후 상기 의사 표시 수집용 어플리케이션이 배포된 참여키에 배포 완료 지시자를 매칭시켜 기록매체에 저장하며, 상기 기록매체에 저장된 배포 완료 지시자가 매칭된 참여키를 이용한 의사 표시 수집용 어플리케이션의 요청이 있을 경우 이를 제한시키는 어플리케이션 배포 및 제한 모듈을 포함할 수 있다.
본 발명의 실시예에 따르면, 상기 관리 노드는 의사 표시 종료 시점에 도달하면, 상기 기록매체에 저장된 암호화된 의사 표시 결과 데이터를 상기 개인키를 이용하여 복호화하여 의사 표시에 대한 결과 데이터를 생성한 후 이를 노드들에게 제공하는 결과 생성 모듈을 포함할 수 있다.
본 발명의 실시예에 따르면, 상기 관리 노드는 상기 관리 노드를 제외한 임의의 노드로부터 상기 결과 데이터에 대한 검증 요청이 있을 경우 상기 개인키를 상기 임의의 노드에 제공하며, 상기 임의의 노드 내 의사 표시 수집용 어플리케이션은 상기 수신한 개인키를 이용하여 자신의 기록매체에 저장된 의사 표시 결과 데이터를 복호화한 후 상기 복호화한 결과와 상기 관리 노드로부터 제공받은 결과 데이터간의 비교를 통해 일치 여부에 대한 정보를 제공할 수 있다.
상술한 해결하고자 하는 과제를 해결하기 위해서 본 발명의 실시예에 따른 블록 체인 기반의 의사 표시 검증 방법은 블록 체인 기반의 네트워크 상에 포함된 복수의 노드 내 적어도 하나 이상의 프로세서에 의해 실행되는 의사 표시 수집용 어플리케이션이 블록 체인 내에 포함되어 수행되는 시스템을 이용한 의사 표시 방법에 있어서, 상기 복수의 노드 중 적어도 하나 이상은 관리 노드에서 참여자 각각에 대한 신원 확인 절차를 통해 서로 다른 참여키를 생성함과 더불어 상기 의사 표시 수집용 어플리케이션과 상기 생성한 참여키 및 공개키를 제공하는 단계와, 상기 의사 표시 수집용 어플리케이션을 통해 참여자로부터 의사 표시가 이루어짐에 따라 의사 표시 결과 데이터를 생성한 후 이를 상기 공개키로 암호화하여 기록매체에 저장함과 더불어 참여키 및 암호화된 의사 표시 결과 데이터를 블록 체인 기반의 네트워크 상의 이웃하는 노드에 전송하는 단계와, 상기 블록 체인 기반의 네트워크 상의 이웃하는 노드로부터 참여키 및 암호화된 의사 표시 결과 데이터가 수신되면, 상기 수신한 참여키와 암호화된 의사 표시 결과 데이터를 기록매체에 저장하되, 상기 수신한 참여키와 기록매체에 저장된 참여키간의 비교를 통해 중복 체크를 수행하여 상기 수신한 암호화된 의사 표시 결과 데이터의 유효성을 체크하는 단계와, 상기 유효성을 체크한 결과, 상기 기록매체에 저장된 참여키를 포함한 상기 암호화된 의사 표시 결과 데이터가 수신되는 경우 이를 폐기 처리하는 단계와, 상기 유효성을 체크한 결과, 상기 기록매체에 저장된 참여키와 일치하지 않는 참여키가 수신되는 경우 상기 수신한 암호화된 의사 표시 결과 데이터와 참여키를 기록매체에 저장한 후 상기 수신한 암호화된 의사 표시 결과 데이터와 참여키를 이웃하는 노드에 전송하는 단계와, 상기 기록매체에 저장된 암호화된 의사 표시 결과 데이터가 기 설정된 개수 이상일 경우 암호화된 의사 표시 결과 데이터를 이용하여 블록을 생성한 후 이를 이웃하는 노드에 전송하는 단계를 포함할 수 있다.
본 발명의 실시예에 따르면, 상기 의사 표시 검증 방법은 임의의 노드로부터 상기 참여키 및 공개키를 수신한 후 이에 대한 응답으로 상기 임의의 노드에 의사 표시 수집용 어플리케이션을 제공한 후 상기 의사 표시 수집용 어플리케이션이 배포된 참여키에 배포 완료 지시자를 매칭시켜 기록매체에 저장하는 단계와, 상기 기록매체에 저장된 배포 완료 지시자가 매칭된 참여키를 이용한 의사 표시 수집용 어플리케이션의 요청이 있을 경우 이를 제한시키는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따르면, 상기 의사 표시 검증 방법은 의사 표시 종료 시점에 도달하면, 상기 기록매체에 저장된 암호화된 의사 표시 결과 데이터를 상기 개인키를 이용하여 복호화하여 의사 표시에 대한 결과 데이터를 생성한 후 이를 노드들에게 제공하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따르면, 상기 의사 표시 검증 방법은 상기 관리 노드를 제외한 임의의 노드로부터 상기 결과 데이터에 대한 검증 요청이 있을 경우 상기 개인키를 상기 임의의 노드에 제공하는 단계와, 상기 임의의 노드 내 의사 표시 수집용 어플리케이션에서 상기 수신한 개인키를 이용하여 자신의 기록매체에 저장된 의사 표시 결과 데이터를 복호화한 후 상기 복호화한 결과와 상기 관리 노드로부터 제공받은 결과 데이터간의 비교를 통해 일치 여부에 대한 정보를 제공하는 단계를 포함할 수 있다.
전술한 본 발명의 과제 해결 수단에 따르면, 블록 체인 기반으로 동작하는 어플리케이션을 통해 의사 표시에 따른 데이터를 암호화하여 관리함으로써, 익명성과 시빌 공격을 원천적으로 차단할 수 있다.
또한, 전술한 본 발명의 과제 해결 수단에 따르면, 참여자에게 중복으로 어플리케이션이 배포되는 것을 차단할 뿐만 아니라 참여자 각각에 부여된 참여키를 이용하여 어느 하나의 참여자에 의해 복수의 의사 표시가 수행되는 것을 차단할 수 있다.
또한, 전술한 본 발명의 과제 해결 수단에 따르면, 참여자의 요청에 따라 참여자 자신의 노드에 저장된 데이터와 관리 노드에 의해 제공되는 결과 데이터간의 비교 및 검증할 수 있는 시스템 및 방법을 제공함으로써, 사용자에게 결과 데이터를 신뢰성을 높일 수 있다.
도 1은 본 발명의 실시예에 따른 블록 체인 기반의 의사 표시 검증 시스템의 전반적인 구성을 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 의사 표시 검증 시스템에서 관리 노드의 구체적인 기능을 도시한 블록도이다.
도 3은 본 발명의 실시예에 따라 블록 체인 기반으로 의사 표시 검증 시스템의 참여자 노드에서 의사 표시를 위한 동작을 수행하는 과정을 도시한 흐름도이다.
도 4는 본 발명의 실시예에 따른 블록 체인 기반의 의사 표시 검증 시스템에서 특정 참여자 노드에 의해 무분별하게 의사 표시가 이루어지는 것을 방지하는 과정을 도시한 흐름도이다.
도 5는 본 발명의 실시예에 따른 블록 체인 기반의 의사 표시 검증 시스템에서 의사 표시 결과 데이터를 검증하는 과정을 도시한 흐름도이다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시 예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다.
이하 첨부된 도면을 참조하여 블록 체인 기반의 의사 표시 검증 시스템 및 방법에 대해 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 블록 체인 기반의 의사 표시 검증 시스템의 전반적인 구성을 도시한 블록도이다.
도 1의 설명에 앞서, 의사 표시라 함은 사용자가 소정의 주제나 이슈에 대한 본인의 의사를 표시하는 것으로서, 예를 들어, 전자 투표, 토론, 온라인 상의 댓글 등 사용자가 의사를 표시할 수 있는 분야라면 모두 포함할 수 있다.
도 1에 도시된 바와 같이, 의사 표시 검증 시스템은 블록 체인 기반의 네트워크로 연결된 적어도 하나 이상의 관리 노드(100) 및 복수의 참여자 노드(110)로 구성될 수 있다.
또한, 참여자 노드(110) 및 관리 노드(100)는 블록 체인 상에서 실행되는 의사 표시 수집용 어플리케이션(120)을 포함할 수 있다.
본 발명의 실시예에서 의사 표시 수집용 어플리케이션(120)은 블록 체인 내에 포함되어 수행될 수 있다. 이에 따라, 본 발명은 블록 체인을 포함하는 환경에서 의사 표시를 위한 동작을 수행하기 때문에 위변조의 위험이 원천적으로 차단될 수 있다.
또한, 본 발명의 실시예에 따른 참여자 노드(110) 및 관리 노드(100)는 통신 회로(130), 입출력 회로(132), 디스플레이(134), 의사 표시 수집용 어플리케이션(120)이 실행 가능한 형태로 저장된 기록매체(136), 의사 표시 수집용 어플리케이션(120)을 실행시킬 수 있는 적어도 하나 이상의 프로세서(138) 등을 기반으로 전자적 연산 및 데이터 처리 가능한 기기일 수 있다. 특히, 본 발명의 실시예에 따른 참여자 노드(110)는 스마트폰, PC, 테블릿 등과 같은 단말기를 예로 들 수 있으며, 관리 노드(100)는 익명성을 보장할 수 있도록 하기 위한 다양한 기능을 구비한 서버일 수 있다.
본 발명의 실시예에 따른 참여자 노드(110)는 신원 확인 절차(예를 들어, KYC 프로세스)에 따라서 사용자별로 고유한 식별 정보(IDE)가 생성되어 있어야 한다. 예를 들어, 사용자의 신원을 확인할 수 있는 신분증이나 생체 인식 과정 등을 통해서, 특정 사용자에게만 유일하게 부여되고 중복되지 않는 식별 정보(IDE)이나 건물 등의 소유 정보 등을 미리 생성하여 참여자 노드(110)의 기록매체(136)에 저장하고 있거나 사용자가 입력할 수 있어야 한다. KYC와 같은 신원 확인 절차는 공지 기술이며 다양한 방식을 통해서 사용자 식별 정보(IDE)가 생성될 수 있기 때문에 본 명세서에서 신원 확인에 대한 자세한 설명은 생략한다.
본 발명의 실시예에 따른 의사 표시 확인 방법이 수행되는 환경의 블록 체인 네트워크 퍼블릭 블록 체인이거나 특정 조직, 예컨대 건축 조합이나 기관에서만 적용되는 프라이빗 블록 체인 또는 컨소시음 블록 체인이어도 무방하다.
상술한 바와 같은 참여자 노드(110) 내 의사 표시 수집용 어플리케이션(120)은 관리 노드(100)로부터 사용자 인증 과정을 통해 전송받아 기록매체(136)에 실행 가능한 형태로 저장될 수 있으며, 참여자 노드(110) 내 적어도 하나 이상의 프로세서(138)에 의해 실행되어 의사 표시, 의사 표시 결과 데이터 배포, 수신 및 블록 생성 등의 기능을 수행할 수 있다. 이를 위하여, 본 발명의 실시예에 따른 참여자 노드(110)는 사용자 인증을 위한 식별 정보를 관리 노드(100)에 전송한 후 이에 대한 응답으로 관리 노드(100)로부터 공개키 및 참여키를 수신하며, 공개키 및 참여키의 입력을 통해 관리 노드(100)로부터 수신한 의사 표시 수집용 어플리케이션(120)을 기록매체(136)에 실행 가능한 형태로 저장할 수 있다.
기록매체(136)에 저장된 의사 표시 수집용 어플리케이션(120)은 사용자의 의사 표시 요청에 따라 의사 표시를 위한 인터페이스, 예컨대 투표를 위한 인터페이스를 제공하며, 인터페이스를 통해 의사 표시에 대응되는 사용자 입력이 있을 경우 의사 표시 결과 데이터를 생성한 후 이를 공개키를 이용하여 암호화하여 기록매체(136)에 저장함과 더불어 이를 블록 체인 기반의 네트워크를 통해 이웃하는 노드, 예컨대 이웃하는 참여자 노드(110) 또는 관리 노드(100)에 전송하여 배포할 수 있다.
또한, 의사 표시 수집용 어플리케이션(120)은 암호화한 의사 표시 결과 데이터를 전송할 때 참여키를 이웃하는 참여자 노드(110) 및/또는 관리 노드(100)에 전송하며, 외부의 다른 참여자 노드(110)로부터 수신되는 참여키를 기록매체(136)에 저장한 후 이를 기반으로 동일한 참여자 노드(110)로부터 복수의 의사 표시 결과 데이터가 수신되어 저장되는 것을 방지할 수 있다. 구체적으로, 의사 표시 수집용 어플리케이션(120)은 이웃하는 참여자 노드(110)로부터 암호화된 의사 표시 결과 데이터와 함께 수신되는 참여키가 기록매체(136)에 존재하는지를 판단하며, 판단 결과에 의거하여 암호화된 의사 표시 결과 데이터 및 참여키를 기록매체(136)에 저장하거나 폐기 처리할 수 있다.
한편, 의사 표시 수집용 어플리케이션(120)은 기록매체(136)에 저장된 의사 표시 결과 데이터의 개수를 체크하며, 체크 결과 기 설정된 개수에 해당하는 의사 표시 결과 데이터가 저장된 것으로 체크됨에 따라 블록을 생성한 후 블록을 이웃하는 참여자 노드(110) 및 관리 노드(100)에 전송할 수 있다.
의사 표시 수집용 어플리케이션(120)은 의사 표시 제한 기능을 더 구비할 수 있다. 이를 위하여 본 발명의 실시예에 따른 의사 표시 수집용 어플리케이션(120)에는 전송 횟수 플래그가 설정되어 있을 수 있다.
전송 횟수 플래그가 설정된 의사 표시 수집용 어플리케이션(120)은 전송 횟수 플래그에 해당되는 횟수만큼 암호화된 의사 표시 결과 데이터를 생성 및 전송할 수 있다. 예를 들어, 전송 횟수 플래그가 "1"인 경우 의사 표시 수집용 어플리케이션(120)은 하나의 의사 표시 결과 데이터만 생성한 후 이를 전송하며, 이후 의사 표시 결과 데이터에 대한 생성을 제한시킬 수 있다.
본 발명의 실시예에 따른 노드 중 관리 노드(100)는 의사 표시 결과 데이터에 대해 비대칭 암호화 알고리즘을 적용하기 위한 공개키와 개인키를 관리하며, 참여자 노드(110)의 참여자 신청 요청에 따라 신원 확인 절차를 통해 확인된 참여자 노드(110) 각각에 서로 다른 참여키와 더불어 공개키를 전송한 후 참여자 노드(110)로부터 참여키와 공개키가 수신됨에 따라 의사 표시 수집용 어플리케이션(120)을 전송하여 참여자 노드(110)에 설치할 수 있다.
또한, 관리 노드(100)는 의사 표시 수집용 어플리케이션(120)이 참여자 노드(110)에 전송됨에 따라 참여자 노드(110)로부터 수신한 참여키에 배포 완료 지시자를 매칭시켜 기록매체(136)에 저장 및 관리할 수 있다. 이를 통해 관리 노드(100)는 기록매체(136)에 저장된 참여키, 즉 배포 완료 지시자가 매칭된 참여키의 전송을 통해 어플리케이션 요청이 있을 경우 이를 어플리케이션 전송을 제한시킬 수 있다. 구체적으로, 관리 노드(100)는 기록매체(136)에 저장된 참여키와 공개키를 이용한 어플리케이션 요청이 참여자 노드(110)로부터 수신되는 경우 어플리케이션 배포 에러를 발생시켜 동일자 참여자가 복수의 기기를 이용하여 어플리케이션을 설치하여 이용하는 것을 차단할 수 있다.
한편, 관리 노드(100)는 기 설정된 기간(의사 표시 종료 기간)이 경과됨에 따라 개인키를 이용하여 공개키 기반으로 암호화된 의사 표시 결과 데이터를 복호화하여 외부로 공개할 수 있다.
이를 위하여, 관리 노드(100)는, 도 2에 도시된 바와 같이, 적어도 하나 이상의 명령어 형태로 구현된 키 관리 모듈(200), 어플리케이션 배포 및 제한 모듈(210), 결과 생성 모듈(220) 및 검증 요청 처리 모듈(230) 등을 포함할 수 있다.
키 관리 모듈(200)은 공개키와 개인키를 관리하며, 신원 확인 절차를 통해 확인된 참여자에게 부여될 참여키를 생성한 후 이를 참여자 노드(110)에 전송할 수 있다. 구체적으로, 키 관리 모듈(200)은 랜덤한 문자와 숫자 배열로 이루어진 참여키를 생성한 후 이를 참여자 노드(110)에 전송할 수 있다.
어플리케이션 배포 및 제한 모듈(210)은 참여자 노드(110)로부터 참여키와 공개키가 수신됨에 따라 어플리케이션, 즉 의사 표시 수집용 어플리케이션(120)을 참여자 노드(110)에 전송하여 배포할 수 있다. 구체적으로, 어플리케이션 배포 및 제한 모듈(210)은 참여자 노드(110)로부터 참여키와 공개키가 수신됨에 따라 기록매체(136)에 수신된 참여키 또는 공개키가 존재하는지의 여부를 통해 참여자 노드(110)에 대한 인증을 수행하며, 인증된 참여자 노드(110)에 의사 표시 수집용 어플리케이션(120)을 전송할 수 있다.
또한, 어플리케이션 배포 및 제한 모듈(210)은 의사 표시 수집용 어플리케이션(120)의 전송에 따라 참여자 노드(110)로부터 수신한 참여키에 배포 완료 지시자를 매칭시켜 기록매체(136)에 저장하며, 의사 표시 수집용 어플리케이션(120)의 전송한 이후 동일한 참여키를 이용한 어플리케이션 요청이 수신되는 경우 어플리케이션을 전송하지 않고 에러 메시지를 전송함으로써, 동일한 참여자에게 복수개의 어플리케이션이 배포되는 것을 방지할 수 있다.
결과 생성 모듈(220)은 키 관리 모듈(200)에 의해 생성되어 배포된 모든 참여키가 수신됨에 따라 의사 표시 종료를 알리는 종료 메시지를 생성하여 복수의 참여자 노드(110)에 전송하거나, 기 설정된 기간, 예컨대 의사 표시 종료 시점에 도달하면 의사 표시 종료를 알리는 종료 메시지를 생성하여 복수의 참여자 노드(110)에 전송할 수 있다.
또한, 결과 생성 모듈(220)은 종료 메시지를 전송한 후 기록매체(136)에 저장된 의사 표시 결과 데이터를 개인키로 복호화하여 의사 표시에 대한 결과 데이터를 생성하며, 생성한 결과 데이터를 복수의 참여자 노드(110)에 전송할 수 있다.
또한, 검증 요청 처리 모듈(230)은 특정 참여자 노드(110)로부터 검증 요청에 따라 개인키를 특정 참여자 노드(110)에 전송할 수 있다. 이 경우, 특정 참여자 노드(110)의 의사 표시 수집용 어플리케이션(120)은 수신한 개인키로 특정 참여자 노드(110)의 기록매체(136)에 저장된 의사 표시 결과 데이터를 복호화하여 결과 데이터를 생성하며, 생성한 결과 데이터와 결과 생성 모듈(220)로부터 수신한 결과 데이터간의 비교를 통해 검증 결과, 즉 데이터간 일치 여부를 디스플레이(134)를 통해 표시할 수 있다.
상술한 바와 같은 의사 표시 검증 시스템에서 의사 표시 수집용 어플리케이션(120)이 블록 체인 상에 동작하는 과정에 대해 도 3을 참조하여 설명한다.
도 3은 본 발명의 실시예에 따라 블록 체인 기반으로 의사 표시 검증 시스템의 참여자 노드에서 의사 표시를 위한 동작을 수행하는 과정을 도시한 흐름도이다.
도 3에 도시된 바와 같이, 의사 표시 참여자로 참여하기 위해서 참여자 노드(110)는 신원 확인 절차를 위한 정보를 관리 노드(100)에 전송하여 신원 확인 절차를 수행한 후 이에 대한 응답으로 공개키와 참여키를 수신한다(S300).
그런 다음, 참여자 노드(110)는 참여자에 의해 입력된 공개키와 참여키의 전송을 통해 블록 체인 상에서 실행되어 동작할 의사 표시 수집용 어플리케이션(120)을 요청한다(S302). 이에 따라, 관리 노드(100)는 공개키 또는 참여키를 이용하여 참여자에 대한 검증을 수행한 후 의사 표시 수집용 어플리케이션(120)을 참여자 노드(110)에 전송하며, 배포 완료 지시자를 생성한 후 이와 참여자 노드(110)로부터 수신한 참여키를 매칭시켜 기록매체(136)에 저장한다.
참여자 노드(110)는 관리 노드(100)로부터 의사 표시 수집용 어플리케이션(120)을 수신한 후 이를 실행 가능한 형태로 기록매체(136)에 저장한다(S304).
상술한 바와 같은 단계를 통해 복수의 참여자 노드(110)에 공개키 및 서로 다른 참여키를 배포함과 더불어 의사 표시 수집용 어플리케이션(120)을 배포함으로써, 복수의 참여자 노드(110)와 관리 노드(100)로 구성된 블록 체인 기반의 네트워크가 구성될 수 있다.
이후, 특정 참여자 노드(110)는 참여자로부터 의사 표시 요청, 예컨대 의사 표시 수집용 어플리케이션(120)의 실행을 위한 선택 입력에 따라 기록매체(136)에 저장된 의사 표시 수집용 어플리케이션(120)을 실행시킨다. 실행된 의사 표시 수집용 어플리케이션(120)은 의사 표시를 위한 인터페이스를 제공하며, 인터페이스를 통해 입력된 정보를 기반으로 의사 표시 결과 데이터를 생성한 후 공개키를 이용하여 암호화하며(S306), 참여키와 암호화된 의사 표시 결과 데이터를 이웃한 다른 참여자 노드(110) 또는 관리 노드(100)에 전송하여 배포한다(S308).
또한, 참여키와 암호화된 의사 표시 결과 데이터를 수신한 이웃 노드는 자신의 이웃 노드에 전송하는 방식으로 블록 체인 기반의 네트워크 상에 존재하는 모든 노드들에게 의사 표시 결과 데이터 및 참여키가 전송될 수 있다.
한편, 의사 표시 수집용 어플리케이션(120)은 기록매체(136)에 저장된 의사 표시 결과 데이터의 개수를 체크(S310)하며, 체크한 의사 표시 결과 데이터의 개수가 기 설정된 개수에 도달할 경우 블록을 생성(S312)한 후 해당 블록을 이웃 노드, 예컨대 이웃하는 다른 참여자 노드(110) 또는 관리 노드(100)에 배포한다(S314). 블록을 수신한 노드는 블록에 대한 유효성 검증을 수행한 후 유효한 블록을 자신의 기록매체(136)에 저장한다.
한편, 참여자 노드(110) 및 관리 노드(100)가 의사 표시 수집용 어플리케이션(120)을 이용하여 특정 참여자 노드에 의해 무분별하게 의사 표시가 이루어지는 것을 방지하는 과정에 대해 도 4를 참조하여 설명한다.
도 4는 본 발명의 실시예에 따른 블록 체인 기반의 의사 표시 검증 시스템에서 특정 참여자 노드에 의해 무분별하게 의사 표시가 이루어지는 것을 방지하는 과정을 도시한 흐름도이다.
먼저, 도 4에 도시된 바와 같이, 외부, 즉 이웃한 노드로부터 암호화된 의사 표시 결과 데이터 및 참여키가 수신되면(S400), 의사 표시 수집용 어플리케이션(120)은 수신한 참여키와 기록매체(136)에 저장된 참여키간의 비교를 통해 의사 표시 결과 데이터에 대한 중복 수신 여부를 판단하여 암호화된 의사 표시 결과 데이터가 유효한지를 판단한다(S402).
S402의 판단 결과, 특정 참여자로부터 기 설정된 개수 이상의 의사 표시 결과 데이터가 수신된 경우(특정 참여자로부터 하나 이상의 의사 표시 결과 데이터가 수신된 것으로 판단되는 경우), 의사 표시 수집용 어플리케이션(120)은 특정 참여자로부터 수신된 의사 표시 결과 데이터가 유효하지 않는 것으로 판단하여 폐기 처리한다(S404).
한편, S402의 판단 결과, 특정 참여자로부터 수신된 의사 표시 결과 데이터가 중복 수신이 아닌 경우, 의사 표시 수집용 어플리케이션(120)은 수신한 의사 표시 결과 데이터 및 참여키를 기록매체(136)에 저장한 후 수신한 의사 표시 결과 데이터 및 참여키를 이웃한 노드, 예컨대 참여자 노드(110), 관리 노드(100)에 배포한다(S406).
한편, 상술한 바와 같은 도 3 및 도 4에 기재된 단계들을 통해 의사 표시 종료 시점(예컨대 투표 종료 시점)에 도달함에 따라 의사 표시 결과 데이터를 검증하는 과정에 대해 도 5를 참조하여 설명한다.
도 5는 본 발명의 실시예에 따른 블록 체인 기반의 의사 표시 검증 시스템에서 의사 표시 결과 데이터를 검증하는 과정을 도시한 흐름도이다.
도 5에 도시된 바와 같이, 의사 표시 종료 시점, 예컨대 투표 종료 시점에 도달하면(S500), 관리 노드(100)는 기록매체(136)에 저장된 블록 내 의사 표시 결과 데이터를 개인키로 복호화한 후 복호화한 의사 표시 결과 데이터를 이용하여 투표 결과 데이터를 생성하며(S502), 생성한 투표 결과 데이터를 블록 체인 기반의 네트워크 상에 참여자 노드(110)에게 전송하거나 외부 시스템, 예컨대 웹 시스템을 이용하여 복수의 참여자들에게 제공한다(S504).
이후, 임의의 참여자 노드(110)로부터 공개키와 참여키의 전송을 통해 결과 검증 요청이 있는 경우(S506), 관리 노드(100)는 참여키와 공개키를 이용하여 임의의 참여자에 대한 검증을 수행한 후 검증된 참여자인 것으로 판단되면 개인키를 임의의 참여자 노드(110)에 전송한다(S508).
임의의 참여자 노드(110)는 개인키를 이용하여 기록매체(136) 내 블록 내 의사 표시 결과 데이터를 복호화(S510)한 후 복호화한 데이터와 수신한 투표 결과 데이터를 비교한 정보, 예컨대 두 데이터간의 일치 여부에 관련된 정보를 디스플레이(134)에 표시해준다(S512).
한편, 본 발명의 실시예에서는 수신된 참여키의 중복 여부를 통해 하나의 참여자로부터 복수의 의사 표시 결과 데이터가 수신되는 것을 방지하는 것으로 예를 들어 설명하였지만, n(n은 2 이상의 자연수)개의 의사 표시가 가능한 경우 의사 표시 수집용 어플리케이션(120)에 참여 횟수인 n 값을 설정하여 특정 참여자 노드(110)에 의해 n개를 초과한 의사 표시 결과 데이터가 생성되는 것을 방지할 수 있다. 구체적으로, 의사 표시 수집용 어플리케이션(120)은 참여키가 수신될 때마다 수신한 참여키에 "1" 증가되는 카운터 값(k)을 매칭시켜 저장한 후 카운터 값이 설정된 참여키가 수신될 때 참여키의 카운터 값(k)과 참여 횟수(n)간의 비교를 통해 의사 표시 결과 데이터에 대한 기록매체(136)에 저장 여부를 결정함으로써, 동일한 참여자에 의해 무분별하게 의사 표시 결과 데이터가 생성되는 것을 방지할 수 있다. 즉, 임의의 참여자 노드(110)로부터 참여키와 암호화된 의사 표시 결과 데이터가 수신되면, 의사 표시 수집용 어플리케이션(120)은 수신한 참여키에 대한 카운터 값을 기록매체(136)에서 검색한 후 검색한 카운터 값과 참여 횟수가 동일한 경우 해당 참여키와 같이 수신된 암호화된 의사 표시 결과 데이터를 유효하지 않는 것으로 판단하여 폐기 처리할 수 있다.
또한, 특정 참여자로부터 중복의 의사 표시 결과 데이터가 생성되는 것을 방지하기 위해 전송 횟수를 제한시킬 수도 있다. 구체적으로, 전송 횟수가 제한된 의사 표시 수집용 어플리케이션(120)을 배포하여 설치함으로써, 중복 생성을 차단할 수 있다. 즉, 전송 횟수가 제한된 의사 표시 수집용 어플리케이션(120)은 의사 표시 결과 데이터가 생성될 때마다 생성 횟수 카운터 값을 증가시키고, 의사 표시 결과 데이터가 생성된 생성 횟수 카운터 값과 전송 횟수간의 비교를 통해 생성 횟수 카운터 값이 전송 횟수를 초과할 경우 의사 표시 결과 데이터를 전송하지 않음으로써, 특정 참여자에 의해 복수의 의사 표시 결과 데이터가 생성되어 전송되는 것을 방지할 수 있다.
한편, 본 발명의 실시예에서는 관리 노드(100)에 의해 관리되는 공개키를 이용하여 의사 표시 결과 데이터를 암호화하는 것으로 예를 들어 설명하였지만, 참여자 각각의 공개키를 이용하여 암호화할 수도 있다. 이 경우, 관리 노드(100)는 모든 참여자의 개인키를 관리하며, 의사 표시 종료 시점에 도달하거나 모든 참여자로부터 의사 표시 결과 데이터가 수신되는 경우 모든 참여자의 개인키를 이용하여 암호화된 의사 표시 결과 데이터를 복호화할 수 있다. 또한, 참여자 노드(110)는 공개키를 이용하여 참여자의 의사 표시 결과 데이터를 암호화하며, 개인키를 이용하여 참여자의 고유 식별 정보를 암호화하여 저장 및 배포할 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
100 : 관리 노드
110 : 참여자 노드
120 : 의사 표시 수집용 어플리케이션
130 : 통신 회로
132 : 입출력 회로
134 : 디스플레이
136 : 기록매체
138 : 프로세서

Claims (9)

  1. 블록 체인 기반의 네트워크 상에 포함된 복수의 노드 내 적어도 하나 이상의 프로세서에 의해 실행되는 의사 표시 수집용 어플리케이션이 블록 체인 내에 포함되어 수행되며,
    상기 복수의 노드 중 적어도 하나 이상은 관리 노드이며,
    상기 관리 노드는 공개키 및 개인키를 관리하며, 참여자 각각에 대한 신원 확인 절차를 통해 서로 다른 참여키를 생성함과 더불어 상기 의사 표시 수집용 어플리케이션과 상기 생성한 참여키 및 공개키를 제공하며,
    상기 의사 표시 수집용 어플리케이션은,
    참여자로부터 의사 표시가 이루어짐에 따라 의사 표시 결과 데이터를 생성한 후 이를 상기 공개키로 암호화하여 기록매체에 저장함과 더불어 참여키 및 암호화된 의사 표시 결과 데이터를 블록 체인 기반의 네트워크 상의 이웃하는 노드에 전송하며,
    상기 블록 체인 기반의 네트워크 상의 이웃하는 노드로부터 참여키 및 암호화된 의사 표시 결과 데이터가 수신됨에 따라 상기 수신한 참여키와 암호화된 의사 표시 결과 데이터를 기록매체에 저장하되, 상기 수신한 참여키와 기록매체에 저장된 참여키간의 비교를 통해 중복 체크를 수행한 후 중복 체크 결과에 의거하여 상기 암호화된 의사 표시 결과 데이터 및 참여키를 저장함과 더불어 상기 수신한 암호화된 의사 표시 결과 데이터 및 참여키를 이웃하는 다른 노드에 전송하며,
    상기 기록매체에 저장된 암호화된 의사 표시 결과 데이터가 기 설정된 개수 이상일 경우 암호화된 의사 표시 결과 데이터를 이용하여 블록을 생성한 후 이를 이웃하는 노드에 전송하는 블록 체인 기반의 의사 표시 검증 시스템.
  2. 블록 체인 기반의 네트워크 상에 포함된 복수의 노드 내 적어도 하나 이상의 프로세서에 의해 실행되는 의사 표시 수집용 어플리케이션이 블록 체인 내에 포함되어 수행되며,
    상기 복수의 노드 중 적어도 하나 이상은 관리 노드이며,
    상기 관리 노드는 공개키 및 개인키를 관리하며, 참여자 각각에 대한 신원 확인 절차를 통해 서로 다른 참여키를 생성함과 더불어 전송 횟수 플래그가 설정된 상기 의사 표시 수집용 어플리케이션과 상기 생성한 참여키 및 공개키를 제공하며,
    상기 의사 표시 수집용 어플리케이션은,
    참여자로부터 의사 표시가 이루어짐에 따라 의사 표시 결과 데이터를 생성한 후 이를 상기 공개키로 암호화하여 기록매체에 저장함과 더불어 블록 체인 기반의 네트워크 상의 이웃하는 노드에 전송하되, 상기 전송 횟수 플래그에 해당되는 횟수만큼 상기 의사 표시 결과 데이터를 생성하여 전송하며,
    상기 블록 체인 기반의 네트워크 상의 이웃하는 노드로부터 암호화된 의사 표시 결과 데이터가 수신됨에 따라 상기 수신한 암호화된 의사 표시 결과 데이터를 상기 기록매체에 저장함과 더불어 이웃한 다른 노드에 전송하며,
    상기 기록매체에 저장된 암호화된 의사 표시 결과 데이터가 기 설정된 개수 이상일 경우 암호화된 의사 표시 결과 데이터를 이용하여 블록을 생성한 후 이를 이웃하는 노드에 전송하는 블록 체인 기반의 의사 표시 검증 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 관리 노드는,
    임의의 노드로부터 상기 참여키 및 공개키를 수신함에 따라 상기 임의의 노드에 의사 표시 수집용 어플리케이션을 제공한 후 상기 의사 표시 수집용 어플리케이션이 배포된 참여키에 배포 완료 지시자를 매칭시켜 기록매체에 저장하며, 상기 기록매체에 저장된 배포 완료 지시자가 매칭된 참여키를 이용한 의사 표시 수집용 어플리케이션의 요청이 있을 경우 이를 제한시키는 어플리케이션 배포 및 제한 모듈을 포함하는 블록 체인 기반의 의사 표시 검증 시스템.
  4. 제1항 또는 제2항에 있어서,
    상기 관리 노드는,
    의사 표시 종료 시점에 도달하면, 상기 기록매체에 저장된 암호화된 의사 표시 결과 데이터를 상기 개인키를 이용하여 복호화하여 의사 표시에 대한 결과 데이터를 생성한 후 이를 노드들에게 제공하는 결과 생성 모듈을 포함하는 블록 체인 기반의 의사 표시 검증 시스템.
  5. 제4항에 있어서,
    상기 관리 노드는,
    상기 관리 노드를 제외한 임의의 노드로부터 상기 결과 데이터에 대한 검증 요청이 있을 경우 상기 개인키를 상기 임의의 노드에 제공하며,
    상기 임의의 노드 내 의사 표시 수집용 어플리케이션은,
    상기 수신한 개인키를 이용하여 자신의 기록매체에 저장된 의사 표시 결과 데이터를 복호화한 후 상기 복호화한 결과와 상기 관리 노드로부터 제공받은 결과 데이터간의 비교를 통해 일치 여부에 대한 정보를 제공하는 블록 체인 기반의 의사 표시 검증 시스템.
  6. 블록 체인 기반의 네트워크 상에 포함된 복수의 노드 내 적어도 하나 이상의 프로세서에 의해 실행되는 의사 표시 수집용 어플리케이션이 블록 체인 내에 포함되어 수행되는 시스템을 이용한 의사 표시 방법에 있어서,
    상기 복수의 노드 중 적어도 하나 이상은 관리 노드에서 참여자 각각에 대한 신원 확인 절차를 통해 서로 다른 참여키를 생성함과 더불어 상기 의사 표시 수집용 어플리케이션과 상기 생성한 참여키 및 공개키를 제공하는 단계와,
    상기 의사 표시 수집용 어플리케이션을 통해 참여자로부터 의사 표시가 이루어짐에 따라 의사 표시 결과 데이터를 생성한 후 이를 상기 공개키로 암호화하여 기록매체에 저장함과 더불어 참여키 및 암호화된 의사 표시 결과 데이터를 블록 체인 기반의 네트워크 상의 이웃하는 노드에 전송하는 단계와,
    상기 블록 체인 기반의 네트워크 상의 이웃하는 노드로부터 참여키 및 암호화된 의사 표시 결과 데이터가 수신되면, 상기 수신한 참여키와 암호화된 의사 표시 결과 데이터를 기록매체에 저장하되, 상기 수신한 참여키와 기록매체에 저장된 참여키간의 비교를 통해 중복 체크를 수행하여 상기 수신한 암호화된 의사 표시 결과 데이터의 유효성을 체크하는 단계와,
    상기 유효성을 체크한 결과, 상기 기록매체에 저장된 참여키를 포함한 상기 암호화된 의사 표시 결과 데이터가 수신되는 경우 이를 폐기 처리하는 단계와,
    상기 유효성을 체크한 결과, 상기 기록매체에 저장된 참여키와 일치하지 않는 참여키가 수신되는 경우 상기 수신한 암호화된 의사 표시 결과 데이터와 참여키를 기록매체에 저장한 후 상기 수신한 암호화된 의사 표시 결과 데이터와 참여키를 이웃하는 노드에 전송하는 단계와,
    상기 기록매체에 저장된 암호화된 의사 표시 결과 데이터가 기 설정된 개수 이상일 경우 암호화된 의사 표시 결과 데이터를 이용하여 블록을 생성한 후 이를 이웃하는 노드에 전송하는 단계를 포함하는 블록 체인 기반의 의사 표시 검증 방법.
  7. 제6항에 있어서,
    상기 의사 표시 검증 방법은,
    임의의 노드로부터 상기 참여키 및 공개키를 수신한 후 이에 대한 응답으로 상기 임의의 노드에 의사 표시 수집용 어플리케이션을 제공한 후 상기 의사 표시 수집용 어플리케이션이 배포된 참여키에 배포 완료 지시자를 매칭시켜 기록매체에 저장하는 단계와,
    상기 기록매체에 저장된 배포 완료 지시자가 매칭된 참여키를 이용한 의사 표시 수집용 어플리케이션의 요청이 있을 경우 이를 제한시키는 단계를 더 포함하는 블록 체인 기반의 의사 표시 검증 방법.
  8. 제6항에 있어서,
    상기 의사 표시 검증 방법은,
    의사 표시 종료 시점에 도달하면, 상기 기록매체에 저장된 암호화된 의사 표시 결과 데이터를 상기 개인키를 이용하여 복호화하여 의사 표시에 대한 결과 데이터를 생성한 후 이를 노드들에게 제공하는 단계를 더 포함하는 블록 체인 기반의 의사 표시 검증 방법.
  9. 제8항에 있어서,
    상기 의사 표시 검증 방법은,
    상기 관리 노드를 제외한 임의의 노드로부터 상기 결과 데이터에 대한 검증 요청이 있을 경우 상기 개인키를 상기 임의의 노드에 제공하는 단계와,
    상기 임의의 노드 내 의사 표시 수집용 어플리케이션에서 상기 수신한 개인키를 이용하여 자신의 기록매체에 저장된 의사 표시 결과 데이터를 복호화한 후 상기 복호화한 결과와 상기 관리 노드로부터 제공받은 결과 데이터간의 비교를 통해 일치 여부에 대한 정보를 제공하는 단계를 포함하는 블록 체인 기반의 의사 표시 검증 방법.
KR1020180043873A 2018-04-16 2018-04-16 블록 체인 기반의 의사 표시 검증 시스템 및 방법 KR102062281B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180043873A KR102062281B1 (ko) 2018-04-16 2018-04-16 블록 체인 기반의 의사 표시 검증 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180043873A KR102062281B1 (ko) 2018-04-16 2018-04-16 블록 체인 기반의 의사 표시 검증 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20190120549A true KR20190120549A (ko) 2019-10-24
KR102062281B1 KR102062281B1 (ko) 2020-01-03

Family

ID=68423384

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180043873A KR102062281B1 (ko) 2018-04-16 2018-04-16 블록 체인 기반의 의사 표시 검증 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102062281B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100912794B1 (ko) 2008-11-18 2009-08-18 주식회사 나우콤 실시간 웹 서버 해킹 분석 및 홈페이지 위변조 감시를 위한 웹 위협관리 시스템 및 그 방법
KR101833323B1 (ko) * 2018-01-12 2018-02-28 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법
KR101837170B1 (ko) * 2016-12-29 2018-04-19 주식회사 코인플러그 영지식 증명 알고리즘을 사용하여 블록체인 기반 비밀 전자 투표 서비스를 제공하기 위한 방법, 및 이를 이용한 투표 코인 발행 서버, 투표 토큰 분배 서버 및 투표 지원 서버

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100912794B1 (ko) 2008-11-18 2009-08-18 주식회사 나우콤 실시간 웹 서버 해킹 분석 및 홈페이지 위변조 감시를 위한 웹 위협관리 시스템 및 그 방법
KR101837170B1 (ko) * 2016-12-29 2018-04-19 주식회사 코인플러그 영지식 증명 알고리즘을 사용하여 블록체인 기반 비밀 전자 투표 서비스를 제공하기 위한 방법, 및 이를 이용한 투표 코인 발행 서버, 투표 토큰 분배 서버 및 투표 지원 서버
KR101833323B1 (ko) * 2018-01-12 2018-02-28 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법

Also Published As

Publication number Publication date
KR102062281B1 (ko) 2020-01-03

Similar Documents

Publication Publication Date Title
CN108092982B (zh) 一种基于联盟链的数据存储方法及系统
ES2906075T3 (es) Sistema de intercambio de información
KR101833323B1 (ko) 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법
JP4776245B2 (ja) ユニバーサルパーベイシブトランザクションフレームワークのためのオピニオン登録アプリケーション
JP6543040B2 (ja) リモートアクセス、リモートデジタル署名のためのシステムおよび方法
US20080201575A1 (en) Systems and methods for automating certification authority practices
CN108604983A (zh) 通过域名服务对私钥的安全的委托分发
WO2020050390A1 (ja) 権利者端末、利用者端末、権利者プログラム、利用者プログラム、コンテンツ利用システムおよびコンテンツ利用方法
JP2007282295A (ja) キー寄託機能付き暗号システムおよび方法
CN103440444A (zh) 电子合同的签订方法
CN111630811A (zh) 生成和寄存用于多点认证的密钥的系统和方法
US10826711B2 (en) Public key infrastructure and method of distribution
KR20190076535A (ko) 블록체인을 이용한 익명 투표 시스템 및 그 방법
CN102769623A (zh) 基于数字证书和生物识别信息进行双重认证的方法
KR102169695B1 (ko) 자가검증이 가능한 블록체인 전자투표 관리 방법
CN107409043B (zh) 基于中央加密的存储数据对产品的分布式处理
KR100912532B1 (ko) 신뢰 컴퓨팅 환경에서 각 참여자가 상호 보증 기능을 갖는인터넷 전자투표 방법 및 시스템
KR102062281B1 (ko) 블록 체인 기반의 의사 표시 검증 시스템 및 방법
JP2011113157A (ja) 認証システム、認証方法およびプログラム
KR101167647B1 (ko) 전자투표 시스템
US20210258141A1 (en) Method for recognizing expression of opinion capable of ensuring anonymity and preventing sybil attacks, method for registering that stores user?s identification information, and method for authenticating the user
KR20220134751A (ko) 의료 검사의 컨텍스트에서 데이터 교환을 관리하기 위한 방법 및 시스템
Sain et al. A communication security protocol for ubiquitous sensor networks
ES2726003A1 (es) Método para votación electrónica segura con sistema de auditoría inmutable y programas informáticos del mismo
CN111935183B (zh) 分布式网络非合作主体间用户信息可信流转的方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right