WO2021235838A1 - 블록체인을 이용하는 전자 장치 및 동작 방법 - Google Patents

블록체인을 이용하는 전자 장치 및 동작 방법 Download PDF

Info

Publication number
WO2021235838A1
WO2021235838A1 PCT/KR2021/006232 KR2021006232W WO2021235838A1 WO 2021235838 A1 WO2021235838 A1 WO 2021235838A1 KR 2021006232 W KR2021006232 W KR 2021006232W WO 2021235838 A1 WO2021235838 A1 WO 2021235838A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
transaction
electronic device
key
private key
Prior art date
Application number
PCT/KR2021/006232
Other languages
English (en)
French (fr)
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 삼성전자 주식회사
Publication of WO2021235838A1 publication Critical patent/WO2021235838A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • 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
    • 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
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • Various embodiments according to the present disclosure relate to an electronic device that performs a transaction using a block chain.
  • Blockchain is a data storage technology that makes data into blocks of specific units and connects them in a chain form on a valid network.
  • Blockchain nodes are not managed by a central server and have a separate distributed public ledger. Cryptocurrency transaction details are recorded in a distributed public ledger, and nodes on all blockchain networks can have the same transaction history data. Accordingly, it is difficult to individually forge and falsify data stored in blockchain nodes.
  • Cryptocurrency wallets can store and manage users' keys.
  • the data on the transaction contents of the virtual transaction can be electronically signed using the user's key and stored in the blockchain node.
  • the user's key may consist of a key pair including a private key and a public key.
  • a public key may be generated from a private key uniquely granted to a user, and an address may be generated from the public key using a hash function.
  • the cryptocurrency wallet can be divided into a cold wallet that operates offline and a hot wallet that works online.
  • the cold wallet may be configured to generate transaction details inside the hardware device, which is an offline environment, and to perform an electronic signature process.
  • a cold wallet can also be referred to as a hard wallet, is encrypted (eg, personal identification number, personal identification number), and is designed to not be affected by viruses or backdoor programs, so it is evaluated to have high security.
  • Cold wallets with high security have the disadvantages of being expensive and complicated to use.
  • Hot wallets have high convenience in that real-time transactions are possible online, but since transactions are performed in an online environment, there is a risk that the private key is hacked from the outside. If the private key is hacked from the outside, arbitrary transactions may occur with respect to the user's cryptocurrency. For example, an attacker can steal a private key stored on an online server to gain transmission rights for cryptocurrency. However, it is difficult for the user to check the occurrence of an external transaction in real time, and since the ownership of the cryptocurrency is completely transferred after the transaction is transmitted to the blockchain network, the stolen cryptocurrency cannot be recovered.
  • various embodiments according to the present disclosure provide an electronic device that prevents hacking by monitoring an online transaction.
  • the electronic device in an embodiment includes a communication circuit, a secure memory, and at least one processor connected to the communication circuit and the secure memory, wherein the at least one processor includes a first public key and a first private key. generate a first key pair including a key (private key), the first private key is stored in the secure memory, generate a first address based on the first public key, and generating a second key pair comprising a second distinct public key and a second private key distinct from the first private key, generating a second address based on the second public key, and generating the first private key It may be configured to generate transaction data for a plurality of transactions for transferring an unused transaction output value of the first address from the first address to the second address based on a digital signature through .
  • the method of operating an electronic device includes generating a first key pair including a first public key and a first private key, the first private key is stored in a secure memory, and the first public key is stored in the first public key. generating a first address based on the first address, generating a second key pair including a second public key different from the first public key and a second private key different from the first private key, the second generating a second address based on a public key, and transferring an unused transaction output value of the first address from the first address to the second address based on a digital signature through the first private key. It may include an operation of generating transaction data for the transactions.
  • the server includes a communication circuit and at least one processor connected to the communication circuit, wherein the at least one processor receives an unused transaction output value of the first address from the electronic device through the communication circuit.
  • FIG. 1 shows the configuration of a transaction system including an electronic device, a server, and a block chain network according to an embodiment.
  • FIG. 2 is a flowchart illustrating an operation of a transaction system according to an embodiment.
  • FIG. 3 is a flowchart illustrating an operation of an electronic device according to an exemplary embodiment.
  • FIG. 4 is a flowchart illustrating an operation of a server that detects an abnormal transaction according to an embodiment.
  • FIG. 5 is a block diagram of REEs and TEEs operated in an electronic device according to an embodiment.
  • FIG. 6A illustrates a first UI state of an electronic device according to an exemplary embodiment.
  • 6B illustrates a second UI state of the electronic device according to an exemplary embodiment.
  • 6C illustrates a third UI state of the electronic device according to an exemplary embodiment.
  • 6D illustrates a fourth UI state of the electronic device according to an exemplary embodiment.
  • 6E illustrates a fifth UI state of an electronic device according to an exemplary embodiment.
  • 6F illustrates a sixth UI state of the electronic device according to an exemplary embodiment.
  • FIG. 7 illustrates a UI state of an electronic device that generates an anti-hacking transaction according to an embodiment.
  • FIG. 8 illustrates a UI state of an electronic device that generates a plurality of transactions according to an embodiment.
  • FIG. 9 is a flowchart illustrating an operation of a transaction system after transaction transmission is completed according to an embodiment.
  • FIG. 10 is a block diagram of an electronic device in a network environment according to various embodiments of the present disclosure.
  • FIG. 11 is a block diagram illustrating a program according to various embodiments.
  • FIG. 1 shows the configuration of a transaction system including an electronic device, a server, and a block chain network according to an embodiment.
  • a transaction system 100 may include an electronic device 110 , a server 130 , and a blockchain network 150 .
  • the electronic device 110 (eg, the electronic device 1001 of FIG. 10 ) includes a communication circuit 112 (eg, the communication module 1090 of FIG. 10 ), a secure memory 114 (eg, FIG. 10 ). 10 ), a processor 116 (eg, the processor 1020 of FIG. 10 ), and a display 118 (eg, the display device 1060 of FIG. 10 ).
  • the communication circuit 112 may establish a communication channel between the electronic device 110 and an external electronic device (eg, the server 130 ) and transmit and receive data. For example, the communication circuit 112 may transmit transaction data of the electronic device 110 performing a transaction to the server 130 .
  • the electronic device 110 may generate a key pair using asymmetric key cryptography (eg, public-key cryptography).
  • the key pair may include a private key and a public key.
  • the secure memory 114 may store the generated private key.
  • the secure memory 114 may refer to a memory in the form of hardware that provides a security environment.
  • the secure memory 114 may be in the form of a built-in electronic device 110 or a device (eg, a micro SD card) that can be separately inserted into the electronic device 110 .
  • the secure memory 114 may mean a memory separated by hardware from a general memory.
  • the secure memory 114 may refer to a memory in the form of encrypted software to provide a secure environment.
  • the secure memory 114 may be in the form of software that encrypts and stores data so that data can be accessed only through some configuration (eg, TEE).
  • the secure memory 114 may be implemented in the same memory as the general memory (eg, the memory 1030 of FIG. 10 ), but may be in the form of software stored in a secure memory area separated by software (eg, a memory address). have.
  • the display 118 may visually provide information to the outside (eg, a user) of the electronic device 110 .
  • the display 118 may externally provide at least one of transaction generation information, balance information, transaction transmission delay information, and transaction transmission completion information of the electronic device 110 .
  • the processor 116 may generate a key pair based on a root seed. For example, when the processor 116 performs an anti-hacking transaction, the processor 116 may generate a private key based on a new root seed and generate a public key based on the private key. Processor 116 may generate an address via a hash function for the public key.
  • the server 130 may include a communication circuit 132 , a memory 134 , and a processor 136 .
  • the communication circuit 132 may transmit and receive data by establishing a communication channel between the server 130 and an external device (eg, the electronic device 110 and the block chain network 150 ).
  • the communication circuit 132 may transmit transaction data received from the electronic device 110 to the blockchain network 150 .
  • the transmitted transaction data may be stored in the blockchain node 152 .
  • the processor 136 may receive data from the electronic device 110 through the communication circuit 132 . In an embodiment, the processor 136 may identify a classification flag included in data received from the electronic device 110 . In an embodiment, the processor 136 may determine whether to transmit the received data to the block chain network 150 based on a classification flag included in the data. For example, when a specific division flag is included in the received data (or when the included division flag is the first division value), the processor 136 may store the received data in the memory 134 . . For another example, when the received data does not include a specific division flag (or, when the included division flag is a second division value different from the first division value), the processor 136 receives the received data. Data can be transmitted to the blockchain network 150 .
  • the division flag may mean a division value included in the data packet.
  • the processor 136 may store the received data in the memory 134 .
  • the processor 136 may transmit the received data to the block chain network 150 .
  • data generated by the electronic device 110 may be transmitted directly to the blockchain network 150 .
  • the electronic device 110 may directly transmit transaction data that does not include a specific identification flag to the blockchain network 150 .
  • the electronic device 110 may transmit transaction data including a specific identification flag to the server 130 .
  • the server 130 that has received the transaction data including the specific identification flag may monitor the blockchain network 150 . When an abnormal transaction is detected in the block chain network 150 , the server 130 may transmit transaction data including a specific identification flag to the block chain network 150 .
  • the electronic device 110 may store transaction data including a specific identification flag in a memory (eg, the secure memory 114 ).
  • the server 130 may request the electronic device 110 to transmit transaction data including a specific classification flag to the block chain network 150 .
  • FIG. 2 is a flowchart illustrating an operation of a transaction system according to an embodiment.
  • the electronic device 110 may receive a monitoring request for a first address in operation 201 .
  • the electronic device 110 may receive a monitoring request for the first address through a touch input to a display (eg, the display 118 of FIG. 1 ).
  • the server 130 may start monitoring according to various arbitrary settings.
  • the server 130 may start monitoring according to a user's setting for the electronic device 110 and any setting in the electronic device 110 and/or the server (eg, the server 130 in FIG. 1 ). may be
  • the electronic device 110 may generate transaction data for a plurality of transactions from the first address to the second address in operation 203 .
  • the first address may mean an address where monitoring for external hacking is to be performed
  • the second address may mean an anti-hacking address for preventing theft by the outside.
  • the first address and the second address may mean addresses generated based on different root seeds.
  • the electronic device 110 may calculate a fee based on transaction data. For example, the electronic device 110 transmits 1.9 BTC from the first address having an unused transaction output value Vin with 2.1 BTC to the second address (Vout), and transmits 0.05 BTC to the first address (Vout) ) to create transaction data.
  • the electronic device 110 may calculate that the transaction data fee is 0.15 BTC based on Vin and Vout.
  • the electronic device 110 may generate transaction data to include different fee information for a plurality of transactions.
  • the electronic device 110 may generate first transaction data in which 1.9 BTC is transmitted (Vout) from a first address having an unused transaction output value Vin having 2.1 BTC to a second address.
  • the first transaction data may include fee information of 0.2 BTC.
  • the electronic device 110 may generate second transaction data in which 2.05 BTC is transmitted (Vout) from the first address having an unused transaction output value Vin having 2.1 BTC to the second address.
  • the second transaction data may include fee information of 0.05 BTC.
  • the electronic device 110 may transmit transaction data for a plurality of transactions to the server 130 in operation 205 .
  • the server 130 may store transaction data for a plurality of received transactions in the memory 134 .
  • the plurality of transactions may include a distinguishing flag.
  • the server 130 may determine a monitoring state for the first address. For example, when the first address is in the monitoring state, the first address is a secure memory that provides a secure environment of the server 130 and/or the electronic device 110 (eg, the secure memory 114 of FIG. 1 ). As it is managed in , arbitrary state change may not be possible.
  • the server 130 may monitor a transaction for the first address in operation 207 .
  • the server 130 may monitor the input value of the transaction data transmitted to the block chain network 150 .
  • the server 130 may store an address list including the user's unspent transaction output (UTXO).
  • the server 130 may compare the input value of the transaction data transmitted to the block chain network 150 with the address including the user's unused transaction output value. When the input value of the transaction data and the output value of the user's unused transaction are the same, the server 130 may determine the corresponding transaction data as transaction data by external hacking.
  • the server 130 may store the transaction ID information of the user's unused transaction output value and the output index value (Vout) of the transaction.
  • the server 130 may compare the transaction ID information and output index value of the transaction data transmitted to the block chain network 150 with the transaction ID information of the user's unused transaction output value and the output index value of the transaction. When the transaction ID information and the output index value of the transaction are the same, the server 130 may determine that the corresponding transaction data is transaction data by external hacking.
  • operation 207 may be sequentially executed after operation 205 or may be executed in parallel with operation 205 .
  • the server 130 may monitor the transaction after the point in time when a plurality of transaction data is received from the electronic device 110 .
  • the server 130 may receive a plurality of transaction data from the electronic device 110 and simultaneously monitor the transaction.
  • the server 130 may detect an abnormal (or abnormal) transaction for the first address in operation 209 . For example, when the server 130 detects an abnormal transaction requesting withdrawal from the first address in the monitoring state, it can identify that an external hacking has occurred.
  • the server 130 may In operation 211 , transaction data for at least one transaction among a plurality of transactions may be transmitted to the blockchain network 150 .
  • the server 130 checks the fee information of the abnormal transaction for the first address, and transfers the transaction data from the first address to the second address including the fee information higher than the corresponding fee information to the block chain network 150 ) can be sent to
  • the electronic device 110 transmits the generated data. It can also be transmitted directly to the blockchain network 150 .
  • the electronic device 110 may generate transaction data for a plurality of transactions from the first address to the second address and store the generated transaction data in a memory (eg, the secure memory 114 of FIG. 1 ).
  • the electronic device 110 may transmit data including only whether transaction data is generated to the server 130 .
  • the server 130 detects the abnormal transaction for the first address, the server 130 transmits transaction data that satisfies a specific condition to the electronic device 110 (eg, transaction data including fee information higher than that of the abnormal transaction). It can be requested to be transmitted to , or to be transmitted to the blockchain network 150 .
  • FIG. 3 is a flowchart illustrating an operation of an electronic device according to an exemplary embodiment.
  • contents corresponding to, identical to, or similar to those described above may be omitted.
  • operations 301 to 307 illustrated in FIG. 3 are performed by a processor (eg, the processor 116 of FIG. 1 ) of the electronic device 110 (eg, the electronic device 110 of FIG. 1 ).
  • a processor eg, the processor 116 of FIG. 1
  • the electronic device 110 eg, the electronic device 110 of FIG. 1 .
  • the electronic device 110 may generate a first key pair in operation 301 .
  • the electronic device 110 may generate the first key pair based on the root seed.
  • the first key pair may include a first private key and a first public key.
  • a hierarchical deterministic wallet (HD wallet) may be generated based on the root seed.
  • a hierarchical deterministic wallet can generate a master private key and master chaincode through the HMAC-SHA512 algorithm.
  • the hierarchical deterministic wallet can use the left 256 bits as the master private key in the 512-bit hashed value obtained through the HMAC-SHA512, and use the right 256 bits as the master chaincode.
  • the master public key may be obtained from the master private key using an elliptic curve function.
  • the hierarchical deterministic wallet may include a key generated in a tree structure, a plurality of child keys may be generated from a parent key (eg, a master key), and a plurality of grandchild keys may be generated from the plurality of child keys.
  • a private key, a public key, and a blockchain address may be derived based on the root seed.
  • the first private key may be stored in a secure area (eg, the secure memory 114 of FIG. 1 ) of the electronic device 110 that provides a secure environment.
  • a secure area eg, the secure memory 114 of FIG. 1
  • the electronic device 110 may generate a first address based on the first public key in operation 303 .
  • the electronic device 110 calculates a hash value (first public key hash) through a Secure Hash Algorithm (SHA) with respect to the first public key, and a specified encoding for the calculated hash value. Addresses can be generated via (eg Base58Check encoding). The generated address may mean the first address.
  • SHA Secure Hash Algorithm
  • the electronic device 110 may generate a second key pair in operation 305 . In an embodiment, the electronic device 110 may generate a second address based on the second public key in operation 307 . Descriptions of operations 305 and 307 may correspond to descriptions of operations 301 and 303 .
  • the electronic device 110 may generate transaction data for a plurality of transactions from the first address to the second address based on the digital signature through the first private key.
  • transaction data for a plurality of transactions may include different fee information.
  • fees for a plurality of transactions may be calculated based on transaction data.
  • the electronic device 110 may encrypt transaction data for a plurality of transactions from the first address to the second address through the first private key associated with the first address. For example, in order to verify the integrity of transaction data encrypted through the first private key, the blockchain node (eg, the blockchain node 152 in FIG. 1 ) establishes a first public key pair with the first private key. It can be decrypted using the key.
  • the electronic device 110 may set to include a classification flag in transaction data for a plurality of transactions.
  • the electronic device 110 includes a division flag having a specific division value (eg, a first division value “1” or a second division value “0”) with respect to transaction data for a plurality of transactions. You can also set a specific division value (eg, a first division value “1” or a second division value “0”) with respect to transaction data for a plurality of transactions. You can also set a specific division value (eg, a first division value “1” or a second division value “0”) with respect to transaction data for a plurality of transactions. You can also set
  • the electronic device 110 may transmit data for a plurality of transactions to the server 130 in operation 311 . In an embodiment, the electronic device 110 may transmit a plurality of transaction data encrypted through the first private key to the server 130 .
  • FIG. 4 is a flowchart illustrating an operation of a server that detects an abnormal transaction according to an embodiment.
  • the operations illustrated in FIG. 4 may be related to operation 209 of FIG. 2 .
  • contents corresponding to, identical to, or similar to those described above may be omitted.
  • operations 401 to 405 illustrated in FIG. 4 may be understood to be performed by a processor (eg, processor 136 of FIG. 1 ) of a server (eg, server 130 of FIG. 1 ).
  • the server 130 may check fee information of the abnormal transaction in operation 401 .
  • the transaction data includes at least one of transaction ID information, transaction input values (eg, previous transaction ID, sender's electronic signature), and transaction output values (eg, remittance amount, fee information, recipient's address).
  • transaction ID information e.g., previous transaction ID, sender's electronic signature
  • transaction output values e.g, remittance amount, fee information, recipient's address.
  • the server 130 may detect abnormal transaction data that transmits (Vout) an unused transaction output value (Vin) having 2.1 BTC from the first address in the monitoring state to 1.98 BTC to the second address.
  • Vout an unused transaction output value having 2.1 BTC from the first address in the monitoring state to 1.98 BTC to the second address.
  • the server 130 may confirm that the fee information of the abnormal transaction is 0.12 BTC.
  • the server 130 may identify a transaction including higher fee information than an abnormal transaction among a plurality of transactions.
  • the transaction fee information may correspond to a speed transmitted to a node of the blockchain network 150 (eg, the blockchain node 152 of FIG. 1 ).
  • the first transaction data in which the transaction fee information is 0.2 BTC may be transmitted to the blockchain node 152 before the second transaction data in which the transaction fee information is 0.05 BTC.
  • the server 130 may compare the fee information of the abnormal transaction with the fee information of a plurality of transactions from the first address to the second address stored in the memory 134 .
  • the server 130 determines that the first transaction includes fee information (0.2BTC) greater than the fee information (0.12BTC) of the abnormal transaction, and the second transaction includes fee information (0.05BTC) that is smaller than the fee information of the abnormal transaction ) can be seen including
  • the server 130 may transmit the transaction data confirmed in operation 405 to the blockchain network 150 .
  • the confirmed transaction may refer to a transaction including fee information higher than fee information of an abnormal transaction among a plurality of transactions.
  • the server 130 may transmit the first transaction data including 0.2BTC fee information among a plurality of transactions to the blockchain network.
  • the server 130 when it is confirmed that there is no transaction data including fee information higher than that of an abnormal transaction among a plurality of transactions, the server 130 notifies the electronic device (eg, the electronic device 110 of FIG. 1 ). can also be sent.
  • FIG. 5 is a block diagram of REEs and TEEs operated in an electronic device according to an embodiment.
  • an electronic device may operate an execution environment having a plurality of security levels.
  • an execution environment having a plurality of security levels may include a rich execution environment (REE) 510 and a trusted execution environment (TEE) 520 .
  • the REE 510 may be a first execution environment having a first security level
  • the TEE 520 may indicate a second execution environment having a second security level higher than the first security level.
  • the REE 510 may include a client application 512 , a TEE client API 514 , a Rich OS component 516 , and an REE communication agent 518 .
  • the client application 512 may include one or more applications that may perform functions such as a phone call, a message, a payment, an alarm, a browser, or a camera.
  • the TEE client API 514 is an API that allows access to the TEE 520 , and may refer to an interface designed to exchange data between the REE 510 and an application of the TEE 520 .
  • the Rich OS component 516 includes an REE communication agent 518 , and may process message communication through the REE communication agent 518 .
  • the TEE 520 may store and manage data requiring a high security level in a secure environment.
  • the memory when data requiring security is stored in the memory, the memory may include a setting area accessible only through the TEE.
  • the setting area may mean an area including a specific memory address with respect to a general memory.
  • the setting area may store a root seed and/or a private key generated based on the root seed.
  • the data when data requiring security is stored in the memory, the data may be encrypted and stored so that it can be decrypted only by the Trusted OS.
  • the root seed and/or the private key generated based on the root seed may be encrypted so that it can only be decrypted by the Trusted OS and stored in general memory.
  • the TEE 520 may be separated from the REE 510 in hardware.
  • the TEE 520 and the REE 510 may be implemented by the same hardware, but may be separated in software.
  • the TEE 520 may include a trusted application 522 , a TEE internal API 524 , a Trusted OS component 526 , and a monitor 528 .
  • the trusted application 522 may include one or more applications that may perform functions such as digital rights management (DRM), security, payment, or storage of biometric information.
  • the monitor 528 and the Trusted OS component 526 may forward a message (eg, a secure monitor call (SMC)) received from the REE communication agent 518 to the trusted application 522 .
  • SMC secure monitor call
  • monitor 528 and Trusted OS component 526 may call SMC processing functions and execute trusted application 522 .
  • the trusted application 522 may access the secure memory 532 in response to the SMC.
  • the TEE internal API 524 may refer to an interface provided so that basic software of the TEE 520 may operate.
  • the hardware platform 530 may include a secure memory 532 as at least some components.
  • the hardware platform 530 may communicate with the Rich OS component 516 , but the secure memory 532 may only communicate with the Trusted OS component 526 .
  • the secure memory 532 may store a root seed and/or a private key generated based on the root seed.
  • the secure memory 532 in which the private key is stored may limit system access rights. For example, the secure memory 532 may be set to allow access to data (eg, a private key) only when a user's biometric authentication or PIN number authentication is performed.
  • 6A illustrates a first UI state of an electronic device according to an exemplary embodiment.
  • 6B illustrates a second UI state of the electronic device according to an exemplary embodiment.
  • 6C illustrates a third UI state of the electronic device according to an exemplary embodiment.
  • 6D illustrates a fourth UI state of the electronic device according to an exemplary embodiment.
  • 6E illustrates a fifth UI state of an electronic device according to an exemplary embodiment.
  • 6F illustrates a sixth UI state of the electronic device according to an exemplary embodiment.
  • the contents corresponding to, the same or similar to those described above may be omitted.
  • the electronic device 110 displays a first UI including a blockchain wallet through the display 118 (eg, the display 118 of FIG. 1 ).
  • the first UI may display a blockchain wallet including blockchain balance information (eg, “expected total balance”) and first address information (eg, “BTC account 1”) 602 .
  • the block chain wallet may include at least one piece of address information, and the block chain balance information may mean amount information obtained by adding up the balance of the at least one piece of address information.
  • the electronic device 110 may receive a touch input 604 for a region displaying the first address information 602 .
  • the electronic device 110 may provide a second UI 610 including a control screen for a first address through the display 118 .
  • the second UI may include an object capable of changing the setting of the first address.
  • the electronic device 110 may receive a touch input 612 for an object area for changing the setting of the first address.
  • the electronic device 110 may provide a third UI 620 that displays a list of settings of the first address through the display 118 .
  • the list of settings for the first address may include at least one of “edit account name”, “set monitoring account”, and “delete account”.
  • the electronic device 110 may receive a touch input 622 for setting the first address as a monitoring account.
  • the electronic device 110 provides a fourth UI 630 displaying a restoration code (eg, a mnemonic code) for the root seed 634 for creating the second address through the display 118 .
  • a restoration code eg, a mnemonic code
  • the electronic device 110 may generate a mnemonic code 632 to generate a root seed 634 for generating the second address.
  • the electronic device 110 may randomly generate a sequence of 128 bits.
  • the electronic device 110 may add 4 bits of a hash value obtained by using the SHA 256 hash function with respect to the sequence as a checksum to the end of the sequence.
  • the electronic device 110 may generate the mnemonic code 632 by cutting the sequence to which the checksum is added in units of 11 bits and replacing it with a predefined word.
  • the electronic device 110 may generate a root seed based on the mnemonic code 632 , and may generate a private key and a public key based on the generated root seed.
  • the electronic device 110 may display a notification instructing to separately record the mnemonic code 632 externally (eg, a user).
  • the electronic device 110 may provide a fifth UI 640 in which the generation of the second address has been completed through the display 118 .
  • the second address may mean an address generated through a hash function with respect to the public key.
  • the electronic device 110 may receive a touch input 642 confirming that the second address generation process has been completed.
  • the electronic device 110 may provide a sixth UI 650 including a blockchain wallet through the display 118 .
  • the 6th UI includes blockchain balance information (eg “Estimated Total Balance”), first address information (eg “BTC Account 1”) and second address information (eg “BTC Account 2 (Anti-Hacking Account)”)
  • a blockchain wallet containing 652 may be displayed.
  • 6A to 6F illustrate only a UI for generating only an anti-hacking account in order to invalidate an abnormal transaction when an abnormal transaction is detected. You can also proceed with the process of creating
  • FIG. 7 illustrates a UI state of an electronic device that generates an anti-hacking transaction according to an embodiment.
  • the electronic device 110 may display a UI 700 that generates an anti-hacking transaction that transfers an unused transaction output value of the first address from the first address to the second address.
  • “Recipient Address” of the UI 700 may mean a second address.
  • the anti-hacking transaction may be generated through setting and/or changing of fee information. For example, unlike a general transaction that sets remittance amount and fee information, an anti-hacking transaction transfers the entire unused transaction output value of the first address to the second address, so the user only can be changed and set.
  • the remittance amount may be set to 0.300116 BTC from the total balance minus the fee.
  • the electronic device 110 may generate a plurality of hacking prevention transactions for the first address, and the plurality of transactions may include different fee information.
  • the fee information of the hacking prevention transaction may be automatically set in consideration of the fee information price of the transaction waiting in the memory pool of the block chain network (eg, the block chain network 150 of FIG. 1 ).
  • the electronic device 110 may display a UI 710 for performing user authentication 712 upon receiving the touch input 702 for confirming the hacking prevention transaction.
  • the creation of an anti-hacking transaction may be completed through encryption based on a private key and user authentication including biometric authentication and/or PIN number authentication. By performing biometric authentication and/or PIN number authentication, the validity and authenticity of a transaction may increase.
  • the electronic device 110 may access data (eg, a private key) stored in a secure memory (eg, the secure memory 114 of FIG. 1 ) only when biometric authentication and/or PIN number authentication are performed. can
  • FIG. 8 illustrates a UI state of an electronic device that generates a plurality of transactions according to an embodiment.
  • the electronic device 110 may display a hacking prevention transaction generation UI including different fee information.
  • Situation (a) of FIG. 8 shows the UI 800 in which the fee information of the hacking prevention transaction is set to 0.001084 BTC.
  • Situation (b) of FIG. 8 shows the UI 810 in which the fee information of the hacking prevention transaction is set to 0.000735 BTC.
  • Situation (c) of FIG. 8 shows the UI 820 in which the fee information of the hacking prevention transaction is set to 0.002397 BTC.
  • a plurality of hacking prevention transaction creation UIs including different fee information are displayed through each UI as in situations (a) to (c) of FIG.
  • user authentication is performed at least twice or more. Generation of the anti-hacking transaction may be completed. In another embodiment, when a plurality of hacking prevention transaction generation UIs including different fee information are displayed through one UI, generation of the hacking prevention transaction may be completed by one user authentication.
  • the electronic device 110 may transmit three anti-hacking transactions generated through situations (a) to (c) to the server 130 as in operation 205 of FIG. 2 .
  • the server 130 may check fee information of the abnormal transaction.
  • the server 130 may transmit the transaction data of the hacking prevention transaction including the fee information higher than the fee information of the abnormal transaction to the block chain network 150 .
  • the server 130 may confirm that the fee information of the abnormal transaction for the first address is set to 0.0014 BTC.
  • the server 130 may check the hacking prevention transaction including the fee information higher than the fee information of the abnormal transaction.
  • the server 130 can confirm that the anti-hacking transaction generated through the situation (c) among the three anti-hacking transactions generated through the situations (a) to (c) includes higher fee information than the fee information of the abnormal transaction. have.
  • the server 130 may transmit the transaction data of the anti-hacking transaction generated through the situation (c) to the blockchain network 150 .
  • the server 130 transmits the transaction data of the hacking prevention transaction including the lower fee information to the block chain network 150 when there are a plurality of hacking prevention transactions including fee information higher than the fee information of the abnormal transaction. ) can be sent to For example, the server 130 may confirm that the fee information of the abnormal transaction for the first address is set to 0.0009BTC.
  • the server 130 includes fee information in which the hacking prevention transaction generated through the situations (a) and (c) is higher than the fee information of the abnormal transaction among the three anti-hacking transactions generated through the situations (a) to (c) can be checked.
  • the server 130 transmits the transaction data of the hacking prevention transaction generated through the situation (a) including the low fee information among the hacking prevention transactions generated through the situations (a) and (c) to the blockchain network 150 can In one embodiment, as the transaction data of the anti-hacking transaction is transmitted to the blockchain network 150, the entire amount of the first address is transferred to the second address, and thus the transaction may be completed.
  • Operation 901 of FIG. 9 may correspond to operation 211 of FIG. 2 . Accordingly, contents corresponding to, identical to, or similar to those described above in relation to the description of FIG. 9 may be omitted.
  • the server 130 may transmit at least one transaction data among a plurality of transactions to the block chain network 150 in operation 901 .
  • an unused transaction output value for the first address may be destroyed.
  • transaction data of an anti-hacking transaction generated through situation (c) among three anti-hacking transactions generated through situations (a) to (c) of FIG. 8 is transmitted to the blockchain network 150 , since the unused transaction output value for the first address is destroyed, the remaining two anti-hacking transactions generated through situations (a) and (b) may correspond to invalid transactions.
  • the server 130 may transmit a transaction completion notification for the second address to the electronic device 110 in operation 903 .
  • the transaction completion notification for the second address may include information about the destruction of an unused transaction output value for the first address.
  • the electronic device 110 in response to a transaction completion notification for the second address, may receive a monitoring request for the second address.
  • the electronic device 110 may generate a third key pair in operation 905 .
  • the electronic device 110 may generate a third key pair based on the new root seed.
  • the third key pair may include a third private key and a third public key.
  • the third private key may be stored in a secure area (eg, the secure memory 114 of FIG. 1 ) of the electronic device 110 that provides a secure environment.
  • the electronic device 110 may generate a third address based on the third public key in operation 907 . In an embodiment, the electronic device 110 may generate a plurality of transaction data from the second address to the third address based on the digital signature through the second private key in operation 909 . In an embodiment, the electronic device 110 may transmit a plurality of transaction data to the server 130 in operation 911 .
  • FIG. 10 is a block diagram of an electronic device in a network environment according to various embodiments of the present disclosure.
  • the electronic device 1001 communicates with the electronic device 1002 through a first network 1098 (eg, a short-range wireless communication network) or a second network 1099 . It may communicate with the electronic device 1004 or the server 1008 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 1001 may communicate with the electronic device 1004 through the server 1008 .
  • the electronic device 1001 includes a processor 1020 , a memory 1030 , an input device 1050 , a sound output device 1055 , a display device 1060 , an audio module 1070 , and a sensor module ( 1076 , interface 1077 , haptic module 1079 , camera module 1080 , power management module 1088 , battery 1089 , communication module 1090 , subscriber identification module 1096 , or antenna module 1097 ) ) may be included.
  • at least one of these components eg, the display device 1060 or the camera module 1080
  • the sensor module 1076 may be implemented while being embedded in the display device 1060 (eg, a display).
  • the processor 1020 executes software (eg, a program 1040) to execute at least one other component (eg, a hardware or software component) of the electronic device 1001 connected to the processor 1020. It can control and perform various data processing or operations. According to an embodiment, as at least part of data processing or operation, the processor 1020 may store a command or data received from another component (eg, the sensor module 1076 or the communication module 1090) into the volatile memory 1032 . may be loaded into the volatile memory 1032 , may process commands or data stored in the volatile memory 1032 , and may store the resulting data in the non-volatile memory 1034 .
  • software eg, a program 1040
  • the processor 1020 may store a command or data received from another component (eg, the sensor module 1076 or the communication module 1090) into the volatile memory 1032 .
  • the volatile memory 1032 may be loaded into the volatile memory 1032 , may process commands or data stored in the volatile memory 1032 , and may store the resulting data in the non-vol
  • the processor 1020 includes a main processor 1021 (eg, a central processing unit or an application processor), and a secondary processor 1023 (eg, a graphic processing unit, an image signal processor) that can be operated independently or together with the main processor 1021 . , a sensor hub processor, or a communication processor). Additionally or alternatively, the auxiliary processor 1023 may be configured to use less power than the main processor 1021 or to specialize in a designated function. The auxiliary processor 1023 may be implemented separately from or as part of the main processor 1021 .
  • a main processor 1021 eg, a central processing unit or an application processor
  • a secondary processor 1023 eg, a graphic processing unit, an image signal processor
  • the auxiliary processor 1023 may be configured to use less power than the main processor 1021 or to specialize in a designated function.
  • the auxiliary processor 1023 may be implemented separately from or as part of the main processor 1021 .
  • the coprocessor 1023 may, for example, act on behalf of the main processor 1021 while the main processor 1021 is in an inactive (eg, sleep) state, or when the main processor 1021 is active (eg, executing an application). ), together with the main processor 1021, at least one of the components of the electronic device 1001 (eg, the display device 1060, the sensor module 1076, or the communication module 1090) It is possible to control at least some of the related functions or states.
  • the coprocessor 1023 eg, image signal processor or communication processor
  • may be implemented as part of another functionally related component eg, camera module 1080 or communication module 1090. have.
  • the memory 1030 may store various data used by at least one component (eg, the processor 1020 or the sensor module 1076 ) of the electronic device 1001 .
  • the data may include, for example, input data or output data for software (eg, the program 1040 ) and instructions related thereto.
  • the memory 1030 may include a volatile memory 1032 or a non-volatile memory 1034 .
  • the program 1040 may be stored as software in the memory 1030 , and may include, for example, an operating system 1042 , middleware 1044 , or an application 1046 .
  • the input device 1050 may receive a command or data to be used in a component (eg, the processor 1020 ) of the electronic device 1001 from the outside (eg, a user) of the electronic device 1001 .
  • the input device 1050 may include, for example, a microphone, a mouse, a keyboard, or a digital pen (eg, a stylus pen).
  • the sound output device 1055 may output a sound signal to the outside of the electronic device 1001 .
  • the sound output device 1055 may include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback, and the receiver can be used to receive incoming calls. According to an embodiment, the receiver may be implemented separately from or as a part of the speaker.
  • the display device 1060 may visually provide information to the outside (eg, a user) of the electronic device 1001 .
  • the display device 1060 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the corresponding device.
  • the display device 1060 may include a touch circuitry configured to sense a touch or a sensor circuit (eg, a pressure sensor) configured to measure the intensity of a force generated by the touch. have.
  • the audio module 1070 may convert a sound into an electric signal or, conversely, convert an electric signal into a sound. According to an embodiment, the audio module 1070 acquires a sound through the input device 1050 or an external electronic device (eg, a sound output device 1055 ) directly or wirelessly connected to the electronic device 1001 . The sound may be output through the electronic device 1002) (eg, a speaker or a headphone).
  • an external electronic device eg, a sound output device 1055
  • the sound may be output through the electronic device 1002) (eg, a speaker or a headphone).
  • the sensor module 1076 detects an operating state (eg, power or temperature) of the electronic device 1001 or an external environmental state (eg, user state), and generates an electrical signal or data value corresponding to the sensed state. can do.
  • the sensor module 1076 may include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface 1077 may support one or more specified protocols that may be used for the electronic device 1001 to directly or wirelessly connect with an external electronic device (eg, the electronic device 1002 ).
  • the interface 1077 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card
  • connection terminal 1078 may include a connector through which the electronic device 1001 can be physically connected to an external electronic device (eg, the electronic device 1002 ).
  • the connection terminal 1078 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 1079 may convert an electrical signal into a mechanical stimulus (eg, vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic sense.
  • the haptic module 1079 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 1080 may capture still images and moving images. According to an embodiment, the camera module 1080 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 1088 may manage power supplied to the electronic device 1001 .
  • the power management module 388 may be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery 1089 may supply power to at least one component of the electronic device 1001 .
  • the battery 1089 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • the communication module 1090 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 1001 and an external electronic device (eg, the electronic device 1002, the electronic device 1004, or the server 1008). It can support establishment and communication through the established communication channel.
  • the communication module 1090 may include one or more communication processors that operate independently of the processor 1020 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
  • the communication module 1090 is a wireless communication module 1092 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 1094 (eg, : It may include a local area network (LAN) communication module, or a power line communication module).
  • a wireless communication module 1092 eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • wired communication module 1094 eg, : It may include a local area network (LAN) communication module, or a power line communication module.
  • a corresponding communication module is a first network 1098 (eg, a short-range communication network such as Bluetooth, WiFi direct, or IrDA (infrared data association)) or a second network 1099 (eg, a cellular network, the Internet, or It may communicate with an external electronic device via a computer network (eg, a telecommunication network such as a LAN or WAN).
  • a computer network eg, a telecommunication network such as a LAN or WAN.
  • These various types of communication modules may be integrated into one component (eg, a single chip) or may be implemented as a plurality of components (eg, multiple chips) separate from each other.
  • the wireless communication module 1092 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 1096 within a communication network, such as the first network 1098 or the second network 1099 .
  • subscriber information eg, International Mobile Subscriber Identifier (IMSI)
  • IMSI International Mobile Subscriber Identifier
  • the electronic device 1001 may be identified and authenticated.
  • the antenna module 1097 may transmit or receive a signal or power to the outside (eg, an external electronic device).
  • the antenna module may include one antenna including a conductor formed on a substrate (eg, a PCB) or a radiator formed of a conductive pattern.
  • the antenna module 1097 may include a plurality of antennas. In this case, at least one antenna suitable for a communication scheme used in a communication network such as the first network 1098 or the second network 1099 is connected from the plurality of antennas by, for example, the communication module 1090 . can be chosen.
  • a signal or power may be transmitted or received between the communication module 1090 and an external electronic device through the selected at least one antenna.
  • other components eg, RFIC
  • other than the radiator may be additionally formed as a part of the antenna module 1097 .
  • peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • GPIO general purpose input and output
  • SPI serial peripheral interface
  • MIPI mobile industry processor interface
  • the command or data may be transmitted or received between the electronic device 1001 and the external electronic device 1004 through the server 1008 connected to the second network 1099 .
  • Each of the electronic devices 1002 and 1004 may be the same as or different from the electronic device 1001 .
  • all or a part of operations performed by the electronic device 1001 may be performed by one or more of the external electronic devices 1002 , 1004 , or 1008 .
  • the electronic device 1001 when the electronic device 1001 needs to perform a function or service automatically or in response to a request from a user or other device, the electronic device 1001 performs the function or service itself instead of executing the function or service itself.
  • one or more external electronic devices may be requested to perform at least a part of the function or the service.
  • the one or more external electronic devices that have received the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit a result of the execution to the electronic device 1001 .
  • the electronic device 1001 may process the result as it is or additionally and provide it as at least a part of a response to the request.
  • cloud computing, distributed computing, or client-server computing technology may be used.
  • FIG. 11 shows a block diagram illustrating a program according to various embodiments.
  • FIG. 11 is a block diagram 1100 illustrating a program 1040 according to various embodiments.
  • the program 1040 executes an operating system 1042 for controlling one or more resources of the electronic device 1001 , middleware 1044 , or an application 1046 executable in the operating system 1042 .
  • Operating system 1042 may include, for example, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, or BadaTM.
  • At least some of the programs 1040 are, for example, preloaded into the electronic device 1001 at the time of manufacture, or an external electronic device (eg, the electronic device 1002 or 1004), or a server (eg, the electronic device 1002 or 1004) when used by a user. 1008)) or may be updated.
  • the operating system 1042 may control management (eg, allocation or retrieval) of one or more system resources (eg, process, memory, or power) of the electronic device 1001 .
  • the operating system 1042 may additionally or alternatively include other hardware devices of the electronic device 1001 , for example, an input device 1050 , a sound output device 1055 , a display device 1060 , an audio module 1070 . , sensor module 1076 , interface 1077 , haptic module 1079 , camera module 1080 , power management module 1088 , battery 1089 , communication module 1090 , subscriber identification module 1096 , or It may include one or more driver programs for driving the antenna module 1097 .
  • the middleware 1044 may provide various functions to the application 1046 so that functions or information provided from one or more resources of the electronic device 1001 may be used by the application 1046 .
  • the middleware 1044 includes, for example, an application manager 1101 , a window manager 1103 , a multimedia manager 1105 , a resource manager 1107 , a power manager 1109 , a database manager 1111 , and a package manager 1113 . ), a connectivity manager 1115 , a notification manager 1117 , a location manager 1119 , a graphics manager 1121 , a security manager 1123 , a call manager 1125 , or a voice recognition manager 1127 .
  • an application manager 1101 includes, for example, an application manager 1101 , a window manager 1103 , a multimedia manager 1105 , a resource manager 1107 , a power manager 1109 , a database manager 1111 , and a package manager 1113 .
  • a connectivity manager 1115 a notification manager 1117 ,
  • the application manager 1101 may manage the life cycle of the application 1046 , for example.
  • the window manager 1103 may manage one or more GUI resources used in a screen, for example.
  • the multimedia manager 1105 for example, identifies one or more formats required for playback of media files, and encodes or decodes a corresponding media file among the media files using a codec suitable for the selected format. can be done
  • the resource manager 1107 may, for example, manage the space of the source code of the application 1046 or the memory of the memory 1030 .
  • the power manager 1109 may, for example, manage the capacity, temperature, or power of the battery 1089 , and use the corresponding information to determine or provide related information required for the operation of the electronic device 1001 . . According to an embodiment, the power manager 1109 may interwork with a basic input/output system (BIOS) (not shown) of the electronic device 1001 .
  • BIOS basic input/output system
  • the database manager 1111 may create, retrieve, or change a database to be used by the application 1046 , for example.
  • the package manager 1113 may manage installation or update of an application distributed in the form of a package file, for example.
  • the connectivity manager 1115 may manage, for example, a wireless connection or a direct connection between the electronic device 1001 and an external electronic device.
  • the notification manager 1117 may provide, for example, a function for notifying the user of the occurrence of a specified event (eg, an incoming call, a message, or an alarm).
  • the location manager 1119 may manage location information of the electronic device 1001 , for example.
  • the graphic manager 1121 may manage, for example, one or more graphic effects to be provided to a user or a user interface related thereto.
  • the security manager 1123 may provide, for example, system security or user authentication.
  • the telephony manager 1125 may manage, for example, a voice call function or a video call function provided by the electronic device 1001 .
  • the voice recognition manager 1127 transmits, for example, the user's voice data to the server 1008, and based at least in part on the voice data, a command corresponding to a function to be performed in the electronic device 1001; Alternatively, the converted text data may be received from the server 1008 based at least in part on the voice data.
  • the middleware 1144 may dynamically delete some existing components or add new components.
  • at least a portion of the middleware 1044 may be included as a part of the operating system 1042 or implemented as software separate from the operating system 1042 .
  • the application 1046 includes, for example, home 1151 , dialer 1153 , SMS/MMS 1155 , instant message (IM) 1157 , browser 1159 , camera 1161 , alarm 1163 . , Contact (1165), Voice Recognition (1167), Email (1169), Calendar (1171), Media Player (1173), Album (1175), Watch (1177), Health (1179) (such as exercise or blood sugar) measuring biometric information), or environmental information 1181 (eg, measuring atmospheric pressure, humidity, or temperature information).
  • the application 1046 may further include an information exchange application (not shown) capable of supporting information exchange between the electronic device 1001 and an external electronic device.
  • the information exchange application may include, for example, a notification relay application configured to transmit specified information (eg, call, message, or alarm) to an external electronic device, or a device management application configured to manage the external electronic device. have.
  • the notification relay application for example, transmits notification information corresponding to a specified event (eg, mail reception) generated in another application (eg, the email application 1169) of the electronic device 1001 to the external electronic device.
  • the notification relay application may receive notification information from the external electronic device and provide it to the user of the electronic device 1001 .
  • the device management application is, for example, a power source (eg, turn-on or turn on) of an external electronic device communicating with the electronic device 1001 or some components thereof (eg, the display device 1060 or the camera module 1080). -off) or a function (eg, brightness, resolution, or focus of the display device 1060 or the camera module 1080).
  • the device management application may additionally or alternatively support installation, deletion, or update of an application operating in an external electronic device.
  • Electronic devices may be devices of various types.
  • the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance device.
  • a portable communication device eg, a smart phone
  • a computer device e.g., a smart phone
  • a portable multimedia device e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a camera
  • a wearable device e.g., a smart bracelet
  • first”, “second”, or “first” or “second” may simply be used to distinguish the component from other such components, and refer to those components in other aspects (e.g., importance or order) is not limited. that one (e.g. first) component is “coupled” or “connected” to another (e.g. second) component with or without the terms “functionally” or “communicatively” When referenced, it means that one component can be connected to the other component directly (eg by wire), wirelessly, or through a third component.
  • module may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic block, component, or circuit.
  • a module may be an integrally formed part or a minimum unit or a part of the part that performs one or more functions.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • one or more instructions stored in a storage medium may be implemented as software (eg, the program 1040) including
  • a processor eg, processor 1020
  • a device eg, electronic device 1001
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-transitory' only means that the storage medium is a tangible device and does not include a signal (eg, electromagnetic wave), and this term is used in cases where data is semi-permanently stored in the storage medium and It does not distinguish between temporary storage cases.
  • a signal eg, electromagnetic wave
  • the method according to various embodiments disclosed in this document may be provided by being included in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • the computer program product is distributed in the form of a machine-readable storage medium (eg compact disc read only memory (CD-ROM)), or via an application store (eg Play StoreTM) or on two user devices ( It can be distributed (eg downloaded or uploaded) directly, online between smartphones (eg: smartphones).
  • a part of the computer program product may be temporarily stored or temporarily created in a machine-readable storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server.
  • each component eg, a module or a program of the above-described components may include a singular or a plurality of entities.
  • one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added.
  • a plurality of components eg, a module or a program
  • the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. .
  • operations performed by a module, program, or other component are executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations are executed in a different order, omitted, or , or one or more other operations may be added.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 개시에 따른 일 실시 예는 통신회로, 보안 메모리 및 상기 통신회로 및 상기 보안 메모리와 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 제1 공개 키(public key) 및 제1 개인 키(private key)를 포함하는 제1 키 쌍을 생성하고, 상기 제1 개인 키는 상기 보안 메모리에 저장되며, 상기 제1 공개 키에 기반하여 제1 주소를 생성하고, 상기 제1 공개 키와 구별되는 제2 공개 키 및 상기 제1 개인 키와 구별되는 제2 개인 키를 포함하는 제2 키 쌍을 생성하고, 상기 제2 공개 키에 기반하여 제2 주소를 생성하고, 상기 제1 개인 키를 통한 디지털 서명에 기반하여 상기 제1 주소의 미사용 트랜잭션 출력 값을 상기 제1 주소로부터 상기 제2 주소로 이전시키는 복수 개의 트랜잭션들에 대한 트랜잭션 데이터를 생성하도록 설정되는 전자 장치가 개시된다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.

Description

블록체인을 이용하는 전자 장치 및 동작 방법
본 개시에 따른 다양한 실시 예들은, 블록체인을 이용하여 거래를 수행하는 전자 장치에 관한 것이다.
블록체인(blockchain)은 데이터를 특정 단위의 블록으로 만들어 유효한 네트워크 상에서 체인 형태로 연결하는 데이터 저장 기술이다. 블록체인 노드(node)는 중앙 서버에 의해 관리되지 않으며, 개별적인 분산 공공 장부를 갖는다. 암호화폐의 거래 내역은 분산 공공 장부에 기재되고, 모든 블록체인 네트워크 상의 노드는 동일한 거래 내역 데이터를 보유할 수 있다. 이에 따라 블록체인 노드에 저장된 데이터에 대한 개별적인 위조 및 변조는 어렵다.
최근에는 블록체인 기술에 기반하여 다양한 암호화폐(예: 비트코인(bitcoin), 이더리움(ethereum))가 등장하고 있다. 암호화폐를 통해 가상 거래를 수행하는 경우에, 거래 내용이 담긴 신규 블록이 생성될 수 있다. 생성된 블록은 블록체인 네트워크 상에 있는 모든 참여자에게 전송되고, 특정 알고리즘에 기반하여 승인된 블록만이 블록체인 노드에 저장되어 거래가 완료될 수 있다.
사용자는 가상 거래에서의 자산인 암호화폐를 보호하기 위하여 지갑(wallet)을 보유할 수 있다. 암호화폐 지갑은 사용자의 키를 저장하고 관리할 수 있다. 가상 거래의 거래 내용에 대한 데이터는 사용자의 키를 이용해 전자 서명되어 블록체인 노드에 저장될 수 있다.
사용자의 키는 개인 키(private key) 및 공개 키(public key)를 포함하는 키 쌍(key pair)으로 구성될 수 있다. 사용자에게 고유하게 부여된 개인 키로부터 공개 키가 생성되고, 공개 키로부터 해시함수를 이용하여 어드레스(address)가 생성될 수 있다.
암호화폐 지갑은 오프라인에서 작동하는 콜드월렛(cold wallet) 및 온라인에서 작동하는 핫월렛(hot wallet)으로 구분될 수 있다. 콜드월렛은 오프라인 환경인 하드웨어 장치 내부에서 트랜잭션 내역을 생성하고, 전자 서명 과정이 수행되도록 구성될 수 있다. 콜드월렛은 하드월렛(hard wallet)이라고도 언급될 수 있으며, 암호화(예: 개인 식별 번호, Personal Identification Number)되어 있으며 바이러스나 백도어 프로그램에 영향을 받지 않도록 설계되어 보안성이 높은 것으로 평가된다. 높은 보안성을 갖는 콜드월렛은 가격이 비싸고 사용 절차가 복잡하다는 단점이 있다.
핫월렛은 온라인 상에서의 실시간 거래가 가능하다는 점에서 높은 편의성을 가지고 있으나, 온라인 환경에서 거래가 수행되므로 외부로부터 개인 키가 해킹될 위험이 있다. 외부로부터 개인 키가 해킹되는 경우, 사용자의 암호화폐에 대하여 임의의 거래가 발생할 수 있다. 예를 들어, 공격자가 온라인 서버에 저장된 개인 키를 탈취하여 암호화폐에 대한 전송 권한을 획득할 수 있다. 다만, 사용자는 외부에 의한 거래 발생을 실시간으로 확인하기 어렵고, 거래 내용이 블록체인 네트워크에 전송된 이후에는 암호화폐에 대한 소유권이 완전히 이전되므로 탈취된 암호화폐를 되찾을 수 없다.
따라서, 본 개시에 따른 다양한 실시 예들은 온라인 상에서의 거래를 모니터링하여 해킹을 방지하는 전자 장치를 제공하고자 한다.
일 실시 예에서의 전자 장치는 통신회로, 보안 메모리 및 상기 통신회로 및 상기 보안 메모리와 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 제1 공개 키(public key) 및 제1 개인 키(private key)를 포함하는 제1 키 쌍을 생성하고, 상기 제1 개인 키는 상기 보안 메모리에 저장되며, 상기 제1 공개 키에 기반하여 제1 주소를 생성하고, 상기 제1 공개 키와 구별되는 제2 공개 키 및 상기 제1 개인 키와 구별되는 제2 개인 키를 포함하는 제2 키 쌍을 생성하고, 상기 제2 공개 키에 기반하여 제2 주소를 생성하고, 상기 제1 개인 키를 통한 디지털 서명에 기반하여 상기 제1 주소의 미사용 트랜잭션 출력 값을 상기 제1 주소로부터 상기 제2 주소로 이전시키는 복수 개의 트랜잭션들에 대한 트랜잭션 데이터를 생성하도록 설정될 수 있다.
일 실시 예에서의 전자 장치의 동작 방법은 제1 공개 키 및 제1 개인 키를 포함하는 제1 키 쌍을 생성하는 동작, 상기 제1 개인 키는 보안 메모리에 저장됨, 상기 제1 공개 키에 기반하여 제1 주소를 생성하는 동작, 상기 제1 공개 키와 구별되는 제2 공개 키 및 상기 제1 개인 키와 구별되는 제2 개인 키를 포함하는 제2 키 쌍을 생성하는 동작, 상기 제2 공개 키에 기반하여 제2 주소를 생성하는 동작, 및 상기 제1 개인 키를 통한 디지털 서명에 기반하여 상기 제1 주소의 미사용 트랜잭션 출력 값을 상기 제1 주소로부터 상기 제2 주소로 이전시키는 복수 개의 트랜잭션들에 대한 트랜잭션 데이터를 생성하는 동작을 포함할 수 있다.
일 실시 예에서의 서버는 통신회로 및 상기 통신회로와 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 전자 장치로부터 상기 통신회로를 통해서 수신된 제1 주소의 미사용 트랜잭션 출력 값을 상기 제1 주소로부터 제2 주소로 이전시키는 복수 개의 트랜잭션에 대한 트랜잭션 데이터를 저장하고, 상기 제1 주소에 대한 트랜잭션을 모니터링하고, 상기 제1 주소에 대한 이상 트랜잭션이 검출되면 상기 복수 개의 트랜잭션 중 적어도 하나의 트랜잭션에 대한 트랜잭션 데이터를 블록체인 네트워크로 전송하도록 설정될 수 있다.
본 개시의 다양한 실시 예에 따르면 복수 개의 트랜잭션을 생성하는 전자 장치를 통해, 외부로부터 생성된 트랜잭션을 무효화하여 해킹을 방지할 수 있다.
도 1은 일 실시 예에 따른 전자 장치, 서버 및 블록체인 네트워크를 포함하는 트랜잭션 시스템의 구성을 나타낸다.
도 2는 일 실시 예에 따른 트랜잭션 시스템의 동작 흐름도를 도시한다.
도 3은 일 실시 예에 따른 전자 장치의 동작 흐름도를 도시한다.
도 4는 일 실시 예에 따른 이상 트랜잭션을 검출한 서버의 동작 흐름도를 도시한다.
도 5는 일 실시 예에 따른 전자 장치에서 운용되는 REE 및 TEE의 블록도를 도시한다.
도 6a는 일 실시 예에 따른 전자 장치의 제1 UI 상태를 도시한다.
도 6b는 일 실시 예에 따른 전자 장치의 제2 UI 상태를 도시한다.
도 6c는 일 실시 예에 따른 전자 장치의 제3 UI 상태를 도시한다.
도 6d는 일 실시 예에 따른 전자 장치의 제4 UI 상태를 도시한다.
도 6e는 일 실시 예에 따른 전자 장치의 제5 UI 상태를 도시한다.
도 6f는 일 실시 예에 따른 전자 장치의 제6 UI 상태를 도시한다.
도 7은 일 실시 예에 따른 해킹 방지 트랜잭션을 생성하는 전자 장치의 UI 상태를 도시한다.
도 8은 일 실시 예에 따른 복수 개의 트랜잭션을 생성하는 전자 장치의 UI 상태를 도시한다.
도 9는 일 실시 예에 따른 트랜잭션 전송이 완료된 후 트랜잭션 시스템의 동작 흐름도를 도시한다.
도 10은 다양한 실시 예들에 따른 네트워크 환경 내의 전자 장치의 블록도를 도시한다.
도 11은 다양한 실시 예들에 따른 프로그램을 예시하는 블록도를 도시한다.
도 1은 일 실시 예에 따른 전자 장치, 서버 및 블록체인 네트워크를 포함하는 트랜잭션 시스템의 구성을 나타낸다.
도 1을 참조하면, 트랜잭션 시스템(100)은 전자 장치(110), 서버(130) 및 블록체인 네트워크(150)를 포함할 수 있다.
일 실시 예에서, 전자 장치(110)(예: 도 10의 전자 장치(1001))는 통신회로(112)(예: 도 10의 통신 모듈(1090)), 보안 메모리(114)(예: 도 10의 메모리(1030)), 프로세서(116)(예: 도 10의 프로세서(1020)) 및 디스플레이(118)(예: 도 10의 표시 장치(1060))를 포함할 수 있다. 일 실시 예에서, 통신회로(112)는 전자 장치(110)와 외부 전자 장치(예: 서버(130))간의 통신 채널을 수립하고 데이터를 전송 및 수신할 수 있다. 예를 들어, 통신회로(112)는 트랜잭션을 수행하는 전자 장치(110)의 트랜잭션 데이터를 서버(130)에 전송할 수 있다.
일 실시 예에서, 전자 장치(110)는 비대칭키 암호 방식(예: 공개키 암호 방식 public-key cryptography)으로 키 쌍(key pair)을 생성할 수 있다. 키 쌍은 개인 키(private key) 및 공개 키(public key)를 포함할 수 있다. 일 실시 예에서, 보안 메모리(114)는 생성된 개인 키를 저장할 수 있다. 일 실시 예에서, 보안 메모리(114)는 보안 환경(security environment)을 제공하는 하드웨어 형태의 메모리를 의미할 수 있다. 예를 들어, 보안 메모리(114)는 전자 장치(110) 에 내장된 형태이거나, 전자 장치(110)에 별도로 삽입 가능한 장치(예: 마이크로 SD 카드)의 형태일 수 있다. 예를 들어, 보안 메모리(114)는 일반 메모리와 하드웨어적으로 분리되는 메모리를 의미할 수 있다. 또 다른 실시 예에서, 보안 메모리(114)는 보안 환경을 제공하도록 암호화된 소프트웨어 형태의 메모리를 의미할 수도 있다. 예를 들어, 보안 메모리(114)는 일부 구성(예: TEE)을 통해서만 데이터에 접근할 수 있도록, 데이터를 암호화하여 저장하는 소프트웨어의 형태일 수도 있다. 예를 들어, 보안 메모리(114)는 일반 메모리와 동일한 메모리(예: 도 10의 메모리(1030)) 상에서 구현되지만 소프트웨어적(예: 메모리 주소)으로 분리되는 보안 메모리 영역에 저장되는 소프트웨어 형태일 수 있다.
일 실시 예에서, 디스플레이(118)는 전자 장치(110)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 예를 들어, 디스플레이(118)는 전자 장치(110)의 트랜잭션 생성 정보, 잔액 정보, 트랜잭션 전송 지연 정보 및 트랜잭션 전송 완료 정보 중 적어도 하나의 정보를 외부로 제공할 수 있다.
일 실시 예에서, 프로세서(116)는 루트 시드(root seed)에 기반하여 키 쌍을 생성할 수 있다. 예를 들어, 프로세서(116)는 해킹 방지 트랜잭션을 수행하는 경우에, 프로세서(116)는 새로운 루트 시드에 기반하여 개인 키를 생성하고, 개인 키에 기반하여 공개 키를 생성할 수 있다. 프로세서(116)는 공개 키에 대하여 해시 함수를 통해 어드레스를 생성할 수 있다.
일 실시 예에서, 서버(130)는 통신회로(132), 메모리(134) 및 프로세서(136)를 포함할 수 있다. 일 실시 예에서, 통신회로(132)는 서버(130)와 외부 장치(예: 전자 장치(110), 블록체인 네트워크(150))간의 통신 채널을 수립하여 데이터를 전송 및 수신할 수 있다. 예를 들어, 통신회로(132)는 전자 장치(110)로부터 수신한 트랜잭션 데이터를 블록체인 네트워크(150)에 전송할 수 있다. 전송된 트랜잭션 데이터는 블록체인 노드(152)에 저장될 수 있다.
일 실시 예에서, 프로세서(136)는 통신회로(132)를 통해 전자 장치(110)로부터 데이터를 수신할 수 있다. 일 실시 예에서, 프로세서(136)는 전자 장치(110)로부터 수신된 데이터에 포함된 구분 플래그를 식별할 수 있다. 일 실시 예에서, 프로세서(136)는 데이터에 포함된 구분 플래그에 기반하여 수신된 데이터를 블록체인 네트워크(150)에 전송할지 여부를 결정할 수 있다. 예를 들어, 수신된 데이터에 특정 구분 플래그가 포함된 경우(또는, 포함된 구분 플래그의 값이 제1 구분 값인 경우)에, 프로세서(136)는 수신된 데이터를 메모리(134)에 저장할 수 있다. 다른 예를 들어, 수신된 데이터에 특정 구분 플래그가 포함되지 않은 경우 (또는, 포함된 구분 플래그의 값이 상기 제1 구분 값과 구별되는 제2 구분 값인 경우)에, 프로세서(136)는 수신된 데이터를 블록체인 네트워크(150)에 전송할 수 있다. 일 실시 예에서, 구분 플래그는 데이터 패킷에 포함되는 구분 값을 의미할 수 있다. 예를 들어, 전자 장치(110)로부터 수신된 데이터 패킷의 일부 비트에 대하여 제1 구분 값 “1”을 포함하는 경우에는, 프로세서(136)는 수신된 데이터를 메모리(134)에 저장할 수 있다. 다른 예를 들어, 수신된 데이터 패킷의 일부 비트에 대하여 제2 구분 값 “0”을 포함하는 경우에는, 프로세서(136)는 수신된 데이터를 블록체인 네트워크(150)에 전송할 수 있다.
도 1은 전자 장치(110)에서 생성한 데이터가 서버(130)를 통해 블록체인 네트워크(150)로 전송되는 트랜잭션 시스템만을 도시하고 있으나, 또 다른 실시 예에서, 전자 장치(110)에서 생성된 데이터의 일부는 블록체인 네트워크(150)로 직접 전송될 수도 있다. 예를 들어, 전자 장치(110)는 특정 구분 플래그를 포함하지 않는 트랜잭션 데이터를 블록체인 네트워크(150)에 직접 전송할 수 있다. 다른 예를 들어, 전자 장치(110)는 특정 구분 플래그를 포함하는 트랜잭션 데이터를 서버(130)에 전송할 수 있다. 특정 구분 플래그를 포함하는 트랜잭션 데이터를 수신한 서버(130)는 블록체인 네트워크(150)를 모니터링할 수 있다. 서버(130)는 블록체인 네트워크(150)에서 이상 트랜잭션이 검출되면, 특정 구분 플래그를 포함하는 트랜잭션 데이터를 블록체인 네트워크(150)에 전송할 수 있다. 또 다른 예를 들어, 전자 장치(110)는 특정 구분 플래그를 포함하는 트랜잭션 데이터를 메모리(예: 보안 메모리(114))에 저장할 수 있다. 서버(130)는 블록체인 네트워크(150)에서 이상 트랜잭션이 검출되면, 전자 장치(110)에 특정 구분 플래그를 포함하는 트랜잭션 데이터를 블록체인 네트워크(150)로 전송할 것을 요청할 수 있다.
도 2는 일 실시 예에 따른 트랜잭션 시스템의 동작 흐름도를 도시한다.
도 2를 참조하면, 전자 장치(110)는 동작 201에서 제1 주소에 대한 모니터링 요청을 수신할 수 있다. 예를 들어, 전자 장치(110)는 디스플레이(예: 도 1의 디스플레이(118))에 대한 터치 입력을 통해 제1 주소에 대한 모니터링 요청을 수신할 수 있다. 다만, 또 다른 실시 예에서, 전자 장치(110)가 제1 주소에 대한 모니터링 요청을 수신하지 않는 경우에도, 서버(130)는 다양한 임의의 설정에 따라 모니터링을 개시할 수 있다. 예를 들어, 서버(130)는 전자 장치(110)에 대한 사용자의 설정, 전자 장치(110) 및/또는 서버(예: 도 1의 서버(130)) 내 임의의 설정에 따라 모니터링을 개시할 수도 있다.
일 실시 예에서, 전자 장치(110)는 동작 203에서 제1 주소에서 제2 주소로의 복수 개의 트랜잭션에 대한 트랜잭션 데이터를 생성할 수 있다. 일 실시 예에서, 제1 주소는 외부 해킹에 대한 모니터링이 수행될 주소를 의미하고, 제2 주소는 외부에 의한 도난을 방지하기 위한 해킹 방지 주소를 의미할 수 있다. 제1 주소 및 제2 주소는 서로 상이한 루트 시드에 기반하여 생성된 주소를 의미할 수 있다. 일 실시 예에서, 전자 장치(110)는 트랜잭션 데이터에 기반하여 수수료를 계산할 수 있다. 예를 들어, 전자 장치(110)는 2.1BTC를 가진 미사용 트랜잭션 출력 값(Vin)을 갖는 제1 주소에서 제2 주소로 1.9BTC를 전송(Vout)하고, 제1 주소로 0.05BTC를 전송(Vout)하는 트랜잭션 데이터를 생성할 수 있다. 전자 장치(110)는 Vin 및 Vout에 기반하여 트랜잭션 데이터의 수수료가 0.15BTC임을 계산할 수 있다. 또 다른 실시 예에서, 전자 장치(110)는 복수 개의 트랜잭션에 대하여 서로 다른 수수료 정보를 포함하도록 트랜잭션 데이터를 생성할 수 있다. 예를 들어, 전자 장치(110)는 2.1BTC를 가진 미사용 트랜잭션 출력 값(Vin)을 갖는 제1 주소에서 제2 주소로 1.9BTC를 전송(Vout)하는 제1 트랜잭션 데이터를 생성할 수 있다. 제1 트랜잭션 데이터는 0.2BTC의 수수료 정보를 포함할 수 있다. 전자 장치(110)는 2.1BTC를 가진 미사용 트랜잭션 출력 값(Vin)을 갖는 제1 주소에서 제2 주소로 2.05BTC를 전송(Vout)하는 제2 트랜잭션 데이터를 생성할 수 있다. 제2 트랜잭션 데이터는 0.05BTC의 수수료 정보를 포함할 수 있다.
일 실시 예에서, 전자 장치(110)는 동작 205에서 복수 개의 트랜잭션에 대한 트랜잭션 데이터를 서버(130)로 전송할 수 있다. 일 실시 예에서, 서버(130)는 수신된 복수 개의 트랜잭션에 대한 트랜잭션 데이터를 메모리(134)에 저장할 수 있다. 일 실시 예에서, 복수 개의 트랜잭션은 구분 플래그를 포함할 수 있다. 일 실시 예에서, 구분 플래그가 포함된 복수 개의 트랜잭션에 대한 트랜잭션 데이터를 수신함에 따라, 서버(130)는 제1 주소에 대하여 모니터링 상태로 결정할 수 있다. 예를 들어, 제1 주소가 모니터링 상태인 경우에, 제1 주소는 서버(130) 및/또는 전자 장치(110)의 보안 환경을 제공하는 보안 메모리(예: 도 1의 보안 메모리(114))에서 관리됨에 따라 임의의 상태 변경이 불가능할 수 있다.
일 실시 예에서, 서버(130)는 동작 207에서 제1 주소에 대한 트랜잭션을 모니터링할 수 있다. 일 실시 예에서, 서버(130)는 블록체인 네트워크(150)에 전송되는 트랜잭션 데이터의 입력 값을 모니터링할 수 있다. 예를 들어, 서버(130)는 사용자의 미사용 트랜잭션 출력 값(unspent transaction output, UTXO)을 포함하는 어드레스 목록을 저장할 수 있다. 서버(130)는 블록체인 네트워크(150)에 전송되는 트랜잭션 데이터의 입력 값과 사용자의 미사용 트랜잭션 출력 값을 포함하는 어드레스를 비교할 수 있다. 트랜잭션 데이터의 입력 값과 사용자의 미사용 트랜잭션 출력 값이 동일한 경우에, 서버(130)는 해당 트랜잭션 데이터를 외부 해킹에 의한 트랜잭션 데이터로 판단할 수 있다. 또 다른 예를 들어, 서버(130)는 사용자의 미사용 트랜잭션 출력 값의 트랜잭션 ID 정보 및 트랜잭션의 출력 인덱스 값(Vout)을 저장할 수 있다. 서버(130)는 블록체인 네트워크(150)에 전송되는 트랜잭션 데이터의 트랜잭션 ID 정보 및 트랜잭션의 출력 인덱스 값과 사용자의 미사용 트랜잭션 출력 값의 트랜잭션 ID 정보 및 트랜잭션의 출력 인덱스 값을 비교할 수 있다. 트랜잭션 ID 정보 및 트랜잭션의 출력 인덱스 값이 서로 동일한 경우에, 서버(130)는 해당 트랜잭션 데이터가 외부 해킹에 의한 트랜잭션 데이터로 판단할 수 있다.
일 실시 예에서, 동작 207은 동작 205 이후에 순차적으로 실행되거나, 동작 205와 병렬적으로 실행될 수 있다. 예를 들어, 서버(130)는 전자 장치(110)로부터 복수 개의 트랜잭션 데이터를 수신한 시점 이후에 트랜잭션을 모니터링할 수 있다. 또 다른 예를 들어, 서버(130)는 전자 장치(110)로부터 복수 개의 트랜잭션 데이터를 수신함과 동시에 트랜잭션을 모니터링할 수 있다.
일 실시 예에서, 서버(130)는 동작 209에서 제1 주소에 대한 이상(또는, 비정상) 트랜잭션을 검출할 수 있다. 예를 들어, 서버(130)는 모니터링 상태인 제1 주소에 대하여 출금을 요청하는 이상 트랜잭션을 검출하면, 외부에 의한 해킹이 발생하였음을 식별할 수 있다.일 실시 예에서, 서버(130)는 동작 211에서 복수 개의 트랜잭션 중 적어도 하나의 트랜잭션에 대한 트랜잭션 데이터를 블록체인 네트워크(150)에 전송할 수 있다. 예를 들어, 서버(130)는 제1 주소에 대한 이상 트랜잭션의 수수료 정보를 확인하고, 해당 수수료 정보보다 높은 수수료 정보를 포함하는 제1 주소에서 제2 주소로의 트랜잭션 데이터를 블록체인 네트워크(150)에 전송할 수 있다.
도 2는 전자 장치(110)에서 생성한 데이터가 서버(130)를 거쳐 블록체인 네트워크(150)로 전송되는 흐름도를 도시하고 있으나, 또 다른 실시 예에서, 전자 장치(110)는 생성한 데이터를 블록체인 네트워크(150)로 직접 전송할 수도 있다. 예를 들어, 전자 장치(110)는 제1 주소에서 제2 주소로의 복수 개의 트랜잭션에 대한 트랜잭션 데이터를 생성하여 메모리(예: 도 1의 보안 메모리(114))에 저장할 수 있다. 전자 장치(110)는 트랜잭션 데이터의 생성 여부만을 포함하는 데이터를 서버(130)에 전송할 수 있다. 서버(130)는 제1 주소에 대한 이상 트랜잭션을 검출함에 따라, 전자 장치(110)에 특정 조건을 만족하는 트랜잭션 데이터(예: 이상 트랜잭션보다 높은 수수료 정보를 포함하는 트랜잭션 데이터)를 서버(130)로 전송할 것을 요청하거나, 블록체인 네트워크(150)로 전송할 것을 요청할 수 있다.
도 3은 일 실시 예에 따른 전자 장치의 동작 흐름도를 도시한다. 도 3의 설명과 관련하여 전술한 내용과 대응되거나 동일 또는 유사한 내용은 생략될 수 있다.
일 실시 예에서, 도 3에 도시된 동작 301 내지 동작 307은 전자 장치(110)(예: 도 1의 전자 장치(110))의 프로세서(예: 도 1의 프로세서(116))에서 수행하는 것으로 이해될 수 있다.
도 3을 참조하면, 일 실시 예에 따른 전자 장치(110)는 동작 301에서 제1 키 쌍(key pair)을 생성할 수 있다. 일 실시 예에서, 전자 장치(110)는 루트 시드에 기반하여 제1 키 쌍을 생성할 수 있다. 제1 키 쌍은 제1 개인 키 및 제1 공개 키를 포함할 수 있다. 일 실시 예에서, 상기 루트 시드에 기반하여 계층 결정적 지갑(hierarchical deterministic wallet, HD wallet)이 생성될 수 있다. 계층 결정적 지갑은 HMAC-SHA512 알고리즘을 통해서 마스터 개인 키 및 마스터 체인코드를 생성할 수 있다. 계층 결정적 지갑은 상기 HMAC-SHA512를 통해 획득한 512비트의 해시된 값에서 왼쪽 256비트를 마스터 개인 키로 사용하고, 오른쪽 256비트를 마스터 체인코드로 사용할 수 있다. 일 실시 예에서, 마스터 공개 키는 타원곡선 함수를 이용하여 상기 마스터 개인 키로부터 획득될 수 있다. 계층 결정적 지갑은 트리 구조에서 생성된 키를 포함하고, 부모 키(예: 마스터 키)로부터 복수 개의 자식 키가 생성되고, 상기 복수 개의 자식 키로부터 복수 개의 손자 키가 생성될 수 있다. 일 실시 예에서, 루트 시드에 기반하여 개인 키, 공개 키 및 블록체인 주소가 유도될 수 있다.
일 실시 예에서, 상기 제1 개인 키는 보안 환경을 제공하는 전자 장치(110)의 보안 영역(예: 도 1의 보안 메모리(114))에 저장될 수 있다.
일 실시 예에서, 전자 장치(110)는 동작 303에서 제1 공개 키에 기반하여 제1 주소를 생성할 수 있다. 예를 들어, 전자 장치(110)는 제1 공개 키에 대하여 보안해시 알고리즘(SHA, Secure Hash Algorithm)을 통해 해시 값(제1 공개 키 해시)을 산출하고, 산출된 해시 값에 대하여 지정된 인코딩(예: Base58Check 인코딩)을 통해 주소를 생성할 수 있다. 생성된 주소는 제1 주소를 의미할 수 있다.
일 실시 예에서, 전자 장치(110)는 동작 305에서 제2 키 쌍(key pair)을 생성할 수 있다. 일 실시 예에서, 전자 장치(110)는 동작 307에서 제2 공개 키에 기반하여 제2 주소를 생성할 수 있다. 동작 305 및 동작 307에 대한 설명은 동작 301 및 동작 303의 설명에 대응할 수 있다.
일 실시 예에서, 전자 장치(110)는 동작 309에서 제1 개인 키를 통한 디지털 서명에 기반하여 제1 주소에서 제2 주소로의 복수 개의 트랜잭션에 대한 트랜잭션 데이터를 생성할 수 있다. 일 실시 예에서, 복수 개의 트랜잭션에 대한 트랜잭션 데이터는 서로 다른 수수료 정보를 포함할 수 있다. 또 다른 실시 예에서, 복수 개의 트랜잭션에 대한 수수료는 트랜잭션 데이터에 기반하여 계산될 수도 있다. 일 실시 예에서, 전자 장치(110)는 제1 주소에서 제2 주소로의 복수 개의 트랜잭션에 대한 트랜잭션 데이터에 대하여 제1 주소와 연관된 제1 개인 키를 통해 암호화할 수 있다. 예를 들어, 제1 개인 키를 통해 암호화된 트랜잭션 데이터의 무결성을 검증하기 위하여, 블록체인 노드(예: 도 1의 블록체인 노드(152))는 제1 개인 키와 키 쌍을 이루는 제1 공개 키를 통해 복호화 할 수 있다. 일 실시 예에서, 전자 장치(110)는 복수 개의 트랜잭션에 대한 트랜잭션 데이터에 구분 플래그를 포함하도록 설정할 수 있다. 또 다른 실시 예에서, 전자 장치(110)는 복수 개의 트랜잭션에 대한 트랜잭션 데이터에 대하여 특정 구분 값(예: 제1 구분 값 “1” 또는 제2 구분 값 “0”)을 갖는 구분 플래그를 포함하도록 설정할 수도 있다.
일 실시 예에서, 전자 장치(110)는 동작 311에서 복수 개의 트랜잭션에 대한 데이터를 서버(130)에 전송할 수 있다. 일 실시 예에서, 전자 장치(110)는 제1 개인 키를 통해 암호화된 복수 개의 트랜잭션 데이터를 서버(130)에 전송할 수 있다.
도 4는 일 실시 예에 따른 이상 트랜잭션을 검출한 서버의 동작 흐름도를 도시한다. 도 4에 도시된 동작들은 도 2의 동작 209와 관련될 수 있다. 도 4의 설명과 관련하여 전술한 내용과 대응되거나 동일 또는 유사한 내용은 생략될 수 있다.
일 실시 예에서, 도 4에 도시된 동작 401 내지 동작 405는 서버(예: 도 1의 서버(130))의 프로세서(예: 도 1의 프로세서(136))에서 수행하는 것으로 이해될 수 있다.
도 4를 참조하면, 서버(130)는 동작 401에서 이상 트랜잭션의 수수료 정보를 확인할 수 있다. 일 실시 예에서, 트랜잭션 데이터는 트랜잭션 ID 정보, 트랜잭션 입력 값(예: 이전 트랜잭션 ID, 보내는 사람의 전자 서명) 및 트랜잭션 출력 값(예: 송금 금액, 수수료 정보, 받는 사람의 어드레스) 중 적어도 하나를 포함할 수 있다. 예를 들어, 서버(130)는 모니터링 상태인 제1 주소에서 2.1BTC를 가진 미사용 트랜잭션 출력 값(Vin)을 제2 주소로 1.98BTC를 전송(Vout)하는 이상 트랜잭션 데이터를 검출할 수 있다. 서버(130)는 이상 트랜잭션의 수수료 정보가 0.12BTC임을 확인할 수 있다.
일 실시 예에서, 서버(130)는 동작 403에서 복수 개의 트랜잭션 중 이상 트랜잭션보다 높은 수수료 정보를 포함하는 트랜잭션을 확인할 수 있다. 일 실시 예에서, 트랜잭션의 수수료 정보는 블록체인 네트워크(150)의 노드(예: 도 1의 블록체인 노드(152))에 전송되는 속도에 대응될 수 있다. 예를 들어, 트랜잭션의 수수료 정보가 0.2BTC인 제1 트랜잭션 데이터는 트랜잭션의 수수료 정보가 0.05BTC인 제2 트랜잭션 데이터보다 블록체인 노드(152)에 먼저 전송될 수 있다. 일 실시 예에서, 서버(130)는 이상 트랜잭션의 수수료 정보와 메모리(134)에 저장된 제1 주소에서 제2 주소로의 복수 개의 트랜잭션의 수수료 정보를 비교할 수 있다. 예를 들어, 서버(130)는 제1 트랜잭션이 이상 트랜잭션의 수수료 정보(0.12BTC)보다 큰 수수료 정보(0.2BTC)를 포함하고, 제2 트랜잭션이 이상 트랜잭션의 수수료 정보보다 작은 수수료 정보(0.05BTC)를 포함하는 것을 확인할 수 있다.
일 실시 예에서, 서버(130)는 동작 405에서 확인된 트랜잭션 데이터를 블록체인 네트워크(150)로 전송할 수 있다. 일 실시 예에서, 확인된 트랜잭션은 복수 개의 트랜잭션 중 이상 트랜잭션의 수수료 정보보다 높은 수수료 정보를 포함하는 트랜잭션을 의미할 수 있다. 예를 들어, 서버(130)는 복수 개의 트랜잭션 중 0.2BTC 수수료 정보를 포함하는 제1 트랜잭션 데이터를 블록체인 네트워크로 전송할 수 있다. 또 다른 실시 예에서, 복수 개의 트랜잭션 중 이상 트랜잭션보다 높은 수수료 정보를 포함하는 트랜잭션 데이터가 없는 것으로 확인되는 경우에, 서버(130)는 전자 장치(예: 도 1의 전자 장치(110))에 알림을 전송할 수도 있다.
도 5는 일 실시 예에 따른 전자 장치에서 운용되는 REE 및 TEE의 블록도를 도시한다.
도 5를 참조하면, 전자 장치(예: 도 1의 전자 장치(110))는 복수의 보안 레벨을 가진 실행 환경을 운용할 수 있다. 예를 들어, 복수의 보안 레벨을 가진 실행 환경은 REE(rich execution environment)(510) 및 TEE(trusted execution environment)(520)를 포함할 수 있다. REE(510)는 제1 보안 레벨을 가진 제1 실행 환경이고, TEE(520)는 제1 보안 레벨보다 높은 제2 보안 레벨을 가진 제2 실행 환경을 의미할 수 있다.
일 실시 예에서, REE(510)는 클라이언트 어플리케이션(512), TEE 클라이언트 API(514), Rich OS 컴포넌트(516) 및 REE 통신 에이전트(518)를 포함할 수 있다. 일 실시 예에서, 클라이언트 어플리케이션(512)은 전화, 메시지, 결제, 알람, 브라우저 또는 카메라와 같은 기능을 수행할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다. 일 실시 예에서, TEE 클라이언트 API(514)는 TEE(520)에 접근이 허용되는 API로, REE(510)와 TEE(520)의 어플리케이션 간에 데이터를 교환할 수 있도록 설계된 인터페이스를 의미할 수 있다. 일 실시 예에서, Rich OS 컴포넌트(516)는 REE 통신 에이전트(518)를 포함하고, REE 통신 에이전트(518)를 통해 메시지 통신을 처리할 수 있다.
일 실시 예에서, TEE(520)는 높은 보안 레벨이 요구되는 데이터를 보안 환경 내에 저장하고 관리할 수 있다. 일 실시 예에서, 보안을 필요로 하는 데이터가 메모리에 저장되는 경우에, 메모리는 TEE를 통해서만 접근할 수 있는 설정 영역을 포함할 수 있다. 상기 설정 영역은 일반 메모리에 대하여 특정 메모리 주소를 포함하는 영역을 의미할 수 있다. 예를 들어, 상기 설정 영역은 루트 시드 및/또는 루트 시드에 기반하여 생성된 개인 키를 저장할 수 있다. 또 다른 실시 예에서, 보안을 필요로 하는 데이터가 메모리에 저장되는 경우에, 상기 데이터는 Trusted OS에서만 복호화 가능하도록 암호화하여 저장될 수도 있다. 예를 들어, 루트 시드 및/또는 루트 시드에 기반하여 생성된 개인 키는 Trusted OS에서만 복호화 가능하도록 암호화되어 일반 메모리에 저장될 수 있다. 일 실시 예에서, TEE(520)는 REE(510)와 하드웨어적으로 분리될 수 있다. 다른 실시 예에서, TEE(520)와 REE(510)는 동일한 하드웨어에 의해 구현되지만 소프트웨어적으로 분리될 수도 있다.
일 실시 예에서, TEE(520)는 신뢰 어플리케이션(522), TEE 내부 API(524), Trusted OS 컴포넌트(526) 및 모니터(528)를 포함할 수 있다. 일 실시 예에서, 신뢰 어플리케이션(522)은 DRM(digital rights management), 보안, 결제 또는 생체 정보 저장과 같은 기능을 수행할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다. 일 실시 예에서, 모니터(528) 및 Trusted OS 컴포넌트(526)는 REE 통신 에이전트(518)로부터 수신된 메시지(예: SMC(secure monitor call))를 신뢰 어플리케이션(522)으로 전달할 수 있다. 일 실시 예에서, 모니터(528) 및 Trusted OS 컴포넌트(526)는 SMC 처리 함수를 호출하고, 신뢰 어플리케이션(522)을 실행할 수 있다. 일 실시 예에서, 신뢰 어플리케이션(522)은 SMC에 대응하여 보안 메모리(532)에 접근할 수 있다. 일 실시 예에서, TEE 내부 API(524)는 TEE(520)의 기본 소프트웨어가 동작할 수 있도록 제공되는 인터페이스를 의미할 수 있다.
일 실시 예에서, 하드웨어 플랫폼(530)은 보안 메모리(532)를 적어도 일부의 구성으로 포함할 수 있다. 일 실시 예에서, 하드웨어 플랫폼(530)은 Rich OS 컴포넌트(516)와 통신할 수 있으나, 보안 메모리(532)는 Trusted OS 컴포넌트(526)와만 통신할 수 있다. 일 실시 예에서, 보안 메모리(532)는 루트 시드 및/또는 루트 시드에 기반하여 생성된 개인 키를 저장할 수 있다. 일 실시 예에서, 개인 키가 저장된 보안 메모리(532)는 시스템 접근 권한을 제한할 수 있다. 예를 들어, 보안 메모리(532)는 사용자의 생체 인증 또는 PIN 번호 인증이 수행되는 경우에만 데이터(예: 개인 키)에 접근을 허용하도록 설정될 수 있다.
도 6a는 일 실시 예에 따른 전자 장치의 제1 UI 상태를 도시한다. 도 6b는 일 실시 예에 따른 전자 장치의 제2 UI 상태를 도시한다. 도 6c는 일 실시 예에 따른 전자 장치의 제3 UI 상태를 도시한다. 도 6d는 일 실시 예에 따른 전자 장치의 제4 UI 상태를 도시한다. 도 6e는 일 실시 예에 따른 전자 장치의 제5 UI 상태를 도시한다. 도 6f는 일 실시 예에 따른 전자 장치의 제6 UI 상태를 도시한다. 도 6a 내지 도 6f의 설명과 관련하여 전술한 내용과 대응되거나 동일 또는 유사한 내용은 생략될 수 있다.
도 6a를 참조하면, 전자 장치(110)(예: 도 1의 전자 장치(110))는 디스플레이(118)(예: 도 1의 디스플레이(118))를 통해 블록체인 월렛을 포함하는 제1 UI(600)를 제공할 수 있다. 제1 UI는 블록체인 잔액 정보(예: “예상 총 잔액”) 및 제1 주소 정보(예: “BTC 계좌 1”)(602)를 포함하는 블록체인 월렛을 표시할 수 있다. 일 실시 예에서, 블록체인 월렛은 적어도 하나의 주소 정보를 포함할 수 있고, 블록체인 잔액 정보는 적어도 하나의 주소 정보의 잔액을 합산한 금액 정보를 의미할 수 있다. 일 실시 예에서, 전자 장치(110)는 제1 주소 정보(602)를 표시하는 영역에 대한 터치 입력(604)을 수신할 수 있다.
도 6b를 참조하면, 전자 장치(110)는 디스플레이(118)를 통해 제1 주소에 대한 제어 화면을 포함하는 제2 UI(610)를 제공할 수 있다. 제2 UI는 제1 주소의 설정을 변경할 수 있는 객체를 포함할 수 있다. 일 실시 예에서, 전자 장치(110)는 제1 주소의 설정을 변경할 수 있는 객체 영역에 대한 터치 입력(612)을 수신할 수 있다.
도 6c를 참조하면, 전자 장치(110)는 디스플레이(118)를 통해 제1 주소의 설정 목록을 표시하는 제3 UI(620)를 제공할 수 있다. 일 실시 예에서, 제1 주소의 설정 목록은 “계좌 이름 편집”, “모니터링 계좌 설정” 및 “계좌 삭제” 중 적어도 하나를 포함할 수 있다. 일 실시 예에서, 전자 장치(110)는 제1 주소를 모니터링 계좌로 설정하는 터치 입력(622)을 수신할 수 있다.
도 6d를 참조하면, 전자 장치(110)는 디스플레이(118)를 통해 제2 주소를 만들기 위한 루트 시드(634)에 대한 복원 코드(예: 니모닉 코드)를 표시하는 제4 UI(630)를 제공할 수 있다. 일 실시 예에서, 전자 장치(110)는 제2 주소를 만들기 위한 루트 시드(634)를 생성하기 위하여 니모닉 코드(mnemonic code)(632)를 생성할 수 있다. 전자 장치(110)는 랜덤하게 128bits의 시퀀스를 생성할 수 있다. 전자 장치(110)는 시퀀스에 대하여 SHA 256 해시 함수를 이용하여 획득한 해시 값의 4bits를 체크섬으로 만들어 시퀀스의 끝에 추가할 수 있다. 전자 장치(110)는 체크섬이 추가된 시퀀스를 11bits의 단위로 자르고 미리 정의된 단어로 치환하여 니모닉 코드(632)를 생성할 수 있다. 도 6d는 단어가 중복되는 12개의 니모닉 코드(632)를 도시하고 있으나, 니모닉 코드는 서로 다른 단어로만 구성될 수도 있고, 24개의 단어로 구성될 수도 있다. 일 실시 예에서, 전자 장치(110)는 니모닉 코드(632)에 기반하여 루트 시드를 생성할 수 있고, 생성된 루트 시드에 기반하여 개인 키 및 공개 키를 생성할 수 있다. 일 실시 예에서, 전자 장치(110)는 외부(예: 사용자)에 니모닉 코드(632)를 별도로 기록해둘 것을 지시하는 알림을 표시할 수도 있다.
도 6e를 참조하면, 전자 장치(110)는 디스플레이(118)를 통해 제2 주소 생성이 완료된 제5 UI(640)를 제공할 수 있다. 일 실시 예에서, 제2 주소는 공개 키에 대하여 해시 함수를 통해 생성된 어드레스를 의미할 수 있다. 일 실시 예에서, 전자 장치(110)는 제2 주소 생성 과정이 완료하였음을 확인하는 터치 입력(642)을 수신할 수 있다.
도 6f를 참조하면, 전자 장치(110)는 디스플레이(118)를 통해 블록체인 월렛을 포함하는 제6 UI(650)를 제공할 수 있다. 제6 UI는 블록체인 잔액 정보(예: “예상 총 잔액”), 제1 주소 정보(예: “BTC 계좌 1”) 및 제2 주소 정보(예: “BTC 계좌 2(해킹 방지 계좌)”)(652)를 포함하는 블록체인 월렛을 표시할 수 있다. 도 6a 내지 도 6f는 이상 트랜잭션이 검출되는 경우 이를 무효화하기 위하여 해킹 방지 계좌만을 생성하는 UI만을 도시하고 있으나, 또 다른 실시 예에서 전자 장치(110)는 해킹 방지 계좌를 생성하고, 이어서 해킹 방지 트랜잭션을 생성하는 과정을 진행할 수도 있다.
도 7은 일 실시 예에 따른 해킹 방지 트랜잭션을 생성하는 전자 장치의 UI 상태를 도시한다.
도 7을 참조하면, 전자 장치(110)는 제1 주소의 미사용 트랜잭션 출력 값을 제1 주소로부터 제2 주소로 이전시키는 해킹 방지 트랜잭션을 생성하는 UI(700)를 표시할 수 있다. 일 실시 예에서, UI(700)의 “Recipient Address”는 제2 주소를 의미할 수 있다. 일 실시 예에서, 해킹 방지 트랜잭션은 수수료(fee) 정보의 설정 및/또는 변경을 통해 생성될 수 있다. 예를 들어, 송금 금액(amount) 및 수수료(fee) 정보를 설정하는 일반적인 트랜잭션과 달리, 해킹 방지 트랜잭션은 제1 주소의 미사용 트랜잭션 출력 값 전체를 제2 주소로 이전하는 트랜잭션이므로 사용자에 의해 수수료 정보만이 변경되어 설정될 수 있다. 제1 주소에 대한 총 잔액이 0.3012BTC인 경우에, 사용자가 해킹 방지 트랜잭션의 수수료를 0.001084BTC로 설정하면 송금 금액은 총 잔액에서 수수료를 제외한 0.300116BTC로 설정될 수 있다. 일 실시 예에서, 전자 장치(110)는 제1 주소에 대한 해킹 방지 트랜잭션을 복수 개 생성할 수 있고, 복수 개의 트랜잭션은 서로 다른 수수료 정보를 포함할 수 있다. 일 실시 예에서, 해킹 방지 트랜잭션의 수수료 정보는 블록체인 네트워크(예: 도 1의 블록체인 네트워크(150))의 메모리 풀에 대기중인 트랜잭션의 수수료 정보 시세를 고려하여 자동으로 설정될 수도 있다.
일 실시 예에서, 전자 장치(110)는 해킹 방지 트랜잭션에 대하여 확인하는 터치 입력(702)을 수신함에 따라, 사용자 인증(712)을 수행하기 위한 UI(710)를 표시할 수 있다. 일 실시 예에서, 해킹 방지 트랜잭션의 생성은 개인 키에 기반한 암호화 및 생체 인증 및/또는 PIN 번호 인증을 포함하는 사용자 인증을 통해 완료될 수 있다. 생체 인증 및/또는 PIN 번호 인증을 수행함에 따라 트랜잭션의 유효성 및 진위성이 증가할 수 있다. 일 실시 예에서, 전자 장치(110)는 생체 인증 및/또는 PIN 번호 인증이 수행되는 경우에만 보안 메모리(예: 도 1의 보안 메모리(114))에 저장된 데이터(예: 개인 키)에 접근할 수 있다.
도 8은 일 실시 예에 따른 복수 개의 트랜잭션을 생성하는 전자 장치의 UI 상태를 도시한다.
도 8의 상황 (a), (b) 및 (c)를 참조하면, 전자 장치(110)는 서로 다른 수수료 정보를 포함하는 해킹 방지 트랜잭션 생성 UI를 표시할 수 있다. 도 8의 상황 (a)는 해킹 방지 트랜잭션의 수수료(fee) 정보가 0.001084BTC로 설정된 UI(800)를 도시하고 있다. 도 8의 상황 (b)는 해킹 방지 트랜잭션의 수수료 정보가 0.000735BTC로 설정된 UI(810)를 도시하고 있다. 도 8의 상황 (c)는 해킹 방지 트랜잭션의 수수료 정보가 0.002397BTC로 설정된 UI(820)를 도시하고 있다. 일 실시 예에서, 도 8의 상황 (a) 내지 (c)와 같이 서로 다른 수수료 정보를 포함하는 복수 개의 해킹 방지 트랜잭션 생성 UI가 각각의 UI를 통해 표시되는 경우에는, 적어도 두 번 이상의 사용자 인증으로 해킹 방지 트랜잭션의 생성이 완료될 수 있다. 또 다른 실시 예에서, 서로 다른 수수료 정보를 포함하는 복수 개의 해킹 방지 트랜잭션 생성 UI가 하나의 UI를 통해 표시되는 경우에는, 한 번의 사용자 인증으로 해킹 방지 트랜잭션의 생성이 완료될 수 있다.
일 실시 예에서, 전자 장치(110)는 도 2의 동작 205와 같이 상황 (a) 내지 (c)를 통해 생성된 3개의 해킹 방지 트랜잭션을 서버(130)에 전송할 수 있다. 일 실시 예에서, 서버(130)는 도 4의 동작 401와 같이 제1 주소에 대한 이상 트랜잭션을 검출하면, 이상 트랜잭션의 수수료 정보를 확인할 수 있다. 일 실시 예에서, 서버(130)는 이상 트랜잭션의 수수료 정보보다 높은 수수료 정보를 포함하는 해킹 방지 트랜잭션의 트랜잭션 데이터를 블록체인 네트워크(150)에 전송할 수 있다. 예를 들어, 서버(130)는 제1 주소에 대한 이상 트랜잭션의 수수료 정보가 0.0014BTC로 설정되었음을 확인할 수 있다. 서버(130)는 이상 트랜잭션의 수수료 정보보다 높은 수수료 정보를 포함하는 해킹 방지 트랜잭션을 확인할 수 있다. 서버(130)는 상황 (a) 내지 (c)를 통해 생성된 3개의 해킹 방지 트랜잭션 중 상황 (c)를 통해 생성된 해킹 방지 트랜잭션이 이상 트랜잭션의 수수료 정보보다 높은 수수료 정보를 포함함을 확인할 수 있다. 서버(130)는 상황 (c)를 통해 생성된 해킹 방지 트랜잭션의 트랜잭션 데이터를 블록체인 네트워크(150)에 전송할 수 있다.
일 실시 예에서, 서버(130)는 이상 트랜잭션의 수수료 정보보다 높은 수수료 정보를 포함하는 해킹 방지 트랜잭션이 복수 개인 경우에는, 더 낮은 수수료 정보를 포함하는 해킹 방지 트랜잭션의 트랜잭션 데이터를 블록체인 네트워크(150)에 전송할 수 있다. 예를 들어, 서버(130)는 제1 주소에 대한 이상 트랜잭션의 수수료 정보가 0.0009BTC로 설정되었음을 확인할 수 있다. 서버(130)는 상황 (a) 내지 (c)를 통해 생성된 3개의 해킹 방지 트랜잭션 중 상황 (a) 및 (c)를 통해 생성된 해킹 방지 트랜잭션이 이상 트랜잭션의 수수료 정보보다 높은 수수료 정보를 포함함을 확인할 수 있다. 서버(130)는 상황 (a) 및 (c)를 통해 생성된 해킹 방지 트랜잭션 중 낮은 수수료 정보를 포함하는 상황 (a)를 통해 생성된 해킹 방지 트랜잭션의 트랜잭션 데이터를 블록체인 네트워크(150)에 전송할 수 있다. 일 실시 예에서, 해킹 방지 트랜잭션의 트랜잭션 데이터가 블록체인 네트워크(150)로 전송됨에 따라, 제1 주소의 전액은 제2 주소로 송금됨에 따라 트랜잭션이 완료될 수 있다.
도 9는 일 실시 예에 따른 트랜잭션 전송이 완료된 후 트랜잭션 시스템의 동작 흐름도를 도시한다. 도 9의 동작 901은 도 2의 동작 211에 대응될 수 있다. 따라서, 도 9의 설명과 관련하여 전술한 내용과 대응되거나 동일 또는 유사한 내용은 생략될 수 있다.
도 9를 참조하면, 서버(130)는 동작 901에서 복수 개의 트랜잭션 중 적어도 하나의 트랜잭션 데이터를 블록체인 네트워크(150)에 전송할 수 있다. 일 실시 예에서, 적어도 하나의 트랜잭션 데이터가 블록체인 네트워크(150)에 전송됨에 따라, 제1 주소에 대한 미사용 트랜잭션 출력 값은 소멸될 수 있다. 예를 들어, 도 8의 상황 (a) 내지 (c)를 통해 생성된 3개의 해킹 방지 트랜잭션 중 상황 (c)를 통해 생성된 해킹 방지 트랜잭션의 트랜잭션 데이터가 블록체인 네트워크(150)에 전송되는 경우에, 제1 주소에 대한 미사용 트랜잭션 출력 값은 소멸되므로 상황 (a) 및 (b)를 통해 생성된 나머지 2개의 해킹 방지 트랜잭션은 유효하지 않은 트랜잭션에 해당할 수 있다.
일 실시 예에서, 서버(130)는 동작 903에서 제2 주소에 대한 트랜잭션 완료 알림을 전자 장치(110)에 전송할 수 있다. 일 실시 예에서, 제2 주소에 대한 트랜잭션 완료 알림은 제1 주소에 대한 미사용 트랜잭션 출력 값의 소멸 정보를 포함할 수 있다. 일 실시 예에서, 제2 주소에 대한 트랜잭션 완료 알림에 응답하여, 전자 장치(110)는 제2 주소에 대한 모니터링 요청을 수신할 수 있다.
일 실시 예에서, 전자 장치(110)는 동작 905에서 제3 키 쌍(key pair)을 생성할 수 있다. 일 실시 예에서, 전자 장치(110)는 새로운 루트 시드에 기반하여 제3 키 쌍을 생성할 수 있다. 제3 키 쌍은 제3 개인 키 및 제3 공개 키를 포함할 수 있다. 일 실시 예에서, 제3 개인 키는 보안 환경을 제공하는 전자 장치(110)의 보안 영역(예: 도 1의 보안 메모리(114))에 저장될 수 있다.
일 실시 예에서, 전자 장치(110)는 동작 907에서 제3 공개 키에 기반하여 제3 주소를 생성할 수 있다. 일 실시 예에서, 전자 장치(110)는 동작 909에서 제2 개인 키를 통한 디지털 서명에 기반하여 제2 주소에서 제3 주소로의 복수 개의 트랜잭션 데이터를 생성할 수 있다. 일 실시 예에서, 전자 장치(110)는 동작 911에서 복수 개의 트랜잭션 데이터를 서버(130)에 전송할 수 있다.
도 10은 다양한 실시 예들에 따른 네트워크 환경 내의 전자 장치의 블록도를 도시한다.
도 10을 참조하면, 네트워크 환경(1000)에서 전자 장치(1001)는 제 1 네트워크(1098)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(1002)와 통신하거나, 또는 제 2 네트워크(1099)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(1004) 또는 서버(1008)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(1001)는 서버(1008)를 통하여 전자 장치(1004)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(1001)는 프로세서(1020), 메모리(1030), 입력 장치(1050), 음향 출력 장치(1055), 표시 장치(1060), 오디오 모듈(1070), 센서 모듈(1076), 인터페이스(1077), 햅틱 모듈(1079), 카메라 모듈(1080), 전력 관리 모듈(1088), 배터리(1089), 통신 모듈(1090), 가입자 식별 모듈(1096), 또는 안테나 모듈(1097)을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(1001)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(1060) 또는 카메라 모듈(1080))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 어떤 실시 예에서는, 이 구성요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(1076)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(1060)(예: 디스플레이)에 임베디드된 채 구현될 수 있다
프로세서(1020)는, 예를 들면, 소프트웨어(예: 프로그램(1040))를 실행하여 프로세서(1020)에 연결된 전자 장치(1001)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시 예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(1020)는 다른 구성요소(예: 센서 모듈(1076) 또는 통신 모듈(1090))로부터 수신된 명령 또는 데이터를 휘발성 메모리(1032)에 로드하고, 휘발성 메모리(1032)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(1034)에 저장할 수 있다. 일 실시 예에 따르면, 프로세서(1020)는 메인 프로세서(1021)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(1023)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(1023)은 메인 프로세서(1021)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(1023)는 메인 프로세서(1021)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(1023)는, 예를 들면, 메인 프로세서(1021)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(1021)를 대신하여, 또는 메인 프로세서(1021)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(1021)와 함께, 전자 장치(1001)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(1060), 센서 모듈(1076), 또는 통신 모듈(1090))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시 예에 따르면, 보조 프로세서(1023)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(1080) 또는 통신 모듈(1090))의 일부로서 구현될 수 있다.
메모리(1030)는, 전자 장치(1001)의 적어도 하나의 구성요소(예: 프로세서(1020) 또는 센서 모듈(1076))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(1040)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(1030)는, 휘발성 메모리(1032) 또는 비휘발성 메모리(1034)를 포함할 수 있다.
프로그램(1040)은 메모리(1030)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(1042), 미들 웨어(1044) 또는 어플리케이션(1046)을 포함할 수 있다.
입력 장치(1050)는, 전자 장치(1001)의 구성요소(예: 프로세서(1020))에 사용될 명령 또는 데이터를 전자 장치(1001)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(1050)는, 예를 들면, 마이크, 마우스, 키보드, 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 장치(1055)는 음향 신호를 전자 장치(1001)의 외부로 출력할 수 있다. 음향 출력 장치(1055)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시 예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
표시 장치(1060)는 전자 장치(1001)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(1060)는, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 표시 장치(1060)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.
오디오 모듈(1070)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시 예에 따르면, 오디오 모듈(1070)은, 입력 장치(1050)를 통해 소리를 획득하거나, 음향 출력 장치(1055), 또는 전자 장치(1001)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(1002)) (예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(1076)은 전자 장치(1001)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시 예에 따르면, 센서 모듈(1076)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(1077)는 전자 장치(1001)가 외부 전자 장치(예: 전자 장치(1002))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시 예에 따르면, 인터페이스(1077)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(1078)는, 그를 통해서 전자 장치(1001)가 외부 전자 장치(예: 전자 장치(1002))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시 예에 따르면, 연결 단자(1078)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(1079)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시 예에 따르면, 햅틱 모듈(1079)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(1080)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시 예에 따르면, 카메라 모듈(1080)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(1088)은 전자 장치(1001)에 공급되는 전력을 관리할 수 있다. 일 실시 예에 따르면, 전력 관리 모듈(388)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(1089)는 전자 장치(1001)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일 실시 예에 따르면, 배터리(1089)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(1090)은 전자 장치(1001)와 외부 전자 장치(예: 전자 장치(1002), 전자 장치(1004), 또는 서버(1008))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(1090)은 프로세서(1020)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(1090)은 무선 통신 모듈(1092)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(1094)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(1098)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(1099)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)으로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(1092)은 가입자 식별 모듈(1096)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(1098) 또는 제 2 네트워크(1099)와 같은 통신 네트워크 내에서 전자 장치(1001)를 확인 및 인증할 수 있다.
안테나 모듈(1097)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시 예에 따르면, 안테나 모듈은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 하나의 안테나를 포함할 수 있다. 일 실시 예에 따르면, 안테나 모듈(1097)은 복수의 안테나들을 포함할 수 있다. 이런 경우, 제 1 네트워크(1098) 또는 제 2 네트워크(1099)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(1090)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(1090)과 외부 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시 예에 따르면, 방사체 이외에 다른 부품(예: RFIC)이 추가로 안테나 모듈(1097)의 일부로 형성될 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시 예에 따르면, 명령 또는 데이터는 제 2 네트워크(1099)에 연결된 서버(1008)를 통해서 전자 장치(1001)와 외부의 전자 장치(1004)간에 송신 또는 수신될 수 있다. 전자 장치(1002, 1004) 각각은 전자 장치(1001)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시 예에 따르면, 전자 장치(1001)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(1002, 1004 또는 1008) 중 하나 이상의 외부 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(1001)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(1001)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(1001)로 전달할 수 있다. 전자 장치(1001)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 11은 다양한 실시예에 따른 프로그램을 예시하는 블록도를 도시한다.
도 11은 다양한 실시 예에 따른 프로그램(1040)을 예시하는 블록도(1100)이다. 일 실시 예에 따르면, 프로그램(1040)은 전자 장치(1001)의 하나 이상의 리소스들을 제어하기 위한 운영 체제(1042), 미들웨어(1044), 또는 상기 운영 체제(1042)에서 실행 가능한 어플리케이션(1046)을 포함할 수 있다. 운영 체제(1042)는, 예를 들면, Android™, iOS™, Windows™, Symbian™, Tizen™, 또는 Bada™를 포함할 수 있다. 프로그램(1040) 중 적어도 일부 프로그램은, 예를 들면, 제조 시에 전자 장치(1001)에 프리로드되거나, 또는 사용자에 의해 사용 시 외부 전자 장치(예: 전자 장치(1002 또는 1004), 또는 서버(1008))로부터 다운로드되거나 갱신될 수 있다.
운영 체제(1042)는 전자 장치(1001)의 하나 이상의 시스템 리소스들(예: 프로세스, 메모리, 또는 전원)의 관리(예: 할당 또는 회수)를 제어할 수 있다. 운영 체제(1042)는, 추가적으로 또는 대체적으로, 전자 장치(1001)의 다른 하드웨어 디바이스, 예를 들면, 입력 장치(1050), 음향 출력 장치(1055), 표시 장치(1060), 오디오 모듈(1070), 센서 모듈(1076), 인터페이스(1077), 햅틱 모듈(1079), 카메라 모듈(1080), 전력 관리 모듈(1088), 배터리(1089), 통신 모듈(1090), 가입자 식별 모듈(1096), 또는 안테나 모듈(1097)을 구동하기 위한 하나 이상의 드라이버 프로그램들을 포함할 수 있다.
미들웨어(1044)는 전자 장치(1001)의 하나 이상의 리소스들로부터 제공되는 기능 또는 정보가 어플리케이션(1046)에 의해 사용될 수 있도록 다양한 기능들을 어플리케이션(1046)으로 제공할 수 있다. 미들웨어(1044)는, 예를 들면, 어플리케이션 매니저(1101), 윈도우 매니저(1103), 멀티미디어 매니저(1105), 리소스 매니저(1107), 파워 매니저(1109), 데이터베이스 매니저(1111), 패키지 매니저(1113), 커넥티비티 매니저(1115), 노티피케이션 매니저(1117), 로케이션 매니저(1119), 그래픽 매니저(1121), 시큐리티 매니저(1123), 통화 매니저(1125), 또는 음성 인식 매니저(1127)를 포함할 수 있다.
어플리케이션 매니저(1101)는, 예를 들면, 어플리케이션(1046)의 생명 주기를 관리할 수 있다. 윈도우 매니저(1103)는, 예를 들면, 화면에서 사용되는 하나 이상의 GUI 자원들을 관리할 수 있다. 멀티미디어 매니저(1105)는, 예를 들면, 미디어 파일들의 재생에 필요한 하나 이상의 포맷들을 파악하고, 그 중 선택된 해당하는 포맷에 맞는 코덱을 이용하여 상기 미디어 파일들 중 해당하는 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(1107)는, 예를 들면, 어플리케이션(1046)의 소스 코드 또는 메모리(1030)의 메모리의 공간을 관리할 수 있다. 파워 매니저(1109)는, 예를 들면, 배터리(1089)의 용량, 온도 또는 전원을 관리하고, 이 중 해당 정보를 이용하여 전자 장치(1001)의 동작에 필요한 관련 정보를 결정 또는 제공할 수 있다. 일 실시 예에 따르면, 파워 매니저(1109)는 전자 장치(1001)의 바이오스(BIOS: basic input/output system)(미도시)와 연동할 수 있다.
데이터베이스 매니저(1111)는, 예를 들면, 어플리케이션(1046)에 의해 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(1113)는, 예를 들면, 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다. 커넥티비티 매니저(1115)는, 예를 들면, 전자 장치(1001)와 외부 전자 장치 간의 무선 연결 또는 직접 연결을 관리할 수 있다. 노티피케이션 매니저(1117)는, 예를 들면, 지정된 이벤트(예: 착신 통화, 메시지, 또는 알람)의 발생을 사용자에게 알리기 위한 기능을 제공할 수 있다. 로케이션 매니저(1119)는, 예를 들면, 전자 장치(1001)의 위치 정보를 관리할 수 있다. 그래픽 매니저(1121)는, 예를 들면, 사용자에게 제공될 하나 이상의 그래픽 효과들 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다.
시큐리티 매니저(1123)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 통화(telephony) 매니저(1125)는, 예를 들면, 전자 장치(1001)에 의해 제공되는 음성 통화 기능 또는 영상 통화 기능을 관리할 수 있다. 음성 인식 매니저(1127)는, 예를 들면, 사용자의 음성 데이터를 서버(1008)로 전송하고, 그 음성 데이터에 적어도 일부 기반하여 전자 장치(1001)에서 수행될 기능에 대응하는 명령어(command), 또는 그 음성 데이터에 적어도 일부 기반하여 변환된 문자 데이터를 서버(1008)로부터 수신할 수 있다. 일 실시 예에 따르면, 미들웨어(1144)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 일 실시 예에 따르면, 미들웨어(1044)의 적어도 일부는 운영 체제(1042)의 일부로 포함되거나, 또는 운영 체제(1042)와는 다른 별도의 소프트웨어로 구현될 수 있다.
어플리케이션(1046)은, 예를 들면, 홈(1151), 다이얼러(1153), SMS/MMS(1155), IM(instant message)(1157), 브라우저(1159), 카메라(1161), 알람(1163), 컨택트(1165), 음성 인식(1167), 이메일(1169), 달력(1171), 미디어 플레이어(1173), 앨범(1175), 와치(1177), 헬스(1179)(예: 운동량 또는 혈당과 같은 생체 정보를 측정), 또는 환경 정보(1181)(예: 기압, 습도, 또는 온도 정보 측정) 어플리케이션을 포함할 수 있다. 일 실시 예에 따르면, 어플리케이션(1046)은 전자 장치(1001)와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션(미도시)을 더 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치로 지정된 정보 (예: 통화, 메시지, 또는 알람)를 전달하도록 설정된 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하도록 설정된 장치 관리 어플리케이션을 포함할 수 있다. 노티피케이션 릴레이 어플리케이션은, 예를 들면, 전자 장치(1001)의 다른 어플리케이션(예: 이메일 어플리케이션(1169))에서 발생된 지정된 이벤트(예: 메일 수신)에 대응하는 알림 정보를 외부 전자 장치로 전달할 수 있다. 추가적으로 또는 대체적으로, 노티피케이션 릴레이 어플리케이션은 외부 전자 장치로부터 알림 정보를 수신하여 전자 장치(1001)의 사용자에게 제공할 수 있다.
장치 관리 어플리케이션은, 예를 들면, 전자 장치(1001)와 통신하는 외부 전자 장치 또는 그 일부 구성 요소(예: 표시 장치(1060) 또는 카메라 모듈(1080))의 전원(예: 턴-온 또는 턴-오프) 또는 기능(예: 표시 장치(1060) 또는 카메라 모듈(1080)의 밝기, 해상도, 또는 포커스)을 제어할 수 있다. 장치 관리 어플리케이션은, 추가적으로 또는 대체적으로, 외부 전자 장치에서 동작하는 어플리케이션의 설치, 삭제, 또는 갱신을 지원할 수 있다.
본 문서에 개시된 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나",“A 또는 B 중 적어도 하나,”"A, B 또는 C," "A, B 및 C 중 적어도 하나,”및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine)(예: 전자 장치(1001)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(1036) 또는 외장 메모리(1038))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(1040))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(1001))의 프로세서(예: 프로세서(1020))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어™)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (15)

  1. 전자 장치에 있어서,
    통신회로;
    보안 메모리; 및
    상기 통신회로 및 상기 보안 메모리와 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는:
    제1 공개 키(public key) 및 제1 개인 키(private key)를 포함하는 제1 키 쌍을 생성하고, 상기 제1 개인 키는 상기 보안 메모리에 저장되며,
    상기 제1 공개 키에 기반하여 제1 주소를 생성하고,
    상기 제1 공개 키와 구별되는 제2 공개 키 및 상기 제1 개인 키와 구별되는 제2 개인 키를 포함하는 제2 키 쌍을 생성하고
    상기 제2 공개 키에 기반하여 제2 주소를 생성하고,
    상기 제1 개인 키를 통한 디지털 서명에 기반하여, 상기 제1 주소의 미사용 트랜잭션 출력 값을 상기 제1 주소로부터 상기 제2 주소로 이전시키는 복수 개의 트랜잭션들에 대한 트랜잭션 데이터를 생성하도록 설정되는, 전자 장치.
  2. 청구항 1에 있어서,
    상기 복수 개의 트랜잭션들에 대한 상기 트랜잭션 데이터는 서로 다른 수수료 정보를 포함하는 것을 특징으로 하는, 전자 장치.
  3. 청구항 2에 있어서,
    서버를 통해 상기 제1 주소에 대한 이상 트랜잭션이 검출되면, 상기 복수 개의 트랜잭션들 중 상기 이상 트랜잭션의 수수료 정보보다 높은 수수료 정보를 포함하는 트랜잭션에 대한 트랜잭션 데이터가 상기 블록체인 네트워크로 전송되는 것을 특징으로 하는, 전자 장치.
  4. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 복수 개의 트랜잭션들 중 적어도 하나의 트랜잭션에 대한 트랜잭션 데이터가 상기 블록체인 네트워크로 전송됨에 응답하여, 디스플레이를 통해 상기 제2 주소에 대한 트랜잭션 완료 알림을 표시하도록 설정되는, 전자 장치.
  5. 청구항 4에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 제2 주소에 대한 모니터링 요청에 응답하여, 제3 공개 키 및 제3 개인 키를 포함하는 제3 키 쌍을 생성하고, 상기 제3 개인 키는 상기 보안 메모리에 저장되며,
    상기 제3 공개 키에 기반하여 제3 주소를 생성하도록 설정되는, 전자 장치.
  6. 청구항 5에 있어서,
    상기 적어도 하나의 프로세서는, 상기 제2 개인 키를 통한 디지털 서명에 기반하여 상기 제2 주소로부터 상기 제3 주소에 대한 복수 개의 트랜잭션들을 생성하도록 설정되는, 전자 장치.
  7. 청구항 1에 있어서,
    상기 복수 개의 트랜잭션들은 구분 플래그를 포함하는 것을 특징으로 하는, 전자 장치.
  8. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는, 새로운 루트 시드(root seed)를 생성하고, 상기 새로운 루트 시드에 기반하여 상기 제2 키 쌍을 생성하도록 설정되는, 전자 장치.
  9. 청구항 1에 있어서,
    디스플레이를 더 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 제2 주소에 대한 정보를 상기 디스플레이를 통해서 표시하고,
    상기 복수 개의 트랜잭션들에 대한 수수료 정보를 설정하는 사용자 인터페이스를 표시하며,
    상기 사용자 인터페이스를 통해서 입력된 수수료 정보에 기초하여 상기 복수 개의 트랜잭션들을 생성하는, 전자 장치.
  10. 전자 장치의 동작 방법에 있어서,
    제1 공개 키(public key) 및 제1 개인 키(private key)를 포함하는 제1 키 쌍을 생성하는 동작, 상기 제1 개인 키는 보안 메모리에 저장됨;
    상기 제1 공개 키에 기반하여 제1 주소를 생성하는 동작;
    상기 제1 공개 키와 구별되는 제2 공개 키 및 상기 제1 개인 키와 구별되는 제2 개인 키를 포함하는 제2 키 쌍을 생성하는 동작;
    상기 제2 공개 키에 기반하여 제2 주소를 생성하는 동작; 및
    상기 제1 개인 키를 통한 디지털 서명에 기반하여, 상기 제1 주소의 미사용 트랜잭션 출력 값을 상기 제1 주소로부터 상기 제2 주소로 이전시키는 복수 개의 트랜잭션들에 대한 트랜잭션 데이터를 생성하는 동작을 포함하는 동작 방법.
  11. 청구항 10에 있어서,
    상기 복수 개의 트랜잭션들에 대한 상기 트랜잭션 데이터는 서로 다른 수수료 정보를 포함하는 것을 특징으로 하는, 동작 방법.
  12. 청구항 11에 있어서,
    서버를 통해 상기 제1 주소에 대한 이상 트랜잭션이 검출되면, 상기 복수 개의 트랜잭션들 중 상기 이상 트랜잭션의 수수료 정보보다 높은 수수료 정보를 포함하는 트랜잭션에 대한 트랜잭션 데이터가 상기 블록체인 네트워크로 전송되는 것을 특징으로 하는, 동작 방법.
  13. 청구항 10에 있어서,
    상기 복수 개의 트랜잭션들 중 적어도 하나의 트랜잭션에 대한 트랜잭션 데이터가 상기 블록체인 네트워크로 전송됨에 응답하여, 디스플레이를 통해 상기 제2 주소에 대한 트랜잭션 완료 알림을 표시하는 동작을 더 포함하는, 동작 방법.
  14. 청구항 13에 있어서,
    상기 제2 주소에 대한 모니터링 요청에 응답하여, 제3 공개 키 및 제3 개인 키를 포함하는 제3 키 쌍을 생성하는 동작, 상기 제3 개인 키는 상기 보안 메모리에 저장됨;
    상기 제3 공개 키에 기반하여 제3 주소를 생성하는 동작을 더 포함하는, 동작 방법.
  15. 청구항 14에 있어서,
    상기 제2 개인 키를 통한 디지털 서명에 기반하여 상기 제2 주소로부터 상기 제3 주소에 대한 복수 개의 트랜잭션들을 생성하는 동작을 더 포함하는, 동작 방법.
PCT/KR2021/006232 2020-05-19 2021-05-18 블록체인을 이용하는 전자 장치 및 동작 방법 WO2021235838A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200059799A KR20210142973A (ko) 2020-05-19 2020-05-19 블록체인을 이용하는 전자 장치 및 동작 방법
KR10-2020-0059799 2020-05-19

Publications (1)

Publication Number Publication Date
WO2021235838A1 true WO2021235838A1 (ko) 2021-11-25

Family

ID=78700343

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/006232 WO2021235838A1 (ko) 2020-05-19 2021-05-18 블록체인을 이용하는 전자 장치 및 동작 방법

Country Status (2)

Country Link
KR (1) KR20210142973A (ko)
WO (1) WO2021235838A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180039667A1 (en) * 2016-08-05 2018-02-08 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
US20180240107A1 (en) * 2015-03-27 2018-08-23 Black Gold Coin, Inc. Systems and methods for personal identification and verification
KR20190065824A (ko) * 2017-12-04 2019-06-12 주식회사 비즈모델라인 블록체인 기반 암호화폐를 이용한 결제 방법
US20190180273A1 (en) * 2018-02-20 2019-06-13 Intercontinental Exchange Holdings, Inc. Offline crypto asset custodian
KR20190137070A (ko) * 2018-05-29 2019-12-10 알리바바 그룹 홀딩 리미티드 블록체인 자산 발행 및 회수 방법 및 장치, 및 그 전자 디바이스

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180240107A1 (en) * 2015-03-27 2018-08-23 Black Gold Coin, Inc. Systems and methods for personal identification and verification
US20180039667A1 (en) * 2016-08-05 2018-02-08 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
KR20190065824A (ko) * 2017-12-04 2019-06-12 주식회사 비즈모델라인 블록체인 기반 암호화폐를 이용한 결제 방법
US20190180273A1 (en) * 2018-02-20 2019-06-13 Intercontinental Exchange Holdings, Inc. Offline crypto asset custodian
KR20190137070A (ko) * 2018-05-29 2019-12-10 알리바바 그룹 홀딩 리미티드 블록체인 자산 발행 및 회수 방법 및 장치, 및 그 전자 디바이스

Also Published As

Publication number Publication date
KR20210142973A (ko) 2021-11-26

Similar Documents

Publication Publication Date Title
WO2021010766A1 (ko) 블록 체인을 이용한 전자 인증 장치 및 그 방법
WO2021071157A1 (en) Electronic device and method for managing blockchain address using the same
WO2019164339A1 (en) Electronic device and method for sharing screen data
WO2016137307A1 (en) Attestation by proxy
WO2020171385A1 (en) Electronic device supporting avatar recommendation and download
WO2017122980A1 (en) Electronic device and method for authenticating identification information thereof
WO2020231177A1 (en) Electronic device and method for receiving push message stored in blockchain
WO2021060745A1 (en) Electronic device for updating firmware by using security integrated circuit and operation method thereof
WO2021025449A1 (en) Electronic device operating encryption for user data
WO2020184987A1 (en) Electronic device including secure integrated circuit
WO2019225861A1 (en) Method for sharing content based on account group and electronic device for performing same
CN111404991A (zh) 获取云服务的方法、装置、电子设备及介质
WO2020096262A1 (ko) 전자 장치, 그의 개인 정보 제공 방법 및 이를 기록한 컴퓨터 판독 가능 기록매체
CN112073421A (zh) 通信处理方法、装置、终端及存储介质
CN114595437B (zh) 访问控制方法、电子设备及计算机可读存储介质
WO2020060114A1 (ko) 신분 정보를 제공하는 장치 및 그 시스템
CN111145034A (zh) 基于区块链的社保管理方法、装置及系统、存储介质
WO2018032583A1 (zh) 一种终端位置信息获取方法及装置
WO2020149555A1 (ko) 암호화될 데이터의 정보량에 기반하여 암호화에 사용될 키를 선택하는 전자 장치 및 전자 장치의 동작 방법
WO2016064040A1 (ko) 서명정보를 이용하여 응용 프로그램의 위변조 여부를 탐지하는 사용자 단말기 및 그것을 이용한 위변조 탐지 방법
WO2019039706A1 (ko) 전자 장치 및 그의 데이터 운용 방법
WO2021006574A1 (en) Method and apparatus for managing application
CN110532324B (zh) 基于区块链的公告信息展示方法、装置、设备及存储介质
WO2020111488A1 (ko) 아이오티 장치를 등록하는 전자 장치, 서버 및 그 작동 방법
WO2021235838A1 (ko) 블록체인을 이용하는 전자 장치 및 동작 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21809109

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21809109

Country of ref document: EP

Kind code of ref document: A1