KR20220073552A - 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법 - Google Patents

블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20220073552A
KR20220073552A KR1020200161727A KR20200161727A KR20220073552A KR 20220073552 A KR20220073552 A KR 20220073552A KR 1020200161727 A KR1020200161727 A KR 1020200161727A KR 20200161727 A KR20200161727 A KR 20200161727A KR 20220073552 A KR20220073552 A KR 20220073552A
Authority
KR
South Korea
Prior art keywords
electronic device
data
external electronic
user
processor
Prior art date
Application number
KR1020200161727A
Other languages
English (en)
Inventor
하승민
강경민
이신애
김문규
김용준
류영환
마성렬
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200161727A priority Critical patent/KR20220073552A/ko
Priority to CN202180079372.6A priority patent/CN116547959A/zh
Priority to PCT/KR2021/017656 priority patent/WO2022114857A1/ko
Priority to EP21898682.6A priority patent/EP4236201A4/en
Publication of KR20220073552A publication Critical patent/KR20220073552A/ko
Priority to US18/138,529 priority patent/US20230261886A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/08Annexed information, e.g. attachments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 개시에 따른 일 실시 예에서의 전자 장치는 신호를 송신 또는 수신하는 통신 회로, 명령어들을 저장하는 메모리 및 통신 회로 및 메모리와 작동적으로 연결된 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 명령어들을 실행하여 전자 장치의 사용자에 대한 공개 키 및 블록체인 주소를 생성하고, 데이터를 공유할 외부 전자 장치를 결정하고, 통신 회로를 통해서 공개 키 및 블록체인 주소에 대한 정보를 포함하는 초대 메시지를 외부 전자 장치로 전송하고, 초대 메시지를 통해 접속한 외부 전자 장치의 응답 메시지에 기초하여, 외부 전자 장치를 노드로 포함하는 블록체인 네트워크를 생성하며, 외부 서버에 상기 블록체인 네트워크에 대한 정보를 저장할 수 있다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.

Description

블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법{ELEVTRONIC DEVICE AND METHOD FOR SHARING DATA USING BLOCKCHAIN NETWORK}
본 개시에 따른 다양한 실시 예들은 블록체인 기술을 활용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법에 관한 것이다.
블록체인 네트워크(blockchain network)는 의사결정이 중앙 서버에 의해 수행되는 중앙화 네트워크(centralized network)와 구분되는 네트워크로, 탈중앙화 네트워크(decentralized network)로 표현된다. 블록체인 네트워크는, 블록체인 네트워크에 참여하는 노드들의 합의 알고리즘에 따라 의사결정이 수행되는 네트워크를 지칭할 수 있다.
블록체인 네트워크에서 존재하는 분산 원장은, 블록체인 네트워크에 참여하는 노드들에 각각 저장되어 있을 수 있다. 블록체인 네트워크에서 존재하는 분산 원장은, 블록체인 네트워크에 참여하는 노드들의 합의 알고리즘에 따라 갱신될 수 있다.
블록체인은 중앙화된 서버가 없는 분산형 네트워크 환경에서 보안성과 무결성을 유지하는 기술이다. 블록체인에 기반하여 사용자를 인증하기 위한 방법의 예시로, 프라이빗(private) 블록체인 망에서 발급한 키 쌍(key pair)을 발급하고, 키 쌍을 이용하여 사용자를 인증하는 방법이 있다.
종래 전자 장치는 외부 전자 장치와 데이터를 공유하기 위해 일반 메신저 어플리케이션을 통해 데이터를 공유하거나, 클라우드를 통해 백업 하는 방법으로 데이터를 공유한다.
일반 메신저 어플리케이션을 통해 데이터를 공유하는 경우, 데이터 공유자는 공유된 데이터가 다른 사용자에게 재 공유되는 것을 제한할 수 없다. 즉, 공유 데이터를 소유한 사람은 데이터 피공유자를 지정할 수 없기 때문에, 데이터 공유 시 데이터 파일에 대한 소유권을 상실할 수 있다. 또한, 공유된 데이터가 어떤 사용자에게 공유되었는지 확인할 수 없다. 따라서, 데이터를 공유한 사람이 실제로 기대하는 데이터 공유 범위보다 넓은 범위로 데이터가 공유되는 문제점이 있다.
클라우드를 통해 데이터를 공유하는 경우 해킹 사고 등으로 개인 데이터가 유출되는 문제점이 있다.
일 실시 예에 따른 전자 장치는 신호를 송신 또는 수신하는 통신 회로, 명령어들을 저장하는 메모리 및 통신 회로 및 메모리와 작동적으로 연결된 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 명령어들을 실행하여 전자 장치의 사용자에 대한 공개 키 및 블록체인 주소를 생성하고, 데이터를 공유할 외부 전자 장치를 결정하고, 통신 회로를 통해서 공개 키 및 블록체인 주소에 대한 정보를 포함하는 초대 메시지를 외부 전자 장치로 전송하고, 초대 메시지를 통해 접속한 외부 전자 장치의 응답 메시지에 기초하여, 외부 전자 장치를 노드로 포함하는 블록체인 네트워크를 생성하며, 외부 서버에 상기 블록체인 네트워크에 대한 정보를 저장할 수 있다.
일 실시 예에 따른 전자 장치의 동작 방법은 명령어들을 실행하여 전자 장치의 사용자에 대한 공개 키 및 블록체인 주소를 생성하는 동작, 데이터를 공유할 외부 전자 장치를 결정하는 동작, 공개 키 및 블록체인 주소에 대한 정보를 포함하는 초대 메시지를 외부 전자 장치로 전송하는 동작 초대 메시지를 통해 접속한 외부 전자 장치의 응답 메시지에 기초하여, 외부 전자 장치를 노드로 포함하는 블록체인 네트워크를 생성하는 동작 및 외부 서버에 블록체인 네트워크에 대한 정보를 저장하는 동작을 포함할 수 있다.
본 개시에 따르면, 전자 장치는 데이터를 공유하고자 하는 외부 전자 장치들과 블록체인 네트워크를 생성할 수 있다. 블록체인 네트워크를 생성하는 과정에서 인증 키를 이용하여 데이터를 공유하고자 하는 외부 전자 장치의 안전성을 인증할 수 있다.
또한, 본 개시에 따르면, 블록체인 네트워크를 이용하여 외부 전자 장치들과 데이터를 공유함에 따라, 데이터 공유 기록과 접근 권한 등을 트랜잭션과 블록의 형태로 블록체인 원장을 동기화 할 수 있다. 따라서, 데이터를 안전하게 공유할 수 있다. 예를 들어, 블록체인 네트워크에 참여한 외부 전자 장치들은 모두 동일한 데이터 내용을 가질 수 있으며, 블록체인 기술에 기반하여 공유된 데이터가 해커에 임의 조작되지 않도록 할 수 있다.
본 개시에 따른 전자 장치는, 블록체인 네트워크를 통해 데이터를 공유함으로써, 공유된 데이터의 접근 권한을 제어할 수 있다. 예를 들어, 본 개시에 따른 전자 장치의 사용자는, 데이터를 공유한 뒤 공유된 데이터가 외부 전자 장치들의 사용자에 의해 재 공유되는 것을 금지할 수 있다, 또한, 전자 장치의 사용자가 원하는 기간 동안에만 외부 전자 장치들의 사용자가 데이터에 접근할 수 있도록 설정할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시 예에 따른 전자 장치의 블록도이다.
도 2는 일 실시 예에 따른 블록체인 네트워크를 설명하기 위한 도면이다.
도 3은 일 실시 예에 따른 블록 체인 네트워크를 이용하여 데이터를 공유하기 위한 시스템의 구성을 설명하기 위한 도면이다.
도 4는 일 실시 예에 따른 데이터 공유 어플리케이션을 통해서 데이터를 공유하기 위한 채널을 생성하는 사용자 인터페이스의 예시를 나타내는 도면이다.
도 5는 일 실시 예에 따른 컨텐츠를 공유하는 방식을 선택하기 위한 공유 수단 목록을 이용하여 데이터를 공유하는 과정에서 표시되는 사용자 인터페이스의 예시를 나타내는 도면이다.
도 6은 일 실시 예에 따른 SNS(social network service) 어플리케이션의 실행 중에 데이터를 공유하는 과정에서 표시되는 사용자 인터페이스의 예시를 나타내는 도면이다.
도 7은 일 실시 예에 따른 전자 장치의 블록체인 네트워크의 생성 동작을 나타내는 흐름도이다.
도 8은 복수 개의 외부 전자 장치들과 블록체인 네트워크를 생성하는 동작을 나타내는 흐름도이다.
도 9는 일 실시 예에 따른 전자 장치가 데이터를 공유하기 위한 시스템의 구성을 설명하기 위한 도면이다.
도 10은 일 실시 예에 따른 전자 장치의 데이터 공유 동작을 나타내는 흐름도이다.
도 11은 일 실시 예에 따른 전자 장치의 공유된 데이터에 대한 권한을 변경하는 동작을 나타내는 흐름도이다.
도 12는 일 실시 예에 따른 전자 장치의 블록체인 네트워크 생성 여부를 결정하는 동작을 나타내는 흐름도이다.
도 13은 일 실시 예에 따른 블록체인 플랫폼을 통한 블록의 검증 및 블록 동기화 동작을 설명하기 위한 도면이다.
도 14는 일 실시 예에 따른 전자 장치의 데이터 공유 사용자 인터페이스를 나타내는 도면이다.
도 15는 일 실시 예에 따른 데이터를 공유 받은 전자 장치의 사용자 인터페이스를 나타내는 도면이다.
도 16은 일 실시 예에 따른 공유된 데이터의 권한을 설정하는 사용자 인터페이스를 나타내는 도면이다.
도 17은 일 실시 예에 따른 데이터 공유 어플리케이션을 통해 공유된 파일의 파일 정보를 제공하는 사용자 인터페이스를 나타내는 도면이다.
도 18은 일 실시 예에 따른 데이터 공유 어플리케이션을 통해 공유된 파일의 권한 변경 사용자 인터페이스를 나타내는 도면이다.
도 19는 일 실시 예에 따른 데이터 공유 어플리케이션을 통해 공유된 파일의 공유 이력 사용자 인터페이스를 나타내는 도면이다.
도 20은 일 실시 예에 따른 데이터 공유 어플리케이션을 통해 공유된 파일의 권한 만료 사용자 인터페이스를 나타내기 위한 도면이다.
도 21은, 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 1은 일 실시 예에 따른 전자 장치의 블록도이다.
도 1을 참조하면, 전자 장치(110)는 메모리(111), 통신 회로(112), 프로세서(113) 및 디스플레이(114) 또는 이들의 조합을 포함할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(120)의 메모리(121), 통신 회로(122), 프로세서(123) 및 디스플레이(124)는 전자 장치(110)의 메모리(111), 통신 회로(112), 프로세서(113) 및 디스플레이(114)에 각각 대응될 수 있고, 동일한 기능을 수행할 수 있다. 다양한 실시 예에서, 전자 장치(110) 및 외부 전자 장치(120)는 도 1에 도시된 구성요소 외에 추가적인 구성요소를 포함하거나, 도 1에 도시된 구성요소 중 적어도 하나를 생략할 수 있다.
일 실시 예에 따르면, 메모리(111)는 프로세서(113)가 실행 시에 전자 장치(110)의 동작을 수행하기 위해 데이터를 처리하거나 전자 장치(110)의 구성요소를 제어하도록 하는 인스트럭션들(instructions)을 저장할 수 있다. 메모리(111)는 보안 영역 또는 별도의 보안 저장 매체(예: 보안 OS를 통해서만 접근 가능한 보안 메모리 영역(예: trust zone))을 포함할 수 있다.
일 실시 예에 따르면, 통신 회로(112)는 외부 장치와 연결되어 데이터를 송수신하도록 구성될 수 있다. 예를 들어, 통신 회로(112)는 외부 전자 장치(120)와 데이터를 송수신 할 수 있다. 일 실시 예에 따르면, 통신 회로(112)는 다양한 외부 서버와 통신할 수 있다. 예를 들어, 전자 장치(110)는 통신 회로(112)를 이용하여, 외부 서버로 데이터를 송신할 수 있고, 외부 서버로부터 응답을 수신할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 메모리(111), 통신 회로(112) 및 디스플레이(114)와 전기적으로 또는 작동적으로(operatively) 연결될 수 있다. 일 실시 예에 따르면, 프로세서(113)는 메모리(111)에 저장된 인스트럭션들을 이용하여 전자 장치(110)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 중앙처리장치(CPU), 그래픽처리장치(GPU), MCU(micro controller unit), 센서 허브, 보조프로세서(supplementary processor), 통신프로세서(communication processor), 어플리케이션 프로세서(application processor), ASIC(application specific integrated circuit), FPGA(field programmable gate arrays) 중 적어도 하나를 포함할 수 있으며, 복수의 코어를 가질 수 있다.
일 실시 예에 따르면, 디스플레이(114)는 각종 컨텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)를 표시할 수 있다. 일 실시 예에 따르면, 디스플레이(114)는 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이 또는 유기 발광 다이오드(OLED) 디스플레이를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 메모리(111)에 포함된 인스트럭션을 실행하여, 비대칭키 암호 방식(예: 공개키 암호 방식 public-key ryptography)으로 키 쌍(key pair)을 생성할 수 있다. 일 실시 예에서, 메모리(111)는 생성된 개인 키(private key)를 저장할 수 있다. 일 실시 예에서, 생성된 키 쌍이 저장되는 메모리(111)는 보안 환경(security environment)을 제공하는 메모리인 보안 메모리를 의미할 수도 있다.
일 실시 예에 따르면, 프로세서(113)는 개인 키를 이용하여 블록체인 주소를 생성할 수 있다. 예를 들어, 프로세서(113)는 개인 키를 이용하여 타원곡선 알고리즘에 의해 공개키를 생성하고, 생성된 공개 키로부터 해시함수를 이용하여 블록체인에서 사용할 수 있는 주소를 생성할 수 있다. 일 실시 예에 따른 프로세서(113)는 데이터를 공유할 적어도 하나의 외부 전자 장치(120)를 결정할 수 있다. 전자 장치(110)의 사용자에 의해 데이터를 공유한 외부 전자 장치(120)의 사용자가 결정되는 내용은 도 4 내지 도 6을 참조하여 설명된다.
일 실시 예에 따르면, 프로세서(113)는 통신 회로(112)를 이용하여 데이터를 공유할 외부 전자 장치(120)에 데이터를 송신할 수 있다. 예를 들어, 데이터를 공유하기 위해 데이터 공유 참여 메시지를 송신할 수 있다. 일 실시 예에서, 상기 데이터 공유 참여 메시지는 전자 장치(110)의 공개 키 및 블록체인 주소를 포함하는 URL(uniform resource location)을 포함할 수 있다. 따라서, 전자 장치(110)의 사용자와 데이터를 공유하고자 하는 외부 전자 장치(120)는 상기 URL에 접속하여 전자 장치(110)가 포함된 블록체인 네트워크에 참여함으로써 전자 장치(110)와 데이터를 공유할 수 있다. 다양한 실시 예에 따르면, 전자 장치(110)는 메시지 형태뿐 아니라 다른 형태의 통신 방식을 매개로 URL을 송신할 수 있다.
일 실시 예에서, 프로세서(113)는 외부 전자 장치(120)와 데이터를 공유하기 위해, 블록체인 네트워크를 생성할 수 있다. 예를 들어, 프로세서(113)는 전자 장치(110)의 사용자로부터 초대 메시지를 받고, 이에 응답하여 상기 URL에 접속한 외부 전자 장치(120)의 응답 메시지에 기초하여, 상기 외부 전자 장치(120)를 노드로 포함하는 블록체인 네트워크를 생성할 수 있다. 일 실시 예에서 프로세서(113)는 생성된 블록체인 네트워크에 대한 정보를 통신 회로(112)를 이용하여 외부 서버에 저장할 수 있다. 일 실시 예에서 외부 서버는 복수의 전자 장치들이 접속하여 데이터를 공유할 수 있는 서버일 수 있다. 일 실시 예에 따라, 전자 장치(110)가 블록체인 네트워크를 생성하는 자세한 내용은 도 3을 참조하여 후술된다.
다양한 실시 예들에 따라, 전자 장치(110) 및/또는 외부 전자 장치(120)는 휴대 가능한 포터블(portable) 전자 장치를 나타낼 수 있다. 예를 들어, 전자 장치(110) 및/또는 외부 전자 장치(120)는 모바일, 태블릿 PC 및/또는 노트북에 해당할 수 있다.
도 2는 일 실시 예에 따른 블록체인 네트워크를 설명하기 위한 도면이다.
도 2를 참조하면, 복수 개의 전자 장치들(110, 120, 130)은 블록체인 네트워크(200)를 구성할 수 있다. 도 1을 참조하여 설명된 내용과 마찬가지로, 블록체인 네트워크를 구성하는 복수 개의 전자 장치들(110, 120, 130)은 각각 휴대 가능한 전자 장치를 나타낼 수 있다. 예를 들어, 복수 개의 전자 장치들(110, 120, 130)은 모바일, 태블릿 PC 및/또는 노트북에 해당할 수 있다.
본 개시에 따르면, 설명의 편의를 위해 3개의 전자 장치들이 블록체인 네트워크를 구성하는 것으로 설명하였지만, 이에 제한되지 않는다. 일 실시 예에 따르면, 전자 장치(110)는 데이터를 공유할 외부 전자 장치들과 블록체인 네트워크를 형성할 수 있다. 예를 들어, 전자 장치(110)는 및 외부 전자 장치들(120,130)을 노드로 하여 블록체인 네트워크가 구성될 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 데이터를 공유하기 위해 복수 개의 블록체인 네트워크들을 생성할 수 있다. 예를 들어, 전자 장치(110) 및 다른 외부 전자 장치(도시되지 않음)로 구성된 제1 블록체인 네트워크 및 전자 장치(110), 외부 전자 장치들(120, 130)로 구성된 제2 블록체인 네트워크를 생성할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 루트 시드(root seed)에 기반하여 복수 개의 공개 키들 및 공개 키들에 대응되는 개인 키들을 생성할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는, 전자 장치(110)를 노드로 포함하는 복수 개의 블록체인 네트워크 각각에 대응되는 복수 개의 공개 키들 및 개인 키들을 생성할 수 있다. 따라서, 복수 개의 공개 키 각각에 기반하여, 복수 개의 공개 키들 각각에 대응되는 블록체인 네트워크들이 구성될 수 있다. 본 문서에서, 데이터를 공유하기 위해 생성된 블록체인 네트워크는 데이터 공유 채널로 표현될 수 있다. 각각 데이터 공유 채널은 해당 데이터 공유 채널에 포함된 사용자들에 따라 구분될 수 있다. 예를 들어, 블록체인 네트워크를 구성하는 전자 장치들이 상이하면, 다른 데이터 공유 채널로 구분될 수 있다.
일 실시 예에 따르면, 블록체인 네트워크(200)는 해당 블록체인 네트워크에 기반한 블록체인 원장을 포함할 수 있다. 즉, 블록체인 네트워크들 각각에 대응되는 블록체인 원장이 존재할 수 있다. 일 실시 예에서 블록체인 원장은 트랜잭션 데이터가 저장되는 블록원장과 트랜잭션을 실행하여 변경된 값들을 키값(key-value) 형태로 저장하는 월드 스테이트(World State) 데이터로 구성될 수 있다. 월드 스테이트 데이터는, 예를 들어, 하이퍼레저 패브릭(Hyperledger Fabric)에서 사용되는 데이터 베이스인 월드 스테이트(World State)에 저장된 데이터를 의미할 수 있다. 다만, 이에 한정되지 아니한다.
월드 스테이트는 하이퍼레저 패브릭에서 사용되는 일종의 데이터 베이스로, 트랜잭션을 실행하여 변경된 최종의 값들을 키값 형태로 저장할 수 있다. 따라서, 블록체인 네트워크(200) 내의 트랜잭션 실행에 의한 최종의 값들을 확인하기 위해서는 월드 스테이트 데이터 만을 확인하면 된다. 월드 스테이트에 저장된 월드 스테이트 데이터는 블록체인 네트워크를 구성하는 전자 장치들에 모두 동일한 값으로 나타날 수 있다. 즉, 월드 스테이트 데이터는 블록체인 네트워크 내에서 전역 변수와 같은 특징을 가질 수 있다.
일 실시 예에서, 블록은 스마트 컨트랙트를 수행하기 위한 정보를 담은 트랜잭션들로 이루어 질 수 있다. 따라서, 블록체인 원장의 블록들은 체인 형태를 이루며 블록 원장에 블록 데이터를 저장할 수 있다. 일 실시 예에 따르면, 블록체인 네트워크(200)에 포함된 모든 블록체인 노드들은 동일한 블록체인 원장을 소유할 수 있다. 따라서, 상이한 블록체인 원장이 발견된 경우, 블록체인 노드들은 해당 블록에 대한 신뢰성 및 유효성을 의심할 수 있다.
블록 원장은 블록 헤더와 트랜잭션 데이터를 포함할 수 있다. 일 실시 예에 따르면, 블록 헤더는 헤더 및 데이터 영역의 해시 값, 이전 블록의 해시 값, 블록의 높이(height) 값, 블록에 포함된 트랜잭션을 수행한 이후의 월드 스테이트 데이터의 해시 값, 블록 생성자의 공개 키, 블록 생성자의 개인 키로 해시를 서명한 값, 입증 키 인증 체인(Attestation Key Certificate Chain) 또는 입증 키(Attestation Key)로 해시 값을 서명한 값 중 적어도 하나를 포함할 수 있다.
블록 데이터는 트랜잭션 데이터 중 적어도 일부의 해시 값, 스마트 컨트랙트의 버전 정보, 스마트 컨트랙트 ID, 스마트 컨트랙트 함수 ID, 스마트 컨트랙트 함수에 필요한 인자 값인 스마트 컨트랙트 데이터, 트랜잭션 생성자의 트랜잭션 생성 번호인 논스(nonce) 값, 트랜잭션 생성자의 공개 키, 트랜잭션 생성자의 개인 키로 해시 값을 서명한 값, 입증 키 인증 체인 또는 해시 값을 입증 키로 서명한 값 중 적어도 하나를 포함할 수 있다.
도 3은 일 실시 예에 따른 블록 체인 네트워크를 이용하여 데이터를 공유하기 위한 시스템의 구성을 설명하기 위한 도면이다.
도 3을 참조하면, 전자 장치(110)는 데이터 공유 APP(application)(321), 키 관리자(322), 블록체인 플랫폼(323) 및 블록체인 메모리(325)를 포함할 수 있다. 일 실시 예에 따르면, 블록체인 플랫폼(323)은 메모리(111)에 저장된 블록체인 관련 동작을 수행하는 블록체인 어플리케이션 또는 프로세서(113)에 포함된 블록체인 관련 동작을 수행하는 블록체인 모듈에 대응될 수 있다. 일 실시 예에서, 전자 장치(110)는 블록체인 플랫폼(323)을 통해 블록체인 네트워크(310)에 기반하여 블록체인 관련 동작을 수행할 수 있다. 예를 들어, 전자 장치(110)는 블록체인 플랫폼(323)을 통해 블록체인 네트워크(310) 상에서 원장 동기화, 트랜잭션 서명 및/또는 트랜잭션 기록을 수행할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자 입력에 기반하여 프로세서(113)는 메모리(111)에 저장된 데이터 공유 APP(321)를 실행할 수 있다. 전자 장치(110)의 사용자는 데이터를 공유할 외부 전자 장치(120)의 사용자를 초대하기 위해 데이터 공유 APP(321)을 실행할 수 있다.
일 실시 예에 따르면, 전자 장치(110)의 사용자가 데이터 공유 APP(321)를 실행하면, 프로세서(113)는 키 관리자(322)를 통해 루트 시드를 생성할 수 있다. 루트 시드는 한 개로부터 많은 키와 블록체인 주소를 생성할 수 있는 기본이 되는 값을 의미한다. 루트 시드는 블록 체인 네트워크에서 사용 가능한 범위의 조건 내에서 임의적으로 생성되는 값을 의미할 수 있다. 일 실시 예에 따르면, 루트 시드는 전자 장치(210)의 동작 중에 발생하는 동적 특징에 기초하여 생성될 수 있다. 예를 들어, 전자 장치(210)는 전자 장치(210)의 온도 센서로부터 출력되는 값이나 특정 위치의 전류 값 등으로부터 루트 시드를 생성할 수 있다. 다른 예를 들면, 전자 장치(210)는 전자 장치(210)에 포함된 하드웨어 칩의 고유한 값을 이용하여 루트 시드를 생성할 수도 있다. 전자 장치(110)는 루트 시드를 통해서 생성된 키 값들을 복원할 수 있다. 프로세서(113)는 니모닉 해시(Mnemonic hash) 기반의 루트 시드를 키 관리자(322)로부터 얻을 수 있다. 니모닉 해시 기반의 루트 시드는 니모닉 단어(Mnemonic word)를 사용할 수 있다. 니모닉 단어는 사람이 인식할 수 있는 단어들을 포함할 수 있다. 다양한 실시 예에 따라, 루트 시드는 다양한 형태의 시드를 이용할 수 있다. 예컨대, 루트 시드는, 16진수로 되어 있는 시드를 이용하거나, 12단어로 된 연상 기호(니모닉)로 구성된 시드를 이용할 수 있다. 이때, 연상 기호(니모닉(mnemonic))는 사용자가 인식할 수 있는 단어 형태를 포함할 수 있다. 예컨대, 루트 씨드는, BIP-39 표준에 기반한 연상 기호를 이용할 수 있다. 니모닉 코드와 시드는 BIP-39 표준에 기반하여 생성될 수 있다. 니모닉에 포함된 단어들과 솔트값(예: 사용자로부터 입력 받은 암호)를 인자로 하여 키 스트레칭 함수를 사용하여 512비트의 시드가 생성할 수 있다. 키 스트레칭 함수(예컨대, PBKDF2)는, 두 인자 값들을 이용하여 일정한(512비트) 값을 출력할 수 있다. 예컨대, 키 스트레칭 함수는 두 인자 값들을 해시 알고리즘(예컨대, HMAC-SHA512)을 이용하여 반복해서 해싱을 수행하고, 최종 출력 값을 루트 시드로 생성할 수 있다.
일 실시 예에 따르면, 전자 장치(110)는 데이터 공유 APP(321)에 기반하여, 데이터를 공유할 외부 전자 장치(120)를 선택할 수 있다. 다양한 실시 예에 따르면, 전자 장치(110)는 다양한 식별자에 기반하여 외부 전자 장치(120)를 선택할 수 있다. 예를 들어, 전자 장치(110)는 외부 전자 장치(120) 사용자의 전화 번호 또는 닉네임 중 적어도 하나를 표시하는 사용자 목록 중에서 초대 메시지를 전송할 대상을 선택하는 사용자 입력을 수신할 수 있다. 다른 실시 예에 따르면, 전자 장치(110)는 데이터를 공유할 외부 전자 장치를 복수 개 선택할 수 있다. 일 실시 예에 따르면, 선택된 외부 전자 장치들과 전자 장치(110)는 하나의 그룹으로 구분되고, 데이터 공유 채널을 이룰 수 있다.
일 실시 예에 따르면, 프로세서(113)는 키 관리자(322)를 통해 생성된 루트 시드에 기반하여 공개 키를 생성할 수 있다. 일 실시 예에 따르면, 키 관리자(322)는 루트 시드를 이용하여 계층 결정적 경로(HDpath) 기반의 공개 키를 생성할 수 있다. 일 실시 예에 따르면, 루트 시드는 HMAC-SHAR 512 알고리즘 함수를 통해 생성한 해시 값에서 마스터 개인 키(Master Private key)와 마스터 체인코드(Master Chain Code)를 생성할 수 있다. 512 비트의 해시된 값에서 왼쪽 256비트를 개인 키로 사용하고, 오른쪽 256 비트를 체인코드로 사용할 수 있다. 공개 키는 개인 키와 타원곡선 함수를 이용하여 획득할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 키 관리자(322)를 통해 공개 키에 기반하여 블록체인 주소를 생성할 수 있다. 블록체인 네트워크는 블록체인 주소를 이용해 지칭될 수 있다. 일 실시 예에 따르면, 전자 장치(110)가 복수 개의 블록체인 네트워크를 생성한 경우, 복수 개의 블록체인 네트워크 각각에 대응되는 공개 키들이 생성될 수 있다. 따라서, 상기 공개 키들에 기반하여 복수 개의 블록체인 네트워크 각각에 대응되는 블록체인 주소들이 생성될 수 있다.
일 실시 예에 따르면, 프로세서(113)는 데이터를 공유할 외부 전자 장치(120)에 전송될 초대 메시지를 생성할 수 있다. 초대 메시지는 URL을 포함할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(120)는 초대 메시지에 포함된 URL을 이용하여 서버(300)에 접속할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(120)는 URL을 이용하여 서버(300)에 접속할 수 있고, URL은 데이터 공유 APP(321)의 링크주소를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 초대 URL의 유효성을 입증하기 위해, 키 관리자(322)를 통해 전자 장치(110) 사용자의 개인 키로 전자 서명을 수행할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 전자 장치(110) 사용자의 개인 키로 기초URL에 대한 전자 서명을 수행하고, 전자 서명의 결과로서 서명 데이터를 획득할 수 있다. 예를 들어, 전자 장치(110)는 해시 함수(hash function)를 이용하여 초대 URL을 포함하는 데이터로부터 해시 값을 생성할 수 있다. 예를 들어 전자 장치(110)는 초대 URL로부터 SHA 256 과 같은 해시 함수를 이용하여 해시 값을 획득할 수 있다. 전자 장치(110)는 획득된 해시 값과 개인 키에 기초하여 전자 서명을 수행할 수 있다. 전자 서명이 완료된 서명 데이터는 해시 값을 개인 키를 이용하여 암호화한 암호화 데이터를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 전자 장치(110)의 사용자에 대한 개인 키에 기반하여 생성한 서명 데이터를 기초 URL에 추가할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 초대 URL의 신뢰성을 입증하기 위해, 키 관리자(322)를 통해 전자 장치(110) 사용자의 인증 키(attestation key)로 전자 서명을 수행할 수 있다. 일 실시 예에 따르면, 인증 키는 전자 장치(110)의 키 저장소에 저장된 인증 키를 나타낼 수 있다. 일 실시 예에 따르면, 전자 장치(110) 및 외부 전자 장치(120)는 인증 키에 기반한 전자 서명을 통해, 전자 장치들 및 데이터 공유 APP(321)이 변조되지 않았음을 확인할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 전자 장치(110)의 인증 키로 기초 URL에 대한 전자 서명을 수행하고, 서명 데이터를 생성할 수 있다. 예를 들어, 전자 서명이 완료된 서명 데이터는 해시 값을 인증 키를 이용하여 암호화한 암호화 데이터를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 전자 장치(110)의 사용자에 대한 인증 키에 기반하여 생성한 서명 데이터를 기초 URL에 추가할 수 있다.
일 실시 예에 따르면, 초대 URL은 초대하는 전자 장치(110)의 사용자에 기반한 초대자의 주소, 전자 장치(110) 사용자의 공개 키, 전자 장치(110) 사용자의 개인 키로 서명한 데이터 또는 전자 장치(110) 사용자의 인증 키로 서명한 데이터 중 적어도 하나를 포함할 수 있다. 예를 들어, 초대 URL의 형태는 "https://www.privacy.com/invitation?invitationId=1&address=aaa&publicKey=pKey&publicKeySignature=s1&sakSignature=s2"의 형태를 가질 수 있다. 일 실시 예에 따르면, 초대 URL은 다양한 데이터로 구성될 수 있다. 예를 들어, 초대 URL은 도메인 주소(예: https://www.privacy.com/invitation), 초대 아이디(ID)(예: invitationId=1) 및/또는 초대자의 주소(예: address=aaa)를 포함할 수 있다. 또한, 초대URL은 전자 장치(110) 사용자(초대자)의 공개 키(예: publicKey=pKey), 전자 장치(110) 사용자(초대자)의 공개키로 초대 URL을 서명한 서명 데이터(예: publicKeySignature=s1) 및/또는 전자 장치(110) 사용자의 인증키로 서명한 데이터(예: sakSignature=s2)를 포함할 수 있다.
일 실시 예에 따르면, 블록체인 메모리(325)는 블록체인 관련된 다양한 정보를 저장할 수 있다. 예를 들어, 전자 장치(110)는 월드 스테이트 데이터 및/또는 적어도 하나의 계약(예: 스마트 컨트랙트) 정보를 저장할 수 있다. 일 실시 예에서 블록체인 플랫폼(323)은 블록체인 메모리(325)에 저장된 블록체인 관련 정보를 이용해 동작을 수행할 수 있다. 또한, 블록체인 플랫폼(323)에 저장된 정보는 블록체인 메모리(325)에도 저장될 수 있다.
일 실시 예에 따르면, 전자 장치(110)는 서버(300)를 통해, 외부 전자 장치(120)로 초대 URL이 포함된 초대 메시지를 송신할 수 있다. 초대 URL을 수신한 외부 전자 장치(120)는 초대 메시지에 포함된 초대 URL을 통해 데이터 공유 APP(331)을 실행할 수 있다. 다른 실시 예에서, 외부 전자 장치(120)의 메모리(121)에 데이터 공유 APP(331)이 저장되지 않은 경우, 외부 전자 장치(120)는 외부 서버를 통해 데이터 공유 APP(331)를 다운로드하고, 실행할 수 있다.
일 실시 예에 따르면, 외부 전자 장치(120)는 초대 메시지에 포함된 초대 URL의 신뢰성을 확인하기 위해, 키 관리자(332)를 통하여 초대 URL에 전자 서명된 인증 키 값을 확인할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(120)는 초대 URL의 유효성을 확인하기 위해, 키 관리자(332)를 통하여 초대 URL에 서명된 전자 장치(110)의 사용자에 대한 공개 키를 확인할 수 있다.
일 실시 예에 따르면, 외부 전자 장치(120)의 사용자는 전자 장치(110)의 사용자와 데이터를 공유하기 원하는 경우, 다른 말로, 데이터 공유 APP(331)을 이용해 전자 장치(110)와 데이터를 공유하고자 하는 경우에는 초대를 수락하기 위한 수락 데이터를 생성할 수 있다. 다양한 실시 예에 따르면, 초대를 수락하기 위한 수락 데이터를 다양한 형태로 구성될 수 있으며, 예를 들어 초대에 대한 응답 메시지로 구성될 수 있다.
일 실시 예에 따르면, 외부 전자 장치(120)의 프로세서(123)는 수락 데이터의 보안을 위해 전자 장치(110)의 사용자에 대한 공개 키로 수락 데이터를 암호화할 수 있다. 일 실시 예에서, 프로세서(123)는 암호화된 수락 데이터를 통신 회로(122)를 통해 전자 장치(110)로 송신할 수 있다.
일 실시 예에 따르면, 프로세서(123)는 초대 데이터의 유효성을 입증하기 위해, 키 관리자(332)를 통해 전자 장치(110) 사용자의 개인 키로 초대 데이터에 전자 서명할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 전자 장치(110) 사용자의 개인 키로 수락 데이터의 전자 서명을 수행하고, 서명 데이터를 생성할 수 있다. 전자 서명이 완료된 서명 데이터는 해시 값을 개인 키를 이용하여 암호화한 암호화 데이터를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 전자 장치(110)의 사용자에 대한 개인 키에 기반하여 생성한 수락 데이터에 대한 서명 데이터를 수락 데이터에 추가할 수 있다.
일 실시 예에 따르면, 프로세서(123)는 수락 데이터의 신뢰성을 입증하기 위해, 키 관리자(332)를 통해 전자 장치(110) 사용자의 인증 키로 전자 서명할 수 있다. 일 실시 예에 따르면, 인증 키는 전자 장치(110)의 키 저장소에 저장된 인증 키를 나타낼 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 외부 전자 장치(120)의 인증 키에 기반한 서명을 통해, 외부 전자 장치(120) 및 데이터 공유 APP(331)이 변조되지 않았음을 확인할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(120)는 외부 전자 장치(120)의 인증 키로 수락 데이터의 전자 서명을 수행하고, 서명 데이터를 생성할 수 있다. 예를 들어, 전자 서명은 외부 전자 장치(120)가 인증 키에 기반하여 암호화하는 동작을 포함할 수 있다. 전자 서명이 완료된 서명 데이터는 해시 값을 인증 키를 이용하여 암호화한 암호화 데이터를 포함할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(120)는 외부 전자 장치(120)의 사용자에 대한 인증 키에 기반하여 생성한 서명 데이터를 수락 데이터에 추가할 수 있다.
일 실시 예에 따르면, 외부 전자 장치(120)는 서버(300)를 통해, 전자 장치(110)에 수락 데이터를 송신할 수 있다. 따라서, 전자 장치(110)의 사용자는 외부 전자 장치(120)의 사용자가 송신한 수락 데이터를 수신할 수 있다. 일 실시 예에서, 전자 장치(110)는 수락 데이터 및 외부 전자 장치(120)의 사용자가 데이터 공유 APP(321)를 통해 데이터를 공유하고자 함을 알림을 통해 수신할 수 있다. 일 실시 예에 따르면, 상기 알림은, 데이터 공유 APP(321)를 통해 발생할 수 있다.
일 실시 예에 따르면, 전자 장치(110)는 통신 회로(112)를 이용해 외부 전자 장치(120)로부터 수신한 수락 데이터의 신뢰성 확인을 위해 키 관리자(322)를 통해 수락 데이터에 서명된 외부 전자 장치(120)에 기반한 인증 키 값을 확인할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 통신 회로(112)를 이용해 외부 전자 장치(120)로부터 수신한 수락 데이터의 유효성을 확인하기 위해 키 관리자(322)를 통해 수락 데이터에 서명된 외부 전자 장치(120) 사용자의 공개 키 값을 확인할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 키 관리자(322)를 통해 암호화된 수락 데이터를 전자 장치(110) 사용자의 개인 키로 복호화할 수 있다.
일 실시 예에 따르면, 전자 장치(110)는 수락 데이터의 신뢰성 및 유효성이 확인되면, 외부 전자 장치(120) 및 전자 장치(110)를 블록체인 노드들로 포함하는 블록체인 네트워크를 생성할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 블록체인 플랫폼(323)을 통해, 블록체인 네트워크(310)를 생성할 수 있다. 일 실시 예에서, 전자 장치(110)는 블록체인 플랫폼(323)을 통해 블록체인 네트워크(310)에 대한 블록체인 관련 동작을 수행할 수 있다. 예를 들어, 블록체인 플랫폼(323)은 블록체인 네트워크(310)에 트랜잭션의 생성 및 블록 기록을 관리할 수 있다.
일 실시 예에 따르면, 전자 장치(110)는 전자 장치(110)의 사용자가 데이터를 공유할 외부 전자 장치(120)를 블록체인 네트워크(310)의 블록체인 노드들로 포함하도록 블록체인 플랫폼(323)을 통해 블록체인 네트워크(310)에 제1 트랜잭션을 요청할 수 있다.
일 실시 예에 따르면, 제1 트랜잭션은 블록체인 네트워크(310) 생성 및 블록체인 네트워크(310)에서 데이터를 공유할 사용자를 추가하는 제1 계약(예: 제1 스마트 컨트랙트)을 생성할 수 있다. 일 실시 예에 따르면, 제1 계약은 다양한 데이터를 포함할 수 있다. 예를 들어, 초대 ID, 초대 수락 사용자의 식별자, 초대 수락 사용자의 주소, 초대 수락 사용자의 공개 키, 초대 수락 사용자의 공개 키로 서명한 서명 데이터 및 초대 수락 사용자의 인증 키로 서명한 서명 데이터를 포함할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 데이터 공유 APP(321)을 실행하여 생성된 블록체인 네트워크(310)의 정보를 서버(300)에 등록할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 데이터 공유 APP(321)을 실행하여 블록체인 플랫폼(323)을 통해, 제1 트랜잭션 및 제1 계약에 기반한 제안 블록을 생성하고, 제안 블록에 대한 유효성을 검사할 수 있다. 블록체인 플랫폼(323)은 블록을 동기화할 수 있고, 블록을 받은 블록 수신자는 블록체인 플랫폼(333)을 통해, 블록이 유효한지 검사할 수 있다. 이에 대한 설명은 도 13을 참조하여 후술된다.
일 실시 예에 따라, 외부 전자 장치(120)는 블록체인 네트워크(310)와 데이터를 송수신할 수 있고, 트랜잭션의 생성 및 블록 기록 등을 관리하는 인스트럭션들을 포함하는 블록체인 플랫폼(333)을 포함할 수 있다. 일 실시 예에 따르면, 프로세서(123)는 블록체인 플랫폼(333)을 통해 제1 계약을 수행할 수 있다. 제1 계약이 수행되면, 블록체인 플랫폼(333)은 블록체인 네트워크(310)의 원장의 월드 스테이트 에 제1 계약에 대한 월드 스테이트 데이터를 기록할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(120)는 외부 전자 장치(120)의 사용자의 블록체인 네트워크(310)에 대한 정보를 서버(300)에 등록할 수 있다.
도 4는 일 실시 예에 따른 데이터 공유 어플리케이션을 통해서 데이터를 공유하기 위한 채널을 생성하는 사용자 인터페이스의 예시를 나타내는 도면이다.
도 4를 참조하면, 일 실시 예에 따른 전자 장치(110)는 데이터 공유 APP(321)을 실행하여 데이터 공유를 위한 블록체인 네트워크(310)를 생성할 수 있다. 일 실시 예에 따르면, 블록체인 네트워크(310)는 데이터 공유 채널로 표현될 수 있다. 일 실시 예에 따르면, 프로세서(113)는 데이터를 공유할 외부 전자 장치들을 선택할 수 있다. 일 실시 예에서, 전자 장치(110)의 사용자가 채널을 생성하기 위해 데이터 공유 APP(321)을 실행하면, 프로세서(113)는 디스플레이(114)를 통해 채널 생성(410)을 출력할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자가 채널 생성(410)을 선택하면, 프로세서(113)는 데이터를 공유할 외부 전자 장치들의 사용자들(421~423)을 출력할 수 있다. 일 실시 예에서, 전자 장치(110)의 사용자는 외부 전자 장치들의 사용자들(421~423) 중 데이터를 공유할 사용자들을 초대자들로 선택할 수 있다.
일 실시 예에서, 전자 장치(110)가 초대자들로부터 데이터 공유에 수락하는 수락 데이터를 수신하면 블록체인 네트워크(310)가 생성될 수 있다. 예를 들어, 전자 장치(110) 및 초대된 외부 전자 장치들은 블록체인 네트워크(310) 생성 동작을 수행할 수 있다. 따라서, 프로세서(113)는 디스플레이(114)를 통해 채널 생성 완료 안내(430)를 출력할 수 있다.
일 실시 예에 따르면, 초대자들이 수락 데이터를 송신하는 시기, 즉 블록체인 네트워크(310)에 노드로 참여하는 시기는 다를 수 있다. 이에 대한 설명은 도 8을 참조하여 후술된다.
도 5는 일 실시 예에 따른 컨텐츠를 공유하는 방식을 선택하기 위한 공유 수단 목록을 이용하여 데이터를 공유하는 과정에서 표시되는 사용자 인터페이스의 예시를 나타내는 도면이다.
도 5를 참조하면, 일 실시 예에 따른 전자 장치(110)는 컨텐츠를 제공하는 어플리케이션의 실행 중에 데이터 공유를 위한 블록체인 네트워크(310)를 생성할 수 있다. 예를 들어, 갤러리 컨텐츠(511) 또는 문서 컨텐츠(512)를 실행하여 데이터 공유 APP(321)를 통해 외부 전자 장치들 각각의 사용자들과 공유할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 디스플레이(114)를 통해, 공유하고자 하는 데이터에 대응되는 갤러리 컨텐츠(511) 또는 문서 컨텐츠(512)를 출력할 수 있다. 일 실시 예에서, 전자 장치(110)의 사용자는 문서 컨텐츠(512)를 공유하고자 하는 파일로 선택할 수 있다.
일 실시 예에 따르면, 사용자가 문서 컨텐츠(512)를 공유하기 위해 선택한 경우, 문서 컨텐츠(512)를 공유하기 위한 어플리케이션을 선택할 수 있다. 프로세서(113)는 문서 컨텐츠(512)를 공유하기 위한 다양한 어플리케이션들(521~523)을 선택하기 위한 공유 수단 목록을 디스플레이(114)를 통해 출력할 수 있다. 일 실시 예에서, 전자 장치(110) 는 문서 컨텐츠(512)를 공유하기 위한 어플리케이션으로, 데이터 공유 APP(521)를 선택하는 사용자 입력을 받을 수 있다. 일 실시 예에 따라, 데이터 공유 APP(521)를 선택하는 사용자 입력에 응답하여, 전자 장치(110)는 문서 컨텐츠(512)를 공유하기 위한 블록체인 네트워크(310)가 생성되어 있지 않은 경우, 도 3 내지 도 4를 참조하여 설명된 블록체인 네트워크(310)를 생성하는 동작을 전자 장치(110)가 수행할 수 있다. 전자 장치(110)는 문서 컨텐츠(512)를 외부 전자 장치들과 공유하기 위한 블록체인 네트워크(310)를 생성할 수 있다. 프로세서(113)는 디스플레이(114)를 통해 블록체인 네트워크(310)가 생성되었다는 안내, 즉 채널 생성 완료 안내(530)를 출력할 수 있다. 일 실시 예에서, 채널 생성 완료 안내(530)는 데이터 공유 APP를 통해 생성되었다는 안내를 더 포함할 수 있다.
도 6은 일 실시 예에 따른 SNS(social network service) 어플리케이션의 실행 중에 데이터를 공유하는 과정에서 표시되는 사용자 인터페이스의 예시를 나타내는 도면이다.
도 6을 참조하면, 일 실시 예에 따른 전자 장치(110)는 SNS APP를 실행하여 데이터 공유를 위한 블록체인 네트워크(310)를 생성할 수 있다. 예를 들어, 프로세서(113)는 SNS 어플리케이션을 실행하여, 디스플레이(114)를 통해 외부 전자 장치들의 사용자들을 나타내는 항목(611~614)을 출력할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자는 외부 전자 장치들의 사용자들(611~614) 중에서 데이터를 공유할 적어도 하나의 사용자를 선택할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 전자 장치(110)의 사용자가 선택한 데이터를 공유할 사용자들의 외부 전자 장치들을 블록체인 노드들로 포함하는 블록체인 네트워크(310)를 생성할 수 있다.
일 실시 예에 따르면, 전자 장치(110)의 사용자가 데이터를 공유할 사용자들을 선택하면, 프로세서(113)는 디스플레이(114)를 통해, 데이터를 공유할 방법을 안내할 수 있다. 예를 들어, 프로세서(113)는 디스플레이(114)를 통해 데이터 공유 APP(621) 또는 다른 APP1(622) 중에서 하나를 선택하도록 출력할 수 있다. 전자 장치(110)는 데이터 공유 APP(621)을 선택하는 사용자 입력이 수신되면, 전자 장치(110) 및 선택된 데이터를 공유할 외부 전자 장치들은 블록체인 네트워크(310)를 생성하는 동작을 수행할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 블록체인 네트워크(310)가 생성되면, 디스플레이(114)를 통해 채널 생성 완료 안내(630)를 출력할 수 있다.
다양한 실시 예들에 따르면, 전자 장치(110)는 외부 전자 장치들과 블록체인 기술에 기반하여 데이터를 공유하기 위해, 본 개시에 나타난 설명에 제한되지 않고 다양한 방법을 통해, 블록체인 네트워크(310)를 생성할 수 있다.
도 7은 일 실시 예에 따른 전자 장치의 블록체인 네트워크의 생성 동작을 나타내는 흐름도(700)이다.
일 실시 예에 따른 프로세서(113)는 동작 701에서 메모리(111)에 저장된 명령어들을 실행하여, 공개 키 및 블록체인 주소를 생성할 수 있다. 예를 들어, 프로세서(113)는 키 관리자(322)를 통해 루트 시드를 생성하고, 루트 시드에 기반하여 공개 키를 생성할 수 있다. 또한, 프로세서(113)는 키 관리자(322)를 통해 공개 키에 기반하여 블록체인 주소를 생성할 수 있다. 일 실시 예에서, 블록체인 주소로 블록체인 네트워크를 지칭할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 동작 703에서 데이터를 공유할 적어도 하나의 외부 전자 장치를 선택할 수 있다. 프로세서(113)가 선택한 적어도 하나의 외부 전자 장치들은 하나의 그룹을 이룰 수 있다. 일 실시 예에 따르면, 상기 그룹은 블록체인 네트워크에 포함된 블록체인 노드들로 포함될 수 있다.
일 실시 예에 따르면 동작 705에서 프로세서(113)는, 통신 회로(112)를 통하여 공개 키 및 블록체인 주소에 대한 정보를 포함하는 초대 URL을 동작 703에서 선택된 적어도 하나의 외부 전자 장치들로 전송할 수 있다. 일 실시 예에 따르면, 초대 URL은 데이터를 공유하기 위한 어플리케이션에 대한 초대 URL을 나타낼 수 있다. 선택된 외부 전자 장치들이 상기 초대 URL을 통해 앱 링크를 수신하고, 앱 링크를 통해 데이터를 공유하기 위한 어플리케이션을 다운로드 받을 수 있다. 일 실시 예에 따르면, 프로세서(113)는 초대 URL의 유효성을 입증하기 위해, 공개 키로 서명한 서명 데이터를 포함한 초대 URL을 선택된 적어도 하나의 외부 전자 장치로 전송할 수 있다.
일 실시 예에 따르면, 동작 707에서, 전자 장치(110)는 선택된 적어도 하나의 외부 전자 장치의 응답 메시지에 기초하여 블록체인 플랫폼(323)을 통해 적어도 하나의 외부 전자 장치를 블록체인 노드로 포함하는 블록체인 네트워크(310)를 생성할 수 있다. 예를 들어, 프로세서(113)는 통신 회로(112)를 통하여, 선택된 적어도 하나의 외부 전자 장치로부터 초대 URL에 대한 응답 메시지를 수신할 수 있다. 블록체인 플랫폼(323)은 데이터 공유에 수락하는 응답 메시지에 기반하여, 선택된 적어도 하나의 외부 전자 장치와 전자 장치(110)를 포함하는 블록체인 네트워크(310)를 생성할 수 있다. 일 실시 예에 따르면, 전자 장치(110) 및 선택된 적어도 하나의 외부 전자 장치는 블록체인 네트워크(310)에서, 블록체인 기술에 기반하여 데이터를 공유할 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 선택된 적어도 하나의 외부 전자 장치의 종류에 따라, 각각에 대응되는 복수 개의 블록체인 네트워크들을 생성할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 동작 709에서, 외부 서버에 블록체인 네트워크에 대한 정보를 저장할 수 있다. 예를 들어, 프로세서(113)는 통신 회로(112)를 통해, 외부 서버에, 블록체인 네트워크 생성 정보, 생성된 블록체인 네트워크(310)에 포함된 전자 장치 및 적어도 하나의 외부 전자 장치에 대한 정보를 저장할 수 있다. 일 실시 예에 따르면, 생성된 블록체인 네트워크(310)에 포함된 전자 장치 및 적어도 하나의 외부 전자 장치에 대한 정보는, 전자 장치들 각각의 계정 정보, 전화 번호 및/또는 장치 아이디(device ID)를 포함할 수 있다.
도 8은 복수 개의 외부 전자 장치들과 블록체인 네트워크를 생성하는 동작을 나타내는 흐름도(800)이다.
도 8을 참조하면, 프로세서(113)는 동작 801에서, 메모리(111)에 저장된 명령어들을 실행하여, 데이터를 공유하기 위한 데이터 공유 APP(321)을 실행할 수 있다. 예를 들어, 프로세서(113)는 블록체인 기술에 기반한 데이터 공유 APP(321)을 실행할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자는 데이터를 공유하고자 하는 적어도 하나의 외부 전자 장치의 사용자를 선택할 수 있다. 예를 들어, 동작 803에서, 전자 장치(110)의 사용자는 데이터를 공유할 외부 전자 장치의 사용자들 2명을 초대할 수 있다. 데이터 공유할 외부 전자 장치들 및 전자 장치(110)가 포함된 블록체인 네트워크에 초대할 수 있다. 예를 들어, 전자 장치(110)의 사용자는 프로세서(113)를 통해, 데이터 공유 APP에 대한 초대 URL을 송신함으로써, 외부 전자 장치의 사용자들 2명을 각각 초대할 수 있다.
일 실시 예에 따르면, 복수 개의 외부 전자 장치들 각각의 사용자들을 초대한 경우, 각 사용자들의 초대 수락 시기가 상이할 수 있다. 예를 들어, 초대 URL에 수락 데이터를 송신하는 시기가 외부 전자 장치들 마다 상이할 수 있다. 일 실시 예에 따르면, 동작 805에서, 2명의 초대자 중 초대자1의 초대 수락이 발생할 수 있다. 즉, 프로세서(113)가 초대자1로부터 수락 데이터를 수신할 수 있다. 일 실시 예에 따르면, 초대자 1의 초대 수락은, 초대 수락의 유효성을 입증하기 위해, 초대자 1의 개인 키로 서명한 값을 서명 데이터로 포함할 수 있다. 또한, 초대 수락의 신뢰성을 입증하기 위해, 초대자 1의 인증 키 값은 서명 데이터로 포함할 수 있다.
일 실시 예에 따르면, 동작 807에서, 블록체인 플랫폼(323)은 먼저 초대자 1이 수락 데이터를 보냈음에 기반하여, 블록체인 네트워크를 생성하고 초대자 1을 멤버로 추가할 수 있다. 즉, 블록체인 네트워크에 포함된 블록체인 노드로 초대자 1의 외부 전자 장치를 추가할 수 있다.
일 실시 예에 따르면, 블록체인 네트워크 생성 및 초대자 1 멤버 추가 동작은, 블록체인 플랫폼(323)을 통해 블록체인 네트워크를 생성하고 초대자1을 블록체인 네트워크(310)의 블록체인 노드들로 포함하도록 제1 초대 트랜잭션 생성을 요청하는 동작을 포함할 수 있다. 또한, 제1 초대 트랜잭션은 블록체인 네트워트를 생성하고 및 블록체인 네트워크(310)에 초대자1을 추가하는 제1 초대 스마트 컨트랙트를 생성하는 동작을 포함할 수 있다. 일 실시 예에 따르면, 블록체인 플랫폼(323)은 제1 초대 스마트 컨트랙트를 실행하고, 제1 초대 스마트 컨트랙트에 기초한 데이터를 월드 스테이트에 기록할 수 있다.
일 실시 예에 따르면, 동작 809에서, 초대자 1의 초대 수락과 유사하게, 초대자 1의 초대 수락이 발생할 수 있다. 즉, 전자 장치(110)가 초대자 2로부터 수락 데이터를 수신할 수 있다. 마찬가지로, 초대자 2의 수락 데이터는 유효성 및 신뢰성을 입증하기 위해, 개인 키로 서명한 서명 데이터와 인증 키로 서명한 서명 데이터를 포함할 수 있다.
일 실시 예에 따르면, 동작 811에서 블록체인 플랫폼(323)은 생성된 블록체인 네트워크에 포함된 블록체인 노드로 초대자 2를 멤버 추가할 수 있다. 일 실시 예에 따르면, 초대자2를 멤버로 추가하는 동작은, 블록체인 플랫폼(323)을 통해 초대자2를 블록체인 네트워크(310)의 블록체인 노드들로 포함하도록 제2 초대 트랜잭션 생성을 요청하는 동작을 포함할 수 있다. 또한, 제2 초대 트랜잭션은 초대자2를 추가하는 제2 초대 스마트 컨트랙트를 생성하는 동작을 포함할 수 있다. 일 실시 예에 따르면, 블록체인 플랫폼(323)은 제2 초대 스마트 컨트랙트를 실행하고, 제2 초대 스마트 컨트랙트에 기초한 데이터를 월드 스테이트에 기록할 수 있다.
일 실시 예에서, 초대자 2를 멤버 추가하는 동작에 기초하여, 초대자 1의 외부 전자 장치와 전자 장치의 사용자로 이뤄진 블록체인 네트워크에 초대자 2의 외부 전자 장치가 추가될 수 있다. 따라서, 전자 장치(110)의 사용자는 초대자 1 및 초대자 2와 데이터를 공유할 수 있다.
일 실시 예에 따르면, 동작 813에서, 전자 장치(110)는 블록체인 플랫폼(323)을 통해, 생성된 블록체인 네트워크와 블록체인 네트워크에 포함된 노드들(예: 전자 장치, 초대자 1의 외부 전자 장치, 초대자 2의 외부 전자 장치)에 대한 트랜잭션을 생성하고, 동기화된 블록을 생성하여 상기 트랜잭션을 기록할 수 있다. 블록 동기화에 대한 설명은 도 13을 참조하여 후술된다.
도 9는 일 실시 예에 따른 전자 장치가 데이터를 공유하기 위한 시스템의 구성을 설명하기 위한 도면이다.
도 9를 참조하면, 전자 장치(110)는 데이터 공유 APP(application)(1101), 키 관리자(322), 블록체인 플랫폼(323) 및 공유할 데이터와 관련된 어플리케이션(324)을 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자의 입력에 기반하여, 프로세서(113)는 메모리(111)에 저장된 어플리케이션(324)을 실행할 수 있다. 어플리케이션(324)은 공유할 수 있는 데이터를 제공할 수 있다. 예를 들어, 어플리케이션(324)은 사진, 동영상, 및/또는 문서 데이터를 제공할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자는 외부 전자 장치(120)와 공유할 데이터를 어플리케이션(324)을 통해 선택할 수 있다.
일 실시 예에 따르면, 전자 장치(110)의 사용자는 선택한 데이터를 공유할 블록체인 네트워크(310)를 선택할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 데이터 공유 APP(321)를 실행하여, 전자 장치(110)의 사용자가 블록체인 네트워크(310)를 선택하도록 제어할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자는 데이터를 공유하기 위해, 복수 개의 블록체인 네트워크들 중 적어도 하나의 블록체인 네트워크를 선택할 수 있다. 일 실시 예에 따르면, 블록체인 네트워크(310)는 도 3 내지 도 6을 참조하여 설명된 동작을 수행하여 생성될 수 있다.
일 실시 예에 따르면, 프로세서(113)는 외부 전자 장치(120)와 공유할 데이터를 전자 장치(110) 및 외부 전자 장치(120)가 모두 알고 있는 대칭 키로 암호화할 수 있다. 예를 들어, 전자 장치(110) 및 외부 전자 장치(120)는 각각 서로의 공개 키를 알 수 있다. 따라서, 프로세서(113)는 전자 장치(110)의 개인 키로 공유할 데이터를 암호화할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 데이터 공유 APP(321)을 통해서 접근할 수 있는 데이터 공유 APP(321)의 내부 저장소에 암호화된 공유할 데이터를 복사할 수 있다. 일 실시 예에서, 데이터 공유 APP(321)의 내부 저장소는 메모리(111)에 포함될 수 있다
일 실시 예에 따르면, 프로세서(113)는 통신 회로(112)를 통해 암호화된 공유할 데이터를 서버(300)에 업로드 할 수 있다. 따라서, 전자 장치(110)의 사용자에 의해 선택된 블록체인 네트워크(310)에 포함된 외부 전자 장치(120)의 사용자는 서버(300)를 통해 암호화된 공유할 데이터에 접근할 수 있다.
일 실시 예에 따르면, 전자 장치(110)는 블록체인 플랫폼(323)을 통해서 블록체인 네트워크(310)에 공유할 데이터에 대한 상세 정보가 담긴 제2 트랜잭션을 생성할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자는 블록체인 플랫폼(323)을 통해, 공유할 데이터의 접근 권한을 제어하는 제2 트랜잭션을 생성할 수 있다. 예를 들어, 전자 장치(110)는 블록체인 플랫폼(323)을 통해, 데이터 읽기, 삭제, 접근 만료 기한 및/또는 수정을 제어하는 제2 트랜잭션을 생성할 수 있다. 일 실시 예에 따르면, 제2 트랜잭션은 데이터 공유에 대한 상세 정보가 담긴 제2 계약(예: 제2 스마트 컨트랙트)을 생성할 수 있다. 일 실시 예에 따르면, 제2 계약은 다양한 데이터를 포함할 수 있다. 예를 들어, 데이터 공유에 대한 고유 ID, 데이터 공유 블록체인 네트워크 ID, 데이터 암호화 시 사용한 대칭 키, 데이터를 보내는 사람의 주소(제2 트랜잭션 생성자), 데이터를 받는 사람의 주소, 데이터 다운로드 주소를 대칭 키로 암호화한 데이터, 데이터 이름, 데이터 권한, 데이터 공유 시간, 데이터 접근 만료 기간 및/또는 공유된 데이터의 상태(예: 삭제, 손상 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예들에 따르면, 제2 계약은 상기 설명된 데이터뿐 아니라 다양한 데이터를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 제2 트랜잭션을 만든 자, 즉 전자 장치(110)의 사용자의 개인 키로 키 관리자(322)를 통해 전자 서명할 수 있다. 예를 들어, 프로세서(113)는 키 관리자(322)를 통해 전자 장치(110) 사용자의 개인 키로 제2 트랜잭션 해시를 서명하여, 제2 트랜잭션 서명 데이터에 추가할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 제2 트랜잭션의 신뢰성을 입증하기 위해, 키 관리자(322)를 통해 전자 장치(110) 사용자의 인증 키로 전자 서명할 수 있다. 일 실시 예에 따르면, 인증 키는 도3을 참조하여 설명된 인증 키에 해당될 수 있다. 일 실시 예에 따르면, 프로세서(113)는 키 관리자(322)를 통해, 전자 장치(110) 사용자의 인증 키로 제2 트랜잭션 해시를 서명하여, 제2 트랜잭션 서명 데이터에 추가할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 데이터 공유 APP(321)을 실행하여, 블록체인 플랫폼(323)을 통해 제2 트랜잭션 및 제2 계약에 기반한 제안 블록을 생성하고, 제안 블록에 대한 유효성을 검사할 수 있다. 블록체인 플랫폼(323)은 블록을 동기화할 수 있고, 블록을 받은 블록 수신자는 블록체인 플랫폼(333)을 통해, 블록이 유효한지 검사할 수 있다. 블록을 검증하고 동기화 하는 것에 대한 설명은 도 13을 참조하여 후술된다.
일 실시 예에 따르면, 데이터를 공유 받는 외부 전자 장치(120)의 블록체인 플랫폼(333)은 블록체인 네트워크(310)에 생성된 제2 트랙잭션에 기반한 제2 계약을 수행할 수 있다. 제2 계약이 수행되면, 블록체인 플랫폼(333)은 블록체인 네트워크(310)의 원장의 월드 스테이트에 제2 계약에 대한 월드 스테이트 데이터를 기록할 수 있다. 일 실시 예에 따르면, 통신 회로(122)는 서버(300)를 통해, 암호화된 공유할 데이터를 다운로드 할 수 있다. 일 실시 예에서, 프로세서(123)는 암호화된 데이터를 내부 저장소에 저장할 수 있다. 일 실시 예에서, 내부 저장소는 데이터 공유 APP(331)을 통해서 접근할 수 있는 데이터 공유 APP(331)의 내부 저장소를 나타낼 수 있다. 일 실시 예에서, 데이터 공유 APP(331)의 내부 저장소는 메모리(121)에 포함될 수 있다.
일 실시 예에 따르면, 외부 전자 장치(120)의 사용자는 서버(300)로부터 다운로드 된 암호화된 데이터에 접근할 수 있다. 일 실시 예에서, 데이터 공유 APP(331)은 외부 전자 장치(120)의 사용자가 접근하면, 암호화된 데이터를 복호화할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(120)의 사용자는 전자 장치(110)의 사용자의 공개 키로 암호화된 데이터를 복호화할 수 있다. 본 개시에서는 설명의 편의를 위해, 공유할 데이터가 데이터를 공유한 전자 장치(110)의 사용자의 공개 키로 암호화 된 것을 예시하였지만, 데이터를 공유 받는 외부 전자 장치(120)와 데이터를 공유할 전자 장치(110)가 모두 알고 있는 대칭 키라면 제한되지 않고 이용될 수 있다.
일 실시 예에 따르면, 블록체인 플랫폼(333)은 데이터를 공유 받은 외부 전자 장치(120)의 사용자가 공유된 데이터 열람 시 데이터 열람에 대한 제3 트랜잭션을 생성할 수 있다. 일 실시 예에 따르면, 제3 트랜잭션은 데이터 열람에 대한 정보가 담긴 제3 계약(예: 제3 스마트 컨트랙트)을 생성할 수 있다. 일 실시 예에 따르면, 제3 계약은 다양한 데이터를 포함할 수 있다, 예를 들어, 데이터를 열람한 사람의 주소, 데이터를 공유한 블록체인 네트워크 ID, 공유된 데이터에 대한 고유 ID 및/또는 데이터를 열람한 시간 중 적어도 하나를 포함할 수 있다. 다양한 실시 예들에 따르면, 제3 계약은 상기 설명된 데이터뿐 아니라 다양한 데이터를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(123)는 키 관리자(332)를 통해, 제3 트랜잭션을 생성한 외부 전자 장치(120)의 사용자의 개인 키로 전자 서명할 수 있다. 예를 들어, 외부 전자 장치(120) 사용자의 개인 키로 제3 트랜잭션 해시를 서명하여, 제3 트랜잭션 서명 데이터에 추가할 수 있다.
일 실시 예에 따르면, 프로세서(123)는 제3 트랜잭션의 신뢰성을 입증하기 위해, 키 관리자(332)를 통해 외부 전자 장치(120) 사용자의 인증 키로 전자 서명할 수 있다. 일 실시 예에 따르면, 프로세서(123)는 키 관리자(332)를 통해, 외부 전자 장치(120) 사용자의 인증 키로 제3 트랜잭션 해시를 서명하여, 제3 트랜잭션 서명 데이터에 추가할 수 있다.
일 실시 예에 따라, 프로세서(123)는 데이터 공유 APP(331)을 실행하여, 블록체인 플랫폼(333)을 통해, 제3 트랜잭션 및 제3 계약에 기반한 제안 블록을 생성하고, 제안 블록에 대한 유효성을 검사할 수 있다. 블록체인 플랫폼(333)은 블록을 동기화할 수 있고, 블록을 받은 블록 수신자는 블록체인 플랫폼(323)을 통해, 블록이 유효한 지 검사할 수 있다. 블록을 검증하고 동기화 하는 것에 대한 설명은 도 13을 참조하여 후술된다.
일 실시 예에 따른 전자 장치(110)의 블록체인 플랫폼(323)은 블록체인 네트워크(310)에 생성된 제3 트랙잭션에 기반한 제3 계약을 수행할 수 있다. 제3 계약이 수행되면, 블록체인 플랫폼(323)은 블록체인 네트워크(310)의 원장의 월드 스테이트에 제3 계약에 대한 월드 스테이트 데이터를 기록할 수 있다. 일 실시 예에서, 데이터를 공유한 전자 장치(110)의 사용자는 데이터 공유 APP(321)를 이용해, 제3 계약에 대한 데이터에 기반하여 데이터를 공유 받은 외부 전자 장치(120)의 사용자가 데이터를 열람했음을 확인할 수 있다.
본 개시는 설명의 편의를 위해, 블록체인 네트워크(310)에 포함된 전자 장치(110)의 사용자가 데이터를 공유하는 것을 가정하여 설명하였지만, 외부 전자 장치(120)가 데이터를 공유할 수 있다. 외부 전자 장치(120)가 데이터를 공유하는 경우, 제2 트랜잭션의 생성은 외부 전자 장치(120)의 블록체인 플랫폼(333)이 수행할 수 있다. 또한, 외부 전자 장치(120)의 사용자의 개인 키로 제2 트랜잭션을 전자 서명할 수 있다. 반대로, 제3 트랜잭션의 생성은 전자 장치(110)의 블록체인 플랫폼(323)이 수행할 수 있다. 또한, 전자 장치(110)의 사용자의 개인 키로 제3 트랜잭션을 전자 서명할 수 있다.
도 10은 일 실시 예에 따른 전자 장치의 데이터 공유 동작을 나타내는 흐름도(1000)이다.
일 실시 예에 따른 도 1을 참조하여 설명된 전자 장치의 사용자는 동작 1001에서, 도 1을 참조하여 설명된 외부 전자 장치의 사용자와 공유하고자 하는 공유 파일을 선택할 수 있다. 다양한 실시 예에서, 공유 파일은 다양한 형태의 데이터일 수 있다. 예를 들어, 공유 파일은 사진, 동영상 및/또는 문서를 포함할 수 있다.
일 실시 예에 따른 전자 장치의 사용자는 동작 1003에서, 도 3을 참조하여 설명된 데이터 공유 APP을 통해 데이터를 공유할 외부 전자 장치를 선택할 수 있다. 다양한 실시 예에서, 전자 장치의 사용자는 복수 개의 외부 전자 장치들을 선택할 수 있다. 일 실시 예에 따르면, 데이터를 공유할 외부 전자 장치를 선택하는 것은 전자 장치 및 데이터를 공유할 외부 전자 장치가 블록체인 노드로 포함된 블록체인 네트워크를 선택하는 것을 나타낼 수 있다. 일 실시 예에 따르면, 전자 장치의 사용자는 데이터를 공유할 적어도 하나의 외부 전자 장치가 블록체인 노드로 포함된 블록체인 네트워크가 이미 생성된 경우, 동작 1003에서, 블록체인 네트워크를 선택할 수 있다. 다른 실시 예에 따르면, 전자 장치는 전자 장치의 사용자가 데이터를 공유할 적어도 하나의 외부 전자 장치가 블록체인 노드로 포함된 블록체인 네트워크가 생성되어 있지 않은 경우, 도 3을 참조하여 설명된 동작을 수행하여 블록체인 네트워크를 생성할 수 있다.
일 실시 예에 따르면, 도 3을 참조하여 설명된 블록체인 플랫폼은 동작 1005에서, 전자 장치 및 데이터를 공유할 외부 전자 장치가 블록체인 노드들로 포함된 블록체인 네트워크(블록체인 채널)에 파일을 공유하고, 파일 공유 트랜잭션 및 블록을 생성할 수 있다. 파일 공유 트랜잭션은 도 9를 참조하여 설명된 제2 트랜잭션을 나타낼 수 있다.
일 실시 예에 따르면, 블록체인 플랫폼은 동작 1007에서, 데이터를 공유할 외부 전자 장치의 사용자를 블록체인 네트워크(채널)에 멤버로 추가하고, 공유된 파일에 관련된 권한을 주는 트랜잭션을 생성하고 트랜잭션에 기반한 블록을 생성할 수 있다. 예를 들어, 블록체인 플랫폼은 공유된 파일에 열람 만료 시간, 재 공유 권한 등을 트랜잭션으로 생성할 수 있다.
일 실시 예에서, 블록체인 플랫폼은 동작 1009에서, 생성한 블록을 동기화 하고, 생성한 블록에 기반하여 스마트 컨트랙트를 실행할 수 있다. 일 실시 예에 따르면, 스마트 컨트랙트는 블록체인 네트워크에 포함된 블록체인 노드들의 합의 알고리즘에 기반하여 실행될 수 있다.
일 실시 예에 따르면, 블록체인 플랫폼은 동작 1011에서, 전자 장치가 파일을 공유한 블록체인 네트워크(채널)의 블록체인 원장에 블록을 기록하고, 월드 스테이트에 트랜잭션 및 스마트 컨트랙트에 대한 데이터를 기록할 수 있다.
도 11은 일 실시 예에 따른 전자 장치의 공유된 데이터에 대한 권한을 변경하는 동작을 나타내는 흐름도(1100)이다.
도 11을 참조하면, 동작 1101에서, 도 3을 참조하여 설명된 전자 장치의 사용자는 도 3을 참조하여 설명된 데이터 공유 APP을 통해 공유된 파일 중 권한을 변경하고자 하는 파일을 선택할 수 있다. 예를 들어, 전자 장치의 사용자는 공유된 파일과 관련한 외부 전자 장치의 권한을 회수하거나 수정하고자 하는 파일을 선택할 수 있다. 일 실시 예에서, 전자 장치의 사용자는 동작 1103에서, 선택된 파일의 접근 권한을 수정할 수 있다. 예를 들어, 전자 장치의 사용자는 선택된 파일에 대한 외부 전자 장치의 접근을 금지하거나, 파일 접근 만료 기한을 재설정 할 수 있다.
일 실시 예에 따르면, 도 3을 참조하여 설명된 전자 장치의 블록체인 플랫폼은 동작 1105에서, 파일 권한 변경에 대한 트랜잭션을 생성할 수 있다. 블록체인 플랫폼은 동작 1105에서, 상기 트랜잭션에 기반하여 스마트 컨트랙트를 생성할 수 있다. 일 실시 예에 따르면, 스마트 컨트랙트 데이터는 공유한 파일에 대한 고유 ID, 파일 공유 블록체인 네트워크(블록체인 채널), 파일 접근 권한과 관련된 데이터를 포함할 수 있다. 일 실시 예에 따르면, 블록체인 플랫폼은 파일 권한 변경 트랜잭션에서, 공유한 파일의 암호화 시 사용한 대칭키를 널(null) 값으로 전달하여 공유한 파일을 복호화하지 못하도록 제어할 수 있다.
일 실시 예에 따르면, 도 3을 참조하여 설명된 전자 장치의 프로세서는 도 3을 참조하여 설명된 키 관리자를 통해 파일 권한 변경 트랜잭션을 생성한 전자 장치의 사용자의 개인 키로 트랜잭션 해시를 서명하여 트랜잭션 서명 데이터에 추가할 수 있다. 또한, 전자 장치의 프로세서는 키 관리자를 통해 파일 권한 변경 트랜잭션의 신뢰성을 입증하기 위해, 전자 장치의 사용자의 인증 키 트랜잭션 해시를 서명하여 트랜잭션 서명 데이터에 추가할 수 있다.
일 실시 예에서, 블록체인 플랫폼은 동작 1107에서, 파일 권한 변경 트랜잭션에 기반하여 블록을 생성하고, 동기화할 수 있다. 또한, 블록체인 플랫폼은 파일 권한 변경 트랜잭션에 기반하여 스마트 컨트랙트를 실행할 수 있다. 일 실시 예에 따르면, 블록체인 플랫폼은 동작 1107에서, 파일 권한 변경 트랜잭션을 실행하여 스마트 컨트랙트를 실행하고, 스마트 컨트랙트의 수행 결과를 기록할 수 있다. 일 실시 예에 따르면, 동작 1111에서, 블록체인 플랫폼은 권한이 변경된 파일이 공유되었던 블록체인 네트워크의 블록체인 원장에 파일 권한 변경 트랜잭션에 기반한 블록을 기록하고, 스마트 컨트랙트 데이터를 월드 스테이트에 기록할 수 있다.
도 12는 일 실시 예에 따른 전자 장치의 블록체인 네트워크 생성 여부를 결정하는 동작을 나타내는 흐름도(1200)이다.
도 12를 참조하면, 동작 1201에서, 도3을 참조하여 설명된 전자 장치의 사용자는 데이터를 공유할 외부 전자 장치들을 선택할 수 있다. 데이터를 공유할 외부 전자 장치들을 선택하는 방법은 도 4 내지 도 6을 참조하여 설명된 다양한 방법 중 한가지를 포함할 수 있다. 일 실시 예에 따르면, 동작 1203에서, 프로세서는 선택된 외부 전자 장치들과 동일한 외부 전자 장치들에 기반한 블록체인 네트워크가 이미 존재하는지 판단할 수 있다. 즉, 데이터를 공유하기 위해, 도 3을 참조하여 설명된 데이터 공유 APP를 통한 블록체인 네트워크를 생성하기 전 이미 블록체인 네트워크가 존재하는지 판단할 수 있다. 예를 들어, 프로세서는, 선택된 외부 전자 장치들에 대한 초대 동작을 거치면서 공유된 제네시스 블록(genesis block)에 기초하여 블록체인 플랫폼에 저장된 채널 정보를 통해 블록체인 네트워크가 이미 존재하는지 판단할 수 있다. 일 실시 예에서, 제네시스 블록은 블록체인 네트워크 생성 즉 채널 생성 블록으로, 블록체인 네트워크에서 생성된 첫번째 블록을 나타낼 수 있다.
일 실시 예에 따르면, 프로세서는 전자 장치 및 선택된 외부 전자 장치들을 블록체인 노드들로 포함하는 블록체인 네트워크가 이미 존재하는 경우, 동작 1211에서, 공유하고자 하는 데이터를 상기 존재하는 블록체인 네트워크에 공유할 수 있다.
일 실시 예에 따르면, 블록체인 네트워크가 존재하지 않는 경우, 동작 1205에서, 프로세서는 공개 키 및 블록체인 주소에 대한 정보를 포함하는 초대 URL을 외부 전자 장치로 도 3을 참조하여 설명된 서버를 통해 전송할 수 있다. 일 실시 예에 따르면, 도 3을 참조하여 설명된 전자 장치의 키 관리자를 통해 전자 장치 사용자의 공개 키를 생성하고, 공개 키에 기반하여 블록체인 주소를 생성할 수 있다. 일 실시 예에 따르면, 블록체인 네트워크는 블록체인 주소를 이용해 지칭될 수 있다.
일 실시 예에 따르면, 동작 1207에서, 전자 장치의 블록체인 플랫폼은 외부 전자 장치들의 응답 메시지에 기초하여 외부 전자 장치들을 노드들로 포함하는 블록체인 네트워크를 도 3을 참조하여 설명된 동작을 수행함으로써 생성할 수 있다. 일 실시 예에 따르면, 초대 URL을 수신한 외부 전자 장치들의 각각의 사용자들은 전자 장치의 사용자와 데이터를 공유하고자 하는 경우, 수락 데이터를 포함한 응답 메시지를 전자 장치에 송신할 수 있다. 일 실시 예에서, 응답 메시지는 도 3을 참조하여 설명된 수락 데이터를 나타낼 수 있다.
일 실시 예에 따르면, 동작 1209에서, 프로세서는 도 1을 참조하여 설명된 통신 회로를 통해, 외부 서버에 블록체인 네트워크에 대한 정보를 저장할 수 있다. 일 실시 예에서, 블록체인 네트워크에 대한 정보는, 블록체인 네트워크를 통해 데이터를 공유하도록 참여한 외부 전자 장치들 각각의 사용자들에 대한 정보, 블록체인 네트워크(블록체인 채널) ID, 블록체인 주소 중 적어도 하나를 포함할 수 있다.
일 실시 예에 따르면, 프로세서는 전자 장치 및 선택된 외부 전자 장치들을 블록체인 노드들로 포함하는 블록체인 네트워크가 생성되었으므로, 동작 1211에서, 공유하고자 하는 데이터를 상기 존재하는 블록체인 네트워크에 공유할 수 있다.
도 13은 일 실시 예에 따른 블록체인 플랫폼을 통한 블록의 검증 및 블록 동기화 동작을 설명하기 위한 도면이다.
도 13을 참조하면, 블록 공유 시스템(1300)은 블록을 생성하는 블록 생성자(110)와 생성된 블록을 블록체인 네트워크 상에서 수신하는 블록 수신자(120)를 포함할 수 있다. 블록 생성자(110) 및 블록 수신자(120)는 생성된 블록의 종류에 따라, 전자 장치(110) 또는 외부 전자 장치(120)에 해당할 수 있다. 일 실시 예에 따르면, 블록 생성자(110)는 데이터 공유 APP(321) 및 블록체인 플랫폼(3232)을 포함할 수 있다. 마찬가지로, 블록 수신자(120)는 데이터 공유 APP(331) 및 블록체인 플랫폼(333)을 포함할 수 있다.
일 실시 예에 따르면, 블록 공유 시스템(1300)은 블록체인 네트워크를 생성하고, 블록체인 네트워크에 대한 정보를 저장하고, 블록체인 네트워크에 포함된 블록체인 노드들을 추가하는 과정과, 데이터 공유 및 데이터에 대한 권한을 회수하는 과정에서 발생하는 블록을 공유하는 시스템을 나타낸다. 일 실시 예에 따르면, 블록 공유 시스템(1300)은 블록 생성자(110)가 제안 블록을 생성하여 블록 수신자(120)에게 블록이 유효한 지 검증을 받은 후 블록을 동기화 하는 과정을 포함할 수 있다. 블록 수신자(120)는 다시 블록이 유효한 지 확인 후 블록의 트랜잭션을 수행하여 블록체인 네트워크에 포함된 원장의 월드 스테이트에 트랜잭션 데이터를 반영할 수 있다. 일 실시 예에서, 블록 공유 시스템(1300)의 블록 생성자(110) 및 블록 수신자(120)는 블록체인 네트워크를 생성하는 과정에서 서로의 공개 키의 정보를 알고 있다.
일 실시 예에 따르면, 데이터 공유 APP(321)는 블록체인 플랫폼(323)에 블록 생성 요청(1311)할 수 있다. 일 실시 예에서, 블록은 다양한 종류의 트랜잭션에 기반한 블록을 나타낼 수 있다. 예를 들어, 데이터 공유 APP(321)를 통해 데이터를 공유했던 사용자가 공유된 데이터의 권한을 회수하기 위한 파일 권한 변경 트랜잭션을 생성한 경우, 파일 권한 변경 트랜잭션에 기반하여 블록체인 플랫폼(323)에 블록 생성 요청(1311)을 할 수 있다.
일 실시 예에 따르면, 블록체인 플랫폼(323)은 이전 블록의 해시 값을 블록에 연결(1312)할 수 있다. 일 실시 예에서, 이전 블록의 해시 값을 제안 블록의 이전 해시 값에 기록할 수 있다. 일 실시 예에 따르면, 해시 값은 해시 함수를 이용해 생성된 해시 값을 나타낼 수 있다.
일 실시 예에서, 블록체인 플랫폼(323)은 생성 요청된 제안 블록의 트랜잭션으로 스마트 컨트랙트를 수행하여 월드 스테이트 데이터 해시를 계산(1313)할 수 있다. 예를 들어, 블록체인 플랫폼(323)은 제안 블록에 있는 트랜잭션을 실행하여 트랜잭션에 기반한 스마트 컨트랙트를 수행한 후의 월드 스테이트 데이터의 해시를 계산하여 제안 블록에 기록할 수 있다.
일 실시 예에서, 블록 생성자(110)는 블록체인 플랫폼(323)을 통해 블록 수신자(120)에게 생성 요청된 제안 블록의 검증을 요청(1314)할 수 있다. 일 실시 예에 따르면, 블록 수신자(120)는 데이터 공유 APP(331)를 실행하여, 생성 요청된 제안 블록에 포함된 인증 체인과 전자 서명 데이터를 확인하여 인증동작을 수행할 수 있다. 즉, 데이터 공유 APP(331)은 블록의 인증 키 서명을 확인(1315)하여 신뢰성 있는 장치 및 어플리케이션임을 확인할 수 있다.
일 실시 예에서, 블록 수신자(120)는 자신이 알고 있는 블록 생성자(110)의 공개 키로 제안 블록을 복호화 하여 블록 생성자(110)를 검증할 수 있다. 즉, 데이터 공유 APP(331)블록을 공유하는 사람의 개인 키로 암호화된 제안 블록을 공유하는 사람의 공개 키로 검증(1316)하여 블록을 공유한 사람을 검증할 수 있다.
일 실시 예에 따르면, 데이터 공유 APP(331)은 블록체인 플랫폼(333)에 제안 블록의 이전 해시 값을 통해 블록 수신자(120)가 블록체인 네트워크 상에서 마지막으로 가지고 있는 블록과 일치하는지 확인을 요청할 수 있다. 데이터 공유 APP(331)은 블록체인 플랫폼(333)에 블록의 이전 해시 값 검증(1317)을 요청하고, 블록체인 플랫폼(333)은 검증 동작을 수행한 후 응답할 수 있다.
일 실시 예에서, 블록체인 플랫폼(333)은 제안 블록의 트랜잭션을 실행하여 스마트 컨트랙트를 수행한 후, 월드 스테이트의의 해시 값과 제안 블록의 월드 스테이트 해시 값이 동일한지 확인할 수 있다. 일 실시 예에서, 블록 수신자(120)는 제안 블록이 검증되었음을 블록 생성자(110)에게 응답(1318)할 수 있다.
블록 수신자(120)의 응답에 기반하여, 블록 생성자(110)를 통해 생성 요청된 제안 블록은 동기화(1319)될 수 있다. 일 실시 예에서, 블록 수신자(120)의 블록체인 플랫폼(333)은 검증된 제안 블록의 트랜잭션을 미리 실행하여 월드 스테이트 해시 값을 검증(1320)할 수 있다. 예를 들어, 공유 받은 제안 블록으로 트랜잭션을 실행하여 트랜잭션에 기반한 스마트 컨트랙트를 수행하고, 스마트 컨트랙트 수행 후의 월드 스테이트에 해시 값과 제안 블록의 월드 스테이트 해시 값이 동일한 지 확인할 수 있다. 일 실시 예에서, 스마트 컨트랙트 수행 후의 월드 스테이트의 해시 값과 제안 블록의 월드 스테이트 해시 값이 동일하면, 제안 블록이 유효한 블록임이 검증될 수 있다. 일 실시 예에서, 블록 수신자(120)는 유효한 블록의 트랜잭션을 실행하여 스마트 컨트랙트를 수행하고, 스마트 컨트랙트 결과 데이터를 월드 스테이트에 기록할 수 있다.
도 14는 일 실시 예에 따른 전자 장치의 데이터 공유 사용자 인터페이스를 나타내는 도면이다.
도 14를 참조하면, 데이터를 공유하고자 하는 전자 장치(110)의 사용자는 사진을 촬영할 수 있다. 프로세서(113)는 디스플레이(114)를 통해 촬영된 사진(1410)을 표시할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자는 촬영된 사진(1410)을 갤러리(gallery) 어플리케이션을 실행하여 디스플레이(114)를 통해 확인할 수 있다. 일 실시 예에서, 전자 장치(110)의 사용자는 갤러리 어플리케이션을 실행하여, 적어도 하나의 외부 전자 장치 사용자와 공유하고자 하는 사진 데이터를 선택할 수 있다. 예를 들어, 전자 장치(110)의 사용자는 촬영된 사진(1410)을 공유할 사진 데이터로 선택할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 디스플레이(114)를 통해, 촬영된 사진(1410)을 공유할 대상을 선택할 수 있다. 예를 들어, 도 3을 참조하여 설명된 데이터 공유 APP(321)을 통해 블록체인 네트워크(310)에서 데이터를 공유할 외부 전자 장치의 사용자를 선택할 수 있다. 다양한 실시 예들에 따르면, 프로세서(113)는 데이터를 공유할 상대방에 대한 정보를 다양한 식별자를 이용하여 디스플레이(114)를 통해 표시할 수 있다. 예를 들어, 식별자는 이름, 전화번호, 주소 및/또는 별명을 포함할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 디스플레이(114)를 통해 표시된 정보가 캡쳐 되지 않도록 제어할 수 있다. 즉, 프로세서(113)는 데이터를 공유할 상대방에 대한 정보는 보안 정보로 판단하고, 디스플레이(114)에 표시된 정보가 유출되지 않도록 캡쳐 동작을 제어할 수 있다.
일 실시 예에 따르면, 전자 장치(110)의 사용자가 촬영된 사진(1410)을 공유할 상대방(1430)을 선택하면, 프로세서(113)는 초대 URL이 포함된 초대 메시지(1440)를 생성할 수 있다. 일 실시 예에서, 초대 메시지(1440)에 포함된 초대 URL은 전자 장치(110) 사용자의 개인 키 및 인증 키로 전자 서명한 서명 데이터를 포함할 수 있다. 또한, 초대 URL은 초대 ID, 전자 장치(110) 사용자의 공개 키 및 주소를 포함할 수 있다. 다른 실시 예에 따르면, 이미 공유할 상대방(1430)과 데이터를 공유할 수 있는 블록체인 네트워크(310)가 생성되어 있는 경우, 초대 메시지(1440)를 생성하고, 송신하는 동작은 생략될 수 있다. 일 실시 예에서, 프로세서(113)는 디스플레이(114)를 통해, 생성된 초대 메시지(1440)를 출력할 수 있다.
일 실시 예에 따르면, 초대 메시지(1440)에 대한 공유할 상대방(1430)의 응답에 기반하여, 블록체인 네트워크가 생성될 수 있다. 일 실시 예에서, 프로세서(113)는 서버(300)를 통해 촬영된 사진(1410)을 공유할 수 있다. 따라서, 프로세서(113)는 디스플레이(114)를 통해, 촬영된 사진(1410)이 공유할 상대방(1430)과 공유되었음을 나타내는 공유 완료 알림(1450)을 출력할 수 있다.
도 15는 일 실시 예에 따른 데이터를 공유 받은 전자 장치의 사용자 인터페이스를 나타내는 도면이다.
도 15를 참조하면, 전자 장치(110)의 사용자는 외부 전자 장치(120)로부터 데이터를 공유 받을 수 있다. 일 실시 예에 따르면, 전자 장치(110)는 외부 전자 장치(120)로부터 도 3을 참조하여 설명된 데이터 공유 APP(321)을 통한 데이터를 공유 초대 메시지를 수신할 수 있다. 프로세서(113)는 디스플레이(114)를 통해, 초대 URL(1510)이 포함된 초대 메시지를 표시할 수 있다. 다양한 실시 예들에 따르면, 초대 URL(1510)은 다양한 형태에 기반하여 수신될 수 있다. 예를 들어, 초대 URL(1510)은 초대 메시지뿐 아니라 데이터 공유 APP(321)을 통한 알림의 형태에 기반하여 수신될 수 있다.
일 실시 예에 따르면, 프로세서(113)는 초대 URL(1510)를 통해, 데이터 공유 APP(321)을 실행하여 공유된 데이터(1520)를 확인할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 디스플레이(114)를 통해, 공유된 데이터(1520)를 표시할 수 있다. 일 실시 예에서, 도 3을 참조하여 설명된 블록체인 플랫폼(323)은 공유된 데이터(1520) 열람에 관한 트랜잭션을 생성할 수 있다.
도 16은 일 실시 예에 따른 공유된 데이터의 권한을 설정하는 사용자 인터페이스를 나타내는 도면이다.
도 16을 참조하면, 데이터를 공유하려고 하는 전자 장치(110)의 사용자는 공유하고자 하는 파일 및 사진(1610)을 선택할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 도 3을 참조하여 설명된 데이터 공유 APP(321)을 실행하여, 디스플레이(114)를 통해 파일 및 사진(1610)을 출력할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 데이터 공유 APP(321)에 기반하여 생성된 데이터를 공유할 수 있는 복수 개의 블록체인 네트워크들(블록체인 채널들)을 출력할 수 있다. 일 실시 예에서, 데이터를 공유하고자 하는 상대방과 생성된 블록체인 네트워크가 이미 존재하는 경우, 전자 장치(110)의 사용자는 복수 개의 블록체인 네트워크들(1622~1624) 중에서 하나의 블록체인 네트워크를 선택할 수 있다. 다른 실시 예에서, 데이터를 공유하고자 하는 상대방과 생성된 블록체인 네트워크가 존재하지 않는 경우, 전자 장치(110)의 사용자는 디스플레이(114)를 통해 표시된 채널 생성하기(1625)를 선택할 수 있다. 사용자가 채널 생성하기(1625)를 선택하면, 프로세서(113)는 도 3을 참조하여 설명된 블록체인 플랫폼(323)을 통해 블록체인 네트워크를 생성할 수 있다.
일 실시 예에 따르면, 전자 장치(110)의 사용자는 데이터를 공유할 블록체인 네트워크를 선택하고, 디스플레이(114)를 통해 표시된 전송 (1621)을 선택할 수 있다. 일 실시 예에서, 프로세서(113)는 공유하고자 하는 사진 및 파일(1610)을 선택된 블록체인 네트워크를 통해 상대방에게 전송할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 전자 장치(110)의 사용자가 공유될 사진 및 파일(1610)의 권한을 설정하도록 디스플레이(114)를 통해 표시들(1631~1635)을 출력할 수 있다. 일 실시 예에서, 전자 장치(110)의 사용자는 공유될 사진 및 파일(1610)의 권한 설정 표시들(1632~1635) 중에서 선택하여, 권한을 설정하고 완료 표시(1631)를 선택함으로써, 공유될 사진 및 파일(1610)의 권한을 설정할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자는 설정된 권한에 기반하여 블록체인 플랫폼(323)을 통해 권한 설정 트랜잭션을 생성하고 도 11을 참조하여 설명된 권한 변경 동작을 수행함으로써, 블록체인 네트워크(310)에서 공유된 파일의 권한을 제어할 수 있다.
다양한 실시 예들에 따르면, 파일 및 사진(1610)을 공유한 전자 장치(110)의 사용자는, 파일을 공유할 때, 파일이 이미 공유된 후 관계없이, 원하는 시기에 공유된 파일에 대한 권한을 변경할 수 있다.
도 17은 일 실시 예에 따른 데이터 공유 어플리케이션을 통해 공유된 파일의 파일 정보 사용자 인터페이스를 나타내는 도면이다.
도 17을 참조하면, 프로세서(113)는 도 3을 참조하여 설명된 데이터 공유 APP(321)을 실행하여 디스플레이(114)를 통해, 데이터 공유 APP(321)를 통해 공유하거나 공유 받은 공유 파일 리스트를 출력할 수 있다.
일 실시 예에 따르면, 디스플레이(114)는 공유 파일들의 간단한 요약 내용, 공유 파일 이름, 공유 파일에 대한 마지막 수정 정보 및/또는 공유 파일 용량을 포함하여 공유 파일 리스트를 표시할 수 있다.
일 실시 예에 따르면, 전자 장치(110)의 사용자는 공유 파일 리스트에서 정보를 열람하고자 하는 파일을 선택할 수 있다. 예를 들어, 전자 장치(110)의 사용자는 디스플레이(114)를 통해, 제1 공유 파일(1710)을 선택함으로써, 제1 공유 파일의 파일 정보를 확인할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 전자 장치(110)의 사용자가 정보를 확인하고자 하는 파일의 파일 정보를 디스플레이(114)를 통해 출력할 수 있다. 예를 들어, 프로세서(113)는 디스플레이(114)를 통해, 제1 공유 파일에 대한 파일 정보(1720)를 출력할 수 있다.
다양한 실시 예들에 따르면, 파일 정보(1720)는 공유 파일에 대한 다양한 정보를 포함할 수 있다. 예를 들어, 파일 정보(1720)는 파일 이름, 파일 타입, 파일 썸네일, 파일을 공유한 블록체인 네트워크의 주소, 파일 수인인 이름, 파일 공유 유효기간 및/또는 파일의 권한 회수 시기를 포함할 수 있다.
도 18은 일 실시 예에 따른 데이터 공유 어플리케이션을 통해 공유된 파일의 권한 변경 사용자 인터페이스를 나타내는 도면이다.
도 18을 참조하면, 프로세서(113)는 도 3을 참조하여 설명된 데이터 공유 APP(321)을 실행하여 디스플레이(114)를 통해, 데이터 공유 APP(321)를 통해 공유하거나 공유 받은 공유 파일 리스트를 출력할 수 있다.
일 실시 예에 따르면, 디스플레이(114)는 공유 파일들의 간단한 요약 내용, 공유 파일 이름, 공유 파일에 대한 마지막 수정 정보 및/또는 공유 파일 용량을 포함하여 공유 파일 리스트를 표시할 수 있다. 일 실시 예에 따르면, 디스플레이(114)는 공유 파일 리스트에서, 권한이 삭제되어 열람할 수 없는 파일에 대하여 표시할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 디스플레이(114)를 통해, 권한이 회수되어 열람할 수 없는 파일(1811) 및 열람 가능한 파일(1812)을 모두 포함하는 공유 파일 리스트를 출력할 수 있다.
일 실시 예에 따르면, 전자 장치(110)의 사용자는 공유 파일 리스트에서 정보를 열람하고자 하는 파일을 선택할 수 있다. 예를 들어, 전자 장치(110)의 사용자는 디스플레이(114)를 통해, 열람할 수 없는 파일(1811)을 선택함으로써, 열람할 수 없는 파일(1811)의 제1 파일 정보(1821)를 확인할 수 있다. 일 실시 예에 따르면, 제1 파일 정보(1821)는 다양한 정보를 포함할 수 있다. 예를 들어, 제1 파일 정보(1821)는 파일 이름, 파일 타입, 파일 썸네일, 파일을 공유한 블록체인 네트워크의 이름, 파일 송신인, 파일 수신인, 파일 수신인의 열람 권한, 공유 유효기간, 파일 수신인의 삭제 권한, 암호파일의 변경 권한 및/또는 파일 공유 일자를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자는 디스플레이(114)에 표시된 제1 파일 정보(1821)를 통해, 공유된 파일에 대한 열람 권한이 삭제되었음을 확인할 수 있다.
일 실시 예에 따르면, 전자 장치(110)의 사용자는 디스플레이(114)를 통해, 공유 파일 리스트에서 열람 가능한 파일(1812)을 선택할 수 있다. 따라서, 전자 장치(110)의 사용자는 디스플레이(114)를 통해, 열람 가능한 파일(1812)을 선택함으로써, 열람 가능한 파일(1812)의 제2 파일 정보(1822)를 확인할 수 있다. 일 실시 예에 따르면, 제2 파일 정보(1822)는 제 1 파일 정보(1821)에 포함된 정보와 유사한 정보를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 디스플레이(114)를 통해, 제2 파일 정보(1822) 및 파일 열기 표시(1823)를 출력할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 제2 파일 정보(1822)가 열람 가능한 파일(1812)에 대한 정보에 해당하는 경우, 바로 열람 가능한 파일(1812)을 오픈할 수 있도록 제어할 수 있다. 예를 들어, 전자 장치(110)의 사용자가 디스플레이(114)를 통해 파일 열기 표시(1823)를 선택하면, 공유된 열람 가능한 파일(1812)이 오픈될 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자가 파일을 열람하면, 프로세서(113)는 도 3을 참조하여 설명된 블록체인 플랫폼을 참조하여, 파일 열람에 기반한 트랜잭션을 생성할 수 있다.
도 19는 일 실시 예에 따른 데이터 공유 어플리케이션을 통해 공유된 파일의 공유 이력 사용자 인터페이스를 나타내는 도면이다.
도 19를 참조하면, 프로세서(113)는 디스플레이(114)를 통해, 파일 공유 이력을 출력할 수 있다. 예를 들어, 프로세서(113)는 도 3을 참조하여 설명된 데이터 공유 APP(321)을 통한 파일 공유 이력을 디스플레이(114)를 통해 표시할 수 있다. 일 실시 예에 따르면, 프로세서(113)는 디스플레이(114)를 통해 표시된 정보가 캡쳐되지 않도록 제어할 수 있다. 즉, 프로세서(113)는 파일 공유 이력에 대한 정보를 보안 정보로 판단하고, 디스플레이(114)에 표시된 정보가 유출되지 않도록 캡쳐 동작을 제어할 수 있다.
일 실시 예에 따르면, 디스플레이(114)는 공유 받은 파일(1910) 및 공유한 파일(1920)을 모두 표시할 수 있다. 예를 들어, 공유 받은 파일(1910)들은 권한 회수 파일(1911) 및 열람 가능 파일(1912)을 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(110)의 사용자는, 디스플레이(114)를 통해 표시된 공유 받은 파일(1910)들 중 열람 가능 파일(1912)을 오픈할 수 있다. 일 실시 예에 따르면, 권한 회수 파일(1911)은, 데이터를 공유한 상대방의 제어에 의해 권한이 회수된 파일을 나타낼 수 있다. 예를 들어, 데이터를 공유한 상대방의 전자 장치가 블록체인 플랫폼을 통해 권한 변경 트랜잭션을 생성함에 기반하여 공유된 파일의 권한이 회수될 수 있다.
다양한 실시 예에 따르면, 프로세서(113)는 디스플레이(114)를 통해, 파일의 권한이 회수된 경우 각종 콘텐트(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등) 중 적어도 하나를 이용해, 파일의 권한이 회수되었음을 나타낼 수 있다. 예를 들어, 프로세서(113)는 권한이 있는 파일에 대해서는 정상적으로 이미지가 표시되고, 권한이 회수된 파일에 대해서는 자물쇠 모양이 표시되어 이미지가 가려지도록 디스플레이(114)를 제어할 수 있다.
다양한 실시 예들에 따르면, 프로세서(113)는 디스플레이(114)를 통해, 다양한 파일 정보를 포함하는 파일 공유 이력을 출력할 수 있다. 예를 들어, 공유 받은 파일(1910) 및 공유한 파일(1920)의 공유 유효 기간, 파일 썸네일 및/또는 파일 공유자와 관련된 파일 정보를 포함하는 파일 공유 이력을 출력할 수 있다.
도 20은 일 실시 예에 따른 데이터 공유 어플리케이션을 통해 공유된 파일의 권한 만료 사용자 인터페이스를 나타내기 위한 도면이다.
도 20를 참조하면, 프로세서(113)는 디스플레이(114)를 통해, 데이터 공유 APP(321)을 통해 공유된 파일을 출력할 수 있다. 일 실시 예에 따르면, 공유된 파일은 권한 만료 전 파일과, 권한 만료 후 파일을 나타낼 수 있다. 일 실시 예에 따르면, 공유된 파일의 권한은 도 11을 참조하여 설명된 권한을 변경하는 동작에 의해 결정될 수 있다. 예를 들어, 데이터를 공유한 전자 장치의 사용자가 공유된 파일의 권한을 회수하거나 수정하는 경우 공유된 파일의 접근 권한은 만료될 수 있다. 일 실시 예에서, 데이터를 공유한 상대방의 전자 장치가 블록체인 플랫폼을 통해 권한 변경 트랜잭션을 생성함에 기반하여 공유된 파일의 권한이 회수될 수 있다.
일 실시 예에 따르면, 공유된 파일의 권한은 파일 접근 만료 기한이 도과되어 변경될 수 있다. 예를 들어, 공유된 파일의 접근 만료 기한이 도과되기 전에는 권한 만료 전 파일에 해당하더라도, 만료 기한이 도과되면 권한 만료 후 파일에 해당할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 전자 장치(110)의 사용자가 권한 만료 전 파일을 열람하고자 하는 경우, 디스플레이(114)를 통해 권한 만료 전 파일(2010) 및 도 19를 참조하여 설명된 권한 만료 전 파일 공유 이력(2011)을 표시할 수 있다. 일 실시 예에서, 파일 공유 이력은 다양한 파일 정보를 포함할 수 있다. 예를 들어, 공유 받은 권한 만료 전 파일(2010) 및 공유 유효 기간, 파일 썸네일 및/또는 파일 공유자와 관련된 파일 정보를 포함하는 파일 공유 이력을 출력할 수 있다.
일 실시 예에서, 권한 만료 전 파일(2010)은 공유된 파일 그대로 디스플레이(114)를 통해 표시될 수 있다. 즉, 프로세서(113)는 공유된 파일이 권한 만료 전이면, 데이터 공유 APP(321)에서 공유된 파일을 디스플레이(114)를 통해 표시할 수 있다.
일 실시 예에 따르면, 프로세서(113)는 전자 장치(110)의 사용자가 권한 만료 후 파일을 열람하고자 하는 경우, 디스플레이(114)를 통해 권한 만료 후 파일 아이콘(2020) 및 도 19를 참조하여 설명된 권한 만료 후 파일 공유 이력(2021)을 표시할 수 있다. 일 실시 예에서, 파일 공유 이력은 다양한 파일 정보를 포함할 수 있다. 예를 들어, 공유 받은 권한 만료 후 파일 및 공유 유효 기간, 파일 권한 만료 날짜, 파일 권한 만료 대상, 파일 썸네일 및/또는 파일 공유자와 관련된 파일 정보를 포함하는 파일 공유 이력을 출력할 수 있다.
일 실시 예에서, 프로세서(113)는 각종 콘텐트(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등) 중 적어도 하나를 통해, 권한 만료 후 파일 아이콘(2020)을 디스플레이(114)에 표시할 수 있다. 즉, 권한 만료 후 파일은 파일 그대로 표시되는 것이 아니라, 권한 만료 후 파일을 나타내는 콘텐트를 이용해 표시될 수 있다. 예를 들어, 프로세서(113)는 전자 장치(110)의 사용자가 권한 만료 후 파일을 열람하고자 하는 경우, 디스플레이(114)를 통해 권한 만료 후 파일 아이콘(2020)을 자물쇠 아이콘으로 출력할 수 있다.
도 21은, 다양한 실시예들에 따른, 네트워크 환경(2100) 내의 전자 장치(2101)의 블록도이다.
도 21을 참조하면, 네트워크 환경(2100)에서 전자 장치(2101)는 제 1 네트워크(2198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(2102)와 통신하거나, 또는 제 2 네트워크(2199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(2104) 또는 서버(2108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(2101)는 서버(2108)를 통하여 전자 장치(2104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(2101)는 프로세서(2120), 메모리(2130), 입력 모듈(2150), 음향 출력 모듈(2155), 디스플레이 모듈(2160), 오디오 모듈(2170), 센서 모듈(2176), 인터페이스(2177), 연결 단자(2178), 햅틱 모듈(2179), 카메라 모듈(2180), 전력 관리 모듈(2188), 배터리(2189), 통신 모듈(2190), 가입자 식별 모듈(2196), 또는 안테나 모듈(2197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(2101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(2178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(2176), 카메라 모듈(2180), 또는 안테나 모듈(2197))은 하나의 구성요소(예: 디스플레이 모듈(2160))로 통합될 수 있다.
프로세서(2120)는, 예를 들면, 소프트웨어(예: 프로그램(2140))를 실행하여 프로세서(2120)에 연결된 전자 장치(2101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(2120)는 다른 구성요소(예: 센서 모듈(2176) 또는 통신 모듈(2190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(2132)에 저장하고, 휘발성 메모리(2132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(2134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(2120)는 메인 프로세서(2121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(2123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(2101)가 메인 프로세서(2121) 및 보조 프로세서(2123)를 포함하는 경우, 보조 프로세서(2123)는 메인 프로세서(2121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(2123)는 메인 프로세서(2121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(2123)는, 예를 들면, 메인 프로세서(2121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(2121)를 대신하여, 또는 메인 프로세서(2121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(2121)와 함께, 전자 장치(2101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(2160), 센서 모듈(2176), 또는 통신 모듈(2190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(2123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(2180) 또는 통신 모듈(2190))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(2123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능이 수행되는 전자 장치(2101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(2108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(2130)는, 전자 장치(2101)의 적어도 하나의 구성요소(예: 프로세서(2120) 또는 센서 모듈(2176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(2140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(2130)는, 휘발성 메모리(2132) 또는 비휘발성 메모리(2134)를 포함할 수 있다.
프로그램(2140)은 메모리(2130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(2142), 미들 웨어(2144) 또는 어플리케이션(2146)을 포함할 수 있다.
입력 모듈(2150)은, 전자 장치(2101)의 구성요소(예: 프로세서(2120))에 사용될 명령 또는 데이터를 전자 장치(2101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(2150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(2155)은 음향 신호를 전자 장치(2101)의 외부로 출력할 수 있다. 음향 출력 모듈(2155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(2160)은 전자 장치(2101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(2160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(2160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(2170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(2170)은, 입력 모듈(2150)을 통해 소리를 획득하거나, 음향 출력 모듈(2155), 또는 전자 장치(2101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(2102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(2176)은 전자 장치(2101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(2176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(2177)는 전자 장치(2101)가 외부 전자 장치(예: 전자 장치(2102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(2177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(2178)는, 그를 통해서 전자 장치(2101)가 외부 전자 장치(예: 전자 장치(2102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(2178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(2179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(2179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(2180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(2180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(2188)은 전자 장치(2101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(2188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(2189)는 전자 장치(2101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(2189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(2190)은 전자 장치(2101)와 외부 전자 장치(예: 전자 장치(2102), 전자 장치(2104), 또는 서버(2108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(2190)은 프로세서(2120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(2190)은 무선 통신 모듈(2192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(2194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(2198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(2199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(2104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(2192)은 가입자 식별 모듈(2196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(2198) 또는 제 2 네트워크(2199)와 같은 통신 네트워크 내에서 전자 장치(2101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(2192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(2192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(2192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(2192)은 전자 장치(2101), 외부 전자 장치(예: 전자 장치(2104)) 또는 네트워크 시스템(예: 제 2 네트워크(2199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(2192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(2197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(2197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(2197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(2198) 또는 제 2 네트워크(2199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(2190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(2190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(2197)의 일부로 형성될 수 있다.
다양한 실시예에 따르면, 안테나 모듈(2197)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(2199)에 연결된 서버(2108)를 통해서 전자 장치(2101)와 외부의 전자 장치(2104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(2102, 또는 2104) 각각은 전자 장치(2101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(2101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(2102, 2104, 또는 2108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(2101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(2101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(2101)로 전달할 수 있다. 전자 장치(2101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(2101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(2104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(2108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(2104) 또는 서버(2108)는 제 2 네트워크(2199) 내에 포함될 수 있다. 전자 장치(2101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
상술한 바와 같이, 일 실시 예에 따른 전자 장치(예: 도 1의 전자 장치(110))는 신호를 송신 또는 수신하는 통신 회로(예: 도 1의 통신 회로(112)), 명령어들을 저장하는 메모리(예: 도 1의 메모리(111)) 및 통신 회로 및 메모리와 작동적으로 연결된 적어도 하나의 프로세서(예: 도 1의 프로세서(113))를 포함하고, 적어도 하나의 프로세서는, 명령어들을 실행하여 전자 장치의 사용자에 대한 공개 키 및 블록체인 주소를 생성하고, 데이터를 공유할 외부 전자 장치를 결정하고, 통신 회로를 통해서 공개 키 및 블록체인 주소에 대한 정보를 포함하는 초대 메시지를 외부 전자 장치로 전송하고, 초대 메시지를 통해 접속한 외부 전자 장치의 응답 메시지에 기초하여, 외부 전자 장치를 노드로 포함하는 블록체인 네트워크를 생성하며, 외부 서버에 상기 블록체인 네트워크에 대한 정보를 저장할 수 있다.
일 실시 예에 따르면, 상기 초대 메시지는 URL(uniform resource locator)을 포함할 수 있고, 상기 URL은 사용자의 개인 키에 기반하여 전자 서명을 수행함으로써 획득된 서명 데이터를 더 포함할 수 있다.
일 실시 예에 따르면, 상기 적어도 하나의 프로세서는 상기 명령어들을 실행하여 제1 인증 키를 생성하고, 상기 제1 인증 키를 기반으로 상기 URL에 대한 전자 서명을 수행하며, 상기 외부 전자 장치로 전송되는 URL은 상기 제1 인증 키를 기반으로 수행된 전자 서명을 통해서 생성된 서명 데이터를 더 포함할 수 있다.
일 실시 예에 따르면, 상기 응답 메시지는 제2 인증 키를 포함하고, 상기 적어도 하나의 프로세서는 상기 제2 인증 키에 기반하여 상기 외부 전자 장치에 대한 유효성을 검사할 수 있다.
일 실시 예에 따른 상기 적어도 하나의 프로세서는, 상기 블록체인 네트워크 내에서 동기화된 블록을 생성하고, 상기 외부 전자 장치의 사용자에 대한 정보를 포함하는 제1 트랜잭션 데이터를 상기 블록에 기록할 수 있다.
일 실시 예에 따르면, 상기 제1 트랜잭션 데이터는, 상기 외부 전자 장치의 사용자에 대한 식별 정보, 상기 외부 전자 장치 사용자에 대한 블록체인 주소, 상기 외부 전자 장치 사용자의 공개 키 및 상기 공개 키에 기반하여 서명된 서명 데이터를 포함할 수 있다.
일 실시 예에 따른 상기 적어도 하나의 프로세서는 상기 통신 회로를 이용하여 상기 외부 전자 장치와 공유될 데이터에 대한 정보를 포함하는 제2 트랜잭션 데이터를 상기 블록에 기록할 수 있다.
일 실시 예에서, 상기 외부 전자 장치와 공유될 데이터에 대한 정보는 공유 데이터를 열람할 수 있는 권한, 공유 데이터 열람 기간, 공유 데이터를 전송할 수 있는 권한을 포함할 수 있다.
일 실시 예의 상기 적어도 하나의 프로세서는, 상기 제2 트랜잭션 데이터를 통해서 공유된 데이터에 대한 권한을 변경하도록 하는 사용자 입력을 수신하고, 상기 사용자 입력에 응답하여, 상기 데이터에 대한 권한을 변경하도록 하는 제3 트랜잭션 데이터를 상기 블록에 기록할 수 있다.
일 실시 예에 따르면, 상기 블록의 원장은 상기 전자 장치 및 상기 외부 전자 장치가 접근할 수 있는, 월드 스테이트(world state) 데이터를 포함하고, 상기 적어도 하나의 프로세서는, 상기 블록에 대한 스마트 컨트랙트의 실행에 기반하여 상기 월드 스테이트 데이터를 수정할 수 있다.
일 실시 예에서, 상기 적어도 하나의 프로세서는 상기 통신 회로를 이용하여 상기 외부 전자 장치로부터 상기 공개 키로 암호화된 상기 응답 메시지를 수신할 수 있다.
일 실시 예에 따른 상기 적어도 하나의 프로세서는, 상기 명령어들을 실행하여 상기 전자 장치의 사용자의 개인 키를 이용하여 상기 응답 메시지를 복호화할 수 있다.
일 실시 예의 상기 적어도 하나의 프로세서와 작동적으로 연결된 디스플레이(예: 도 1의 디스플레이(114))를 더 포함하고, 상기 적어도 하나의 프로세서는, 상기 공유될 데이터를 포함하는 파일을 포함하는 파일 목록을 표시하도록 상기 디스플레이를 제어하고, 상기 파일 목록에서 상기 파일을 선택하는 사용자 입력을 수신하며, 적어도 하나의 공유 방법을 포함하는 공유 수단 목록을 표시하도록 상기 디스플레이를 제어하고, 상기 공유 수단 목록에서 지정된 공유 방법을 선택하는 사용자 입력에 응답하여, 상기 외부 전자 장치의 사용자에 대한 사용자 식별 정보를 포함하는 참여자 목록을 디스플레이 하도록 상기 디스플레이를 제어하며, 상기 참여자 목록에서 상기 사용자 식별 정보를 선택하는 사용자 입력에 응답하여, 상기 초대 메시지를 포함하는 화면을 디스플레이 하도록 상기 디스플레이를 제어하고, 상기 초대 메시지를 포함하는 화면에 대한 사용자 입력에 응답하여, 상기 외부 전자 장치로 URL을 포함하는 메시지를 전송하도록 상기 통신 회로를 제어할 수 있다.
일 실시 예의 상기 적어도 하나의 프로세서는, 상기 외부 전자 장치를 노드로 포함하는 상기 블록체인 네트워크가 생성되어 있는지 판단하고, 상기 블록체인 네트워크를 통해 데이터를 공유할 수 있다.
일 실시 예에 따른 전자 장치(110)의 동작 방법은, 명령어들을 실행하여 상기 전자 장치의 사용자에 대한 공개 키 및 블록체인 주소를 생성하는 동작, 데이터를 공유할 외부 전자 장치를 결정하는 동작, 상기 공개 키 및 상기 블록체인 주소에 대한 정보를 포함하는 초대 메시지를 상기 외부 전자 장치로 전송하는 동작, 상기 초대 메시지를 통해 접속한 상기 외부 전자 장치의 응답 메시지에 기초하여, 상기 외부 전자 장치를 노드로 포함하는 블록체인 네트워크를 생성하는 동작 및 외부 서버에 상기 블록체인 네트워크에 대한 정보를 저장하는 동작을 포함할 수 있다.
일 실시 예에서, 상기 초대 메시지는 URL을 포함하고, 상기 전자 장치의 동작 방법은, 상기 명령어들을 실행하여 제1 인증 키를 생성하는 동작 및 상기 제1 인증 키를 기반으로 상기 URL에 대한 전자 서명을 수행하는 동작을 더 포함할 수 있고, 상기 URL은 상기 URL에 사용자의 개인 키에 기반하여 전자 서명을 수행함으로써 획득된 서명 데이터 및 상기 제1 인증 키를 기반으로 수행된 전자 서명을 통해서 생성된 서명 데이터를 포함할 수 있다.
일 실시 예에 따르면, 상기 응답 메시지는 제2 인증 키를 포함하고, 상기 제2 인증 키에 기반하여 상기 외부 전자 장치에 대한 유효성을 검사하는 동작을 포함할 수 있다.
일 실시 예에 따른 전자 장치(110)의 동작 방법은, 상기 블록체인 네트워크 내에서 동기화된 블록을 생성하는 동작 및 상기 외부 전자 장치의 사용자에 대한 정보를 포함하는 제1 트랜잭션 데이터를 상기 블록에 기록하는 동작을 더 포함할 수 있다.
일 실시 예에서, 전자 장치(110)의 동작 방법은 상기 외부 전자 장치와 공유될 데이터에 대한 정보를 포함하는 제2 트랜잭션 데이터를 상기 블록에 기록하는 동작을 더 포함할 수 있다.
일 실시 예에 따른 전자 장치(110)의 동작 방법은, 상기 제2 트랜잭션 데이터를 통해서 공유된 데이터에 대한 권한을 변경하도록 하는 사용자 입력을 수신하는 동작, 상기 사용자 입력에 응답하여, 상기 데이터에 대한 권한을 변경하도록 하는 제3 트랜잭션 데이터를 상기 블록에 기록하는 동작을 더 포함할 수 있다.

Claims (20)

  1. 전자 장치에 있어서,
    신호를 송신 또는 수신하는 통신 회로;
    명령어들을 저장하는 메모리; 및
    상기 통신 회로 및 상기 메모리와 작동적으로 연결된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는:
    상기 명령어들을 실행하여 상기 전자 장치의 사용자에 대한 공개 키 및 블록체인 주소를 생성하고,
    데이터를 공유할 외부 전자 장치를 결정하고,
    상기 통신 회로를 통해서 상기 공개 키 및 상기 블록체인 주소에 대한 정보를 포함하는 초대 메시지를 상기 외부 전자 장치로 전송하고,
    상기 초대 메시지를 통해 접속한 상기 외부 전자 장치의 응답 메시지에 기초하여, 상기 외부 전자 장치를 노드로 포함하는 블록체인 네트워크를 생성하며,
    외부 서버에 상기 블록체인 네트워크에 대한 정보를 저장하는, 전자 장치.
  2. 청구항 1에 있어서,
    상기 초대 메시지는 URL(uniform resource locator)을 포함하고,
    상기 URL은 사용자의 개인 키에 기반하여 전자 서명을 수행함으로써 획득된 서명 데이터를 더 포함하는, 전자 장치.
  3. 청구항 2에 있어서,
    상기 적어도 하나의 프로세서는 상기 명령어들을 실행하여 제1 인증 키를 생성하고,
    상기 제1 인증 키를 기반으로 상기 URL에 대한 전자 서명을 수행하며,
    상기 외부 전자 장치로 전송되는 URL은 상기 제1 인증 키를 기반으로 수행된 전자 서명을 통해서 생성된 서명 데이터를 더 포함하는, 전자 장치.
  4. 청구항 3에 있어서,
    상기 응답 메시지는 제2 인증 키를 포함하고,
    상기 적어도 하나의 프로세서는 상기 제2 인증 키에 기반하여 상기 외부 전자 장치에 대한 유효성을 검사하는, 전자 장치.
  5. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 블록체인 네트워크 내에서 동기화된 블록을 생성하고,
    상기 외부 전자 장치의 사용자에 대한 정보를 포함하는 제1 트랜잭션 데이터를 상기 블록에 기록하는, 전자 장치.
  6. 청구항 5에 있어서,
    상기 제1 트랜잭션 데이터는,
    상기 외부 전자 장치의 사용자에 대한 식별 정보, 상기 외부 전자 장치의 사용자에 대한 블록체인 주소, 상기 외부 전자 장치의 사용자의 공개 키 및 상기 공개 키에 기반하여 서명된 서명 데이터를 포함하는, 전자 장치.
  7. 청구항 5에 있어서,
    상기 적어도 하나의 프로세서는 상기 통신 회로를 이용하여 상기 외부 전자 장치와 공유될 데이터에 대한 정보를 포함하는 제2 트랜잭션 데이터를 상기 블록에 기록하는, 전자 장치.
  8. 청구항 7에 있어서,
    상기 외부 전자 장치와 공유될 데이터에 대한 정보는 공유 데이터를 열람할 수 있는 권한, 공유 데이터 열람 기간, 공유 데이터를 전송할 수 있는 권한을 포함하는, 전자 장치.
  9. 청구항 7에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 제2 트랜잭션 데이터를 통해서 공유된 데이터에 대한 권한을 변경하도록 하는 사용자 입력을 수신하고,
    상기 사용자 입력에 응답하여, 상기 데이터에 대한 권한을 변경하도록 하는 제3 트랜잭션 데이터를 상기 블록에 기록하는, 전자 장치.
  10. 청구항 5에 있어서,
    상기 블록의 원장은 상기 전자 장치 및 상기 외부 전자 장치가 접근할 수 있는, 월드 스테이트(world state) 데이터를 포함하고,
    상기 적어도 하나의 프로세서는, 상기 블록에 대한 스마트 컨트랙트의 실행에 기반하여 상기 월드 스테이트 데이터를 수정하는, 전자 장치.
  11. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는 상기 통신 회로를 이용하여 상기 외부 전자 장치로부터 상기 공개 키로 암호화된 상기 응답 메시지를 수신하는, 전자 장치.
  12. 청구항 11에 있어서,
    상기 적어도 하나의 프로세서는, 상기 명령어들을 실행하여 상기 전자 장치의 사용자의 개인 키를 이용하여 상기 응답 메시지를 복호화하는 전자 장치.
  13. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서와 작동적으로 연결된 디스플레이를 더 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 외부 전자 장치와 공유될 데이터를 포함하는 파일을 포함하는 파일 목록을 표시하도록 상기 디스플레이를 제어하고,
    상기 파일 목록에서 상기 파일을 선택하는 사용자 입력을 수신하며,
    적어도 하나의 공유 방법을 포함하는 공유 수단 목록을 표시하도록 상기 디스플레이를 제어하고,
    상기 공유 수단 목록에서 지정된 공유 방법을 선택하는 사용자 입력에 응답하여, 상기 외부 전자 장치의 사용자에 대한 사용자 식별 정보를 포함하는 참여자 목록을 디스플레이 하도록 상기 디스플레이를 제어하며,
    상기 참여자 목록에서 상기 사용자 식별 정보를 선택하는 사용자 입력에 응답하여, 상기 초대 메시지를 포함하는 화면을 디스플레이 하도록 상기 디스플레이를 제어하고,
    상기 초대 메시지를 포함하는 화면에 대한 사용자 입력에 응답하여, 상기 외부 전자 장치로 URL을 포함하는 메시지를 전송하도록 상기 통신 회로를 제어하는, 전자 장치.
  14. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 외부 전자 장치를 노드로 포함하는 상기 블록체인 네트워크가 생성되어 있는지 판단하고,
    상기 블록체인 네트워크를 통해 데이터를 공유하는, 전자 장치.
  15. 전자 장치의 동작 방법에 있어서,
    명령어들을 실행하여 상기 전자 장치의 사용자에 대한 공개 키 및 블록체인 주소를 생성하는 동작;
    데이터를 공유할 외부 전자 장치를 결정하는 동작;
    상기 공개 키 및 상기 블록체인 주소에 대한 정보를 포함하는 초대 메시지를 상기 외부 전자 장치로 전송하는 동작;
    상기 초대 메시지를 통해 접속한 상기 외부 전자 장치의 응답 메시지에 기초하여, 상기 외부 전자 장치를 노드로 포함하는 블록체인 네트워크를 생성하는 동작; 및
    외부 서버에 상기 블록체인 네트워크에 대한 정보를 저장하는 동작을 포함하는 전자 장치의 동작 방법.
  16. 청구항 15에 있어서,
    상기 초대 메시지는 URL을 포함하고,
    상기 전자 장치의 동작 방법은, 상기 명령어들을 실행하여 제1 인증 키를 생성하는 동작; 및
    상기 제1 인증 키를 기반으로 상기 URL에 대한 전자 서명을 수행하는 동작을 더 포함하고,
    상기 URL은 상기 URL에 사용자의 개인 키에 기반하여 전자 서명을 수행함으로써 획득된 서명 데이터 및 상기 제1 인증 키를 기반으로 수행된 전자 서명을 통해서 생성된 서명 데이터를 포함하는 전자 장치의 동작 방법.
  17. 청구항 16에 있어서,
    상기 응답 메시지는 제2 인증 키를 포함하고,
    상기 제2 인증 키에 기반하여 상기 외부 전자 장치에 대한 유효성을 검사하는 동작을 포함하는 전자 장치의 동작 방법.
  18. 청구항 15에 있어서,
    상기 블록체인 네트워크 내에서 동기화된 블록을 생성하는 동작;
    상기 외부 전자 장치의 사용자에 대한 정보를 포함하는 제1 트랜잭션 데이터를 상기 블록에 기록하는 동작을 더 포함하는 전자 장치의 동작 방법.
  19. 청구항 18에 있어서,
    상기 외부 전자 장치와 공유될 데이터에 대한 정보를 포함하는 제2 트랜잭션 데이터를 상기 블록에 기록하는 동작을 더 포함하는 전자 장치의 동작 방법.
  20. 청구항 19에 있어서,
    상기 제2 트랜잭션 데이터를 통해서 공유된 데이터에 대한 권한을 변경하도록 하는 사용자 입력을 수신하는 동작,
    상기 사용자 입력에 응답하여, 상기 데이터에 대한 권한을 변경하도록 하는 제3 트랜잭션 데이터를 상기 블록에 기록하는 동작을 더 포함하는 전자 장치의 동작 방법.
KR1020200161727A 2020-11-26 2020-11-26 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법 KR20220073552A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200161727A KR20220073552A (ko) 2020-11-26 2020-11-26 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법
CN202180079372.6A CN116547959A (zh) 2020-11-26 2021-11-26 通过使用区块链网络共享数据的电子装置及其运行方法
PCT/KR2021/017656 WO2022114857A1 (ko) 2020-11-26 2021-11-26 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법
EP21898682.6A EP4236201A4 (en) 2020-11-26 2021-11-26 ELECTRONIC DEVICE THAT SHARES DATA USING A BLOCK CHAIN NETWORK, AND METHOD OF OPERATING THE SAME
US18/138,529 US20230261886A1 (en) 2020-11-26 2023-04-24 Electronic device and method for sharing data using blockchain network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200161727A KR20220073552A (ko) 2020-11-26 2020-11-26 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20220073552A true KR20220073552A (ko) 2022-06-03

Family

ID=81754886

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200161727A KR20220073552A (ko) 2020-11-26 2020-11-26 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법

Country Status (5)

Country Link
US (1) US20230261886A1 (ko)
EP (1) EP4236201A4 (ko)
KR (1) KR20220073552A (ko)
CN (1) CN116547959A (ko)
WO (1) WO2022114857A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102495450B1 (ko) * 2022-06-10 2023-02-06 요다정보기술(주) 클라우드 환경에서의 파일공유 시스템
KR102594497B1 (ko) * 2023-02-08 2023-10-27 주식회사 커먼컴퓨터 오프라인 nft 매장에 방문한 사용자에게 nft 경험을 제공하기 위해 얼굴 인식 기반 사용자의 지갑 주소를 생성하는 방법 및 이를 수행하는 nft 시스템

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10469460B2 (en) * 2017-04-17 2019-11-05 Cisco Technology, Inc. Data sharing in a blockchain-enabled trust domain
US10749879B2 (en) * 2017-08-31 2020-08-18 Topia Technology, Inc. Secure decentralized file sharing systems and methods
EP3695339B1 (en) * 2017-10-09 2023-06-07 Kyc3 S.À.R.L. Method and system for asynchronous traceable data sharing in a communication network
KR102067882B1 (ko) * 2017-12-29 2020-02-11 부경대학교 산학협력단 블록체인 기반 데이터 접근 제어 시스템 및 방법
KR102142259B1 (ko) * 2018-12-20 2020-08-10 주식회사 마크애니 블록체인 기반의 스마트 계약을 이용한 콘텐츠 파일 유통 시스템 및 그 방법
KR102289138B1 (ko) * 2019-01-30 2021-08-12 현대오토에버 주식회사 블록체인 기반 공유서비스 제공 시스템 및 그 방법
KR102162762B1 (ko) * 2019-02-27 2020-10-07 넷마블 주식회사 아이템 추적 기법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102495450B1 (ko) * 2022-06-10 2023-02-06 요다정보기술(주) 클라우드 환경에서의 파일공유 시스템
KR102594497B1 (ko) * 2023-02-08 2023-10-27 주식회사 커먼컴퓨터 오프라인 nft 매장에 방문한 사용자에게 nft 경험을 제공하기 위해 얼굴 인식 기반 사용자의 지갑 주소를 생성하는 방법 및 이를 수행하는 nft 시스템

Also Published As

Publication number Publication date
US20230261886A1 (en) 2023-08-17
CN116547959A (zh) 2023-08-04
EP4236201A1 (en) 2023-08-30
WO2022114857A1 (ko) 2022-06-02
EP4236201A4 (en) 2024-04-17

Similar Documents

Publication Publication Date Title
US11621855B2 (en) Electronic device and method for managing blockchain address using the same
US20200274859A1 (en) User authentication system with self-signed certificate and identity verification with offline root certificate storage
US20200265418A1 (en) Electronic device and method for providing digital signature service of block chain using the same
CN110417750B (zh) 基于区块链技术的文件读取和存储的方法、终端设备和存储介质
KR102206950B1 (ko) 워크플로우에 기초한, 블록체인 네트워크 상에서의 비공개 트랜잭션의 관리
CN113193965B (zh) 基于nft的数字内容实物化展示系统
CN110383759B (zh) 管理共识节点和客户端节点之间的通信的方法和系统
US20230261886A1 (en) Electronic device and method for sharing data using blockchain network
CN110826103B (zh) 基于区块链的文档权限处理方法、装置、设备及存储介质
CN112711774A (zh) 数据处理方法、装置、设备及存储介质
CN111506884A (zh) 用户邀请方法、装置、计算机设备及计算机可读存储介质
WO2018100227A1 (en) Electronic documents management
CN110445840B (zh) 一种基于区块链技术的文件存储和读取的方法
CN111767569A (zh) 区块链的访问授权方法及节点
CN109479054B (zh) 服务提供系统、服务通信系统、服务提供方法和记录介质
US20220209940A1 (en) Method for providing encrypted object and electronic device for supporting the same
CN110532324A (zh) 基于区块链的公告信息展示方法、装置、设备及存储介质
KR20230052165A (ko) 블록체인 네트워크에서 부분 원장을 가진 전자 장치 및 그의 동작 방법
KR20230037954A (ko) 트랜잭션 데이터에 대한 암호화 동작을 수행하는 전자 장치 및 그의 동작 방법
CN112989370B (zh) 密钥灌装方法、系统、装置、设备以及存储介质
KR20230036797A (ko) 블록체인 네트워크에서 트랜잭션을 생성하는 전자 장치 및 그의 동작 방법
CN116194939A (zh) 用于生成包括内部数据的交易的电子装置及其操作方法
US20230261887A1 (en) Electronic device having partial ledger in blockchain network and operating method thereof
US20230289786A1 (en) Electronic device for transmitting transaction by using external device and operation method thereof
CN113612724B (zh) 一种基于权能的物联网访问控制方法及装置

Legal Events

Date Code Title Description
A201 Request for examination