KR102139551B1 - 유언장을 관리하는 서버 및 방법 - Google Patents

유언장을 관리하는 서버 및 방법 Download PDF

Info

Publication number
KR102139551B1
KR102139551B1 KR1020190026231A KR20190026231A KR102139551B1 KR 102139551 B1 KR102139551 B1 KR 102139551B1 KR 1020190026231 A KR1020190026231 A KR 1020190026231A KR 20190026231 A KR20190026231 A KR 20190026231A KR 102139551 B1 KR102139551 B1 KR 102139551B1
Authority
KR
South Korea
Prior art keywords
smart contract
execution condition
transaction
satisfied
user terminal
Prior art date
Application number
KR1020190026231A
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 KR1020190026231A priority Critical patent/KR102139551B1/ko
Application granted granted Critical
Publication of KR102139551B1 publication Critical patent/KR102139551B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 유언장 관리 서버로 하여금 이하의 동작들을 수행하기 위한 명령들을 포함하며, 상기 동작들은: 사용자 단말로부터 유언장의 등록 요청을 수신하는 동작; 상기 등록 요청을 수신함에 따라, 상기 등록 요청에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 동작; 상기 스마트 컨트랙트를 블록체인 네트워크에 포함된 적어도 하나의 노드로 전송함으로써, 복수의 노드가 합의 알고리즘을 통해 상기 스마트 컨트랙트의 유효성을 검증하고, 상기 스마트 컨트랙트의 유효성이 검증됨에 따라 상기 복수의 노드가 블록에 상기 스마트 컨트랙트를 제 1 트랜잭션으로 기록하도록 야기하는 동작; 상기 유언장의 실행 조건이 만족되었는지 여부를 확인하는 동작; 상기 유언장의 상기 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트를 실행하여 상기 유언장에 포함된 내용에 대응하는 액션(action)을 수행하는 동작; 을 포함하는, 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.

Description

유언장을 관리하는 서버 및 방법 {METHOD AND SERVER FOR MANAGING TESTAMENT}
본 개시는 블록 체인을 이용하여 유언장을 관리하는 서버 및 방법에 관한 것이다.
유언장은 사람이 자신의 사망 후의 법률관계 또는 재산관계를 살아 생전에 미리 정해두는 의사표시를 의미한다. 망인의 의사가 담긴 유언장은 분쟁과 혼란을 방지하기 위해 법률로써 일정한 형식을 요구하고 있고, 유언으로 할 수 있는 행위 또한 법률로 정하고 있다.
이러한 유언장은 유언자가 자필로 직접 작성하거나 또는 대리인에 의해서 작성되게 되는데, 기존의 유언장을 작성하는 방식은 공증인의 선임 비용, 유언장의 관리 비용, 법원의 검인 비용, 제출 비용 및 기타 부대 비용 등 손쉽게 작성하기에는 막대한 금액이 소요된다. 이러한 문제로 인하여 우리나라보다 상대적으로 유언장이 더 보편화 되어있는 미국에서도 조사에 따르면 중산층 이하에서는 아직까지 유언장의 작성률이 50%이하에 그친다는 통계가 있으며, 우리 나라의 경우 그보다 더 낮은 작성률을 보일 것으로 예상된다.
또한, 유언자와 공증인 또는 유언자와 집행인 간의 신뢰성이 보장되지 않는다면 위조, 변조 및 날조 등의 법적 분쟁이 발생할 수 있다.
따라서, 투명하고 신뢰성있는 유언장의 제공 방법에 대한 수요가 존재한다.
대한민국 공개특허 10-2007-0108996
본 개시는 전술한 배경기술에 대응하여 안출된 것으로, 블록 체인 기술을 이용하여 투명하고 신뢰성 있는 유언장을 제공할 수 있도록 하는 방법을 제공하고자 한다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위한 본 개시의 일 실시예에 따라, 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다.
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 유언장 관리 서버로 하여금 이하의 동작들을 수행하기 위한 명령들을 포함하며, 상기 동작들은: 사용자 단말로부터 유언장의 등록 요청을 수신하는 동작; 상기 등록 요청을 수신함에 따라, 상기 등록 요청에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 동작; 상기 스마트 컨트랙트를 블록체인 네트워크에 포함된 적어도 하나의 노드로 전송함으로써, 복수의 노드가 합의 알고리즘을 통해 상기 스마트 컨트랙트의 유효성을 검증하고, 상기 스마트 컨트랙트의 유효성이 검증됨에 따라 상기 복수의 노드가 블록에 상기 스마트 컨트랙트를 제 1 트랜잭션으로 기록하도록 야기하는 동작; 상기 유언장의 실행 조건이 만족되었는지 여부를 확인하는 동작; 상기 유언장의 상기 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트를 실행하여 상기 유언장에 포함된 내용에 대응하는 액션(action)을 수행하는 동작; 을 포함할 수 있다.
또한, 상기 유언장의 상기 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트를 실행하여 상기 유언장에 포함된 내용에 대응하는 액션(action)을 수행하는 동작은, 상기 유언장의 상기 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트를 호출하는 동작; 및 상기 스마트 컨트랙트의 호출에 따라 상기 스마트 컨트랙트를 실행하여 상기 유언장에 포함된 내용에 대응하는 상기 액션을 수행하는 동작; 을 포함할 수 있다.
또한, 상기 사용자 단말로부터 유언장의 등록 요청을 수신하는 동작은, 상기 사용자 단말의 식별 정보를 확인하는 동작; 및 상기 식별 정보에 기초하여 상기 사용자 단말이 상기 유언장의 등록 요청을 수행할 수 있는 권한이 있는 단말인지 여부를 확인하는 동작; 을 더 포함하고, 상기 등록 요청을 수신함에 따라, 상기 등록 요청에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 동작은, 상기 사용자 단말이 상기 유언장의 상기 등록 요청을 수행할 수 있는 권한이 있는 단말이라고 인식된 경우, 상기 등록 요청에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 동작; 을 포함할 수 있다.
또한, 상기 등록 요청을 수신함에 따라, 상기 등록 요청에 기초하여 스마트 컨트랙트를 생성하는 동작은, 상기 스마트 컨트랙트를 생성하기 전에 상기 사용자 단말에 등록 요청 신호를 전송하였는지 여부를 확인하는 제 1 신호를 전송하는 동작; 상기 사용자 단말로부터 상기 제 1 신호에 대응하는 제 2 신호를 수신한 경우, 상기 제 2 신호에 기초하여 상기 등록 요청이 상기 사용자 단말에서 전송하였는지 여부를 확인하는 동작; 및 상기 등록 요청이 상기 사용자 단말에서 전송하였다고 확인된 경우, 상기 등록 요청에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 동작; 을 포함할 수 있다.
또한, 상기 스마트 컨트랙트는, 블록에 포함되어 상기 블록체인 네트워크로 배포되며, 상기 등록 요청을 수신함에 따라, 상기 등록 요청에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 동작은, 상기 스마트 컨트랙트가 상기 블록체인 네트워크로 배포되는 경우, 상기 스마트 컨트랙트에 대응되는 컨트랙트 어카운트(Contract Account)를 생성하는 동작; 및 상기 스마트 컨트랙트가 상기 블록체인 네트워크 상에서 상기 컨트랙트 어카운트에 저장됨에 따라, 상기 블록체인 네트워크 상에서 기재 정보에 대한 거래를 수행하기 위한 스마트 컨트랙트가 동작 가능하도록 활성화하는 동작; 을 포함할 수 있다.
또한, 상기 스마트 컨트랙트를 블록체인 네트워크에 포함된 적어도 하나의 노드에 전송하는 동작은, 상기 유언장 관리 서버의 개인키(private key)로 서명된 제 1 트랜잭션을 생성하는 동작; 및 생성된 상기 제 1 트랜잭션을 상기 적어도 하나의 노드로 전송하는 동작; 을 더 포함하며;
상기 제 1 트랜잭션은, 상기 개인키로부터 생성된 식별정보를 포함하는 제 1 트랜잭션 입력 값; 및 상기 스마트 컨트랙트를 포함하는 상기 제 1 트랜잭션이 저장될 상기 블록체인 네트워크 내에서의 주소 정보 및 상기 스마트 컨트랙트를 포함하는 제 1 트랜잭션 출력 값; 을 포함할 수 있다.
또한, 상기 유언장의 실행 조건이 만족되었는지 여부를 확인하는 동작은, 상기 사용자 단말의 사용자를 통해 기 설정된 행위가 수행되는지 여부를 확인하는 동작; 및 상기 사용자를 통해 상기 기 설정된 행위가 기 설정된 기간동안 수행되지 않은 경우 상기 실행 조건이 만족되었다고 인식하는 동작; 을 포함할 수 있다.
또한, 상기 유언장의 실행 조건이 만족되었는지 여부를 확인하는 동작은, 외부 단말로부터 상기 사용자의 사망 신호를 수신하는 동작; 상기 사용자의 사망 확인 요청 신호를 외부 서버에 전송하는 동작; 상기 사망 확인 요청 신호에 대응하여 상기 사용자의 사망 확인 여부에 대한 제 3 신호를 상기 외부 서버로부터 수신하는 동작; 상기 제 3 신호에 기초하여 상기 사용자의 사망 여부를 확인하는 동작; 및 상기 제 3 신호에 기초하여 상기 사용자가 사망한 후 기 설정된 시간이 경과되었다고 인식한 경우, 상기 유언장의 상기 실행 조건이 만족되었다고 인식하는 동작; 을 포함할 수 있다.
또한, 상기 유언장의 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트를 실행하여 상기 유언장에 포함된 내용에 대응하는 액션(action)을 수행하는 동작은, 상기 유언장의 상기 실행 조건이 만족되었다고 인식한 경우, 상기 실행 조건이 만족되었다는 제 1 정보를 상기 블록체인 네트워크에 포함된 적어도 하나의 노드로 전송함으로써, 복수의 노드가 합의 알고리즘을 통해 상기 실행 조건의 유효성을 검증하고, 상기 실행 조건의 유효성이 검증됨에 따라 상기 복수의 노드가 블록에 상기 실행 조건을 제 2 트랜잭션으로 기록하도록 야기하는 동작; 을 포함할 수 있다.
또한, 상기 실행 조건이 만족되었다는 제 1 정보를 상기 블록체인 네트워크에 포함된 상기 적어도 하나의 노드로 전송하는 동작은, 상기 유언장 관리 서버의 개인키(private key)로 서명된 제 2 트랜잭션을 생성하는 동작; 및 생성된 상기 제 2 트랜잭션을 상기 적어도 하나의 노드로 전송하는 동작; 을 포함하며, 상기 제 2 트랜잭션은, 상기 개인키로부터 생성된 상기 제 1 정보를 포함하는 제 2 트랜잭션 입력 값; 및 상기 제 1 정보를 포함하는 상기 제 2 트랜잭션이 저장될 상기 블록체인 네트워크 내에서의 주소 정보 및 제 1 정보를 포함하는 제 2 트랜잭션 출력 값; 을 포함할 수 있다.
또한, 유언장 관리 서버로서, 사용자 단말로부터 기재 정보가 포함된 유언장의 등록 요청을 수신하는 통신부; 및 상기 기재 정보에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 프로세서; 를 포함하고, 상기 프로세서는, 상기 스마트 컨트랙트를 블록체인 네트워크에 포함된 적어도 하나의 유언장 노드로 전송하도록 상기 통신부를 제어함으로써, 복수의 유언장 노드가 합의 알고리즘을 통해 상기 스마트 컨트랙트의 유효성을 검증하고, 상기 스마트 컨트랙트의 유효성이 검증됨에 따라 상기 복수의 유언장 노드가 유언장 블록에 상기 스마트 컨트랙트를 제 1 트랜잭션으로 기록하도록 야기하고, 상기 유언장의 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트를 실행하여 상기 유언장에 포함된 내용에 대응하는 액션(action)을 수행하도록 제어할 수 있다.
본 개시에서 얻을 수 있는 기술적 해결 수단은 이상에서 언급한 해결 수단들로 제한되지 않으며, 언급하지 않은 또 다른 해결 수단들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시는 투명하고 신뢰성 있는 유언장을 제공할 수 있도록 한다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 양상들이 이제 도면들을 참조로 기재되며, 여기서 유사한 참조 번호들은 총괄적으로 유사한 구성요소들을 지칭하는데 이용된다. 이하의 실시예에서, 설명 목적을 위해, 다수의 특정 세부사항들이 하나 이상의 양상들의 총체적 이해를 제공하기 위해 제시된다. 그러나, 그러한 양상(들)이 이러한 특정 세부사항들 없이 실시될 수 있음은 명백할 것이다. 다른 예시들에서, 공지의 구조들 및 장치들이 하나 이상의 양상들의 기재를 용이하게 하기 위해 블록도 형태로 도시된다.
도 1은 본 개시내용의 일 실시예에 따른 유언장 관리 방법을 수행하기 위한 예시적인 유언장 관리 시스템을 도시한다.
도 2는 본 개시의 몇몇 실시예에 따른 유언장을 등록하는 방법의 일례를 설명하기 위한 흐름도이다.
도 3은 본 개시의 몇몇 실시예에 따른 유언장에 포함된 내용에 대응하는 액션을 수행하는 방법의 일례를 설명하기 위한 흐름도이다.
도 4는 본 개시의 몇몇 실시예에 따른 스마트 컨트랙트를 생성하는 방법의 일례를 설명하기 위한 흐름도이다.
도 5는 본 개시의 몇몇 실시예에 따른 유언장의 등록 요청에 기초하여 스마트 컨트랙트를 블록체인 네트워크에 기록하는 방법의 일례를 설명하기 위한 흐름도이다.
도 6은 본 개시의 몇몇 실시예에 따른 유언장의 실행 조건이 만족되었다고 인식하는 방법의 일례를 설명하기 위한 흐름도이다.
도 7은 본 개시의 몇몇 실시예에 따른 사용자의 사망 신호에 기초하여 유언장의 실행 조건이 만족되었다고 인식하는 방법의 일례를 설명하기 위한 흐름도이다.
도 8은 본 개시의 몇몇 실시예에 따른 유언장에 포함된 내용에 대응하는 액션을 수행하는 방법의 일례를 설명하기 위한 흐름도이다.
도 9는 본 개시내용의 몇몇 실시예에 따른 블록체인 네트워크에서 저장되는 블록들의 연결 구조를 예시적으로 도시한다.
도 10은 본 개시내용의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 일반적인 개략도를 도시한다.
다양한 실시예들 및/또는 양상들이 이제 도면들을 참조하여 개시된다. 하기 설명에서는 설명을 목적으로, 하나 이상의 양상들의 전반적 이해를 돕기 위해 다수의 구체적인 세부사항들이 개시된다. 그러나, 이러한 양상(들)은 이러한 구체적인 세부사항들 없이도 실행될 수 있다는 점 또한 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 감지될 수 있을 것이다. 이후의 기재 및 첨부된 도면들은 하나 이상의 양상들의 특정한 예시적인 양상들을 상세하게 기술한다. 하지만, 이러한 양상들은 예시적인 것이고 다양한 양상들의 원리들에서의 다양한 방법들 중 일부가 이용될 수 있으며, 기술되는 설명들은 그러한 양상들 및 그들의 균등물들을 모두 포함하고자 하는 의도이다. 구체적으로, 본 명세서에서 사용되는 "실시예", "예", "양상", "예시" 등은 기술되는 임의의 양상 또는 설계가 다른 양상 또는 설계들보다 양호하다거나, 이점이 있는 것으로 해석되지 않을 수도 있다.
이하, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략한다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않는다.
비록 제 1, 제 2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제 1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제 2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하지만, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.
더불어, 본 명세서에서 사용되는 용어 "정보" 및 "데이터"는 종종 서로 상호교환 가능하도록 사용될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다.
이하의 설명에서 사용되는 구성 요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
본 개시의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 본 개시를 설명하는데 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로써 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.
본 개시내용의 청구범위에서의 방법에 대한 권리범위는, 각 단계들에 기재된 기능 및 특징들에 의해 발생되는 것이지, 방법을 구성하는 각각의 단계에서 그 순서의 선후관계를 명시하지 않는 이상, 청구범위에서의 각 단계들의 기재 순서에 영향을 받지 않는다. 예를 들어, A단계 및 B단계를 포함하는 방법으로 기재된 청구범위에서, A단계가 B단계 보다 먼저 기재되었다고 하더라도, A단계가 B단계에 선행해야 한다는 것으로 권리범위가 제한되지는 않는다.
그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 개시내용의 일 실시예에 따른 유언장 관리 방법을 수행하기 위한 예시적인 유언장 관리 시스템을 도시한다.
도 1을 참조하면, 유언장 관리 시스템은 사용자 단말(100), 블록체인 네트워크(200), 외부 단말(300), 유언장 관리 서버(400) 및 네트워크(500)를 포함할 수 있다. 다만, 상술한 구성 요소들은 유언장 관리 시스템을 구현하는데 있어서 필수적인 것은 아니어서, 유언장 관리 시스템은 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
본 개시의 몇몇 실시예에 따르면, 사용자 단말(100), 블록체인 네트워크(200), 외부 단말(300) 및 유언장 관리 서버(400)는 네트워크(500)를 통해, 본 개시의 몇몇 실시예들에 따른 유언장 제공 시스템을 위한 데이터를 상호 송수신할 수 있다.
사용자 단말(100)은, 사용자가 소유하고 있는 PC(personal computer), 노트북(note book), 모바일 단말기(mobile terminal), 스마트 폰(smart phone), 태블릿 PC(tablet pc) 등을 포함할 수 있으며, 유/무선 네트워크에 접속할 수 있는 모든 종류의 단말을 포함할 수 있다.
블록체인 네트워크(200)는, 유언장의 등록 요청에 기초하여 생성된 스마트 컨트랙트가 포함된 제 1 트랜잭션, 제 1 정보가 포함된 제 2 트랜잭션 및 유언장 중 적어도 하나를 기록하고 있는 네트워크를 의미할 수 있다.
블록체인 네트워크(200)는 복수의 노드를 포함하는 네트워크로서, 블록체인 네트워크(200)에 포함된 노드들은 계층 구조에 따른 블록체인 코어 패키지에 의해 동작될 수 있다. 상기 구조는, 블록체인 네트워크(200)에서 다뤄지는 데이터의 구조를 정의하고 데이터를 관리하는 데이터 계층, 블록의 유효성을 검증하고 블록을 생성하는 마이닝을 수행하고 마이닝 과정에서 채굴자에게 지급되는 수수료의 처리를 담당하는 합의 계층, P2P 네트워크 프로토콜, 해시 함수, 전자서명, 인코딩 및 공통 저장소를 구현 및 관리하는 공통 계층, 및 다양한 어플리케이션이 생성, 처리 및 관리되는 응용 계층을 포함할 수 있다.
또한, 본개시의 몇몇 실시예에 따르면, 블록체인 네트워크(200)에 포함된 노드에는 유언장 관리 서버(400)가 포함되어 있을 수 있다.
한편, 본 개시내용의 몇몇 실시예에서, 블록체인 네트워크(200)에 포함된 복수의 노드들은 풀 블록 체인 노드(Full Block Chain Node)일 수도 있고, 라이트웨이트 노드(Lightweight Node)일 수도 있다.
풀 블록 체인 노드는 블록 체인의 최초의 블록부터 현재 새롭게 생성되는 블록까지 모든 블록 정보를 포함할 수 있다. 또한, 풀 블록 체인 노드는 모든 블록체인 정보를 수집하고, 저장하는 역할을 수행하며, 새로운 블록을 추가하기 위해 전달받은 블록에 대해 검증을 수행할 수 있다.
라이트웨이트 노드(Lightweight Node)는 모든 블록 정보의 원본을 가지고 있지 않고, 헤더(Header) 정보만을 포함할 수 있다. 라이트웨이트 노드(Lightweight Node)가 트랜잭션을 확인하기 위해서는 SPV(Simple Payment Verify)를 수행할 수 있다.
예를 들면, 라이트웨이트 노드가 풀 블록 체인 노드에게 블록 정보를 요청하고, 머클루트(Merkle Root)를 통해 트랜잭션의 인증 내용을 확인할 수 있다.
다만, 설명의 편의를 위해 블록체인 네트워크(200)에 포함된 복수의 컨텐츠 노드들은 풀 블록 체인 노드임을 가정하고 이하 설명한다.
본 개시에서의 유언장은 네트워크(500)를 통해 전송이 가능한 형태로 작성된 유언장으로서, 사용자 단말(100)을 통해 작성된 문서 파일, 녹음 파일, 이미지 파일, 오프라인상에서 공증 받은 문서의 스캔 파일 및 온라인 상에서 인증 받은 문서 파일 중 적어도 하나를 포함할 수 있다.
또한, 블록체인 네트워크(200)에 포함된 노드들 각각은 합의 알고리즘을 통해 스마트 컨트랙트(smart contract)를 제 1 트랜잭션으로 블록에 기록하고 있을 수 있다.
스마트 컨트랙트는 유언에 포함된 내용에 대응하는 액션(action)을 수행하기 위한 디지털 언어로 작성되고 임의의 컴퓨팅 장치에서 실행될 수 있다. 즉, 스마트 컨트랙트에 포함된 코드 및 함수 중 적어도 하나가 실행되는 경우, 본 개시의 몇몇 실시예들에 따른 임의의 형태의 동작이 수행될 수 있다.
스마트 컨트랙트는, 새로운 스마트 컨트랙트를 생성하는 방식, 특정 스마트 컨트랙트상의 함수를 실행하는 방식, 또는 블록체인 네트워크(200)에서 동작가능한 토큰을 전송하는 방식 중 적어도 하나에 의해 실행될 수 있다. 또한, 스마트 컨트랙트는 외부 소유 어카운트에 의해서 발생한 트랜잭션이나 다른 컨트랙트에 의해서 실행될 수 있다.
한편, 본 개시의 몇몇 실시예에 따르면, 유언장 관리 서버(400)는 유언장의 실행 조건이 만족되었다고 인식한 경우, 유언장의 내용에 대응하는 액션을 실행할 수 있다. 이 경우, 유언장 관리 서버(400)가 상기 액션을 실행하는데 있어서, 스마트 컨트랙트의 함수를 컴파일된 코드 형태로 트랜잭션에 포함하여 블록체인을 통해 동기화할 때, 트랜잭션에 포함된 정보를 함수의 입력으로 하여 코드로 표현된 함수를 실행한 후 그 결과를 별도의 상태로 보관하는 방식으로 스마트 컨트랙트가 구현될 수 있다.
블록체인 네트워크(200)에 공유되는 스마트 컨트랙트에 의해 그 함수 내용과 함수의 입력을 공유하는 경우, 함수의 결과가 별도로 공유되지 않더라도 데이터의 무결성이 보장될 수 있다.
블록체인 네트워크(200)에 포함된 복수의 노드는 네트워크(500)를 통해, 생성된 트랜잭션 및 스마트 컨트랙트 중 적어도 하나를 공유 및 저장할 수 있다. 또한, 복수의 노드는 블록체인 기술의 합의 알고리즘을 통해 트랜잭션 및 스마트 컨트랙트 중 적어도 하나의 검증이 완료되면 블록에 트랜잭션을 기록하는 기능을 수행할 수 있다.
블록은 스마트 컨트랙트가 블록체인 네트워크(200)에 저장되는 단위로서, 인접한 블록들과 연결됨에 따라 블록체인을 형성할 수 있다.
블록체인 네트워크(200)에서 수행되는 합의 알고리즘은: PoW(Proof of Work) 알고리즘, PoS(Proof of Stake) 알고리즘, DPoS(Delegated Proof of Stage) 알고리즘, PBFT(Practical Byzantine Fault Tolerance) 알고리즘, DBFT(Delegated Byzantine Fault Tolerance) 알고리즘, RBFT(Redundant Byzantine Fault Tolerance) 알고리즘, Sieve 알고리즘, Tendermint 알고리즘, Paxos 알고리즘, Raft 알고리즘, PoA(Proof of Authority) 알고리즘 및 PoET(Proof of Elapsed Time) 알고리즘 중 적어도 하나를 포함할 수 있다.
블록체인 기술의 합의 알고리즘을 이용하여 유언장을 포함하는 스마트 컨트랙트 및 트랜잭션 중 적어도 하나를 블록에 기록하기 때문에 유언장의 위조 또는 변조를 방지할 수 있다는 효과가 발생하게 된다.
한편, 본 개시의 몇몇 실시예에 따른 블록체인 네트워크(200)의 구조는, 퍼블릭(Public) 형일 수도 있고, 프라이빗(Private) 형일 수도 있다. 퍼블릭 형 블록체인 네트워크(200)의 경우 트랜잭션을 검증하기 위해서 모든 노드에 검증작업을 수행해야 하므로 합의 시간, 트랜잭션의 처리 속도 및 컴퓨팅 리소스의 사용 효율성의 측면에서는 비효율적이라는 단점이 존재하지만, 임의의 노드의 참여가 가능하기 때문에 저장된 데이터의 투명성 및 무결성에 있어서 장점이 존재할 수 있다. 또한, 프라이빗 형(또는 컨소시움 형) 블록체인의 경우 운영주체가 명확하기 때문에, 합의 시간, 트랜잭션 처리 속도 및 컴퓨팅 리소스의 사용 효율성의 측면에서는 효율적이라는 장점이 존재하지만, 트랜잭션 처리 과정 및 결과에 대한 투명성의 측면에서는 장점이 존재할 수 있다.
본 개시의 몇몇 실시예에서의 합의 알고리즘은 컴퓨팅 리소스의 효율적인 활용 및 트랜잭션의 처리 속도의 증대를 통한 사용자 경험을 향상시키기 위하여 프라이빗 형 또는 컨소시움 형 블록체인 네트워크가 바람직할 수 있지만, 이에 한정되는 것은 아니고 구현 양태에 따라 트랜잭션 또는 스마트 컨트랙트의 투명성을 보다 더 강조하고자 하는 경우 합의 알고리즘으로 퍼블릭 형이 이용될 수도 있다.
스마트 컨트랙트가 블록체인 네트워크(200)에 기록되는 경우 스마트 컨트랙트가 위조 또는 변조되는 것이 사실상 불가능하다. 따라서, 악의적인 피 유언인, 공증인, 대리인 및 외부 단말(300)이 네트워크(500)를 통해 유언장 및 스마트 컨트랙트 중 적어도 하나를 해킹 및 수정하는 것을 방지할 수 있다.
외부 단말(300)은, 대리인 또는 피 유언인 등이 소유하고 있는 PC(personal computer), 노트북(note book), 모바일 단말기(mobile terminal), 스마트 폰(smart phone), 태블릿 PC(tablet pc) 등을 포함할 수 있으며, 유/무선 네트워크에 접속할 수 있는 모든 종류의 단말을 포함할 수 있다.
유언장 관리 서버(400)는, 사용자 단말(100)로부터 수신한 유언장의 등록 요청에 기초하여 스마트 컨트랙트를 생성하거나 사용자의 사망 신호를 수신함에 따라 유언장의 내용에 대응하는 액션을 수행할 수 있다.
본 개시에서의 몇몇 실시예에 따르면, 유언장 관리 서버(400)는 블록체인 네트워크(200)로 쿼리(query) 또는 트랜잭션(transaction)을 전송할 수 있다. 여기서, 쿼리는 블록체인 네트워크(200)에 저장된 스마트 컨트랙트를 조회하는데 사용될 수 있다. 또한, 본 개시내용에서의 트랜잭션은 블록체인 네트워크(200)에 기록된 데이터에 대한 업데이트(수정/변경/삭제/추가)를 수행하는데 사용될 수 있다.
유언장 관리 서버(400)는, 예를 들어, 마이크로프로세서, 메인프레임 컴퓨터, 디지털 프로세서, 휴대용 디바이스 및 디바이스 제어기 등과 같은 임의의 타입의 컴퓨터 시스템 또는 컴퓨터 디바이스를 포함할 수 있다.
유언장 관리 서버(400)는, 프로세서(410), 저장부(420) 및 통신부(430)를 포함할 수 있다. 다만 상술한 구성 요소들은 유언장 관리 서버(400)를 구현하는데 있어서 필수적인 것은 아니어서 유언장 관리 서버(400)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다. 여기서, 각각의 구성 요소들은 별개의 칩이나 모듈이나 장치로 구성될 수 있고, 하나의 장치 내에 포함될 수도 있다.
프로세서(410)는 통상적으로 유언장 관리 서버(400)의 전반적인 동작을 처리할 수 있다. 프로세서(410)는 위에서 살펴본 구성요소들을 통해 입력 또는 출력되는 신호, 데이터, 정보 등을 처리하거나 메모리(도 1에 미도시)에 저장된 응용 프로그램을 구동함으로써, 사용자에게 적절한 정보 또는 기능을 제공 또는 처리할 수 있다.
또한, 프로세서(410)는 적어도 하나의 유언장 등록 요청을 인식한 경우, 유언장 등록 요청에 기초하여 생성된 스마트 컨트랙트를 블록체인 네트워크(200)에 포함된 적어도 하나의 노드로 전송하도록 통신부를 제어할 수 있다. 스마트 컨트랙트가 합의 알고리즘을 통해 검증된 경우, 복수의 노드 각각에서 블록을 생성하고 블록에 스마트 컨트랙트가 기록되도록 할 수 있다. 한편, 프로세서(410)는 스마트 컨트랙트를 적어도 하나의 노드에 전송할 때, 유언장 관리 서버(400)의 개인키로 서명된 제 1 트랜잭션을 생성하고, 생성된 제 1 트랜잭션을 적어도 하나의 노드로 전송하도록 통신부(430)를 제어할 수 있다. 여기서, 유언장 관리 서버(400)의 개인키로부터 생성된 식별정보는 제 1 트랜잭션의 입력 값에 기록될 수 있다. 그리고, 적어도 하나의 사용자의 스마트 컨트랙트를 포함하는 제 1 트랜잭션이 저장될 블록체인 네트워크(200) 내에서의 주소 정보 및 스마트 컨트랙트를 포함하는 제 1 트랜잭션이 출력 값에 기록될 수 있다.
저장부(420)는 프로세서(410)가 생성하거나 결정한 임의의 형태의 정보 및 통신부(430)가 수신한 임의의 형태의 정보를 유언장 관리 서버(400)에 저장할 수 있다. 저장부(420)는 하드 디스크 드라이브(HDD, Hard Disk Drive)와 같이 자기 디스크에 데이터를 저장하는 장치, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 메모리 카드 등과 같이 반도체 메모리, 특히 불휘발성 메모리에 데이터를 저장하는 장치를 포함할 수 있다.
통신부(430)는 유언장 관리 서버(400)와 통신 시스템 사이, 유언장 관리 서버(400)와 사용자 단말(100) 사이, 유언장 관리 서버(400)와 블록체인 네트워크(200) 사이, 유언장 관리 서버(400)와 외부 단말(300) 사이 또는 유언장 관리 서버(400)와 네트워크(500) 사이의 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다.
이러한 통신부(430)는 이동통신 모듈, 유선 인터넷 모듈 및 무선 인터넷 모듈 중 적어도 하나를 포함할 수 있다.
본 개시의 실시예들에 따른 네트워크(500)는 공중전화 교환망(PSTN:Public Switched Telephone Network), xDSL(x Digital Subscriber Line), RADSL(Rate Adaptive DSL), MDSL(Multi Rate DSL), VDSL(Very High Speed DSL), UADSL(Universal Asymmetric DSL), HDSL(High Bit Rate DSL) 및 근거리 통신망(LAN) 등과 같은 다양한 유선 통신 시스템들을 사용할 수 있다.
또한, 여기서 제시되는 네트워크(500)는 CDMA(Code Division Multi Access), TDMA(Time Division Multi Access), FDMA(Frequency Division Multi Access), OFDMA(Orthogonal Frequency Division Multi Access), SC-FDMA(Single Carrier-FDMA) 및 다른 시스템들과 같은 다양한 무선 통신 시스템들을 사용할 수 있다.
본 개시의 실시예들에 따른 네트워크(500)는 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 단거리 통신망(PAN:Personal Area Network), 근거리 통신망(WAN:Wide Area Network) 등 다양한 통신망으로 구성될 수 있다. 또한, 상기 네트워크는 공지의 월드와이드웹(WWW:World Wide Web)일 수 있으며, 적외선(IrDA:Infrared Data Association) 또는 블루투스(Bluetooth)와 같이 단거리 통신에 이용되는 무선 전송 기술을 이용할 수도 있다.
본 명세서에서 설명된 기술들은 위에서 언급된 네트워크들뿐만 아니라, 다른 네트워크들에서도 사용될 수 있다.
도 2는 본 개시의 몇몇 실시예에 따른 유언장을 등록하는 방법의 일례를 설명하기 위한 흐름도이다.
도 2를 참조하면, 유언장 관리 서버(400)의 통신부(430)는 사용자 단말(100)로부터 유언장의 등록 요청을 수신할 수 있다(S110). 여기서, 유언장의 등록 요청은 사용자가 작성한 유언장이 블록체인 네트워크(200)에 기록되도록 요청하는 일련의 신호일 수 있다. 그리고, 유언장 등록 요청에는 유언장이 포함되어 있을 수 있다.
유언장은 네트워크(500)를 통해 전송이 가능한 형태로 작성된 유언장으로서, 사용자 단말(100)을 통해 작성된 문서 파일, 녹음 파일, 이미지 파일, 오프라인상에서 공증 받은 문서의 스캔 파일 및 온라인 상에서 인증 받은 문서 파일 중 적어도 하나를 포함할 수 있다.
유언장은 피 유언자에게 부동산을 증여하는 내용(예를 들어, 서울시 강남구 논현동 ** 건물을 장남에게 증여한다), 현금을 증여하는 내용, 계좌 이체를 통해 기 설정된 금액을 송금하는 내용 및 기 설정된 액수의 토큰(암호화 화폐)를 전송하는 내용 중 적어도 하나를 포함할 수 있다. 다만, 이에 한정되는 것은 아니고 다양한 내용이 유언장에 포함될 수 있다.
한편, 본 개시의 몇몇 실시예에 따르면, 유언장 관리 서버(400)는 사용자 단말(100)로부터 등록 요청 신호를 수신함에 따라 사용자 단말(100)이 등록 요청 신호를 전송하였는지 여부를 확인할 수 있다. 이에 대한 자세한 설명은 도 5를 참조하여 후술한다.
한편, 유언장 관리 서버(400)의 프로세서(410)는 사용자 단말(100)로부터 수신한 등록 요청에 기초하여 스마트 컨트랙트를 생성할 수 있다(S120).
예를 들어, 유언장 등록 요청에 문서 파일 형태의 유언장이 포함되어 있고, 해당 유언장에 “유언인 A 사망 시 A의 제 1 계좌에 있는 일정 금액을 피 유언인 B의 제 2 계좌로 이체한다” 라는 내용이 개시되어 있다고 가정하고 이하 설명한다. 다만, 유언장에 포함되는 내용은 이에 한정되는 것은 아니고 다양한 내용이 유언장에 포함될 수 있다.
프로세서(410)는 단계(S110)에서 유언장 등록 요청을 수신한 경우, 유언장 등록 요청에 포함된 문서 파일 형태의 유언장을 분석할 수 있다. 이 경우, 프로세서(410)는 유언장에 '유언인 A 사망 시'라는 유언장의 실행 조건이 포함되어 있다고 인식할 수 있다. 그리고, 프로세서(410)는 '유언인 A 사망 시'라는 유언장의 실행 조건의 만족 여부를 체크하는 제 1 코드를 스마트 컨트랙트에 기록할 수 있다.
또한, 프로세서(410)는 유언장에 '유언인 A 사망 시'라는 유언장의 실행 조건이 만족된 경우, 제 1 계좌에서 상기 일정 금액을 인출시키는 제 1 액션과 제 2 계좌에 상기 인출된 일정 금액을 입금시키는 제 2 액션이 수행되어야 한다는 내용이 포함되어 있다고 인식할 수 있다. 이 경우, 프로세서(410)는 제 1 코드에 의해 상술한 유언장의 실행 조건이 만족되었다고 인식된 때 제 1 액션 및 제 2 액션을 수행시키는 제 2 코드를 스마트 컨트랙트에 기록할 수 있다.
한편, 프로세서(410)는 생성된 스마트 컨트랙트를 블록체인 네트워크에 포함된 적어도 하나의 노드로 전송하도록 통신부(430)를 제어할 수 있다(S130).
구체적으로, 단계(S120)에서 생성된 스마트 컨트랙트는 단계(S130)에서 블록체인 네트워크에 포함된 적어도 하나의 노드로 전송됨으로써, 블록에 포함되어 블록체인 네트워크(200)로 배포될 수 있다.
좀더 구체적으로, 유언장 관리 서버(400)가 스마트 컨트랙트를 적어도 하나의 노드에 전송한 경우, 복수의 노드가 합의 알고리즘을 통해 스마트 컨트랙트의 유효성을 검증할 수 있다. 그리고, 복수의 노드에서 스마트 컨트랙트의 유효성이 검증됨에 따라 복수의 노드가 블록에 스마트 컨트랙트를 제 1 트랜잭션으로 기록할 수 있다.
한편, 블록체인 네트워크(200)에 포함된 노드들 각각은 합의 알고리즘을 통해 스마트 컨트랙트의 유효성이 검증된 경우, 스마트 컨트랙트를 제 1 트랜잭션으로 블록에 기록할 수 있다. 여기서, 블록은 블록체인 기술에서 말하는 체인으로 연결되어 있을 수 있다. 그리고 스마트 컨트랙트가 블록체인 네트워크(200)에 기록되는 경우 스마트 컨트랙트가 위조 또는 변조되는 것이 사실상 불가능하다. 따라서, 악의적인 피 유언인, 공증인 및 대리인 중 적어도 하나가 스마트 컨트랙트를 해킹 및 수정하는 것을 방지할 수 있고, 기록된 제 1 트랜잭션 내에 포함된 정보는 무결성이 보장될 수 있는 상태로 보관될 수 있다.
한편, 유언장 관리 서버(400)는 스마트 컨트랙트가 블록체인 네트워크로 배포되는 경우, 스마트 컨트랙트에 대응되는 컨트랙트 어카운트(Contract Account)를 생성할 수 있다.
또한, 스마트 컨트랙트가 블록체인 네트워크(200) 상에서의 컨트랙트 어카운트에 저장됨에 따라, 블록체인 네트워크(200)상에서 유언장에 포함된 내용에 대응하는 액션을 수행하기 위한 스마트 컨트랙트가 동작 가능하도록 활성화될 수 있다.
예를 들어, 스마트 컨트랙트가 저장되는 컨트랙트 어카운트는 유언장에 포함된 내용을 실행하기 위해 생성된 스마트 컨트랙트들의 개수 및 스마트 컨트랙트의 바이트 코드(byte code)에 대한 해시 값을 포함할 수 있다.
컨트랙트 어카운트의 주소는 유언장 관리 서버(400)의 개인키에 기초하여 생성될 수 있다. 본 개시의 몇몇 실시예에 다르면, 컨트랙트 어카운트의 주소는 유언장 관리 서버(400)의 개인키와 쌍을 이루는 개인키에 기초하여 생성될 수 있다. 예를 들어, SHA 256(Secure Hash Algorithm 256) 및 RIPEME(RACE Integrity Primitives Evaluation Message Digest) 중 적어도 하나를 이용하여 개인키로부터 컨트랙트 어카운트의 주소가 생성될 수 있다.
도 3은 본 개시의 몇몇 실시예에 따른 유언장에 포함된 내용에 대응하는 액션을 수행하는 방법의 일례를 설명하기 위한 흐름도이다.
도 3을 참조하면, 유언장 관리 서버(400)의 프로세서(410)는 유언장의 실행 조건이 만족되는지 여부를 확인할 수 있다(S210).
구체적으로, 프로세서(410)는 스마트 컨트랙트에 포함된 코드(예를 들어, 도 2에서 상술한 제 1 코드)에 기초하여 유언장의 실행 조건이 만족되었는지 여부를 주기적 또는 비주기적으로 확인할 수 있다.
예를 들어, 프로세서(410)는 통신부(430)를 통해 사용자 단말(100) 및 외부 단말(300) 중 적어도 하나의 단말로부터 유언인 A의 사망 신호를 수신한 경우 제 1 코드에 기초하여 유언장의 실행 조건이 만족되었다고 인식할 수 있다.
본 개시의 몇몇 실시예에 따르면, 프로세서(410)는 사용자 단말(100)의 사용자를 통해 기 설정된 행위가 수행되는지 여부를 확인하여 유언장의 실행 조건이 만족되는지 여부를 인식할 수 있다. 이에 대한 자세한 설명은 도 6을 참조하여 후술한다.
본 개시의 다른 몇몇 실시예에 따르면, 프로세서(410)는 통신부(430)를 통해 사용자 단말(100) 및 외부 단말(300) 중 적어도 하나의 단말로부터 유언인 A의 사망 신호를 수신한 경우, 유언인 A의 사망 여부를 확인하기 위해 외부 서버(600)(예를 들어, 의료 기관 서버 또는 관공서 서버)로 사망 확인 요청 신호를 전송하도록 통신부(430)를 제어할 수 있다. 이때, 통신부(430)는 외부 서버(600)로부터 사망 확인 요청 신호에 대응하는 신호를 수신할 수 있다. 이에 대한 자세한 설명은 도 6 내지 도 7을 참조하여 후술한다.
본 개시의 또 다른 몇몇 실시예에 따르면, 프로세서(410)는 통신부(430)를 통해 외부 단말(300)로부터 유언장의 실행 요청을 수신 받은 경우, 사용자의 사망 확인을 위한 신호를 사용자 단말(100)로 전송할 수 있다. 이때, 통신부(430)는 사용자 단말(100)로부터 사망 확인 요청 신호에 대응하는 신호를 수신할 수 있다. 이에 대한 자세한 설명은 도 6 내지 도 7을 참조하여 후술한다.
프로세서(410)는 유언장의 실행 조건이 만족되었다고 인식한 경우(S210, Yes), 스마트 컨트랙트를 실행하여 유언장에 포함된 내용에 대응하는 액션을 수행할 수 있다 (S220).
예를 들어, 프로세서(410)는 유언인 A가 사망하였다고 인식한 경우 유언장의 실행 조건이 만족되었다고 인식할 수 있다. 그리고, 프로세서(410)는 스마트 컨트랙트에 기록된 제 2 코드를 인식하여 도 2에서 상술한 제 1 액션 및 제 2 액션을 수행할 수 있다. 구체적으로, 프로세서(410)는 제 1 계좌에서 유언장에 기재된 일정 금액을 인출시키고, 제 2 계좌에 상기 인출된 일정 금액을 입금시키는 트랜잭션을 생성하여 적어도 하나의 노드에 전송하도록 통신부(430)를 제어할 수 있다. 트랜잭션이 적어도 하나의 노드에 전송된 후 복수의 노드가 합의 알고리즘을 통해 트랜잭션의 유효성을 검증하고 복수의 노드에 포함된 블록에 트랜잭션이 기록될 수 있다.
또한, 제 1 액션 및 제 2 액션이 수행되었다는 정보를 블록체인 네트워크(200)에 기록하는 경우 제 1 액션 및 제 2 액션이 수행되었다는 정보가 위조 또는 변조되는 것이 사실상 불가능하다. 따라서, 악의적인 피 유언인, 공증인 및 대리인 중 적어도 하나가 해킹 등을 통해 유언장에 개시되어 있는 액수보다 더 많은 액수를 받는 것을 방지할 수 있고, 기록된 트랜잭션 내에 포함된 정보는 무결성이 보장될 수 있는 상태로 보관될 수 있다.
본 개시의 몇몇 실시예에 따르면, 유언장 관리 서버(400)의 프로세서(410)는 유언장의 실행 조건이 만족되었다고 인식한 경우 스마트 컨트랙트를 호출할 수 있다.
구체적으로, 프로세서(410)는 스마트 컨트랙트를 실행하여 유언장에 포함된 내용에 대응하는 액션을 수행하기 전에, 유언장의 실행 조건이 만족되었다고 인식한 경우 스마트 컨트랙트를 호출하고 스마트 컨트랙트의 호출에 따라 스마트 컨트랙트를 실행하여 유언장에 포함된 내용에 대응하는 액션을 수행할 수 있다.
이 경우, 유언장에 포함된 내용을 인식하는 동작 및 스마트 컨트랙트를 호출하는 동작이 유언장의 실행 조건이 만족된 경우에 한하여 이루어지기 때문에 네트워크 리소스 및 컴퓨팅 리소스의 효율적인 활용이 가능해질 수 있다.
한편, 프로세서(410)는 유언장의 실행 조건이 만족되지 않는 경우(S210, No), 유언장의 실행 조건이 만족되는지 여부를 주기적 또는 비주기적으로 확인할 수 있다.
도 4는 본 개시의 몇몇 실시예에 따른 스마트 컨트랙트를 생성하는 방법의 일례를 설명하기 위한 흐름도이다.
도 4를 참조하면, 유언장 관리 서버(400)의 프로세서(410)는 유언장을 등록 요청을 전송한 사용자 단말(100)의 식별 정보를 확인할 수 있다(S310). 여기서, 식별 정보는 유언장 등록 요청 신호를 전송한 사용자 단말(100)의 사용자를 인식하는데 사용되는 식별 정보일 수 있다. 예를 들어, 식별 정보는 사용자의 신분 정보, 사용자의 개인 정보, 사용자의 계좌 정보 및 사용자의 신분 정보 등일 수 있다.
유언장 관리 서버(400)의 프로세서(410)는 식별 정보에 기초하여 사용자 단말(100)이 유언장의 등록 요청을 수행할 수 있는 권한이 있는 단말인지 여부를 인식할 수 있다(S320).
예를 들어, 프로세서(410)는 식별 정보에 기초하여 사용자 단말(100)의 사용자를 인식할 수 있다. 그리고, 프로세서(410)는, 상기 사용자가 유언장의 등록 요청을 수행할 수 있는 권한이 있는 자(예를 들어, 유언자 A, 유언자 A의 대리인 등)와 일치하는지 여부를 인식할 수 있다. 프로세서(410)는, 상기 사용자와 유언장의 등록 요청을 수행할 수 있는 권한이 있는 자가 일치한다고 인식한 경우, 사용자 단말(100)이 유언장의 등록 요청을 수행할 수 있는 권한이 있는 단말이라고 인식할 수 있다. 그리고, 프로세서(410)는, 상기 사용자와 유언장의 등록 요청을 수행할 수 있는 권한자가 일치하지 않는다고 인식한 경우, 유언장의 등록 요청 신호를 전송한 사용자 단말(100)이 유언장의 등록 요청을 수행할 수 있는 권한이 없는 단말이라고 인식할 수 있다.
한편, 몇몇 실시예에 따르면, 프로세서(410)는, 상기 사용자가 유언장의 유언자와 상이하다고 인식한 경우, 유언장의 등록 요청 신호를 전송한 사용자 단말(100)에 유언자와의 관계를 입증할 수 있는 자료를 요청하는 신호를 전송하도록 통신부(430)를 제어할 수 있다.
한편, 프로세서(410)는 단계(S320)에서 사용자 단말(100)이 유언장의 등록 요청을 수행할 수 있는 권한이 있는 단말이라고 인식한 경우(S320, Yes), 유언장의 등록 요청에 기초하여 스마트 컨트랙트를 생성할 수 있다(S330).
이 경우, 프로세서(410)는 통신부(430)를 통해 스마트 컨트랙트를 적어도 하나의 노드에 전송함으로써, 복수의 노드가 합의 알고리즘을 통해 스마트 컨트랙트의 유효성을 검증하고, 스마트 컨트랙트의 유효성이 검증됨에 따라 복수의 노드가 블록에 스마트 컨트랙트를 제 1 트랜잭션으로 기록하도록 야기시킬 수 있다.
한편, 프로세서(410)는 사용자 단말(100)이 유언장의 등록 요청을 수행할 수 있는 권한이 없는 단말이라고 인식한 경우(S320, No), 등록 요청에 기초한 스마트 컨트랙트를 생성하지 않을 수 있다. 다만, 이에 한정되는 것은 아니고, 프로세서(410)는 사용자 단말(100)이 유언자의 등록 요청을 수행할 수 있는 권한이 있는 단말인지 여부를 기 설정된 횟수만큼 재확인할 수 있다.
한편, 몇몇 실시예에 따르면, 프로세서(410)는 사용자 단말(100)이 유언장의 등록 요청을 수행할 수 있는 권한이 없는 단말이라고 인식한 경우(S320, No), 사용자 단말(100)에 권한이 없는 단말이라고 인식한 이유가 포함된 신호를 전송하도록 통신부(430)를 제어할 수도 있다.
도 4에서 상술한 바와 같이 스마트 컨트랙트를 적어도 하나의 노드에 전송하는 경우, 복수의 노드가 합의 알고리즘을 통해 스마트 컨트랙트의 유효성을 검증하고, 스마트 컨트랙트의 유효성이 검증됨에 따라 복수의 노드가 블록에 스마트 컨트랙트를 제 1 트랜잭션으로 기록될 수 있다. 또한, 스마트 컨트랙트가 블록체인 네트워크(200)에 기록되는 경우 스마트 컨트랙트의 위조 또는 변조되는 것이 사실상 불가능하고, 기록된 제 1 트랜잭션 내에 포함된 정보는 무결성이 보장될 수 있는 상태로 보관될 수 있다.
도 5는 본 개시의 몇몇 실시예에 따른 유언장의 등록 요청에 기초하여 스마트 컨트랙트를 블록체인 네트워크에 기록하는 방법의 일례를 설명하기 위한 흐름도이다. 도 5에서 도시되는 내용에 대한 특징 중 도 1 내지 도 4와 관련하여 앞서 설명된 특징과 중복되는 특징에 대해서는 도 1 내지 도 4와 기재된 내용을 참고하고 여기에서는 그 설명을 생략하기로 한다.
도 5를 참조하면, 사용자는 사용자 단말(100)을 통해 유언장을 작성할 수 있다(S410). 이 경우, 사용자 단말(100)은 유언장을 사용자로부터 입력받기 위한 사용자 인터페이스(User Interface)를 화면에 디스플레이할 수 있다.
여기서, 사용자에 의해 작성된 유언장은 네트워크(500)를 통해 전송이 가능한 형태로 작성된 문서, 음성 녹음 파일, 이미지 파일, 오프라인상에서 공증받은 문서의 스캔 파일 등을 포함할 수 있다.
한편, 사용자가 유언장 작성을 완료한 경우, 사용자 단말(100)은 사용자가 작성한 유언장을 포함하는 유언장의 등록 요청 신호를 유언장 관리 서버로 전송할 수 있다(S420). 여기서, 유언장의 등록 요청은 사용자가 작성한 유언장이 블록체인 네트워크(200)에 기록되도록 요청하는 일련의 신호일 수 있다
몇몇 실시예에 따르면, 유언장 관리 서버(400)의 프로세서(410)는 단계(S420)에서 유언장 등록 요청을 수신한 경우, 등록 요청 신호를 전송하였는지 여부를 확인하는 제 1 신호를 사용자 단말(100)로 전송하도록 통신부(430)를 제어할 수 있다(S430).
여기서, 제 1 신호는, 문자(message)에 대한 응답 요청 신호, 링크(link)된 사이트에 대한 접속 요청 신호 및 e-mail 회신 요청 신호 중 적어도 하나를 포함할 수 있다. 다만, 제 1 신호는 이에 한정되는 것은 아니고 다양한 확인 요청 신호가 포함될 수 있다.
사용자는 사용자 단말(100)을 통해 수신한 제 1 신호에 대응하는 제 2 신호를 유언장 관리 서버(400)로 전송할 수 있다(S440).
여기서, 제 2 신호는 제 1 신호에 대응하는 문자의 회신, 링크된 사이트의 접속 및 e-mail의 회신 중 적어도 하나를 포함할 수 있다.
유언장 관리 서버(400)의 프로세서(410)는 제 2 신호에 기초하여 유언장의 등록 요청이 사용자 단말(100)에서 전송되었는지 확인할 수 있다(S450).
구체적으로, 프로세서(410)는 사용자 식별정보에 기초하여 통신부(430)를 통해 수신된 제 2 신호가 등록 요청한 사용자 단말(100)로부터 수신되었는지 여부를 확인할 수 있다.
예를 들어, 프로세서(410)는 제 1 신호에 대응하는 제 2 신호를 통신부(430)가 수신하였더라도, 유언장을 등록 요청한 사용자 단말(100)과 제 2 신호를 전송한 단말이 상이하다면, 유언장의 등록 요청을 거절할 수 있다.
또한, 본 개시의 몇몇 실시예에 따르면, 유언장 관리 서버(400)의 프로세서(410)는 통신부(4340)를 통해 사용자 단말(100)로부터 제 1 신호에 대응하는 제 2 신호를 수신하지 못한 경우, 제 1 신호를 재전송하거나 유언장의 등록 요청을 거절할 수 있다.
한편, 유언장 관리 서버(400)의 프로세서(410)는 단계(S450)에서 제 2 신호를 전송한 단말이 유언장을 등록 요청한 사용자 단말(100)과 일치한다고 인식한 경우, 등록 요청에 기초하여 스마트 컨트랙트를 생성할 수 있다(S460). 여기서, 스마트 컨트랙트는 도 2에서 상술한 제 1코드 및 제 2 코드를 포함하는 스마트 컨트랙트일 수 있다.
유언장 관리 서버(400)의 프로세서(410)는 생성된 스마트 컨트랙트를 적어도 하나의 노드에 전송하도록 통신부(430)를 제어할 수 있다(S470).
유언장 관리 서버(400)가 스마트 컨트랙트를 블록체인 네트워크(200)에 포함된 적어도 하나의 노드에 전송한 경우, 복수의 노드가 합의 알고리즘을 통해 스마트 컨트랙트의 유효성을 검증할 수 있다.
유언장 관리 서버(400)의 프로세서(410)가 단계(S470)에서 스마트 컨트랙트를 적어도 하나의 노드에 전송한 경우, 블록체인 네트워크(200)에는 스마트 컨트랙트가 제 1 트랜잭션으로 기록될 수 있다(S480).
구체적으로, 블록체인 네트워크(200)에 포함된 복수의 노드에 의해 합의 알고리즘을 거치고, 합의 알고리즘에 의해 유효성이 검증된 스마트 컨트랙트가 블록체인 네트워크(200)내의 제 1 트랜잭션으로 생성된 블록에 기록될 수 있다.
도 6은 본 개시의 몇몇 실시예에 따른 유언장의 실행 조건이 만족되었다고 인식하는 방법의 일례를 설명하기 위한 흐름도이다.
본 개시의 몇몇 실시예에 따르면, 유언장 관리 서버(400)의 프로세서(410)는 유언장의 등록 요청에 따른 유언장 등록 시 사용자가 기 설정된 행위를 수행하도록 요청할 수 있다. 그리고, 프로세서(410)는 기 설정된 행위가 수행되는지 여부에 기초하여 도 3에서 상술한 유언장의 실행 조건이 만족되었는지 여부를 확인할 수 있다.
도 6을 참조하면, 유언장 관리 서버(400)의 프로세서(410)는 사용자 단말(100)의 사용자를 통해 기 설정된 행위가 수행되는지 여부를 주기적 또는 비주기적으로 확인할 수 있다(S510).
구체적으로, 프로세서(410)는 사용자의 유언장이 블록체인 네트워크에 기록된 후 사용자에게 사용자 단말(100)을 통해 기 설정된 행위를 수행하도록 요청할 수 있다.
여기서 기 설정된 행위는, 사용자 단말(100)을 통한 유언장 관리 서버(400)로 신호의 전송, 유언장 관리 서버(400)가 운영하는 홈페이지의 접속, 유언장 관리 서버(400)로 이메일의 전송 등을 포함할 수 있다. 다만, 기 설정된 행위는 상술한 예시에 한정되는 것은 아니고 사용자가 사용자 단말(100)을 통해 수행할 수 있는 다양한 행위가 포함될 수 있다.
유언장 관리 서버(400)의 프로세서(410)는 기 설정된 행위가 기 설정된 기간동안 수행되는지 여부(S520, No)에 따라 유언장의 실행 조건이 만족되었다고 인식할 수 있다(S530).
구체적으로, 프로세서(410)는 기 설정된 행위가 사용자 단말(100)로부터 기 설정된 기간 동안 수행되지 않는다면, 유언장을 등록 요청했던 사용자는 사망한 것으로 인식하여 유언장의 실행 조건이 만족되었다고 인식할 수 있다.
한편, 본 개시의 몇몇 실시예에 따르면, 프로세서(410)는 기 설정된 행위가 기 설정된 기간 동안 수행되지 않는다면, 사용자 단말(100) 및 외부 단말(300)로 사용자의 사망 확인을 위한 신호를 전송하도록 통신부(430)를 제어할 수 있다. 사용자가 사망은 하지 않았지만 신체적 어려움으로 인해 사용자 단말(100)을 통한 기 설정한 행위를 수행할 수 없는 경우, 사용자 단말(100)의 파손 및 손실 등으로 인하여 기 설정한 행위를 수행할 수 없는 경우, 사용자가 단순히 기 설정한 행위의 수행을 망각한 경우 등의 특수한 상황이 발생할 수 있기 때문이다.
한편, 프로세서(410)는 통신부(430)를 통해 사용자 단말(100)로부터 기 설정된 행위가 수행되고 있음이 확인된다면(S530, Yes), 유언장의 실행 조건이 만족되지 않았다고 인식할 수 있다.
도 7은 본 개시의 몇몇 실시예에 따른 사용자의 사망 신호에 기초하여 유언장의 실행 조건이 만족되었다고 인식하는 방법의 일례를 설명하기 위한 흐름도이다.
도 7을 참조하면, 외부 단말(300)은 사용자의 사망 신호를 유언장 관리 서버(400)로 전송할 수 있다(S610).
여기서 사망 신호는 사용자의 사망을 입증할 수 있는 자료의 송신, 유언장의 실행 요청 신호 등을 포함할 수 있다.
사망 신호를 수신한 유언장 관리 서버(400)의 프로세서(410)는 사용자의 사망 확인을 위한 사망 확인 요청 신호를 외부 서버(600)로 전송하도록 통신부(430)를 제어할 수 있다(S620).
외부 서버(600)는 사용자의 사망을 확인할 수 있는 의료 기관 서버 또는 관공서 서버 등을 포함할 수 있다.
외부 서버(600)는 단계(S620)에서 사용자의 사망 확인 요청 신호를 수신한 경우, 사용자가 실제 사망했는지 여부를 데이터베이스 내에서 확인할 수 있다.
외부 서버(600)는 사용자가 실제 사망했는지 여부를 확인한 후에 사용 사용자의 사망 확인 여부에 대한 제 3 신호를 수신할 수 있다(S630).
여기서, 제 3 신호는 사용자에 대한 생존 확인서, 생환 신고서, 기본 증명서, 사망 확인서 및 사체 검안서 중 적어도 하나를 포함할 수 있다. 다만, 제 3 신호는 상술한 예시에 한정되는 것은 아니고 사용자의 사망 여부를 확인할 수 있는 다양한 증명서 또는 신호 등이 포함할 수 있다.
한편, 유언장 관리 서버(400)의 프로세서(410)는 통신부(430)를 통해 수신한 제 3 신호에 기초하여 사용자의 사망 여부를 확인할 수 있다(S640).
구체적으로, 프로세서(410)는 수신한 생존 확인서, 생환 신고서, 기본 증명서, 사망 확인서 및 사체 검안서 중 적어도 하나에 기초하여 사용자의 사망 여부를 확인할 수 있다.
한편, 본 개시의 몇몇 실시예에 따르면, 유언장 관리 서버(400)는 통신부(430)를 통해 외부 단말(300)(예를 들어, 유언인의 대변인, 유언인의 친인척 및 피 유언인 중 적어도 하나가 소지하고 있는 단말)로부터 사용자의 사망 신호 신호를 수신한 경우, 사용자의 사망 확인을 위한 제 4 신호를 사용자 단말(100)로 전송하도록 통신부(430)를 제어할 수도 있다.
구체적으로, 프로세서(410)가 통신부(430)를 통해 외부 단말(300)로부터 유언장의 실행 요청을 수신 받으면, 사용자의 사망 확인 요청 신호를 사용자 단말(100)로 전송할 수 있다. 그리고, 프로세서(410)는 통신부(430)를 통해 사용자 단말(100)로부터 제 4 신호에 대응하는 제 5 신호를 수신한다면, 제 5 신호에 기초하여 사용자의 사망 정보를 확인할 수 있다.
여기서, 제 4 신호는 외부 단말(100)로부터 전송된 사망 신호, 유언장의 조회 신호, 유언장의 실행 요청 신호 중 적어도 하나의 진위 여부를 확인하기 위한 신호일 수 있다. 또한, 제 5 신호는 외부 단말(100)로부터 전송된 사망 신호, 유언장의 조회 신호, 유언장의 실행 요청 신호 중 적어도 하나가 위조되지 않았다고 확인할 수 있는 신호일 수 있다.
한편, 프로세서(410)는 제 4 신호에 대응하는 제 5 신호가 수신되지 않는다면, 사용자의 사망 확인을 위한 사망 확인 요청 신호를 외부 서버(600)로 전송하도록 통신부(430)를 제어할 수 있다.
유언장 관리 서버(400)의 프로세서(410)는 통신부(430)를 통해 외부 서버(600)로부터 사용자의 사망 확인 여부에 대한 제 3 신호를 수신할 수 있다(S630).
여기서, 제 3 신호는 사용자에 대한 생존 확인서, 생환 신고서, 기본 증명서, 사망 확인서 및 사체 검안서 중 적어도 하나를 포함할 수 있다. 다만, 제 3 신호는 상술한 예시에 한정되는 것은 아니고 사용자의 사망 여부를 확인할 수 있는 다양한 증명서 또는 신호 등이 포함할 수 있다.
한편, 유언장 관리 서버(400)의 프로세서(410)는 사용자가 사망한 후 기 설정된 시간이 경과한 경우(S650, Yes)를 통해 유언장의 실행 조건이 만족이 만족되었다고 인식할 수 있다(S660).
여기서 기 설정된 시간은 사용자가 유언장의 등록 요청 시 또는 유언장에 포함된 사용자의 사망 후 로부터 일정 시간일 수 있다. 또한, 기 설정된 시간은 사용자가 설정한 시간이 아니라 외부 서버(600) 중 의료 기관 서버에 의해 사망 확인을 판정 받은 후 관공서 서버에 등록되기 위한 시간, 장례식을 치르는데 소요되는 시간 등일수도 있다.
또한, 프로세서(410)는 사용자가 사망한 후 기 설정된 시간이 경과하지 않은 경우(S650, No) 유언장의 실행 조건이 만족되지 않았다고 인식할 수 있다.
도 8은 본 개시의 몇몇 실시예에 따른 유언장에 포함된 내용에 대응하는 액션을 수행하는 방법의 일례를 설명하기 위한 흐름도이다. 도 8에서 도시되는 내용에 대한 특징 중 도 1 내지 도 7과 관련하여 앞서 설명된 특징과 중복되는 특징에 대해서는 도 1 내지 도 7과 기재된 내용을 참고하고 여기에서는 그 설명을 생략하기로 한다.
도 8을 참조하면, 유언장 관리 서버(400)는 유언장의 실행 요청을 수신할 수 있다(S710). 구체적으로, 프로세서(410)는 도7에서 상술한 바와 같이 외부 단말(300) 및 사용자 단말(100)로부터 통신부(430)를 통해 유언장의 실행 요청을 수신할 수 있다.
그리고 프로세서(410)는 도 3 및 도 6에서 상술한 예시들을 기초하여 유언장의 실행 조건이 만족되었는지 여부를 확인할 수 있다.
유언장 관리 서버(400)의 프로세서(410)는 유언장의 실행 조건이 만족된 경우(S720, Yes) 유언장의 실행 조건이 만족되었다는 제 1 정보를 블록체인 네트워크(200)내에 포함된 적어도 하나의 노드에 전송하도록 통신부(430)를 제어할 수 있다(S730).
구체적으로, 프로세서(410)가 제 1 정보를 적어도 하나의 노드에 전송한 경우, 복수의 노드가 합의 알고리즘을 통해 제 1 정보의 유효성을 검증할 수 있다.
또한, 유언장 관리 서버(400)의 프로세서(410)는 블록체인 네트워크(200)에 유언장의 실행 조건이 만족되었다는 제 1 정보를 제 2 트랜잭션으로 기록할 수 있다(S740).
제 1 정보의 유효성이 검증됨에 따라 블록체인 네트워크(200)에 포함된 노드들 각각은 합의 알고리즘을 통해 제 1 정보를 제 2 트랜잭션으로 블록에 기록할 수 있다. 여기서, 블록은 블록체인 기술에서 말하는 체인으로 연결되어 있을 수 있다.
또한, 제 1 정보가 블록체인 네트워크(200)에 기록되는 경우 제 1 정보가 위조 또는 변조되는 것이 사실상 불가능하다. 따라서, 악의적인 피 유언인, 공증인 및 대리인 중 적어도 하나가 제 1 정보를 해킹 및 수정하는 것을 방지할 수 있고, 기록된 제 2 트랜잭션 내에 포함된 정보는 무결성이 보장될 수 있는 상태로 보관될 수 있다.
프로세서(410)는 적어도 하나의 실행 조건이 만족되었다는 제 1 정보를 인식한 경우, 실행 조건에 기초하여 생성된 제 1 정보를 블록체인 네트워크(200)에 포함된 적어도 하나의 노드로 전송할 수 있다. 제 1 정보가 합의 알고리즘을 통해 검증된 경우, 복수의 노드 각각에서 블록을 생성하고 블록에 제 1 정보가 기록되도록 할 수 있다.
한편, 프로세서(410)는 제 1 정보를 적어도 하나의 노드에 전송할 때, 유언장 관리 서버(400) 와 연관된 개인키로 서명된 제 2 트랜잭션을 생성하고, 생성된 제 2 트랜잭션을 적어도 하나의 노드로 전송하도록 통신부(430)를 제어할 수 있다.
여기서, 유언장 관리 서버(400)의 개인키로부터 생성된 식별정보는 제 2 트랜잭션의 입력 값에 기록될 수 있다. 그리고, 적어도 하나의 사용자의 제 1 정보를 포함하는 제 2 트랜잭션이 저장될 블록체인 네트워크(200) 내에서의 주소 정보 및 제 1 정보를 포함하는 제 2 트랜잭션이 출력 값에 기록될 수 있다.
한편, 단계(S720)에서 유언장 실행 조건이 만족되었다고 인식된 경우, 유언장 관리 서버(400)의 프로세서(410)는 스마트 컨트랙트를 실행하여 유언장에 포함된 내용에 대응하는 액션(action)을 수행할 수 있다(S750).
구체적으로, 프로세서(410)는 블록체인 네트워크(200)내에 등록된 유언장에 포함된 내용을 인식하여 스마트 컨트랙트와 관련된 내용에 대응하는 액션을 수행할 수 있다.
여기서 스마트 컨트랙트와 관련된 내용에 대응하는 액션은 계좌 이체, 토큰의 전송, 문서의 전송 등을 포함할 수 있다. 다만, 액션은 상술한 내용에 한정되는 것은 아니라 스마트 컨트랙트를 통해 수행될 수 있는 다양한 동작을 포함할 수 있다.
이에 대해 도 1 내지 도 7에서 자세히 상술한 자세한 설명은 생략한다.
도 9는 본 개시내용의 몇몇 실시예에 따른 블록체인 네트워크에서 저장되는 블록들의 연결 구조를 예시적으로 도시한다.
도 9를 참조하면, 블록체인 네트워크(200)에서의 저장 단위인 블록(1400a, 1400b 및 1400c)은 서로 체인 형태로 연결되어 블록체인을 구성할 수 있다. 도 9와 관련하여 블록(1400a, 1400b, 1400c)은 도 1 내지 도 8에서 상술한 블록을 의미할 수 있다.
블록(1400a, 1400b 및 1400c)은 블록 헤더(block header) 및 트랜잭션(transaction)으로 구성될 수 있다. 블록 헤더는 예를 들어, 이전 블록 헤더의 해시값, Nonce 값 및 트랜잭션 그룹의 해시값을 포함할 수 있다. Nonce 값은 블록체인 네트워크(200)에서의 노드가 블록을 생성하기 위해 변경하는 값으로서, 블록 헤더의 다른 값과 함께 특정 해시 함수의 입력 값으로 사용될 수 있다. 특정 Nonce 값을 사용하였을 때, 블록 헤더의 해시값이 사전결정된 난이도값(블록 헤더에 저장될 수 있음)보다 작게 나온 경우, 해당 블록 헤더에 대한 해시값이 결정될 수 있다. 트랜잭션 그룹의 해시값은 트랜잭션에 포함된 데이터들의 Root 해시값을 의미할 수 있다.
블록 302(1400b)의 블록 헤더의 블록 해시 값을 구하기 위해서 블록 301(1400a)의 블록 해시 값이 입력 값으로 사용되기 때문에, 블록 302(1400b)와 블록 301(1400a)가 서로 연결될 수 있다. 또한, 블록 해시 값을 구하는데 있어서, 트랜잭션들을 대표하는 해시값인 트랜잭션 그룹의 해시값이 입력 값으로 사용되기 때문에, 트랜잭션에 대한 임의의 위변조 행위가 일어나는 경우, 트랜잭션 그룹의 해시값이 변경된다. 이러한 방식으로 인접한 블록들은 서로 연결될 수 있으며, 블록 내에서의 트랜잭션의 정보가 무결성 있게 저장될 수 있다.
블록(1400a, 1400b 및 1400c)의 트랜잭션은 발행된 트랜잭션들 중 블록에 포함된 트랜잭션(들)으로서, 해당 트랜잭션이 블록 내에 포함되는 경우, 해당 트랜잭션과 관련된 동작이 블록체인 네트워크(200)에서 수행될 수 있다. 여기서, 블록(1400a, 1400b 및 1400c)이 청크 블록인 경우, 트랜잭션은 복수의 청크 데이터 각각을 가지고 있는 적어도 하나의 소스의 주소에 대한 정보, 적어도 하나의 소스 각각에서 다운로드 할 때 다운로드 속도에 대한 정보 및 적어도 하나의 소스 각각의 레이턴시에 대한 정보를 포함하고 있을 수 있다. 또한, 블록(1400a, 1400b 및 1400c)이 보상 블록인 경우, 트랜잭션으로 적어도 하나의 소스에 대한 각각의 보상 정보 및 적어도 하나의 소스에 대한 각각의 기여도 정보를 포함하고 수 있다. 다만, 이에 한정되는 것은 아니고 블록(1400a, 1400b 및 1400c)에는 다양한 정보들이 트랜잭션으로 기록되어 있을 수 있다.
추가적인 실시예로서, 도 9에서는 도시되지 않았지만, 블록(1400a, 1400b 및 1400c)의 블록 헤더는 부모 블록(이전 블록)의 해시값(ParentHash), 현재 블록의 엉클블록(블록의 난이도가 상대적으로 낮아 블록으로 채택되지못한 블록)들의 해시값(UncleHash), 블록의 모든 트랜잭션에 대한 머클트리의 루트노드 해시값(TxHash), 블록내 모든 트랜잭션에 대한 리시트들의 머클트리의 루트노드 해시값(ReceiptHash), 로그 정보를 사용하는데 사용하는 32바이트 블룸필터 정보(Bloom), 이전블록의 난이도와 타임스탬프로 계산되는 블록 난이도(Difficulty), 현재 블록번호(Number), 블록당 지급가능한 최대 토큰의 총합(TokenLimit), 블록내 트랜잭션에 사용된 토큰의 총합(TokenUsed), 블록의 최초 생성시간(Time), 블록의 기타정보(Extra) 및/또는 작업증명에서 해시값을 계산하는데 충분한 계산횟수를 보장하기 위해 사용하는 값(MixDigest, Nonce)을 포함할 수도 있다. 다만, 이에 한정되는 것은 아니고 블록 헤더는 상술한 것들 이외의 데이터 또는 정보를 더 포함할 수도 있다.
본 개시의 몇몇 실시예에 따르면, 블록은 특정 시간 간격(예를 들어, 5분, 1분)으로 생성될 수 있으며, 여기서 특정 시간은 블록 생성의 난이도 등에 기초하여 변경될 수 있다.
도 10은 본 개시내용의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 일반적인 개략도를 도시한다.
본 개시내용이 일반적으로 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능 명령어와 관련하여 전술되었지만, 당업자라면 본 개시내용 기타 프로그램 모듈들과 결합되어 및/또는 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다는 것을 잘 알 것이다.
일반적으로, 본 명세서에서의 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로시져, 프로그램, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 또한, 당업자라면 본 개시의 방법이 단일-프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터는 물론 퍼스널 컴퓨터, 핸드헬드 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 기타 등등(이들 각각은 하나 이상의 연관된 장치와 연결되어 동작할 수 있음)을 비롯한 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 잘 알 것이다.
본 개시의 설명된 실시예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘다에 위치할 수 있다.
컴퓨터는 통상적으로 다양한컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 매체 로서, 휘발성 및 비휘발성 매체, 일시적(transitory) 및 비일시적(non-transitory) 매체, 이동식 및 비-이동식 매체를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다.
컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 일시적 및 비-일시적 매체, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital video disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다.
컴퓨터 판독가능 전송 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터등을 구현하고 모든 정보 전달 매체를 포함한다. 피변조 데이터 신호라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 제한이 아닌 예로서, 컴퓨터 판독가능 전송 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들 중 임의의 것의 조합도 역시 컴퓨터 판독가능 전송 매체의 범위 안에 포함되는 것으로 한다.
컴퓨터(1102)를 포함하는 본 개시의 여러가지 측면들을 구현하는 예시적인 환경(1100)이 나타내어져 있으며, 컴퓨터(1102)는 처리 장치(1104), 시스템 메모리(1106) 및 시스템 버스(1108)를 포함한다. 시스템 버스(1108)는 시스템 메모리(1106)(이에 한정되지 않음)를 비롯한 시스템 컴포넌트들을 처리 장치(1104)에 연결시킨다. 처리 장치(1104)는 다양한 상용 프로세서들 중 임의의 프로세서일 수 있다. 듀얼 프로세서 및 기타 멀티프로세서 아키텍처도 역시 처리 장치(1104)로서 이용될 수 있다.
시스템 버스(1108)는 메모리 버스, 주변장치 버스, 및 다양한 상용 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스에 추가적으로 상호 연결될 수 있는 몇 가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리(1106)는 판독 전용 메모리(ROM)(1110) 및 랜덤 액세스 메모리(RAM)(1112)를 포함한다. 기본 입/출력 시스템(BIOS)은 ROM, EPROM, EEPROM 등의 비휘발성 메모리(1110)에 저장되며, 이 BIOS는 시동 중과 같은 때에 컴퓨터(1102) 내의 구성요소들 간에 정보를 전송하는 일을 돕는 기본적인 루틴을 포함한다. RAM(1112)은 또한 데이터를 캐싱하기 위한 정적 RAM 등의 고속 RAM을 포함할 수 있다.
컴퓨터(1102)는 또한 내장형 하드 디스크 드라이브(HDD)(1114)(예를 들어, EIDE, SATA)―이 내장형 하드 디스크 드라이브(1114)는 또한 적당한 섀시(도시 생략) 내에서 외장형 용도로 구성될 수 있음―, 자기 플로피 디스크 드라이브(FDD)(1116)(예를 들어, 이동식 디스켓(1118)으로부터 판독을 하거나 그에 기록을 하기 위한 것임), 및 광 디스크 드라이브(1120)(예를 들어, CD-ROM 디스크(1122)를 판독하거나 DVD 등의 기타 고용량 광 매체로부터 판독을 하거나 그에 기록을 하기 위한 것임)를 포함한다. 하드 디스크 드라이브(1114), 자기 디스크 드라이브(1116) 및 광 디스크 드라이브(1120)는 각각 하드 디스크 드라이브 인터페이스(1124), 자기 디스크 드라이브 인터페이스(1126) 및 광 드라이브 인터페이스(1128)에 의해 시스템 버스(1108)에 연결될 수 있다. 외장형 드라이브 구현을 위한 인터페이스(1124)는 예를 들어, USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 그 둘 다를 포함한다.
이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어, 기타 등등의 비휘발성 저장을 제공한다. 컴퓨터(1102)의 경우, 드라이브 및 매체는 임의의 데이터를 적당한 디지털 형식으로 저장하는 것에 대응한다. 상기에서의 컴퓨터 판독가능 저장 매체에 대한 설명이 HDD, 이동식 자기 디스크, 및 CD 또는 DVD 등의 이동식 광 매체를 언급하고 있지만, 당업자라면 집 드라이브(zip drive), 자기 카세트, 플래쉬 메모리 카드, 카트리지, 기타 등등의 컴퓨터에 의해 판독가능한 다른 유형의 저장 매체도 역시 예시적인 운영 환경에서 사용될 수 있으며 또 임의의 이러한 매체가 본 개시의 방법들을 수행하기 위한 컴퓨터 실행가능 명령어를 포함할 수 있다는 것을 잘 알 것이다.
운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 기타 프로그램 모듈(1134) 및 프로그램 데이터(1136)를 비롯한 다수의 프로그램 모듈이 드라이브 및 RAM(1112)에 저장될 수 있다. 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 그 일부분이 또한 RAM(1112)에 캐싱될 수 있다. 본 개시가 여러가지 상업적으로 이용가능한 운영 체제 또는 운영 체제들의 조합에서 구현될 수 있다는 것을 잘 알 것이다.
사용자는 하나 이상의 유선/무선 입력 장치, 예를 들어, 키보드(1138) 및 마우스(1140) 등의 포인팅 장치를 통해 컴퓨터(1102)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, IR 리모콘, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치가 종종 시스템 버스(1108)에 연결되어 있는 입력 장치 인터페이스(1142)를 통해 처리 장치(1104)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스, 기타 등등의 기타 인터페이스에 의해 연결될 수 있다.
모니터(1144) 또는 다른 유형의 디스플레이 장치도 역시 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)에 연결된다. 모니터(1144)에 부가하여, 컴퓨터는 일반적으로 스피커, 프린터, 기타 등등의 기타 주변 출력 장치(도시 생략)를 포함한다.
컴퓨터(1102)는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들)(1148) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1148)는 워크스테이션, 서버 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1102)에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함하지만, 간략함을 위해, 메모리 저장 장치(1150)만이 도시되어 있다. 도시되어 있는 논리적 연결은 근거리 통신망(LAN)(1152) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)(1154)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를 들어, 인터넷에 연결될 수 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 로컬 네트워크(1152)에 연결된다. 어댑터(1156)는 LAN(1152)에의 유선 또는 무선 통신을 용이하게 해줄 수 있으며, 이 LAN(1152)은 또한 무선 어댑터(1156)와 통신하기 위해 그에 설치되어 있는 무선 액세스 포인트를 포함하고 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 모뎀(1158)을 포함할 수 있거나, WAN(1154) 상의 통신 서버에 연결되거나, 또는 인터넷을 통하는 등, WAN(1154)을 통해 통신을 설정하는 기타 수단을 갖는다. 내장형 또는 외장형 및 유선 또는 무선 장치일 수 있는 모뎀(1158)은 직렬 포트 인터페이스(1142)를 통해 시스템 버스(1108)에 연결된다. 네트워크화된 환경에서, 컴퓨터(1102)에 대해 설명된 프로그램 모듈들 또는 그의 일부분이 원격 메모리/저장 장치(1150)에 저장될 수 있다. 도시된 네트워크 연결이 예시적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.
컴퓨터(1102)는 무선 통신으로 배치되어 동작하는 임의의 무선 장치 또는 개체, 예를 들어, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, PDA(portable data assistant), 통신 위성, 무선 검출가능 태그와 연관된 임의의 장비 또는 장소, 및 전화와 통신을 하는 동작을 한다. 이것은 적어도 Wi-Fi 및 블루투스 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 미리 정의된 구조이거나 단순하게 적어도 2개의 장치 사이의 애드혹 통신(ad hoc communication)일 수 있다.
Wi-Fi(Wireless Fidelity)는 유선 없이도 인터넷 등으로의 연결을 가능하게 해준다. Wi-Fi는 이러한 장치, 예를 들어, 컴퓨터가 실내에서 및 실외에서, 즉 기지국의 통화권 내의 아무 곳에서나 데이터를 전송 및 수신할 수 있게 해주는 셀 전화와 같은 무선 기술이다. Wi-Fi 네트워크는 안전하고 신뢰성 있으며 고속인 무선 연결을 제공하기 위해 IEEE 802.11(a,b,g, 기타)이라고 하는 무선 기술을 사용한다. 컴퓨터를 서로에, 인터넷에 및 유선 네트워크(IEEE 802.3 또는 이더넷을 사용함)에 연결시키기 위해 Wi-Fi가 사용될 수 있다. Wi-Fi 네트워크는 비인가 2.4 및 5 GHz 무선 대역에서, 예를 들어, 11Mbps(802.11a) 또는 54 Mbps(802.11b) 데이터 레이트로 동작하거나, 양 대역(듀얼 대역)을 포함하는 제품에서 동작할 수 있다.
본 개시의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 "소프트웨어"로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 개시의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 개시의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.
여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 "제조 물품"은 임의의 컴퓨터-판독가능 장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터-판독가능 저장 매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 용어 "기계-판독가능 매체"는 명령(들) 및/또는 데이터를 저장, 보유, 및/또는 전달할 수 있는 무선 채널 및 다양한 다른 매체를 포함하지만, 이들로 제한되는 것은 아니다.
제시된 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조는 예시적인 접근들의 일례임을 이해하도록 한다. 설계 우선순위들에 기반하여, 본 개시의 범위 내에서 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조가 재배열될 수 있다는 것을 이해하도록 한다. 첨부된 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제공하지만 제시된 특정한 순서 또는 계층 구조에 한정되는 것을 의미하지는 않는다.
제시된 실시예들에 대한 설명은 임의의 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시는 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.

Claims (11)

  1. 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 유언장 관리 서버로 하여금 이하의 동작들을 수행하기 위한 명령들을 포함하며, 상기 동작들은:
    사용자 단말로부터 문서 파일 형태의 유언장의 등록 요청을 수신하는 동작;
    상기 등록 요청을 수신함에 따라, 상기 문서 파일 형태의 상기 유언장을 분석하여 상기 유언장의 실행 조건 및 상기 실행 조건이 만족된 경우 실행되는 액션(action)을 인식하는 동작;
    상기 실행 조건의 만족 여부를 체크하는 제 1 코드와 상기 실행 조건이 만족되는 경우 상기 액션을 수행시키는 제 2 코드를 기록한 스마트 컨트랙트(smart contract)를 생성하는 동작;
    상기 스마트 컨트랙트를 블록체인 네트워크에 포함된 적어도 하나의 노드로 전송함으로써, 복수의 노드가 합의 알고리즘을 통해 상기 스마트 컨트랙트의 유효성을 검증하고, 상기 스마트 컨트랙트의 유효성이 검증됨에 따라 상기 복수의 노드가 블록에 상기 스마트 컨트랙트를 제 1 트랜잭션으로 기록하도록 야기하는 동작;
    상기 스마트 컨트랙트에 포함된 상기 제 1 코드에 기초하여 상기 사용자 단말의 사용자를 통해 기 설정된 행위가 수행되는지 여부를 확인하는 동작;
    상기 사용자를 통해 상기 기 설정된 행위가 기 설정된 기간동안 수행되지 않은 경우, 상기 유언장의 실행 조건이 만족되었다고 인식하는 동작; 및
    상기 유언장의 상기 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트에 포함된 상기 제 2 코드를 실행하여 상기 액션을 수행하는 동작;
    을 포함하는
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  2. 제 1 항에 있어서,
    상기 유언장의 상기 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트를 실행하여 상기 유언장에 포함된 내용에 대응하는 액션(action)을 수행하는 동작은,
    상기 유언장의 상기 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트를 호출하는 동작; 및
    상기 스마트 컨트랙트의 호출에 따라 상기 스마트 컨트랙트를 실행하여 상기 유언장에 포함된 내용에 대응하는 상기 액션을 수행하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  3. 제 1 항에 있어서,
    상기 사용자 단말로부터 유언장의 등록 요청을 수신하는 동작은,
    상기 사용자 단말의 식별 정보를 확인하는 동작; 및
    상기 식별 정보에 기초하여 상기 사용자 단말이 상기 유언장의 등록 요청을 수행할 수 있는 권한이 있는 단말인지 여부를 확인하는 동작;
    을 더 포함하고,
    상기 등록 요청을 수신함에 따라, 상기 등록 요청에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 동작은,
    상기 사용자 단말이 상기 유언장의 상기 등록 요청을 수행할 수 있는 권한이 있는 단말이라고 인식된 경우, 상기 등록 요청에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  4. 제 1 항에 있어서,
    상기 등록 요청을 수신함에 따라, 상기 등록 요청에 기초하여 스마트 컨트랙트를 생성하는 동작은,
    상기 스마트 컨트랙트를 생성하기 전에 상기 사용자 단말에 등록 요청 신호를 전송하였는지 여부를 확인하는 제 1 신호를 전송하는 동작;
    상기 사용자 단말로부터 상기 제 1 신호에 대응하는 제 2 신호를 수신한 경우, 상기 제 2 신호에 기초하여 상기 등록 요청이 상기 사용자 단말에서 전송하였는지 여부를 확인하는 동작; 및
    상기 등록 요청이 상기 사용자 단말에서 전송하였다고 확인된 경우, 상기 등록 요청에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  5. 제 1 항에 있어서,
    상기 스마트 컨트랙트는,
    블록에 포함되어 상기 블록체인 네트워크로 배포되며,
    상기 등록 요청을 수신함에 따라, 상기 등록 요청에 기초하여 스마트 컨트랙트(smart contract)를 생성하는 동작은,
    상기 스마트 컨트랙트가 상기 블록체인 네트워크로 배포되는 경우, 상기 스마트 컨트랙트에 대응되는 컨트랙트 어카운트(Contract Account)를 생성하는 동작; 및
    상기 스마트 컨트랙트가 상기 블록체인 네트워크 상에서 상기 컨트랙트 어카운트에 저장됨에 따라, 상기 블록체인 네트워크 상에서 기재 정보에 대한 거래를 수행하기 위한 스마트 컨트랙트가 동작 가능하도록 활성화하는 동작;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  6. 제 1 항에 있어서,
    상기 스마트 컨트랙트를 블록체인 네트워크에 포함된 적어도 하나의 노드에 전송하는 동작은,
    상기 유언장 관리 서버의 개인키(private key)로 서명된 제 1 트랜잭션을 생성하는 동작; 및
    생성된 상기 제 1 트랜잭션을 상기 적어도 하나의 노드로 전송하는 동작;
    을 더 포함하며;
    상기 제 1 트랜잭션은,
    상기 개인키로부터 생성된 식별정보를 포함하는 제 1 트랜잭션 입력 값; 및
    상기 스마트 컨트랙트를 포함하는 상기 제 1 트랜잭션이 저장될 상기 블록체인 네트워크 내에서의 주소 정보 및 상기 스마트 컨트랙트를 포함하는 제 1 트랜잭션 출력 값;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  7. 삭제
  8. 삭제
  9. 제 1 항에 있어서,
    상기 유언장의 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트를 실행하여 상기 유언장에 포함된 내용에 대응하는 액션(action)을 수행하는 동작은,
    상기 유언장의 상기 실행 조건이 만족되었다고 인식한 경우, 상기 실행 조건이 만족되었다는 제 1 정보를 상기 블록체인 네트워크에 포함된 적어도 하나의 노드로 전송함으로써, 복수의 노드가 합의 알고리즘을 통해 상기 실행 조건의 유효성을 검증하고, 상기 실행 조건의 유효성이 검증됨에 따라 상기 복수의 노드가 블록에 상기 실행 조건을 제 2 트랜잭션으로 기록하도록 야기하는 동작;
    을 더 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  10. 제 9 항에 있어서,
    상기 실행 조건이 만족되었다는 제 1 정보를 상기 블록체인 네트워크에 포함된 상기 적어도 하나의 노드로 전송하는 동작은,
    상기 유언장 관리 서버의 개인키(private key)로 서명된 제 2 트랜잭션을 생성하는 동작; 및
    생성된 상기 제 2 트랜잭션을 상기 적어도 하나의 노드로 전송하는 동작;
    을 포함하며,
    상기 제 2 트랜잭션은,
    상기 개인키로부터 생성된 상기 제 1 정보를 포함하는 제 2 트랜잭션 입력 값; 및
    상기 제 1 정보를 포함하는 상기 제 2 트랜잭션이 저장될 상기 블록체인 네트워크 내에서의 주소 정보 및 제 1 정보를 포함하는 제 2 트랜잭션 출력 값;
    을 포함하는,
    컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
  11. 유언장 관리 서버로서,
    사용자 단말로부터 기재 정보가 포함된 문서 파일 형태의 유언장의 등록 요청을 수신하는 통신부; 및
    상기 문서 파일 형태의 상기 유언장에 포함된 상기 기재 정보를 분석하여 상기 유언장의 실행 조건 및 상기 실행 조건이 만족된 경우 실행되는 액션(action)을 인식하고, 상기 실행 조건의 만족 여부를 체크하는 제 1 코드와 상기 실행 조건이 만족되는 경우 상기 액션을 수행시키는 제 2 코드를 기록한 스마트 컨트랙트(smart contract)를 생성하는 프로세서;
    를 포함하고,
    상기 프로세서는,
    상기 스마트 컨트랙트를 블록체인 네트워크에 포함된 적어도 하나의 유언장 노드로 전송하도록 상기 통신부를 제어함으로써, 복수의 유언장 노드가 합의 알고리즘을 통해 상기 스마트 컨트랙트의 유효성을 검증하고, 상기 스마트 컨트랙트의 유효성이 검증됨에 따라 상기 복수의 유언장 노드가 유언장 블록에 상기 스마트 컨트랙트를 제 1 트랜잭션으로 기록하도록 야기하고,
    상기 스마트 컨트랙트에 포함된 상기 제 1 코드에 기초하여 상기 사용자 단말의 사용자를 통해 기 설정된 행위가 수행되는지 여부를 확인하고,
    상기 사용자를 통해 상기 기 설정된 행위가 기 설정된 기간동안 수행되지 않은 경우 상기 유언장의 실행 조건이 만족되었다고 인식하고,
    상기 유언장의 실행 조건이 만족되었다고 인식한 경우, 상기 스마트 컨트랙트에 포함된 상기 제 2 코드를 실행하여 상기 액션을 수행하는,
    유언장 관리 서버.
KR1020190026231A 2019-03-07 2019-03-07 유언장을 관리하는 서버 및 방법 KR102139551B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190026231A KR102139551B1 (ko) 2019-03-07 2019-03-07 유언장을 관리하는 서버 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190026231A KR102139551B1 (ko) 2019-03-07 2019-03-07 유언장을 관리하는 서버 및 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200092126A Division KR20200107881A (ko) 2020-07-24 2020-07-24 유언장을 관리하는 서버 및 방법

Publications (1)

Publication Number Publication Date
KR102139551B1 true KR102139551B1 (ko) 2020-07-29

Family

ID=71893582

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190026231A KR102139551B1 (ko) 2019-03-07 2019-03-07 유언장을 관리하는 서버 및 방법

Country Status (1)

Country Link
KR (1) KR102139551B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114817399A (zh) * 2021-09-06 2022-07-29 支付宝(杭州)信息技术有限公司 区块管理方法及装置
KR20230072914A (ko) 2021-11-18 2023-05-25 김찬규 블록체인 nft기반의 가상현실 추모 및 전시 이벤트 지원시스템과 그 시스템의 운용방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070108996A (ko) 2006-05-09 2007-11-15 창 흔 이 인터넷 통신망을 이용한 유언장 작성시스템 및 그 방법
KR20110108092A (ko) * 2010-03-26 2011-10-05 충남대학교산학협력단 인증서에 기반한 인터넷 전자유언장 관리 시스템 및 방법
KR20180041055A (ko) * 2017-09-06 2018-04-23 주식회사 코인플러그 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070108996A (ko) 2006-05-09 2007-11-15 창 흔 이 인터넷 통신망을 이용한 유언장 작성시스템 및 그 방법
KR20110108092A (ko) * 2010-03-26 2011-10-05 충남대학교산학협력단 인증서에 기반한 인터넷 전자유언장 관리 시스템 및 방법
KR20180041055A (ko) * 2017-09-06 2018-04-23 주식회사 코인플러그 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114817399A (zh) * 2021-09-06 2022-07-29 支付宝(杭州)信息技术有限公司 区块管理方法及装置
KR20230072914A (ko) 2021-11-18 2023-05-25 김찬규 블록체인 nft기반의 가상현실 추모 및 전시 이벤트 지원시스템과 그 시스템의 운용방법

Similar Documents

Publication Publication Date Title
US11669811B2 (en) Blockchain-based digital token utilization
US20220239470A1 (en) Cross-blockchain data processing method and apparatus, device, and computer storage medium
US11153069B2 (en) Data authentication using a blockchain approach
US20190172026A1 (en) Cross blockchain secure transactions
JP2021525931A (ja) ブロックチェーンのための効率的な検証
JP2021507407A (ja) ブロックチェーン・ライフサイクルを管理するための方法、装置及びコンピュータ・プログラム
TW202032960A (zh) 基於區塊鏈的資料處理方法和裝置
US20190268153A1 (en) Event execution using a blockchain approach
CN109003185A (zh) 一种智能合约的建立方法、装置、计算设备及存储介质
KR102207560B1 (ko) 파일 공유 서비스를 제공하는 컴퓨팅 장치
US20220329436A1 (en) Token-based identity validation via blockchain
CN111368330A (zh) 一种基于区块链的以太坊智能合约审计系统及方法
KR102139551B1 (ko) 유언장을 관리하는 서버 및 방법
KR102118715B1 (ko) 블록체인을 이용한 자동 송금
CN115114372A (zh) 基于区块链的数据处理方法、装置、设备及可读存储介质
KR20230005353A (ko) 탈중앙화된 데이터베이스에서 허가된 이벤팅
TW202139127A (zh) 用於與區塊鏈相關聯之服務平台之運算服務
KR102254207B1 (ko) 블록체인 상에서의 게임 데이터 관리 방법
CN110858211B (zh) 数据存储方法、装置及系统、存储介质
KR102253238B1 (ko) 분산 컴파일링을 검증하는 방법
KR20200107881A (ko) 유언장을 관리하는 서버 및 방법
KR102163930B1 (ko) 블록체인 보상을 통한 분산 컴파일 시스템
US20210263908A1 (en) Multi-candidate data structure for transaction validation
KR20200091648A (ko) 컨텐츠 다운로드 방법, 컨텐츠 다운로드 관리 서버 및 컴퓨터 프로그램
KR20200097148A (ko) 확률형 아이템 판매의 신뢰를 보증하는 방법

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant