[go: nahoru, domu]

KR20220142254A - Multi-signature wallet system in blockchain using the bloom filter - Google Patents

Multi-signature wallet system in blockchain using the bloom filter Download PDF

Info

Publication number
KR20220142254A
KR20220142254A KR1020210048739A KR20210048739A KR20220142254A KR 20220142254 A KR20220142254 A KR 20220142254A KR 1020210048739 A KR1020210048739 A KR 1020210048739A KR 20210048739 A KR20210048739 A KR 20210048739A KR 20220142254 A KR20220142254 A KR 20220142254A
Authority
KR
South Korea
Prior art keywords
client
signature
key
module
blockchain
Prior art date
Application number
KR1020210048739A
Other languages
Korean (ko)
Other versions
KR102546762B1 (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 KR1020210048739A priority Critical patent/KR102546762B1/en
Publication of KR20220142254A publication Critical patent/KR20220142254A/en
Application granted granted Critical
Publication of KR102546762B1 publication Critical patent/KR102546762B1/en

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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • 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/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

The present invention relates to a multi-signature wallet system in a blockchain using a bloom filter, which can improve the security of a single signature method for providing digital signatures in a blockchain and can provide a common signature through multiple signatures to improve the performance of an existing multi-signature method. As an example, the multi-signature wallet system in a blockchain using a bloom filter is disclosed. The multi-signature wallet system comprises: a management server which creates a communication channel between multiple clients participating in a multi-signature wallet, exchanges information between the clients through the communication channel, stores the information generated and exchanged by the multiple clients, respectively, and transmits the stored information to the multiple clients, respectively; and a client application which creates a private key and a public key for each of the multiple clients, creates a shared key of the multi-signature wallet by recombining the created respective public keys, creates and stores a bloom filter representing a client that signed a blockchain transaction, checks whether the multi-signature wallet participates in for the client by using the stored bloom filter, and creates and reconstructs a local signature for each client to sign the blockchain transaction.

Description

블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템{MULTI-SIGNATURE WALLET SYSTEM IN BLOCKCHAIN USING THE BLOOM FILTER}Multi-Signature Wallet System in Blockchain Using Bloom Filter

본 발명의 실시예는 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템에 관한 것이다.An embodiment of the present invention relates to a multi-signature wallet system in a blockchain using a bloom filter.

기존의 블록체인 지갑의 방식은 한 명의 사용자에 의하여 서명되고 관리되었고, 이에 대한 보안은 각 사용자가 직접 처리해야 한다. The existing blockchain wallet method was signed and managed by one user, and each user must handle the security for it.

따라서, 블록체인 트랜잭션 서명에 필요한 개인키가 한 공격지점이 존재하는 보안성 문제에 당면한다. 단일지점 보안 취약성을 고려할 때, 한 사용자의 개인키가 도난 당했을 경우 모든 디지털 자산이 도난 당할 수 있다. Therefore, there is a security problem in that the private key required to sign a blockchain transaction is an attack point. Considering the single point of security vulnerability, if one user's private key is stolen, all digital assets can be stolen.

또한, 기존의 다중 서명의 방식을 사용한 경우 다수에 의해 서명한 여러 서명이 존재하며, 이를 블록체인에서 검증하는 시간은 증가하게 된다. 뿐만 아니라, 다중 서명을 지원하기 위해서는 블록체인의 프로토콜을 변경하거나 별도의 스마트 컨트랙트를 구축해야 하는 여러 제약 조건이 따른다. In addition, when the existing multi-signature method is used, there are several signatures signed by a large number of people, and the time to verify them in the block chain increases. In addition, there are several constraints that require changing the protocol of the blockchain or building a separate smart contract to support multi-signature.

또한, 기존의 다중 서명의 방식인 경우 각 서명 참여자의 공개키가 공개되어 사용자의 프라이버시 문제가 발생할 수 있다.In addition, in the case of the existing multi-signature method, the public key of each signing participant is disclosed, which may cause a user's privacy problem.

공개특허공보 제10-2020-0002015호(공개일자: 2020년01월07일)Publication No. 10-2020-0002015 (published date: January 07, 2020)

본 발명의 실시예는, 블록체인에서의 전자서명을 제공하는 단일 서명 방식의 보안성을 향상시키고, 기존의 다중 서명 방식의 성능향상을 위해 다자의 서명을 통해 공통의 서명을 제공하는 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템을 제공한다.An embodiment of the present invention improves the security of a single signature method that provides a digital signature in a block chain, and provides a bloom filter that provides a common signature through multi-signature to improve the performance of the existing multi-signature method. It provides a multi-signature wallet system in the blockchain used.

또한, T-ECDSA(Threshold-Elliptic Curve Digital Signature Algorithm)를 이용하여 여러 서명 값을 생성하는 기존 다중서명 지갑과 달리 단일 서명을 제공하는 다중서명 지갑 방식을 제공하며, 서명 참여자를 식별하기 위해 블룸 필터를 활용하여 보안성이 향상되며, 참여자를 식별할 수 있는 다중 서명 지갑 시스템을 제공한다. In addition, unlike the existing multi-signature wallet that generates multiple signature values using T-ECDSA (Threshold-Elliptic Curve Digital Signature Algorithm), it provides a multi-signature wallet method that provides a single signature. Security is improved by utilizing

또한, T-ECDSA를 이용하여 일정 수 이상 참여자의 서명으로 단일 서명을 만드는 방식으로 단일 서명보다 보안성이 향상되며, 블록체인의 서명 검증성능이 기존 다중 서명 지갑보다 향상된 다중 서명 지갑 시스템을 제공한다.In addition, by using T-ECDSA to create a single signature with the signatures of more than a certain number of participants, the security is improved over a single signature, and the blockchain signature verification performance is improved compared to the existing multi-signature wallet. .

본 발명의 실시예에 따른 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템은, 다중 서명 지갑에 참여하는 다수의 클라이언트 간에 통신 채널을 생성하고, 상기 통신 채널을 통해 클라이언트 간 정보를 교환하고, 다수의 클라이언트로부터 각각 생성되어 교환되는 정보를 저장하며, 저장된 클라이언트 정보를 다른 다수의 클라이언트로 각각 전달하는 관리 서버; 및 다수의 클라이언트 별로 개인키와 공개키를 각각 생성하고, 생성된 각각의 공개키를 재결합하여 상기 다중 서명 지갑의 공유키를 생성하고, 상기 블록체인 트랜잭션에 서명한 클라이언트를 나타내는 블룸 필터를 생성 및 저장하고, 저장된 상기 블룸 필터를 이용하여 클라이언트에 대한 상기 다중 서명 지갑의 참여 여부를 확인하며, 클라이언트 별 로컬 서명을 생성 및 재구성하여 상기 블록체인 트랜잭션에 서명하는 클라이언트 어플리케이션을 포함한다.A multi-signature wallet system in a blockchain using a bloom filter according to an embodiment of the present invention creates a communication channel between multiple clients participating in a multi-signature wallet, exchanges information between clients through the communication channel, and a management server that stores information that is generated and exchanged from each of the clients of , and transmits the stored client information to a plurality of other clients, respectively; and generating a private key and a public key for each of a plurality of clients, recombining each generated public key to generate the shared key of the multi-signature wallet, and creating a bloom filter representing the client that signed the blockchain transaction, and and a client application that stores, checks whether the multi-signature wallet is participating in the client by using the stored bloom filter, and creates and reconfigures a local signature for each client to sign the blockchain transaction.

또한, 상기 관리 서버는, 상기 통신 채널을 생성하는 채널 생성 모듈; 상기 클라이언트 어플리케이션이 상기 통신 채널을 통해 상기 블록체인 트랜잭션에 참여하도록 상기 클라이언트 어플리케이션 간에 클라이언트 정보를 서로 교환하는 채널 참여 모듈; 상기 채널 참여 모듈을 통해 교환되는 클라이언트 정보를 저장하는 정보 저장 모듈; 및 상기 정보 저장 모듈에 저장된 클라이언트 정보를 암호화하여 서로 다른 상기 클라이언트 어플리케이션으로 제공하는 정보 제공 모듈을 포함할 수 있다.In addition, the management server, a channel generating module for generating the communication channel; a channel participation module for exchanging client information between the client applications so that the client applications participate in the blockchain transaction through the communication channel; an information storage module for storing client information exchanged through the channel participation module; and an information providing module that encrypts the client information stored in the information storage module and provides the encrypted client information to the different client applications.

또한, 상기 클라이언트 어플리케이션은, 클라이언트 별 개인키 및 공개키를 생성하고, 상기 블록체인 트랜잭션에 참여하는 모든 클라이언트의 공개키를 재결합하여 상기 블록체인 트랜잭션의 서명을 위한 공유키를 생성하는 키 생성 모듈; 상기 키 생성 모듈에서 생성되는 정보를 암호화하고, 상기 관리 서버를 통해 제공되는 정보를 복호화하는 암호화 및 복호화 모듈; 상기 블록체인 트랜잭션을 생성하고, 생성된 상기 블록체인 트랜잭션에 서명한 클라이언트를 나타내는 상기 블룸 필터를 생성한 후 상기 블록체인 트랜잭션에 저장하는 트랜잭션 생성 모듈; 클라이언트 별 로컬 서명을 각각 생성하고, 생성된 각각의 로컬 서명을 클라이언트 간에 서로 교환하여 재구성하고, 재구성된 로컬 서명을 이용하여 상기 블록체인 트랜잭션에 서명하는 서명 모듈; 상기 관리 서버와 상기 통신 채널을 통해 연결되어 상기 관리 서버에 저장된 서로 다른 클라이언트 정보를 제공 받고, 자체적으로 생성된 클라이언트 정보를 추출하여 상기 관리 서버로 제공하는 통신 모듈; 및 상기 블룸 필터를 이용하여 상기 블록체인 트랜잭션에 참여한 클라이언트를 식별하고, 클라이언트 정보에 대한 위조 여부를 판별하는 유효성 검사 모듈을 포함할 수 있다.In addition, the client application includes: a key generation module for generating a private key and a public key for each client, and recombining the public keys of all clients participating in the block chain transaction to generate a shared key for signing the block chain transaction; an encryption and decryption module for encrypting information generated by the key generation module and decrypting information provided through the management server; a transaction generation module that generates the blockchain transaction, generates the bloom filter representing a client that has signed the generated blockchain transaction, and stores it in the blockchain transaction; a signature module for generating local signatures for each client, reconfiguring each generated local signature by exchanging each other between clients, and signing the block chain transaction using the reconstructed local signature; a communication module connected to the management server through the communication channel to receive different client information stored in the management server, extract self-generated client information and provide it to the management server; and a validation module for identifying a client participating in the block chain transaction using the bloom filter and determining whether the client information is forged.

또한, 상기 클라이언트 어플리케이션은, 상기 키 생성 모듈을 통해 클라이언트 별로 생성된 개인키를 상기 암호화 및 복호화 모듈을 통해 암호화하여 암호화 키를 생성하고, 상기 통신 모듈을 통해 상기 관리 서버로부터 상기 통신 채널의 아이디를 수신하고, 상기 통신 채널의 아이디와 상기 암호화 키를 상기 블록체인 트랜잭션에 참여하는 다른 클라이언트들과 서로 교환하고, 서로 교환된 상기 통신 채널의 아이디, 및 클라이언트 별 상기 암호화 키를 비밀번호로서 이용하여 상기 통신 채널에 참여하는 전처리 프로세스를 수행할 수 있다.In addition, the client application generates an encryption key by encrypting the private key generated for each client through the key generation module through the encryption and decryption module, and receives the ID of the communication channel from the management server through the communication module receiving, exchanging the ID of the communication channel and the encryption key with other clients participating in the blockchain transaction, and using the exchanged ID of the communication channel and the encryption key for each client as a password for the communication You can perform a preprocessing process that joins the channel.

또한, 상기 클라이언트 어플리케이션은, 상기 키 생성 모듈을 통해 클라이언트 별 개인키 및 공개키를 생성하고, 임계 값 서명 체계(Threshold signature scheme)와 다중 서명 지갑에 참여한 클라이언트 수(N)를 기초로 클라이언트 각각의 개인키를 상기 클라이언트 수(N)로 분할하여 N개의 공유키를 클라이언트 별로 각각 생성하고, 상기 암호화 및 복호화 모듈을 통해 상기 N개의 공유키를 각각 암호화하여 N개의 암호화된 공유키를 생성하고, 상기 통신 모듈을 통해 상기 N개의 암호화된 공유키 중 N-1개의 암호화된 공유키를 서로 다른 클라이언트 간에 상호 교환하여 각 클라이언트 별로 클라이언트 자신의 N-1개의 암호화된 공유키를 제외한 클라이언트 자신의 암호화된 공유키인 제1 공유키와 서로 다른 클라이언트에 대한 N-1개의 암호화된 공유키인 제2 공유키를 포함하는 클라이언트 공유키를 구비하도록 하고, 상기 암호화 및 복호화 모듈을 통해 상기 클라이언트 공유키를 복호화하며, 상기 유효성 검사 모듈을 통해 상기 클라이언트 공유키에 대한 유효성을 검증하는 다중 서명 지갑 생성 프로세스를 수행할 수 있다.In addition, the client application generates a private key and a public key for each client through the key generation module, and based on the threshold signature scheme and the number of clients participating in the multi-signature wallet (N) The private key is divided by the number of clients (N) to generate N shared keys for each client, and each of the N shared keys is encrypted through the encryption and decryption module to generate N encrypted shared keys, Through the communication module, N-1 encrypted shared keys among the N encrypted shared keys are exchanged between different clients, and the client's own encrypted sharing except for the client's own N-1 encrypted shared keys for each client to have a client shared key including a first shared key that is a key and a second shared key that is N-1 encrypted shared keys for different clients, and decrypt the client shared key through the encryption and decryption module, , it is possible to perform a multi-signature wallet creation process that verifies the validity of the client shared key through the validation module.

또한, 상기 클라이언트 어플리케이션은, 상기 트랜잭션 생성 모듈을 통해, 블록체인 트랜잭션 서명에 참여하는 클라이언트 수(N)에 따른 상기 블룸 필터의 크기(m-bit)를 계산하고, 블록체인 트랜잭션 서명에 참여하는 클라이언트 각각의 공개키를 이용하여 클라이언트 각각에 대한 해시값(k-hash)을 계산하고, 각 해시값에 해당하는 비트 값을 확인하고, 확인된 비트 값에 기초하여 클라이언트 각각에 대하여 상기 블록체인 트랜잭션 서명의 참여 여부를 확인하며, 상기 블룸 필터를 블록체인 트랜잭션에 저장하는 블룸 필터 생성 프로세스를 수행할 수 있다.In addition, the client application, through the transaction creation module, calculates the size (m-bit) of the bloom filter according to the number of clients (N) participating in the blockchain transaction signature, and the client participating in the blockchain transaction signature Calculate the hash value (k-hash) for each client using each public key, check the bit value corresponding to each hash value, and sign the blockchain transaction for each client based on the confirmed bit value can perform the process of creating a bloom filter by checking the participation of

또한, 상기 클라이언트 어플리케이션은, 상기 암호화 및 복호화 모듈을 통해 상기 블록체인 트랜잭션 서명에 참여하는 클라이언트 각각의 개인키를 암호화하고, 상기 서명 모듈을 통해 타원곡선 암호기술(Elliptic Curve Cryptography: ECC)을 기초로 생성된 난수(k)를 이용하여 타원 곡선 점을 계산하고, 암호화된 개인키, 계산된 타원 곡선 점과 상기 클라이언트 공유키를 포함하는 로컬 서명을 클라이언트 별로 생성하고, 상기 서명 모듈을 통해 생성된 로컬 서명을 상기 통신 모듈을 통해 클라이언트 간에 서로 교환하고, 상기 통신 모듈을 통해 서로 교환된 로컬 서명을 상기 서명 모듈을 통해 각 클라이언트 별로 재구성하여 블록체인 트랜잭션 서명 프로세스를 수행할 수 있다.In addition, the client application encrypts the private key of each client participating in the blockchain transaction signature through the encryption and decryption module, and based on Elliptic Curve Cryptography (ECC) through the signature module The elliptic curve point is calculated using the generated random number (k), and a local signature including the encrypted private key, the calculated elliptic curve point, and the client shared key is generated for each client, and the local signature generated through the signature module is generated. A signature may be exchanged between clients through the communication module, and local signatures exchanged with each other through the communication module may be reconstructed for each client through the signature module to perform a blockchain transaction signing process.

본 발명에 따르면, 블록체인에서의 전자서명을 제공하는 단일 서명 방식의 보안성을 향상시키고, 기존의 다중 서명 방식의 성능향상을 위해 다자의 서명을 통해 공통의 서명을 제공할 수 있다.According to the present invention, it is possible to provide a common signature through multi-signature to improve the security of a single signature method that provides a digital signature in a block chain and improve the performance of the existing multi-signature method.

또한, T-ECDSA(Threshold-Elliptic Curve Digital Signature Algorithm)를 이용하여 여러 서명 값을 생성하는 기존 다중서명 지갑과 달리 단일 서명을 제공하는 다중서명 지갑 방식을 제공하며, 서명 참여자를 식별하기 위해 블룸 필터를 활용하여 보안성을 향상시키고, 참여자를 식별할 수 있다. In addition, unlike the existing multi-signature wallet that generates multiple signature values using T-ECDSA (Threshold-Elliptic Curve Digital Signature Algorithm), it provides a multi-signature wallet method that provides a single signature. can be used to improve security and identify participants.

또한, T-ECDSA를 이용하여 일정 수 이상 참여자의 서명으로 단일 서명을 만드는 방식으로 단일 서명보다 보안성을 향상시킬 수 있으며, 블록체인의 서명 검증성능을 기존 다중 서명 지갑보다 향상할 수 있다.In addition, by using T-ECDSA to create a single signature with the signatures of more than a certain number of participants, security can be improved compared to single signatures, and the signature verification performance of the block chain can be improved compared to existing multi-signature wallets.

도 1은 본 발명의 실시예에 따른 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템의 전체 구성을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 다중 서명 지갑 생성 및 블록체인 트랜잭션 서명 이전에 안전한 클라이언트 정보 교환을 위한 클라이언트 어플리케이션의 전처리 프로세스를 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 클라이언트 어플리케이션의 전자 지갑 생성 프로세스를 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 클라이언트 어플리케이션의 블룸 필터 생성 프로세스를 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 클라이언트 어플리케이션의 블록체인 트랜잭션의 서명 프로세스를 나타낸 도면이다.
1 is a block diagram showing the overall configuration of a multi-signature wallet system in a blockchain using a bloom filter according to an embodiment of the present invention.
2 is a diagram illustrating a pre-processing process of a client application for secure client information exchange before creating a multi-signature wallet and signing a blockchain transaction according to an embodiment of the present invention.
3 is a diagram illustrating an electronic wallet creation process of a client application according to an embodiment of the present invention.
4 is a diagram illustrating a bloom filter generation process of a client application according to an embodiment of the present invention.
5 is a diagram illustrating a signing process of a blockchain transaction of a client application according to an embodiment of the present invention.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.Terms used in this specification will be briefly described, and the present invention will be described in detail.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.The terms used in the present invention have been selected as currently widely used general terms as possible while considering the functions in the present invention, but these may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the term used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, rather than the name of a simple term.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.In the entire specification, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. In addition, terms such as "... unit" and "module" described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software, or a combination of hardware and software. .

아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, with reference to the accompanying drawings, the embodiments of the present invention will be described in detail so that those skilled in the art can easily carry out the embodiments of the present invention. However, the present invention may be embodied in several different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

본 발명의 실시예에 대한 설명에 앞서, 이하의 본 실시예에 따른 다중 서명 지갑 시스템을 이해하기 위한 기본적인 기술적 개념인 블록체인 지갑(Block-chain wallet), 다중서명 지갑(Multi-signature wallet), 임계 값 서명 체계 (Threshold signature scheme) 및 블룸 필터(Bloom-filter)에 대하여 간략히 설명한다. Prior to the description of the embodiment of the present invention, a block-chain wallet, a multi-signature wallet, which are basic technical concepts for understanding the multi-signature wallet system according to the present embodiment below, The threshold signature scheme and Bloom-filter will be briefly described.

상기 블록체인 지갑(Block-chain wallet)은 디지털 자산(ex. 비트코인, 이더리움 등) 관리를 위한 인터페이스를 제공하는 금융 어플리케이션으로, 디지털 자산 전송과 관련된 거래에 서명하기 위한 사용자의 개인키(private key)와 공개키(public key)를 관리한다. 클라이언트는 블록체인 지갑의 개인키로 거래에 서명하여 블록체인의 디지털 자산을 소유하고 있음을 증명할 수 있다. The block-chain wallet is a financial application that provides an interface for managing digital assets (ex. Bitcoin, Ethereum, etc.), and uses a user's private key to sign transactions related to digital asset transfer. key) and public key. Clients can prove that they own the digital assets of the blockchain by signing the transaction with the private key of the blockchain wallet.

대부분의 블록체인 지갑은 타원 곡선 디지털 서명 알고리즘(ECDSA: Elliptic Curve Digital Signature Algorithm)과 같은 단일 서명 체계를 사용하여 디지털 자산을 관리한다. ECDSA는 복잡성으로 인해 무차별 대입 공격과 같은 현재 크래킹 방법에 대해 RSA(Rivest-Shamir-Adleman) 알고리즘보다 더 안전하고, 결과적으로 ECDSA 기반 블록체인 지갑은 더 높은 보안 수준과 상대적으로 작은 키 크기로 거래에 서명할 수 있다. 그러나, 블록체인 지갑은 ECDSA의 특성으로 인해 개인키가 단일 공격 지점에서 공격을 받기 쉬우므로 보안 문제가 있어 블록체인 지갑에는 더욱 안전한 메커니즘이 필요하다.Most blockchain wallets manage digital assets using a single signature scheme, such as the Elliptic Curve Digital Signature Algorithm (ECDSA). Because of its complexity, ECDSA is more secure than the Rivest-Shamir-Adleman (RSA) algorithm against current cracking methods such as brute force attacks, and as a result, ECDSA-based blockchain wallets are more secure in transactions with a higher level of security and a relatively small key size. can sign However, due to the characteristics of the ECDSA, the blockchain wallet has a security problem because the private key is easily attacked from a single point of attack, so a more secure mechanism is required for the blockchain wallet.

상기 다중 서명 지갑(Multi-signature wallet)은, 단일 서명 지갑의 단점을 보완하기 위해 클라이언트 그룹이 서명으로 거래에 동의할 수 있도록 하고, 여러 클라이언트 간에 디지털 자산 전송에 대한 책임을 분할한다. 거래에 서명한 참여자는 다중 서명 지갑에 있는 참여자의 공개키를 통해 식별할 수 있고, 해당 다중 서명 지갑은 지갑의 권한을 여러 참여자에게 분배하기 때문에 블록체인 거래에 더 높은 보안을 제공할 수 있다.The multi-signature wallet allows a group of clients to agree to a transaction with a signature to compensate for the shortcomings of a single-signature wallet, and divides responsibility for digital asset transfer among multiple clients. The participant who signed the transaction can be identified through the participant's public key in the multi-signature wallet, and the multi-signature wallet can provide higher security for blockchain transactions because it distributes the wallet's authority to multiple participants.

예를 들어, 단일 서명 지갑의 경우 악의적인 공격자가 지갑의 개인 키만 획득하면, 디지털 자산을 도난당 할 수 있지만, 다중 서명 지갑의 경우 단일 서명 지갑보다 높은 보안을 제공하기 때문에, 악의적인 공격자는 특정 수의 개인키를 획득해야 한다. 해당 키의 수는 지갑이 생성될 때 설정되지만, 다중 서명 지갑은 블록체인에서 트랜잭션 검증 및 트랜잭션 크기를 증가시키는 몇 가지 문제가 존재한다. For example, in the case of a single-signature wallet, if a malicious attacker only obtains the wallet's private key, digital assets can be stolen, but in the case of a multi-signature wallet, because it provides higher security than a single-signature wallet, a malicious attacker can You need to obtain a number of private keys. Although the number of corresponding keys is set when the wallet is created, multi-signature wallets have some issues that increase transaction validation and transaction size on the blockchain.

예를 들어, 비트코인 블록체인에서 다중 서명 지갑은 여러 서명을 생성하는 동안 트랜잭션에 서명하고, 서명된 트랜잭션은 블록체인 네트워크의 전체 노드에 의해 확인되어야 한다. 따라서, 다중 서명을 검증해야 하므로, 단일 서명 방식보다 검증 시간이 길어지고, 다중 서명 지갑이 블록체인에서 사용되는 경우 블록체인 프로토콜을 수정하거나, 이더리움의 경우 다중 서명 지갑을 활용하기 위해 스마트 계약을 사용해야 한다.For example, in the Bitcoin blockchain, a multi-signature wallet signs a transaction while generating multiple signatures, and the signed transaction must be verified by all nodes in the blockchain network. Therefore, since multi-signature needs to be verified, the verification time is longer than single-signature methods, and if a multi-signature wallet is used in a blockchain, either modify the blockchain protocol or, in the case of Ethereum, use a smart contract to utilize a multi-signature wallet. should be used

상기 임계 값 서명 체계(Threshold signature scheme)(ex. T-ECDSA(Threshold-Elliptic Curve Digital Signature Algorithm) 및 Shamir의 비밀 공유 체계)는 참여자에게 단일 공개 키로 디지털 서명을 생성할 수 있는 권한을 공유할 수 있다. 임계 값은 모든 하위 집합 + 1 참여자가 공동으로 서명할 수 있지만, 더 작은 하위 집합은 할 수 없도록 지정되었다. The threshold signature scheme (ex. T-ECDSA (Threshold-Elliptic Curve Digital Signature Algorithm) and Shamir's Secret Sharing Scheme) can share the right to create a digital signature with a single public key to participants. have. A threshold was specified that all subsets + 1 participants could jointly sign, but no smaller subsets.

예를 들어, T-ECDSA는 t + 1 참여자의 모든 서명에서 단일 서명을 생성하는 반면 Shamir의 비밀 공유 체계는 중앙에서 t + 1 shares로 재구성된 개인 키를 사용하여 단일 서명을 생성할 수 있다. 두 임계 값 서명 체계는 공통 공개 키로 검증된 서명을 생성하며, 블록체인 프로토콜을 수정할 필요가 없고 기존 ECDSA와 호환된다.For example, T-ECDSA generates a single signature from all signatures of t + 1 participants, while Shamir's secret sharing scheme can generate a single signature using the centrally reconstructed private key with t + 1 shares. Both threshold signature schemes produce signatures verified with a common public key, do not require modification to the blockchain protocol, and are compatible with existing ECDSAs.

상기 블룸 필터(Bloom-filter)는 공간 효율적인 확률 데이터 구조이며, 하나의 요소가 집합의 구성원인지 여부를 확인하는데 사용된다. 블룸 필터 기능 중 하나는 해시 충돌로 인한 'False-positive'를 가진다. 따라서, 블룸 필터의 쿼리는 요소가 아마도 집합에 있거나 확실히 집합에 없다는 정보를 반환할 수 있다. 본 실시예에서는 서명된 거래에서 참여자를 식별하기 위해 블룸 필터를 사용한다. 따라서, 참여자의 정보(ex. 공개키 또는 주소) 대신 블룸 필터를 블록체인의 트랜잭션에 저장함으로써 더 높은 신뢰도를 제공하고 거래 규모를 줄일 수 있다.The Bloom-filter is a space-efficient probability data structure and is used to check whether an element is a member of a set. One of the bloom filter features is 'false-positive' due to hash collisions. Thus, a query in a bloom filter can return information that an element is probably in the set or definitely not. This example uses a bloom filter to identify participants in signed transactions. Therefore, by storing the Bloom filter in the transaction on the blockchain instead of the participant's information (ex. public key or address), it is possible to provide higher reliability and reduce the transaction size.

도 1은 본 발명의 실시예에 따른 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템의 전체 구성을 나타낸 블록도이다.1 is a block diagram showing the overall configuration of a multi-signature wallet system in a blockchain using a bloom filter according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템(100)은 관리 서버(100)와 클라이언트 어플리케이션(200) 중 적어도 하나를 포함할 수 있다.Referring to FIG. 1 , a multi-signature wallet system 100 in a blockchain using a bloom filter according to an embodiment of the present invention may include at least one of a management server 100 and a client application 200 .

상기 관리 서버(100)는, 다중 서명 지갑에 참여하는 다수의 클라이언트 간에 통신 채널을 생성하고, 해당 통신 채널을 통해 클라이언트 간 정보를 교환하고, 다수의 클라이언트로부터 각각 생성되어 교환되는 정보를 저장하며, 저장된 클라이언트 정보(각종 보안 정보: ex. 개인키, 공개키, 공유키, 통신 채널 아이디, 패스워드, 참여 클라이언트 수 등)를 다른 다수의 클라이언트로 각각 전달할 수 있다.The management server 100 creates a communication channel between a plurality of clients participating in the multi-signature wallet, exchanges information between clients through the communication channel, and stores information generated and exchanged from a plurality of clients, respectively, Stored client information (various security information: ex. private key, public key, shared key, communication channel ID, password, number of participating clients, etc.) can be delivered to multiple clients, respectively.

이를 위해 관리 서버(100)는 도 1에 도시된 바와 같이, 채널 생성 모듈(110), 채널 참여 모듈(120), 정보 저장 모듈(130) 및 정보 제공 모듈(140) 중 적어도 하나를 포함할 수 있다.To this end, the management server 100 may include at least one of a channel creation module 110 , a channel participation module 120 , an information storage module 130 , and an information providing module 140 as shown in FIG. 1 . have.

상기 채널 생성 모듈(110)은, 클라이언트 어플리케이션(200)간 정보 교환을 위한 통신 채널을 생성할 수 있다.The channel generation module 110 may create a communication channel for exchanging information between the client applications 200 .

상기 채널 참여 모듈(120)은, 클라이언트 어플리케이션(200) 즉 다수의 클라이언트들이 해당 통신 채널을 통해 블록체인 트랜잭션에 참여하도록 클라이언트 어플리케이션(200) 간에 클라이언트 정보(각종 보안 정보: ex. 개인키, 공개키, 공유키, 통신 채널 아이디, 패스워드, 참여 클라이언트 수 등)를 서로 교환할 수 있도록 한다.The channel participation module 120 includes client information (various security information: ex. private key, public key) between the client application 200, that is, a plurality of clients to participate in a block chain transaction through the corresponding communication channel. , shared key, communication channel ID, password, number of participating clients, etc.) can be exchanged with each other.

상기 정보 저장 모듈(130)은, 채널 참여 모듈(120)을 통해 교환되는 클라이언트 정보(각종 보안 정보: ex. 개인키, 공개키, 공유키, 통신 채널 아이디, 패스워드, 참여 클라이언트 수 등)를 별도의 저장소에 저장할 수 있다.The information storage module 130 separates client information exchanged through the channel participation module 120 (various security information: ex. private key, public key, shared key, communication channel ID, password, number of participating clients, etc.) can be stored in the storage of

상기 정보 제공 모듈(140)은, 정보 저장 모듈(130)에 저장된 클라이언트 정보(각종 보안 정보: ex. 개인키, 공개키, 공유키, 통신 채널 아이디, 패스워드, 참여 클라이언트 수 등)를 암호화하여 서로 다른 클라이언트 어플리케이션(200)으로 제공할 수 있다. 또한, 정보 저장 모듈(130)을 통해 관리 서버(100)의 저장소에 저장된 정보들은 암호화되어 악의적인 서버 관리자 또는 기타 공격으로부터 보호될 수 있다.The information providing module 140 encrypts client information (various security information: ex. private key, public key, shared key, communication channel ID, password, number of participating clients, etc.) stored in the information storage module 130 to each other It may be provided to another client application 200 . In addition, information stored in the storage of the management server 100 through the information storage module 130 may be encrypted and protected from malicious server administrators or other attacks.

상기 클라이언트 어플리케이션(200)은, 개인키와 공개키 관리를 지원하고 트랜잭션에 서명하기 위한 구성으로, 좀 더 구체적으로는, 다수의 클라이언트 별로 개인키와 공개키를 각각 생성하고, 생성된 각각의 공개키를 재결합하여 다중 서명 지갑의 공유키를 생성하고, 블록체인 트랜잭션에 서명한 클라이언트를 나타내는 블룸 필터(bloom-filter)를 생성 및 저장하고, 저장된 블룸 필터를 이용하여 클라이언트에 대한 다중 서명 지갑의 참여 여부를 확인하며, 클라이언트 별 로컬 서명을 생성 및 재구성하여 블록체인 트랜잭션에 서명할 수 있다.The client application 200 is configured to support private and public key management and to sign a transaction. More specifically, the client application 200 generates a private key and a public key for each of a plurality of clients, and each generated public key is generated. Recombining keys to create a shared key for a multi-signature wallet, creating and storing a bloom-filter representing the client that signed the blockchain transaction, and using the stored bloom filter to join the multi-signature wallet to the client It checks whether or not it is possible to sign a blockchain transaction by creating and reconstructing a local signature for each client.

이를 위해 클라이언트 어플리케이션(200)은 도 1에 도시된 바와 같이, 키 생성 모듈(210), 암호화 및 복호화 모듈(220), 트랜잭션 생성 모듈(230), 서명 모듈(240), 통신 모듈(250) 및 유효성 검사 모듈(260) 중 적어도 하나를 포함할 수 있다.To this end, the client application 200 includes a key generation module 210 , an encryption and decryption module 220 , a transaction generation module 230 , a signature module 240 , a communication module 250 and At least one of the validation modules 260 may be included.

상기 키 생성 모듈(210)은, 클라이언트 별 개인키 및 공개키를 생성하고, 블록체인 트랜잭션에 참여하는 모든 클라이언트의 공개키를 재결합하여 블록체인 트랜잭션의 서명을 위한 공유키를 생성할 수 있다. The key generation module 210 may generate a private key and a public key for each client, and recombining the public keys of all clients participating in the block chain transaction to generate a shared key for signing the block chain transaction.

상기 암호화 및 복호화 모듈(220)은, 블록체인 트랜잭션에 참여하는 클라이언트의 정보 공개를 방지하기 위하여, 키 생성 모듈(210)에서 생성되는 각종 보안 정보를 암호화하고, 관리 서버(100)를 통해 제공되는 보안 정보를 복호화 할 수 있다.The encryption and decryption module 220 encrypts various security information generated by the key generation module 210 in order to prevent disclosure of information of clients participating in the block chain transaction, and is provided through the management server 100 Security information can be decrypted.

상기 트랜잭션 생성 모듈(230)은, 블록체인 트랜잭션(ex. 비트코인 및 이더리움 등)을 생성하고, 생성된 블록체인 트랜잭션에 서명한 클라이언트를 나타내는 블룸 필터를 생성한 후 블록체인 트랜잭션에 저장할 수 있다.The transaction creation module 230 may generate a block chain transaction (ex. Bitcoin and Ethereum, etc.), create a bloom filter indicating a client who signed the created block chain transaction, and then store it in the block chain transaction. .

상기 서명 모듈(240)은, 클라이언트 별 로컬 서명을 각각 생성하고, 생성된 각각의 로컬 서명을 클라이언트 간에 서로 교환하여 재구성(이때, 각 클라이언트들에 대한 여러 로컬 서명에서 단일 서명을 생성함)하고, 재구성된 로컬 서명을 이용하여 블록체인 트랜잭션에 서명할 수 있다.The signature module 240 generates local signatures for each client, and reconfigures each generated local signature by exchanging each other between clients (in this case, generating a single signature from multiple local signatures for each client), Blockchain transactions can be signed using the reconstructed local signature.

상기 통신 모듈(250)은, 관리 서버(100)와 통신 채널을 통해 연결되어 관리 서버(100)의 저장소에 저장된 서로 다른 클라이언트 정보(각종 보안 정보: ex. 개인키, 공개키, 공유키, 통신 채널 아이디, 패스워드, 참여 클라이언트 수 등)를 제공 받고, 클라이언트 어플리케이션(200) 자체적으로 생성된 클라이언트 정보(각종 보안 정보: ex. 개인키, 공개키, 공유키, 통신 채널 아이디, 패스워드, 참여 클라이언트 수 등)를 추출하여 관리 서버(100)로 제공할 수 있다.The communication module 250 is connected to the management server 100 through a communication channel and stored in the storage of the management server 100 different client information (various security information: ex. private key, public key, shared key, communication) Channel ID, password, number of participating clients, etc.), and client information generated by the client application 200 itself (various security information: ex. private key, public key, shared key, communication channel ID, password, number of participating clients) etc.) can be extracted and provided to the management server 100 .

상기 유효성 검사 모듈(260)은, 블룸 필터를 이용하여 블록체인 트랜잭션에 참여한 클라이언트를 식별하고, 클라이언트 정보(각종 보안 정보: ex. 개인키, 공개키, 공유키, 통신 채널 아이디, 패스워드, 참여 클라이언트 수 등)에 대한 위조 여부를 판별할 수 있다.The validation module 260 identifies a client participating in a blockchain transaction using a bloom filter, and includes client information (various security information: ex. private key, public key, shared key, communication channel ID, password, participating client) number, etc.) can be identified as forgery.

이하 첨부된 도면을 참조하여, 본 발명의 실시예에 따른 블룸 필터를 이용한 블록체인의 다중 서명 지갑 시스템(1000)의 동작 프로세스에 대하여 보다 상세히 설명한다. 상기한 동작 프로세스는, 전처리 프로세스, 다중 서명 지갑 생성 프로세스, 블룸 필터 생성 프로세스 및 블록체인 트랜잭션 서명 프로세스 순으로 구성될 수 있다.Hereinafter, with reference to the accompanying drawings, the operation process of the multi-signature wallet system 1000 of a blockchain using a bloom filter according to an embodiment of the present invention will be described in more detail. The above operation process may be configured in the order of a pre-processing process, a multi-signature wallet creation process, a bloom filter creation process, and a blockchain transaction signature process.

도 2는 본 발명의 실시예에 따른 다중 서명 지갑 생성 및 블록체인 트랜잭션 서명 이전에 안전한 클라이언트 정보(각종 보안 정보: ex. 개인키, 공개키, 공유키, 통신 채널 아이디, 패스워드, 참여 클라이언트 수 등) 교환을 위한 클라이언트 어플리케이션의 전처리 프로세스를 나타낸 도면이다.2 shows secure client information (various security information: ex. private key, public key, shared key, communication channel ID, password, number of participating clients, etc.) before creating a multi-signature wallet and signing a blockchain transaction according to an embodiment of the present invention ) It is a diagram showing the pre-processing process of the client application for exchange.

상기 클라이언트 어플리케이션(200)은, 키 생성 모듈(210)을 통해 클라이언트 별로 생성된 개인키를 암호화 및 복호화 모듈(220)을 통해 암호화하여 암호화 키를 생성하고, 통신 모듈(250)을 통해 관리 서버(200)로부터 통신 채널의 아이디를 수신하고, 통신 채널의 아이디와 암호화 키를 블록체인 트랜잭션에 참여하는 다른 클라이언트들과 서로 교환하고, 서로 교환된 통신 채널의 아이디, 및 클라이언트 별 암호화 키를 비밀번호로서 이용하여 통신 채널에 참여하는 전처리 프로세스를 수행할 수 있다. The client application 200 generates an encryption key by encrypting the private key generated for each client through the key generation module 210 through the encryption and decryption module 220, and the management server ( 200), exchange the ID and encryption key of the communication channel with other clients participating in the blockchain transaction, and use the exchanged ID of the communication channel and the encryption key for each client as a password Thus, a pre-processing process to participate in the communication channel can be performed.

이러한 클라이언트 어플리케이션(200)은 다중 서명 지갑을 생성하고 거래(블록체인 트랜잭션)에 서명하기 이전에 클라이언트 간에 보다 안전한 정보 교환을 위하여 전처리 단계를 수행하는데, 좀 더 구체적으로, 해당 전처리 프로세스에서 클라이언트 어플리케이션(200)은 통신 채널을 통해 관리 서버(100)와 연결되고, 클라이언트 자신의 암호화 키를 각 참여 클라이언트들과 서로 교환한다. 도 2에 도시된 바와 같이, 클라이언트 A는 통신 채널의 비밀번호와 다중 지갑의 참여할 참여자 수로 통신 채널을 생성한 이후 나머지 참여 클라이언트들은 통신 채널의 아이디와 비밀번호로 해당 통신 채널에 참여할 수 있다. 이후, 각 참여 클라이언트들은 자신의 암호화 키를 다른 참여 클라이언트들에게 분배함으로써 지갑 생성 및 서명에 해당 암호화 키를 사용할 수 있도록 한다.This client application 200 creates a multi-signature wallet and performs a pre-processing step for more secure information exchange between clients before signing a transaction (blockchain transaction). More specifically, in the pre-processing process, the client application ( 200) is connected to the management server 100 through a communication channel, and exchanges the client's own encryption key with each participating client. As shown in FIG. 2 , after the client A creates a communication channel with the password of the communication channel and the number of participants in the multi-wallet, the remaining participating clients can participate in the communication channel with the ID and password of the communication channel. After that, each participating client distributes its encryption key to other participating clients so that the corresponding encryption key can be used for wallet creation and signing.

도 3은 본 발명의 실시예에 따른 클라이언트 어플리케이션의 전자 지갑 생성 프로세스를 나타낸 도면이다.3 is a diagram illustrating an electronic wallet creation process of a client application according to an embodiment of the present invention.

상기 클라이언트 어플리케이션(200)은, 키 생성 모듈(210)을 통해 클라이언트 별 개인키 및 공개키를 생성하고, 임계 값 서명 체계(Threshold signature scheme)와 다중 서명 지갑에 참여한 클라이언트 수(N)를 기초로 클라이언트 각각의 개인키를 클라이언트 수(N)로 분할하여 N개의 공유키를 클라이언트 별로 각각 생성하고, 암호화 및 복호화 모듈(220)을 통해 N개의 공유키를 각각 암호화하여 N개의 암호화된 공유키를 생성할 수 있다. The client application 200 generates a private key and a public key for each client through the key generation module 210, and based on the threshold signature scheme and the number of clients participating in the multi-signature wallet (N) The private key of each client is divided by the number of clients (N) to generate N shared keys for each client, and the N shared keys are encrypted through the encryption and decryption module 220 to generate N encrypted shared keys. can do.

이후, 클라이언트 어플리케이션(200)은 통신 모듈(250)을 통해 N개의 암호화된 공유키 중 N-1개의 암호화된 공유키를 서로 다른 클라이언트 간에 상호 교환하여 각 클라이언트 별로 클라이언트 자신의 N-1개의 암호화된 공유키를 제외한 클라이언트 자신의 암호화된 공유키인 제1 공유키와 서로 다른 클라이언트에 대한 N-1개의 암호화된 공유키인 제2 공유키를 포함하는 클라이언트 공유키(즉, 제1 공유키 + 제2 공유키)를 구비하도록 한다.Thereafter, the client application 200 exchanges N-1 encrypted shared keys among the N encrypted shared keys between different clients through the communication module 250, and the client's own N-1 encrypted shared keys for each client A client shared key including the first shared key, which is the client's own encrypted shared key excluding the shared key, and the second shared key, which is N-1 encrypted shared keys for different clients (that is, the first shared key + the second shared key). 2 shared key).

이후, 클라이언트 어플리케이션(200)은 암호화 및 복호화 모듈(220)을 통해 클라이언트 공유키를 복호화하며, 유효성 검사 모듈(260)을 통해 클라이언트 공유키(즉, 제1 공유키 + 제2 공유키)에 대한 유효성을 검증하는 다중 서명 지갑 생성 프로세스를 수행할 수 있다.Thereafter, the client application 200 decrypts the client shared key through the encryption and decryption module 220 , and the client shared key (ie, the first shared key + the second shared key) through the validation module 260 . A multi-signature wallet creation process that validates can be performed.

블록체인에서 디지털 자산을 전송하기 위해 클라이언트는 다중 서명 지갑을 만드는데, 본 실시예에서 다중 서명 지갑은 검증 시간을 줄이기 위해 단일 서명 지갑처럼 동작하도록 하며, 이를 위해 공통 공개키(common public key)와 공유키(shared keys)를 생성할 수 있다.In order to transfer digital assets in the blockchain, the client creates a multi-signature wallet. In this embodiment, the multi-signature wallet operates like a single-signature wallet to reduce verification time, and for this purpose, a common public key is shared. You can create shared keys.

상술한 바와 같이 참여 클라이언트는 다중 서명 지갑을 생성하기 이전에 전처리 프로세스를 수행한 후 모든 참여 클라이언트는 키 생성 모듈(210)을 통해 개인키 및 공개 키를 생성하고, "commitment scheme" 방식을 통해 데이터를 공유할 수 있다. 이때, 모든 공개 키가 유효하면 각각의 참여 클라이언트들은 공개키를 통해 공통의 공개키를 생성할 수 있다. 여기서, 공통 공개키는 다중 서명 지갑을 나타내며, 키 생성 모듈(210)에 의해 생성될 수 있다. 공유키를 생성하기 위하여 각각의 참여 클라이언트들은 임계 값(T)과 참여 클라이언트 수(N)를 이용해 클라이언트 자신의 개인키를 N개의 공유키로 분할할 수 있다. As described above, after the participating clients perform a pre-processing process before creating a multi-signature wallet, all participating clients generate private and public keys through the key generation module 210, and data through the "commitment scheme" method. can be shared At this time, if all public keys are valid, each participating client can generate a common public key through the public key. Here, the common public key represents a multi-signature wallet, and may be generated by the key generation module 210 . In order to generate the shared key, each participating client can divide the client's own private key into N shared keys using a threshold value (T) and the number of participating clients (N).

예를 들어, 도 4에 도시된 바와 같이, 다중 서명 지갑의 공유키를 생성하는 3개 중 2개의 다중 서명 지갑을 나타내는데, 각각의 참여 클라이언트들은 우선, 키 생성 모듈(210)의 dividePK()를 통해 3개의 공유키(SharedPK)로 클라이언트 자신의 개인키를 분할할 수 있다. 그 다음, 각 참여 클라이언트들은 암호화 및 복호화 모듈(220)의 encrypt()를 통해 각 참여자를 암호화 키로 해당 공유키를 암호화할 수 있다. 예를 들어, 참여 클라이언트 A는 분할된 공유키(sharedPK [A-2])를 암호화하고, 해당 암호화 키(Enc sharedPK [A-2])를 공유키로서 참여 클라이언트 B로 전송할 수 있다. 마찬가지로, 마찬가지로 참여 클라이언트 C로 전송될 공유키(sharedPK [A-3])는 암호화하고, 해당 암호화 키(Enc sharedPK [A-2])를 공유키로서 참여 클라이언트 C로 전송할 수 있다(즉 참여 클라이언트 C의 암호화 키에 해당됨). 암호화된 공유키(Enc sharedPK [A-2])는 참여 클라이언트 B만이 열 수 있으며, 암호화된 공유키(Enc sharedPK [A-3])는 참여 클라이언트 C만이 확인할 수 있다. 암호화 후 각 참여 클라이언트들은 통신 모듈(250)의 share()를 통해 암호화된 공유키를 관련 클라이언트에 분배하고, 참여 클라이언드들은 암호화 및 복호화 모듈(220)의 decrypt()를 통해 자신의 복호화 키로 전송된 공유키를 복호화할 수 있다. 각각의 참여 클라이언트들은 ZKP(zero-knowledge proof)를 이용하여 각 공유키를 교환할 수 있다. For example, as shown in Figure 4, two out of three multi-signature wallets generate a shared key of a multi-signature wallet, where each participating client first executes dividePK() of the key generation module 210 Through this, the client's own private key can be divided into three shared keys (SharedPK). Then, each participating client can encrypt the corresponding shared key with the encryption key for each participant through encrypt( ) of the encryption and decryption module 220 . For example, the participating client A may encrypt the split shared key (sharedPK [A-2]) and transmit the corresponding encryption key (Enc sharedPK [A-2]) to the participating client B as the shared key. Similarly, the shared key (sharedPK [A-3]) to be transmitted to the participating client C may be encrypted, and the corresponding encryption key (Enc sharedPK [A-2]) may be transmitted to the participating client C as a shared key (ie, the participating client C). Corresponds to the encryption key of C). The encrypted shared key (Enc sharedPK [A-2]) can only be opened by the participating client B, and the encrypted shared key (Enc sharedPK [A-3]) can only be checked by the participating client C. After encryption, each participating client distributes the encrypted shared key to the related clients through share() of the communication module 250, and the participating clients transmit their own decryption key through decrypt() of the encryption and decryption module 220 The shared key can be decrypted. Each participating client can exchange each shared key using ZKP (zero-knowledge proof).

한편, 모든 참여 클라이언트들은 유효성 검사 모듈(260)을 통해 공유키를 실제로 전송하지 않고 공유 키가 유효한지 확인할 수 있으며, 해당 증명이 유효하지 않으면 키 생성 프로세스가 중지될 수 있다.Meanwhile, all participating clients may check whether the shared key is valid without actually transmitting the shared key through the validation module 260 , and if the corresponding proof is not valid, the key generation process may be stopped.

도 4는 본 발명의 실시예에 따른 클라이언트 어플리케이션의 블룸 필터 생성 프로세스를 나타낸 도면이다.4 is a diagram illustrating a bloom filter generation process of a client application according to an embodiment of the present invention.

상기 클라이언트 어플리케이션(200)은, 트랜잭션 생성 모듈(230)을 통해, 블록체인 트랜잭션 서명에 참여하는 클라이언트 수(N)에 따른 블룸 필터의 크기(m-bit)를 계산하고, 블록체인 트랜잭션 서명에 참여하는 클라이언트 각각의 공개키를 이용하여 클라이언트 각각에 대한 해시값(k-hash)을 계산하고, 각 해시값에 해당하는 비트 값을 확인하고, 확인된 비트 값에 기초하여 클라이언트 각각에 대하여 상기 블록체인 트랜잭션 서명의 참여 여부를 확인하며, 블룸 필터를 블록체인 트랜잭션에 저장하는 블룸 필터 생성 프로세스를 수행할 수 있다.The client application 200, through the transaction creation module 230, calculates the size (m-bit) of the bloom filter according to the number of clients (N) participating in the blockchain transaction signature, and participates in the blockchain transaction signature Calculate the hash value (k-hash) for each client using the public key of each client, check the bit value corresponding to each hash value, and based on the confirmed bit value, the block chain for each client You can check the participation of the transaction signature and perform the bloom filter creation process that stores the bloom filter in the blockchain transaction.

우선, 트랜잭션 서명에 참여 클라이언트를 식별하기 위해 각 클라이언트는 트랜잭션 생성 모듈(230)을 통해 참여 클라이언트들의 공개키로 블룸 필터를 생성할 있다. 블룸 필터는 "False-positive"의 특성이 있기 때문에 모든 참여 클라이언트는 'm-bits'와 'K-hash' 함수의 배열로 블룸 필터의 크기를 결정할 수 있다. 확률적으로 안전한 상태를 2-20으로 설정하고, 트랜잭션의 최대 참여 클라이언트 수를 10으로 설정함으로써, 결과적으로 블룸 필터는 29비트에서 최대 289비트의 필터 크기와 20개의 해시 함수들을 가지고 있으며, 이는 최적의 블룸 필터 수가 된다.First, in order to identify a participating client in a transaction signature, each client may create a bloom filter with the public key of the participating clients through the transaction creation module 230 . Since the bloom filter has a "false-positive" characteristic, all participating clients can determine the size of the bloom filter by an array of 'm-bits' and 'K-hash' functions. By setting the probabilistically safe state to 2 -20 and the maximum number of participating clients in a transaction to 10, the resulting bloom filter has a filter size of 29 bits to a maximum of 289 bits and 20 hash functions, which are optimal is the number of bloom filters of .

도 4에 도시된 바와 같이, 두 참여 클라이언트 A와 B에서 트랜잭션을 위해 블룸 필터를 생성하는 과정이 도시되어 있다. 우선, 2/3 클라이언트가 다중 서명 지갑의 서명 프로세스에 참여하게 되는데, 각 참여 클라이언트의 수(즉, 2)로 m-bit 크기(1명: 29비트 2명 58비트, ??, 10명 289비트)를 계산할 수 있다. 참여 클라이언트 수가 2명인 경우 블룸 필터 크기는 58비트를 가질 수 있다. As shown in Fig. 4, the process of creating a bloom filter for a transaction in two participating clients A and B is shown. First, 2/3 clients will participate in the signing process of the multi-signature wallet, the number of each participating client (ie, 2) is the m-bit size (1 person: 29 bits 2 people 58 bits, ??, 10 people 289 bits) can be calculated. If the number of participating clients is 2, the bloom filter size may have 58 bits.

다음, 각 참여 클라이언트는 각 참여자의 공개키 (ex. A_pub 및 B_pub)을 사용하여 자체 해시값(H1 ~ H20) 20개를 계산하고, 각 해시값(H1 ~ H20) 에 대해 해당 비트의 비트 배열 인덱스에 해당하는 값을 1로 설정할 수 있다. 블룸 필터는 "commitment scheme"을 사용하여 각 사용자가 교환하고 검증할 수 있다. 예를 들어, 참여 클라이언트 A가 트랜잭션에 서명했는지 확인하기 위해 모든 참여 클라이언트는 참여 클라이언트 A의 공개키를 사용하여 자신의 20개 해시값(H1 ~ H20)을 계산하고, 각 해시값에 해당하는 비트를 확인할 수 있다. 확인 결과, 모든 값이 1이면 참여 클라이언트 A가 트랜잭션 서명에 참여했음을 나타낸다. 이와 같은 블룸 필터 생성 프로세스는 동일한 방식으로 참여 클라이언트 B에 대해서도 동일하게 수행도리 수 있다. 블룸 필터가 모든 참여 클라이언트(클라이언트 A 및 B)가 서명 프로세스에 참여했음을 나타내는지 확인한 후, 각 참여 클라이언트는 블룸 필터를 트랜잭션에 저장한다. 이후, 유효성 검사를 실시하여 유효성 검사에 실패하는 경우 해당 서명 프로세스가 중지되고 블룸 필터 생성 후 참여 클라이언트는 트랜잭션 서명 프로세스를 수행하게 된다. Next, each participating client calculates its own 20 hash values (H1 ~ H20) using each participant's public key (ex. A_pub and B_pub), and the bit array of the corresponding bit for each hash value (H1 ~ H20) The value corresponding to the index can be set to 1. Bloom filters can be exchanged and verified by each user using a "commitment scheme". For example, in order to verify that participating client A has signed a transaction, all participating clients use the public key of participating client A to calculate their 20 hash values (H1 to H20), and bits corresponding to each hash value can be checked. As a result of the verification, if all values are 1, it indicates that the participating client A participated in the transaction signing. This bloom filter creation process can be performed in the same way for participating client B as well. After the bloom filter verifies that all participating clients (clients A and B) have participated in the signing process, each participating client stores the bloom filter in a transaction. After that, if validation fails, the corresponding signature process is stopped, and after the bloom filter is created, participating clients perform the transaction signing process.

도 5는 본 발명의 실시예에 따른 클라이언트 어플리케이션의 블록체인 트랜잭션의 서명 프로세스를 나타낸 도면이다.5 is a diagram illustrating a signing process of a blockchain transaction of a client application according to an embodiment of the present invention.

상기 클라이언트 어플리케이션(200)은, 암호화 및 복호화 모듈(220)을 통해 블록체인 트랜잭션 서명에 참여하는 클라이언트 각각의 개인키를 암호화하고, 서명 모듈(240)을 통해 타원곡선 암호기술(Elliptic Curve Cryptography: ECC)을 기초로 생성된 난수(k)를 이용하여 타원 곡선 점을 계산하고, 암호화된 개인키, 계산된 타원 곡선 점과 클라이언트 공유키를 포함하는 로컬 서명을 클라이언트 별로 생성하고, 서명 모듈(240)을 통해 생성된 로컬 서명을 통신 모듈(250)을 통해 클라이언트 간에 서로 교환하며, 통신 모듈(250)을 통해 서로 교환된 로컬 서명을 서명 모듈(240)을 통해 각 클라이언트 별로 재구성하여 블록체인 트랜잭션 서명 프로세스를 수행할 수 있다.The client application 200 encrypts the private key of each client participating in the blockchain transaction signature through the encryption and decryption module 220, and elliptic curve cryptography (ECC) through the signature module 240 ), calculate the elliptic curve point using the generated random number (k), generate a local signature including the encrypted private key, the calculated elliptic curve point, and the client shared key for each client, and the signature module 240 The local signatures generated through the communication module 250 are exchanged with each other between clients, and the local signatures exchanged with the communication module 250 are reconstructed for each client through the signature module 240 to process a blockchain transaction signing process. can be performed.

상기 클라이언트 어플리케이션(200)은, 높은 보안을 위해 T-ECDSA(Threshold-Elliptic Curve Digital Signature Algorithm)를 사용하여 서명 권한을 분배하고, 이를 위해 권한을 분산하여 단일 서명을 생성하는 방법인 T-ECDSA에 다자간 계산(MPC: multilateral calculation)을 사용할 수 있다. 해당 과정에서 권한을 배포하고 정보를 숨기기 위해 각 참여 클라이언트에 대해 각각 난수와 로컬 서명을 생성하여 공통의 서명 값을 계산할 수 있다.The client application 200 distributes the signature authority using T-ECDSA (Threshold-Elliptic Curve Digital Signature Algorithm) for high security, and for this purpose, distributes the authority to generate a single signature. Multilateral calculation (MPC) can be used. In the process, a common signature value can be calculated by generating a random number and a local signature for each participating client, respectively, for distributing authority and hiding information.

도 5에 도시된 바와 같이, 참여 클라이언트 A와 B는 먼저 T-ECDSA를 통해 단일 서명을 생성하는데 사용되는 자신의 난수(k) 를 생성한다. 예를 들어, 참여 클라이언트 A와 B는 자신의 encrypt()를 통해 자신의 개인키(p)를 암호화하고, 각 참여 클라이언트는 자신의 난수(k)로 타원 곡선의 점을 계산하여, p_A / k_A 및 p_B / k_B와 같은 난수를 생성할 수 있다. 그 다음, 로컬 서명을 생성하기 위해 참여 클라이언트 A와 B는 암호화된 p(ie, enc_p_A와 enc_p_B)와 자신의 타원곡선 점(즉, k_A · G와 k_B · G)를 교환할 수 있다. 또한, 각 참여 클라이언트 A와 B는 지갑 생성 당시에 생성된 정보 (공유키, 개인 키 등)와 함께 로컬 서명을 생성할 수 있다. 각 로컬 서명은 단일 서명의 일부이며 각 참가자의 암호화된 공유키 정보를 포함할 수 있다. 이러한 로컬 서명은 완전한 단일 서명을 재구성하는데 사용될 수 있으며, 이후 참여 클라이언트 A와 B는 exchangeLocalSig()를 통해 로컬 서명을 교환하고 로컬 서명을 재구성하여 트랜잭션 서명을 완료할 수 있다. As shown in Fig. 5, participating clients A and B first generate their own random number k used to generate a single signature through T-ECDSA. For example, participating clients A and B encrypt their private key (p) through their own encrypt(), and each participating client calculates the point of the elliptic curve with their random number (k), p_A / k_A and random numbers such as p_B / k_B. Then, participating clients A and B can exchange their elliptic curve points (ie, k_A G and k_B G) for encrypted p (ie, enc_p_A and enc_p_B) to generate a local signature. In addition, each participating client A and B can generate a local signature together with information (shared key, private key, etc.) generated at the time of wallet creation. Each local signature is part of a single signature and may contain the encrypted shared key information of each participant. This local signature can be used to reconstruct a complete single signature, and then the participating clients A and B can exchange local signatures through exchangeLocalSig() and reconstruct the local signature to complete the transaction signature.

이때, 참여 클라이언트 별로 서명된 트랜잭션이 생성되고, 전자 지갑의 규칙에 따라 채널을 생성하는 클라이언트 A가 블록체인으로 트랜잭션을 전송할 수 있다. Shamir의 비밀 공유 방식과 달리 프로세스에서 공통 개인키가 아닌 각 로컬 서명이 트랜잭션 서명을 위해 재구성되기 때문에 단일 서명이 더 안전하다. 따라서, 각 참여 클라이언트는 개인키, 공유키와 같은 보안 정보를 획득할 수 없으며, 악의적인 서버는 해당 정보로 다른 트랜잭션에 서명할 수 없다. 또한, 기존의 다중 서명 지갑과 달리 제안된 지갑은 블룸 필터를 사용하기 때문에, 참가자의 공개키 또는 지갑 주소를 포함하지 않아 더욱더 높은 프라이버시(privacy)를 제공할 수 있다.At this time, a signed transaction is generated for each participating client, and client A, which creates a channel according to the rules of the electronic wallet, can transmit the transaction to the block chain. Unlike Shamir's secret sharing method, single signature is more secure because each local signature is reconstructed to sign the transaction rather than the common private key in the process. Therefore, each participating client cannot obtain security information such as a private key or a shared key, and a malicious server cannot sign other transactions with that information. In addition, unlike the existing multi-signature wallet, the proposed wallet uses a bloom filter, so it does not include the participant's public key or wallet address, thereby providing even higher privacy.

본 실시예에 따르면, 트랜잭션을 전송하고자 하는 참여 클라이언트는 트랜잭션에 대한 정보를 직접 입력하고, 해당 지갑의 참여 클라이언트들이 트랜잭션의 동의하는 서명을 통해 해당 트랜잭션에 서명할 수 있다. 트랜잭션의 서명에 관련된 참여 클라이언트의 정보는 블룸 필터를 통해 각 서명자의 정보를 은닉하며, 각 참여 클라이언트는 이를 통해 서명에 참여한 클라이언트 정보를 확인할 수 있다. 또한, 블룸 필터의 정보는 블록체인에 업로드되어 서명에 참여한 클라이언트 정보에 대한 부인 방지를 실시한다. 이에 따라, 블록체인의 지갑의 단일 서명 방식보다 안전한 서명을 제공할 수 있다. 또한, 블록체인 프로토콜을 수정하지 않고 성능, 저장 효율성 및 개인 정보를 개선하는 새롭고 효율적인 다중 서명 지갑을 제공할 수 있다.According to this embodiment, a participating client who wants to transmit a transaction directly inputs information about the transaction, and the participating clients of the corresponding wallet can sign the transaction through a signature agreed to the transaction. The information of the participating clients related to the signature of the transaction hides the information of each signer through the bloom filter, and each participating client can check the information of the client participating in the signature through this. In addition, the information of the Bloom filter is uploaded to the blockchain to enforce non-repudiation of the client information participating in the signature. Accordingly, it is possible to provide a more secure signature than the single-signature method of the wallet of the blockchain. It can also provide a new and efficient multi-signature wallet that improves performance, storage efficiency and privacy without modifying the blockchain protocol.

본 실시예는 전자 서명을 단일 사용자가 아닌 다수의 참여자에 의해 단 하나의 서명 값을 발행하는 방식으로 처리할 수 있도록 한 것으로, 다수의 참여자가 하나의 지갑을 생성하여 관리할 수 있으며, 지갑의 키를 분실시 다자의 합의를 통해 지갑을 재 생성하여 분실에 대한 대비를 할 수 있다. 이러한 방식은 블록체인의 지갑뿐만 아니라, 다수의 참여자에 의해 서명이 필요한 어떠한 분야에서도 사용이 가능하다.This embodiment enables electronic signatures to be processed in a way that only one signature value is issued by multiple participants rather than a single user, and multiple participants can create and manage one wallet, and When the key is lost, it is possible to prepare for loss by re-creating the wallet through multi-party agreement. This method can be used not only in the wallet of the blockchain, but also in any field that requires signatures by multiple participants.

이상에서 설명한 것은 본 발명에 의한 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.What has been described above is only one embodiment for implementing a multi-signature wallet system in a block chain using a bloom filter according to the present invention, and the present invention is not limited to the above embodiment, and is claimed in the claims below. As described above, without departing from the gist of the present invention, it will be said that the technical spirit of the present invention exists to the extent that various modifications can be made by anyone with ordinary knowledge in the field to which the invention pertains.

1000: 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템
100: 관리 서버
110: 채널 생성 모듈
120: 채널 참여 모듈
130: 정보 저장 모듈
140: 정보 제공 모듈
200: 클라이언트 어플리케이션
210: 키 생성 모듈
220: 암호화 및 복호화 모듈
230: 트랜잭션 생성 모듈
240: 서명 모듈
250: 통신 모듈
260: 유효성 검사 모듈
1000: Multi-Signature Wallet System on Blockchain Using Bloom Filter
100: management server
110: channel creation module
120: channel participation module
130: information storage module
140: information providing module
200: client application
210: key generation module
220: encryption and decryption module
230: transaction creation module
240: signature module
250: communication module
260: validation module

Claims (7)

다중 서명 지갑에 참여하는 다수의 클라이언트 간에 통신 채널을 생성하고, 상기 통신 채널을 통해 클라이언트 간 정보를 교환하고, 다수의 클라이언트로부터 각각 생성되어 교환되는 정보를 저장하며, 저장된 클라이언트 정보를 다른 다수의 클라이언트로 각각 전달하는 관리 서버; 및
다수의 클라이언트 별로 개인키와 공개키를 각각 생성하고, 생성된 각각의 공개키를 재결합하여 상기 다중 서명 지갑의 공유키를 생성하고, 상기 블록체인 트랜잭션에 서명한 클라이언트를 나타내는 블룸 필터를 생성 및 저장하고, 저장된 상기 블룸 필터를 이용하여 클라이언트에 대한 상기 다중 서명 지갑의 참여 여부를 확인하며, 클라이언트 별 로컬 서명을 생성 및 재구성하여 상기 블록체인 트랜잭션에 서명하는 클라이언트 어플리케이션을 포함하는 것을 특징으로 하는 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템.
Creating a communication channel between multiple clients participating in the multi-signature wallet, exchanging information between clients through the communication channel, storing information generated and exchanged from multiple clients, and transferring the stored client information to multiple clients management server that forwards each to; and
Generates a private key and a public key for a plurality of clients, recombines each generated public key to generate the shared key of the multi-signature wallet, and creates and stores a bloom filter representing the client that signed the blockchain transaction and a client application that uses the stored bloom filter to check whether the multi-signature wallet is participating in the client, and creates and reconfigures a local signature for each client to sign the blockchain transaction. A multi-signature wallet system on a blockchain using
제1 항에 있어서,
상기 관리 서버는,
상기 통신 채널을 생성하는 채널 생성 모듈;
상기 클라이언트 어플리케이션이 상기 통신 채널을 통해 상기 블록체인 트랜잭션에 참여하도록 상기 클라이언트 어플리케이션 간에 클라이언트 정보를 서로 교환하는 채널 참여 모듈;
상기 채널 참여 모듈을 통해 교환되는 클라이언트 정보를 저장하는 정보 저장 모듈; 및
상기 정보 저장 모듈에 저장된 클라이언트 정보를 암호화하여 서로 다른 상기 클라이언트 어플리케이션으로 제공하는 정보 제공 모듈을 포함하는 것을 특징으로 하는 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템.
The method of claim 1,
The management server,
a channel generation module for generating the communication channel;
a channel participation module for exchanging client information between the client applications so that the client applications participate in the blockchain transaction through the communication channel;
an information storage module for storing client information exchanged through the channel participation module; and
A multi-signature wallet system in a block chain using a bloom filter, characterized in that it comprises an information providing module that encrypts the client information stored in the information storage module and provides it to the different client applications.
제1 항에 있어서,
상기 클라이언트 어플리케이션은,
클라이언트 별 개인키 및 공개키를 생성하고, 상기 블록체인 트랜잭션에 참여하는 모든 클라이언트의 공개키를 재결합하여 상기 블록체인 트랜잭션의 서명을 위한 공유키를 생성하는 키 생성 모듈;
상기 키 생성 모듈에서 생성되는 정보를 암호화하고, 상기 관리 서버를 통해 제공되는 정보를 복호화하는 암호화 및 복호화 모듈;
상기 블록체인 트랜잭션을 생성하고, 생성된 상기 블록체인 트랜잭션에 서명한 클라이언트를 나타내는 상기 블룸 필터를 생성한 후 상기 블록체인 트랜잭션에 저장하는 트랜잭션 생성 모듈;
클라이언트 별 로컬 서명을 각각 생성하고, 생성된 각각의 로컬 서명을 클라이언트 간에 서로 교환하여 재구성하고, 재구성된 로컬 서명을 이용하여 상기 블록체인 트랜잭션에 서명하는 서명 모듈;
상기 관리 서버와 상기 통신 채널을 통해 연결되어 상기 관리 서버에 저장된 서로 다른 클라이언트 정보를 제공 받고, 자체적으로 생성된 클라이언트 정보를 추출하여 상기 관리 서버로 제공하는 통신 모듈; 및
상기 블룸 필터를 이용하여 상기 블록체인 트랜잭션에 참여한 클라이언트를 식별하고, 클라이언트 정보에 대한 위조 여부를 판별하는 유효성 검사 모듈을 포함하는 것을 특징으로 하는 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템.
The method of claim 1,
The client application is
a key generation module for generating a private key and a public key for each client, and recombining the public keys of all clients participating in the block chain transaction to generate a shared key for signing the block chain transaction;
an encryption and decryption module for encrypting information generated by the key generation module and decrypting information provided through the management server;
a transaction generation module that generates the blockchain transaction, generates the bloom filter representing a client that has signed the generated blockchain transaction, and stores it in the blockchain transaction;
a signature module for generating local signatures for each client, reconfiguring each generated local signature by exchanging each other between clients, and signing the block chain transaction using the reconstructed local signature;
a communication module connected to the management server through the communication channel to receive different client information stored in the management server, extract self-generated client information and provide it to the management server; and
A multi-signature wallet system in a blockchain using a bloom filter, comprising a validation module for identifying a client participating in the block chain transaction using the bloom filter and determining whether the client information is forged.
제1 항에 있어서,
상기 클라이언트 어플리케이션은,
상기 키 생성 모듈을 통해 클라이언트 별로 생성된 개인키를 상기 암호화 및 복호화 모듈을 통해 암호화하여 암호화 키를 생성하고,
상기 통신 모듈을 통해 상기 관리 서버로부터 상기 통신 채널의 아이디를 수신하고, 상기 통신 채널의 아이디와 상기 암호화 키를 상기 블록체인 트랜잭션에 참여하는 다른 클라이언트들과 서로 교환하고, 서로 교환된 상기 통신 채널의 아이디, 및 클라이언트 별 상기 암호화 키를 비밀번호로서 이용하여 상기 통신 채널에 참여하는 전처리 프로세스를 수행하는 것을 특징으로 하는 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템.
The method of claim 1,
The client application is
Encrypting the private key generated for each client through the key generation module through the encryption and decryption module to generate an encryption key,
receiving the ID of the communication channel from the management server through the communication module, exchanging the ID of the communication channel and the encryption key with other clients participating in the block chain transaction, and A multi-signature wallet system in a blockchain using a bloom filter, characterized in that a pre-processing process for participating in the communication channel is performed by using the ID and the encryption key for each client as a password.
제4 항에 있어서,
상기 클라이언트 어플리케이션은,
상기 키 생성 모듈을 통해 클라이언트 별 개인키 및 공개키를 생성하고, 임계 값 서명 체계(Threshold signature scheme)와 다중 서명 지갑에 참여한 클라이언트 수(N)를 기초로 클라이언트 각각의 개인키를 상기 클라이언트 수(N)로 분할하여 N개의 공유키를 클라이언트 별로 각각 생성하고,
상기 암호화 및 복호화 모듈을 통해 상기 N개의 공유키를 각각 암호화하여 N개의 암호화된 공유키를 생성하고,
상기 통신 모듈을 통해 상기 N개의 암호화된 공유키 중 N-1개의 암호화된 공유키를 서로 다른 클라이언트 간에 상호 교환하여 각 클라이언트 별로 클라이언트 자신의 N-1개의 암호화된 공유키를 제외한 클라이언트 자신의 암호화된 공유키인 제1 공유키와 서로 다른 클라이언트에 대한 N-1개의 암호화된 공유키인 제2 공유키를 포함하는 클라이언트 공유키를 구비하도록 하고,
상기 암호화 및 복호화 모듈을 통해 상기 클라이언트 공유키를 복호화하며,
상기 유효성 검사 모듈을 통해 상기 클라이언트 공유키에 대한 유효성을 검증하는 다중 서명 지갑 생성 프로세스를 수행하는 것을 특징으로 하는 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템.
5. The method of claim 4,
The client application is
A private key and a public key for each client are generated through the key generation module, and the private key of each client is generated based on the threshold signature scheme and the number of clients participating in the multi-signature wallet (N). N) to generate N shared keys for each client,
Encrypting each of the N shared keys through the encryption and decryption module to generate N encrypted shared keys,
Through the communication module, N-1 encrypted shared keys among the N encrypted shared keys are exchanged between different clients, and the client's own encrypted shared keys except for the client's own N-1 encrypted shared keys are exchanged for each client. to have a client shared key including a first shared key, which is a shared key, and a second shared key, which is a second shared key, which is an encrypted shared key of N-1 for different clients,
Decrypts the client shared key through the encryption and decryption module,
A multi-signature wallet system in a blockchain using a bloom filter, characterized in that performing a multi-signature wallet creation process that verifies the validity of the client shared key through the validation module.
제5 항에 있어서,
상기 클라이언트 어플리케이션은,
상기 트랜잭션 생성 모듈을 통해, 블록체인 트랜잭션 서명에 참여하는 클라이언트 수(N)에 따른 상기 블룸 필터의 크기(m-bit)를 계산하고, 블록체인 트랜잭션 서명에 참여하는 클라이언트 각각의 공개키를 이용하여 클라이언트 각각에 대한 해시값(k-hash)을 계산하고, 각 해시값에 해당하는 비트 값을 확인하고, 확인된 비트 값에 기초하여 클라이언트 각각에 대하여 상기 블록체인 트랜잭션 서명의 참여 여부를 확인하며, 상기 블룸 필터를 블록체인 트랜잭션에 저장하는 블룸 필터 생성 프로세스를 수행하는 것을 특징으로 하는 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템.
6. The method of claim 5,
The client application is
Through the transaction creation module, the size (m-bit) of the bloom filter is calculated according to the number of clients (N) participating in the blockchain transaction signature, and using the public key of each client participating in the blockchain transaction signature Calculate the hash value (k-hash) for each client, check the bit value corresponding to each hash value, and check whether the block chain transaction signature is participating for each client based on the confirmed bit value, A multi-signature wallet system in a blockchain using a bloom filter, characterized in that performing a bloom filter creation process that stores the bloom filter in a blockchain transaction.
제6 항에 있어서,
상기 클라이언트 어플리케이션은,
상기 암호화 및 복호화 모듈을 통해 상기 블록체인 트랜잭션 서명에 참여하는 클라이언트 각각의 개인키를 암호화하고,
상기 서명 모듈을 통해 타원곡선 암호기술(Elliptic Curve Cryptography: ECC)을 기초로 생성된 난수(k)를 이용하여 타원 곡선 점을 계산하고, 암호화된 개인키, 계산된 타원 곡선 점과 상기 클라이언트 공유키를 포함하는 로컬 서명을 클라이언트 별로 생성하고,
상기 서명 모듈을 통해 생성된 로컬 서명을 상기 통신 모듈을 통해 클라이언트 간에 서로 교환하고,
상기 통신 모듈을 통해 서로 교환된 로컬 서명을 상기 서명 모듈을 통해 각 클라이언트 별로 재구성하여 블록체인 트랜잭션 서명 프로세스를 수행하는 것을 특징으로 하는 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템.
7. The method of claim 6,
The client application is
Encrypting the private key of each client participating in the blockchain transaction signing through the encryption and decryption module,
The elliptic curve point is calculated using a random number (k) generated based on Elliptic Curve Cryptography (ECC) through the signature module, and the encrypted private key, the calculated elliptic curve point and the client shared key Generate a local signature for each client, including
exchanging local signatures generated through the signature module between clients through the communication module;
A multi-signature wallet system in a blockchain using a bloom filter, characterized in that the local signatures exchanged with each other through the communication module are reconstructed for each client through the signature module to perform a blockchain transaction signature process.
KR1020210048739A 2021-04-14 2021-04-14 Multi-signature wallet system in blockchain using the bloom filter KR102546762B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210048739A KR102546762B1 (en) 2021-04-14 2021-04-14 Multi-signature wallet system in blockchain using the bloom filter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210048739A KR102546762B1 (en) 2021-04-14 2021-04-14 Multi-signature wallet system in blockchain using the bloom filter

Publications (2)

Publication Number Publication Date
KR20220142254A true KR20220142254A (en) 2022-10-21
KR102546762B1 KR102546762B1 (en) 2023-06-23

Family

ID=83805143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210048739A KR102546762B1 (en) 2021-04-14 2021-04-14 Multi-signature wallet system in blockchain using the bloom filter

Country Status (1)

Country Link
KR (1) KR102546762B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019145925A (en) * 2018-02-16 2019-08-29 株式会社bitFlyer Method for verifying transaction in blockchain network, and node for constituting the network
KR20190138645A (en) * 2017-04-07 2019-12-13 엔체인 홀딩스 리미티드 Method and system for secure data record distribution using blockchain
KR20200002015A (en) 2018-06-28 2020-01-07 주식회사 페이게이트 System for controlling multi signature secure account
KR20210009791A (en) * 2019-07-18 2021-01-27 삼성전자주식회사 Electronic authentication apparatus using block chain and a method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190138645A (en) * 2017-04-07 2019-12-13 엔체인 홀딩스 리미티드 Method and system for secure data record distribution using blockchain
JP2019145925A (en) * 2018-02-16 2019-08-29 株式会社bitFlyer Method for verifying transaction in blockchain network, and node for constituting the network
KR20200002015A (en) 2018-06-28 2020-01-07 주식회사 페이게이트 System for controlling multi signature secure account
KR20210009791A (en) * 2019-07-18 2021-01-27 삼성전자주식회사 Electronic authentication apparatus using block chain and a method thereof

Also Published As

Publication number Publication date
KR102546762B1 (en) 2023-06-23

Similar Documents

Publication Publication Date Title
US11552792B2 (en) Systems and methods for generating signatures
CN108352015B (en) Secure multi-party loss-resistant storage and encryption key transfer for blockchain based systems in conjunction with wallet management systems
US8670563B2 (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
EP4046325B1 (en) Digital signature generation using a cold wallet
TWI821248B (en) Computer implemented method and system for transferring control of a digital asset
CN110519046B (en) Quantum communication service station key negotiation method and system based on one-time asymmetric key pair and QKD
CN111615810A (en) Computer-implemented method and system for acquiring digitally signed data
CN110519226B (en) Quantum communication server secret communication method and system based on asymmetric key pool and implicit certificate
WO2022089865A1 (en) Identifying denial-of-service attacks
GB2603495A (en) Generating shared keys
Dolev et al. SodsBC: a post-quantum by design asynchronous blockchain framework
KR102354044B1 (en) The method of recovering private key using mnemonic code
WO2000019652A1 (en) Distributed shared key generation and management using fractional keys
Ebrahimi et al. Enhancing cold wallet security with native multi-signature schemes in centralized exchanges
CN117917041A (en) Generating a shared encryption key
KR102546762B1 (en) Multi-signature wallet system in blockchain using the bloom filter
CN109787773B (en) Anti-quantum computation signcryption method and system based on private key pool and Elgamal
Sarumi A review of encryption methods for secure data communication
CN113656828B (en) Block chain privacy protection method based on lattice code and oriented to financial system transaction
EP4181457A1 (en) Quantum based method and system for performing cryptocurrency asset transactions
CN118266189A (en) Generating a shared encryption key
JP2024532557A (en) Generating a shared encryption key
WO2023143880A1 (en) Generating shared private keys
CN118592008A (en) Generating a shared private key
CN117223252A (en) Nested threshold signatures

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant