KR102634318B1 - 어플리케이션 데이터의 블록체인 저장 방법 및 이를 이용하는 시스템 - Google Patents

어플리케이션 데이터의 블록체인 저장 방법 및 이를 이용하는 시스템 Download PDF

Info

Publication number
KR102634318B1
KR102634318B1 KR1020220022827A KR20220022827A KR102634318B1 KR 102634318 B1 KR102634318 B1 KR 102634318B1 KR 1020220022827 A KR1020220022827 A KR 1020220022827A KR 20220022827 A KR20220022827 A KR 20220022827A KR 102634318 B1 KR102634318 B1 KR 102634318B1
Authority
KR
South Korea
Prior art keywords
data
blockchain
application
function
management unit
Prior art date
Application number
KR1020220022827A
Other languages
English (en)
Other versions
KR20230125951A (ko
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 KR1020220022827A priority Critical patent/KR102634318B1/ko
Priority to PCT/KR2023/001638 priority patent/WO2023163415A1/ko
Publication of KR20230125951A publication Critical patent/KR20230125951A/ko
Application granted granted Critical
Publication of KR102634318B1 publication Critical patent/KR102634318B1/ko

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0209Incentive being awarded or redeemed in connection with the playing of a video game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Finance (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에서 제공하는 어플리케이션 데이터 블록체인 저장 방법은 어플리케이션에서 블록체인에 저장할 대상 데이터가 결정되는 데이터 결정 단계, 및 대상 데이터를 블록체인 상에 저장하는 블록체인 저장 단계를 포함하고,
블록체인 저장 단계는, 트랜잭션 관리부에서, 대상 데이터를 기준으로 개시 기능, 롤백 기능, 커밋 기능을 포함하는 스마트 컨트랙트를 생성하는 스마트 컨트랙트 생성 단계, 트랜잭션 관리부에서 대상 데이터에 대한 개시 기능을 수행하여 트랜잭션을 개시하는 개시 기능 수행 단계, 블록체인 서명 관리부에서, 생성된 스마트 컨트랙트의 개시 기능 수행을 서명하는 개시 기능 서명 단계, 어플리케이션에서 커밋 요청 또는 롤백 요청 발송하는 최종 명령 발송 단계, 및 트랜잭션 관리부는 최종 명령에 따라 커밋 기능을 수행하거나 롤백 기능을 수행하는 최종 명령 수행 단계, 블록체인 서명 관리부에서, 트랜잭션 관리부에서 최종 명령 수행에 대한 서명을 진행하는 최종 명령 서명 단계를 포함하는 것을 특징으로 한다.

Description

어플리케이션 데이터의 블록체인 저장 방법 및 이를 이용하는 시스템{METHOD FOR STORING APPLICATION DATA IN BLOCKCHAIN AND SYSTEM USING THE SAME}
본 발명은 어플리케이션 데이터의 블록체인 저장 방법 및 이를 이용하는 시스템에 관한 것이다.
게임과 같은 어플리케이션에서 데이터의 토큰과 같은 데이터를 저장할 때에, 위변조를 방지하기 위해 블록체인에 데이터를 저장할 수 있다. 하지만 이것은 기존의 데이터베이스를 이용하는 것과는 기능적인 면에서 차이를 발생시킨다. 대표적인 것이 트랜잭션의 적용성이다.
기존의 데이터베이스 시스템은 데이터를 읽고 쓰는 일련의 과정을 트랜잭션으로 관리할 수 있다. 트랜잭션은 데이터베이스의 완결성 유지를 위해, 여러 개의 프로세스가 연이어 진행되는 경우 전체가 완결되어 진행되거나, 아니면 진행하지 못하게 한다.
대표적인 예로는, 하나의 계좌에서 금액을 인출하고, 다른 계좌에 돈을 입금하는 경우, 앞서의 과정에서 계좌에 돈이 인출되지 않는다면, 다른 계좌에 돈을 입금하는 절차와 함께 모든 절차를 실패하도록 하여, 예금을 이체하는 과정을 트랜잭션으로 관리한다.
기존의 블록체인 시스템은 데이터의 기록에서 이처럼 일련의 과정 중 일부가 실패하는 경우, 데이터가 저장되는 프로세스를 취소하는 것이 용이하지 않다. 특히, 게임과 같은 신속한 데이터의 입출력이 요구되는 어플리케이션에서, 블록체인을 적용하는 경우 이러한 트랜잭션이 필요한 데이터 처리에 결함이 발생될 수 있다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 안출된 것으로, 게임과 같은 어플리케이션에서 손쉽게 사용할 수 있는, 어플리케이션 데이터의 블록체인 저장 방법을 제공하는 데 그 목적이 있다.
또한, 본 발명은 어플리케이션 데이터의 블록체인 저장 방법을 이용하는 시스템을 제공하는 데 그 목적이 있다.
본 발명에서 제공하는 어플리케이션 데이터 블록체인 저장 방법은 어플리케이션에서 블록체인에 저장할 대상 데이터가 결정되는 데이터 결정 단계, 및 대상 데이터를 블록체인 상에 저장하는 블록체인 저장 단계를 포함하고,
블록체인 저장 단계는, 트랜잭션 관리부에서, 대상 데이터를 기준으로 개시 기능, 롤백 기능, 커밋 기능을 포함하는 스마트 컨트랙트를 생성하는 스마트 컨트랙트 생성 단계, 트랜잭션 관리부에서 대상 데이터에 대한 개시 기능을 수행하여 트랜잭션을 개시하는 개시 기능 수행 단계, 블록체인 서명 관리부에서, 생성된 스마트 컨트랙트의 개시 기능 수행을 서명하는 개시 기능 서명 단계, 어플리케이션부에서 커밋 요청 또는 롤백 요청 발송하는 최종 명령 발송 단계, 및 트랜잭션 관리부는 최종 명령에 따라 커밋 기능을 수행하거나 롤백 기능을 수행하는 최종 명령 수행 단계, 블록체인 서명 관리부에서, 트랜잭션 관리부에서 최종 명령 수행에 대한 서명을 진행하는 최종 명령 서명 단계를 포함하는 것을 특징으로 한다.
일 실시예에 있어서, 데이터 결정 단계는, 플레이어가 게임 내 지정된 임무의 완료 조건을 만족시켜 임무의 성공이 판정되는 임무 조건 완료 판정 단계, 임무의 완수에 따라 플레이어에게 온라인 상으로 제공되는 보상을 지급하는 것이 개시되는 보상 데이터 지급 단계, 및 플레이어의 상태를 저장하는 상태 저장 단계를 포함하고,
데이터 결정 단계에서 결정되는 대상 데이터는 임무 완수에 따른 보상에 관한 데이터인 것을 특징으로 할 수 있다.
일 실시예에 있어서, 데이터 결정 단계 이후에, 데이터베이스에 대상 데이터가 저장되는 데이터베이스 저장 단계,를 더 포함하는 것을 특징으로 할 수 있다.
일 실시예에 있어서, 데이터베이스에 저장 단계 및 블록체인 저장 단계는 하나의 트랜잭션으로 바인딩되어 처리되는 것을 특징으로 하는 어플리케이션 블록체인 데이터 저장 방법.
일 실시예에 있어서, 스마트 컨트랙트의 롤백 기능의 활성화 조건은 데이터베이스에 저장 단계 중 데이터베이스 트랜잭션 롤백이 발생되는 조건인 것을 특징으로 할 수 있다.
일 실시예에 있어서, 대상 데이터는 어플리케이션에서 플레이어에게 제공되는 토큰에 관한 데이터이며, 대상 데이터는 소유자 및 제공되는 토큰의 양을 포함하는 것을 특징으로 할 수 있다.
일 실시예에 있어서, 개시 기능 수행 단계 및 개시 기능 서명 단계에서는 어플리케이션에서 플레이어에게 제공되는 토큰의 양을 미리 할당하는 것을 특징으로 할 수 있다.
일 실시예에 있어서, 대상 데이터는 플레이어에서 어플리케이션으로 사용되는 토큰에 관한 데이터이며, 대상 데이터는 소유자 및 제공되는 토큰의 양을 포함하는 것을 특징으로 할 수 있다.
일 실시예에 있어서, 개시 기능 수행 단계 및 개시 기능 서명 단계에서는 플레이어에서 어플리케이션에게 제공되는 토큰을 어플리케이션으로 이동시키는 것을 특징으로 할 수 있다.
일 실시예에 있어서, 대상 데이터는 대체 불가 토큰(NFT)에 관한 데이터이며, 대상 데이터는 소유자 데이터 및 사용되는 데이터의 CDN 데이터인 것을 특징으로 할 수 있다.
따라서 본 발명에 따르면, 어플리케이션에서 블록체인 상에 데이터를 저장할 때에, 별도의 트랜잭션관리자를 이용하여, 데이터 저장의 롤백을 구현할 수 있게 된다. 이로 인해 잘못된 저장의 경우 미처리된 것으로 남기 때문에, 추후 프로세스를 재차 확인하여 재처리가 가능하다. 블록체인의 토큰과 같은 보상을 지급할 때에 보다 안정적인 공급이 가능하다.
또한, 데이터베이스와 블록체인을 병렬적으로 처리함으로써, 데이터베이스 측에서 실패로 판정되는 경우 전체적인 트랜잭션을 모두 실패로 처리할 수 있다.
또한, 스마트 컨트랙트의 개시 단계에서 블록체인 상에 데이터를 저장하는 과정에서 토큰의 이동에 관한 제한 처리나 이동 처리 등 미리 처리하여야 할 프로세스를 먼저 처리함으로써, 이후 진행되는 블록체인의 저장 단계를 효과적으로 수행하도록 할 수 있다.
도 1 은 본 발명의 일 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 이용하는 시스템의 개념도이다.
도 2는 도 1의 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 나타내는 순서도이다.
도 3은 도 1의 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 이용하는 시스템이 작용하는 것을 설명하는 개념도이다.
도 4는 본 발명의 다른 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 나타내는 순서도이다.
도 5는 본 발명의 또 다른 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 이용하는 시스템의 개념도이다.
도 6은 도 5의 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 나타내는 순서도이다.
도 7은 본 발명의 또 다른 실시예에 따른 블록체인 저장 시스템의 대상을 나타내는 개념도이다.
이하, 첨부된 도면들을 참조하여 바람직한 실시예를 첨부된 도면을 참조하여 설명한다. 이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로, 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
또한, 하기 실시예는 본 발명의 권리범위를 한정하는 것이 아니라 단지 예시로 제시하는 것이며, 본 기술 사상을 통해 구현되는 다양한 실시예가 있을 수 있다.
어플리케이션 데이터의 블록체인 저장 시스템
도 1 은 본 발명의 일 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 이용하는 시스템의 개념도이다.
도 1을 참조하면, 본 실시예의 블록체인 저장 시스템은 어플리케이션(100), 트랜잭션 관리부(200), 블록체인(300) 및 블록체인 서명 관리부(400)를 포함한다.
어플리케이션(100)은 게임이나 기타 데이터를 블록체인(300)에 저장할 필요가 있는 어떤 시스템도 적용될 수 있다. 본 실시예의 블록체인 저장 시스템은 게임과 같은 어플리케이션(100)에서 블록체인의 스마트 컨트랙트를 사용하기 위해 트랜잭션 관리부(200)를 활용한다.
어플리케이션(100)은 상기와 같이 기능을 한정하지 않는 시스템 또는 소프트웨어를 의미하며, 이것은 구성요소의 하나로 해석되는 의미에서 어플리케이션부(100)로도 지칭될 수 있다. 어플리케이션과 어플리케이션부는 기능이나 구성에 대해 차별을 가지는 용어가 아니며, 발명을 구성하는 시스템의 한 구성요소로 볼 때에, 어플리케이션을 어플리케이션부로 지칭할 수 있다.
일반적으로 블록체인의 스마트 컨트랙트를 활용하기 위해서는 별도의 데이터를 작성하고 해당 데이터에 사용자 서명을 해서 블록체인에 전송하여야 한다. 이 과정은 일반적인 데이터베이스에 비해 복잡하고 사용성이 불편하다. 특히, 게임과 같은 어플리케이션에는 빠르고 쉽게 사용하는 것이 필요하다.
본 실시예에서는 어플리케이션(100)에서 블록체인(300)에 저장이 필요한 데이터의 저장 요청이 있는 경우, 트랜잭션 관리부(200)에서 데이터에 관련된 요청을 블록체인(300)에 적합한 형태로 스마트 컨트랙트를 형성시킨다.
이후 필요한 요청이 발생되는 경우 블록체인 서명 관리부(400)에서 해당 기능에 대한 서명을 관리할 수 있다. 블록체인 서명 관리부(400)는 메타마스크와 같은 지갑서비스를 사용할 수 있다. 구체적인 프로세스의 설명은 도 2를 참조하여 설명한다.
어플리케이션 데이터의 블록체인 저장 방법
도 2는 도 1의 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 나타내는 순서도이다.
도 2를 참조하면, 본 실시예에 따른 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법은 어플리케이션에서 블록체인에 저장할 대상 데이터가 결정되는 데이터 결정 단계(S100) 및 대상 데이터를 블록체인 상에 저장하는 블록체인 저장 단계(S200)를 포함한다.
데이터 결정 단계(S100)는 어플리케이션의 프로세스 및 로직에 따라 다양한 상황과 조건에서 저장될 데이터가 결정될 수 있다. 본 발명에서는 게임 내의 데이터를 저장하는 것을 예로 설명하였지만, 비단 이것 뿐만 아니라, 다양한 다른 구현 어플리케이션에 적용될 수 있다. 결과적으로는 데이터 결정 단계(S100)에서는 블록체인으로 저장할 데이터에 관한 각종 정보를 결정한다. 이러한 제약을 만족하는 경우 부가되는 조건, 데이터의 저장 형식, 저장되는 데이터의 용량 등 다양한 부분에 대해서는 변형하여 적용하는 것이 가능하다.
블록체인 저장 단계(S200)에서는 데이터 결정 단계(S100)에서 결정된 데이터를 블록체인에 저장한다. 본 실시예에서의 특성은 이렇게 블록체인 저장 단계(S200)에서 저장된 데이터를 롤백이 가능하도록 구현하는 것이다. 구체적으로 블록체인 저장 단계(S200)를 설명하면 아래와 같다.
블록체인 저장 단계(S200)는, 첫번째로, 트랜잭션 관리부(200)에서 대상 데이터를 기준으로 개시 기능, 롤백 기능, 커밋 기능을 포함하는 스마트 컨트랙트를 생성한다(S210). 이때에 생성되는 스마트 컨트랙트는 데이터의 저장을 개시하는 개시 기능, 데이터의 저장을 롤백 하는 롤백 기능, 데이터의 저장을 확정하는 커밋 기능을 포함한다.
이후에 어플리케이션(100)은 트랜잭션 관리부(200)에 쿼리의 시작, 취소, 완료인 개시 기능, 롤백 기능, 커밋 기능을 요청하는 명령으로 통신할 수 있다. 앞서 트랜잭션 관리부(200)에서 생성된 스마트 컨트랙트는 생성시에 개시 기능, 롤백 기능, 커밋 기능을 포함하여 생성되었으므로, 어플리케이션(100)의 요청이 각각 발생된 경우 트랜잭션 관리부(200)는 각각에 대응되는 기능을 수행하는 것을 진행한다.
먼저, 트랜잭션 관리부(200)에서 대상 데이터에 대한 개시 기능을 수행하여 트랜잭션을 개시하는 개시 기능 수행 단계(S220)을 진행할 수 있다. 개시 기능 수행 단계(S220)는 블록체인(300)에 해당 데이터를 저장하는 작업의 개시를 진행하며, 트랜잭션 관리의 기준이 될 수 있다.
트랜잭션 관리부(200)에서 개시 기능을 수행하는 경우에는 이 단계에서 필요한 전자 서명을 블록체인 서명 관리부(400)에서 개시 기능 수행을 서명한다(S230).
개시 기능 수행 단계(S220) 및 개시 기능 수행 서명 단계(S230)가 진행된 이후에는, 어플리케이션(100)은 다른 프로세스를 진행할 수 있다. 다른 프로세스의 진행에 따른 결과로 인하여, 현재 진행되는 데이터의 블록체인 저장 트랜잭션을 취소할지 완료할지를 결정할 수 있다. 이것은 이후 진행되는 프로세스에 의해 결정된다.
이후 어플리케이션(100)에서는 트랜잭션 관리부(200)에게 커밋 요청 또는 롤백 요청 명령을 발송할 수 있다. 이것은 최종 명령 발송 단계(S240)에서 진행된다. 최종적으로 저장할 데이터는 완료 또는 취소의 명령 중 하나를 선택하여 통신할 수 있으며, 이러한 명령을 어플리케이션(100)으로부터 전달받은 트랜잭션 관리부(200)는 전달 받은 명령을 수행한다.
트랜잭션 관리부(200)는 최종 명령에 따라 커밋 기능을 수행하거나 롤백 기능을 수행하며, 이것은 최종 명령 수행 단계(S251, S252)에서 진행된다. 최종 명령의 수행은 커밋 실행(S251) 또는 롤백 실행(S252)이 될 수 있다.
앞서와 마찬가지로, 최종 명령 서명 단계(S261, S262)에서는 트랜잭션 관리부(200)에서 각 기능을 수행하기 직전에, 블록체인 서명 관리부(400)에서, 최종 명령 수행에 대한 서명을 진행한다. 최종 명령 수행에 대한 서명은 커밋 실행에 대한 서명(S261) 또는 롤백 실행에 대한 서명(S262)이 진행될 수 있다.
도 3은 도 1의 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 이용하는 시스템이 작용하는 것을 설명하는 개념도이다.
도 3을 참조하면, 트랜잭션 관리부(200)는 생성된 스마트 컨트랙트에 의해서, 개시 기능, 커밋 기능, 롤백 기능을 수행할 수 있다. 이러한 각 기능은 어플리케이션(100)으로부터 전달받은 명령에 의해 수행된다.
한편, 각 단계에서의 수행을 블록체인(300)에 반영하기 위해서는 별도의 서명을 진행해야 하는데, 블록체인 서명 관리부(400)는 각 단계의 수행 직전에 스마트 컨트랙트의 수행에 대한 서명을 진행한다.
블록체인 서명 관리부(400)는 트랜잭션 관리부(200)에서 스마트 컨트랙트의 기능을 수행할 때에 각각의 서명을 하는 것을 보다 효율적으로 진행할 수 있도록 각 단계의 실행 직전에서 서명을 진행하도록 할 수 있다.
게임 내에서 진행 프로세스
도 4는 본 발명의 다른 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 나타내는 순서도이다.
도 4를 참조하면, 구체적인 게임 어플리케이션에 적용된 실시예를 나타내는 순서도를 파악할 수 있다.
게임 어플리케이션에 적용되는 경우 대상 데이터 결정 단계(S100)는 플레이어가 게임 내 지정된 임무의 완료 조건을 만족시켜 임무의 성공이 판정되는 임무 조건 완료 판정 단계(S110), 임무의 완수에 따라 플레이어에게 온라인 상으로 제공되는 보상을 지급하는 것이 개시되는 보상 데이터 지급 단계(S120) 및 플레이어의 상태를 저장하는 상태 저장 단계(S130)를 포함하는 것으로 구체화 될 수 있다.
퀘스트 완료 조건이 파악되는 경우(S110), 아이템이나 코인 등과 같은 보상데이터를 지급(S120)하고, 이러한 보상 데이터를 각 개별 플레이어의 상태 데이터로 저장(S130)한다. 종래의 기술에서는 개별 플레이어의 상태 데이터로 저장(S130)하는 경우 일반적인 데이터베이스에 저장할 수 있는데, 이 때에는 자체적인 데이터베이스로 인해 트랜잭션 관리가 가능하다.
한편, 개별 플레이어의 상태 데이터로 저장(S130)하는 경우 블록체인에 저장(S200)하는 프로세스를 포함하는 본 실시예의 경우, 블록체인의 특징 상 데이터의 저장에 작업이 실시간으로 동기화 되어 진행되지는 않으므로, 트랜잭션을 위한 추가적인 관리가 필요하게 된다.
데이터베이스와 블록체인의 병렬 구성
도 5는 본 발명의 또 다른 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 이용하는 시스템의 개념도이다. 도 6은 도 5의 실시예에 따른 어플리케이션 데이터의 블록체인 저장 방법을 나타내는 순서도이다.
도 5를 참조하면, 본 실시예에 따른 블록체인 저장 시스템은 어플리케이션(100), 트랜잭션 관리부(200), 블록체인(300), 블록체인 서명 관리부(400)에 더하여, 데이터베이스(500)를 더 포함한다. 데이터베이스(500)는 저장되는 데이터를 블록체인(300)과 병렬적으로 저장하고, 블록체인(300) 단독으로 저장되는 프로세스를 보완할 수 있다.
도 6을 참조하면, 본 실시예의 블록체인 저장 방법은 데이터 결정 단계(S100) 이후에, 데이터베이스에 대상 데이터가 저장되는 일반 데이터베이스 저장 단계(S300)를 더 포함한다. 데이터베이스에 저장 단계 및 블록체인 저장 단계는 하나의 트랜잭션으로 바인딩되어 처리된다.
이를 수도 코드로 표현하면 아래와 같다.
dbTx = Database.BeginTransaction();
contractTx = Contract.BeginTransaction();
try {
dbTx.Commit();
contractTx.Commit();
} catch {
dbTx.Rollback();
contractTx.Rollback();
}
블록체인과 데이터베이스를 하나의 트랜잭션으로 바인딩할 때에, 데이터베이스의 처리 조건을 블록체인의 활성화 조건으로 사용할 수 있다. 스마트 컨트랙트의 롤백 기능의 활성화 조건은 데이터베이스에 저장 단계 과정에서 데이터베이스 트랜잭션 롤백이 발생되는 조건이 될 수 있다.
예를 들어, 다음의 상황을 가정할 수 있다. 보상으로 플레이어가 착용할 수 있는 아이템과 토큰을 받은 후, 시스템에서 아이템을 저장하려고 하였으나, 그때 마침 인벤토리 공간이 다 채워져서 데이터베이스 프로세스에서 더 이상의 저장을 할 수 없는 상태가 되었다.
이 경우 첫번째는 아이템 보상은 받지 못하고 토큰 보상만 받고 작업이 완료되거나, 두번째는 아이템 보상은 받지 못하고 토큰 보상만 받고 작업이 완료되지 못하는 경우가 발생된다. 첫번째는 플레이어가 명백하게 받기로 한 보상을 받지 못하였기 때문에 문제이고, 두번째는 역시 지속해서 토큰보상을 계속 받게 되는 상황이 생길 수 있기 때문에 문제가 된다.
따라서 본 실시예에서는 이러한 과정을 아이템 보상을 받지 못하고, 토큰 보상도 받지 못한 채 작업은 완료되지 않는 것으로 전환하여야 한다. 이를 위해서는 데이터베이스 프로세스와 블록체인 프로세스가 트랜잭션으로 묶여야 한다.
이를 수도 코드로 표현하면 아래와 같다.
UpdateData(player, rewards) {
itemReward = reward[0];
tokenReward = reward[1];
dbTx = Database.BeginTransaction();
contractTx = Contract.BeginTransaction();
try {
task1 = dbtx.AsyncExecuteProc("AddItem", itemReward.ItemId);
task2 = contractTx.AsyncSend("EarnToken", player, tokenReward.Amount);
WaitAll(task1, task2);
dbTx.Commit();
contractTx.Commit();
} catch {
dbTx.Rollback();
contractTx.Commit();
}
}
트랜잭션 관리자의 각 모듈별 구현
도 7은 본 발명의 또 다른 실시예에 따른 블록체인 저장 시스템의 대상을 나타내는 개념도이다.
도 7을 참조하면, 어플리케이션 내에서 트랜잭션 관리부를 통해 블록체인에 데이터를 저장하는 것의 예시는 플레이어의 토큰 획득, 플레이어의 토큰 사용, 플레이어의 NFT 획득의 세 가지를 포함할 수 있다.
첫번째는 어플리케이션 내에서 보상 등으로 인해 플레이어에게 토큰을 제공하는 경우이다. 원칙적으로 어플리케이션은 무한개수의 토큰을 보유하는 것으로 가정하거나, 이미 제한된 발행 개수가 있는 경우에는 이 발행량의 제한을 고려하여 신규로 제공되는 토큰의 개수를 시스템 내에서 한정하거나 미리 할당해 둘 수 있다.
플레이어가 토큰을 게임 안에서 획득하였을 때에 호출되는 모듈의 수도 코드는 아래와 같다.
EarnToken {
Begin(user, amount) {
this.amount = amount;
this.user = user;
}
Commit() {
contract = SmartContract.Get(TOKEN_CONTRACT_ADDRESS);
userAddress = GetAddress(this.user);
tx = contract.TransferTo(userAddress, this.amount);
signedTx = InternalWallet.Sign(tx);
signedTx.Call();
Reply(SUCCESS);
}
Rollback() {
Reply(FAIL);
}
}
본 발명의 블록체인 저장 방법에 적용될 경우, 대상 데이터는 어플리케이션에서 플레이어에게 제공되는 토큰에 관한 데이터로 한정할 수 있다. 또한 대상 데이터는 소유자 및 제공되는 토큰의 양을 포함하도록 설계된다.
본 발명의 블록체인 저장 방법의 프로세스 내에서 개시 기능 수행 단계 및 개시 기능 서명 단계에서 시작 단계의 작업을 진행할 수 있다. 이때에 진행되는 개시 기능은 어플리케이션에서 플레이어에게 제공되는 토큰의 양을 미리 할당하는 작업이 될 수 있다.
두번째는 어플리케이션 내에서 플레이어가 가진 토큰을 사용하는 경우이다. 플레이어가 가진 토큰을 사용하는 경우에는 플레이어가 보유한 토큰을 시스템 내에 미리 이동시켜 둠으로써 빠른 처리를 진행할 수 있고, 트랜잭션이 실패하면 다시 플레이어에게 돌려주고, 성공하는 경우에는 시스템이 계속 보유한다.
사용자가 토큰을 사용할 때 호출되는 모듈의 수도 코드이다
ConsumeToken {
Begin(user, amount)} {
this.amount = amount;
this.user = user;
contract = SmartContract.Get(TOKEN_CONTRACT_ADDRESS);
tx = tokenContract.TransferTo(GetGameAddress(), this.amount);
userAddress = GetAddress(this.user);
signedTx = ExternalWalletService.sign(userAddress , tx);
signedTx.Call();
}
Commit(user) {
Reply(SUCCESS);
}
Rollback(user) {
contract = SmartContract.Get(TOKEN_CONTRACT_ADDRESS);
userAddress = GetAddress(this.user);
tx = tokenContract.TransferTo(userAddress, this.amount);
signedTx = InternalWallet.Sign(tx)
signedTx.Call();
Reply(FAIL);
}
}
본 발명의 블록체인 저장 방법에 적용될 경우, 대상 데이터는 플레이어에서 어플리케이션으로 사용되는 토큰에 관한 데이터로 한정할 수 있다. 대상 데이터는 소유자 및 제공되는 토큰의 양을 포함할 수 있다.
본 발명의 블록체인 저장 방법의 프로세스 내에서 개시 기능 수행 단계 및 개시 기능 서명 단계에서 시작 단계의 작업을 진행할 수 있다. 개시 기능 수행 단계 및 개시 기능 서명 단계에서는 플레이어에서 어플리케이션에게 제공되는 토큰을 어플리케이션으로 이동시킬 수 있다.
세번째는 사용자가 NFT(Non-Fungible Token; 대체 불가 토큰)을 획득하는 경우이다. NFT는 데이터와 컨트랙트 부분 두가지로 구성되는데, NFT 가 성공적으로 만들어지면 CDN 에 데이터를 업로드한다. 이때 NFT에 연관된 주소를 가지게 하기 위해서 NFT 의 컨트랙트 주소를 CDN 에 힌트로 제공한다
다음은 플레이어가 NFT를 획득할 때 호출되는 모듈의 수도 코드이다.
CreateNFT {
Begin(user, data) {
this.data = data;
this.user = user;
}
Commit(user) {
contract = SmartContract.Get(NFT_FACTORY_CONTRACT);
// NFT
userAddress = GetAddress(this.user);
tx = contract.MintTo(this.url, userAddress);
signedTx = InternalWallet.Sign(tx)
nftAddress = signedTx.Call();
// CDN
this.url = CDN.Upload(nftAddress, this.data);
Reply(SUCCESS, nftAddress);
}
Rollback(user) {
Reply(FAIL);
}
}
본 발명의 블록체인 저장 방법에 적용될 경우, 대상 데이터는 대체 불가 토큰(NFT)에 관한 데이터이며, 대상 데이터는 소유자 데이터 및 사용되는 데이터의 CDN 데이터인 것으로 한정할 수 있다.
블록체인 상의 롤백이 필요한 다양한 예시
도면에서는 도시되지 않았지만, 데이터를 블록체인상에 저장하는 경우 롤백처리가 필요한 사례는 아래와 같은 상황이 발생될 수 있다.
대표적인 사례로는 아이템과 같은 데이터를 저장하는 데에 있어서 인벤토리가 가득찬 경우 등과 같이 아이템을 논리적으로 저장할 수 없는 상황이 발행될 수 있다. 이외의 플레이어의 유저가 게임 내에서 사망 된 경우와 같은 불활성 상태에 빠진 경우가 있을 수 있다. 이러한 경우 보상 지급이 확정된 데이터의 저장에 대해 롤백을 실시할 수 있다.
이외의 사례로는 게임서버와 데이터베이스와의 네트워크 연결이 순간적으로 실패에서 해당 명령이 강제 롤백 된 상황이 발생될 수 있다. 이것은 네트워크의 장비적 문제로 인해 네트워크가 일시적으로 유지되지 못하거나, 기타 정전 등과 같은 불확실한 상황에 처할 수 있다. 네트워크가 순간적으로 실패한 경우에는 네트워크에 재 연결된 수 수행하지 못했던 작업을 재 실시 할 수 있다.
뿐만 아니라, 게임 운영 중에 발견되는 프로그램상의 버그가 있을 수 있다. 수시로 업데이트 되고, 프로그램의 구조가 변화될 수 있는 환경에서는 시스템상의 오류는 언제든지 발생될 수 있으며, 이로 인한 보상처리 문제는 처리 가능한 범위 내로 끌어들여야 하는 문제이다.
마지막으로, 악성 유저에 의한 해킹 프로그램과 같은 치팅 프로그램의 사용 가능성이 있다. 이 경우에도 해킹 프로그램이 감지 된 경우 롤백처리를 통해 제공되었던 토큰 등의 보상을 회수해야 할 필요성이 있다.
한편, 본 발명의 범위 내의 실시 예들은 컴퓨터 실행가능 명령어 또는 컴퓨터 판독가능 매체에 저장된 데이터 구조를 가지거나 전달하는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는, 범용 또는 특수 목적의 컴퓨터 시스템에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 예를 들어, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 기타 광디스크 저장장치, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터 실행가능 명령어, 컴퓨터 판독가능 명령어 또는 데이터 구조의 형태로 된 소정의 프로그램 코드 수단을 저장하거나 전달하는 데에 이용될 수 있고, 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스 될 수 있는 임의의 기타 매체와 같은 물리적 저장 매체를 포함할 수 있다.
이상에서 설명된 본 발명의 일 실시 예는 예시적인 것에 불과하며, 본 발명이 속한 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 잘 알 수 있을 것이다. 그러므로 본 발명은 상기의 상세한 설명에서 언급되는 형태로만 한정되는 것은 아님을 잘 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. 또한, 본 발명은 첨부된 청구범위에 의해 정의되는 본 발명의 정신과 그 범위 내에 있는 모든 변형물과 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.
100 : 어플리케이션부
200 : 트랜잭션 관리부
300 : 블록체인
400 : 블록체인 서명 관리부
500 : 데이터베이스

Claims (10)

  1. 어플리케이션부에서 블록체인에 저장할 대상 데이터가 결정되는 데이터 결정 단계; 및 상기 대상 데이터를 블록체인 상에 저장하는 블록체인 저장 단계를 포함하고,

    상기 블록체인 저장 단계는,
    트랜잭션 관리부에서, 상기 대상 데이터를 기준으로 개시 기능, 롤백 기능, 커밋 기능을 포함하는 스마트 컨트랙트를 생성하는 스마트 컨트랙트 생성 단계;
    상기 트랜잭션 관리부에서 상기 대상 데이터에 대한 상기 개시 기능을 수행하여 트랜잭션을 개시하는 개시 기능 수행 단계;
    블록체인 서명 관리부에서, 상기 생성된 스마트 컨트랙트의 개시 기능 수행을 서명하는 개시 기능 서명 단계;
    상기 어플리케이션부에서 커밋 요청 또는 롤백 요청 발송하는 최종 명령 발송 단계; 및
    상기 트랜잭션 관리부는 상기 최종 명령에 따라 상기 커밋 기능을 수행하거나 상기 롤백 기능을 수행하는 최종 명령 수행 단계;
    상기 블록체인 서명 관리부에서, 상기 트랜잭션 관리부에서 최종 명령 수행에 대한 서명을 진행하는 최종 명령 서명 단계;
    를 포함하는 것을 특징으로 하는 어플리케이션 데이터 블록체인 저장 방법.
  2. 제1항에 있어서,
    상기 데이터 결정 단계는,
    플레이어가 게임 내 지정된 임무의 완료 조건을 만족시켜 상기 임무의 성공이 판정되는 임무 조건 완료 판정 단계;
    상기 임무의 완수에 따라 상기 플레이어에게 온라인 상으로 제공되는 보상을 지급하는 것이 개시되는 보상 데이터 지급 단계; 및
    상기 플레이어의 상태를 저장하는 상태 저장 단계를 포함하고,

    상기 데이터 결정 단계에서 결정되는 상기 대상 데이터는 상기 임무 완수에 따른 보상에 관한 데이터인 것을 특징으로 하는 어플리케이션 데이터 블록체인 저장 방법.
  3. 제1항에 있어서,
    상기 데이터 결정 단계 이후에,
    데이터베이스에 상기 대상 데이터가 저장되는 데이터베이스 저장 단계;를 더 포함하는 것을 특징으로 하는 어플리케이션 데이터 블록체인 저장 방법.
  4. 제3항에 있어서,
    상기 데이터베이스에 저장 단계 및 블록체인 저장 단계는 하나의 트랜잭션으로 바인딩되어 처리되는 것을 특징으로 하는 어플리케이션 데이터 블록체인 저장 방법.
  5. 제4항에 있어서,
    상기 스마트 컨트랙트의 롤백 기능의 활성화 조건은
    상기 데이터베이스에 저장 단계 중 상기 데이터베이스의 트랜잭션 롤백이 발생되는 조건인 것을 특징으로 하는 어플리케이션 데이터 블록체인 저장 방법.
  6. 제2항에 있어서,
    상기 대상 데이터는 상기 어플리케이션에서 상기 플레이어에게 제공되는 토큰에 관한 데이터이며,
    상기 대상 데이터는 소유자 및 제공되는 토큰의 양을 포함하는 것을 특징으로 하는 어플리케이션 데이터 블록체인 저장 방법.
  7. 제6항에 있어서,
    상기 개시 기능 수행 단계 및 상기 개시 기능 서명 단계에서는 상기 어플리케이션에서 상기 플레이어에게 제공되는 토큰의 양을 미리 할당하는 것을 특징으로 하는 어플리케이션 데이터 블록체인 저장 방법.

  8. 제2항에 있어서,
    상기 대상 데이터는 상기 플레이어에서 상기 어플리케이션으로 사용되는 토큰에 관한 데이터이며,
    상기 대상 데이터는 소유자 및 제공되는 토큰의 양을 포함하는 것을 특징으로 하는 어플리케이션 데이터 블록체인 저장 방법.
  9. 제8항에 있어서,
    상기 개시 기능 수행 단계 및 상기 개시 기능 서명 단계에서는 상기 플레이어에서 상기 어플리케이션에게 제공되는 상기 토큰을 상기 어플리케이션으로 이동시키는 것을 특징으로 하는 어플리케이션 데이터 블록체인 저장 방법.
  10. 제2항에 있어서,
    상기 대상 데이터는 대체 불가 토큰(NFT)에 관한 데이터이며,
    상기 대상 데이터는 소유자 데이터 및 사용되는 데이터의 CDN 데이터인 것을 특징으로 하는 어플리케이션 데이터 블록체인 저장 방법.

KR1020220022827A 2022-02-22 2022-02-22 어플리케이션 데이터의 블록체인 저장 방법 및 이를 이용하는 시스템 KR102634318B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220022827A KR102634318B1 (ko) 2022-02-22 2022-02-22 어플리케이션 데이터의 블록체인 저장 방법 및 이를 이용하는 시스템
PCT/KR2023/001638 WO2023163415A1 (ko) 2022-02-22 2023-02-06 어플리케이션 데이터의 블록체인 저장 방법 및 이를 이용하는 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220022827A KR102634318B1 (ko) 2022-02-22 2022-02-22 어플리케이션 데이터의 블록체인 저장 방법 및 이를 이용하는 시스템

Publications (2)

Publication Number Publication Date
KR20230125951A KR20230125951A (ko) 2023-08-29
KR102634318B1 true KR102634318B1 (ko) 2024-02-08

Family

ID=87766295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220022827A KR102634318B1 (ko) 2022-02-22 2022-02-22 어플리케이션 데이터의 블록체인 저장 방법 및 이를 이용하는 시스템

Country Status (2)

Country Link
KR (1) KR102634318B1 (ko)
WO (1) WO2023163415A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110860090A (zh) 2019-11-01 2020-03-06 王先勤 一种基于区块链的游戏资产交易方法
JP2020047104A (ja) 2018-09-20 2020-03-26 日本電信電話株式会社 決済システム、決済方法、利用者装置、決済プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102182849B1 (ko) * 2019-01-23 2020-11-25 넷마블 주식회사 아이템 거래 기법
WO2020197247A1 (ko) * 2019-03-25 2020-10-01 (주)링카코리아 가상자산에 의한 제1 결제수단에 기반하여 사용자에게 서비스를 제공하는 서비스제공시스템과 연동하여 비-가상자산에 의한 제2 결제수단에 기반하여 상기 서비스를 제공해 줄 수 있도록 지원하는 결제대행시스템 및 이를 이용한 결제 대행 방법
KR20200108763A (ko) * 2019-10-01 2020-09-21 넷마블 주식회사 탈중앙 게임 운영 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020047104A (ja) 2018-09-20 2020-03-26 日本電信電話株式会社 決済システム、決済方法、利用者装置、決済プログラム
CN110860090A (zh) 2019-11-01 2020-03-06 王先勤 一种基于区块链的游戏资产交易方法

Also Published As

Publication number Publication date
WO2023163415A1 (ko) 2023-08-31
KR20230125951A (ko) 2023-08-29

Similar Documents

Publication Publication Date Title
CN110096857B (zh) 区块链系统的权限管理方法、装置、设备和介质
US7783758B1 (en) Method and apparatus for increasing the efficiency of transactions and connection sharing in an enterprise environment
US8073962B2 (en) Queued transaction processing
JP4550411B2 (ja) 同期されたコールバック処理特徴をもったトランザクション処理システム及び方法
US6665814B2 (en) Method and apparatus for providing serialization support for a computer system
US7975138B2 (en) Systems and methods for mutually authenticated transaction coordination messages over insecure connections
US7930269B2 (en) Synchronizing data in a distributed data processing system
US20020178177A1 (en) Parallel logging method for transaction processing system
US20230275771A1 (en) Pre-execution of block chain transaction in parallel during block consensus
CN101350022B (zh) 基于数据库逻辑锁的变更处理方法
CN109783204A (zh) 一种分布式事务处理方法、装置及存储介质
CN106469087A (zh) 元数据输出方法、客户端和元数据服务器
CN108762895B (zh) 处理分布式事务的方法及装置
US6973657B1 (en) Method for middle-tier optimization in CORBA OTS
JP2002510084A (ja) クライアント/サーバ・コンピューティング・システム
CN111597269A (zh) 一种基于区块链的合约实现方法、装置及设备
KR102634318B1 (ko) 어플리케이션 데이터의 블록체인 저장 방법 및 이를 이용하는 시스템
WO2006106080A1 (en) Business context services for adaptable service oriented architecture components
CN101145165A (zh) 工作流数据的持久化处理方法、装置及工作流系统
KR102439351B1 (ko) Esg를 위한 비채굴 블록체인 네트워크 시스템 및 그 시스템에 참여하는 서버 노드의 동작 방법
KR102446213B1 (ko) 블록체인 변환 방법 및 장치
JP2022032116A (ja) データ移行方法、データ移行システム、およびノード
CN111915313B (zh) 用于区块链的数字资产转移控制方法、装置及通信系统
CN115456802B (zh) 一种基于数字货币的保险事件处理系统
CN115239318B (zh) 一种用于民航保险的事件处理系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right