KR101962287B1 - 블록체인을 이용하여 공유재화를 등록하는 공유경제 관리 장치 - Google Patents
블록체인을 이용하여 공유재화를 등록하는 공유경제 관리 장치 Download PDFInfo
- Publication number
- KR101962287B1 KR101962287B1 KR1020180174301A KR20180174301A KR101962287B1 KR 101962287 B1 KR101962287 B1 KR 101962287B1 KR 1020180174301 A KR1020180174301 A KR 1020180174301A KR 20180174301 A KR20180174301 A KR 20180174301A KR 101962287 B1 KR101962287 B1 KR 101962287B1
- Authority
- KR
- South Korea
- Prior art keywords
- shared
- account
- information
- transaction
- specific
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/385—Payment protocols; Details thereof using an alias or single-use codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명은 공유경제를 위한 분산 원장 장치, 분산 원장 방법, 트랜잭션 정보 브로드캐스트 장치 및 방법에 관한 것이다. 이를 위하여, 특정 사용자에 대하여 변경된 난이도 정보를 포함하는 난이도 정보 저장 요청 트랜잭션(Transaction)을 블록체인 내의 제1계정에서 수신하는 저장 요청 수신 단계; 난이도 정보 저장 요청 트랜잭션을 토대로 난이도 정보를 저장하는 저장 단계; 블록체인 내의 제2계정에서의 난이도 정보 확인에 관한 요청인 난이도 정보 확인 쿼리를 수신하는 난이도 정보 확인 요청 단계; 및 제2계정에 난이도 정보를 송신하는 난이도 정보 송신 단계;를 제공할 수 있다.
Description
본 발명은 공유경제를 위한 분산 원장 장치, 분산 원장 방법, 트랜잭션 정보 브로드캐스트 장치 및 방법에 관한 것이다.
공유경제는 상호소비의 경제로서 Airbnb, UBER, Zipcar 등을 통해 시작된 소비 트렌드이자 산업 트렌드이다. 2007년도에는 기업가치 상위권의 기업 중 공유경제를 도입한 기업이 하나도 없었으나, 공유경제는 2008년 Airbnb의 시작 이후는 10년 동안 대중의 삶에 매우 가까워지며 크게 부흥했다. 2018년 초에 마무리된 소프트뱅크의 UBER 지분 15% 인수 과정에서 책정된 UBER의 기업가치는 480억 달러로 평가된 바 있다. 코스피 2위의 대기업인 현대자동차의 2018년 초 시가총액이 40조원이므로 대표적인 공유경제 기업인 UBER의 기업가치가 얼마나 높게 평가되었는지 알 수 있다. 이러한 공유경제의 높은 기업가치는 결국 공유경제 생태계를 구성하는 공유경제의 이용자와 공유경제의 공급자에 의해 생산된 가치라고 볼 수 있다.
하지만, 현대의 공유경제에는 공유경제의 가치에 상당부분 기여한 공유경제의 이용자와 공급자에게 균등하게 배분되지 않는다는 문제가 있다. 모든 이익은 공유경제 플랫폼을 운영하는 운영자들이 취하게 된다. 예를 들어, UBER의 전 CEO인 트래비스 캘러닉은 올해 초에 진행된 소프트뱅크의 UBER 지분 인수 과정에서 자신의 보유 주식 중 29%를 소프트뱅크에 매각하였는데, 이는 14억 달러(한화 약 1조 5천억원)에 달한다. 반면에 UBER의 생태계를 구성하는 공급자인 운전기사의 연소득은 2016년 약 2만달러 수준(일주일 40시간 근무 기준, 예를 들어, 디트로이트 지역의 경우 시간당 평균 약 8.77달러)이었다.
기존 공유경제의 위와 같은 문제를 해결하기 위해서는 공유경제에 블록체인을 도입하는 것이 바람직하다. 블록체인은 중개인 없이 안전하고 분권화된 방식으로 소프트웨어를 운영할 수 있는 기술이다. 블록체인을 이용하면 집중화된 서버 상에서 공유경제 플랫폼이 실행될 필요가 없다. 블록체인 기술 기반의 공유경제 플랫폼이 구현될 수 있다면, 공유경제가 어느 하나의 주체에 의해 통제되지 않고 개인 간 네트워크 상에서 운영될 수 있게 된다.
하지만, 공유경제가 블록체인 위에서 운영되도록 만드는 것은 기술적인 어려움이 있다. 공유경제가 블록체인 위에서 운영되는 경우, UBER와 같이 생태계를 관리하는 운영주체가 부재하기 때문에 예약의 중첩 문제, 리스팅(listing) 문제, 에스크로 문제 등이 발생될 수 있다.
따라서, 본 발명의 목적은 위와 같은 문제를 해결하기 위해, 이용자와 공급자 사이의 중개자가 없으면서도 공유경제를 구축할 수 있는 공유경제를 위한 분산 원장 장치, 분산 원장 방법, 트랜잭션 정보 브로드캐스트 장치 및 방법을 제공하는 데에 있다.
이하 본 발명의 목적을 달성하기 위한 구체적 수단에 대하여 설명한다.
본 발명의 목적은, 공유경제 관리 계정, 제1계정 및 제2계정을 포함하는 블록체인을 저장하는 메모리 모듈; 및 상기 메모리 모듈과 동작 가능하도록 결합되고, 상기 공유경제 관리 계정의 컴퓨터 판독 가능한 프로그램 코드를 실행하는 처리 모듈;을 포함하고, 상기 공유경제 관리 계정의 상기 프로그램 코드는, 특정 조건에 따라 특정 공유재화에 대한 토큰 송금 트랜잭션(Transaction)을 생성하도록 하는 조건부 토큰 송금 요청을 상기 블록체인 내의 상기 제1계정에서 수신하는 조건부 토큰 송금 요청 수신 단계; 상기 특정 조건의 만족 여부를 확인하는 조건 확인 단계; 상기 특정 조건이 만족되는 것으로 판정되면, 상기 조건부 토큰 송금 트랜잭션을 생성하는 트랜잭션 생성 단계; 및 상기 조건부 토큰 송금 트랜잭션을 상기 블록체인이 포함되는 블록체인 분산 네트워크에 브로드캐스트 하는 배포 단계;를 수행하는 명령을 포함하며, 상기 제1계정은 공유경제의 이용자 계정이고, 상기 제2계정은 상기 공유경제의 공급자 계정이며, 상기 조건부 토큰 송금 트랜잭션은 상기 제1계정에서 상기 제2계정으로 특정 개수의 토큰을 송금하도록 하는 명령 및 상기 특정 공유재화에 대한 정보인 특정 공유재화 정보을 포함하는 것을 특징으로 하는, 공유경제를 위한 분산 원장 장치를 제공하여 달성될 수 있다.
또한, 상기 조건 확인 단계는, 상기 제2계정 또는 상기 공유경제의 공급자의 클라이언트인 공급자 클라이언트에 사용 승인을 요청하는 사용 승인 단계; 및 상기 사용 승인의 수신을 확인하는 사용 승인 확인 단계;를 포함할 수 있다.
또한, 상기 조건 확인 단계는, 상기 제2계정 또는 상기 공유경제의 공급자의 클라이언트인 공급자 클라이언트에 사용 승인을 요청하는 사용 승인 단계; 상기 사용 승인의 수신을 확인하는 사용 승인 확인 단계; 상기 특정 공유재화 정보를 포함하는 공유재화 등록 트랜잭션 및 기존의 조건부 토큰 송금 트랜잭션을 검색하는 검색 단계; 및 검색된 상기 공유재화 등록 트랜잭션 및 상기 조건부 토큰 송금 트랜잭션을 기초로 상기 특정 공유재화의 가용성을 검증하는 가용성 검증 단계;를 포함할 수 있다.
또한, 상기 특정 공유재화 정보는 상기 특정 공유재화에 대한 이미지 정보 또는 설명 정보의 해시값인 공유재화 정보 해시값이고, 상기 조건 확인 단계에서는, 상기 공유재화 정보 해시값을 기초로 상기 특정 공유재화 정보의 무결성을 검증할 수 있다.
본 발명의 다른 목적은, 특정 조건에 따라 특정 공유재화에 대한 토큰 송금 트랜잭션(Transaction)을 생성하도록 하는 조건부 토큰 송금 요청을 상기 블록체인 내의 상기 제1계정에서 수신하는 조건부 토큰 송금 요청 수신 모듈; 상기 특정 조건의 만족 여부를 확인하는 조건 확인 모듈; 상기 특정 조건이 만족되는 것으로 판정되면, 상기 조건부 토큰 송금 트랜잭션을 생성하는 트랜잭션 생성 모듈; 및 상기 조건부 토큰 송금 트랜잭션을 상기 블록체인이 포함되는 블록체인 분산 네트워크에 브로드캐스트 하는 배포 모듈;을 포함하며, 상기 제1계정은 공유경제의 이용자 계정이고, 상기 제2계정은 상기 공유경제의 공급자 계정이며, 상기 조건부 토큰 송금 트랜잭션은 상기 제1계정에서 상기 제2계정으로 특정 개수의 토큰을 송금하도록 하는 명령 및 상기 특정 공유재화에 대한 정보인 특정 공유재화 정보을 포함하는 것을 특징으로 하는, 공유경제를 위한 분산 원장 장치를 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 특정 조건에 따라 특정 공유재화에 대한 토큰 송금 트랜잭션(Transaction)을 생성하도록 하는 조건부 토큰 송금 요청을 상기 블록체인 내의 상기 제1계정에서 수신하는 조건부 토큰 송금 요청 수신 단계; 상기 특정 조건의 만족 여부를 확인하는 조건 확인 단계; 상기 특정 조건이 만족되는 것으로 판정되면, 상기 조건부 토큰 송금 트랜잭션을 생성하는 트랜잭션 생성 단계; 및 상기 조건부 토큰 송금 트랜잭션을 상기 블록체인이 포함되는 블록체인 분산 네트워크에 브로드캐스트 하는 배포 단계;를 포함하며, 상기 제1계정은 공유경제의 이용자 계정이고, 상기 제2계정은 상기 공유경제의 공급자 계정이며, 상기 조건부 토큰 송금 트랜잭션은 상기 제1계정에서 상기 제2계정으로 특정 개수의 토큰을 송금하도록 하는 명령 및 상기 특정 공유재화에 대한 정보인 특정 공유재화 정보을 포함하는 것을 특징으로 하는, 공유경제를 위한 분산 원장 방법을 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 특정 조건에 따라 특정 공유재화에 대한 토큰 송금 트랜잭션(Transaction)을 생성하도록 하는 조건부 토큰 송금 요청을 상기 블록체인 내의 상기 제1계정에서 수신하는 조건부 토큰 송금 요청 수신 단계; 상기 특정 조건의 만족 여부를 확인하는 조건 확인 단계; 상기 특정 조건이 만족되는 것으로 판정되면, 상기 조건부 토큰 송금 트랜잭션을 생성하는 트랜잭션 생성 단계; 및 상기 조건부 토큰 송금 트랜잭션을 상기 블록체인이 포함되는 블록체인 분산 네트워크에 브로드캐스트 하는 배포 단계;를 포함하며, 상기 제1계정은 공유경제의 이용자 계정이고, 상기 제2계정은 상기 공유경제의 공급자 계정이며, 상기 조건부 토큰 송금 트랜잭션은 상기 제1계정에서 상기 제2계정으로 특정 개수의 토큰을 송금하도록 하는 명령 및 상기 특정 공유재화에 대한 정보인 특정 공유재화 정보을 포함하는 것을 특징으로 하는, 공유경제를 위한 분산 원장 방법을 컴퓨터 상에서 수행하는 기록매체에 저장된 프로그램을 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 공유경제의 이용자의 클라이언트에서 상기 이용자의 조건부 토큰 송금 요청을 수신하는 조건부 토큰 송금 요청 수신 모듈; 및 공유경제 관리 계정에 대한 트랜잭션 정보를 상기 조건부 토큰 송금 요청을 포함하여 생성하고, 상기 난이도 정보 포함된 상기 트랜잭션 정보를 분산 원장에 저장한 뒤, 블록체인 분산 네트워크를 통해 적어도 일부의 노드에 브로드캐스트(Broadcast)하는 브로드캐스트 모듈;을 포함하고, 상기 공유경제 관리 계정은, 상기 조건부 토큰 송금 요청을 상기 블록체인 내의 상기 이용자의 계정에서 수신하는 조건부 토큰 송금 요청 수신 단계; 상기 특정 조건의 만족 여부를 확인하는 조건 확인 단계; 상기 특정 조건이 만족되는 것으로 판정되면, 상기 조건부 토큰 송금 트랜잭션을 생성하는 트랜잭션 생성 단계; 및 상기 조건부 토큰 송금 트랜잭션을 상기 블록체인이 포함되는 블록체인 분산 네트워크에 브로드캐스트 하는 배포 단계;를 수행하는 컴퓨터 판독 가능한 프로그램 코드를 포함하며, 상기 조건부 토큰 송금 트랜잭션은 상기 이용자의 계정에서 상기 공유경제의 공급자의 계정으로 특정 개수의 토큰을 송금하도록 하는 명령 및 상기 특정 공유재화에 대한 정보인 특정 공유재화 정보을 포함하는 것을 특징으로 하는, 트랜잭션 정보 브로드캐스트 장치를 제공하여 달성될 수 있다.
본 발명의 다른 목적은, 공유경제 관리 계정, 제1계정 및 제2계정을 포함하는 블록체인을 저장하는 메모리 모듈; 및 상기 메모리 모듈과 동작 가능하도록 결합되고, 상기 공유경제 관리 계정의 컴퓨터 판독 가능한 프로그램 코드를 실행하는 처리 모듈;을 포함하고, 상기 공유경제 관리 계정의 상기 프로그램 코드는, 특정 공유재화의 이미지 정보 및 설명 정보의 해시값, 상기 제2계정에 대한 정보인 공급자 계정 정보, 일정 정보 및 가격 정보를 포함하는 공유재화 등록 트랜잭션 정보를 생성하는 공유재화 등록 단계; 상기 특정 공유재화의 사용에 관한 정보인 특정 공유재화 정보를 포함하는 조건부 토큰 송금 요청을 상기 블록체인 내의 상기 제1계정에서 수신하는 조건부 토큰 송금 요청 수신 단계; 상기 특정 공유재화 정보를 포함하는 트랜잭션인 공유재화 등록 트랜잭션 및 기존의 조건부 토큰 송금 트랜잭션을 검색하는 검색 단계; 검색된 상기 공유재화 등록 트랜잭션 및 상기 조건부 토큰 송금 트랜잭션을 기초로 상기 특정 공유재화의 가용성을 검증하는 가용성 검증 단계; 상기 특정 공유재화의 상기 가용성이 검증되면, 상기 조건부 토큰 송금 트랜잭션을 생성하는 트랜잭션 생성 단계; 및 상기 조건부 토큰 송금 트랜잭션을 상기 블록체인이 포함되는 블록체인 분산 네트워크에 브로드캐스트 하는 배포 단계;를 수행하는 컴퓨터 판독 가능한 프로그램 코드를 포함하며, 상기 제1계정은 공유경제의 이용자 계정이고, 상기 제2계정은 상기 공유경제의 공급자 계정이며, 상기 특정 공유재화 정보는 상기 특정 공유재화에 대한 상기 이미지 정보 또는 상기 설명 정보의 해시값인 공유재화 정보 해시값이고, 상기 검색 단계에서 상기 공유재화 정보 해시값의 검색 가부를 기초로 상기 특정 공유재화 정보의 무결성을 검증하며, 상기 조건부 토큰 송금 트랜잭션은 상기 제1계정에서 상기 제2계정으로 특정 개수의 토큰을 송금하도록 하는 명령 및 상기 특정 공유재화에 대한 정보인 특정 공유재화 정보을 포함하는 것을 특징으로 하는, 블록체인을 이용하여 공유재화를 등록하는 공유경제 관리 장치를 제공하여 달성될 수 있다.
상기한 바와 같이, 본 발명에 의하면 이하와 같은 효과가 있다.
첫째, 본 발명의 일실시예에 따르면, 운영주체와 같은 중개자 없이도 공유경제를 구축할 수 있는 효과가 발생된다.
둘째, 본 발명의 일실시예에 따르면, 운영주체와 같은 중개자가 없으면서도 복수의 이용자에 의해 예약이 중첩되는 문제가 발생되지 않는 효과가 발생된다.
셋째, 본 발명의 일실시예에 따르면, 운영주체와 같은 중개자가 없으면서도 에스크로 기능이 가능해지는 효과가 발생된다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일실시예에 따른 분산 원장 장치를 도시한 모식도,
도 2는 다양한 노드의 형태를 도시한 모식도,
도 3은 본 발명의 일실시예에 따른 블록체인을 이용한 공유경제 시스템을 도시한 모식도,
도 4는 본 발명의 일실시예에 따른 데이터의 흐름을 도시한 흐름도,
도 5는 본 발명의 일실시예에 따른 공유경제 관리 계정의 모식도,
도 6은 본 발명의 일실시예에 따른 공유재화 등록 트랜잭션 정보의 데이터 구조를 도시한 모식도,
도 7은 본 발명의 일실시에에 따른 공유재화 등록 방법을 도시한 흐름도,
도 8은 본 발명의 일실시예에 따른 조건부 토큰 송금 트랜잭션 정보의 데이터 구조를 도시한 모식도,
도 9는 본 발명의 일실시예에 따른 조건부 토큰 송금을 이용한 공유재화 이용 요청 방법을 도시한 것,
도 10은 본 발명의 일실시예에 따른 사용 승인을 특정 조건으로 하는 공유경제를 위한 분산 원장 방법을 도시한 흐름도,
도 11은 본 발명의 트랜잭션 정보 송신 장치(2)와 분산 원장 장치(10)의 HTTP 통신을 도시한 모식도,
도 12는 본 발명의 일실시예에 따른 트랜잭션 정보 송신 장치가 특정 공유재화 사용 요청을 수신한 경우를 도시한 모식도이다.
도 1은 본 발명의 일실시예에 따른 분산 원장 장치를 도시한 모식도,
도 2는 다양한 노드의 형태를 도시한 모식도,
도 3은 본 발명의 일실시예에 따른 블록체인을 이용한 공유경제 시스템을 도시한 모식도,
도 4는 본 발명의 일실시예에 따른 데이터의 흐름을 도시한 흐름도,
도 5는 본 발명의 일실시예에 따른 공유경제 관리 계정의 모식도,
도 6은 본 발명의 일실시예에 따른 공유재화 등록 트랜잭션 정보의 데이터 구조를 도시한 모식도,
도 7은 본 발명의 일실시에에 따른 공유재화 등록 방법을 도시한 흐름도,
도 8은 본 발명의 일실시예에 따른 조건부 토큰 송금 트랜잭션 정보의 데이터 구조를 도시한 모식도,
도 9는 본 발명의 일실시예에 따른 조건부 토큰 송금을 이용한 공유재화 이용 요청 방법을 도시한 것,
도 10은 본 발명의 일실시예에 따른 사용 승인을 특정 조건으로 하는 공유경제를 위한 분산 원장 방법을 도시한 흐름도,
도 11은 본 발명의 트랜잭션 정보 송신 장치(2)와 분산 원장 장치(10)의 HTTP 통신을 도시한 모식도,
도 12는 본 발명의 일실시예에 따른 트랜잭션 정보 송신 장치가 특정 공유재화 사용 요청을 수신한 경우를 도시한 모식도이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 쉽게 실시할 수 있는 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작원리를 상세하게 설명함에 있어서 관련된 공지기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다. 명세서 전체에서, 특정 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고, 간접적으로 연결되어 있는 경우도 포함한다. 또한, 특정 구성요소를 포함한다는 것은 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
공유경제를 위한 분산 원장 장치
분산 원장 장치에 관하여, 도 1은 본 발명의 일실시예에 따른 분산 원장 장치를 도시한 모식도이다. 도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 분산 원장 장치(1)는 블록체인 분산 네트워크(100)의 노드 중 하나를 의미할 수 있고, 통신 모듈(10), 처리 모듈(11), 메모리 모듈(12)을 포함할 수 있다.
블록체인 분산 네트워크(100)는 블록체인의 분산 원장을 저장하고 있는 복수대의 노드로 구성된 P2P 분산 네트워크를 의미한다. 블록체인 분산 네트워크(100)는 적어도 일부의 노드가 동일한 처리를 할 수 있도록 구성되기 때문에 일부의 노드가 Shut down 되거나 변조되더라도 시스템 전체에는 영향을 주지 않는 특징을 가진다. 노드는 블록체인 분산 네트워크(100)에 연결된 모든 컴퓨팅 장치를 의미할 수 있다. 이러한 노드는 디지털 지갑, 블록체인 복사본, 검증 엔진, 채굴 엔진, P2P 네트워크 배포 기능(브로드캐스트) 등을 포함할 수 있으며, 조금 더 Light한 기능들로만 구성된 클라이언트들도 포함될 수 있다. 본 발명의 일실시예에 따른 블록체인 분산 네트워크(100)는 Pure P2P와 슈퍼 노드(Super Node)를 포함하는 Hybrid P2P를 포함할 수 있다. 특히 본 발명의 일실시예에 따른 노드는 PC/모바일 게임 애플리케이션의 소스코드와 함께 클라이언트에 설치될 수 있다.
노드와 관련하여, 도 2는 다양한 노드의 형태를 도시한 모식도이다. 도 2에 도시된 바와 같이, 레퍼런스 클라이언트(Reference client)는 사용자들의 디지털 지갑 관리 모듈, 합의 알고리즘이 작업 증명(POW, Proof of Work)인 경우 블록 채굴(Block Mining)을 위한 마이닝 모듈(Mining Module), 전체 블록체인 중 전부 또는 적어도 일부의 블록을 저장하는 블록체인 데이터베이스(Blockchain Database), 트랜잭션(Transaction)을 블록체인 분산 네트워크에 브로드캐스트(Broadcast)하는 네트워크 라우팅 모듈(Network Routing Module)을 포함하는 노드를 의미할 수 있고, 예를 들어 Bitcoin Core의 Client 등을 의미할 수 있다. 풀노드(Full Node)는 블록체인 데이터베이스, 네트워크 라우팅 모듈을 포함하는 노드를 의미할 수 있다. 솔로 마이너 노드(Solo Miner Node)는, 마이닝 모듈, 블록체인 데이터베이스, 네트워크 라우팅 모듈을 포함하는 노드를 의미할 수 있다. 마이닝 노드(Mining Node)는, 마이닝 풀(Mining Pool)의 노드를 의미하는 풀 마이닝 노드(Pool Mining Node)에 연결되는 게이트웨이 라우터(Gateway Router)와 마이닝 모듈을 포함하는 가벼운 노드를 의미할 수 있다. 라이트웨이트 월렛 노드(Lightweight Wallet Node)는 일반적으로 블록체인의 헤더정보만 저장하고, 디지털 지갑 관리 모듈을 보유하여 사용자의 디지털 지갑을 저장하며, 네트워크 라우팅 모듈을 포함하긴 하지만 블록체인 데이터베이스를 포함하지 않아 트랜잭션 생성이나 블록체인 분산 네트워크에 접근하기 위해서는 제3자가 소유한 서버에 의존하는 가벼운 노드를 의미할 수 있다. 본 발명의 일실시예에 따른 분산 원장 장치(1)는 위의 노드들 중 블록체인 데이터베이스와 네트워크 라우팅 모듈을 포함하는 노드들을 의미할 수 있다. 또한, 본 발명의 일실시예에 따른 노드가 마이닝 모듈을 포함하는 경우에는 POW(Proof of Work) 또는 POS(Proof of Stake) 방식으로 사용자 클라이언트가 마이닝을 수행하도록 구성할 수 있다.
통신 모듈(10)은 트랜잭션(Transaction)을 블록체인 분산 네트워크에 브로드캐스트(Broadcast)하는 네트워크 라우팅 모듈(Network Routing Module)이나 풀 마이닝 노드(Pool Mining Node)에 연결되는 게이트웨이 라우터(Gateway Router) 등을 의미할 수 있다.
처리 모듈(11)은 메모리 모듈(12)에 저장된 분산 원장인 블록체인의 블록에 저장되어 있는 트랜잭션의 내용을 처리하는 모듈이다. 본 발명의 일실시예에 따른 처리 모듈(11)은 Ethereum Virtual Machine과 같은 가상 머신(VM)으로 구성될 수 있다. 이러한 가상 머신은 예를 들어, Mutan, LLL, Serpent, Solidity 등과 같은 상위 레벨 언어로 만들어진 코드(스마트 계약, Smart Contract)가 컴파일되어 생성되는 Byte Code를 실행하기 위한 Runtime이고, OPCODE 및 Stack 외에 Memory 및 Storage를 사용하는 주체이기도 하다.
메모리 모듈(12)은 분산 원장을 저장하는 모듈로서, 전체 블록체인 중 전부 또는 일부의 블록을 저장하는 블록체인 데이터베이스(Blockchain Database)를 의미할 수 있다.
도 3은 본 발명의 일실시예에 따른 블록체인을 이용한 공유경제 시스템을 도시한 모식도이다. 도 3에 도시된 바와 같이, 본 발명의 일실시예에 따른 블록체인을 이용한 공유경제 시스템은 이용자 클라이언트(200), 공급자 클라이언트(320), Dapp(400), IPFS(410), 서버(420), DB(430), 블록체인(30)을 포함할 수 있다.
이용자 클라이언트(200)는 공유경제의 공유재화 이용자가 Dapp(Decenteralized Application)을 이용하기 위한 스마트폰과 같은 클라이언트를 의미한다.
공급자 클라이언트(320)는 공유경제의 공유재화 공급자가 Dapp에 공유재화를 등록하고 공유재화의 사용을 허여하는 등의 공유경제 시스템을 이용하기 위한 스마트폰과 같은 클라이언트를 의미한다.
Dapp(400)은 공유경제 시스템의 Dapp과 같은 웹 프론트엔드(Web Frontend)를 의미하며, Dapp의 웹 프론트엔드는 HTML, CSS, 자바스크립트(web3js의 비중이 큼)의 조합으로 구성될 수 있다. 이용자 클라이언트(200)와 공급자 클라이언트(320)는 이 프론트엔드 애플리케이션을 통해 블록체인(30), IPFS(410), nodeJS 서버(420)와 상호작용하게 된다.
IPFS(410, InterPlanetary File System)는 모든 컴퓨팅 장치를 동일한 파일 시스템으로 연결하려고 하는 P2P 분산 파일 시스템이다. Git 레포지트리의 오브젝트를 교환하는 단일 비트토렌트 스웜 (파일의 고유 식별자와 파일을 소유하고 있는 피어 목록)으로도 볼 수 있다. 즉, IPFS는 Cotent의 해시값을 주소로 활용하는 content addressed 하이퍼 링크를 이용하여 높은 처리량을 가진 content addressed 블록 스토리지 모델을 제공한다. 이는 버전 관리되는 파일 시스템, 블록 체인, 영구적인 웹 페이지를 구축할 수 있는 자료 구조인 일반화된 Markle DAG의 형태를 가질 수 있다. IPFS는 분산 해시 테이블과 인센티브화된 블록 교환과 자체 인증 네임스페이스를 합친 것이다. IPFS를 활용하면 특정 노드의 예상치 못한 종료나 파괴에 의해서 단일 실패 지점이 발생되지 않으며, 각자의 노드들은 서로 신뢰할 필요가 없게 되는 효과가 발생된다. 본 발명의 일실시에에 따라 공급자가 공유경제 Dapp(400)에 상품을 올리면, 프론트엔드인 Dapp(400)은 상품 이미지 파일과 설명을 IPFS(410)에 업로드한 후 업로드된 파일의 해시를 블록체인(30) 및 DB(430)에 저장하게 된다.
서버(420)는 프론트엔드인 Dapp(400)이 DB(430)와 통신하기 위한 Off Chain의 백엔드 서버이다. API를 통해 프론트엔드에서 데이터베이스의 공유재화 정보를 쿼리하고 받을 수 있게 구성된다. 또한 DB(430)에서 다양한 조건으로 등록된 공유재화의 검색 및 리스팅(Listing)을 수행하는 구성이다.
DB(430)는 서버(420)와 연결되어 공유재화의 정보를 저장하고 인덱싱하는 Off Chain 데이터베이스이다. 예를 들어, 몽고DB 등의 데이터베이스로 구성될 수 있다. 블록체인에 모든 공유재화를 올린다 해도, 공유재화를 Dapp(400) 상에서 디스플레이하고 다양한 필터를 적용할 때마다(특정 카테고리 상품만 보거나, 곧 마감되는 상품을 조회하는 등) 블록체인에 쿼리를 날리는 것은 비효율적이다. 따라서, 본 발명의 일실시예에서는 블록체인(30) 대신 Off Chain의 DB(430)를 사용해서 공유재화 정보를 저장하고 쿼리하게 된다.
블록체인(30)은 공유경제를 위한 분산 원장 장치(1)의 메모리 모듈(12)에 저장되는 Linked List인 복수개의 블록으로 구성되어 있고, 특정 블록 이후부터는 공유경제 관리 계정, 이용자 계정, 공급자 계정을 포함한다. 본 발명의 일실시예에 따른 블록체인(30)에 대해서는 이하에서 설명한다.
도 4는 본 발명의 일실시예에 따른 데이터의 흐름을 도시한 흐름도이다. 도 4에 도시된 바와 같이, 블록체인(30)에는 이용자 계정(20), 공급자 계정(32)과 공유경제 관리 계정(31)이 포함될 수 있다. 공유경제 관리 계정(31)은 Smart Contract를 포함하는 CA(Contract Account)로 구성될 수 있고, 블록체인(30) 내에서 이용자 계정(20) 및 공급자 계정(32)에 연결되어 공유경제의 중재자 역할을 블록체인 내에서 수행하는 계정을 의미한다. 이용자 계정(20)은 EoA(External Owned Accouunt) 또는 CA(Contract Account)로 구성될 수 있고, 공유경제 서비스 이용자의 클라이언트와 연결되어 공유경제 관리 계정(31)에 리스팅(Listing) 요청, 사용 요청(예약 요청을 포함), 조건부 토큰 송금, 이용자 평점 송신 등을 수행하는 계정을 의미한다. 공급자 계정(32)은 EoA(External Owned Accouunt) 또는 CA(Contract Account)로 구성될 수 있고, 공유경제 서비스 공급자의 클라이언트와 연결되어 공유경제 관리 계정(31)에 공유재화를 등록하기 위한 공유재화 등록 요청, 공유재화의 사용을 승인하기 위한 사용 승인 요청, 이용자의 사용 시작을 기록하기 위한 사용 시작 확인, 이용자의 사용 종료를 기록하기 위한 사용 종료 확인, 토큰 수신, 공급자 평점 송신 등을 수행하는 계정을 의미한다. 도 5는 본 발명의 일실시예에 따른 공유경제 관리 계정의 모식도를 도시한 것이다. 도 5에 도시된 바와 같이, 공유경제 관리 계정(31) 내에 포함되는 스마트 컨트랙트 프로그램 코드에는 공유재화 등록에 관한 함수인 공유재화 등록 함수를 포함한 공유재화 등록 모듈(310), 리스트 출력 함수를 포함한 리스트 출력 모듈(311), 토큰 수신 및 조건부 토큰 송금 함수를 포함한 조건부 토큰 모듈(312), 사용 요청 수신 및 승인 요청 함수를 포함한 사용 승인 모듈(313), 키 출력 함수를 포함한 키 출력 모듈(314), 사용 시작 확인 수신 함수를 포함한 사용 시작 확인 모듈(315), 사용 종료 확인 수신 함수를 포함한 사용 종료 확인 모듈(316), 이용자 평점 및 공급자 평점 수신 함수를 포함한 평점 수신 모듈(317) 등을 포함할 수 있다.
공유재화 등록 모듈(310)은 공유경제 관리 계정(31) 내에 포함되고, 공급자 클라이언트(320)에서 공급자 계정(32)을 통해 공유재화 등록 트랜잭션이 요청(호출)되는 경우, 공유재화 정보(예를 들어, IPFS 공유재화 정보 해시값)를 포함한 공유재화 등록 트랜잭션을 공유경제 관리 계정(31)에 생성 및 저장(메모리)하고 블록체인 분산 네트워크에 배포(Broadcast)하여 적어도 일부의 노드가 공유하게 하는 모듈을 의미한다.
리스트 출력 모듈(311)은 공유경제 관리 계정(31) 내에 포함되고, 이용자 클라이언트(200)에서 이용자 계정(20)을 통해 리스팅(Listing)이 요청(호출)되는 경우, 특정 조건의 공유재화 정보를 공유경제 관리 계정(31)에서 조회하여 이용자 계정(20)을 통해 이용자 클라이언트(200)에 출력하거나, 이용자 클라이언트(200)에 직접 출력하는 모듈을 의미한다.
조건부 토큰 모듈(312)은 공유경제 관리 계정(31) 내에 포함되고, 이용자 클라이언트(200)에서 이용자 계정(20)을 통해, 이용자 계정(20)에서 공급자 계정(32)으로의 특정 조건부의 토큰 송금 트랜잭션(tx, Transaction)이 생성되도록 요청(조건부 토큰 송금 요청)되는 경우, 특정 조건의 만족을 전제로 한 토큰 송금에 대한 트랜잭션을 공유경제 관리 계정(31)에 생성 및 저장(메모리)하고 블록체인 분산 네트워크에 배포(Broadcast)하여 적어도 일부의 노드가 공유하게 하는 모듈을 의미한다. 특정 조건을 만족하는지 여부는 공유경제 관리 계정(31)에서 판정하게 된다. 특정 조건이 만족되는 것으로 판정되는 경우, 특정 개수의 토큰을 이용자 계정(20)에서 삭제하고 특정 개수의 토큰을 공급자 계정(32)에 할당하게 된다. 특정 조건이 만족되는 경우의 토큰 상태 변경은 블록체인 분산 네트워크에 공유된다. 만일 특정 조건이 만족되지 않는 것으로 판정되는 경우, 토큰 송금 요청은 공유경제 관리 계정(31)에 트랜잭션을 생성하지 못하고 이용자 계정(20)에 반환(Reject)될 수 있다. 특정 조건이 만족되지 않는 경우에는 블록체인 분산 네트워크에 공유될 토큰 상태 변경이 존재하지 않는다. 본 발명의 일실시예에 따르면, 토큰 송금 요청만으로 공유재화의 이용을 요청할 수 있게 되므로 중개인 역할을 수행하는 운영자 없이도 공유경제가 구동될 수 있는 효과가 발생된다.
본 발명의 일실시예에 따른 특정 조건은 이용자 적법 여부, 공유재화 적법 여부, 공급자 사용 승인 여부 등의 조건을 포함할 수 있다. 이용자 적법 여부는 이용자 계정 주소에 대한 블랙 리스트(Black List), 화이트 리스트(White List) 또는 이용자 정보에 대한 별도의 조건이 존재하는 경우, 각 조건을 만족하는 이용자인지 여부를 판정하는 조건을 의미한다. 공유재화 적법 여부는 공유경제 관리 계정(31)에 등록된 공유재화 등록 트랜잭션에 함께 저장된 공유재화 정보에 기초하여 해당 공유재화가 이용 가능한 상태인지를 판정하는 조건을 의미한다. 공급자 사용 승인 여부는 공급자 클라이언트(320)가 해당 이용자 클라이언트(200)의 사용 요청(예를 들어, 토큰 송금 트랜잭션 요청이나 사용 요청)에 대하여 사용을 승인하는 트랜잭션이 공유경제 관리 계정(31)에 생성되었는지 여부를 판정하는 조건을 의미한다. 이와 관련하여, 아래에서 사용 승인 모듈(313)에 대해 자세히 기술한다.
사용 승인 모듈(313)은 공유경제 관리 계정(31) 내에 포함되고, 본 발명의 일실시예에 따라 상기 특정 조건에 공급자의 사용 승인이 포함되는 경우에 이용된다. 사용 승인 모듈(313)은 이용자 계정(20) 또는 이용자 클라이언트(200)으로부터 사용 요청(예를 들어, 조건부 토큰 송금 요청)을 수신하면 공급자 계정(32) 또는 공급자 클라이언트(320)에 사용 승인 요청을 송신하고, 이후 공급자 계정(32)으로부터 사용 승인을 수신하는 모듈이다. 사용 승인 모듈(313)이 공급자 계정(32)으로부터 사용 승인을 수신하면, 공유경제 관리 계정(31)은 수신된 토큰 송금 요청에 대응되는 트랜잭션 중 토큰 송금을 제외하고 사용 승인의 상태 변경에 대해서만 먼저 트랜잭션을 생성하고 메모리에 저장한 뒤 배포할 수 있다. 본 발명의 일 실시예에 따라 사용 승인에 대한 트랜잭션이 배포되면 Dapp(400)에서 검색되는 공유재화의 리스트에서 특정 기간에 대해 특정 이용자에게 사용이 승인되었다는 업데이트가 가능해지는 효과가 발생된다. 이에 따라 공유재화의 중복 예약이 방지되는 효과가 발생된다. 본 발명의 일실시예에 따른 사용 승인 모듈(313)에 따르면, 중개 운영자가 없는 블록체인 공유경제 생태계에서도 이용자 및 공급자 평점 시스템이 구현될 수 있게 되는 효과가 발생된다.
키 출력 모듈(314)은 공유경제 관리 계정(31) 내에 포함되고, 조건부 토큰 모듈(312)에서 상기 특정 조건이 만족되는 것으로 판정되거나, 만족되는 것으로 판정된 이후에 사용 승인 모듈(313)에서 공급자의 사용 승인까지 수신하는 경우, 동적으로 생성되는 키(Key)를 출력하여 이용자 클라이언트(200)와 공급자 클라이언트(320)에 송신하는 모듈이다. 본 발명의 일실시예에 따른 키(Key)는 조건부 토큰 송금 요청 및 특정 조건의 Hash 값을 의미할 수 있고, 이용자와 공급자는 이러한 키 값을 기초로 하여 Bar-code, QR Code, Color Code, RFID, NFC 등의 구현에 이용될 수 있다. 본 발명의 일실시에에 따르면, 이용자가 특정 공유재화를 선택하여 토큰을 송금하고 키가 출력되면, 해당 키를 가지고 온라인/오프라인 식별/인증을 할 수 있게 되는 효과가 발생된다. 공급자도 해당 키를 통해 이용자를 식별하거나 인증할 수 있게 되는 효과가 발생된다. 본 발명의 일실시예에 따른 키에 의해 완전히 분산된 공유경제 시스템이 가능해지는 효과가 발생된다.
또한, 본 발명의 일실시예에 따르면, 이용자 클라이언트(200)에는 이용자 키를 출력하고, 공급자 클라이언트(320)에는 공급자 키를 출력하도록 구성될 수 있다. 공급자 키와 이용자 키는 비대칭 키 시스템으로 구성될 수 있으며, 공급자 키는 공급자 계정 주소를 공개키(Public Key)로 구성될 수 있고, 이용자 키를 비밀키(Private Key)로 구성할 수 있다. 본 발명의 일실시예에 따르면, 이용자가 공유재화의 사용을 위하여 공급자와 대면하고, 공급자 클라이언트가 이용자 키를 수신하면 조건부 토큰 송금 요청 및 특정 조건의 Hash 값을 공개키(Public Key)인 공급자 키로 암호화한 값을 비밀키(Private Key)인 이용자 키로 복호화하여 조건부 토큰 송금 요청 및 특정 조건의 Hash 값이 맞는지 확인하는 방식으로 이용자 키를 검증할 수 있다.
본 발명의 일실시예에 따르면, 이용자의 공유재화에 대한 실제 사용 여부가 상기 토큰 송금에 대한 상기 특정 조건이 될 수 있다. 이와 관련하여, 이하에서 사용 시작 확인 모듈(315)과 사용 종료 확인 모듈(316)을 살펴본다.
사용 시작 확인 모듈(315)은 공유경제 관리 계정(31) 내에 포함되고, 키가 출력된 이후에 이용자가 실제로 공유재화를 시작하였다는 점을 블록체인에 기록하는 트랜잭션을 생성하는 모듈이다. 본 발명의 일실시예에 따른 사용 시작 확인 모듈(315)은 공급자 클라이언트(320)에서 이용자 키의 검증이 완료된 시점을 사용 시작 시간으로 판정할 수 있다. 이에 따르면, 공급자가 자의적으로 공유재화 사용 시작을 블록체인에 기록하는 것이 불가능해지므로 보다 신뢰성 높은 블록체인 공유경제가 구현될 수 있는 효과가 발생된다.
사용 종료 확인 모듈(316)은 공유경제 관리 계정(31) 내에 포함되고, 이용자가 공유재화의 사용을 종료하였다는 점을 블록체인에 기록하는 트랜잭션을 생성하는 모듈이다. 본 발명의 일실시에에 따른 사용 종료 확인 모듈(316)은 공급자 계정(32) 또는 공급자 클라이언트(320)에서 공유경제 관리 계정(31)으로 사용 종료 확인 모듈(316)을 호출하는 요청을 수신하여 사용 종료 확인 트랜잭션을 생성하도록 구성될 수 있다. 본 발명의 일실시예에 따라 이용자의 사용 시작 및 사용 종료를 조건으로 토큰 송금이 진행되게 되는 경우, 이용자의 공유재화 사용 이후에 토큰이 송금되게 되어, 실제로 이용자가 이용하지 않은 경우에 적어도 일부의 토큰이 반환되는 공유경제 시스템도 구현이 가능해지는 효과가 발생된다. 또한, 본 발명의 다른 실시예에 따르면, 조건부 토큰 송금 요청에서 공급자의 사용 승인의 수신 만으로 토큰 송금을 진행하고, 사용 시작과 사용 종료는 별도의 트랜잭션으로 저장할 수 있다.
평점 수신 모듈(317)은 이용자 및 공급자 중 적어도 하나의 상대방에 대한 평점을 수신하고 블록체인에 기록하는 트랜잭션을 생성하는 모듈이다. 본 발명의 일실시예에 따른 평점 수신 모듈(317)에 의해 블록체인 공유경제에 평점 시스템을 구현할 수 있게 되는 효과가 발생된다. 본 발명의 일실시예에 따른 평점 수신 모듈(317)은 사용 종료 확인 모듈(316)에서의 사용 종료 확인을 조건으로 이용자 및 공급자에게 평점을 요청/수신할 수 있다.
이러한 스마트 계약의 Code는 예를 들어, Ethereum 의 경우, Solidity, Serpent, LLL, Mutan의언어로 쓰여질 수 있는데, 현재는 Solidity가 주로 사용되고 있으며 문법은 JavaScript와 유사하다. Smart Contract 는 "변수", "구조체" 및 "함수"를 포함하여 처리 모듈(11)에 의해 처리되는 프로그램 코드이다. 이러한 Smart Contract Code 는 Compile 과정을 거쳐 Byte Code로 변환될 수 있다. Byte code는 Solidity Realtime Compiler를 통해 컴파일될 수 있다. Solidity의 Byte code는 모두 16진수로 된 코드이며, Solidity에서 이 Byte code를 수신 주소 없이 Payload (data: ) 로 할당하여 Blockchain에 Transaction을 배포하면, Miner에 의해 Block이 생성되고, 이러한 Transaction은 Contract Creation Transaction으로 간주되어, Transaction Receipt의 contractAddress: 필드에 생성(배포)된 Contract의 주소를 넣어서 리턴해주게 된다.
Smart Contract 개발환경은 개발도구와 Compiler 까지를 포함한 범위를 포함할 수 있다. 예를 들어, Solidity의 경우, Code를 작성하고 컴파일하면 모든 컴파일러는 [Byte Code] 와 [Function Signature], [ABI]를 출력하게 된다.
Byte Code는 이미 위에서 설명한 것과 같이, Smart Contract Code를 컴파일 한 결과이며, Blockchain에 Contract Creation Transaction을 발생시켜 배포하는 경우, Contract로의 Message Tx(Transaction의 줄임말)이 발생되는 경우, Contract로의 Call/Query가 발생되는 경우를 통해 분산 원장 장치(1, 이더리움의 경우 EVM) 위에서 실행된다.
FunctionSignature는 Contract 함수 호출 시 인터페이스로 이용되는 것이고, Contract 함수 이름을 SHA3 암호 해시 함수로 해시한 4바이트 값의 Hash값이다.
ABI(Application Binary Interface)는 특정 언어나 플랫폼에 종속되지 않은 방식으로 기술된 Application Interface를 의미한다. ABI 정의를 컴파일러 혹은 ABI Generator가 출력해내는데, ABI 에는 Smart Contract의 함수와 Parameter에 대한 Meta data가 정의되어있다. ABI 를 갖고 JavaScript 언어 기반의 어플리케이션을 만들 때 객체를 만들게 할 수 있고, 쉽게 그 객체의 Method를 호출하는것 만으로 Contract의 함수가 호출되도록 할 수 있는 것이다. 현재 Ethereum 은 web3.js와 함께 JavaScript 응용에서 쉽게 ABI 로 객체를 만들어 사용하도록 지원하며, 1.4.0 이후의 go-ethereum 에서는 Go Native 언어 기반의 응용에서 Smart Contract 를 쉽게 Binding 가능하도록, ABI 기반으로 Go Code를 생성해주는 ABIGen을 제공하고 있다.
이러한 Smart Contract 개발 환경은 Blockchain Engine과 연결되어 Contract Creation/Deployment, Message Tx, Call/Query를 전달할 수 있는데, 이러한 Blockchain Engine은 본 발명의 일실시예에 따른 분산 원장 장치(1)를 의미하고, 이더리움의 예에서는 geth나 parity, eth와 같은 Ethereum Node를 의미한다. 결국 모든 Smart Contract 와 관련한 Transaction 처리와 Contract 실행을 위한 EVM과 같은 가상 머신은 분산 원장 장치(1)와 같은 Node 위에 구성되어 있다.
이러한 Smart Contract 개발 환경에서 ABI는 Applications와 연결될 수 있다. Smart Contract는 Logic만을 갖고 있고, 사용자나 외부 시스템과의 상호작용을 위해서는 Application이 필요하다. HTML+CSS+JavaScript, Application Server, Wallet 등의 Application은 예를 들어, Ethereum과의 Interface를 통해 Smart Contract와 상호작용하는 구성이다.
Smart Contract Code는 크게 [Creation/Deployment] [Invoke by Message] [Call]로 구분될 수 있다. 본 발명의 일실시예에 따른 공유경제 관리 계정의 코드도 공유경제 관리 계정 생성, 공유재화 등록 메시지 트랜잭션, 리스팅 요청(Query) 등으로 구분될 수 있다.
도 6은 본 발명의 일실시예에 따른 공유재화 등록 트랜잭션 정보의 데이터 구조를 도시한 모식도이다. 도 6에 도시된 바와 같이, 본 발명의 일실시예에 따른 메모리 모듈(12)은 전부 또는 일부의 블록체인을 저장할 수 있고, 각 블록 헤더에는 앞 블록 헤더의 해시 값(hash), 해답 값(nonce), 트랜잭션 그룹의 해시 값과 그 밖에 생성된 시간에 대한 정보인 Timestamp(미도시), 채굴 난이도를 의미하는 Difficulty(미도시), 블록의 넘버를 의미하는 Block Number(미도시) 등이 포함될 수 있다. 각 블록 바디(Contents)에는 적어도 하나 이상의 트랜잭션 정보(특히, 본 발명의 일실시예에 따른 공유재화 등록 트랜잭션 정보)가 포함될 수 있다.
공유경제 관리 계정(31)의 생성을 위한 공유경제 관리 계정 생성 트랜잭션 정보에는, address는 포함되지 않을 수 있고, 본 발명의 일실시예에 따른 스마트 계약의 일종인 공유경제 관리 계정의 코드(예를 들면, Byte code)를 포함할 수 있다. 공유경제 관리 계정 생성 트랜잭션 정보를 블록에 저장하고 실행하게 되면, 해당 스마트 계약에 대한 계약 계정(Contract account)의 일종인 공유경제 관리 계정의 주소가 생성되고 블록에 저장된다.
특정 공급자 계정(32)에서 공유경제 관리 계정(31)에 특정 공유재화에 대해 등록을 요청(메시지 트랜잭션)하면 공유재화 등록 트랜잭션 정보가 생성 및 저장(메모리)되어 블록체인 내의 공유경제 관리 계정(31)에 저장되게 된다. 도 5에 도시된 바와 같이, 공유재화 등록 트랜잭션 정보에는, 공유경제 관리 계정 주소 정보, 공유재화 등록 실행 명령(공유재화 등록 모듈의 호출), 해당 명령의 매개변수(parameter) 중 하나인 공유재화 정보(예를 들어, 공유재화가 저장되어 있는 IPFS의 해시 주소), 공급자 정보(예를 들어, 공급자 계정 주소)를 포함할 수 있다. 공유경제 관리 계정(31)이 공유재화 등록 트랜잭션 정보를 수신하면 블록에 저장하고 블록체인 분산 네트워크에 global 하게 배포하여 블록체인 분산 네트워크의 모든 노드가 새로운 공유재화 등록에 의한 상태변경을 공유할 수 있다.
도 7은 본 발명의 일실시에에 따른 공유재화 등록 방법을 도시한 흐름도이다. 도 7에 도시된 바와 같이, 본 발명의 일실시예에 따르면 아래의 단계로 공유재화가 등록될 수 있다.
(1) 공급자 클라이언트(320)에서 Dapp(400)으로 공유재화 정보(이미지, 설명, 공급자 정보)를 등록하는 요청을 송신
(2) Dapp(400)에서 IPFS(410)에 공유재화 정보의 이미지와 설명의 저장을 요청
(3) IPFS(410)에서 Dapp(400)에 공유재화 정보의 해시값(이미지 해시값과 설명 해시값)을 반환
(4) Dapp(400)에서 공유재화 정보를 데이터베이스에 저장하도록 서버(430)에 요청
(5) 서버(420)에서 공유재화 정보를 DB(430)에 저장
(6) Dapp(400)에서 공유재화 정보의 해시값, 공급자 계정 정보, 가격 정보 등을 블록체인(30)에 저장하도록 메시지 트랜잭션 송신
위와 같은 단계에 의해 다양한 공유경제 시스템이 본 발명의 일실시예에 따른 공유경제 관리 계정을 포함한 블록체인 위에 구현될 수 있는 효과가 발생된다. 이에 따르면, 공유재화의 종류에 관계없이 통합된 계정으로 공유경제의 공급과 이용이 가능하게 되는 효과가 발생된다.
도 8은 본 발명의 일실시예에 따른 조건부 토큰 송금 트랜잭션 정보의 데이터 구조를 도시한 모식도이다. 도 8에 도시된 바와 같이, 본 발명의 일실시예에 따른 메모리 모듈(12)은 전부 또는 일부의 블록체인을 저장할 수 있고, 각 블록 헤더에는 앞 블록 헤더의 해시 값(hash), 해답 값(nonce), 트랜잭션 그룹의 해시 값과 그 밖에 생성된 시간에 대한 정보인 Timestamp(미도시), 채굴 난이도를 의미하는 Difficulty(미도시), 블록의 넘버를 의미하는 Block Number(미도시)등이 포함될 수 있다. 각 블록 바디(Contents)에는 적어도 하나 이상의 트랜잭션 정보(특히, 본 발명의 일실시예에 따른 조건부 토큰 송금 트랜잭션 정보)가 포함될 수 있다.
이용자 계정(20)에서 공유경제 관리 계정(31)에 특정 공유재화의 사용을 위해 조건부 토큰 송금 요청을 송신(메시지 트랜잭션)하면 조건부 토큰 송금 트랜잭션 정보가 생성 및 저장(메모리)되어 블록체인 내의 공유경제 관리 계정(31)에 저장되게 된다. 도 8에 도시된 바와 같이, 조건부 토큰 송금 트랜잭션 정보에는, 공유경제 관리 계정 주소 정보, 특정 조건에 대한 조건 정보, 해당 명령의 매개변수(parameter) 중 하나인 공유재화 정보(예를 들어, 공유재화가 저장되어 있는 IPFS의 해시 주소인 공유재화 정보 해시값), 이용자 정보(예를 들어, 이용자 계정 주소), 공급자 정보(예를 들어, 공급자 계정 주소), 토큰 정보(예를 들어, 토큰의 개수)를 포함할 수 있다. 공유경제 관리 계정(31)이 조건부 토큰 송금 트랜잭션 정보를 생성하면 메모리에 저장하고 블록체인 분산 네트워크에 global 하게 배포하여 블록체인 분산 네트워크의 모든 노드에 조건부 토큰 송금 트랜잭션 정보 기록되면서 공유재화의 사용 승인에 의한 상태변경을 공유할 수 있다.
도 9는 본 발명의 일실시예에 따른 조건부 토큰 송금을 이용한 공유재화 이용 요청 방법을 도시한 것이다. 도 9에 도시된 바와 같이, 본 발명의 일실시예에 따르면 아래의 단계로 공유재화의 사용이 신청될 수 있다.
(1) 이용자 클라이언트(200)에서 Dapp(400)으로 특정 공유재화의 이용을 요청(이용자 계정에서 공유경제 관리 계정으로의 조건부 토큰 송금 요청)
(2) Dapp(400)에서 해당 공유재화 이미지 정보 및 설명 정보를 서버(420)에서 수신한 뒤 Hash값(공유재화 정보 해시값)으로 변환
(3) Dapp(400)에서 블록체인(30)의 공유경제 관리 계정(Smart Contract)에 공유재화 정보 해시값을 포함한 조건부 토큰 송금 요청(메시지 트랜잭션의 형태)을 송신
(4) 공유경제 관리 계정에서 공급자의 사용 승인 여부를 검증(특정 조건의 일실시예)
(5) 블록체인(30)에 저장된 스마트 컨트랙트인 공유경제 관리 계정이 공유재화 정보 해시값으로 공유재화 등록 트랜잭션 및 기존의 조건부 토큰 송금 트랜잭션을 검색(조건부 토큰 송금 트랜잭션의 경우, 공유재화의 사용이 종료되거나, 이용 요청의 기간이 과거인 경우에는 검색에서 제외할 수 있음. 또한, 공유재화 정보 해시값의 검색 가부를 통해 특정 공유재화 정보의 무결성을 검증)
(6) 공유경제 관리 계정에서 검색된 공유재화 등록 트랜잭션 및 기존의 조건부 토큰 송금 트랜잭션을 기초로 공유재화가 가용성 있는 공유재화인지 검증(특정 조건의 일실시예)
(7) 공유자 사용 승인, 무결성 및 가용성의 검증이 만족된 경우, 조건부 토큰 송금 요청을 기초로 토큰 송금 트랜잭션을 생성한 뒤, 블록체인 분산 네트워크에 배포
공유경제 시스템을 블록체인으로 구현할 때 indexing을 위해 Off-Chain의 서버와 DB를 이용하게 되면 공유재화 시스템이 쉽게 변조될 수 있는 문제가 발생된다. 하지만, 본 발명의 일실시예에 따른 위의 각 단계에 따르면, DB, IPFS, 블록체인이 상호 의존관계를 갖게 되므로, DB의 변조가 발생되면 Dapp이 실행되지 않는 효과가 발생된다.
또한, 공유경제 시스템을 블록체인으로 구현하게 되면, 유효하지 않은 공유재화의 이용 요청이 이루어질 문제가 발생된다. 본 발명의 일실시예에 따른 위의 각 단계에 따르면 블록체인에 의해 공유재화의 최신성이 항상 업데이트되고 검증될 수 있으므로 유효하지 않은 공유재화의 이용 요청이 승인되고 블록체인에 기록되지 않는 효과가 발생된다.
또한, 공유경제 시스템을 블록체인으로 구현할 때 이용자의 토큰을 송금받은 공급자가 공유경제 서비스를 제공하지 않는 경우, 특정 조건에 의해 환불조치가 필요한 경우, 이용자가 보유한 토큰의 양이 공유재화의 가격보다 적은 경우, 이용자가 적합하지 않은 토큰을 송금한 경우 등의 문제가 발생될 수 있다. 본 발명의 일실시예에 따른 위의 각 단계에 따르면 블록체인의 스마트 컨트랙트 상에서 에스크로 기능이 제공될 수 있는 효과가 발생된다.
또한, 복수의 이용자가 동일한 공유재화에 대해 동일한 기간에 대하여 사용 요청을 하는 경우, 각 이용자의 조건부 토큰 송금 요청이 복수의 노드(분산 원장 장치)에 저장된 각각의 공유경제 관리 계정에 송신되게 되는 문제가 발생된다. 하지만, 본 발명의 일실시예에 따른 위의 각 단계에 따르면 각각의 노드에서 공급자 클라이언트에 사용 승인을 각각 요청하게 되고 사용 승인이 진행되면 곧바로 전체 노드로 배포되게 되므로, 복수개의 조건부 토큰 송금 요청이 동시에 송신되어도 별도의 경로를 가지는 블록체인(하드포크)이 생성되지 않게 되는 효과가 발생된다.
조건부 토큰 송금을 이용한 공유재화 이용 요청 방법의 (5), (6) 단계에서의 공유재화 가용성 검증은 아래의 단계로 진행될 수 있다.
(1) 이용자가 공유재화를 이용하고자 하는 기간이 공유재화 등록 트랜잭션에 저장된 공유재화 정보에서 공유재화의 이용이 가능하도록 설정된 기간인지 여부를 판정
(2) 다른 이용자가 해당 기간에 대해 먼저 이용을 요청한 것으로 기존의 조건부 토큰 송금 트랜잭션에 기록되어 있는지 여부를 판정
위의 단계에 의해 조건부 토큰 송금을 이용한 공유재화 이용 요청에서의 공유재화 가용성이 있는 것으로 판정되면 조건부 토큰 송금 요청의 특정 조건의 만족 여부를 판정하게 된다. 위의 단계에 의해 조건부 토큰 송금을 이용한 공유재화 이용 요청에서의 공유재화 가용성이 없는 것으로 판정되면, 공유경제 관리 계정은 조건부 토큰 송금 요청을 이용자 계정에 반환하게 된다.
또한, 복수의 이용자가 동일한 공유재화에 대해 동일한 기간에 대하여 사용 요청을 하는 경우 각 이용자의 조건부 토큰 송금 요청이 복수의 노드(분산 원장 장치)에 저장된 각각의 공유경제 관리 계정에 송신되게 되는데, 공급자가 동일한 기간에 대한 조건부 토큰 송금 요청에 대해 사용 승인을 송신할 수 있게 되는 문제가 발생된다. 왜냐하면, 공급자 사용 승인의 수신은 트랜잭션 비용 때문에 전체 노드에 배포되어 진행되지 않고 조건부 토큰 송금 요청을 수신한 각각의 노드에 대해 진행되기 때문이다. 하지만, 본 발명의 일실시예에 따른 위의 (5) 단계에 따르면 사용 승인이 동일한 기간에 대해 중복되는지를 판정한 뒤에 조건부 토큰 송금 요청을 전체 노드로 배포되게 되므로, 공급자가 동일한 기간에 대해 사용 승인을 수행하더라도 복수개의 조건부 토큰 송금 요청이 동시에 송신되어도 별도의 경로를 가지는 블록체인(하드포크)이 생성되지 않게 되는 효과가 발생된다.
도 10은 본 발명의 일실시예에 따른 사용 승인을 특정 조건으로 하는 공유경제를 위한 분산 원장 방법을 도시한 흐름도이다. 도 10에 도시된 바와 같이, 본 발명의 일실시예에 따른 처리 모듈(11)의 공유경제를 위한 분산 원장 방법은, 조건부 토큰 송금 요청 수신 단계(S10), 사용 승인 요청 단계(S11), 사용 승인 단계(S12), 조건부 토큰 송금 트랜잭션 생성 단계(S13), 배포 단계(S14)를 포함하여 트랜잭션 정보를 처리할 수 있다.
조건부 토큰 송금 요청 수신 단계(S10)는 공유경제 관리 계정(31)이 이용자 계정(20)에서 조건부 토큰 송금 요청을 수신하는 단계이다. 조건부 토큰 송금 요청은 공유경제 관리 계정(31)의 조건부 토큰 모듈(312)의 조건부 토큰 송금 함수를 호출하게 하는 요청을 의미한다. 본 발명의 일실시예에 따른 조건부 토큰 송금 요청 수신 단계(S10)에 의하면 특정 조건의 만족 이후에 공급자 계정(32)으로 토큰이 송금되게 되므로 중재 역할을 하는 운영 주체 없이도 에스크로가 가능해지는 효과가 발생된다.
사용 승인 요청 단계(S11) 및 사용 승인 단계(S12)는 조건부 토큰 송금 요청의 특정 조건 중 하나를 예시한 것이다.
사용 승인 요청 단계(S11)는, 공유경제 관리 계정(31)에서 공급자 계정(32) 또는 공급자 클라이언트(320)에 특정 공유재화에 대한 사용의 승인을 요청하는 단계이다.
사용 승인 단계(S12)는, 공급자 계정(32) 또는 공급자 클라이언트(320)에서 특정 공유재화에 대한 사용의 승인을 공유경제 관리 계정(31)에 송신하는 단계이다. 사용 승인 단계(S12)에 의해 S10에서의 조건부 토큰 송금 요청의 특정 조건이 만족된다.
조건부 토큰 송금 트랜잭션 생성 단계(S13)는 공유경제 관리 계정(31)에 조건부 토큰 송금 요청에 대한 트랜잭션을 생성하고 공유경제 관리 계정(31)의 스토리지(Storage) 또는 메모리(Memory)에 저장하는 단계이다. Contract Account 는 Storage라고 불리는 Persistent 저장소를 포함할 수 있다. 스토리지(Storage)에서는 Key-Value 맵 구조로 32바이트 키를 32바이트 값으로 맵핑하도록 되어있다. 특정 Smart Contract는 자기 자신 이외의 Contract의 Storage를 읽거나 쓸 수 없을 수 있다. Memory는 Smart Contract가 Message Call이 있을 때마다 최신의 Instance를 얻을 수 있는 공간으로 구성될 수 있다. 메모리(Memory)에서는 Byte 레벨로 읽고 쓸 수 있으나 32바이트 단위 Chunk로 저장될 수 있다. 즉, 메모리(Memory)에서는 1이라는 값을 저장하면 32바이트 (256비트) 공간에 저장될 수 있다. 예를 들어, EVM은 총 1024개의 Instruction Set (OPCODE) 를 담을 수 있는 Stack을 포함하며, 256비트의 word (값)을 가질 수 있다.
배포 단계(S14)는 조건부 토큰 송금 트랜잭션 생성 단계(S13)에 의해 변경된 상태(State)인 조건부 토큰 송금 트랜잭션 정보를 분산 원장 장치(1)가 블록체인 분산 네트워크(100)의 전체 노드로 배포하여 브로드캐스트하는 단계이다.
본 발명의 일실시예에 따른 공유경제를 위한 분산 원장 방법에 따르면, 조건부 토큰 송금 요청에 의해 적법하지 않은 공유재화 사용 요청, 가능하지 않은 공유재화 사용 요청에 대해 별도의 트랜잭션 생성, 저장 및 배포 비용없이 공유경제 생태계의 구현이 가능해지는 효과가 발생된다.
트랜잭션 정보 브로드캐스트 장치
본 발명의 일실시예에 따른 트랜잭션 정보 브로드캐스트 장치와 관련하여, 도 11은 본 발명의 트랜잭션 정보 송신 장치(2)와 분산 원장 장치(10)의 HTTP 통신을 도시한 모식도이다. 도 11에 도시된 바와 같이, 본 발명의 일실시예에 따른 트랜잭션 정보 브로드캐스트 장치는, 예를 들어, Solidity로 코딩되는 경우, JavaScript 기반의 Web3.Js API를 사용하고, 내부적으로는 JSON-RPC API를 사용할 수 있다. 이를 통해, Browser, Node.JS, Mist 등으로 트랜잭션 정보 송신 장치(2)를 구성할 수 있다. 트랜잭션 정보 송신 장치(2)의 주체는 EOA나 CA가 될 수 있다.
도 11에 도시된 바와 같이, 본 발명의 일실시예에 따른 트랜잭션 정보 송신 장치(2)에서 공유경제 관리 계정에 조건부 토큰 송금 트랜잭션을 저장하도록 조건부 토큰 송금 요청을 분산 원장 장치(1)에 JSON-RPC API를 이용하여 요청할 수 있다. 조건부 토큰 송금 요청(메시지 트랜잭션)을 수신한 분산 원장 장치(1)는 본 발명의 일실시예에 따른 공유경제를 위한 분산 원장 방법에 따라 특정 조건의 만족 여부를 판정하여 조건이 만족되면 조건부 토큰 송금 트랜잭션을 공유경제 관리 계정의 스토리지 또는 메모리에 난이도 정보로 저장한 뒤에 블록체인 분산 네트워크(100)에 배포(broadcast, propagation) 할 수 있다.
도 12는 본 발명의 일실시예에 따른 트랜잭션 정보 송신 장치가 특정 공유재화 사용 요청을 수신한 경우를 도시한 모식도이다. 도 12에 도시된 바와 같이, 이용자 클라이언트에서 특정 공유재화에 대한 사용이 조건부 토큰 송금을 통해 요청되면, 사용자 클라이언트 및 서버를 통해 트랜잭션 정보 송신 장치(2)가 조건부 토큰 송금 요청을 블록체인 분산 네트워크(100)에 송신하도록 API가 구성되고, Core에서 조건부 토큰 송금 요청이 트랜잭션 정보로 생성된 뒤(트랜잭션 정보 생성 단계), 트랜잭션 정보 송신 장치의 비밀키로 서명된 트랜잭션 정보가 블록체인 분산 네트워크(100)의 특정 노드(분산 원장 장치,1)에 송신되게 된다(트랜잭션 정보 송신 단계). 이때, 특정 노드는 이용자 클라이언트 또는 공급자 클라이언트일 수 있다.
특정 노드(분산 원장 장치, 1)는 특정 조건을 만족하는 경우, 조건부 토큰 송금 트랜잭션을 블록체인에 저장해달라는 요청의 스마트 계약을 실행하게 된다(스마트 계약 실행 단계). 특정 노드에 저장된 조건부 토큰 송금 트랜잭션은 블록체인 분산 네트워크(100)로 배포되게 된다.
특정 노드에서 블록체인 분산 네트워크(100)로 배포된 조건부 토큰 송금 트랜잭션은 공유경제 관리 계정의 메모리에 저장되어 있다가 해당 특정 노드 또는 다른 특정 노드가 새로운 블록(New block)을 마이닝(mining)하게 되면 해당 블록에 기록되게 된다.
이상에서 설명한 바와 같이, 본 발명이 속하는 기술 분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 상술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함하는 것으로 해석되어야 한다.
본 명세서 내에 기술된 특징들 및 장점들은 모두를 포함하지 않으며, 특히 많은 추가적인 특징들 및 장점들이 도면들, 명세서, 및 청구항들을 고려하여 당업자에게 명백해질 것이다. 더욱이, 본 명세서에 사용된 언어는 주로 읽기 쉽도록 그리고 교시의 목적으로 선택되었고, 본 발명의 주제를 묘사하거나 제한하기 위해 선택되지 않을 수도 있다는 것을 주의해야 한다.
본 발명의 실시예들의 상기한 설명은 예시의 목적으로 제시되었다; 이는 개시된 정확한 형태로 본 발명을 제한하거나, 빠뜨리는 것 없이 만들려고 의도한 것이 아니다. 당업자는 상기한 개시에 비추어 많은 수정 및 변형이 가능하다는 것을 이해할 수 있다.
본 설명의 일부는 연산의 기호 표현 및 알고리즘에 관한 본 발명의 실시예들을 기술한다. 이러한 알고리즘적 설명 및 표현은, 일반적으로 그들의 작업의 핵심을 효율적으로 다른 당업자에게 전달하기 위해 데이터 처리 분야의 당업자에 의해 사용된다. 이러한 동작은 기능적, 연산적, 또는 논리적으로 설명되지만, 컴퓨터나 이와 동등한 전기 회로, 마이크로코드 등에 의해 구현될 것으로 이해된다. 나아가, 또한 이것은 모듈로서의 이러한 동작의 배열을 나타내기 위해, 때때로 일반성의 상실 없이 편리하게 입증된다. 상기 기술된 동작 및 그들의 연관된 모듈은 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합 내에서 구현될 수 있다.
여기서 기술된 임의의 단계, 동작, 또는 프로세스는, 하나 이상의 하드웨어 또는 소프트웨어 모듈과 함께 단독으로 또는 다른 장치와 조합하여 수행되거나 구현될 수 있다. 일 실시예에서, 소프트웨어 모듈은 컴퓨터 프로그램 코드를 포함하는 컴퓨터-판독 가능 매체로 구성되는 컴퓨터 프로그램 제품과 함께 구현되고, 컴퓨터 프로그램 코드는 기술된 임의의 또는 모든 공정, 단계, 또는 동작을 수행하기 위한 컴퓨터 프로세서에 의해 실행될 수 있다.
또한, 본 발명의 실시예들은, 여기서의 동작을 수행하기 위한 장치와 관련될 수 있다. 이들 장치는 요구되는 목적을 위해 특별히 제작될 수 있고/있거나, 컴퓨터 내에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 일반적-목적의 연산 장치를 포함할 수 있다. 이러한 컴퓨터 프로그램은, 유형의 컴퓨터 판독가능 저장 매체 또는 전자 명령어를 저장하기 위해 적합한 임의의 유형의 미디어 내에 저장될 수 있고, 컴퓨터 시스템 버스에 결합될 수 있다. 나아가, 본 명세서에 참조되는 임의의 연산 시스템은 단일 프로세서를 포함할 수 있거나, 증가한 연산 능력을 위한 다중 프로세서 디자인을 채택한 구조가 될 수 있다.
마지막으로, 본 명세서에 사용된 언어는 주로 읽기 쉽도록 그리고 교시의 목적으로 선택되었고, 본 발명의 주제를 묘사하거나 제한하기 위해 선택되지 않을 수 있다.
그러므로 본 발명의 범위는 상세한 설명에 의해 한정되지 않고, 이를 기반으로 하는 출원의 임의의 청구항들에 의해 한정된다. 따라서, 본 발명의 실시예들의 개시는 예시적인 것이며, 이하의 청구항에 기재된 본 발명의 범위를 제한하는 것은 아니다.
1: 분산원장 장치
2: 트랜잭션 정보 송신 장치
10: 통신 모듈
11: 처리 모듈
12: 메모리 모듈
20: 이용자 계정
30: 블록체인
31: 공유경제 관리 계정
32: 공급자 계정
100: 블록체인 분산 네트워크
200: 이용자 클라이언트
310: 공유재화 등록 모듈
311: 리스트 출력 모듈
312: 조건부 토큰 모듈
313: 사용 승인 모듈
314: 키 출력 모듈
315: 사용 시작 확인 모듈
316: 사용 종료 확인 모듈
317: 평점 수신 모듈
320: 공급자 클라이언트
400: Dapp
410: IPFS
420: 서버
430: DB
2: 트랜잭션 정보 송신 장치
10: 통신 모듈
11: 처리 모듈
12: 메모리 모듈
20: 이용자 계정
30: 블록체인
31: 공유경제 관리 계정
32: 공급자 계정
100: 블록체인 분산 네트워크
200: 이용자 클라이언트
310: 공유재화 등록 모듈
311: 리스트 출력 모듈
312: 조건부 토큰 모듈
313: 사용 승인 모듈
314: 키 출력 모듈
315: 사용 시작 확인 모듈
316: 사용 종료 확인 모듈
317: 평점 수신 모듈
320: 공급자 클라이언트
400: Dapp
410: IPFS
420: 서버
430: DB
Claims (1)
- 공유경제 관리 계정, 제1계정 및 제2계정을 포함하는 블록체인을 저장하는 메모리 모듈; 및
상기 메모리 모듈과 동작 가능하도록 결합되고, 상기 공유경제 관리 계정의 컴퓨터 판독 가능한 프로그램 코드를 실행하는 처리 모듈;
을 포함하고,
상기 공유경제 관리 계정의 상기 프로그램 코드는,
특정 공유재화의 이미지 정보 또는 설명 정보의 해시값인 공유재화 정보 해시값, 상기 제2계정에 대한 정보인 공급자 계정 정보, 일정 정보 및 가격 정보를 포함하는 공유재화 등록 트랜잭션 정보를 생성하는 공유재화 등록 단계;
상기 특정 공유재화의 사용에 관한 정보인 특정 공유재화 정보를 포함하는 조건부 토큰 송금 요청을 상기 블록체인 내의 상기 제1계정에서 수신하는 조건부 토큰 송금 요청 수신 단계;
상기 특정 공유재화 정보를 포함하는 트랜잭션인 공유재화 등록 트랜잭션 및 기존의 조건부 토큰 송금 트랜잭션을 검색하는 검색 단계;
검색된 상기 공유재화 등록 트랜잭션 및 상기 조건부 토큰 송금 트랜잭션을 기초로 상기 특정 공유재화의 가용성을 검증하는 가용성 검증 단계;
상기 특정 공유재화의 상기 가용성이 검증되면, 상기 조건부 토큰 송금 트랜잭션을 생성하는 트랜잭션 생성 단계; 및
상기 조건부 토큰 송금 트랜잭션을 상기 블록체인이 포함되는 블록체인 분산 네트워크에 브로드캐스트 하는 배포 단계;
를 수행하는 컴퓨터 판독 가능한 프로그램 코드를 포함하며,
상기 제1계정은 공유경제의 이용자 계정이고, 상기 제2계정은 상기 공유경제의 공급자 계정이며,
상기 특정 공유재화 정보는 상기 특정 공유재화에 대한 상기 공유재화 정보 해시값이고, 상기 검색 단계에서 상기 공유재화 정보 해시값의 검색 가부를 기초로 상기 특정 공유재화 정보의 무결성을 검증하며,
상기 조건부 토큰 송금 트랜잭션은 상기 제1계정에서 상기 제2계정으로 특정 개수의 토큰을 송금하도록 하는 명령 및 상기 특정 공유재화에 대한 정보인 특정 공유재화 정보을 포함하는 것을 특징으로 하는,
블록체인을 이용하여 공유재화를 등록하는 공유경제 관리 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180174301A KR101962287B1 (ko) | 2018-12-31 | 2018-12-31 | 블록체인을 이용하여 공유재화를 등록하는 공유경제 관리 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180174301A KR101962287B1 (ko) | 2018-12-31 | 2018-12-31 | 블록체인을 이용하여 공유재화를 등록하는 공유경제 관리 장치 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180026053A Division KR101936756B1 (ko) | 2018-03-05 | 2018-03-05 | 블록체인을 이용한 공유경제 관리 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101962287B1 true KR101962287B1 (ko) | 2019-03-26 |
Family
ID=65949799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180174301A KR101962287B1 (ko) | 2018-12-31 | 2018-12-31 | 블록체인을 이용하여 공유재화를 등록하는 공유경제 관리 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101962287B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861459A (zh) * | 2019-04-28 | 2020-10-30 | 常州一仙智能科技有限公司 | 一种基于DPoS共识算法的Iota账本优化系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090024182A (ko) * | 2006-06-29 | 2009-03-06 | 마이크로소프트 코포레이션 | 피어-투-피어 통신 채널을 통한 전자 상거래 |
KR101784197B1 (ko) * | 2017-03-07 | 2017-11-06 | 유한회사 엘민벤처스 | 블록체인 기반의 디지털 가상 화폐를 포함하는 자산을 이용한 기부 시스템 및 방법 |
-
2018
- 2018-12-31 KR KR1020180174301A patent/KR101962287B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090024182A (ko) * | 2006-06-29 | 2009-03-06 | 마이크로소프트 코포레이션 | 피어-투-피어 통신 채널을 통한 전자 상거래 |
KR101784197B1 (ko) * | 2017-03-07 | 2017-11-06 | 유한회사 엘민벤처스 | 블록체인 기반의 디지털 가상 화폐를 포함하는 자산을 이용한 기부 시스템 및 방법 |
Non-Patent Citations (7)
Title |
---|
대한민국 등록특허, 10-1751025, 블록체인 기반의 스마트 증권업무 처리 시스템(Smart system for trading stock based blockchain), 주식회사 온더 |
대한민국 등록특허, 10-1758870, 마이닝 관리 시스템 및 이를 이용한 마이닝 관리 방법(Mining Rig Monitoring System And Mining Rig Monitoring Method In Using Same), 주식회사 온더 |
미국 공개특허, US 2016/0292672 A1, Systems and methods of blockchain transaction recordation, Nasdaq, Inc. |
미국 공개특허, US 2016/0342989 A1, Method and system for processing blockchain-based transactions on existing payment networks, Mastercard International Incorporated |
미국 공개특허, US 20170132615 A1, Block chain alias for person-to-person payments, Bank Of America Corporation |
'블록체인 우버’ ‘블록체인 에어비앤비’가 진짜 공유경제', 티타임즈(2017.09.26. 게재) * |
'블록체인이 어떻게 여전히 핫한 O2O 서비스를 위협하는가', 네이버블로그(2018.02.28. 게재) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861459A (zh) * | 2019-04-28 | 2020-10-30 | 常州一仙智能科技有限公司 | 一种基于DPoS共识算法的Iota账本优化系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101936756B1 (ko) | 블록체인을 이용한 공유경제 관리 장치 | |
KR101936757B1 (ko) | 블록체인 기반의 공유경제를 위해 키를 생성하는 분산 원장 장치 및 분산 원장 방법 | |
KR101962290B1 (ko) | 블록체인 기반의 공유경제를 위해 공유재화의 unlock 및 lock을 제어하는 분산 원장 장치 | |
KR101962289B1 (ko) | 블록체인 기반의 공유경제를 위해 비대칭키 방식으로 이용자를 식별하는 분산 원장 장치 | |
KR101878869B1 (ko) | 블록체인 기반의 사용자 식별 관리를 위한 분산 원장 장치 및 분산 원장 방법 | |
US11615398B2 (en) | Digital contracts in blockchain environments | |
KR101932277B1 (ko) | 블록체인 기반의 사용자 정보 공유를 위한 분산 원장 장치 및 분산 원장 방법 | |
US20200302410A1 (en) | Virtual currency system | |
KR101962288B1 (ko) | 블록체인을 이용해 공유재화의 가용성을 검증하는 공유경제 관리 장치 | |
KR101936759B1 (ko) | Kyc 블록체인을 이용한 kyc 수행 장치 및 방법 | |
KR101878870B1 (ko) | 블록체인 기반의 사용자 식별 관리 및 토큰 발행 관리를 위한 분산 원장 장치 및 분산 원장 방법 | |
KR20190089506A (ko) | 블록체인상에서 공유 분산장부와 외부 저장장치에 정보를 분리저장하여 구현한 안전한 전자계약시스템 | |
KR101962285B1 (ko) | 블록체인 기반의 사용자 식별 관리를 위한 분산 원장 장치 및 분산 원장 방법 | |
KR101962287B1 (ko) | 블록체인을 이용하여 공유재화를 등록하는 공유경제 관리 장치 | |
KR101962286B1 (ko) | 블록체인을 이용하여 공유재화를 등록하는 공유경제 관리 장치 | |
KR102095046B1 (ko) | 블록체인 기반의 사용자 정보 공유를 위한 분산 원장 장치 및 분산 원장 방법 | |
KR102096643B1 (ko) | 입출금 허용여부 정보의 등록에 보상을 수행하는 kyc 블록체인을 이용한 kyc 수행 장치 | |
KR20190076812A (ko) | 블록체인 기반의 포인트 정보 공유를 위한 분산 원장 장치 및 분산 원장 방법 | |
KR20190110399A (ko) | 블록체인 기반의 알트코인 광고 장치 및 방법 | |
US11757985B1 (en) | Systems and methods for a blockchain interoperability platform | |
KR102227442B1 (ko) | 본인정보 판매대금 정산 방법 | |
KR102096644B1 (ko) | 퍼블릭 블록체인 인덱싱에 보상을 수행하는 kyc 블록체인을 이용한 kyc 수행 장치 | |
KR102096640B1 (ko) | Kyc 블록체인에서의 토큰 보유량을 이용한 kyc 수행 장치 | |
KR102096645B1 (ko) | 식별 정보의 정보량을 기초로 보상을 수행하는 kyc 블록체인을 이용한 kyc 수행 장치 | |
KR102096641B1 (ko) | Kyc 블록체인의 블록 증명을 이용한 kyc 수행 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |