KR102120882B1 - 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법 - Google Patents

블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법 Download PDF

Info

Publication number
KR102120882B1
KR102120882B1 KR1020190112996A KR20190112996A KR102120882B1 KR 102120882 B1 KR102120882 B1 KR 102120882B1 KR 1020190112996 A KR1020190112996 A KR 1020190112996A KR 20190112996 A KR20190112996 A KR 20190112996A KR 102120882 B1 KR102120882 B1 KR 102120882B1
Authority
KR
South Korea
Prior art keywords
node
competition
candidate
public key
transaction
Prior art date
Application number
KR1020190112996A
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 KR1020190112996A priority Critical patent/KR102120882B1/ko
Priority to PCT/KR2019/013319 priority patent/WO2021049702A1/ko
Priority to CN201980041782.4A priority patent/CN112789823B/zh
Application granted granted Critical
Publication of KR102120882B1 publication Critical patent/KR102120882B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법을 개시한다. 실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법은 (A) 대회를 개최하고자 하는 상위대회 주관사인 상위노드는 플랫폼 관리자에게 대회 생성을 요청하는 컨소시엄 구성 단계; (B) 상위노드 또는 하위대외 주관사인 하위노드는 대회에 참가하는 후보자의 개인키-공개키 쌍을 생성하고, 대회 후보자를 등록하는 단계; (C) 관리자 노드는 인증된 사용자에 한해 개인키-공개키 쌍을 생성하고 네트워크에 계정을 추가하여 대회에 참여하는 유권자를 등록하는 단계; (D) 유권자로 등록된 유권자 노드는 후보자의 공개키로 투표 트랜잭션을 발생시키는 단계; 및 (E) 검증자 노드는 조회 트랙잭션을 발생시키고, 상기 발생된 조회트랜잭션을 통해 유권자 계정에서 후보자 계정으로 발생한 트랜잭션의 세부정보를 확인하여, 투표 결과를 산출하는 단계; 를 포함한다.

Description

블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법 {BLOCK CHAIN BASED CONTEST SYSTEM AND METHOD FOR CONTESTING}
블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법에 관한 것으로, 컨테스트 주관사가 후보자를 등록하고 네트워크 구성원들만 블록체인에 기록된 투표 내역을 조회할 수 있도록 구현하여 단일 플랫폼 내에서 다수의 투표를 진행할 수 있도록 하는 컨테스트 네트워크 시스템 및 투표 결과 산출 방법에 관한 것이다.
본 명세서에서 달리 표시되지 않는 한, 이 섹션에 설명되는 내용들은 이 출원의 청구항들에 대한 종래 기술이 아니며, 이 섹션에 포함된다고 하여 종래 기술이라고 인정되는 것은 아니다.
블록체인은 중앙집중기관 없이 시스템 참가자들이 공동으로 거래정보를 기록, 검증 및 보관함으로써 거래정보의 신뢰성을 확보하도록 설계된 분산장부 기술이다. 블록체인은 참여자 간 공유(peer to peer) 네트워크가 집단적으로 새 블록을 검증하기 위한 프로토콜에 따라 관리되므로, 만약 누군가 거래기록을 조작하려면 참여자 간 연결된 모든 블록을 새 블록 생성 이전에 조작해야 한다.
즉, 블록체인에서는 일정 시간 안에 수많은 블록을 모두 조작해야 하는데, 이는 사실상 불가능 하기 때문에 블록체인 기술은 거래 보안성이 높다.
또한, 블록체인은 새로운 단위가치의 거래가 오직 한 번만 이뤄짐으로써, 사기행위와 같은 이중 지급 문제를 해결할 수 있고 중개기관을 거치지 않는 탈 중개화가 이루어 지기 때문에 거래비용이 획기적으로 낮아진다. 블록체인은 비트코인, 이더리움 등 가상통화 운용의 기반이 될 뿐만 아니라 사용자 인증, 스마트계약, 증권 발행 및 거래, 해외송금 및 자금이체, 무역금융, 부동산등기, 고가품의 정품 인증, 디지털 ID 관리, 전자투표, 개인건강기록 관리 등 여러 분야에서 무한한 혁신 잠재력을 지니고 있다.
인터넷과 같은 무선 통신 기술이 발달함에 따라, 기존의 종이 투표 방식을 대신하는 전자투표에 대한 연구가 진행되고 있다. 전자투표는 네트워크를 이용한 전자식 투표로, 통신 가능한 노드를 이용하여 투표가 가능하므로 시간적, 공간적 제약이 없다는 장점이 있다. 하지만, 이러한 장점에도 불구하고, 종래의 전자투표 방식은 여러 문제점이 발견되고 있다. 구체적인 일 예로, 해커 등에 의해 악의적인 목적으로 노드가 점령당하는 경우 투표 내용이 포함된 패킷이 조작되거나 훼손될 수 있으며, 전자 투표를 행사한 대상의 노드를 역추적하여 어떤 사람이 어떠한 후보자에게 투표했는지에 대한 정보가 유출될 수 있다.
이러한 문제점으로 인해 전자투표는 선거의 4대 원칙이 보장되지 않고 있어 현재까지의 기술로는 전자투표 기술을 도입하는 데에 한계가 있다. 따라서, 전자투표 시 투표 과정 및 결과의 신뢰성이 보장될 수 있는 기술 개발의 필요성이 대두되고 있지만, 기존 전자투표와 관련된 특허 기술은 유권자의 개인정보 보호, 개표과정의 부정방지에 집중되어 후보자를 등록하고 투표를 관리하는 주관사 측의 기술은 전무한 상황이다.
1. 한국 특허공개 제10-2019-0068799호(2019.06.19) 2. 한국 특허공개 제10-2019-0068042호(2019.06.18)
실시예를 통해, 인증된 컨테스트 주관사가 후보자를 등록하고 네트워크 구성원들만 블록체인에 기록된 투표 내역을 조회할 수 있도록 구현해 단일 플랫폼 내에서 다수 참여자의 투표를 진행하고, 적법한 참여자의 투표 결과를 자동으로 산출 가능한 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법을 제공한다. 또한, 원장 데이터를 생성하여 투표에 불공정 시비가 있을 경우, 투표 내역을 증빙할 수 있도록 하여 투표의 공정성과 신뢰성을 향상 시킬 수 있도록 한다.
실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법은 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법에 있어서, (A) 대회를 개최하고자 하는 상위대회 주관사인 상위노드는 플랫폼 관리자에게 대회 생성을 요청하는 컨소시엄 구성 단계; (B) 상위대회 주관사인 상위노드 또는 하위대회 주관사인 하위노드는 대회에 참가하는 후보자의 개인키-공개키 쌍을 생성하고, 대회 후보자를 등록하는 단계; (C) 관리자 노드는 인증된 사용자에 한해 개인키-공개키 쌍을 생성하고 네트워크에 계정을 추가하여 대회에 참여하는 유권자를 등록하는 단계; (D) 유권자로 등록된 유권자 노드는 후보자의 공개키로 투표 트랜잭션을 발생시키는 단계; 및 (E) 검증자 노드는 조회 트랙잭션을 발생시키고, 상기 발생된 조회트랜잭션을 통해 유권자 계정에서 후보자 계정으로 발생한 트랜잭션의 세부정보를 확인하여, 투표 결과를 산출하는 단계; 를 포함한다.
다른 실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템은 블록체인 기반 컨테스트 네트워크 시스템에 있어서, 시스템 관리자에게 대회 생성을 요청하여 컨소시엄을 구성하는 상위노드; 대회에 참가하는 후보자의 개인키-공개키 쌍을 생성하고, 대회 후보자를 등록하는 대회 주관사 노드; 인증된 사용자에 한해 개인키-공개키 쌍을 생성하고 네트워크에 계정을 추가하여 대회에 참여하는 유권자를 등록하는 관리자 노드; 후보자의 공개키로 투표 트랜잭션을 발생시키는 유권자 노드; 조회 트랙잭션을 발생시키고, 발생된 조회트랜잭션을 통해 유권자 계정에서 후보자 계정으로 발생한 트랜잭션의 세부정보를 확인하여, 투표 결과를 산출하는 검증자 노드; 를 포함한다.
이상에서와 같은 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법은 투표 내역을 블록체인에 기록해 전자투표의 신뢰도를 제고하는 동시에 대표 노드(관리자 노드)가 허가한 참여자만 네트워크에서 트랜잭션 발생이 가능하므로 프라이버시를 유지하고 투표 과정과 결과에 대한 보안성을 향상시킬 수 있도록 한다.
또한, 단일 플랫폼에서 다수의 대회가 구성되기 때문에 대회 주관사 입장에서 투표에 참여할 사용자들을 쉽게 모을 수 있어 대회 홍보 및 흥행에도 기여 할 수 있다.
또한, 지역대회 수상자가 본선대회에 진출하거나 국내 대회 수상자가 국제대회에 진출하는 형식의 컨테스트는 상위대회 주관사가 하위대회 주관사를 선정하고 관리해야 하는데, 실시예는 상위권한의 비밀키에 하위권한의 순번(컨소시엄 ID)를 결합하여 해시함수를 거침으로써 하위권한의 비밀키를 생성하고 비밀키는 타원 곡선 전자 서명 알고리즘(ECDSA)을 통해 공개키를 생성함으로써, 상위대회 주관사가 다수의 하위대회를 관리할 수 있도록 한다.
또한, 참여자의 투표내역을 블록체인에 저장하여 조작이나 해킹이 불가능하기 때문에 대회의 신뢰도, 보안성을 향상시킬 수 있다.
본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
도 1a는 실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템의 노드 구성을 나타낸 도면
도 1b는 실시예에 따른 시스템에서 생성한 컨테스트 플랫폼을 나타낸 도면
도 2는 실시예에 따른 관리자 노드 및 상위노드의 데이터 처리 블록을 나타낸 도면
도 3은 실시예에 따른 검증자 노드의 데이터 처리 구성을 나타낸 도면
도 4는 실시예에 따른 대회 생성 프로세스를 설명하기 위한 도면
도 5는 실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템의 구조를 나타낸 도면
도 6은 실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템의 신호흐름도
도 7은 실시예에 따른 블록체인기반 컨테스트 네트워크 시스템에서 생성하는 원장 데이터 구조를 나타낸 도면
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 도면부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1a는 실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템의 노드 구성을 나타낸 도면이다.
도 1a를 참조하면, 실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템은 관리자노드(100), 검증자노드(101), 상위노드(200), 하위노드(301,302) 및 유권자노드(401)을 포함하여 구성될 수 있다.
관리자 노드(100)는 컨소시엄을 구성하는 플랫폼(시스템) 관리자의 단말 또는 서버로서, 대회를 개최하고자 하는 상위 노드(200)로부터 대회 생성 요청을 수신하여 요청된 대회의 컨소시엄을 구성한다. 컨소시엄 구성 후 각 대회의 주관사인 상위노드(200)은 대회 후보자를 등록한다. 실시예에서 상위노드(200)은 대회에 참여하는 후보자의 개인키-공개키 쌍(pair)을 생성하여 후보자를 등록할 수 있다. 실시예에서 대회 후보자는 대회주관사노드인 상위노드 또는 하위노드에 의해 등록될 수 있다.
상위대회 주관사인 상위 노드(200)는 대회 개최 요청 메시지를 생성하여 관리자 노드(100)으로 전달하고, 상위 대회의 비밀키에 하위노드의 순번(예컨대, 컨소시엄ID)를 결합한 뒤 해시함수를 거쳐 하위노드의 비밀키를 생성한다. 실시예에서 공개키는 비밀키를 타원 곡선 전자 서명 알고리즘(ECDSA, Elliptic Curve Digital Signature Algorithm )을 거쳐 생성한다. 타원 곡선 전자 서명 알고리즘(ECDSA)는 전자 서명 알고리듬(DSA)에 타원 곡선 암호(ECC) 방식을 이용한 전자 서명 알고리즘으로. 160비트의 키를 갖는 암호 방식으로 1024비트의 RSA(Rivest-Shamir-Adelmen) 방식과 대등한 안전성을 가지면서 처리속도를 줄일 수 있어 이동 단말기에 활용된다.
실시예에서는 상위권한의 비밀키에 하위권한의 순번(예컨대, 컨소시엄ID)를 를 결합하고 해시함수로 암호화 하는 과정으로 하위권한의 비밀키를 생성함으로써, 상위대회 주관사인 상위노드가 다수의 하위노드를 관리할 수 있도록 한다.
또한, 투표내역은 블록체인에 저장하여 조작이나 해킹이 불가능하도록 하여 대회 신뢰도를 향상시키도록 한다.
하위노드(301,302)는 대회에 참가하는 후보를 추가하기 위해 비공개 키인 해당 대회 주관사의 암호키에 후보자 순번을 더해 해시함수를 거쳐 개인키를 산출하고 산출된 키를 ECDSA에 입력하여 출력 값으로 후보자의 공개키인 후보자 투표 주소를 산출한다.
또한 관리자 노드(100)는 투표에 참여하고자 하는 유권자인 참여자가 휴대폰 인증, 계좌 실명인증 등 KYC(Know Your Customer)과정을 정상적으로 완료하는 경우, 참여자가 직접 등록한 비밀번호와 유권자 순번을 더해 해시함수를 거쳐 개인키를 만들고 ECDSA에 입력하여 공개키를 발급한다.
개인키 및 개인키가 암호화된 공개키를 발급받은 투표 참여자인 유권자 노드(401)는 대회 후보자의 공개키 주소로 자신의 개인키로 암호화한 트랜잭션을 발생시켜 투표에 참여할 수 있다.
검증자 노드(101)는 투표 참여자의 공개키로 투표 유권자 노드에서 발생한 트랜잭션을 복호화하여 발생한 트랜잭션이 인증 과정을 거친 정상 참여자로부터 발생한 것인지 확인한다. 또한, 실시예에서 검증자 노드(101)는 각각의 유권자 노드에서 투표가능 회수를 초과하지 않았는지 여부를 검증한다.
실시예에서 검증자 노드(101)에 의해 검증된 투표내역은 투표참여자의 공개키로 한번 더 암호화해 블록에 기록한다. 블록에 기록한 투표내역은 투표참여자의 개인키 로만 복호화가 가능하므로 투표를 한 본인만 투표내역을 조회할 수 있다.
또한, 실시예에서 검증자 노드(101)는 투표내역을 후보자의 공개키로 암호화한 내역, 하위 대회 주관사의 공개키로 암호화한 내역을 각각 블록에 기록한다. 이때 기록되는 후보자의 공개키로 암호화한 내역은 후보자가 본인의 개인키로 복호화가 가능하다. 또한, 하위대회 주관사의 공개키로 암호화한 내역은 상위대회 주관사는 하위대회의 개인키를 알 수 있으므로 하위대회 및 상위대회 주관사가 모두 복호화 할 수 있다.
실시예에서는 설명한 바와 같이, 유권자 노드 각각에서 발생한 트랜젝션을 암호화해 블록체인에 기록함으로써, 상위 대회 주관사인 상위노드는 하위대회 주관사인 하위노드들의 트랜젝션을 모두 조회할 수 있는 반면, 하위대회 주관사는 상위대회 및 다른 하위대회와 관계된 트랜잭션 조회가 불가능하도록 할 수 있다. 실시예에서는 하위대회 투표가 종료되면, 상위노드는 마찬가지로 자신의 개인키에 후보자의 순번을 더해 개인키를 구하고 타원 곡선 전자 서명 알고리 즘(ECDAS)을 거쳐 후보자의 공개키를 생성한다.
이후 투표 및 블록에 기록하는 방식은 설명한 과정과 동일하다.
도 1은 수직 구조(Hierarchical) 형태의 노드 구성을 예로 들어 실시예를 설명하였지만, 실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템은 수직구조 형태의 노드 시스템뿐만 아니라, 버스(Bus), 링(Ring), 스타(star), 확장된 스타(Extended star) 및 메쉬(Mesh) 형태 등 다양한 구조의 노드 시스템을 구성할 수 있다.
도 1b는 실시예에 따른 시스템에서 생성한 컨테스트 플랫폼을 나타낸 도면이다.
실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템은 복수개의 대회를 동시에 주관할 수 있다. 도 1b를 참조하면, 실시예에 따른 컨테스트 플랫폼은 유권자, 주관사용 원장블록, 후보자용 원장블록, 유권자용 원장블록을 대회 네트워크 1,2모두 공유하고, 해당 대회에 속한 대회 주관사 노드와 연결된다. 대회 네트워크1은 상위기관노드 1과 전체 대회 네트워크가 공유하는 유권자 및 원장 블록과 연결되고, 상위기관노드 1은 후보자 풀, 하위기관노드 1 및 2와 연결된다. 하위기관노드1 및 2는 각각의 후보자 풀과 연결된다. 대회 2 네트워크는 전체 네트워크가 공유하는 유권자 및 원장 블록과 상위노드(상위기관)에 연결되고, 상위노드는 하위노드(하위기관)와 연결될 수 있다.
도 2는 실시예에 따른 관리자 노드 및 상위노드의 데이터 처리 블록을 나타낸 도면이다.
실시예에 따른 관리자 노드, 상위노드 및 하위노드는 키 생성 모듈(110), 암호화 모듈(130) 및 후보자 등록모듈(150)을 포함하여 구성될 수 있다. 본 명세서에서 사용되는 '모듈' 이라는 용어는 용어가 사용된 문맥에 따라서, 소프트웨어, 하드웨어 또는 그 조합을 포함할 수 있는 것으로 해석되어야 한다. 예를 들어, 소프트웨어는 기계어, 펌웨어(firmware), 임베디드코드(embedded code), 및 애플리케이션 소프트웨어일 수 있다. 또 다른 예로, 하드웨어는 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어, 센서, 멤스(MEMS; Micro-Electro-Mechanical System), 수동 디바이스, 또는 그 조합일 수 있다.
키 생성 모듈(110)은 관리자 노드가 수신한 대회 생성 메시지를 통해, 대회 적합도를 평가하고, 평가 결과에 따라 개최를 승인하면 상위대회 주관사에게 개인키를 발급한다. 실시예에서 대회 적합도는 대회 생성 요청 메시지에 포함된 입력 정보의 유무 및 대회 생성 결제 완료 여부, 관리자의 승인 등을 통해 평가 될 수 있다. 실시예에서 생성하는 개인키는 대회 생성 날짜, 시간, 이름, 상위노드의 상세 정보 등을 이용한 고유 키로 생성될 수 있다.
암호화 모듈(130)은 해시함수를 거쳐 발급된 개인키를 타원 곡선 전자 서명 알고리즘(ECDSA)를 거쳐 공개키를 생성한다. 예컨대, 상위 대회의 비밀키에 컨소시엄ID와 같은 하위노드의 순번 결합한 뒤 해시함수를 거쳐 하위노드의 비밀키를 생성하고, 비밀키로 ECDSA를 거쳐 공개키를 생성한다.
후보자 등록 모듈(150)은 하위노드가 대회에 참가하는 후보를 추가하는 경우, 비공개 키인 해당 대회 주관사의 암호키에 후보자 순번을 더해 해시함수를 거쳐 개인키를 산출하고 산출된 키를 타원 곡선 전자 서명 알고리즘(ECDSA)에 입력하여 출력 값으로 후보자의 공개키인 후보자 투표 주소를 산출한다.
이후, 유권자 노드는 고객 신원을 확인하는 KYC(Know Your Customer) 과정을 수행하고, KYC가 통과된 유권자가 비밀번호를 등록하면 관리자노드는 비밀번호에 유권자 순번을 더하고 해시함수를 거쳐 유권자의 비밀키를 발급하고 발급된 비밀키는 ECDSA를 거쳐 공개키를 생성한다. 이후, 유권자 노드는 대회 후보자의 공개키 주소로 발급된 개인키로 암호화된 트랜잭션을 발생시켜 투표를 수행하게 된다.
실시예에서 개인키가 타원 곡선 전자 서명 알고리즘(ECDSA)을 거쳐 생성된 공개키는 외부에 공개되는 경우, 트랜잭션을 송수신하는 주소로 이용될 수 있다.
도 3은 실시예에 따른 검증자 노드의 데이터 처리 구성을 나타낸 도면이다.
도 3을 참조하면, 실시예에 따른 검증자 노드(101)는 복호화 모듈(1011), 트랜잭션 판단모듈(1013) 및 기록모듈(1015)를 포함하여 구성될 수 있다.
복호화 모듈(1011)은 투표 참여자의 공개키로 암호화된 트랜잭션을 복호화 한다.
트랜잭션 판단모듈(1013)은 트랜잭션이 신원이 확인된 정상 유권자 노드로부터 발생한 것인지 확인한다. 또한, 검증자 노드가 투표가능 회수 초과 여부를 검증한다. 또한, 실시예에서 트랜잭션 판단모듈(1013)은 후보자 계정의 최종 상태 정보를 파악하여 투표 결과를 산출하고, 관리자 노드가 추가한 적 없는 계정에서 결과 산출 및 결과 조회 트랜잭션이 발생하는 경우, 트랜잭션을 접근 금지 시켜 투표 트랜잭션이 검증이 완료된 참여자 단말에서만 발생되도록 한다. 실시예에서 트랜잭션 판단모듈(1013)은 트랜잭션의 세부정보를 등록된 정보와 비교하여 트랜잭션을 검증 할 수 있다. 예컨대, 트랜잭션의 발생 시점, 데이터 송수신 주소 및 패킷 용량 등을 파악하고 기 등록된 노드의 송수신 주소로 데이터를 전달하는지, 패킷 용량은 일정 범위인지 등을 파악하여 트랜잭션을 검증할 수 있다.
기록모듈(1015)은 검증된 투표내역을 투표참여자의 공개키로 한번 더 암호화해 블록에 기록한다. 예컨대, 기록모듈(1015)은 투표내역을 후보자의 공개키로 암호화한 내역, 하위대회 주관사의 공개키로 암호화한 내역 및 유권자의 공개키로 암호화한 내역을 생성해 기록한다.
도 4는 실시예에 따른 대회 생성 프로세스를 설명하기 위한 도면이다.
실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템은 다수의 컨테스트를 동시에 진행할 수 있다. 예컨대, 컨소시엄ID와 암호키를 발급하는 순차적 암호 체계 방식을 적용해 상위대회 주관사(상위노드)가 하위대회(하위노드)를 생성하고 관리할 수 있다. 또한, 투표내역은 블록체인에 저장해 조작이나 해킹위험을 없앴고 추후 발생 가능한 시비를 가리기 위해 외부 검증기관용 원장을 별도로 생성할 수 있다.
이하 도 4를 이용하여 생성 프로세스 실시예를 보다 자세히 설명한다.
대회 생성 프로세스
실시예에서는 대회 생성을 위해 먼저, 상위대회 주관사인 상위 노드가 컨테스트 플랫폼에 대회 생성을 요청하면 플랫폼 관리자는 대회의 적합도를 평가한 뒤 중복되지 않는 임의의 대회 순번을 부여한다. 부여된 대회 순번은 컨소시엄ID로 공개된다. 이후, 플랫폼 관리자는 상위대회 주관사가 입력한 비밀번호에 대회 순번을 더해 해시함수를 거쳐 상위대회의 비밀키를 구하고 이는 ECDSA를 거쳐 공개키를 생성한다.
하위대회 주관사는 플랫폼에서 상위대회 주관사에게 대회 생성을 요청한다. 상위대회 주관사인 하위노드는 대회의 적합도를 평가한 뒤 중복되지 않는 하위 대회 순번을 부여한다. 부여된 순번은 하위대회 컨소시엄ID로 공개된다. 실시예에서는 해시함수를 거친 값을 비밀키로 하고 비밀키를 ECDSA를 거쳐 공개주소를 생성할 수 있다.
도 5는 실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템의 구조를 나타낸 도면이다. 이하 도 5를 통해, 실시예에서 제공하는 데이터 처리 프로세스를 보다 자세하게 설명한다.
후보등록 프로세스
먼저, 대회 주관사가 후보자를 등록하려면 해당대회의 비밀키에 후보자 순번을 더한 값을 SHA 256 해시 함수로 암호화 시켜 64자리 값을 획득한다. 암호화 된 64자리 값은 값은 후보자의 암호키로 후보자 본인만 알게 된다. 후보자 개인키가 ECDSA를 거쳐 를 거쳐 나온 값은 블록체인 토큰을 전송할 수 있는 후보자의 공개주소가 된다.
만일 도 5에 도시된 상위주관사1이 (A)입장에서 후보를 등록하려면 본인의 개인키에 후보자 순번을 더해 해시 함수를 거쳐 암호화 한다.
하위주관사 3, (D)가 해당 대회의 후보를 등록하려면(D)의 개인키에 후보자 순번을 더한 뒤 해시함수를 거쳐 후보자의 암호키를 생성한 후 생성된 암호키는 ECDSA를 거쳐 후보자의 공개주소가 된다.
투표 프로세스
유권자(유권자 노드)는 본인인증(휴대폰, 은행계좌 인증)을 거쳐 가입이 완료하면, 본인 투표 내역을 조회할 수 있는 임의의 8자리 이상의 비밀번호를 등록한다. 비밀번호가 등록되면, 관리자 노드는 임의의 사용자 순번을 부여한다. 실시예에서 비밀번호가 등록된 투표후보인 사용자는 대회 규정에 따라 무료 혹은 유로로 투표에 참여할 수 있는 토큰을 받을 수 있다. 이후 투표 유권자는 후보등록 프로세스에서 부여된 후보자 공개주소로 토큰을 전송해 투표에 참여할 수 있다.
이하에서는 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 투표 방법에 대해서 차례로 설명한다. 실시예에에 따른 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 투표 방법의 작용(기능)은 블록체인 기반 컨테스트 네트워크 시스템상의 기능과 본질적으로 같은 것이므로 도 1 내지 도 5와 중복되는 설명은 생략하도록 한다.
도 6은 실시예에 따른 블록체인 기반 컨테스트 네트워크 시스템의 신호흐름도이다.
S100 단계에서 대회를 개최하고자 하는 상위대회 주관사인 상위 노드(200) 는 플랫폼 관리자 노드(100)에게 대회 생성을 요청하여 컨소시엄을 구성한다.
S200 단계에서 대회 주관사인 상위노드 또는 하위노드는 컨소시엄이 구성되면 대회에 참여하는 후보자의 개인키-공개키 쌍을 생성하고, S300 단계에서 상위 대회 또는 하위대회 주관사가 대회 후보자를 등록한다. 예컨대, 관리자 노드(100)는 S200 단계에서 관리자 노드가 수신한 대회 생성 메시지를 통해, 대회의 적합도를 평가하고, 평가 결과에 따라 개최를 승인하면 상위 대회 주관사는 직접 비밀번호를 등록하고 관리자 노드는 비밀번호와 대회순번을 더해 개인키, 개인키를 ECDSA를 거쳐 공개키를 구한다. 상위가 하위노드를 추가할 때는 위에 설명한 대로 상위의 비밀키에 컨소시엄 ID 인 순번을 더한 뒤 비밀키 생성한 뒤 공개키를 생성한다.
또한, S300 단계에서는 하위대회 주관사 노드는 대회에 참가하는 후보를 추가하는 경우, 대회에 참가하는 후보를 추가하기 위해 비공개 키인 해당 대회 주관사의 암호키에 후보자 순번을 더해 해시함수를 거쳐 개인키를 산출하고 산출된 키를 ECDSA에 입력하여 출력 값으로 후보자의 공개키인 후보자 투표 주소를 산출하여 후보를 등록할 수 있다. 실시예에서 후보자 등록 과정은 대회 주관사 노드에서 수행하는 과정으로 도 6에서는 하위노드에서 수행되는 과정으로 설명하였지만, 상위대회 주관사인 상위노드에서 후보 등록을 수행할 수 있다.
실시예에서 개인키가 ECDSA를 거쳐 생성된 공개키는 외부에 공개되는 경우, 트랜잭션을 송수신하는 주소로 이용될 수 있다.
S400 단계에서는 유권자 노드(401)에서 하위노드(301)로 인증 정보를 전달하면, S500 단계에서 하위노드(301)는 수신한 인증 정보를 통해 사용자 실명 인증 등의 인증과정을 수행한다. 유권자 노드에 대한 인증이 정상적으로 완료된 경우, S600 단계에서 관리자 노드(100)는 개인키와 공개키 쌍을 유권자의 암호키로서 생성하고, S700 네트워크 계정을 추가한다. 이후, S800 단계에서 관리자 노드는 유권자 노드를 정상적인 유권자로 등록한다.
실시예에서 S600 단계에서는 투표에 참여하는 유권자 노드가 고객 신원을 확인하는 KYC(Know Your Customer) 과정을 수행하면, 참여자 별 개인키와 참여자 별 개인키를 ECDSA를 거친 공개키를 발급하고, 유권자 노드는 대회 후보자의 공개키 주소로 발급된 개인키로 암호화된 트랜잭션을 발생시켜 투표를 수행할 수 있도록 한다.
S900 단계에서는 유권자로 등록된 투표에 참여하는 유권자 노드는 후보자의 공개키로 투표 트랜잭션을 발생시킨다.
S1000 단계에서는 검증자 노드(101)에서 조회 트랙잭션을 발생시키고, S1010 단계에서 검증자 노드(101)는 발생된 조회트랜젝션을 통해 유권자 계정에서 후보자 계정으로 발생한 트랜잭션의 세부 정보를 확인하여, 투표 결과를 산출한다. S1000 단계에서 검증자 노드는 투표가능 회수 초과 여부 또한 검증할 수 있다.
실시예에서 S1010 단계의 검증자 노드(101)는 투표 참여자의 공개키로 암호화된 트랜잭션을 복호화하여, 상기 트랜잭션이 신원이 확인된 정상 유권자 노드로부터 발생한 것인지를 확인하고, 검증자 노드는 검증된 투표내역을 투표참여자의 공개키로 한번 더 암호화해 블록에 기록할 수 있다.
또한, 실시예에서 검증자 노드가 검증된 투표내역을 투표참여자의 공개키로 한번 더 암호화해 블록에 기록하는 과정은 검증자 노드에서 투표내역을 후보자의 공개키로 암호화한 내역, 하위대회 주관사의 암호화 키로 암호화한 내역 을 생성해 블록에 기록하는 과정을 포함할 수 있다.
아울러, S1010 단계에서는 후보자 계정의 최종 상태 정보를 파악하여 투표 결과를 산출하고, 관리자 노드가 추가한 적 없는 계정에서 결과 산출 및 결과 조회 트랜잭션이 발생하는 경우, 트랜잭션을 발생시킨 유권자 노드를 접근 금지시키거나, 비정상 트랜잭션을 무효화 처리 하도록 한다.
도 7은 실시예에 따른 블록체인기반 컨테스트 네트워크 시스템에서 생성하는 원장 데이터 구조를 나타낸 도면이다.
유권자 노드에서 투표 트랜잭션이 발생하면 관리자 노드는 투표 유권자 노드가 토큰을 전송할 수 있는 권한이 있는지 확인하고 문제가 없는 투표에 대해 원장 데이터 생성 프로세스를 수행한다. 실시예에서 원장 데이터는 대화 개최사, 투표 참여자 등 컨테스트의 세부정보를 기록하여 투표 결과의 공정성과 정확성을 증빙하기 위한 기록 데이터이다. 실시예에서 원장데이터는 대회 주관사용, 후보자 확인용, 투표 참여자 확인용으로 총 3개가 생성될 수 있다.
이하, 도 7을 통해, 대회 주관사용, 후보자 확인용, 투표 참여자 확인용 원장 데이터 생성 과정에 대해 보다 자세히 설명한다.
대회 주관사인 상위 노드 또는 하위 노드의 원장 데이터(a) 생성 프로세스
대회주관사용 원장은 도 7의 (a)에 도시된 바와 같이, 상위주관사 컨소시엄ID, 하위대회 컨소시엄ID, 암호화된 투표 내역을 기록하여 생성한다. 원장 데이터에 포함된 암호화된 투표내역은 하위대회 암호키로만 풀 수 있다. 상위 대회 주관사인 상위노드는 하위대회의 암호키를 구할 수 있으므로 하위대회에서 이루어진 투표 내역을 모두 복호화 할 수 있다. 즉 도 5에 도시된 상위주관사 노드 1, (A)는 (A), (B), (C), (D) 대회의 투표내역을 모두 복호화 가능하다. 반면 하위주관사 1, (B)는 (B)와 (D) 대회의 내역만 복호화 할 수 있다. 하위주관사 2, (C)는 (C) 대회의 내역은 복호화 할 수 있지만 (D) 대회의 내역은 복호화 할 수 없다. 실시예에서는 컨소시엄ID가 원장 데이터에 기록되기 때문에 ID로 원장을 검색하면 원하는 대회의 투표내역을 쉽게 필터링 하여 확인할 수 있다. 실시예에서 원장데이터는 블록체인에 기록되기 때문에 한번 기록된 내역은 위조 또는 변조가 불가능하다.
후보용 원장 데이터(b) 생성 프로세스
실시예에서는 대회에 참가한 후보가 본인에게 투표한 내역을 확인할 수 있는 후보용 원장 데이터를 생성할 수 있다. 실시예에서 후보용 원장 데이터에는 후보의 공개주소와 암호화된 투표내역이 기록된다. 후보용 원장 데이터에 기록된 암호화된 투표내역은 후보자의 암호키로만 풀 수 있다. 다른 원장 데이터와는 달리 후보용 원장은 블록체인이 아닌 시스템(플랫폼) 내부 서버에서 기록되다가 대회가 모두 끝난 후 전체 내역이 한 번에 블록체인에 업로드 되도록 한다. 대회가 끝난 후 후보자는 본인의 암호키를 활용해 본인에게 투표한 내역을 복호화 할 수 있다. 후보자 공개 주소가 후보용 원장 데이터에 기록되기 때문에 후보자 본인의 투표내역을 쉽게 필터링 할 수 있다.
투표 참여자용 원장 데이터(c) 생성 프로세스
실시예에서는 투표참여자가 본인이 투표한 내역을 확인할 수 있는 투표 참여자용 원장데이터를 생성 할 수 있다. 투표 참여자용 원장 데이터에는 사용자 순번과 암호화된 투표 내역이 기록된다. 암호화된 투표내역은 유권자의 개인키로 풀 수 있고, 시스템 사용자는 가입 시 입력한 비밀번호만 알면 플랫폼에서 개인키를 매칭하여 매칭된 개인키로 투표 내역을 확인해 볼 수 있도록 한다.
사용자 순번이 원장에 기록되기 때문에 본인의 투표내역을 쉽게 필터링 할 수 있다.
이상에서와 같은 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법은 투표 내역을 블록체인에 기록해 전자투표의 신뢰도를 제고하는 동시에 대표 노드(관리자 노드)가 허가한 참여자만 네트워크에서 트랜잭션 발생이 가능하므로 프라이버시를 유지하고 투표 과정과 결과에 대한 보안성을 향상시킬 수 있도록 한다. 또한, 단일 플랫폼에서 다수의 대회가 구성되기 때문에 대회 주관사 입장에서 투표에 참여할 사용자들을 쉽게 모을 수 있어 대회 홍보 및 흥행에도 기여 할 수 있다. 아울러, 지역대회 수상자가 본선대회에 진출하거나 국내 대회 수상자가 국제대회에 진출하는 형식의 컨테스트는 상위대회 주관사가 하위대회 주관사를 선정하고 관리해야 하는데, 실시예에서는 상위권한의 비밀키에 하위권한의 공개키를 결합하고 해시함수로 암호화 하는 과정으로 하위권한의 비밀키를 생성함으로써, 상위대회 주관사인 상위노드가 다수의 하위노드를 관리할 수 있도록 한다.
개시된 내용은 예시에 불과하며, 특허청구범위에서 청구하는 청구의 요지를 벗어나지 않고 당해 기술분야에서 통상의 지식을 가진 자에 의하여 다양하게 변경 실시될 수 있으므로, 개시된 내용의 보호범위는 상술한 특정의 실시예에 한정되지 않는다.

Claims (16)

  1. 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법에 있어서,
    (A) 대회를 개최하고자 하는 상위대회 주관사인 상위노드는 플랫폼 관리자에게 대회 생성을 요청하는 컨소시엄 구성 단계;
    (B) 상위노드 또는 하위대회 주관사인 하위노드는 상기 대회에 참가하는 후보자의 개인키-공개키 쌍을 생성하고, 대회 후보자를 등록하는 단계;
    (C) 관리자 노드는 인증된 사용자에 한해 개인키-공개키 쌍을 생성하고 네트워크에 계정을 추가하여 대회에 참여하는 유권자를 등록하는 단계;
    (D) 상기 유권자로 등록된 유권자 노드는 후보자의 공개키로 투표 트랜잭션을 발생시키는 단계; 및
    (E) 검증자 노드는 조회 트랙잭션을 발생시키고, 상기 발생된 조회트랜잭션을 통해 유권자 계정에서 후보자 계정으로 발생한 트랜잭션의 세부정보를 확인하여, 투표 결과를 산출하는 단계; 를 포함하고
    상기 (B)의 단계; 는
    하위노드는 대회에 참가하는 후보를 추가하는 경우, 하위 노드의 개인키에 후보자 순번을 더한 뒤 해시함수를 거쳐 후보자의 개인키를 구하고 타원 곡선 전자 서명 알고리즘 (ECDSA)를 통해 후보자의 투표주소인 공개키를 생성하는 단계; 를 포함하고
    상기 (C)의 단계; 는
    (C-1) 투표에 참여하는 유권자 노드는 고객 신원을 확인하는 KYC(Know Your Customer) 과정을 수행하고, 참여자 별 개인키를 타원 곡선 전자 서명 알고리즘 (ECDSA)를 거친 공개키를 발급받는 단계; 를 포함하고,
    상기 (D)의 단계; 는
    (D-1) 유권자 노드는 대회 후보자의 공개키 주소로 상기 발급된 개인키로 암호화된 트랜잭션을 발생시켜 투표를 수행하는 단계; 를 포함하고,
    상기 공개키는 비밀키를 타원 곡선 전자 서명 알고리즘(ECDSA, Elliptic Curve Digital Signature Algorithm )을 거쳐 생성하고,
    상기 (A) 단계;는
    상위 노드(200)는 대회 개최 요청 메시지를 생성하여 관리자 노드(100)으로 전달하고, 상위 대회의 비밀키에 컨소시엄 ID를 포함하는 하위노드의 순번을 결합한 뒤 해시함수를 거쳐 하위노드의 비밀키를 생성하는 단계;를 포함하고,
    상기 (D-1) 유권자 노드는 대회 후보자의 공개키 주소로 상기 발급된 개인키로 암호화된 트랜잭션을 발생시켜 투표를 수행하는 단계;는
    유권자 노드 각각에서 발생한 트랜젝션을 암호화해 블록체인에 기록함으로써, 상위 대회 주관사인 상위노드는 하위대회 주관사인 하위노드들의 트랜젝션을 모두 조회할 수 있는 반면, 하위대회 주관사는 상위대회 및 다른 하위대회와 관계된 트랜잭션 조회가 불가능하도록 하고,
    하위대회 투표가 종료되면, 상위노드는 상위노드의 개인키에 후보자의 순번을 더해 개인키를 구하고 타원 곡선 전자 서명 알고리즘(ECDAS)을 거쳐 후보자의 공개키를 생성하는 것을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법.
  2. 제 1항에 있어서, 상기 (A)의 단계; 는
    (A-1) 관리자 노드가 수신한 대회 생성 메시지를 통해, 대회의 적합도를 평가하고, 평가 결과에 따라 개최가 승인되면 상기 상위노드에게 개인키를 발급하고, 상기 개인키로 타원 곡선 전자 서명 알고리즘(ECDSA)을 통해 공개키를 생성하는 단계; 및
    (A-2) 상위노드는 상위노드의 개인키에 순번을 더한 뒤 해시함수를 거쳐 하위노드의 개인키를 구하고 타원 곡선 전자 서명 알고리즘(ECDSA)를 통해 하위노드의 공개키를 생성하는 단계;를 포함하는 것을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법.
  3. 삭제
  4. 삭제
  5. 제 1항에 있어서, 상기 (E)의 단계; 는
    (E-1) 검증자 노드는 투표 참여자의 공개키로 암호화된 트랜잭션을 복호화하여, 상기 트랜잭션이 신원이 확인된 정상 유권자 노드로부터 발생한 것인지를 확인하는 단계; 및
    (E-2) 검증자 노드는 검증된 투표내역을 투표참여자의 공개키로 한번 더 암호화하고 암호화된 투표참여자의 공개키를 블록에 기록하는 단계; 를 더 포함하는 것
    을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법.
  6. 제 5항에 있어서, 상기 (E-2)의 단계; 는
    검증자 노드는 투표내역을 후보자의 공개키로 암호화한 내역 및 하위대회 주관사의 공개키로 암호화한 내역을 각각 생성하고, 생성된 내역 각각을 블록에 기록하는 것
    을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법.
  7. 제 5항에 있어서, 상기 (E-1)의 단계; 는
    검증자 노드가 투표가능 회수 초과 여부를 검증하는 단계; 를 포함하는 것
    을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법.
  8. 제 2항에 있어서, 상기 개인키가 타원 곡선 전자 서명 알고리즘 (ECDSA)으로 암호화 되어 생성된 공개키는 외부에 공개되는 경우, 트랜잭션을 송수신하는 주소로 이용되는 것
    을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법.
  9. 제 1항에 있어서, 상기 (E)의 단계; 는
    후보자 계정의 최종 상태 정보를 파악하여 투표 결과를 산출하고, 관리자 노드가 추가한 적 없는 계정에서 결과 산출 및 결과 조회 트랜잭션이 발생하는 경우, 상기 트랜잭션을 접근 금지 시키거나, 상기 트랜잭션에 의한 투표를 무효화 하는 것
    을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템의 컨테스트 방법.
  10. 블록체인 기반 컨테스트 네트워크 시스템에 있어서,
    시스템 관리자에게 대회 생성을 요청하여 컨소시엄을 구성하는 상위노드;
    상기 대회에 참가하는 후보자의 개인키-공개키 쌍을 생성하고, 대회 후보자를 등록하는 대회 주관사 노드;
    인증된 사용자에 한해 개인키-공개키 쌍을 생성하고 네트워크에 계정을 추가하여 대회에 참여하는 유권자를 등록하는 관리자 노드;
    후보자의 공개키로 투표 트랜잭션을 발생시키는 유권자 노드;
    조회 트랙잭션을 발생시키고, 상기 발생된 조회트랜잭션을 통해 유권자 계정에서 후보자 계정으로 발생한 트랜잭션의 세부정보를 확인하여, 투표 결과를 산출하는 검증자 노드; 및
    대회에 참가하는 후보를 추가하는 경우, 하위 노드의 개인키에 후보자 순번들 더한 뒤 해시함수를 거쳐 후보자의 개인키를 구하고 타원 곡선 전자 서명 알고리즘(ECDSA)을 통해 후보자의 투표주소인 공개키를 생성하는 하위노드;를 포함하고,
    상기 유권자 노드는
    고객 신원을 확인하는 KYC(Know Your Customer) 과정을 수행하고, 참여자 별 개인키와 상기 개인키를 타원 곡선 전자 서명 알고리즘(ECDSA)으로 생성한 공개키를 관리자 노드로부터 발급받고, 대회 후보자의 공개키 주소로 상기 발급된 개인키로 암호화된 트랜잭션을 발생시켜 투표를 수행하고
    상기 검증자 노드는
    투표 참여자의 공개키로 암호화된 트랜잭션을 복호화하여, 상기 트랜잭션이 신원이 확인된 정상 유권자 노드로부터 발생한 것인지를 확인하고, 검증된 투표내역을 투표참여자의 공개키로 한번 더 암호화하고 암호화된 투표참여자의 공개키를 블록에 기록하고
    상기 상위 노드는 대회 개최 요청 메시지를 생성하여 관리자 노드로 전달하고, 상위 대회의 비밀키에 컨소시엄 ID를 포함하는 하위노드의 순번을 결합한 뒤 해시함수를 거쳐 하위노드의 비밀키를 생성하고,
    상기 유권자 노드는 대회 후보자의 공개키 주소로 상기 발급된 개인키로 암호화된 트랜잭션을 발생시켜 투표를 수행하고,
    유권자 노드 각각에서 발생한 트랜젝션을 암호화해 블록체인에 기록함으로써, 상위 대회 주관사인 상위노드는 하위대회 주관사인 하위노드들의 트랜젝션을 모두 조회할 수 있는 반면, 하위대회 주관사는 상위대회 및 다른 하위대회와 관계된 트랜잭션 조회가 불가능하도록 하고, 하위대회 투표가 종료되면, 상위노드는 상위노드의 개인키에 후보자의 순번을 더해 개인키를 구하고 타원 곡선 전자 서명 알고리즘(ECDAS)을 거쳐 후보자의 공개키를 생성하는 것을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템.
  11. 제 10항에 있어서, 상기 관리자 노드는
    관리자 노드가 수신한 대회 생성 메시지를 통해, 대회의 적합도를 평가하고, 평가 결과에 따라 개최가 승인되면 상기 상위노드에게 개인키를 발급하고, 상기 개인키로 타원 곡선 전자 서명 알고리즘(ECDSA)을 거쳐 공개키 생성하고, 상위노드는 상위노드의 개인키에 순번을 더한 뒤 해시함수를 거쳐 하위노드의 개인키를 구하고 타원 곡선 전자 서명 알고리즘(ECDSA)을 통해 하위노드의 공개키를 생성하는 것
    을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 제 10항에 있어서, 상기 검증자 노드는
    투표내역을 후보자의 공개키로 암호화한 내역 및 하위 대회 주관사의 공개키로 암호화한 내역을 각각 생성하고, 생성된 내역 각각을 블록에 기록하는 것
    을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템.
  16. 제 10항에 있어서, 상기 검증자 노드는
    후보자 계정의 최종 상태 정보를 파악하여 투표 결과를 산출하고, 관리자 노드가 추가한 적 없는 계정에서 결과 산출 및 결과 조회 트랜잭션이 발생하는 경우, 상기 트랜잭션을 접근 금지 시키거나, 상기 트랜잭션에 의한 투표를 무효화 하는 것
    을 특징으로 하는 블록체인 기반 컨테스트 네트워크 시스템.
KR1020190112996A 2019-09-11 2019-09-11 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법 KR102120882B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190112996A KR102120882B1 (ko) 2019-09-11 2019-09-11 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법
PCT/KR2019/013319 WO2021049702A1 (ko) 2019-09-11 2019-10-11 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법
CN201980041782.4A CN112789823B (zh) 2019-09-11 2019-10-11 基于区块链的竞选网络系统及竞选方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190112996A KR102120882B1 (ko) 2019-09-11 2019-09-11 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법

Publications (1)

Publication Number Publication Date
KR102120882B1 true KR102120882B1 (ko) 2020-06-09

Family

ID=71082528

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190112996A KR102120882B1 (ko) 2019-09-11 2019-09-11 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법

Country Status (3)

Country Link
KR (1) KR102120882B1 (ko)
CN (1) CN112789823B (ko)
WO (1) WO2021049702A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112927414A (zh) * 2021-01-29 2021-06-08 福建中科星泰数据科技有限公司 基于联盟区块链的业务公识系统及方法
KR102277389B1 (ko) * 2020-10-28 2021-07-14 에스지에이비엘씨 주식회사 블록 체인을 이용한 투명성이 보장되는 투표 관리 및 집계 방법, 장치 및 컴퓨터-판독가능 기록매체
CN114299655A (zh) * 2020-09-23 2022-04-08 成都中科信息技术有限公司 一种电子投票系统及其工作方法
CN114785598A (zh) * 2022-04-22 2022-07-22 博智安全科技股份有限公司 一种选手身份的加解密方法、装置、设备及存储介质
KR102479988B1 (ko) * 2022-04-19 2022-12-22 주식회사 블로코 사용자 의사정보 식별자를 생성하는 방법 및 이를 위한 시스템
KR102568098B1 (ko) * 2022-12-13 2023-08-17 이민재 블록체인 기반 토큰을 전송하여 오디션 투표의 조작을 방지하는 방법
WO2023204410A1 (ko) * 2022-04-19 2023-10-26 주식회사 블로코 사용자 의사정보 식별자를 생성하는 방법 및 이를 위한 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114844891B (zh) * 2022-04-21 2024-04-12 浪潮云信息技术股份公司 基于Raft算法的区块链共识方法及系统
CN115115367B (zh) * 2022-08-30 2023-03-31 平安银行股份有限公司 一种基于区块链的交易信息查询方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100025624A (ko) * 2008-08-28 2010-03-10 경희대학교 산학협력단 안전하지 않은 통신 채널에서 비인증서 공개키를 사용한 보안키 생성 방법
KR101908677B1 (ko) * 2017-09-29 2018-10-16 숭실대학교산학협력단 블록체인을 이용한 전자투표 관리 시스템 및 방법
KR20190023894A (ko) * 2017-08-30 2019-03-08 세종대학교산학협력단 전자 투표 시스템 및 방법
KR20190068042A (ko) 2017-12-08 2019-06-18 한국전자통신연구원 블록 체인 네트워크의 노드에서 수행되는 블록 생성 방법 및 장치
KR20190068799A (ko) 2017-12-11 2019-06-19 한국전자통신연구원 서비스 존 기반의 계층적 합의 방법 및 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105592098B (zh) * 2016-01-16 2018-09-14 杭州复杂美科技有限公司 区块链上的投票及ca证书的管理方法
GB201800818D0 (en) * 2018-01-18 2018-03-07 Nchain Holdings Ltd Computer-implemented system and method
CN108809624A (zh) * 2018-07-18 2018-11-13 杭州安恒信息技术股份有限公司 一种电子选举方法、系统、设备及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100025624A (ko) * 2008-08-28 2010-03-10 경희대학교 산학협력단 안전하지 않은 통신 채널에서 비인증서 공개키를 사용한 보안키 생성 방법
KR20190023894A (ko) * 2017-08-30 2019-03-08 세종대학교산학협력단 전자 투표 시스템 및 방법
KR101908677B1 (ko) * 2017-09-29 2018-10-16 숭실대학교산학협력단 블록체인을 이용한 전자투표 관리 시스템 및 방법
KR20190068042A (ko) 2017-12-08 2019-06-18 한국전자통신연구원 블록 체인 네트워크의 노드에서 수행되는 블록 생성 방법 및 장치
KR20190068799A (ko) 2017-12-11 2019-06-19 한국전자통신연구원 서비스 존 기반의 계층적 합의 방법 및 장치

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114299655A (zh) * 2020-09-23 2022-04-08 成都中科信息技术有限公司 一种电子投票系统及其工作方法
CN114299655B (zh) * 2020-09-23 2023-09-05 成都中科信息技术有限公司 一种电子投票系统及其工作方法
KR102277389B1 (ko) * 2020-10-28 2021-07-14 에스지에이비엘씨 주식회사 블록 체인을 이용한 투명성이 보장되는 투표 관리 및 집계 방법, 장치 및 컴퓨터-판독가능 기록매체
CN112927414A (zh) * 2021-01-29 2021-06-08 福建中科星泰数据科技有限公司 基于联盟区块链的业务公识系统及方法
KR102479988B1 (ko) * 2022-04-19 2022-12-22 주식회사 블로코 사용자 의사정보 식별자를 생성하는 방법 및 이를 위한 시스템
WO2023204410A1 (ko) * 2022-04-19 2023-10-26 주식회사 블로코 사용자 의사정보 식별자를 생성하는 방법 및 이를 위한 시스템
CN114785598A (zh) * 2022-04-22 2022-07-22 博智安全科技股份有限公司 一种选手身份的加解密方法、装置、设备及存储介质
KR102568098B1 (ko) * 2022-12-13 2023-08-17 이민재 블록체인 기반 토큰을 전송하여 오디션 투표의 조작을 방지하는 방법

Also Published As

Publication number Publication date
CN112789823A (zh) 2021-05-11
WO2021049702A1 (ko) 2021-03-18
CN112789823B (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
KR102120882B1 (ko) 블록체인 기반 컨테스트 네트워크 시스템 및 컨테스트 방법
US10887098B2 (en) System for digital identity authentication and methods of use
JP7203829B2 (ja) ブロックチェーンでエンティティにより提供されるデータの通信、保存、及び処理のためのシステム及び方法
KR102171568B1 (ko) 투표자 단말, 인증서버, 투표서버, 및 전자투표 시스템
RU2652443C1 (ru) Система и способ определения количества голосов избирателей, собираемых с помощью электронного голосования
US20190190716A1 (en) System and method for verifying user identity in a virtual environment
US11100743B1 (en) Blockchain-based election system
CN109791660A (zh) 数据保护系统和方法
TW200427284A (en) Personal authentication device and system and method thereof
Sudharsan et al. Secured electronic voting system using the concepts of blockchain
Pathak et al. Blockchain based e-voting system
Fernandes et al. Decentralized online voting using blockchain and secret contracts
KR102014647B1 (ko) 블록체인 기반 전자투표방법
KR20200051135A (ko) 암호화폐 지갑서버를 통해 DApp 서비스에 로그인하는 방법 및 이를 위한 암호화폐 지갑서버
Al-Rawy et al. A design for blockchain-based digital voting system
JP3313654B2 (ja) 電子投票システム、方法、及び記録媒体
Pasquinucci Web voting, security and cryptography
Juma et al. Election results' verification in e-voting systems in Kenya: a review
KR102381028B1 (ko) 블록체인 이용 전자 투표 관리 시스템 및 방법
Doesburg et al. Using IRMA for small scale digital elections
da Silva Mendes Trusted Civitas: Client trust in Civitas electronic voting protocol
US11967186B1 (en) Blockchain-based election system
KR102586412B1 (ko) 사용자 단말기 상에서 발행된 임시키를 이용한 사용자 의사정보 식별자 생성하는 방법 및 이를 위한 시스템
Solanki et al. Proposed Secure and Robust Voting System Using Blockchain Conceptual Framework
US20230267426A1 (en) Payment system, coin register, participant unit, transaction register, monitoring register and method for payment with electronic coin data sets

Legal Events

Date Code Title Description
GRNT Written decision to grant