KR102738475B1 - 블록체인 네트워크에서 데이터 추출 - Google Patents

블록체인 네트워크에서 데이터 추출 Download PDF

Info

Publication number
KR102738475B1
KR102738475B1 KR1020217031493A KR20217031493A KR102738475B1 KR 102738475 B1 KR102738475 B1 KR 102738475B1 KR 1020217031493 A KR1020217031493 A KR 1020217031493A KR 20217031493 A KR20217031493 A KR 20217031493A KR 102738475 B1 KR102738475 B1 KR 102738475B1
Authority
KR
South Korea
Prior art keywords
data
event
blockchain
blockchain network
etl
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020217031493A
Other languages
English (en)
Other versions
KR20210133289A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20210133289A publication Critical patent/KR20210133289A/ko
Application granted granted Critical
Publication of KR102738475B1 publication Critical patent/KR102738475B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)

Abstract

본 발명은 블록체인 네트워크에 액세스할 수 있는 컴퓨터 디바이스에 의한 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출 방법에 관한 것이다. 상기 컴퓨터 디바이스는 추출된 이벤트 데이터를 사용하여 블록체인 네트워크 외부의 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 ETL-코드를 실행하기 위한 ETL-디바이스로서 구성된다. 상기 방법은 이벤트를 검출하는 단계, 이벤트 스키마를 결정하는 단계, ETL-코드를 제공 및 실행하는 단계를 포함한다. 상기 ETL-코드는 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 추출된 이벤트 데이터를 이벤트 스키마를 사용하여 외부 데이터 구조의 논리적 구조를 정의하는 데이터 모델을 준수하도록 변환하고, 변환된 데이터를 외부 데이터 구조에 로드하여 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위한 기계 실행 가능 명령들을 포함한다.

Description

블록체인 네트워크에서 데이터 추출
[0001] 본 발명은 전자 데이터 처리 분야에 관한 것으로, 보다 상세하게는 블록체인 네트워크으로부터 데이터를 추출하는 것에 관한 것이다.
[0002] 블록체인은 블록체인 네트워크 참가자들이 변경될 수 없는 트랜잭션(transaction)을 기록하는 데 사용할 수 있는 공유 원장 기술(a shared ledger technology)을 제공한다. 블록체인은 공유, 변조 추적 및/또는 변조 방지 원장(a shared, tamper-evident and/or tamper-proof ledger)과 같은 단일 진실 지점(single point of truth)을 제공한다. 이 접근 방식은 트랜잭션 추적을, 여러 원장이 별도로 유지 관리되는 사일로 모델(a siloed model)에서 블록체인 네트워크 전반에 걸쳐 공통 보기(common view)를 제공하는 모델로 변경한다. 블록체인은 합의(consensus)를 사용하여 원장에 트랜잭션을 실행(commit)하기 때문에 결과는 궁극적으로 일관된다. 시스템 관리자라도 트랜잭션을 삭제할 수 없다. 액세스 권한이 있는 블록체인 네트워크의 각 멤버는 동일한 원장의 사본을 가지므로, 자산 출처(asset provenance) 및 추적성(traceability)은 투명하고 신뢰성이 있다. 정보는 필요한 경우에만 알려주는 방식으로만(only on a need-to-know basis) 공유될 수 있다.
[0003] 다양한 실시 예들은 블록체인 네트워크에 액세스할 수 있는 컴퓨터 디바이스에 의한 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출 방법 및 독립 청구항들의 주제에 의해 기술되는 방법을 수행하기 위한 컴퓨터 프로그램 제품 및 컴퓨터 디바이스를 제공한다. 유리한 실시예들은 종속항들에 기술된다. 본 발명의 실시예들은 상호 배타적이지 않다면 자유롭게 조합될 수 있다.
[0004] 일 실시예에서, 본 발명은 블록체인 네트워크에 액세스할 수 있는 컴퓨터 디바이스에 의한 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출 방법에 관한 것이다. 상기 컴퓨터 디바이스는 추출된 이벤트 데이터를 사용하여 블록체인 네트워크 외부의 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 ETL-코드를 실행하기 위한 ETL-디바이스로서 구성된다(ETL: Extract, Transform, Load).
[0005] 상기 방법은 블록체인 네트워크에서 발생하는 이벤트를 검출하는 단계를 포함한다. 상기 검출된 이벤트에 대한 이벤트 스키마가 결정되고, 이벤트 스키마는 검출된 이벤트를 나타내는 이벤트 데이터의 논리적 구조를 식별한다. 상기 ETL-코드가 제공된다. 상기 ETL-코드는 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 상기 추출된 이벤트 데이터를 이벤트 스키마를 사용하여 외부 데이터 구조의 논리적 구조를 정의하는 데이터 모델을 준수하도록 변환하며, 상기 변환된 데이터를 외부 데이터 구조에 로드하여 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 구성된 머신-실행 가능 명령들의 세트를 포함한다. 상기 제공된 ETL-코드가 실행된다. 상기 ETL-코드를 실행하면 ETL-디바이스가 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 이벤트 스키마를 사용하여 상기 추출된 이벤트 데이터를 외부 데이터 구조의 데이터 모델을 준수하도록 변환하며, 상기 변환된 이벤트 데이터를 외부 데이터 구조에 로드하여 외부 데이터 구조의 데이터 컨텐츠를 수정한다.
[0006] 실시예들에 따르면, 상기 ETL-디바이스는 ETL-피어의 형태로 상기 블록체인 네트워크에 포함된다.
[0007] 실시예들에 따르면, 상기 ETL-디바이스는 상기 블록체인 네트워크의 피어에 대한 암호화로 보안된 메시징 연결을 사용하여 상기 블록체인 네트워크 상에서 교환되는 데이터를 모니터하도록 구성되는 외부 컴퓨터 디바이스이다.
[0008] 추가 실시예에서, 본 발명은 블록체인 네트워크에 액세스할 수 있는 컴퓨터 디바이스에 의한 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출을 위해 구현된 컴퓨터 판독 가능 프로그램 코드를 포함하는 비휘발성 컴퓨터 판독 가능 스토리지 매체를 포함하는 컴퓨터 프로그램 제품에 관한 것이다. 상기 컴퓨터 디바이스는 추출된 이벤트 데이터를 사용하여 블록체인 네트워크 외부의 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 ETL-코드를 실행하기 위한 ETL-디바이스로서 구성된다.
[0009] 상기 ETL-디바이스의 프로세서에 의해 상기 프로그램 코드가 실행되면 상기 프로세서가 상기 ETL-디바이스를 제어하여 블록체인 네트워크에서 발생하는 이벤트를 검출하도록 한다. 상기 검출된 이벤트에 대한 이벤트 스키마가 결정되고, 상기 이벤트 스키마는 상기 검출된 이벤트를 나타내는 이벤트 데이터의 논리적 구조를 식별한다. 상기 ETL-코드가 제공된다. 상기 ETL-코드는 상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 외부 데이터 구조의 논리적 구조를 정의하는 데이터 모델을 준수하도록 변환하며, 상기 변환된 데이터를 외부 데이터 구조에 로드하여 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 구성된 머신-실행 가능 명령들의 세트를 포함한다. 상기 제공된 ETL-코드가 실행된다. 상기 ETL-코드를 실행하면 상기 ETL-디바이스는 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 상기 이벤트 스키마를 사용하여 상기 추출된 이벤트 데이터를 외부 데이터 구조의 데이터 모델을 준수하도록 변환하며, 상기 변환된 이벤트 데이터를 외부 데이터 구조에 로드하여 외부 데이터 구조의 데이터 컨텐츠를 수정한다.
[0010] 추가 실시예에서, 본 발명은 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출을 위해 상기 블록체인 네트워크에 액세스할 수 있는 컴퓨터 디바이스에 관한 것이다. 상기 컴퓨터 디바이스는 상기 추출된 이벤트 데이터를 사용하여 블록체인 네트워크 외부의 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 ETL-코드를 실행하기 위한 ETL-디바이스로서 구성된다.
[0011] 상기 ETL-디바이스는 프로세서 및 머신-실행 가능 프로그램 명령들을 저장하는 메모리를 포함한다. 상기 프로세서에 의해 상기 프로그램 코드가 실행되면 상기 프로세서가 ETL-디바이스를 제어하여 상기 블록체인 네트워크에서 발생하는 이벤트를 검출하도록 한다. 상기 검출된 이벤트에 대한 이벤트 스키마가 결정되고, 상기 이벤트 스키마는 검출된 이벤트를 나타내는 이벤트 데이터의 논리적 구조를 식별한다. 상기 ETL-코드가 제공된다. 상기 ETL-코드는 상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 외부 데이터 구조의 논리적 구조를 정의하는 데이터 모델을 준수하도록 변환하며, 상기 변환된 데이터를 외부 데이터 구조에 로드하여 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 구성된 머신-실행 가능 명령들의 세트를 포함한다. 상기 제공된 ETL-코드가 실행된다. 상기 ETL-코드를 실행하면 상기 ETL-디바이스가 상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 상기 이벤트 스키마를 사용하여 상기 추출된 이벤트 데이터를 외부 데이터 구조의 데이터 모델을 준수하도록 변환하며, 상기 변환된 이벤트 데이터를 외부 데이터 구조에 로드하여 외부 데이터 구조의 데이터 컨텐츠를 수정한다.
[0012] 실시예들에 따르면, 상기 ETL-디바이스는 ETL-피어의 형태로 상기 블록체인 네트워크에 의해서 구성된다.
[0013] 실시예들에 따르면, 상기 ETL-디바이스는 상기 블록체인 네트워크의 피어에 대한 암호화로 보안된 메시징 연결을 사용하여 블록체인 네트워크 상에서 교환되는 데이터를 모니터하도록 구성되는 외부 컴퓨터 디바이스이다.
[0014] 다음에서, 아래와 같은 도면들을 참조하여 단지 예로서 본 발명의 실시예들을 더 상세히 설명한다.
[0015] 도 1은 일 실시예에 따른 예시적인 컴퓨터 디바이스를 예시하는 개략도를 도시한다.
[0016] 도 2는 일 실시예에 따른 예시적인 클라우드 컴퓨팅 환경을 예시하는 개략도를 도시한다.
[0017] 도 3은 일 실시예에 따른 예시적인 추상화 모델 계층들을 예시하는 개략도를 도시한다.
[0018] 도 4은 ETL-피어(ETL-peer)를 포함하는 예시적인 블록체인 네트워크을 예시하는 개략도를 도시한다.
[0019] 도 5은 ETL-피어(ETL-peer)를 포함하는 예시적인 블록체인 네트워크을 예시하는 개략도를 도시한다.
[0020] 도 6은 ETL-피어(ETL-peer)를 포함하는 예시적인 블록체인 네트워크을 예시하는 개략도를 도시한다.
[0021] 도 7은 ETL-디바이스에 의해 블록체인으로부터 데이터를 추출하는 예시적인 방법의 개략적인 흐름도를 도시한다.
[0022] 도 8은 이벤트 데이터를 포함하는 블록체인의 예시적인 블록을 예시하는 개략도를 도시한다.
[0023] 도 9는 블록체인 블록의 이벤트 데이터를 외부 데이터 구조에 매핑하는 것을 예시하는 개략도를 도시한다.
[0024] 도 10은 이벤트 데이터를 포함하는 블록체인의 예시적인 블록을 예시하는 개략도를 도시한다.
[0025] 도 11은 이벤트 데이터를 포함하는 블록체인의 예시적인 블록을 예시하는 개략도를 도시한다.
[0026] 본 발명의 다양한 실시예에 대한 설명은 예시의 목적으로 제시되었으며, 완전하거나 개시된 실시예들로 제한하려는 의도가 있는 것은 아니다. 이 기술 분야에서 통상의 지식을 가진 자라면 개시된 실시예들의 범위와 정신을 벗어나지 않으면서 많은 수정들 및 변형들이 있을 수 있다는 것을 명백히 알 수 있을 것이다. 본원에 사용된 용어는 실시예들의 원리, 시장에서 발견되는 기술에 대한 실질적인 응용 또는 기술적 개선을 가장 잘 설명하거나, 또는 당업자가 본원에 개시된 실시예들을 이해할 수 있도록 하기 위해 선택되었다.
[0027] 실시예들은 블록체인에서 데이터를 추출하는 간단한 메커니즘을 제공하는 유익한 효과를 가질 수 있다. 데이터를 추출하기 위해 추가 커넥터를 구현할 필요는 없다. 블록체인 데이터에서, 예를 들어 각 데이터의 분석을 수행하여, 많은 가치 있는 정보를 추출할 수 있다. 상기와 같은 분석을 수행하기 위해, 데이터를 추출하여 분석을 위해 구성된 블록체인 네트워크 외부의 외부 데이터 구조에 제공할 수 있다.
[0028] 이벤트는 추가 데이터 제공, 기존 데이터 수정 및/또는 기존 데이터 삭제를 포함할 수 있다. 상기 이벤트는 각 이벤트를 기록하는 블록체인의 블록 내 트랜잭션을 호출하여 제공될 수 있다. 실시예들에 따르면, 이벤트들은 데이터 쿼리를 포함하거나 트리거할 수 있다. 예를 들어, 데이터 삭제를 실행하기 위해 어떤 데이터를 삭제할지 결정하기 위한 이벤트로 데이터 삭제가 검출되는 경우 삭제 시 콜백(callback on delete)이 필요할 수 있다. 다음에서 블록체인은 원장(ledger)이라고도 할 수 있다. 실시예들에 따르면, 원장은 블록체인과 동일할 수 있다. 다른 실시예들에 따르면, 원장은 블록체인에 더하여 추가 데이터 컬렉션에 저장된 추가 데이터, 예를 들어 월드 스테이트(world state) 또는 개인 데이터(private data)를 포함할 수 있다.
[0029] 블록체인은 임의 유형의 정보를 저장하는 원장으로 사용될 수 있다. 블록체인은 주로 금융 거래에 사용되지만, 자산, 즉 제품, 패키지, 서비스, 상태 등을 포함한 임의 유형의 정보를 저장할 수 있다. 블록체인은 불변 원장(immutable ledger)에 임의 유형의 정보를 안전하게 저장하는 데 사용될 수 있다. 탈중앙화 합의(decentralized consensus)는 하나의 중앙 데이터베이스가 트랜잭션 유효성을 결정하는 데 사용되는 경우와 같은 기존의 중앙화 합의(centralized consensus)와 다르다. 탈중앙화 합의 체계는 권한과 신뢰를 탈중앙화 네트워크으로 이전하고 그 노드들이 블록에 트랜잭션들을 지속적이고 순차적으로 기록할 수 있도록 하여 블록체인이라고 하는 고유한 체인을 생성한다. 따라서 트랜잭션 소스의 인증을 보호하기 위해, 예를 들어 해시 코드를 통한 암호법을 사용하는 탈중앙화 합의 체계에 의해 중앙 중개자의 필요성이 제거될 수 있다.
[0030] 블록체인은 엄격한 개인 정보 보호 및 보안 제어로 설계된 허가된 분산형 데이터 시스템으로 구현될 수 있기 때문에 블록체인의 현재의 지속성 구현(its current persistency implementation)은 블록체인 기술 자체에서 머신 러닝, 예측 분석 등과 같은 정교한 분석을 실행하는 것을 의미하는 온-체인(on-chain) 분석에는 적합하지 않다. 뿐만 아니라 많은 분석에는 단일 시스템 내 다양한 소스들로부터의, 예를 들어 일반적으로 분석을 위해 여러 다른 시스템에서 입력을 받는, 하둡(Hadoop) 또는 기업 데이터 웨어하우스 (enterprise data warehouse) 기반 데이터 레이크로부터의 데이터가 필요하다. 이러한 시나리오에서, 블록체인 시스템은 트랜잭션 데이터를 중앙 분석 시스템에 제공해야 하는 오더 입력 시스템과 같은 또 다른 트랜잭션 시스템이 될 수 있다. 허가된 블록체인 네트워크에서 모든 사용자와 컴포넌트는 알려진 신원(ID)을 가질 수 있다. 모든 통신 접점에서 서명/검증(sign/verify) 로직이 구현되며 일련의 보증(endorsement) 및 유효성 검사(validation check)를 통해 트랜잭션이 동의 될 수 있다.
[0031] 피어(peer)는 원장을 유지 관리하고 원장에 대한 읽기/쓰기 연산을 수행하기 위해 체인코드를 실행하는 네트워크 주체다. 피어는 블록체인 네트워크의 멤버들이 소유하고 유지한다.
[0032] 블록체인은, 예를 들어 하이퍼레저 패브릭(Hyperledger Fabric) 블록체인 프로젝트에서 제공하는 블록체인일 수 있다. 하이퍼레저 패브릭은 리눅스 재단(Linux Foundation) 산하의 블록체인 프레임워크 구현이며, 합의 및 멤버십 서비스와 같은 컴포넌트가 플러그 앤 플레이가 될 수 있도록 하는 모듈식 아키텍처로 애플리케이션 또는 솔루션을 개발하기 위한 기반을 제공한다. 예를 들어, 시스템의 애플리케이션 로직을 포함하는, 체인코드라고도 하는 스마트 계약(smart contract)이 제공될 수 있다.
[0033] 하이퍼레저 패브릭은 예를 들어 비즈니스 목적을 위해 초기 신뢰와 신원 확인 요구를 공유하는 주체들(예: 비즈니스 파트너들) 간의 비밀 원장(private ledger)으로 사용될 수 있다. 따라서, 하이퍼레저 패브릭에서 블록체인은 허가된인, 즉 블록체인에 대한 액세스 권한을 부여받기 위해 참여 주체에 의한 승인을 포함하는 등록이 필요하고, 참여 중인 주체의 신원을 확인하고 권한을 부여하는 데 사용되는 사용자 ID를 표시하고 참여하는 익명의 주체들 간의 초기 신뢰가 없는 개방형 블록체인과 같은 철저한 마이닝 없이 합의를 구현하는, 비공개 블록체인(private blockchain)의 형태로 제공될 수 있다.
[0034] 허가된 블록체인 네트워크을 위한 플랫폼인 하이퍼레저 패브릭은 블록체인 네트워크의 모든 멤버에게 할당된 블록체인 네트워크 ID들을 관리하기 위한 모듈식 인증 기관 컴포넌트를 포함한다. 따라서, 모든 트랜잭션을 블록체인 네트워크의 등록된 멤버가 추적할 수 있도록 보장하는, 액세스 제어 목록(ACL)을 기반으로 하는 네트워크 활동에 대한 제어가 활성화된다. 인증 기관은 최상위 인증서(root certificate)를 보유하여 해당 최상위 인증서로 블록체인 네트워크에 가입하도록 승인받는 각 멤버의 등록 인증서에 서명할 수 있다. 신뢰(trust)는 해당 최상위 인증서의 무결성 보호에 대한 믿음으로 만들어진다. 파생된 인증서(Derived certificates)는 갱신되거나 취소될 수 있다. 또한, 각 멤버 컴포넌트, 서버 측 애플리케이션들 및 경우에 따라 사용자에게 등록 인증서(enrollment certificate)가 발급될 수 있다. 등록된 각 사용자에게는 트랜잭션 인증서 할당이 추가로 부여될 수 있다. 각 트랜잭션 인증서는 하나의 네트워크 트랜잭션을 승인할 수 있다. 네트워크 멤버십 및 작업에 대한 인증서 기반 제어를 통해 멤버들은 비공개 및 기밀 채널, 애플리케이션 및 데이터에 대한 액세스를 제한할 수 있다.
[0035] 하이퍼레저 패브릭은 사용자 인증은 물론 인증서 발급 및 유효성 검증을 배후에서 지원하는 모든 암호화 메커니즘 및 프로토콜의 추상화를 제공하는 멤버십 서비스 프로바이더(membership service provider, MSP) 컴포넌트를 포함한다. 멤버십 서비스 프로바이더는 각 피어에 설치되어 각 피어에 발행되는 트랜잭션 요청이 인증되고 권한이 부여된 사용자 ID에서 시작되도록 할 수 있다. 하이퍼레저 패브릭은 주문자(orderer)라고도 하는 주문 노드(ordering node)들에 의해 구현되는 주문 서비스(ordering service)를 추가로 제공한다. 주문 노드들은 트랜잭션을 주문하고 주문된 트랜잭션을 블록들로 패키징하고 이 블록들은 원장의 인스턴스에 기록되도록 피어들에게 전송된다.
[0036] 하이퍼레저 패브릭은 클라이언트 인증(authentication), 보증(endorsement), 주문(ordering) 및 원장에 대한 실행(commitment)을 포함하여 트랜잭션 흐름 전반에 걸쳐 데이터 일관성과 무결성을 보장하는 여러 체크포인트를 구현한다. 하이퍼레저 패브릭 블록체인 네트워크에서, 쿼리 및 트랜잭션에 대한 데이터 흐름은 클라이언트 측 애플리케이션에 의해 블록체인 채널 상의 피어에 트랜잭션 요청을 제출하여 시작된다. API들을 사용하여 클라이언트 애플리케이션은 지정된 블록체인 채널 상의 적절한 보증 피어(endorsing peer)들에게 트랜잭션 제안을 서명하고 제출한다. 이 초기 트랜잭션 제안은 보증 요청이다. 각각의 블록체인 채널 상의 각 피어는 제출하는 클라이언트의 신원과 권한을 검증한다. 유효한 경우 각 피어는 클라이언트가 제공한 입력에 대해 지정된 체인코드를 실행한다. 트랜잭션 결과와 호출된 체인코드에 대한 보증 정책을 기반으로 각 피어는 서명된 응답을 애플리케이션에 반환한다. 트랜잭션에 동의하는 서명된 각 응답이 트랜잭션에 대한 보증이다. 제안이 체인코드에서 쿼리 함수를 호출한 경우 애플리케이션은 데이터를 클라이언트에 반환한다. 제안이 원장을 갱신하기 위해 체인코드에서 함수를 호출한 경우 애플리케이션은 다음 단계를 계속 진행한다: 애플리케이션은 읽기/쓰기 세트 및 보증을 포함하는 트랜잭션을 주문 서비스(ordering service)로 전달한다. 사용되는 블록체인 채널 상의 모든 피어는 체인코드별 유효성 검증 정책을 적용하고 동시성 제어 버전 검사를 실행하여 블록 내 각 트랜잭션의 유효성을 검증한다. 채널 상의 각 피어는 주문된 트랜잭션 블록들의 유효성을 검증한 다음, 채널 원장의 로컬 복제본에 블록을 실행한다(즉, 추가한다). 피어들은 또한 각 블록의 각 트랜잭션을 유효 또는 무효로 표시한다. 유효성 검증 프로세스에 실패한 모든 트랜잭션은 블록에서 유효하지 않은 것으로 표시된다. 모든 유효한 트랜잭션을 사용하여 수정된 키/값 쌍에 따라 상태 데이터베이스, 즉 월드 스테이트(world state)를 갱신한다. 가십 데이터 보급 프로토콜(gossip data dissemination protocol)을 사용하여 각 블록체인 채널에 할당된 피어들 사이에 동기화된 원장들을 보장하기 위해 블록체인 채널에 걸쳐 원장 데이터를 지속적으로 브로드캐스트한다.
[0037] 실시예들은 원장 상의 이벤트를 단순히 청취하는 것 이상을 가능하게 하는 유익한 효과를 가질 수 있다. 이벤트를 나타내는 이벤트 데이터를 포함하는 추가 블록이 블록체인에 추가되는 경우, 추가 블록이 단지 외부 청취자(an external listener)에게 전달되는 것이 아니라 그보다 블록체인 네트워크의 일부인 ETL-피어 형태로 제공되는 ETL-디바이스에 의해 ETL-코드가 실행되어, 외부 데이터 구조를 수정하는 데 사용되는 결과 데이터 세트가 외부 데이터 구조의 데이터 모델을 준수하도록, 블록체인으로부터 이벤트 데이터를 추출, 변환 및 로드한다. ETL-코드가 블록체인 네트워크 내에서 ETL-피어에 의해 실행되므로, 개인 정보가 보호되고 등록 요건이 충족될 수 있다. 또한, 외부 데이터 구조의 데이터 모델뿐만 아니라 이벤트 데이터에 의한 이벤트 스키마 일치(event schema match)에 적응되는 적합한 ETL-코드를 사용하면 모든 관련 데이터 엘리멘트들이 추출되고 외부 데이터 구조 수정을 위해 고려되게 할 수 있다.
[0038] 실시예들은 ETL-피어가 블록체인 네트워크의 일부가 되는 유용한 효과, 즉 ETL-코드가 블록체인 네트워크의 보안 경계 내에서 실행되는 유익한 효과를 가질 수 있다. 따라서 블록체인 네트워크의 보안 경계의 일부인 ETL-피어는 블록체인 네트워크에서 처리되는 모든 이벤트 데이터에 대한 전체 액세스 권한을 제공받을 수 있다. 구체적으로, ETL-피어는 따라서 블록체인 네트워크 내의 전체 통신, 예를 들어 블록체인 네트워크 내에서 데이터를 라우팅하는 데 사용되는 블록체인 네트워크의 전체 통신 프로토콜을 청취하도록 활성화될 수 있다. 블록체인 네트워크의 통신 프로토콜은 예를 들어 가십 프로토콜, 즉 가십 데이터 보급의 형태로 제공될 수 있다. 가십 프로토콜은 데이터 무결성과 일관성을 보장하기 위해 안정적이고 확장 가능한 데이터 보급 프로토콜을 제공한다. 블록체인 네트워크 성능, 보안 및 확장성을 높이기 위해, 워크로드는 한편으로는 보증 피어(endorsing peer) 및 실행 피어(committing peer)와 같은 트랜잭션 실행 피어들과 다른 한편으로는 트랜잭션 주문 노드들로 나뉠 수 있다.
[0039] 가십 프로토콜에 따른 메시징은 여러 피어로부터 현재의 일관된 원장 데이터를 지속적으로 수신하는 블록체인 채널 상의 각 피어를 통해 연속적일 수 있다. 각 가십 메시지는 서명될 수 있다. 가십 프로토콜은 피어 검색(peer discovery) 및 블록체인 채널 멤버십을 관리할 수 있다. 이를 위해 가십 프로토콜은 사용 가능한 피어들을 지속적으로 식별하고 오프라인 상태가 된 피어들을 검출할 수 있다. 가십 프로토콜은 블록체인 채널의 모든 피어에 원장 데이터를 보급할 수 있다. 블록체인 채널의 나머지 피어와 동기화되지 않은, 즉, 예를 들어 지연, 네트워크 파티션 또는 기타 원인으로 인해 원장 데이터가 누락된, 피어는 결국 누락된 데이터를 소유한 피어들에 접촉하여 현재 원장 상태로 동기화될 수 있다. 새로 연결된 피어들은 원장 데이터의 피어 투 피어 상태 전송 갱신을 허용하여 속도를 높일 수 있다.
[0040] 가십 프로토콜에 기반한 브로드캐스팅은 동일한 채널의 다른 피어들로부터 피어들에 의해 메시지를 수신하고 수신된 메시지를 각 채널에서 무작위로 선택된 다수의 피어로 전달하는 것을 포함할 수 있다. 피어들은 메시지 전달을 기다리는 대신 당김 메커니즘(pull mechanism)을 추가로 실행할 수 있다. 이 사이클을 반복하면 채널 멤버십, 원장 및 상태 정보를 지속적으로 최신 상태로 동기화하여 유지할 수 있다. 블록체인의 추가 블록을 보급하기 위해 채널의 리더 피어(leader peer)는 트랜잭션을 주문하고 이를 블록으로 패키지하는 주문 서비스에서 데이터를 가져올 수 있으며, 블록체인 네트워크의 동일한 멤버에게 할당된 다른 피어들에게 가십 프로토콜을 사용하여 블록들의 보급을 시작할 수 있다. 블록들은 주문 서비스에 의해 서명되고 블록체인 채널 상의 리더 피어들에게 전달될 수 있다. 블록체인 네트워크의 각 멤버는, 순서 주문 서비스와의 연결을 유지하고 각 멤버의 다른 피어들 간에 블록체인의 추가 블록들의 배포를 시작할 수 있는, 리더 피어로 선출된 한 피어를 포함할 수 있다.
[0041] 블록체인 네트워크의 온라인 피어들은 활성 메시지(alive message)를 지속적으로 브로드캐스트하여 자신의 가용성을 표시할 수 있다. 이러한 메시지들의 각각은, 예를 들어 공개 키 기반 구조(PKI) ID와 메시지에 대한 발신자의 서명을 포함할 수 있다. 블록체인 채널의 피어가 특정 피어로부터 활성 메시지를 수신하지 않으면, 해당 피어는 불활성(dead)인 것으로 간주되어 결국 브로드캐스트 채널 멤버십에서 제외될 수 있다. 활성 메시지는 암호화 방식으로 서명되므로 악성 피어는 최상위 인증 기관(CA)에서 승인한 서명 키가 없기 때문에 다른 피어로 가장하는 것이 방지된다.
[0042] 수신된 메시지의 자동 전달 외에도, 상태 조정 프로세스는 각 블록체인 채널의 피어들 간에 월드 스테이트를 동기화할 수 있다. 가십 프로토콜을 기반으로 데이터 보급을 유지하기 위해 고정된 연결이 필요하지 않기 때문에 프로세스는 노드 충돌에 대한 공차(tolerance)를 포함하여 공유 원장에 데이터 일관성과 무결성을 안정적으로 제공할 수 있다.
[0043] 블록체인 채널은 분리되어 있기 때문에 한 채널의 피어들은 다른 채널에서 메시지를 보내거나 정보를 공유할 수 없다. 피어는 여러 채널에 속할 수 있지만, 분할된 메시징은 피어들의 블록체인 채널 구독을 기반으로 메시지 라우팅 정책을 적용하여 동일한 블록체인 채널에 할당되지 않은 피어들에게 데이터가 보급되는 것을 방지할 수 있다.
[0044] 점-대-점 메시지의 보안은, 예를 들어 서명을 요구하지 않고 피어들의 TLS 계층에 의해 처리될 수 있다. 피어들은 CA에서 할당한 인증서로 인증될 수 있다. 피어 인증서는 가십 프로토콜에 따라 인증될 수 있다. 인증은 블록체인 네트워크의 멤버십 서비스 프로바이더에 의해 관리될 수 있다. 피어가 처음으로 블록체인 채널에 연결할 때 TLS 세션은 멤버십 ID와 결합될 수 있다. 이렇게 하여, 각 피어는 본질적으로 블록체인 네트워크 및 블록체인 채널의 멤버십과 관련하여 연결 피어에 대해 인증될 수 있다.
[0045] 블록체인 네트워크의 피어들 간의 완전한 통신은 블록체인에 포함된 블록들의 데이터 컨텐츠를 초과할 수 있다. 블록체인 네트워크에서 처리하는 데이터는 원장을 사용하여 저장할 수 있다. 원장은 객체(object)에 대한 사실 정보를 저장한다. 사실 정보는 객체의 현재 상태에 대한 사실, 예를 들어 객체의 속성 값뿐만 아니라 각 상태를 초래하는 트랜잭션의 이력을 포함할 수 있다. 블록체인 외에도 원장은 월드 스테이트(world state)를 포함할 수 있다. 따라서, 원장에 포함되고 블록체인 네트워크에서 처리하는 데이터는 블록체인에 포함된 데이터를 초과할 수 있다. 블록체인과 월드 스테이트는 각각 객체들의 세트에 관한 사실 정보의 세트를 나타낸다. 월드 스테이트는 객체들의 세트의 현재 상태의 캐시를 포함하는 데이터 컬렉션, 예를 들어 데이터베이스의 형태로 제공될 수 있다. 원장의 월드 스테이트에 포함된 객체들의 현재 상태의 세트는 원장 상태라고도 할 수 있다. 월드 스테이트는 블록체인에서 제공하는 각각의 현재 상태를 초래하는 전체 트랜잭션 로그를 순회하여 현재 상태를 계산해야 하기 보다는 현재 상태에 직접 액세스할 수 있는 유익한 효과를 가질 수 있다. 원장 상태는, 예를 들어 키-값 쌍으로 표현될 수 있다. 원장 상태가 생성, 갱신 및/또는 삭제됨에 따라 월드 스테이트가 자주 변경될 수 있다. 블록체인은 블록 구조를 사용하여 현재 월드 스테이트를 초래한 모든 변경 사항을 기록하는 트랜잭션 로그를 제공한다. 트랜잭션은 블록체인에 추가된 블록들 내에서 수집된다. 월드 스테이트와 달리 블록체인은 한 번 작성되면 수정할 수 없다. 즉, 변경할 수 없도록(immutable) 설계되어 있다.
[0046] 블록체인 네트워크의 일부로서 ETL-피어가 등록되고 블록체인에 액세스하도록 승인되었다. 따라서, 블록체인 소유자/소유자들은 데이터에 액세스하는 ETL-피어가 있음을 알고 있다. ETL-피어는 사전에 검사될 수 있으며 블록체인의 데이터에 액세스하기 위한 액세스 권한이 적절하게 정의될 수 있다. 런타임 시, 인증 자격 증명 및/또는 디지털 인증서는 유효한 인증 자격 증명 및/또는 디지털 인증서로 입증된 유효한 액세스 권한이 있는 ETL-피어와 같은 주체들만 데이터를 읽을 수 있도록 유효성 검사가 이루어질 수 있다. 따라서, 오용이 방지될 수 있다.
[0047] 공지된 개방형 블록체인은 대부분 통화(currency) 중심인데, 즉, 은행 계좌처럼 돈을 받고 보내는 두 가지 트랜잭션에 중점을 둔다. 이러한 트랜잭션은, 예를 들어 판매 및 구매, 즉 제공된 제품 및/또는 서비스에 대해 돈을 받거나 지출하는 것을 기반으로 할 수 있다. 이는 개방형 블록체인의 주요 목표 중 하나는 암호 화폐라고도 하는 (가상) 화폐의 거래라는 의미이다. 이는 개방형 블록체인에서 구현된 합의 메커니즘의 결과로 이해할 수 있다. 트랜잭션의 순서와 정확성에 대한 동의, 즉 합의를 달성하기 위해, 블록체인에 기록된 트랜잭션을 검증하기 위한 철저한 계산 프로세스가 구현된다. 철저한 계산 프로세스는 예를 들어 블록체인에 추가할 트랜잭션이 있는 블록에 대해 미리 정의된 하나 이상의 기준을 충족하는 해시 값을 찾는 것과 같은 숫자 퍼즐을 푸는 것을 포함한다. 해시 값은 예측할 수 없기 때문에, 즉 블록에 대한 작은 변경이 결과 해시 값을 너무 광범위하게 변경하여 상기 작은 변경 없이 결과로 나오는 해시 값과 상관 관계가 없는 것처럼 보이기 때문에, 입력 데이터의 변형은 미리 정의된 기준을 만족하는 해시 값이 우연히 발견될 때까지 체계적으로 테스트되어야 한다. 숫자 퍼즐의 해답에 대한 증명은 블록이 진짜라는 증거 역할을 한다. 블록을 조작하려면, 해당 블록과 블록체인 내 다음 블록들을 모두 생성하기 위해 이루어지는 모든 계산 노력이 반복되어야 한다. 충분한 피어들이 진실에 관심이 있는 경우, 이것은 불가능하거나 적어도 경제적으로 매우 불리한 것으로 가정된다. 피어들이 증명을 구현하기 위해 계산 능력을 투자하려면, 피어들 또는 그들 중 적어도 일부가 반드시 진실에 대한 고유한 관심을 반드시 가졌다고 할 수 없으므로, 즉 신뢰할 수 없는 당사자들 간에 신뢰가 확립되어야 하므로, 약간의 보상이 필요하다. 개방형 블록체인에서 제공되는 보상은, 예를 들어 일정량의 암호 화폐이다. 비공개 블록체인에서는, 예를 들어 기업과 같은 참여 주체들은 진실에 고유한 관심이 있기 때문에 이러한 보상이 필요하지 않다. 예를 들어, 신뢰할 수 있는 당사자들만 블록체인에 대한 액세스 권한을 부여 받을 수 있다. 따라서, 암호 화폐는 비공개 블록체인의 필수 요소는 아니다.
[0048] 실시예는 블록체인, 예를 들어 비공개 블록체인을 통해 이루어지는 여러 다른 유형의 트랜잭션을 처리하는 데 적합하다는 유익한 효과를 가질 수 있다. 따라서, 데이터 추출은 일반적으로 개방형 블록체인에서 구현되는 단일 유형의 트랜잭션으로 제한되지 않는다. 이벤트 데이터의 다양한 논리적 구조가 처리될 수 있다. 암호화폐를 고려할 때, 블록체인에 포함된 정보는 단순 구조일 수 있으므로 유입되는 정보의 스키마를 미리 알 수도 있다. 그러나, 하이퍼레저 패브릭과 같은 비공개 블록체인의 경우에는 그렇지 않다. 모든 유형의 이벤트 데이터는 적용되는 데이터 구조 실시예에서 일체의 요건 없이 기록될 수 있다.
[0049] 이러한 다목적 용도의 경우 데이터 추출이 다소 어려울 수 있다: 모든 애플리케이션과 모든 데이터 유형을 개별적으로 처리해야 할 수 있으며, 각각의 최종 사용자에 대해 개별적으로 맞춤화해야 하기 때문에 기업 솔루션이 더 이상 사용되지 않을 수 있다.
[0050] 실시예들은 데이터의 모델 구동형 추출을 사용하는 유익한 효과를 가질 수 있다. 이벤트 데이터의 논리적 구조를 식별하고 식별된 구조적 요소를 매핑하기 위한 이벤트 스키마는 예를 들어 복수의 이벤트 스키마를 제공하는 라이브러리를 사용하여 자동으로 결정된다. 또한, 예를 들어 데이터 관리자에 의해 또는 머신 러닝을 사용하여 새로운 사용 사례로 쉽게 조정할 수 있는 다목적 변환이 적용된다. 따라서, 소스 코드를 변경할 필요를 피할 수 있어 데이터 중심 애플리케이션에 큰 이점이 있다. 블록체인 네트워크의 통신 프로토콜(예를 들어, 가십 프로토콜)은 블록체인 네트워크 내에서 피어들을 동기화하는 데 사용될 수 있다.
[0051] 데이터의 모델 구동형 추출은 블록체인 네트워크에 통합된 ETL-피어를 사용하여 임의의 블록체인 네트워크에 연결될 수 있다. 청취자로서 ETL-피어는 네트워크 자체의 일부이므로 블록체인 네트워크의 전체 통신 프로토콜을 청취할 수 있고, ETL-피어가 모든 관련 데이터, 심지어 개인 데이터 컬렉션, 즉, 블록체인의 일부가 아니며 블록체인 네트워크의 제한된 수의 선택된 멤버에 의해서만 공유되는 데이터를 포함하는 데이터 컬렉션에 저장된 데이터도 고려할 수 있게 된다.
[0052] 블록체인 채널은 블록체인 네트워크의 선택된 둘 이상의 멤버 간의 통신의 사설 서브넷(private subnet)을 말한다. 이러한 블록체인 채널은 비공개 및 기밀 트랜잭션을 수행하는 목적으로 사용될 수 있다. 블록체인 채널은 다음 중 하나 이상으로 정의될 수 있다: 블록체인 네트워크의 멤버들, 예를 들어, 통신의 사설 서브넷에 참여하도록 선택된 조직들, 멤버 당 앵커 피어들, 공유 원장, 체인코드 애플리케이션(들) 및 주문 서비스 노드(들). 블록체인 네트워크의 각 트랜잭션은 블록체인 채널에서 실행될 수 있으며, 트랜잭션에 참여하는 각 당사자는 해당 특정 블록체인 채널에서 거래할 수 있도록 인증 및 승인을 받아야 한다. 블록체인 채널에 참여하는 각 피어, 즉 해당 블록체인 채널을 사용하도록 등록되고 권한이 부여되는 각 피어는 예를 들어 채널에 대해 해당 피어를 인증하는 멤버십 서비스 프로바이더가 할당한 고유한 ID를 가질 수 있다.
[0053] 앵커 피어(an anchor peer)는 여러 원장을 유지하는 여러 채널이 할당될 수 있지만 원장 데이터는 한 채널에서 다른 채널로 전달할 수는 없다. 블록체인 채널들에 의한 이러한 원장의 분리는 구성 체인코드, ID 멤버십 서비스 및 가십 프로토콜을 사용하여 정의 및 구현될 수 있다. 블록체인 네트워크에서 트랜잭션, 원장 상태 및 채널 멤버십에 대한 정보를 포함한 데이터의 보급은 특정 블록체인 채널에 대한 검증 가능한 멤버십이 있는 피어들로 제한될 수 있다. 이 피어들의 격리 및 블록체인 채널에 의한 원장 데이터를 사용하면 비공개 및 기밀 트랜잭션이 필요한 블록체인 네트워크 멤버들이 동일한 블록체인 네트워크에서 다른 제한된 블록체인 네트워크 멤버들, 심지어 비즈니스 경쟁자들과 공존할 수 있다.
[0054] 개인 데이터 컬렉션(A private data collection)은 동일한 블록체인 채널에 할당된 다른 네트워크 멤버들의 데이터를 비공개로 유지하는 데 사용할 수 있다. 개인 데이터 컬렉션에 포함된 실제 개인 데이터는 개인 데이터를 볼 권한이 있는 블록체인 멤버들에게 할당된 피어들에게만, 예를 들어 가십 프로토콜을 통해 피어 투 피어로 전송될 수 있다. 개인 데이터 컬렉션은 각각의 피어로 구성된 개인 상태 데이터베이스라고도 하는 개인 데이터베이스를 사용하여 승인된 피어에서 구현될 수 있다. 승인된 피어들의 이러한 개인 데이터베이스는 이러한 승인된 피어들의 체인코드에서 액세스할 수 있다. 실시예들에 따르면, 주문 서비스가 개인 데이터를 볼 수 없도록, 주문 서비스는 관여될 수 없다. 승인된 피어들 간의 개인 데이터 피어 투 피어 배포는 추가 블록체인 채널들을 설정할 필요 없이 각 피어 간의 보안 통신 채널을 사용하는 것을 포함할 수 있다. 따라서, 개인 데이터 컬렉션은 별도의 블록체인 채널을 만들지 않고도 동일한 블록체인 채널에 할당된 제한된 수의 블록체인 네트워크 멤버들이 개인 데이터를 보증, 실행 및/또는 쿼리할 수 있는 반면 동일한 채널에 할당된 나머지 블록체인 네트워크의 멤버들은 개인 데이터에 액세스하지 못하게 할 수 있다. 개인 데이터의 해시 값은 각 블록체인 채널에 있는 모든 피어의 원장에 계산, 보증, 주문 및 기록될 수 있다. 블록체인에 포함되고 각 채널에 할당된 블록체인 네트워크의 모든 멤버가 액세스할 수 있는 해시 값은 개인 데이터를 포함하는 트랜잭션의 증거 역할을 하며 상태 유효성 검증 및 감사(audit) 목적으로 사용될 수 있다. 개인 데이터 컬렉션 멤버들을 공유하는 블록체인 네트워크의 제한된 수의 선택된 멤버들의 각 멤버는 개인 데이터를 다른 제3자와 공유하기로 결정할 수 있다. 따라서 제3자는 공유된 개인 데이터의 해시 값을 계산하고 계산된 해시 값이 채널 원장에 기록된 상태, 즉 블록체인의 트랜잭션에 저장된 해시 값과 일치하는지 확인하여, 각각의 상태가 특정 시점에 존재했음을 증명할 수 있다.
[0055] 실시예들은 블록체인의 트랜잭션을 통해 수집된 데이터의 분석을 가능하게 하는 유익한 효과를 가질 수 있다. 실시예들은 블록체인 네트워크에 의해 관리되는 블록체인에 기록된 트랜잭션 데이터를 분석할 수 있는 유익한 효과를 가질 수 있다.
[0056] ETL-디바이스는 블록체인을 제공하는 블록체인 네트워크 내부에서, 본 명세서에서 ETL-피어라고도 하는 특수 컴퓨터 피어 디바이스의 형태로 제공될 수 있다. ETL-피어는 블록체인에 기록된 트랜잭션 데이터를 안전한 방식으로 추출, 변환 및 외부 데이터 구조(예를 들어, 외부 데이터베이스)로 로드하도록 구성된다. 또한, 외부 데이터 구조에 의해 제공되는 추출 및 변환된 데이터의 분석, 예를 들어 예측 분석을 실행하기 위해 데이터 분석이 제공될 수 있다. 추출된 데이터의 변환은 추출된 데이터의 범주화를 포함할 수 있다.
[0057] 다른 실시예들에 따르면, ETL-디바이스는 외부 컴퓨터 디바이스의 형태로 제공될 수 있는데, 즉, 예를 들어 블록체인 네트워크의 피어에 대한 암호화로 보안된 메시징 연결을 사용하여, 블록체인 네트워크 상에서 교환되는 데이터를 모니터링하기 위해 적절하게 보안이 통합되어 블록체인 네트워크 외부에서 실행될 수 있다.
[0058] 블록체인의 소유자 또는 소유자들은 특수 ETL-피어가 블록체인 네트워크의 일부가 되고 블록체인에 대한 액세스 권한을 얻는 것에 동의해야 할 수 있다. 블록체인의 소유자는 예를 들어 블록체인을 초기화하고 블록체인의 사용자들, 즉 블록체인 네트워크을 구성하는 피어들을 실행하거나 사용하는 다른 주체들의 등록을 관리하는 블록체인 네트워크을 구성하는 하나 이상의 피어들을 실행하는 주체일 수 있다. 등록은 블록체인 소유자가 이를 사용하도록 승인하는 것을 포함할 수 있다. 실시예들에 따르면, 블록체인의 소유자들은 블록체인 네트워크을 구성하는 피어들을 실행하는 컨소시엄을 구성하고 블록체인 사용에 대한 권한을 부여받은 주체들의 그룹일 수 있다.
[0059] 실시예들에 따르면, ETL-피어는 동기화로 인해 블록체인 네트워크의 다른 모든 피어와 항상 동일한 정보 레벨에 있다. 실시예들에 따르면, ETL-피어는 블록체인 네트워크의 다른 피어들에 비해 추가적인 능력을 갖는다. ETL-피어는 이벤트를 검출하도록 구성된다. 이벤트 데이터를 추출할 수 있도록, ETL-피어는 추출할 이벤트 데이터가 있는 이벤트가 발생했음을 인지할 수 있도록 구성된다. 이러한 이벤트는 블록체인의 블록에 기록된 하나 이상의 트랜잭션을 포함할 수 있다. 실시예들에 따르면, 이러한 이벤트는 내부에 복수의 트랜잭션이 있는 블록체인의 풀 블록(full block)을 포함할 수 있다. ETL-피어에 의한 이벤트 검출을 통해 블록체인 네트워크 내에서 이벤트를 캡처할 수 있다.
[0060] ETL-피어는, 이벤트 데이터를 외부 오프-체인 데이터 구조에 메시징하기 전에, 유입되는 이벤트 데이터를 예를 들어 ETL-피어가 액세스할 수 있는 블록체인의 이전 블록들 또는 데이터 컬렉션의 로컬 복사본에 저장된 기존 이벤트 데이터 스키마들과 비교하고, 그에 따라 이벤트 데이터가 메시지로 보내질 수 있도록 조정할 수 있다. 검출된 이벤트가 데이터 삭제, 예를 들어 원장의 자산 삭제를 포함하는 경우, 블록체인 네트워크의 피어들은 블록체인에 기록된 데이터 삭제로 인해 로컬 데이터 컬렉션들의 각 데이터를 삭제할 수 있다. 그러나, 블록체인에 기록된 이러한 데이터 삭제는 외부 데이터 구조에서 동일한 방식으로 실행되지 않을 수 있다. 이는 특히 외부 오프-체인 데이터 구조, 예를 들어 데이터베이스가 블록체인 및/또는 로컬 데이터 컬렉션보다 더 복잡한 논리적 구조를 포함하는 경우, 그러할 수 있다. 외부 오프-체인 데이터 구조에서 동일한 데이터를 삭제하면 문제가 발생할 수 있다. ETL-피어가 블록체인에서 및/또는 블록체인에 대해서 유입되는 이벤트 데이터를 기존 데이터와 비교하도록 구성된 경우, ETL-피어는 훨씬 더 포괄적인 삭제 알림을 외부 오프-체인 데이터 구조로 보내도록 활성화될 수 있다.
[0061] 실시예들에 따르면, ETL-디바이스는 런타임 이벤트 스키마 선택기(runtime event schema selector)를 포함한다. 상기 스키마 선택기는 공지된 이벤트 스키마들의 라이브러리를 사용하여 블록체인을 사용하여 기록된 이벤트를 나타내는 트랜잭션 페이로드 데이터로부터 이벤트 스키마를 추론하도록 구성될 수 있다.
[0062] 발생할 것으로 예상되는 이벤트 데이터, 즉 트랜잭션들의 이벤트 스키마들을 포함하는 블록체인용 라이브러리가 설정될 수 있다. 라이브러리는 전체 트랜잭션을 제공하는 대신 자산 스키마의 형태로 이벤트 스키마를 포함할 수 있다. 따라서, 거래 자산의 자유로운 조합이 문제를 일으키지 않도록 보다 원자적인 접근 방식이 제공될 수 있다. ETL-디바이스는 라이브러리에 액세스할 수 있으며 각 검출된 이벤트에 대한 이벤트 스키마를 결정하기 위해 이를 사용할 수 있다. 추가 이벤트 스키마를 수동 또는 자동으로 설정할 수 있다. 런타임 이벤트 스키마 선택기는 이벤트 데이터에 어떤 이벤트 스키마가 사용될 것인지, 즉 어떤 이벤트 스키마가 이벤트 데이터의 논리적 구조와 일치하는지 결정할 수 있다. 따라서, 결정되는 이벤트 스키마는 이벤트 데이터의 유형, 즉 유입되는 이벤트 데이터의 논리적 구조에 따라 다르다. 이벤트 스키마는 데이터 엘리멘트들을 외부 데이터 구조의 논리적 구조에 의해 정의된 구조적 요소에 매핑하는 데 사용된다. 이벤트 스키마를 사용하여 적용할 매핑과 적용 빈도를 결정할 수 있다. 예를 들어, 트랜잭션은 동일한 유형의 여러 자산 변경을 정의하는 이벤트를 포함할 수 있다. 이러한 여러 변경 사항을 완전히 고려하려면, 동일한 매핑을 여러 번 적용해야 할 수 있다.
[0063] 런타임 동안 블록체인에 추가될 유입되는 블록은 어떤 유형의 데이터 엘리멘트들이 유입되는 블록의 트랜잭션에 포함되어 있는지(예를 들어, 어떤 자산 및 얼마나 많은 자산)를 결정하기 위해 분석될 수 있다. 페이로드 데이터 외에, 예를 들어 트랜잭션의 형태로, 블록은 메타데이터를 더 포함할 수 있다. 메타데이터 뿐만 아니라 페이로드 데이터, 예를 들어 생성, 수정 및/또는 삭제되는 자산은 이후 단계에서 적절한 변환이 적용될 수 있도록 이벤트 스키마를 사용하여 태그될 수 있다.
[0064] 실시예들에 따르면, 이벤트 스키마 결정은 예를 들어 JSON(JavaScript Object Notation) 스키마 설명을 사용하여 블라인드로 실행될 수 있다. 실시예들은 데이터 유출 없이 데이터 엘리멘트들 유형의 결정을 가능하게 하는 유익한 효과를 가질 수 있다. 결과 스키마는 매핑 생성기에 제공하는 데 사용될 수 있다. 스키마는 알 수 없는 구조가 유입되는 즉시 스스로 생성될 수 있다. 이러한 자동 생성은 이벤트 데이터의 이동을 용이하게 할 수 있다.
[0065] 실시예들에 따르면, 이벤트 스키마를 생성하기 위해 머신 러닝이 사용될 수 있다. ETL-디바이스는 입력 및 출력이 있는 머신 러닝 모델을 포함할 수 있다. 머신 러닝 모델은 입력을 통해 이벤트 데이터를 수신하는 것에 응답하여 출력을 통해 이벤트 스키마를 제공하도록 훈련될 수 있다. 이벤트 스키마를 제공하도록 구성된 머신 러닝 모델을 제공하기 위한 훈련은 머신 러닝 모델을 생성하기 위한 학습 알고리즘을 제공하는 것을 포함할 수 있다. 또한, 훈련 데이터 세트가 제공될 수 있다. 각각의 훈련 데이터 세트는 훈련 이벤트 데이터 및 각각의 훈련 이벤트 데이터의 논리적 구조를 정의하는 훈련 이벤트 스키마를 포함할 수 있다. 학습 알고리즘은 머신 러닝 모델을 생성하기 위해 훈련 데이터 세트 상에서 실행될 수 있다.
[0066] ‘머신 러닝’이라는 용어는 머신 러닝 모델이라고 하는 확률 모델을 자동화된 방식으로 구축하여 훈련 데이터 세트에서 유용한 정보를 추출하는 데 사용되는 컴퓨터 알고리즘을 의미한다. 머신 러닝은 선형 회귀, k-최근접 이웃 기술, 서포트 벡터 머신 또는 분류/회귀 트리 등과 같은 하나 이상의 학습 알고리즘을 사용하여 수행될 수 있다. ‘모델’은 예를 들어 측정되지 않은 값 또는 값들의 세트를 예측하는 것을 가능하게 하는 방정식 또는 규칙들의 세트, 예를 들어 다른 알려진 값(예를 들어, 이벤트 데이터)에서 이벤트 데이터의 논리적 구조를 정의하는 이벤트 스키마 일 수 있다.
[0067] 실시예들에 따르면, ETL-디바이스는 ETL-코드 추출기를 더 포함한다. ETL-코드 추출기는, 예를 들어 졸트(jolt)를 사용하여 이벤트 스키마를 기반으로 블록 및/또는 트랜잭션 데이터에서 이벤트 데이터를 추출하는 메커니즘을 구현하도록 구성된다. 졸트는 JSON-to-JSON 변환 기능을 제공하는 자바(Java) 라이브러리이다. 실시예들에 따르면, JSON 형식으로 제공되는 이벤트 데이터에 대해 매핑에 기반한 ETL-코드는 졸트에서 실행될 수 있다. 이벤트 데이터의 특정 데이터 엘리멘트들이 백엔드에서 소스 형식으로 검출되면, ETL-코드 추출기를 사용하여 검출된 데이터 엘리멘트들을 소스 형식에서 메타 형식으로 변환한다. 메타 형식은 여전히 JSON일 수 있다. 메타 형식은 외부 데이터 구조에 삽입될 준비가 되지 않았을 수 있다. 예를 들어, JSON 형식은 SQL 또는 다른 데이터베이스 형식에 삽입될 준비가 되지 않았을 수 있다. 추가 데이터베이스 특정 요건은 예를 들어 JSON 형식과 같은 메타 형식에서 SQL 삽입 명령문과 같은 데이터베이스 호환 삽입 명령문의 생성을 처리할 수 있는 데이터베이스 커넥터에서 처리될 수 있다.
[0068] 실시예들에 따르면, ETL-디바이스는 블록체인 및 블록체인 네트워크 외부, 즉 오프-체인의 외부 데이터 구조, 예를 들어 데이터베이스와 접촉하는 메신저, 예를 들어 네트워크 통신 인터페이스를 더 포함한다. 메신저는 보안 채널을 통해 데이터를 전송하도록 구성될 수 있다. 또한, 메신저는 메시징 프로세스가 중단되는 경우에도 메시징을 위해 제공된 데이터가 손실되지 않도록 하는 일종의 메모리를 포함할 수 있다.
[0069] 실시예들은 이벤트 캡처를 위한 메커니즘을 제공하기 위해 블록체인 보안과 이벤트 데이터 추출의 통합을 가능하게 하여, 시간이 지남에 따라 변환 및 유지 관리를 구현하는 많은 노력을 피하고 추가 데이터 거버넌스 또는 데이터 계보를 필요로 하지 않는, 유익한 효과를 가질 수 있다.
[0070] 설명을 위해, 사용자가 새 품목을 위한 보험 계약을 구매하는 예를 생각해볼 수 있다. 이 이벤트는 두 개의 추가 자산을 작성하는 트랜잭션을 포함하는 블록체인에 추가할 추가 블록의 생성을 트리거할 수 있다. 제1 추가 자산은 사용자 이름, 비밀번호 및 아마도 보험 계약을 구매한 사용자에게 할당된 기타 정보를 포함하는 추가 사용자 자산일 수 있다. 제2 추가 자산은 보험 계약에 관한 정보와 관심 품목에 관한 정보를 포함하는 추가 계약 자산일 수 있다. 관심 품목에 관한 정보는, 예를 들어 중첩된 키-값 객체로 제공될 수 있다. 이벤트, 즉, 블록체인의 추가 블록에 기록된 보험 계약의 구매는, 예를 들어 ETL-피어의 형태로 제공되는 ETL-디바이스에 의해 검출될 수 있다. ETL-피어는 본질적으로 블록체인 네트워크에서 보험 구매와 관련된 이벤트 데이터를 처리하기 위해 구현된 보안 계층을 포함하고 보존할 수 있다. 따라서, 외부적 관점에서 모든 인증 조치를 고려할 수 있다. 실시예들에 따르면, 고가용성(HA) 이벤트 캡처의 필요성이 충족되어 어떤 종류의 장애가 발생하더라도 블록체인 네트워크의 다른 피어 노드들에 자동으로 다시 연결될 수 있다.
[0071] 블록체인 네트워크에서 블록체인의 블록에 저장된 스키마 없는 문서 형태의 데이터로 인해, 페이로드 데이터의 데이터 엘리멘트들(예를 들어, 자산)에는 제목이나 구조를 식별하는 추가 메타 정보가 없을 수 있다. 따라서, 이벤트 데이터의 논리적 구조 분석 및 블록체인에 있는 것으로 알려진 이벤트 데이터 유형의 논리적 구조 요소와의 비교가 구현될 수 있다. 여기에는 누락된 필드들이 있는 경우에도 그 필드들이 예를 들어 이벤트를 위해 선택사항이라면 이벤트 데이터 유형을 정확히 예측하는 것이 포함될 수 있다.
[0072] ETL-디바이스는 추출될 이벤트 데이터의 단순한 평면화(flattening)뿐만 아니라 주어진 대상 데이터 모델을 향한 잠재적 다중 프로세스 형식화 모두에 접근하도록 구성될 수 있다. SQL의 예시 사례에서, 추가 사용자 자산에 의해 제공되는 데이터, 추가 계약 자산 및 블록에 의해 제공되는 메타데이터 정보는 복수의 대상 테이블, 예를 들어, 사용자 관련 정보를 포함하는 사용자 테이블, 계약 관련 정보를 포함하는 계약 테이블 및 보험 품목 관련 정보를 포함하는 품목 테이블에 매핑될 수 있다. 이벤트 스키마와 결합하여 이벤트 데이터가 제공하는 소스 구조에서 외부 데이터 구조의 데이터 모델, 예를 들어 관계형 데이터 모델이 제공하는 대상 구조로의 매핑은 그래픽 인터페이스를 사용하여 소스 코드 수정 없이 사용자가 수행할 수 있다. 이와 달리, 머신 러닝 모듈이 사용될 수 있다. 이를 위해, 예를 들어, 머신 러닝 기술을 사용하여 매핑을 성공적으로 자동 생성하기 위해 메타데이터 분석(예를 들어, 열 이름, 데이터 유형)이 적용될 수 있다.
[0073] 매핑은 메타데이터와 블록체인에서 제공하는 자산 데이터에 적용되는 ETL-코드를 생성하는 데 사용된다. 실시예들에 따르면, ETL-디바이스는 추가 처리 전에 모든 변환이 성공했는지, 예를 들어 블록체인 블록에서 제공하는 메타데이터를 외부 데이터 구조의 논리적 구조를 정의하는 데이터 모델로 “혼합”하는 것이 성공적으로 처리되는지 그리고 외래 키 관계를 사용하여 식별된 종속 테이블의 쓰기 순서가 보장되는지 확인하는 메커니즘을 구현한다.
[0074] 실시예들에 따르면, 변환된 이벤트 데이터의 로딩은 변환된 이벤트 데이터를 ETL-디바이스에 의해 메시징 네트워크을 통해 블록체인 네트워크 외부의 외부 컴퓨터 디바이스로 메시징하는 것을 포함한다. 외부 컴퓨터 디바이스는 외부 데이터 구조를 관리한다. 실시예들은 변환된 이벤트 데이터에 따라 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 변환된 이벤트 데이터를 외부 컴퓨터 디바이스에 메시징함으로써, 이벤트 데이터가 예를 들어 외부 데이터 구조를 사용하여 신뢰할 수 있는 데이터 분석기에 의해 실행되는 데이터 분석과 같은 오프-체인 사용을 위해 제공될 수 있는, 유익한 효과를 가질 수 있다.
[0075] 실시예들에 따르면, ETL-디바이스는 매핑 생성기를 더 포함한다. 매핑 생성기는 이벤트 스키마를 블록 및/또는 트랜잭션에서 분리하도록 구성될 수 있다. 달리 말하면, 페이로드 데이터 및 메타데이터는 인스턴스 블록 및/또는 트랜잭션 수준에서 적절한 이벤트 스키마에 매핑될 수 있다. 매핑 생성기는 JSON에서 관계형 매핑으로의 한 예로서 평면화 매핑을 위해, 추출된 이벤트 데이터, 예를 들어 공개 키 및/또는 외래 키에 대한 데이터 모델에 따라 구조 ID들을 삽입 및/또는 조작하도록 추가로 구성될 수 있다. 실시예들에 따르면, JSON에서 HBASE로 등의 다른 매핑이 있을 수 있다.
[0076] 매핑 생성기는 유입되는 데이터가 트랜잭션 메타데이터인지 아니면 페이로드(예를 들어, 자산) 데이터인지 여부를 판단하도록 구성된다. 매핑 생성기는 페이로드 데이터와 메타데이터 간의 관계를 인식하도록 추가로 구성된다. 실시예들에 따르면, 블록체인의 블록들에 포함된 이벤트 데이터는 트랜잭션 메타데이터 외에 자산 데이터의 메타데이터를 포함하지 않을 수 있다. 실시예들에 따르면, 매핑 생성기는 블록체인의 페이로드 데이터와 관련된 메타데이터를 제공하는 로컬 데이터 컬렉션에서 자산 데이터의 메타데이터를 결정할 수 있다. 실시예들에 따르면, 결정된 관계는 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 추출될 관련 페이로드 데이터를 식별하는 데 사용될 수 있다.
[0077] 매핑 생성기는 소스 형식(예를 들어, 중첩된 JSON 형식)과 선택한 대상 형식(예를 들어, SQL 데이터베이스의 테이블 구조 또는 NoSQL 데이터베이스의 일부 다른 형식)을 보여주는 사용하기 쉬운 그래픽 인터페이스를 제공할 수 있다. 데이터 관리자는 소스 형식을 대상 형식과 연결할 수 있다. 실시예들에 따르면, 매핑은 입력 및 출력이 있는 머신 러닝 모델을 사용하여 실행될 수 있다. 머신 러닝 모델은 입력을 통해 두 형식(소스 형식과 대상 형식)을 모두 수신하는 것에 대한 응답으로 출력을 통해 소스 형식을 대상 형식으로 매핑하는 것을 제공하도록 훈련될 수 있다. 소스 형식을 대상 형식으로 매핑하도록 구성된 머신 러닝 모델을 제공하기 위한 훈련은 머신 러닝 모델을 생성하기 위한 학습 알고리즘을 제공하는 것을 포함할 수 있다. 또한, 훈련 데이터 세트가 제공될 수 있다. 각각의 훈련 데이터 세트는 훈련 소스 포맷, 훈련 대상 포맷 및 각각의 훈련 소스 형식을 각각의 훈련 대상 형식으로 매핑하는 것의 정의를 포함할 수 있다. 학습 알고리즘은 머신 러닝 모델을 생성하기 위해 훈련 데이터 세트 상에서 실행될 수 있다.
[0078] 전술한 매핑은 변환 코드를 생성하는 데 사용될 수 있다. 실시예들은 임의의 소스 및 대상 형식에 대해 이 매핑 생성기를 사용할 수 있도록 하는 다목적 접근 방식을 구현하는 유익한 효과를 가질 수 있다. 실시예들에 따르면, 매핑은 완전히 자동화된 방식으로 구현될 수 있다.
[0079] 실시예들에 따르면, ETL-디바이스는 결정된 이벤트 스키마에 기초하여 ETL-코드를 생성하기 위한 ETL-코드 발생기를 더 포함한다. ETL-코드는 유입되는 이벤트 데이터를 외부 데이터 구조(예를 들어, 데이터베이스)와 호환되는 데이터 형식으로 변환하는 데 사용된다. ETL-코드 발생기는 소스 형식의 대상 형식으로의 매핑을 예를 들어 JSON-to-JSON 변환을 위한 졸트를 사용하여 변환할 수 있다. 졸트는 JSON-to-JSON 변환 기능을 제공하는 자바(Java) 라이브러리이다. ETL-코드 발생기는 매핑을 취하고 취한 매핑을 사용하여 졸트 변환 명세를 생성할 수 있다.
[0080] 실시예들에 따르면, ETL-코드를 제공하는 것은 이벤트 데이터를 외부 데이터 구조의 논리적 구조에 매핑하는 것을 포함한다. 매핑을 위해, 결정된 이벤트 스키마와 외부 데이터 구조의 데이터 모델이 사용된다. 또한, ETL-코드를 제공하는 것은 매핑을 사용하여 이벤트에 대한 ETL-코드를 생성하는 것을 포함한다. 실시예들은 변환된 이벤트 데이터에 따라 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 검출된 이벤트를 나타내는 이벤트 데이터를 추출, 변환 및 로딩하기 위한 ETL-코드를 자동으로 제공하는 유익한 효과를 가질 수 있다. 매핑은 ETL-디바이스가 외부 데이터 구조의 논리적 구조를 정의하는 데이터 모델에 따라, 추출된 이벤트 데이터를 다른 데이터 형식으로 변환할 수 있도록 하는 동적 매핑으로 구현될 수 있다. 외부 데이터 구조의 데이터 모델을 정의하는 정보는 예를 들어 외부 데이터 구조를 관리하는 외부 컴퓨터 디바이스에 의해 ETL-디바이스에 제공될 수 있다.
[0081] 실시예들에 따르면, 이벤트 검출은 블록체인 블록의 일부로 블록체인에 추가될 ETL-피어에 의해 제공되는 이벤트 데이터를 검출함으로써 직접 이벤트 캡처를 포함한다. 실시예들은 블록체인에 기록되기 전에도 이벤트를 검출하는 유익한 효과를 가질 수 있다.
[0082] 실시예들에 따르면, 이벤트는 클라이언트 또는 주문자(orderer)로부터 직접 캡처된다. 클라이언트는 블록체인에 기록할 트랜잭션을 제안할 수 있다, 즉, 트랜잭션을 추가하기 위해 체인코드 호출을 제안할 수 있다. 실시예들에 따르면, 클라이언트는 예를 들어 제안된 체인코드 호출의 결과에 동의(예를 들어, 서명)하기 위해 하나 이상의 보증 피어를 요청해야 할 수 있다. 보증 피어는 보증 정책에 의해 정의되고 서비스 검색을 통해 찾을 수 있다.
[0083] 주문자는 트랜잭션들을 블록으로 패키징하고 이를 블록체인 네트워크을 통해 리딩 피어(leading peer)들에게 배포하는 역할을 담당할 수 있다. 조직이라고도 하는 블록체인 네트워크의 각 멤버는 각 멤버가 가입한 각 채널에서 여러 피어를 소유할 수 있다. 이들 피어 중 하나 이상은 각 멤버를 대신하여 주문자들의 형태로 제공되는 네트워크 주문 서비스와 통신하기 위해 각 채널에 대한 리딩 피어 역할을 할 수 있다. 주문 서비스는 채널의 리딩 피어(들)에게 블록들을 전달한다. 리딩 피어(들)는 블록들을 수신하여 이를 동일한 멤버에 할당된 다른 피어들에게 배포한다. 트랜잭션 흐름은 트랜잭션의 제안, 제안된 트랜잭션을 블록으로 패키징 및 블록의 유효성 검증을 포함할 수 있다. 주문자는 패키징을 담당할 수 있으며, 블록체인 네트워크에서 블록을 배포하여 유효성을 검증하는 데 더 관여할 수 있다. 주문자의 구현은 예를 들어 아파치 카프카(Apache Kafka)를 기반으로 할 수 있다. 아파치 카프카는 처리량이 높은 내결함성 기능이 있는 메시징 소프트웨어를 제공한다. 주문자는 지속성, 데이터베이스 및 자체 원장을 가지고 있지 않을 수 있다.
[0084] 주문자들을 이용하여 구현된 주문 서비스는 클라이언트들 및 피어들에게 공유 통신 채널을 제공하여 트랜잭션을 포함하는 메시지에 대한 브로드캐스트 서비스를 제공할 수 있다. 클라이언트는 이 채널에 연결하여 각 채널에서 메시지를 브로드캐스트할 수 있고 이후 이는 모든 피어들에 전달된다. 채널은 모든 메시지의 원자적 전달, 즉 전체-오더 전달과 구현 특정 신뢰성을 통한 메시지 통신을 지원할 수 있다. 따라서, 채널은 연결된 모든 피어에 동일한 메시지를 출력하고 이를 동일한 논리적 순서로 이러한 모든 피어에 출력할 수 있다.
[0085] 실시예들에 따르면, 이벤트 검출은 블록체인 네트워크의 통신 프로토콜을 사용하여 ETL-피어를 통해 블록체인 네트워크에서 라우팅되는 데이터를 모니터링하는 것을 포함한다. 통신 프로토콜은, 예를 들어, 가십 프로토콜의 형태로 구현될 수 있다. 실시예들은 블록체인 네트워크의 멤버로서 ETL-피어에 블록체인 네트워크 간 통신의 보안을 손상시키지 않으면서 블록체인 네트워크에서 라우팅되는 데이터에 대한 액세스를 제공하는 유익한 효과를 가질 수 있다. 특히, 허가된 블록체인 네트워크의 보안이 유지될 수 있다. 블록체인 네트워크의 트랜잭션은 통신 프로토콜을 통해 피어 간에 송수신될 수 있다.
[0086] ETL-피어는 통신 프로토콜(예를 들어, 가십 프로토콜)을 통해 블록체인에 추가될 전파된 이벤트 데이터를 수신하고, 블록체인에서 전파된 이벤트 데이터를 수락하기 위한 피어 합의를 기다릴 수 있다. 이 합의가 이루어지자 마자, ETL-피어는 가십 프로토콜을 통해 각 이벤트 데이터를 수신하는 블록체인 네트워크의 다른 모든 피어와 마찬가지로 수신된 이벤트 데이터를 로컬 데이터 컬렉션(예를 들어, 내부 상태 데이터베이스)에 추가할 수 있다. 또한, ETL-피어는 이벤트 데이터를 외부 데이터 구조의 데이터 컨텐츠를 수정하는 것과 관련된 이벤트를 나타내는 데이터로 검출하고 이벤트 데이터를 ETL-코드를 사용하여 외부 세계의 외부 데이터 구조, 즉 블록체인 네트워크 외부의 컴퓨터 디바이스에 제공할 수 있다. 가십 프로토콜을 청취하는 ETL-피어는 위에서 언급한 가십 프로토콜을 통한 이벤트 데이터의 방식을 말하며, 피어 합의가 이루어진 경우 이를 로컬 데이터 연결에 저장하고 또한 이벤트 데이터를 외부 데이터 구조에 제공한다.
[0087] 실시예들에 따르면, ETL-디바이스는 블록체인 네트워크에서 제공하는 복수의 블록체인에 액세스할 수 있다. 실시예들은 ETL-디바이스가 외부 데이터 구조를 사용하여 신뢰할 수 있는 데이터 분석기에 대한 액세스를 복수의 블록체인에 제공할 수 있는 유익한 효과를 가질 수 있다. 블록체인은 동일한 소유자/소유자들 또는 상이한 소유자들이 소유할 수 있다.
[0088] 예를 들어, 신뢰할 수 있는 데이터 분석기는 외부 데이터 구조를 통해 상이한 소유자의 다른 블록체인(예를 들어, 보험)에 액세스할 수 있다. 신뢰할 수 있는 데이터 분석기는 외부 데이터 구조에서 제공하는 이벤트 데이터를 분석하고 이벤트 데이터가 나타내는 이벤트에 대한 응답으로 취해야 할 조치를 예측할 수 있다. 예를 들어, 신뢰할 수 있는 데이터 분석기는 동일한 영역에서 발생하는 동일한 종류의 대규모 트랜잭션, 예를 들어, 들불(wildfire), 홍수 등과 같은 자연 재해가 일어난 경우 보험과 관련된 트랜잭션을 검출할 수 있다. 신뢰할 수 있는 데이터 분석기는 이러한 트랜잭션에 관련된 보험 회사에 큰 잠재적 피해액으로 인해 문제가 발생할 수 있음을 나타내는 대규모 트랜잭션에 관한 외부 규제 인스턴스를 알릴 수 있다.
[0089] ETL-디바이스는 블록체인을 사용하여 관리되는 관련 이벤트 데이터로 이러한 예측을 수행하는 신뢰할 수 있는 데이터 분석기를 제공하는 유익한 인프라스트럭처를 제공할 수 있다. 따라서, ETL-디바이스에 의해 신뢰할 수 있는 데이터 분석기에 분석을 수행하기 위한 관련 정보를 얻고, 분석을 기반으로 필요한 조치를 결정하고/거나 임의의 블록체인 애플리케이션들로부터 적시에 필요한 조치를 트리거하기 위한 포괄적이고 사용하기 쉬운 방법이 제공될 수 있다.
[0090] 실시예들에 따르면, 블록체인은 동일한 소유자를 가질 수 있다. 예를 들어, 회사는 복수의 블록체인을 소유하거나 사용할 수 있으며, 블록체인에 기록된 이벤트 데이터를 회사 관리, 비즈니스 인텔리전스 등을 위해 사용할 수 있다. 신뢰할 수 있는 데이터 분석기는 ETL-디바이스를 이용하여 모든 블록체인을 사용하여 각 회사에 대한 데이터 분석을 제공할 수 있다.
[0091] 실시예들에 따르면, 외부 데이터 구조는 복수의 ETL-피어로부터 변환된 이벤트 데이터를 수신하며, 각 ETL-피어는 상이한 블록체인을 제공하는 상이한 블록체인 네트워크의 멤버이다. 실시예들은 외부 데이터 구조가 복수의 블록체인으로부터의 이벤트 데이터를 고려하는 유익한 효과를 가질 수 있다. 앞서 설명한 대로, 이 이벤트 데이터는 모든 블록체인 및/또는 모든 블록체인 네트워크에 대한 신뢰할 수 있는 데이터 분석기의 직접 액세스를 요구하지 않고 데이터 분석을 수행하기 위해 상기 데이터 분석기에 의해 사용될 수 있다. 이 경우, 신뢰할 수 있는 데이터 분석기에 분석에 필요한 정보를 제공하는 인프라스트럭처를 구현하기 위해 복수의 ETL-피어가 사용된다.
[0092] 실시예들에 따르면, 이벤트 스키마는 블록체인 네트워크에서 잠재적으로 발생할 수 있는 이벤트 유형을 나타내는 이벤트 데이터의 논리적 구조를 식별하는 하나 이상의 이벤트 스키마를 제공하는 라이브러리를 사용하여 결정된다. 라이브러리는 예를 들어 블록체인에 포함될 수 있는 이벤트 유형을 나타내는 이벤트 데이터의 논리적 구조를 식별하는 이벤트 스키마를 제공할 수 있다. 실시예들은 이벤트를 나타내는 이벤트 데이터를 라이브러리에 의해 제공되는 이벤트 스키마와 비교함으로써 이벤트 스키마가 결정될 수 있는 유익한 효과를 가질 수 있다. 라이브러리에서 제공하는 이벤트 스키마가 검출된 이벤트의 이벤트 데이터의 논리적 구조와 일치하면, 논리적 구조를 식별하기 위해, 즉 이벤트 데이터의 데이터 엘리멘트들의 논리적 역할 또는 의미를 결정하기 위해 각각의 이벤트 스키마가 선택될 수 있다. 실시예들에 따르면, 논리적 스키마는 특정 이벤트 스키마와 일치하는 이벤트 데이터에 포함될 수 있는 선택 가능한 데이터 엘리멘트들을 고려할 수 있지만, 이벤트 데이터가 각 이벤트 스키마와 일치하기 위해 반드시 존재할 필요는 없다.
[0093] 실시예들에 따르면, 라이브러리에서 제공하는 이벤트 스키마가 검출된 이벤트의 이벤트 데이터의 논리적 구조와 일치하지 않는 경우, 본 방법은 검출된 이벤트의 이벤트 데이터의 논리적 구조를 분석하는 단계, 검출된 이벤트의 이벤트 데이터의 논리적 구조와 일치하는 추가 이벤트 스키마를 결정하는 단계, 및 라이브러리에 상기 추가 이벤트 스키마를 추가하는 단계를 더 포함한다. 실시예들은 이벤트를 나타내는 이벤트 데이터가 알려지지 않은 논리적 구조를 포함하는 경우, 즉 라이브러리에 포함된 어느 이벤트 스키마와도 일치하지 않는 경우에도 이벤트 스키마를 제공하는 방법을 제공하는 유익한 효과를 가질 수 있다. 실시예들에 따르면, 이벤트 데이터의 논리적 구조를 분석하는 단계 및/또는 검출된 이벤트의 이벤트 데이터의 논리적 구조와 일치하는 추가 이벤트 스키마를 결정하는 단계는 수동으로 실행된다. 실시예들에 따르면, 논리적 구조를 분석하든 단계 및/또는 추가 이벤트 스키마를 결정하는 단계 각각은 자동으로 실행된다. 예를 들어, 분석하는 단계 및/또는 결정하는 단계는 머신 러닝을 사용하여 구현된다.
[0094] 실시예들에 따르면, 이벤트 스키마를 결정하는 단계는 결정된 이벤트 스키마를 사용하여 이벤트 데이터가 포함하는 하나 이상의 데이터 엘리멘트들을 태그하는 단계를 포함한다. 태그는 결정된 이벤트 스키마에 의해 정의된 데이터 엘리멘트들의 구조적 유형을 식별한다. 실시예들은 이벤트 데이터의 데이터 엘리멘트들의 구조적 유형을 식별하는 태그의 형태로 이벤트 데이터에 정보를 제공하는 유익한 효과를 가질 수 있다. 이 정보는 이벤트 데이터에 포함된 데이터 엘리멘트들을 외부 데이터 구조의 데이터 모델에 의해 정의된 외부 데이터 구조의 논리적 구조에 매핑하는 데 사용될 수 있다.
[0095] 실시예들에 따르면, 태그는 태그된 데이터 엘리멘트들을 외부 데이터 구조의 논리적 구조에 의해 정의된 구조적 요소에 매핑하는 데 사용된다. 실시예들은 이벤트 데이터의 데이터 엘리멘트들과 외부 데이터 구조의 논리적 구조의 논리적 범주 간의 논리적 대응을 식별하기 위해 태그를 사용하는 유익한 효과를 가질 수 있다.
[0096] 실시예들에 따르면, 외부 데이터 구조는 데이터베이스, 및 데이터 모델을 사용하여 상기 데이터베이스를 관리하기 위한 데이터베이스 관리 시스템의 형태로 제공된다. 실시예들은 외부 데이터 구조를 사용하여 효과적이고 효율적인 방식으로 오프-체인 주체들에 이벤트 데이터에 대한 액세스를 제공하는 유익한 효과를 가질 수 있다. 오프-체인 주체, 즉 블록체인 네트워크의 일부가 아닌 주체는 예를 들어 컨텐츠를 분석하기 위해 이벤트 데이터에 대한 액세스가 필요한 데이터 분석기일 수 있다. 따라서, 블록체인 네트워크 또는 블록체인 네트워크에 포함된 피어들을 추가로 수정할 필요 없이 ETL-디바이스를 사용하여 다양한 유형의 외부 주체들에 이벤트 데이터에 대한 엑세스 권한이 부여될 수 있다. 데이터베이스 및 데이터베이스 관리 시스템은 예를 들어 데이터 분석 작업을 수행하기 위해 이벤트 데이터의 소스로서 데이터베이스를 사용하는 외부 주체 또는 주체들의 목적에 맞게 최적화될 수 있다.
[0097] 실시예들에 따르면, 데이터베이스를 관리하기 위해 데이터베이스 관리 시스템에 의해 사용되는 데이터 모델은 다음 데이터 모델들: 관계형 데이터 모델, 계층적 데이터 모델, 네트워크 데이터 모델, 객체 지향 데이터 모델, 그래프 데이터 모델, 주체-관계 모델 데이터 모델, 키 값 데이터 모델, 다차원 데이터 모델, 열 지향 데이터 모델, 문서 지향 데이터 모델 및 데이터 스트림 데이터 모델 중 하나이다. 실시예들은 추출된 이벤트 데이터를 ETL-디바이스에 의해 ETL-코드를 사용하여 임의의 대상 데이터 형식으로 변환할 수 있게 하는 유익한 효과를 가질 수 있다. 대상 데이터 형식은 이벤트 데이터를 이용하여 수정될 외부 데이터베이스의 데이터 모델에 의해 결정될 수 있다. 각각의 데이터베이스는 SQL 데이터베이스 또는 NoSQL 데이터베이스일 수 있다.
[0098] 실시예들에 따르면, 추출된 이벤트 데이터를 변환하는 단계는 추출된 이벤트 데이터에 데이터 모델에 따른 하나 이상의 구조 ID를 추가하는 단계를 포함한다. 실시예들은 변환된 데이터가 데이터 모델에 의해 정의된 외부 데이터 구조의 논리적 구조와 더 유사할 수 있는 유익한 효과를 가질 수 있다. 따라서 변환된 데이터는 예를 들어, 정규화된 방식으로 보다 간결하게 제공될 수 있다. 예를 들어, 메시지 중복은 이중 전송을 방지하기 위해 억제될 수 있다.
[0099] 실시예들에 따르면, 구조 ID들은 기본 키 및 외래 키 중 하나 이상을 포함한다. 실시예들은 관계형 대상, 즉 관계형 외부 데이터 구조의 경우 기본 키(PK)와 외래 키(FK)의 사용으로 인한 이벤트의 이중화를 방지하는 유익한 효과를 가질 수 있다. SQL 특정 맥락에서, PK 및 FK는 이중 전송을 방지하기 위해 메시지 중복을 억제하는 데 사용될 수 있다.
[0100] 실시예들에 따르면, 구조 ID는 관계형 엣지를 포함한다. 이러한 관계형 엣지는 예를 들어 그래프 데이터베이스, 즉 데이터를 나타내고 저장하기 위해 노드, 관계형 엣지 및 속성을 갖는 시맨틱 쿼리에 대해 그래프 구조를 사용하는 데이터베이스에서 사용될 수 있다. 관계형 엣지는 노드로 표시되는 데이터 항목들 간의 관계를 표시하여 데이터 항목들을 직접 관련시킨다. 그래프 데이터베이스 내의 쿼리 관계는 데이터베이스 자체 내에 있기 때문에 빠를 수 있다. 따라서 그래프 데이터베이스는 밀접하게 상호 연결된 데이터에 유익한 관계를 직관적으로 시각화 할 수 있다. 실시예들은 외부 데이터 구조가 그래프 데이터베이스인 경우 이벤트 데이터를 외부 데이터 구조의 데이터 형식으로 변환할 수 있는 유익한 효과를 가질 수 있다. NoSQL 특정 맥락에서, 예를 들어 관계형 엣지 형태의 구조 ID들이 추가될 수 있다.
[0101] 데이터베이스의 관계형 모델에서, 기본 키는 관계, 즉 테이블에서 투플(tuple), 즉 행을 고유하게 지정하는 최소 속성 세트, 즉 열의 특정 선택을 나타낸다. 기본 키는 예를 들어 레코드를 식별하는 속성, 즉 고유 ID일 수 있다. 보다 일반적으로 기본 키는 후보 키의 선택, 즉 최소 수퍼 키이다. 다른 후보 키는 대체 키라고 할 수 있다. 관계형 데이터베이스의 맥락에서, 외래 키는 다른 또는 동일한 테이블의 행을 고유하게 식별하는 테이블의 필드 또는 필드 컬렉션을 지칭한다. 따라서, 제1 테이블의 기본 키를 참조하는 외래 키가 제2 테이블에서 정의된다. 정규화된 데이터베이스에서는 별도의 테이블에 저장된 값을 참조하여 실제 값 대신 외래 키 형태의 색인 키를 사용할 수 있다. 예를 들어, 사용자 테이블이라는 테이블에는 user_id라는 기본 키가 있다. 계약 테이블이라는 다른 테이블에는 두 테이블 간의 관계를 고유하게 식별하기 위해 user_id를 참조하는 외래 키가 있다.
[0102] 실시예들에 따르면, ETL-디바이스는 외부 데이터 구조의 일관성을 보장하는 데 사용된다. 블록체인의 닫힌 블록에 있는 데이터는 나중에 변경할 수 없으므로, 일관성 검사를 통해 외부 데이터베이스의 오류를 검출하고 수정할 수 있다. 일관성 검사는 ETL-디바이스로부터 수신된 데이터를 외부 데이터 구조에 저장된 데이터와 일치시키는 것을 포함할 수 있다. ETL-디바이스는 예를 들어 실행된 ETL-코드를 기록하고 선택 항목 또는 이들 모두를 재실행할 수 있다. 예를 들어, ETL-디바이스는 외부 데이터 구조를 관리하는 컴퓨터 디바이스의 요청에 응답하여 재실행을 수행할 수 있다. 따라서, 추출된 데이터의 일종의 역방향 증명이 구현될 수 있다.
[0103] 실시예들에 따르면, 추출된 이벤트 데이터를 변형하는 단계는 추출된 이벤트 데이터의 평면화를 포함한다. 실시예들은 구조적 조정을 거의 또는 전혀 시행하지 않는 추출된 이벤트 데이터를 변환하는 유익한 효과를 가질 수 있다. 외부 데이터 구조의 데이터 모델은 몇 가지 구조적 요구 사항 구조만을 정의할 수 있다, 즉, 외부 데이터 구조는 비정규화된 데이터베이스일 수 있다. 보고 및 분석의 경우, 평면적 구조가 장점이 될 수 있으며 성능에 도움이 될 수 있다.
[0104] 실시예들에 따르면, 추출된 이벤트 데이터는 메타데이터 및 페이로드 데이터를 포함한다. 실시예들은 블록체인의 블록에서 재정렬된 트랜잭션에 의해 제공되는 페이로드 데이터 뿐만 아니라 메타데이터도 고려되는 유익한 효과를 가질 수 있다. 메타데이터는 예를 들어 각각의 트랜잭션을 포함하는 블록이 생성된 시점을 식별하는 타임스탬프를 포함할 수 있다. 이 시점은 트랜잭션의 형태로 블록체인에 기록된 각각의 이벤트가 발생한 시점으로 식별될 수 있다. 메타데이터는 예를 들어 각각의 트랜잭션을 포함하는 블록의 작성자의 작성자 ID를 포함할 수 있다. 각각의 작성자는 각각의 트랜잭션의 형태로 제공된 이벤트 데이터의 작성자로 간주될 수 있다.
[0105] 실시예들에 따르면, 검출된 이벤트가 데이터 삭제를 포함하는 경우, 이벤트 데이터를 추출하는 단계는 블록체인 네트워크으로부터 추가 데이터를 검색하기 위해 콜백을 실행하는 단계 및 데이터 삭제에 따라 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 외부 데이터 구조로부터 삭제될 하나 이상의 데이터 엘리멘트들을 결정하기 위해 추가 데이터를 사용하는 단계를 더 포함한다. 실시예들은 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위한 데이터 삭제도 고려하는 효율적이고 효과적인 방법을 제공하는 유익한 효과를 가질 수 있다. 실시예들은 ETL-디바이스가 블록체인에 대한 외부 데이터 구조의 경우 논리적 및/또는 구조적 종속성이 다른 경우 및 블록체인이 각각의 값이 아닌 삭제할 실제 값을 식별하는 ID로만 구성된 경우에도 외부 데이터 구조에서 데이터 삭제를 구현하기 위해 삭제할 데이터를 결정할 수 있게 할 수 있다.
[0106] 블록체인은 블록체인 네트워크에서 제공하는 블록체인을 사용하여 클라이언트가 관리하는 기본 데이터 구조의 이벤트를 기록하는 데 사용할 수 있다. 기본 데이터 구조는 예를 들어 베이터 베이스 같은 데이터 컬렉션일 수 있다. 실시예들에 따르면, ETL-디바이스는 각각의 기본 데이터 구조의 로컬 복사본을 포함하거나 이에 액세스할 수 있으며 원래 기본 데이터 구조 및/또는 기본 데이터 구조의 다른 복사본에서 발생하는 각 이벤트에 대해 동일한 것을 갱신할 수 있다. 키-값 저장소 형태의 기본 데이터 구조에서 데이터를 삭제하는 경우, 블록체인에 기록된 삭제를 나타내는 트랜잭션은 삭제할 각 데이터에 할당된 키를 “null”로 설정하는 명령문만 포함할 수 있다. 다른 말로 하면, 블록체인 내의 데이터 상태가 예를 들어 키-값 데이터베이스에 저장될 수 있다. 삭제 시 키는 컨텐츠 명세 없이 무효로 설정된다. 기본 데이터 구조, 즉 소스 데이터베이스에서 외부 데이터 구조, 즉 대상 데이터베이스를 향한 기록된 데이터 삭제를 구현하는 데 필요한 변환의 임의적 복잡성으로 인해, 해당 삭제를 처리하려면 다단계 처리가 필요할 수 있다. 따라서, 항목이 삭제된 경우에도 이벤트의 전체 데이터 구조를 포착할 수 있는 메커니즘이 제공될 수 있다. ETL-디바이스는 키-값-데이터-스토리지, 즉 기본 데이터 구조의 로컬 복사본에서 키가 삭제되기 전에 직접 콜백을 수행하도록 구성될 수 있다. 따라서, 삭제될 실제 값은 삭제되기 전에 키를 사용하여 결정할 수 있다. 실시예들에 따르면, 삭제될 키에 할당된 값을 식별하는 가장 최근 항목을 찾기 위해 ETL-디바이스에 의해 이와달리 또는 추가적으로 블록체인의 쿼리가 수행될 수 있다. 트랜잭션들이 블록체인 구조에 적절하게 통합되면 일반적으로 블록체인에서 삭제할 수 없기 때문에 이는 항상 가능할 수 있다.
[0107] 트랜잭션의 쓰기 세트에서 “isDelete”가 true인 경우 콜백 함수가 실행될 수 있다. 예시적인 예로 다음과 같은 트랜잭션의 읽기-세트 및 쓰기-세트가 고려될 수 있다:
“<write key=”K4”...”를 수신할 때 참조되는 값은 비어 있으며 “isDelete”는 “true”로 설정된다. 이 정보만으로는 어떤 값이 삭제되는지 결정할 수 없다. 따라서, 콜백 함수를 실행하여 예를 들어 원장에서 키 “K4”의 삭제되기 전의 실제 값을 쿼리할 수 있다. 외부 데이터 구조는 ID “K4”를 포함하고/거나 알 수 없다. 따라서, 트랜잭션에서 정의한 데이터 삭제에 따라 어떤 값을 삭제해야 하는지 외부 데이터 구조에 알리기 위해서는 실제 값이 필요하다.
[0108] 실시예들에 따르면, 콜백은 블록체인 네트워크에서 제공하는 블록체인 또는 블록체인 네트워크의 피어가 제공하는 로컬 데이터 컬렉션을 대상으로 한다. 예를 들어, 로컬 데이터 컬렉션은 블록체인 네트워크의 피어, 즉 ETL-피어로서 구성된 ETL-디바이스에 의해 제공된다. 실시예들은 블록체인이 각각의 데이터 값이 아닌 삭제할 실제 데이터 값을 식별하는 ID만을 포함하는 경우에도 ETL-피어가 삭제할 실제 데이터 값을 결정할 수 있도록 하는 유익한 효과를 가질 수 있다. 실제 데이터 값은 특히 각 데이터 값을 식별하는 ID가 삭제되기 전에 로컬 데이터 컬렉션에서 검색되거나 ID를 실제 데이터 값에 할당하는 트랜잭션을 포함하는 블록체인의 가장 최근 블록에서 검색될 수 있다. 실제 데이터 값이 결정된 후, 해당 ID 및/또는 해당 데이터 값은 이벤트 데이터에 의해 정의된 데이터 삭제에 따라 로컬 데이터 컬렉션에서 삭제될 수 있다.
[0109] 실시예들에 따르면, 이벤트 데이터는 블록체인 네트워크에서 제공하는 블록체인의 블록에서 추출된다.
[0110] 실시예들에 따르면, 블록체인은 블록체인에서 데이터를 추출하기 위한 액세스가 제한되는 허가된 블록체인이다. ETL-디바이스는 등록되고 ETL-디바이스가 블록체인에서 데이터를 추출할 수 있도록 하는 엑세스 권한을 포함한다. 실시예들은 허가된 블록체인을 제공하는 블록체인 네트워크의 보안 설정을 준수하면서, 이벤트 데이터를 추출하기 위해 블록체인 네트워크의 등록 및 승인된 멤버로서 예를 들어 ETL-피어의 형태로 ETL-디바이스를 사용하여 블록체인 네트워크 내에서 처리되는 이벤트 데이터에 액세스하는 방법을 구현하는 유익한 효과를 가질 수 있다.
[0111] 따라서, 블록체인에 기록된 이벤트 데이터에 대한 액세스는 ETL-피어를 원장에 성공적으로 등록하는 것과 결부될 수 있다. 유해한 청취는 ID 도용 또는 위조의 결과로만 가능할 수 있다. 그러나 적절한 암호화 키 및/또는 보안 비밀번호가 포함된 인증서를 사용하면 이러한 오용을 효과적으로 방지할 수 있다. 유효한 자격 증명이 없으면 블록체인 네트워크에서 교환되는 데이터를 읽고 해독할 수 없다.
[0112] 실시예들은 블록체인에 포함된 데이터에 대한 전체 데이터 계보(full data lineage)의 구현을 가능하게 하는 유익한 효과를 가질 수 있다. 또한, 전체 데이터 계보는 블록체인에 할당되고 블록체인 네트워크 내에 저장된 데이터(예를 들어, 개인 데이터 컬렉션)에 대해 구현될 수도 있다. 전체 데이터 계보는 시스템, 즉 블록체인 네트워크에서 어떤 주체가 데이터로 무엇을 하는지 알 수 있도록 보장할 수 있다.
[0113] 실시예들에 따르면, 블록체인은 암호화된 데이터를 포함하고, 여기서 ETL-디바이스는 암호 해독 키에 액세스할 수 있다. 이벤트 데이터의 추출은 이벤트 데이터의 암호 해독을 포함한다. 실시예들은 ETL-디바이스가 블록체인에서 제공하는 암호화된 데이터에도 액세스 권한을 부여받는 유익한 효과를 가질 수 있다.
[0114] 실시예들에 따르면, 이벤트 데이터를 추출하는 단계는 블록체인 네트워크의 피어에 의해 제공되는 로컬 데이터 컬렉션에서 추가 이벤트 데이터를 검색하는 단계를 더 포함한다. 예를 들어, 로컬 데이터 컬렉션은 블록체인 네트워크의 피어, 즉 ETL-피어로서 구성된 ETL-디바이스에 의해 제공된다. 추가 이벤트 데이터는 블록체인의 블록에서 추출된 이벤트 데이터에 할당된다. 실시예들은 ETL-피어가 블록체인을 통해 기록 및/또는 라우팅되지 않고 오히려 로컬 데이터 컬렉션의 형태로 관리되는 추가 이벤트 데이터에 액세스할 수 있는 유익한 효과를 가질 수 있다.
[0115] 실시예들에 따르면, 로컬 데이터 컬렉션은 블록체인 네트워크의 제한된 피어들의 세트가 공유하는 개인 데이터 컬렉션이고, 개인 데이터 컬렉션의 개인 데이터는 제한된 피어들의 세트의 피어들만 사용하도록 제한된 암호화 보안 통신 연결을 사용하여 라우팅된다. 예를 들어, ETL-디바이스는 블록체인 네트워크의 피어, 즉 ETL-피어 및 제한된 피어들의 세트의 멤버로서 구성된다.
[0116] 개인 정보 보호는 블록체인 애플리케이션에서 매우 중요할 수 있다. 기본 모드에서 트랜잭션은 블록에 일반 텍스트로 기록될 수 있다. 그러나, 이러한 접근 방식은 실행 트랜잭션 자체가 투명해야 하지만 그 컨텐츠는 그렇지 않은 경우에 원하지 않을 수 있다. 예를 들어, 비즈니스 애플리케이션은 블록체인에 액세스할 수 있는 최종 사용자가 보면 안되는, 객체의 도매 가격에 관한 데이터를 포함하는 공급망 출처 추적을 포함할 수 있다. 대책은 예를 들어 개인(즉, 기밀) 데이터의 해시 값만 블록체인의 블록들에 포함하는 것과 개인 데이터에 액세스할 수 있는 권한이 있는 원장의 허가된 주체들에 속하는 ETL-피어처럼, 개인 데이터를 블록체인 네트워크의 피어들의 허가된 스토리지들에 위치한 개인 데이터 컬렉션의 형태로 제공하는 것을 포함할 수 있다. 이러한 피어들은 대체 수단으로 블록체인 네트워크의 통신 프로토콜을 사용하여, 예를 들어 gRCP-연결을 사용하여 통신할 수 있다. 따라서, 내장된 ETL-피어는 보안 실시예를 손상시키지 않고 통신 프로토콜에 의해 구현된 개인 데이터 교환에 참여하도록 활성화될 수 있다.
[0117] 실시예들은 데이터 제한의 구현 및 보존을 가능하게 하는 유익한 효과를 가질 수 있다. 제한된 데이터는 블록체인의 일부가 아닌 개인 데이터 컬렉션에 저장될 수 있다. 블록체인은 예를 들어 각각의 개인 데이터의 해시 값의 형태로 개인 데이터의 표시자만을 포함할 수 있다.
[0118] 실시예들에 따르면, 블록체인에 포함된 이벤트 데이터 뿐만 아니라 하나 이상의 개인 데이터 컬렉션에 포함된 이벤트 데이터도 추출될 수 있다. 개인 데이터는 원장의 다른 참가자에게 숨겨진 판매 가격과 같은 정보를 포함할 수 있으며, 블록체인의 블록에 포함되지 않고, 개별 개인 데이터의 증명 해시 형태로 제공될 수 있다. 그와 대조적으로 블록체인이 처리하는 모든 데이터는 보안 채널을 통해 선택된 피어들 간의 개인 데이터 공유를 포함하여 블록체인 네트워크의 통신 프로토콜에서 처리될 수 있으며, 여기서 선택된 피어는 개인 데이터 컬렉션에 저장된 개인 데이터를 가질 수 있다. 따라서, 실시예들은 블록체인의 일부가 아닌 또는 깨끗한 형태의 일부가 아닌 데이터 전송을 포함하는 전체 통신 프로토콜에 액세스할 수 있는 포괄적인 데이터 추출을 가능하게 하는 유익한 효과를 가질 수 있다.
[0119] 실시예들에 따르면, 로딩은 변환된 데이터를 사용하는 쓰기 요청을 포함한다. 실시예들은 변환된 데이터를 사용하여 외부 데이터 구조의 데이터 컨텐츠의 수정을 가능하게 하는 유익한 효과를 가질 수 있다.
[0120] 실시예들에 따르면, 쓰기 요청은: 변환된 데이터를 사용하여 외부 데이터 구조의 데이터 컨텐츠의 데이터 엘리멘트들의 갱신, 변환된 데이터에 의해 식별된 외부 데이터 구조의 데이터 컨텐츠의 데이터 엘리멘트들의 삭제, 및 변환된 데이터에 의해 제공되는 추가 데이터 엘리멘트들을 외부 데이터 구조의 데이터 컨텐츠에 삽입 중 적어도 하나에 대한 요청을 포함한다. 실시예들은 변환된 이벤트 데이터가 나타내는 이벤트로 인해 외부 데이터 구조의 데이터 컨텐츠에 추가 데이터 엘리멘트들이 추가될 수 있을 뿐만 아니라 기존 데이터 엘리멘트들이 갱신되거나 삭제될 수도 있는 유익한 효과를 가질 수 있다.
[0121] 따라서, ETL-디바이스는, 이벤트 데이터를 외부 오프-체인 데이터 구조에 메시징하기 전에, 유입되는 이벤트 데이터를 예를 들어 ETL-디바이스가 액세스할 수 있는 블록체인의 이전 블록들 또는 데이터 컬렉션의 로컬 복사본에 저장된 기존 이벤트 데이터와 비교하고, 그에 따라 이벤트 데이터가 메시지로 보내질 수 있도록 조정할 수 있다. 검출된 이벤트가 데이터 삭제, 예를 들어 원장의 자산 삭제를 포함하는 경우, 블록체인 네트워크의 피어들은 블록체인에 기록된 데이터 삭제로 인해 로컬 데이터 컬렉션들의 각 데이터를 삭제할 수 있다. 그러나, 블록체인에 기록된 이러한 데이터 삭제는 외부 데이터 구조에서 동일한 방식으로 실행되지 않을 수 있다. 이는 특히 외부 오프-체인 데이터 구조, 예를 들어 데이터베이스가 블록체인 및/또는 로컬 데이터 컬렉션보다 더 복잡한 논리적 구조를 포함하는 경우, 그러할 수 있다. 외부 오프-체인 데이터 구조에서 동일한 데이터를 삭제하면 문제가 발생할 수 있다. ETL-디바이스가 블록체인에서 및/또는 블록체인에 대해서 유입되는 이벤트 데이터를 기존 데이터와 비교하도록 구성된 경우, ETL-디바이스는 훨씬 더 포괄적인 삭제 알림을 외부 오프-체인 데이터 구조로 보내도록 활성화될 수 있다.
[0122] 실시예들에 따르면, 컴퓨터 프로그램 제품은 본원에 기술된 블록체인 네트워크에 액세스하는 컴퓨터 디바이스에 의해 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출을 위한 방법의 임의의 실시예를 구현하도록 구성된 컴퓨터 판독 가능 프로그램 코드를 더 포함한다.
[0123] 실시예들에 따르면, 블록체인 네트워크에 액세스하는 컴퓨터 디바이스, 예를 들어, ETL-디바이스는 본원에 기술된 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출을 위한 방법의 임의의 실시예를 실행하도록 더 구성된다.
[0124] 실시예들은 ETL-디바이스에 의해 수행되는 데이터 추출이 이벤트-트리거되기 때문에 ETL-디바이스를 사용하여 이벤트 데이터의 거의 실시간 추출이 제공될 수 있는 이점을 가질 수 있다. 이벤트 검출은 예를 들어 하이퍼레저 패브릭 및 아파치 나이파이(Apache NiFi)의 EventHub 또는 Channel Event Hub 구독을 사용하여 구현될 수 있다. Event Hub 및 Channel Event Hub는 하이퍼레저 패브릭에 대한 이벤트 알림 서비스를 제공한다. 아파치 나이파이는 흐름 기반 프로그래밍 모델을 기반으로 소프트웨어 시스템들 간의 데이터 흐름의 자동화를 가능하게 하고 클러스터 내에서 작동하는 기능, TLS 암호화를 사용한 보안 및 확장성과 같은 기능을 제공한다. ETL-피어의 형태로 제공되는 ETL-디바이스는 메타데이터 없이도 트랜잭션 읽기-쓰기 세트에서 온-체인 이벤트 데이터 스키마 검색을 더 제공할 수 있다. 이벤트 데이터의 온-체인 JSON 형식에서 외부 데이터 구조(예를 들어, SQL)에서 사용되는 임의의 데이터 형식으로의 그래픽 매핑이 구현될 수 있다. 이러한 JSON 형식에서 X 형식으로의 변환을 위해, ETL-디바이스는 예를 들어 졸트 라이브러리 및/또는 메타 형식을 사용할 수 있다. 실시예들은 변환의 하드 코딩이 구현되지 않고, 따라서 동일한 ETL-디바이스가 상이한 대상 형식으로의 변환에 사용될 수 있는 유익한 효과를 가질 수 있다. ETL-디바이스는 또한 SQL 삽입 메커니즘 및/또는 키 제약 조건을 삽입 및/또는 갱신하기 위한 로직을 제공할 수 있다. 실시예들에 따르면, 데이터 계보는 통합될 수 있다. NiFi의 예에서 볼 수 있듯이 데이터 통합은 아파치 아틀라스(Apache Atlas)와 함께 사용할 수 있다. 아파치 아틀라스는 규정 준수 요건을 효과적이고 효율적으로 충족할 수 있는 확장 가능하고 확대 가능한 핵심 기본 거버넌스 서비스 세트를 제공한다. 개방형 메타데이터 관리 및 거버넌스 기능이 제공되어 데이터 자산 카탈로그를 구축하고, 이러한 자산을 분류 및 관리하며 이러한 데이터 자산을 중심으로 협업 기능을 제공한다.
[0125] ETL-디바이스는 블록체인 네트워크 외부의 네트워크을 통해 외부 데이터 구조를 관리하는 외부 컴퓨터 디바이스에 통신 연결을 제공하는 메신저, 예를 들어 네트워크 통신 인터페이스를 포함할 수 있다. ETL-디바이스 ETL-코드를 생성하기 위한 ETL-코드 발생기에 의한 입력으로 사용하기 위한 모델 구동형 이벤트 데이터 매핑을 제공하는 설계 모듈을 포함한다. ETL-코드 발생기는 설계 모듈에 포함될 수 있다. 설계 모듈은 매핑 생성기 및 코드 생성기를 포함할 수 있다. ETL-디바이스는 이벤트를 캡처하고 각각의 이벤트를 나타내는 이벤트 데이터에 포함된 일종의 데이터 엘리멘트들을 발견하기 위한 런타임 소스 추출기를 포함할 수 있다. 런타임 소스 추출기는 이벤트 검출기 및 런타임 스키마 선택기를 포함할 수 있다. ETL-디바이스는 ETL-코드를 실행하기 위한 런타임 소스-투-대상-변환기를 더 포함할 수 있다. 이를 위해 소스-투-대상-변환기는 ETL-코드 실행기를 포함할 수 있다.
[0126] 본 명세서는 클라우드 컴퓨팅에 관해서 상세한 설명들을 포함하지만, 여기서 설명된 그러한 컨텐츠들의 구현은 클라우드 컴퓨팅 환경에만 한정되는 것은 아님을 이해해야 한다. 오히려, 본 발명의 실시예들은 지금 알려져 있거나 또는 나중에 개발될 모든 다른 유형의 컴퓨팅 환경과 함께 구현될 수 있다.
[0127] 클라우드 컴퓨팅은, 최소한의 관리 노력 또는 서비스 제공자와의 상호작용으로 빠르게 프로비저닝 및 해제될 수 있는, 구성 가능한(configurable) 컴퓨팅 자원들(예를 들어, 네트워크, 네트워크 대역폭, 서버, 처리, 메모리, 스토리지, 애플리케이션, 가상 머신, 및 서비스)의 공유 풀에 대한 편리한 주문형(on-demand) 네트워크 액세스를 가능하게 하는 서비스 전달 모델이다. 이 클라우드 모델은 적어도 5가지의 특성(characteristics), 적어도 3가지 서비스 모델(service models), 및 적어도 4가지 배치 모델(deployment models)을 포함할 수 있다.
[0128] 클라우드 컴퓨팅 특성들은 다음과 같다:
[0129] 주문형 셀프-서비스(On-demand self-service): 클라우드 소비자는, 서비스 제공자와의 인적 상호작용을 필요로 하지 않고 필요한 만큼 자동적으로, 서버 시간(server time) 및 네트워크 스토리지 같은 컴퓨팅 기능들을 일방적으로 프로비저닝(provisioning)할 수 있다.
[0130] 광역 네트워크 액세스(Broad network access): 이질적 씬 또는 씩 클라이언트 플랫폼들(heterogeneous thin or thick client platforms)(예를 들어, 모바일폰, 랩탑, 및 PDA)에 의한 사용을 장려하는 표준 메커니즘들을 통해 액세스되는 기능들을 네트워크을 통해서 이용할 수 있다.
[0131] 자원 풀링(Resource pooling): 제공자의 컴퓨팅 자원들은 멀티-테넌트 모델(a multi-tenant model)을 이용하여, 각기 다른 물리적 및 가상 자원들을 요구(demand)에 따라 동적으로 할당 및 재할당하면서, 다수의 소비자들에게 서비스할 수 있도록 풀에 넣어둔다(pooled). 소비자는 일반적으로 제공된 자원들의 정확한 위치를 제어할 수 없거나 그에 대한 지식이 없지만 더 높은 추상 수준에서(예를 들어, 국가, 주, 또는 데이터센터) 위치를 명시할 수 있다는 점에서 위치 독립성이 있다.
[0132] 기민한 탄력성(Rapid elasticity): 역량들(capabilities)이 기민하게 탄력적으로 프로비저닝되어 (어떤 경우엔 자동으로) 신속히 규모를 확장할 수도 있고(scale out) 그리고 탄력적으로 해제되어 신속히 규모를 축소할 수도 있다(scale in). 소비자에게는 제공할 수 있는 가능성이 종종 무제한인 것으로 보이고 언제든지 얼마든지 구매할 수 있다.
[0133] 측정 가능한 서비스(Measured service): 클라우드 시스템은 서비스 유형(예를 들어, 스토리지, 처리, 대역폭, 및 활성 사용자 계정)에 적절한 추상화 수준에서(at some level of abstraction) 계측 기능을 활용하여 자원 사용을 자동으로 제어하고 최적화한다. 자원 사용량은 모니터되고, 제어되고, 그리고 보고될 수 있으며 이로써 이용하는 서비스의 제공자와 사용자 모두에게 투명성을 제공한다.
[0134] 서비스 모델들(Service Models)은 다음과 같다:
[0135] 소프트웨어 서비스(Software as a Service)(SaaS): 소비자에게 제공되는 서비스는 클라우드 인프라스트럭처 상에서 실행되는 제공자의 애플리케이션들을 사용하게 해주는 것이다. 애플리케이션들은 웹 브라우저(예를 들어, 웹기반 이메일) 같은 씬(thin) 클라이언트 인터페이스를 통해 여러 클라이언트 장치들에서 액세스 가능하다. 소비자는 네트워크, 서버, 운영체제, 스토리지, 또는 개별 애플리케이션 성능을 포함하는 하부 클라우드 인프라스트럭처를 관리하거나 제어하지 않는다.
[0136] 플랫폼 서비스(Platform as a Service)(PaaS): 소비자에게 제공되는 서비스는 제공자에 의해 지원되는 프로그래밍 언어들 및 도구들을 이용하여 생성된 소비자-생성 또는 획득 애플리케이션들을 클라우드 인프라스트럭처에 배치하게 해주는 것이다. 소비자는 네트워크, 서버, 운영체제, 또는 스토리지를 포함하는 하부 클라우드 인프라스트럭처를 관리하거나 제어하지 않지만, 배치된 애플리케이션들에 대해서 그리고 가능한 경우 애플리케이션 호스팅 환경 구성들에 대해서 제어할 수 있다.
[0137] 인프라스트럭처 서비스(Infrastructure as a Service)(IaaS): 소비자에게 제공되는 서비스는 처리, 스토리지, 네트워크, 및 기타 기본 컴퓨팅 자원들을 제공하여 주는 것이며, 여기서 소비자는 임의의 소프트웨어를 배치 및 실행할 수 있고, 이 소프트웨어에는 운영체제와 애플리케이션들이 포함될 수 있다. 소비자는 하부 클라우드 인프라스트럭처를 관리하거나 제어하지 않지만, 운영체제, 스토리지, 배치된 애플리케이션들에 대해서 제어할 수 있고, 가능한 경우 선택된 네트워킹 컴포넌트들(예를 들어, 호스트 방화벽들)에 대해서 제한적으로 제어할 수 있다.
[0138] 배치 모델들(Deployment Models)은 다음과 같다:
[0139] 사설 클라우드(Private cloud): 클라우드 인프라스트럭처는 오직 한 조직(an organization)을 위해서 운영되고, 그 조직 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(on-premises)에 위치할 수 있다.
[0140] 커뮤니티 클라우드(Community cloud): 클라우드 인프라스트럭처는 여러 조직들에 의해 공유되고 관심사(예를 들어, 선교, 보안 요건, 정책, 및 규정 준수 심사)를 공유하는 특정 커뮤니티를 지원하며, 여러 조직들 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(on-premises)에 위치할 수 있다.
[0141] 공공 클라우드(Public cloud): 클라우드 인프라스트럭처는 일반 대중 또는 대규모 산업 집단에서 이용할 수 있으며 클라우드 서비스를 판매하는 조직이 소유한다.
[0142] 하이브리드 클라우드(Hybrid cloud): 클라우드 인프라스트럭처는 둘 또는 그 이상의 클라우드들(사설, 커뮤니티, 또는 공공)이 혼합된 구성이며, 이들은 고유한 독립체들로 있지만 데이터 및 애플리케이션 이식가능성(portability)을 가능하게 해주는 표준화된 또는 소유권 있는 기술(예를 들어, 클라우드들 사이의 부하 균형을 위한 클라우드 버스팅(cloud bursting))에 의해 서로 결합되어 있다.
[0143] 클라우드 컴퓨팅 환경은 무국적(statelessness), 낮은 결합(low coupling), 모듈 방식(modularity), 및 의미적 상호운용성(semantic interoperability)에 집중하는 서비스를 지향한다. 클라우드 컴퓨팅의 중심에는 상호 연결된 노드들의 네트워크을 포함하는 인프라스트럭처가 있다.
[0144] 이제 도 1를 참조하면, 예시적 컴퓨터 디바이스(10)의 예의 개략도가 되시된. 컴퓨터 디바이스(10)는 ETL-코드를 실행하기 위한 ETL-디바이스로서 구성된다. 상기 ETL-디바이스는 ETL-피어 형태의 블록체인 네트워크에 의해서 구성될 수 있다. 이와 달리, 상기 ETL-디바이스는 블록체인 네트워크의 피어에 대해 암호화된 보안 메시지 연결을 사용하여 블록체인 네트워크 상에서 교환된 데이터를 모니터하도록 구성된 외부 컴퓨터 디바이스이다. 실시 예들에 따라, 상기 컴퓨터 디바이스는 클라우드 컴퓨팅 노드로서 구현될 수 있다. 컴퓨터 디바이스(10)는 적합한 컴퓨터 디바이스의 하나의 예일뿐이며 여기에 설명된 본 발명의 실시예들의 사용 또는 기능의 범위에 관하여 어떠한 제한을 암시하려고 의도된 것이 아니다. 그럼에도 불구하고, 컴퓨터 디바이스(10)는 위에서 설명된 모든 기능을 구현할 수 있고 및/또는 수행할 수 있다. 
[0145] 컴퓨터 디바이스(10)는, 수많은 다른 범용 또는 특수 목적 컴퓨팅 환경들 또는 구성들과 함께 운영되는, 컴퓨터 시스템/서버일 수 있다. 컴퓨터 시스템 /서버와 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템들, 환경들, 및/또는 구성들의 예들은, 개인용 컴퓨터 시스템들, 서버 컴퓨터 시스템들, 씬 클라이언트들, 씩 클라이언트들, 핸드헬드 또는 랩탑 디바이스들, 멀티-프로세서 시스템들, 마이크로프로세서-기반 시스템들, 셋톱 박스들, 프로그래밍 가능한 소비자 전자 제품들, 네트워크 PC들, 미니 컴퓨터 시스템들, 메인프레임 컴퓨터 시스템들, 및 상기 시스템들 또는 디바이스들 중 하나를 포함하는 분산 클라우드 컴퓨팅 환경들, 등을 포함하나, 이에 국한하는 것은 아니다. 
[0146] 컴퓨터 디바이스(10)는, 컴퓨터 시스템에 의해 실행되는, 프로그램 모듈들과 같은, 컴퓨터 시스템-실행 가능한 명령들의 일반적인 컨텍스트로 기술될 수 있다. 일반적으로 프로그램 모듈들은 특정 작업들을 수행하거나 또는 특정 추상 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 논리, 데이터 구조들 등을 포함할 수 있다. 컴퓨터 디바이스(10)는 통신 네트워크을 통해 링크되는 원격 처리 디바이스들에 의해 작업들이 수행되는 분산 클라우드 컴퓨팅 환경에서 실시될 수 있다. 분산 클라우드 컴퓨팅 환경에서, 프로그램 모듈들은 메모리 스토리지 디바이스들을 포함하는 로컬 및 원격 컴퓨터 시스템 스토리지 매체 모두에 위치할 수 있다.
[0147] 도 1에서 도시된 바와 같이, 컴퓨터 디바이스(10)는 범용 컴퓨터 디바이스의 형태로 도시된다. 컴퓨터 디바이스(10)의 컴포넌트들은 하나 또는 그 이상의 프로세서들 또는 처리 유닛들(16), 시스템 메모리(28), 및 시스템 메모리(28)를 포함하는 다양한 시스템 컴포넌트를 프로세서(16)에 연결하는 버스(18)를 포함할 수 있지만, 이에 국한되지 않는다.
[0148] 버스(18)는, 다양한 버스 아키텍처들 중 하나를 사용하는, 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 가속 그래픽 포트, 및 프로세서 또는 로컬 버스를 포함하는, 버스 구조들의 여러 유형들 중 하나 또는 그 이상을 나타낸다. 예를 들어, 그러한 아키텍처들은 VESA(Video Electronics Standards Association) 로컬 버스 및, PCI, PCI-X 와 PCIe 같은, PCI(Peripheral Component Interconnect) 버스를 포함하나, 이에 국한되지는 않는다.
[0149] 컴퓨터 디바이스(10)는 일반적으로 다양한 컴퓨터 시스템 판독 가능한 매체를 포함한다. 그러한 매체는 컴퓨터 디바이스(10)에 의해 액세스 가능한 모든 이용 가능한 매체일 수 있으며 , 휘발성 및 비휘발성 매체, 착탈식 및 비-착탈식 매체를 모두 포함한다. 
[0150] 시스템 메모리(28)은, 예컨대 랜덤 액세스 메모리(RAM)(30) 및/또는 캐시 메모리(32)와 같은, 휘발성 메모리의 형태의 컴퓨터 시스템 판독 가능한 매체를 포함할 수 있다. 컴퓨터 시스템/서버(12)는 또한, 다른 착탈식/비-착탈식, 휘발성/비휘발성 컴퓨터 시스템 스토리지 매체를 포함할 수 있다. 단지 예로서, 스토리지 시스템(34)이 비착탈식, 비휘발성 자기 매체(도시되지 않고 일반적으로 "하드 드라이브"라고 함)로부터 읽고 쓰기 위해 제공될 수 있다. 도시되지는 않았지만, 착탈가능 비휘발성 자기 디스크(예: "플로피 디스크") 에서 읽고 쓰기 위한 자기 디스크 드라이브 및, CD-ROM, DVD-ROM 또는 기타 광학 매체와 같은, 착탈가능 비휘발성 광학 디스크에서 읽거나 쓰기 위한 광학 디스크 드라이브가 제공될 수 있다. 그러한 경우에, 각각은 하나 또는 그 이상의 데이터 매체 인터페이스들에 의해 버스(18)에 연결될 수 있다. 아래에서 추가로 도시되고 설명되는 바와 같이, 메모리(28)는 본 발명의 실시예들의 기능들을 수행하도록 구성된 프로그램 모듈들의 세트(예를 들어, 적어도 하나)를 갖는 적어도 하나의 프로그램 제품을 포함할 수 있다.
[0151] 운영 체계, 하나 또는 그 이상의 애플리케이션 프로그램들, 기타 프로그램 모듈들 및 프로그램 데이터 뿐만 아니라, 프로그램 모듈들의 (적어도 하나)세트(42)를 갖는, 프로그램/ 유틸리티(40)는, 예를 들어, 메모리(28)에 저장될 수 있지만, 이에 국한되는 것은 아니다. 운영 체제, 하나 또는 그 이상의 애플리케이션 프로그램들, 기타 프로그램 모듈들, 및 프로그램 데이터 또는 이들의 조합은 네트워킹 환경의 구현을 포함할 수 있다. 프로그램 모듈(42)은 일반적으로 본 명세서에 기술된 바와 같은 본 발명의 실시예의 기능들 및/또는 방법들을 수행한다.
[0152] 컴퓨터 디바이스(10)는 키보드, 포인팅 디바이스, 디스플레이(24) 등과 같은, 하나 또는 그 이상의 외부 디바이스들(14); 사용자가 컴퓨터 디바이스(10)와 상호작용할 수 있게 하는 하나 또는 그 이상의 디바이스들; 및/또는 컴퓨터 디바이스(10)가 하나 또는 그 이상의 다른 컴퓨팅 디바이스들과 통신할 수 있게 하는 모든 디바이스들(예를 들어, 네트워크 카드, 모뎀 등)과 통신 할 수 있다. 그러한 통신은 입/출력(I/O) 인터페이스(22)를 통해 발생할 수 있다. 또한, 컴퓨터 디바이스(10)는 근거리 통신망(LAN), 일반 광역 통신망(WAN), 및/또는 네트워크 어댑터(20)를 통한 공중 네트워크(예를 들어, 인터넷)와 같은, 하나 또는 그 이상의 네트워크들과 통신할 수 있다. 도시된 바와 같이, 네트워크 어댑터(20)는 버스(18)를 통해 컴퓨터 디바이스(10)의 다른 컴포넌트들과 통신한다. 도시되지는 않았지만, 다른 하드웨어 및/또는 소프트웨어 컴포넌트들이 컴퓨터 디바이스(10)와 함께 사용될 수 있음을 이해해야 한다. 이들의 예들에는: 마이크로코드, 디바이스 드라이버들, 리던던트 처리 유닛들, 외부 디스크 드라이브 어레이들, RAID 시스템들, 테이프 드라이브들 및 데이터 아카이벌 스토리지 시스템들이 포함되지만 이에 국한되지는 않는다.
[0153] 이제 도 2을 참조하면, 예시적인 클라우드 컴퓨팅 환경(50)이 도시된다. 도시된 바와 같이, 클라우드 컴퓨팅 환경(50)은 하나 또는 그 이상의 클라우드 컴퓨팅 노드들(10)을 포함하며, 이들은 예를 들어 개인 휴대 정보 단말기(PDA) 또는 휴대폰(54A), 데스크탑 컴퓨터(54B), 랩탑 컴퓨터(54C), 및/또는 자동차용 컴퓨터 시스템(54N)과 같은, 클라우드 소비자가 사용하는 로컬 컴퓨팅 장치들과 통신할 수 있다. 노드들(10)은 서로 통신할 수 있다. 이들은 상기에서 기술된 바와 같은 사설, 커뮤니티, 공공, 또는 하이브리드 클라우드들 또는 이들의 조합 등의 하나 또는 그 이상의 네트워크들에서 물리적으로 또는 가상으로 그룹화될 수 있다(도시되지 않음). 이것은 클라우드 소비자가 로컬 컴퓨팅 장치 상에 자원들을 유지할 필요가 없게 클라우드 컴퓨팅 환경(50)이 인프라스트럭처, 플랫폼들 및/또는 소프트웨어를 서비스로서 제공할 수 있게 해준다. 도 2에 도시된 컴퓨팅 장치들(54A-N)의 유형들은 단지 예시의 목적으로 기술한 것이며 컴퓨팅 노드들(10)과 클라우드 컴퓨팅 환경(50)은 모든 유형의 네트워크 및/또는 네트워크 주소지정가능 연결을 통해서 (예를 들어, 웹 브라우저를 사용하여) 모든 유형의 컴퓨터화된 장치와 통신할 수 있다는 것을 이해해야 한다.
[0154] 이제 도 3를 참조하면, 클라우드 컴퓨팅 환경(50)(도 2)에 의해 제공되는 일 세트의 기능별 추상화 계층들이 도시된다. 도 3에 도시된 컴포넌트들, 계층들, 및 기능들은 단지 예시의 목적이며 본 발명의 실시예들은 이들에 한정되지 않는다는 것을 미리 이해해야 한다. 도시된 바와 같이, 다음의 계층들과 그에 대응하는 기능들이 제공된다:
[0155] 하드웨어 및 소프트웨어 계층(60)은 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 하드웨어 컴포넌트들의 예들은: 메인프레임들- 일 예는 IBM® zSeries® 시스템들-; RISC(Reduced Instruction Set Computer) 아키텍처 기반 서버들-일 예는 IBM pSeries® 시스템들-; IBM xSeries® 시스템들; IBM BladeCenter® 시스템들; 스토리지 디바이스들; 네트워크들 및 네트워킹 컴포넌트들을 포함한다. 소프트웨어 컴포넌트들의 예들은 네트워크 애플리케이션 서버 소프트웨어-일 예는 IBM WebSphere® 애플리케이션 서버 소프트웨어-; 및 데이터베이스 소프트웨어-일 예는 IBM DB2® 데이터베이스 소프트웨어-를 포함한다 (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere, 및 DB2 는 전 세계의 많은 관할 구역들에서 등록된 인터내셔널 비즈니스 머신즈 코포레이션의 상표들이다).
[0156] 가상화 계층(62)은 추상화 계층을 제공하며 이로부터 다음의 가상 실체들의 예들이 제공될 수 있다: 가상 서버들; 가상 스토리지; 가상 사설 네트워크을 포함하는, 가상 네트워크들; 가상 애플리케이션들 및 운영체제들; 및 가상 클라이언트들.
[0157] 한 예에서, 관리 계층(64)은 아래에 기술하는 기능들을 제공한다. 자원 제공(Resource provisioning)은 클라우드 컴퓨팅 환경에서 작업들을 수행하는 데 이용되는 컴퓨팅 자원들 및 기타 자원들의 동적 조달을 제공한다. 예를 들어, 가상화 계층(62)의 가상 스토리지와 같은, 클라우드 스토리지 위치들이 제공될 수 있다. 계측 및 가격 책정(Metering and Pricing)은 자원들이 클라우드 컴퓨팅 환경에서 이용될 때 비용 추적, 및 이 자원들의 소비에 대한 요금 청구를 제공한다. 한 예에서, 이 자원들은 애플리케이션 소프트웨어 라이센스를 포함할 수 있다. 보안(Security)은 데이터 및 기타 자원들에 대한 보호뿐 아니라 클라우드 소비자들과 작업들에 대한 신원 확인을 제공한다. 예를 들어, 클라우트 인프라스트럭처에 의해서 제공된 스토리지 위치들을 액세스하려는 사용자의 신원이 확인될 수 있다. 사용자 포털(User portal)은 소비자들 및 시스템 관리자들에게 클라우드 컴퓨팅 환경에 대한 액세스, 예를 들어 클라우트 인프라스트럭처에 의해서 제공된 스토리지 위치들에 대한 액세스를 제공한다. 서비스 수준 관리(Service level management)는 요구되는 서비스 수준이 충족되도록 클라우드 컴퓨팅 자원 할당 및 관리를 제공한다. 서비스 수준 협약서(SLA) 기획 및 충족(planning and fulfillment)은 SLA에 부합하는 예상되는 미래 요건에 맞는 클라우드 컴퓨팅 자원들의 사전-배치(pre-arrangement) 및 조달(procurement)을 제공한다.
[0158] 워크로드 계층(66)은 클라우드 컴퓨팅 환경이 이용될 수 있는 기능들의 예들을 제공한다. 이 계층에서 제공될 수 있는 워크로드들과 기능들의 예들은 다음과 같다: 맵핑 및 네비게이션; 소프트웨어 개발 및 라이프사이클 관리; 가상 교실 교육 전달; 데이터 분석 처리; 트랜잭션 처리; 이벤트 데이터의 기록 및 블록체인으로부터 기록된 이벤트 데이터의 모델 구동형 추출의 실행을 위한 블록체인 서비스들.
[0159] 도 4는 ETL(Extract Transform Load)-기능(100)을 제공하는 제1피어(126) 형태의 ETL-디바이스를 포함하는, 즉 ETL-피어로서 구성되는, 블록체인 네트워크(120)의 예를 예시하는 개략도를 도시한다. 제1피어(126)는, 예를 들어 도 1의 컴퓨터 디바이스(10)의 형태로 구현될 수 있다. 제1 조직 “ORG1.클라이언트”인 클라이언트(122)는 트랜잭션들을 기록하기 위해 블록체인(127)을 사용할 수 있고, 블록체인(127)은 또한 원장(a ledger)이라고도 한다. 이들 트랜잭션들은 원장(127)에 저장될 모든 유형의 정보를 포함할 수 있다. 원장(127)은, 즉 등록되고 승인된 멤버만 액세스가 허용되는, 허가된 원장(a permissioned ledger)일 수 있다. 클라이언트(122)는 블록체인 네트워크(120)의 일부가 아닐 수 있지만 블록체인 네트워크(120)의 제1 피어(126)에는 연결할 수 있다. 블록체인 네트워크(120)는 추가 피어들, 예를 들어 제2피어(129)를 포함할 수 있다. 블록체인 네트워크(120)의 피어(126, 129)는 블록체인 네트워크의 통신 프로토콜, 예를 들어 데이터 보급 가십 프로토콜(a data dissemination gossip protocol)을 사용하여 데이터를 공유할 수 있다. 상기 통신 프로토콜은 블록체인 네트워크(120)의 모든 피어가 동일한 데이터를 공유하는 것을 보장할 수 있다. 클라이언트(122)는, 예를 들어, 제1 피어(126)에 의해 제공되는 ETL-기능(100)을 시작할 수 있다. 따라서, 제1 피어(126)는 ETL-피어로서 구성된다. 대체 실시예들에 따르면, ETL-기능(100)은 블록체인 네트워크(120)의 다른 독립 피어에 의해 제공될 수 있다. ETL-기능(100)은 ETL-코드를 제공하고 실행하도록 구성될 수 있다. ETL-코드는 한 세트의 머신 실행 가능 명령들을 포함하고, 원장(127)의 블록에서 이벤트 데이터를 추출하며(extracting), 상기 추출된 이벤트 데이터를 외부 데이터 구조, 예를 들어 오프-체인 데이터베이스(an off-chain database)(140)의 논리적 구조를 정의하는 데이터 모델을 준수하도록 이벤트 스키마를 사용하여 변환하고(transforming), 그리고 상기 변환된 데이터를 상기 오프-체인 데이터베이스(140)의 데이터 컨텐츠를 수정하기 위해 상기 오프-체인 데이터베이스(140)에 로드(loading) 하도록 구성된다.
[0160] 클라이언트(122)는 보증 기능(an endorsing capability)(124)을 요청함으로써 체인코드(125)를 호출할 수 있는데, 상기 보증 기능은 또한 제1 제1피어(126)에 의해 제공되며, 보증자(an endorser)라고도 하고, 상기 제안된 체인코드 호출에 동의, 예를 들어, 서명한다. 대체 실시예들에 따르면, 보증자(124)는 블록체인 네트워크(120)의 다른 독립 피어에 의해 제공될 수도 있다. 보증자(124)는 상기 제안된 체인코드 호출을 검사하여, 상기 제안된 체인코드 호출이 보증자(124)에 의해 정의된 보증 정책을 만족하고 상기 제안과 함께 체인코드(125)를 호출하는 경우에, 그것에 서명한다. 체인코드(125)는 원장(127)을 사용하여, 예를 들어 쿼리를 생성하거나 제안 응답을 갱신할 수 있다. 체인코드(125)의 호출에 대한 응답으로 제안 응답이 피어(126)에 의해서 클라이언트(122)에 제공된다.
[0161] 원장(127)에 트랜잭션(tx)을 추가하기 위해, 클라이언트(122)는 주문 서비스(an ordering service)를 제공하는 주문자(an orderer)(128)에게 요청 트랜잭션을 보낼 수 있다. 주문자(128)는 트랜잭션을 주문하고 상기 주문된 트랜잭션을 블록으로 패키징하는 책임을 갖는다. 상기 주문된 트랜잭션은 주문자(128)에 의해 제1피어(126)가 제공하는 실행 계층(a committing layer)(123)에 블록 단위로 전송된다. 블록체인으로 전송된 블록을 수용하기 위한 합의가 달성하면, 상기 블록은 실행 계층(123)에 의해 원장(127)으로 실행된다. 원장(127)으로 실행된 블록은 ETL-기능(100)에 전달되어, 블록들의 스트림이 생성된다. 예를 들어, 원장(127)에 추가되는 각 블록은 상기 블록들에 의해서 구성된 이벤트 데이터에 의해 표현되는 이벤트로서 검출될 수 있다.
[0162] ETL-기능(100)은 ETL-코드를 실행하여 상기 수신된 블록들로부터 상기 트랜잭션들에 의해 제공된 이벤트 데이터를 추출하고, 오프-체인 데이터베이스(140)의 데이터 모델을 준수하도록 상기 이벤트 데이터를 변환하며 그리고 상기 변환된 이벤트 데이터를 오프-체인 데이터베이스(140)로 로드 한다. 이에 따라, 오프-체인 데이터베이스(140)는 ETL-기능(100)을 사용하여 원장(127)로부터 상기 블록들로 구성된 이벤트 데이터를 페치하기 위해 인에이블 된다. 오프-체인 데이터베이스(140)는, 예를 들어 블록체인 네트워크(120) 외부의 이벤트 데이터를 분석하기 위해 데이터 분석기에 의해 사용될 수 있다. 데이터베이스 관리 시스템은, 추출된 이벤트 데이터의 의도된 용도- 예를 들어 데이터 분석기(the data analyzer)에 의한 분석-를 위한 최적화된 논리적 구조를 사용하여 오프-체인 데이터베이스(140)에 포함된 데이터를 관리하기 위해, 예를 들어, 데이터 모델을 사용할 수 있다.
[0163] 도 5는 ETL-피어(100)의 형태로 제공되는 ETL-디바이스를 포함하는 예시적인 블록체인 네트워크(120)를 예시하는 개략도를 도시한다. ETL-피어(100)는 예를 들어 도 1의 컴퓨터 디바이스(10)의 형태로 구현될 수 있다. 도 5에 도시된 블록체인 네트워크(120)의 경우에, 보증자(124)“ORG1.보증자” 및 ETL-기능(100)이 각각 제1 피어(126)와 독립적으로, 즉 독립 보증 피어(124) 및 독립 ETL-피어(100)의 형태로 제공된다. 블록체인 네트워크(120) 내의 데이터는 가십 프로토콜(a gossip protocol: GP)을 사용하여 제1 피어(126)와 보증 피어(124) 사이에서 라우트 될 수 있다. 클라이언트(122)는 공통 블록체인 채널(121) “채널 1”을 통해 ETL-피어(100), 보증 피어(124), 제1 피어(126) 및 주문자(128)와 통신할 수 있다. ETL-피어(100)는 이벤트 데이터에 의해 표현되는 이벤트를 검출하기 위한 이벤트 검출기(an event detector)를 포함할 수 있다. 상기 이벤트 검출은 직접 이벤트 캡처링(direct event capturing) 및/또는 가십 프로토콜을 통한 이벤트 캡처링을 포함할 수 있다. 상기 이벤트 검출은 삭제-트랜잭션들에 관한 콜백(a callback on delete-transactions)을 더 포함할 수 있다. 상기 검출된 이벤트들의 이벤트 데이터에 대한 이벤트 스키마들(events schemas)을 결정하기 위해 스키마 결정 선택기(A schema determining selector)(104)가 제공된다. 각각의 이벤트 스키마는 상기 ETL-피어에 의해 사용되는 하나 또는 그 이상의 라이브러리들에 의해 제공될 수 있다. 이벤트 스키마들은 상기 이벤트 데이터 및 그들의 논리적 구조들을 상기 이벤트 스키마들에 의해 식별되는 논리적 구조들과 비교함으로써 결정될 수 있다. 이벤트 스키마 선택기(104)에 의해 결정된 상기 이벤트 스키마는 매핑 생성기(106)에 의해 사용될 수 있는데, 이는 상기 이벤트 데이터에 의해 구성되고 상기 이벤트 스키마에 의해 논리적 데이터 엘리멘트 유형이 할당된 상기 데이터 엘리멘트들의 매핑을 오프-체인 데이터베이스(140)의 데이터 모델에 의해 정의된 논리적 구조에 대해 생성하기 위해서이다. 상기 매핑은 페이로드 데이터(payload data), 즉 자산 데이터뿐만 아니라 블록체인 네트워크(120)에 의해 제공되는 블록체인 블록들의 트랜잭션들에 의해 구성된 메타데이터를 고려하여 인스턴스 수준에서 수행될 수 있다. 실시예들에 따르면, 개인 키들(private keys)및/또는 외래 키들(or foreign keys)과 같은 추가 구조 ID들(further structural IDs)이 상기 이벤트 데이터에 삽입될 수 있고 및/또는 조작될 수 있다. ETL-코드 발생기(108)는 블록체인의 블록들에서 검출된 이벤트들을 나타내는 이벤트 데이터를 추출, 변환 및 로드하기 위해 ETL-피어에 의해 실행될 ETL-코드를 생성한다. ETL-코드는 이벤트 데이터의 이벤트 스키마와 오프-체인 데이터베이스(140)의 데이터 모델을 기반으로 정의된 매핑을 사용하여 생성된다. ETL-코드 발생기에 의해 생성된 ETL-코드는 ETL-피어(100)에 의해 실행된다. ETL-코드 추출기(110)는 상기 결정된 이벤트 스키마들을 사용하여 블록들 및 트랜잭션들에서 이벤트 데이터를 추출하는 데 사용된다. 상기 추출된 이벤트 데이터는 오프-체인 데이터베이스(140)의 논리적 구조를 정의하는 데이터 모델을 준수하도록 변환되고 블록체인 네트워크(120)에 포함된 ETL-피어(100)로부터 블록체인 네트워크(120) 외부에 위치한 외부 오프-체인 데이터베이스(140)로의 통신 연결을 구축하도록 구성된 ETL-피어(100)의 메신저(112)를 사용하여 오프-체인 데이터베이스(140)로 로드된다.
[0164] 도 6은 ETL-피어(100)의 형태로 제공되는 ETL-디바이스를 포함하는 블록체인 네트워크(120)의 예를 예시하는 개략도를 도시한다. ETL-피어(100)는, 예를 들어 도 1의 컴퓨터 디바이스(10)의 형태로 구현될 수 있다. 도 6의 블록체인 네트워크(120) 및 ETL-피어(100)는 도 5의 ETL-피어(100)를 포함하는 블록체인 네트워크(120)와 동일하다. 도 6은 ETL-피어(100)가 처리하는 이벤트 데이터를 보다 구체적으로 예시한 것이다. ETL-피어(100)는 블록체인 네트워크(120) 외부의 클라이언트에 의해 구체화될(instantiated) 수 있고, 블록체인 네트워크(120)에 의해 제공되는 블록체인에 실행된 블록(130)을 수신할 수 있다. 블록(130)은 트랜잭션 페이로드 데이터, 예를 들어 다음과 같은 형태의 트랜잭션을 포함할 수 있다:
이 트랜잭션은 “JAVA EE”라는 이름의 책 형태의 추가 자산을 정의하고 이 품목, 즉 책에 관한 추가 정보를 제공한다. 추가 정보는 DE, UK 및 US 내 책의 가격을 정의한다.
[0165] 오프-체인 데이터베이스(140)의 데이터 모델은 관계형 데이터 모델일 수 있다. 따라서, 블록(130)에 포함된 이벤트 데이터는 블록(130)의 트랜잭션에 대해 결정된 이벤트 스키마 및 오프-체인 데이터베이스(140)의 관계형 데이터 모델을 사용하여 각 데이터 모델에 부합하는 형식으로 변환될 수 있다. 그 결과로 변환된 이벤트 데이터는 두 개의 테이블들의 논리적 구조를 가질 수 있다. 제1 테이블은 책(book)을 식별하고 다음 형식을 갖는 책 테이블일 수 있다:
“BOOK” 테이블은 기본 키가 할당된 책의 이름 “JAVA EE”를 포함한다. 또한 제2 테이블에는 추가 정보가 제공된다. 제2 테이블의 형식은 다음과 같다:
“INFO” 테이블은 기본 키(a primary key: PK)로 할당된 각 위치에 대한 가격을 제공한다. 또한, 각 가격 정보에는 책 테이블의 제1 키를 가리키는 동일한 외래 키(FK) “1”이 할당된다. 따라서, 서로 다른 가격 정보를 각각 복사하여 저장하는 것이 아니라 책 테이블의 정보만 저장하는 것으로 충분하다.
[0166] 도 7은 ETL-디바이스에 의해 블록체인으로부터 데이터를 추출하는 방법의 일 예의 개략적인 흐름도를 도시한다. ETL-디바이스는, 예를 들어 블록체인을 제공하는 블록체인 네트워크에 포함된 ETL-피어로 구현될 수 있다. 블록(200)에서, ETL-디바이스에 의해 이벤트가 검출된다. 이벤트를 검출하기 위해 ETL-디바이스의 런타임 소스 추출기(a runtime source extractor)의 이벤트 검출기가 사용될 수 있다. 블록(202)에서, ETL-디바이스에 의해 검출된 이벤트에 대한 이벤트 스키마가 결정된다. 결정을 위해 런타임 소스 추출기의 스키마 선택기와 이벤트 스키마를 제공하는 하나 또는 그 이상의 라이브러리들이 사용될 수 있다. 결정된 이벤트 스키마는 검출된 이벤트를 나타내는 이벤트 데이터의 논리적 구조를 식별한다. 블록(204)에서, ETL-디바이스에 의해 ETL-코드가 제공된다. ETL-코드는 블록체인 네트워크에 의해 제공되는 블록체인의 블록에서 검출된 이벤트의 이벤트 데이터를 추출하도록 구성된 한 세트의 머신 실행 가능 명령들을 포함한다. ETL-코드는 추출된 이벤트 데이터를 사용하여 데이터 컨텐츠를 수정할 외부 데이터 구조, 예를 들어, 오프-체인 데이터베이스의 논리적 구조를 정의하는 데이터 모델을 준수하도록 이벤트 스키마 결정을 사용하여 추출된 이벤트 데이터를 변환할 뿐만 아니라 변환된 데이터를 외부 데이터 구조에 로드하여 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 추가로 구성될 수 있다. ETL-코드를 제공하는 것은 ETL-디바이스의 매핑 생성기를 사용하여 외부 데이터 구조의 논리적 구조에 이벤트 데이터를 매핑하는 것을 포함할 수 있다. 매핑을 위해, 결정된 이벤트 스키마와 외부 데이터 구조의 데이터 모델이 사용될 수 있다. 또한, ETL-코드를 제공하는 것은 매핑을 사용하여 이벤트에 대한 ETL-코드를 생성하는 것을 포함할 수 있다. 블록(206)에서, 제공된 ETL-코드가 ETL-디바이스에 의해 실행된다. ETL-디바이스는 ETL-코드를 실행하기 위한 런타임 소스-투-타겟-변환기(a runtime source-to-target-transformer)의 코드 실행기(a code executor)를 포함할 수 있다. ETL-코드를 실행하면 ETL-디바이스가 블록체인 블록에서 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 이벤트 스키마를 사용하여 추출된 이벤트 데이터를 외부 데이터 구조의 데이터 모델을 준수하도록 변환하며, 변환된 이벤트 데이터를 외부 데이터 구조에 로드하여 검출된 이벤트에 따라 외부 데이터 구조의 데이터 컨텐츠를 수정한다. 변환된 이벤트 데이터의 로딩은 변환된 이벤트 데이터를 ETL-디바이스에 의해 메시징 네트워크을 통해 블록체인 네트워크 외부의 외부 컴퓨터 디바이스로 메시징하는 것을 포함할 수 있다. 외부 컴퓨터 디바이스는 상기 외부 데이터 구조를 관리할 수 있다.
[0167] 도 8은 이벤트 데이터(134, 136, 138)가 있는 트랜잭션(132)을 포함하는 블록체인의 블록(130)의 일 예를 예시하는 개략도를 도시한다. 이 트랜잭션은 사용자의 보험 구매를 나타낸다. 이를 위해 트랜잭션은 두 개의 추가 자산, 즉 추가 사용자 자산(136)과 추가 계약 자산(138)을 작성한다. 사용자 자산(136)은 사용자명, 패스워드 등과 같은 사용자 관련 데이터를 포함할 수 있다. 계약 자산(138)은 보험 계약에 관한 정보, 예를 들어 계약 ID뿐만 아니라 관심 품목에 관한 추가 정보, 예를 들어 값, 브랜드, 일련 번호 등을 포함한다. 또한, 트랜잭션(132)은 예를 들어 트랜잭션의 타임스탬프를 제공하고, 트랜잭션(132)의 작성자를 식별하고, 트랜잭션(132)의 보증자를 식별하는 등의 메타데이터(134)를 포함할 수 있다.
[0168] 도 9는 도 8의 블록(130)의 이벤트 데이터를 관계형 데이터 모델에 따라 정의된 복수의 테이블(142, 144, 146)의 형태로 제공된 외부 데이터 구조에 매핑하는 것을 예시하는 개략도를 도시한다. 사용자 테이블(142)은 메타데이터(134)로부터의 타임스탬프 및 작성자 ID와 같은 사용자 관련 정보는 물론 기본 키로서 사용자명 및 사용자 자산(136)으로부터의 패스워드를 포함할 수 있다. 계약 테이블(144)은 사용자 자산(136)으로부터의 외래 키로서 사용자명, 계약 자산(138)으로부터의 기본 키로서 계약 ID 및 품목 일련 번호, 및 타임스탬프와 같은 약 관련 정보는 물론 메타데이터(134)로부터의 작성자 ID를 포함할 수 있다. 마지막으로, 품목 테이블(146)은 외래 키 또는 기본 키로서 품목의 일련 번호, 브랜드 및 계약 자산(136)의 값을 포함할 수 있다.
[0169] 도 10은 이벤트 데이터(134, 136)를 포함하는 트랜잭션(132)이 있는 블록체인의 추가 블록(130)의 일 예를 예시하는 개략도를 도시한다. 메타데이터(134), 예를 들어 타임스탬프, 작성자 ID, 보증자 ID 등 외에, 이벤트 데이터는 삭제될 키 “1239DWDIAJ0Q”를 식별하는 데이터 삭제(136)를 포함할 수 있다. 외부 데이터 구조에서도 이 삭제를 실행할 수 있으려면, ETL-디바이스가 키 “1239DWDIAJ0Q”가 참조하는 실제 데이터 값을 식별해야 할 수 있다. 각 데이터 값을 식별하기 위해, ETL-디바이스는 로컬 데이터 컬렉션에 대한 데이터 삭제를 실행하기 전에 로컬 데이터 컬렉션을 대상으로 하는 콜백 함수를 사용할 수 있거나 또는 ETL-디바이스는 블록체인에서 키 “1239DWDIAJ0Q”의 가장 최근 할당 내역을 검색할 수 있다. 키 “1239DWDIAJ0Q”가 참조하는 실제 데이터 값을 식별한 후, ETL-디바이스는, 트랜잭션(132)에 의해 정의된 데이터 삭제에 따라 데이터 컨텐츠를 수정하기 위해, 외부 데이터 구조의 데이터 컨텐츠에서 삭제할 데이터 엘리멘트들을 식별하는 삭제 요청을 생성할 수 있다.
[0170] 도 11은 이벤트 데이터(134, 136)를 포함하는 트랜잭션(132)이 있는 블록체인의 블록(130)의 일 예를 예시하는 개략도를 도시한다. 메타데이터(134), 예를 들어 타임스탬프, 작성자 ID, 보증자 ID 등 외에, 이벤트 데이터는 개인 데이터 컬렉션에 추가된 데이터 엘리멘트들을 정의하는 데이터 해시 값 ()을 포함할 수 있다. 블록체인에 액세스할 수 있는 액세스 권한은 있지만 각각의 데이터 엘리멘트에 액세스할 수 있는 액세스 권한이 없는 주체들이 해당 데이터 엘리멘트에 무단으로 액세스하는 것을 방지하기 위해, 해시 값만 트랜잭션(132)에 기록된다. 따라서, 각 개인 데이터 컬렉션의 복사본에 액세스할 수 있는 각 주체는 상기 각각의 데이터 엘리멘트의 실제 값을 결정할 수 있게 인에이블 되는 반면 다른 모든 주체는 해당 데이터 엘리멘트에 액세스할 수 없다. 상기 실제 데이터 엘리멘트는 개인 데이터 컬렉션의 복사본에 액세스할 수 있는 ETL-디바이스와 같은 주체들 간의 보안 채널을 통해 라우트 될 수 있다. 상기 각각의 데이터 엘리멘트를 추출할 수 있기 위해, ETL-디바이스는 데이터 해시 값을 사용하여 상기 데이터 엘리멘트를 식별할 수 있고 외부 데이터 구조에 그 것을 제공하기 위해 개인 데이터 컬렉션에서 동일한 것을 추출할 수 있다.
[0171] 본 발명의 전술한 실시 예들 중 하나 또는 그 이상은 조합된(combined) 실시 예들이 상호 배타적이 아닌 한 조합될 수 있음을 이해하여야 한다.
[0172] 본 발명의 실시예들은 본 발명의 실시예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0173] 본 발명은 시스템, 방법, 및/또는 컴퓨터 프로그램 제품이 될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 스토리지 매체를 포함할 수 있으며, 이 매체 상에 프로세서가 본 발명의 실시예들을 수행하도록 하는 컴퓨터 판독 가능 프로그램 명령들을 갖는다.
[0174] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비-포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 기계적으로 인코드된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[0175] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 컴퓨터 또는 외부 스토리지 디바이스로 다운로드될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 장치 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
[0176] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 “C” 프로그래밍 언어 또는 그와 유사한 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크을 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 논리 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 논리 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시예들을 수행하기 위해 전자 회로를 맞춤화 하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0177] 본 발명의 실시예들은 본 발명의 실시예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[0178] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 장치의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 장치의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 장치 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[0179] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 장치, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[0180] 도면들 내 플로 차트 및 블록도들은 본 발명의 여러 실시예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능(functionality), 및 연산(operation)을 예시한다. 이와 관련하여, 상기 플로 차트 또는 블록도들 내 각 블록은 상기 명시된 논리적 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한 모듈, 세그먼트 또는 명령들의 일부분을 나타낼 수 있다. 일부 다른 구현들에서, 상기 블록에 언급되는 기능들은 도면들에 언급된 순서와 다르게 일어날 수도 있다. 예를 들면, 연속으로 도시된 두 개의 블록들은 실제로는 사실상 동시에 실행될 수도 있고, 또는 이 두 블록들은 때때로 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 블록도들 및/또는 순서 예시도의 각 블록, 및 블록도들 및/또는 순서 예시도 내 블록들의 조합들은 특수목적용 하드웨어 및 컴퓨터 명령들의 명시된 기능들 또는 동작들, 또는 이들의 조합들을 수행하는 특수목적용 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것에 또한 주목해야 한다.
[0181] 전술한 특징들의 가능한 조합들은 다음과 같을 수 있다:
1. 블록체인 네트워크에 액세스할 수 있는 컴퓨터 디바이스에 의한 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델-구동형 추출 방법(A method for a model-driven extraction)에 있어서,
상기 컴퓨터 디바이스는 상기 추출된 이벤트 데이터를 사용하여 상기 블록체인 네트워크 외부의 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 ETL-코드를 실행하기 위한 ETL-디바이스로서 구성되고, 상기 방법은:
상기 블록체인 네트워크에서 발생하는 이벤트를 검출하는 단계;
상기 검출된 이벤트에 대한 이벤트 스키마를 결정하는 단계 - 상기 이벤트 스키마는 상기 검출된 이벤트를 나타내는 이벤트 데이터의 논리적 구조를 식별함 -;
상기 ETL-코드를 제공하는 단계 - 상기 ETL-코드는 상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 상기 외부 데이터 구조의 논리적 구조를 정의하는 데이터 모델을 준수하도록 변환하며, 상기 변환된 데이터를 상기 외부 데이터 구조에 로드하여 상기 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 구성된 한 세트의 머신 실행가능 명령들을 포함함 -; 및
상기 제공된 ETL-코드를 실행하는 단계를 포함하고, 상기 ETL-코드를 실행하는 단계는 상기 ETL-디바이스가:
상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하는 단계,
상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 상기 외부 데이터 구조의 데이터 모델을 준수하도록 변환하는 단계,
상기 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 상기 변환된 이벤트 데이터를 상기 외부 데이터 구조에 로드 하는 단계를 수행하게 한다.
2. 항목 1의 방법에 있어서, 상기 변환된 이벤트 데이터를 로드 하는 단계는 상기 변환된 이벤트 데이터를 상기 ETL-디바이스에 의해 메시징 네트워크을 통해 상기 블록체인 네트워크 외부의 외부 컴퓨터 디바이스로 메시징 하는 단계(messaging)를 포함하고, 상기 외부 컴퓨터 디바이스는 상기 외부 데이터 구조를 관리한다.
3. 이전의 항목들 중 어느 한 방법에 있어서, 상기 ETL-코드를 제공하는 단계는:
상기 이벤트 데이터를 상기 외부 데이터 구조의 논리적 구조에 매핑하는 단계 - 상기 매핑을 위해 상기 결정된 이벤트 스키마와 상기 외부 데이터 구조의 데이터 모델이 사용됨 -; 및
상기 매핑을 사용하여 상기이벤트에 대한 상기 ETL-코드를 생성하는 단계를 포함한다.
4. 이전의 항목 중 어느 한 방법에 있어서, 상기 ETL-디바이스는 ETL-피어의 형태로 상기 블록체인 네트워크에 의해서 구성된다.
5. 항목들 1내지 3의 항목들 중 어느 한 방법에 있어서, 상기 ETL-디바이스는 상기 블록체인 네트워크의 피어에 대한 암호화로 보안된 메시징 연결을 사용하여 상기 블록체인 네트워크 상에서 교환되는 데이터를 모니터하도록 구성된 외부 컴퓨터 디바이스이다.
6. 항목 4의 방법에 있어서, 상기 이벤트를 검출하는 단계는 상기 블록체인의 블록의 일부로서 상기 블록체인에 추가될 상기 ETL-피어에 의해 제공되는 이벤트 데이터를 검출함에 의한 직접 이벤트 캡처링 단계(a direct event capturing)를 포함한다.
7. 항목4의 방법에 있어서, 상기 이벤트를 검출하는 단계는 상기 블록체인 네트워크의 통신 프로토콜을 사용하여 상기 ETL-피어를 통해 상기 블록체인 네트워크에서 라우트 되는 데이터를 모니터 하는 단계를 포함한다.
8. 이전의 항목들 중 어느 한 방법에 있어서, 상기 이벤트 스키마는 상기 블록체인 네트워크에서 잠재적으로 발생할 수 있는 이벤트들의 유형들을 나타내는 이벤트 데이터의 논리적 구조들을 식별하는 하나 또는 그 이상의 이벤트 스키마들을 제공하는 라이브러리를 사용하여 결정된다.
9. 항목8의 방법에 있어서, 상기 라이브러리에 의해서 제공되는 상기 이벤트 스키마들 중에서 상기 검출된 이벤트의 이벤트 데이터의 논리적 구조와 매치(match)하는 것이 없는 경우에, 상기 방법은:
상기 검출된 이벤트의 이벤트 데이터의 논리적 구조를 분석하는 단계;
상기 검출된 이벤트의 이벤트 데이터의 논리적 구조와 매치하는 추가 이벤트 스키마를 결정하는 단계; 및
상기 추가 이벤트 스키마를 상기 라이브러리에 추가하는 단계를 더 포함한다.
10. 이전의 항목들 중 어느 한 방법에 있어서, 상기 이벤트 스키마를 결정하는 단계는 상기 결정된 이벤트 스키마를 사용하여 상기 이벤트 데이터에 의해서 구성된 하나 또는 그 이상의 데이터 엘리멘트들을 태그하는 단계(tagging) 포함하고,
상기 태그들은 상기 결정된 이벤트 스키마에 의해 정의된 데이터 엘리멘트들의 구조적 유형들을 식별한다.
11. 항목10의 방법에 있어서, 상기 태그들은 태그된 데이터 엘리멘트들을 상기 외부 데이터 구조의 논리적 구조에 의해 정의된 구조적 엘리멘트들에 매핑하는 데 사용된다.
12. 이전의 항목들 중 어느 한 방법에 있어서, 상기 외부 데이터 구조는 데이터베이스, 및 상기 데이터 모델을 사용하여 상기 데이터베이스를 관리하기 위한 데이터베이스 관리 시스템의 형태로 제공된다.
13. 항목12의 방법에 있어서, 상기 데이터베이스를 관리하기 위한 상기 데이터베이스 관리 시스템에 의해 사용되는 상기 데이터 모델은 다음 데이터 모델들: 관계형 데이터 모델, 계층적 데이터 모델, 네트워크 데이터 모델, 객체-지향 데이터 모델, 그래프 데이터 모델, 주체-관계 모델 데이터 모델, 키 값 데이터 모델, 다차원 데이터 모델, 열-지향 데이터 모델, 문서 지향 데이터 모델 및 데이터 스트림 데이터 모델 중 하나이다.
14. 이전의 항목들 중 어느 한 방법에 있어서, 상기 추출된 이벤트 데이터를 변환하는 단계는 상기 추출된 이벤트 데이터에 상기 데이터 모델에 따른 하나 또는 그 이상의 구조 ID들을 추가하는 단계를 포함한다.
15. 이전의 항목들 중 어느 한 방법에 있어서, 상기 검출된 이벤트가 데이터 삭제를 포함하는 경우에, 상기 이벤트 데이터를 추출하는 단계는 상기 블록체인 네트워크으로부터 추가 데이터를 검색하기 위해 콜백을 실행하는 단계 및 상기 데이터 삭제에 따라 상기 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 상기 추가 데이터를 사용하여 상기 외부 데이터 구조로부터 삭제될 하나 이상의 데이터 엘리멘트들을 결정하는 단계를 더 포함한다.
16. 항목 15의 방법에 있어서, 상기 콜백은 상기 블록체인 네트워크에 의해서 제공되는 블록체인 또는 상기 블록체인 네트워크의 피어에 의해서 제공되는 로컬 데이터 컬렉션을 타겟으로 한다.
17. 이전의 항목들 중 어느 한 방법에 있어서, 상기 이벤트 데이터는 상기 블록체인 네트워크에 의해서 제공되는 블록체인의 블록으로부터 추출된다.
18. 이전의 항목들 중 어느 한 방법에 있어서, 상기 블록체인은 상기 블록체인에서 데이터를 추출하기 위한 액세스가 제한되는 허가된 블록체인이고, 상기 ETL-디바이스는 등록되고 상기 ETL-디바이스가 상기 블록체인에서 데이터를 추출할 수 있도록 하는 엑세스 권한을 포함한다.
19. 이전의 항목들 중 어느 한 방법에 있어서, 상기 블록체인은 암호화된 데이터를 포함하고, 상기 ETL-디바이스는 암호 해독 키에 액세스할 수 있으며, 상기 이벤트 데이터를 추출하는 단계는 상기 이벤트 데이터를 암호 해독하는 단계를 포함한다.
20. 이전의 항목들 중 어느 한 방법에 있어서, 상기 이벤트 데이터를 추출하는 단계는 상기 블록체인 네트워크의 피어에 의해 제공되는 로컬 데이터 컬렉션으로부터 추가 이벤트 데이터를 검색하는 단계를 더 포함하고, 상기 추가 이벤트 데이터는 상기 블록체인의 블록으로부터 추출된 이벤트 데이터에 할당된다.
21. 항목20의 방법에 있어서, 상기 로컬 데이터 컬렉션은 상기 블록체인 네트워크의 제한된 피어들의 세트가 공유하는 개인 데이터 컬렉션(a private data collection)이고, 상기 개인 데이터 컬렉션의 개인 데이터는 상기 제한된 피어들의 세트의 피어들만 사용하도록 제한된 암호화 보안 통신 연결을 사용하여 라우트 된다.
22. 이전의 항목들 중 어느 한 방법에 있어서, 상기 로드하는 단계는 상기 변환된 데이터를 사용하는 쓰기 요청을 포함한다.
23. 항목 22의 방법에 있어서, 상기 쓰기 요청은: 상기 변환된 데이터를 사용하여 상기 외부 데이터 구조의 데이터 컨텐츠의 데이터 엘리멘트를 갱신하는 단계, 상기 변환된 데이터에 의해 식별된 상기 외부 데이터 구조의 데이터 컨텐츠의 데이터 엘리멘트를 삭제하는 단계, 및 상기 변환된 데이터에 의해 제공되는 추가 데이터 엘리멘트를 상기 외부 데이터 구조의 데이터 컨텐츠에 삽입하는 단계 중 적어도 하나에 대한 요청을 포함한다.
24. 블록체인 네트워크에 액세스할 수 있는 컴퓨터 디바이스에 의해 상기 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출을 위해 구현된 컴퓨터 판독 가능 프로그램 코드를 갖는 비휘발성 컴퓨터 판독 가능 스토리지 매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 디바이스는 상기 추출된 이벤트 데이터를 사용하여 상기 블록체인 네트워크 외부의 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 ETL-코드를 실행하기 위한 ETL-디바이스로서 구성되고, 상기 ETL-디바이스의 프로세서에 의한 상기 프로그램 코드의 실행이 상기 프로세서가 상기 ETL-디바이스를 제어하도록 하여, 상기 ETL-디바이스가 방법을 수행하도록 하고, 상기 방법은:
상기 블록체인 네트워크에서 발생하는 이벤트를 검출하는 단계;
상기 검출된 이벤트에 대한 이벤트 스키마를 결정하는 단계 - 상기 이벤트 스키마는 상기 검출된 이벤트를 나타내는 이벤트 데이터의 논리적 구조를 식별함 -;
상기 ETL-코드를 제공하는 단계 - 상기 ETL-코드는 상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 상기 외부 데이터 구조의 논리적 구조를 정의하는 데이터 모델을 준수하도록 변환하며, 상기 변환된 데이터를 상기 외부 데이터 구조에 로드하여 상기 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 구성된 한 세트의 머신 실행가능 명령들을 포함함 -; 및
상기 제공된 ETL-코드를 실행하는 단계를 포함하고, 상기 ETL-코드를 실행하는 단계는 상기 ETL-디바이스가:
상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하는 단계,
상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 상기 외부 데이터 구조의 데이터 모델을 준수하도록 변환하는 단계,
상기 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 상기 변환된 이벤트 데이터를 상기 외부 데이터 구조에 로드 하는 단계를 수행하게 한다.
25. 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출을 위해 상기 블록체인 네트워크에 액세스할 수 있는 컴퓨터 디바이스에 있어서,
상기 컴퓨터 디바이스는 상기 추출된 이벤트 데이터를 사용하여 상기 블록체인 네트워크 외부의 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 ETL-코드를 실행하기 위한 ETL-디바이스로서 구성되고,
상기 ETL-디바이스는 프로세서 및 머신 실행 가능 프로그램 명령들을 저장하는 메모리를 포함하고, 상기 ETL-디바이스의 프로세서에 의한 상기 프로그램 명령들을 실행하는 단계는 상기 프로세서가 상기 ETL-디바이스를 제어하도록 하여, 상기 ETL-디바이스가 방법을 수행하도록 하고, 상기 방법은:
상기 블록체인 네트워크에서 발생하는 이벤트를 검출하는 단계;
상기 검출된 이벤트에 대한 이벤트 스키마를 결정하는 단계 - 상기 이벤트 스키마는 상기 검출된 이벤트를 나타내는 이벤트 데이터의 논리적 구조를 식별함 -;
상기 ETL-코드를 제공하는 단계 - 상기 ETL-코드는 상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하고, 상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 상기 외부 데이터 구조의 논리적 구조를 정의하는 데이터 모델을 준수하도록 변환하며, 상기 변환된 데이터를 상기 외부 데이터 구조에 로드하여 상기 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 구성된 한 세트의 머신 실행가능 명령들을 포함함 -; 및
상기 제공된 ETL-코드를 실행하는 단계를 포함하며, 상기 ETL-코드를 실행하는 단계는 상기 ETL-디바이스가:
상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하는 단계,
상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 상기 외부 데이터 구조의 데이터 모델을 준수하도록 변환하는 단계,
상기 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 상기 변환된 이벤트 데이터를 상기 외부 데이터 구조에 로드 하는 단계를 수행하게 한다.

Claims (25)

  1. 블록체인 네트워크에 액세스할 수 있는 컴퓨터 디바이스에 의한 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델-구동형 추출을 수행하기 위한 방법(A method for performing a model-driven extraction)에 있어서, 상기 방법은:
    상기 블록체인 네트워크에서 발생하는 이벤트를 검출하는 단계;
    상기 검출된 이벤트에 대한 이벤트 스키마를 결정하는 단계;
    상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하는 단계;
    상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 외부 데이터 구조의 데이터 모델을 준수하도록 변환하는 단계;
    상기 결정된 이벤트 스키마와 상기 데이터 모델에 기초하여, 상기 이벤트 데이터를 상기 외부 데이터 구조의 논리적 구조에 매핑하는 단계; 및
    상기 매핑에 기초하여 상기 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 상기 변환된 이벤트 데이터를 상기 외부 데이터 구조에 로드 하는 단계를 포함하는
    방법.
  2. 제1항에 있어서, 상기 방법은:
    상기 변환된 이벤트 데이터를 상기 컴퓨터 디바이스에 의해 메시징 네트워크을 통해 상기 블록체인 네트워크 외부의 외부 컴퓨터 디바이스로 메시징 하는 단계(messaging)를 포함하고, 상기 외부 컴퓨터 디바이스는 상기 외부 데이터 구조를 관리하는
    방법.
  3. 제1항에 있어서, 상기 방법은:
    상기 결정된 이벤트 스키마와 상기 데이터 모델에 기초하여, 상기 이벤트 데이터를 상기 외부 데이터 구조의 논리적 구조에 매핑하는 단계; 및
    상기 매핑을 사용하여 상기이벤트에 대한 상기 ETL-코드를 생성하는 단계를 포함하는
    방법.
  4. 제1항에 있어서, 상기 컴퓨터 디바이스는 ETL-피어의 형태로 상기 블록체인 네트워크의 내부에 있는
    방법.
  5. 제1항에 있어서, 상기 컴퓨터 디바이스는 상기 블록체인 네트워크의 피어에 대한 암호화로 보안된 메시징 연결을 사용하여 상기 블록체인 네트워크 상에서 교환되는 데이터를 모니터하도록 구성된 외부 컴퓨터 디바이스인
    방법.
  6. 제4항에 있어서, 상기 블록체인 네트워크 상에서 발생하는 상기 이벤트를 검출하는 단계는:
    상기 블록체인에 추가될 상기 ETL-피어에 의해 제공되는 이벤트 데이터를 상기 블록체인의 블록의 일부로서 검출하는 단계를 포함하는
    방법.
  7. 제4항에 있어서, 상기 블록체인 네트워크 상에서 발생하는 상기 이벤트를 검출하는 단계는:
    상기 블록체인 네트워크의 통신 프로토콜을 사용하여 상기 ETL-피어를 통해 상기 블록체인 네트워크에서 라우트 되는 데이터를 모니터 하는 단계를 포함하는
    방법.
  8. 제1항에 있어서, 상기 이벤트 스키마는 상기 블록체인 네트워크에서 잠재적으로 발생하는 이벤트들의 하나 또는 그 이상의 유형들을 나타내는 이벤트 데이터의 논리적 구조들을 식별하는 하나 또는 그 이상의 이벤트 스키마들을 제공하는 라이브러리를 사용하여 결정되는
    방법.
  9. 제8항에 있어서, 상기 방법은:
    상기 라이브러리에 의해서 제공되는 상기 이벤트 스키마들 중에서 상기 검출된 이벤트의 이벤트 데이터의 논리적 구조와 매치(match)하는 것이 없다고 결정하는 것에 응답하여, 상기 검출된 이벤트의 이벤트 데이터의 논리적 구조를 분석하는 단계;
    상기 검출된 이벤트의 이벤트 데이터의 논리적 구조와 매치하는 추가 이벤트 스키마를 결정하는 단계; 및
    상기 추가 이벤트 스키마를 상기 라이브러리에 추가하는 단계를 더 포함하는
    방법.
  10. 제1항에 있어서, 상기 이벤트 스키마를 결정하는 단계는:
    상기 결정된 이벤트 스키마를 사용하여 상기 이벤트 데이터를 포함하는 하나 또는 그 이상의 데이터 엘리멘트들을 태그하는 단계(tagging) 포함하고, 태그들은 상기 결정된 이벤트 스키마에 의해 정의된 데이터 엘리멘트들의 하나 또는 그 이상의 구조적 유형들을 식별하는
    방법.
  11. 제10항에 있어서, 상기 태그들은 태그된 데이터 엘리멘트들을 상기 외부 데이터 구조의 논리적 구조에 의해 정의된 구조적 하나 또는 그 이상의 엘리멘트들에 매핑하는
    방법.
  12. 제1항에 있어서, 상기 외부 데이터 구조는 데이터베이스, 및 상기 데이터 모델을 사용하여 상기 데이터베이스를 관리하기 위한 데이터베이스 관리 시스템의 형태로 제공되는
    방법.
  13. 제12항에 있어서, 상기 데이터베이스를 관리하기 위한 상기 데이터베이스 관리 시스템에 의해 사용되는 상기 데이터 모델은:
    관계형 데이터 모델, 계층적 데이터 모델, 네트워크 데이터 모델, 객체-지향 데이터 모델, 그래프 데이터 모델, 주체-관계 모델 데이터 모델, 키 값 데이터 모델, 다차원 데이터 모델, 열-지향 데이터 모델, 문서 지향 데이터 모델 및 데이터 스트림 데이터 모델로 구성되는 목록으로부터 선택되는
    방법.
  14. 제1항에 있어서, 상기 추출된 이벤트 데이터를 변환하는 단계는:
    상기 추출된 이벤트 데이터에 상기 데이터 모델에 따른 하나 또는 그 이상의 구조 ID들을 추가하는 단계를 포함하는
    방법.
  15. 제1항에 있어서, 상기 방법은:
    상기 검출된 이벤트가 데이터 삭제를 포함한다고 결정하는 것에 응답하여, 상기 블록체인 네트워크으로부터 추가 데이터를 검색하기 위해 콜백을 실행하는 단계; 및
    상기 데이터 삭제에 따라 상기 외부 데이터 구조의 데이터 컨텐츠를 수정하기 위해 상기 외부 데이터 구조로부터 삭제될 하나 또는 그 이상의 데이터 엘리멘트들을, 상기 추가 데이터에 기초하여, 결정하는 단계를 더 포함하는
    방법.
  16. 제15항에 있어서, 상기 콜백은 상기 블록체인 네트워크에 의해서 제공되는 블록체인 또는 상기 블록체인 네트워크의 피어에 의해서 제공되는 로컬 데이터 컬렉션을 타겟으로 하는
    방법.
  17. 제1항에 있어서, 상기 이벤트 데이터는 상기 블록체인 네트워크에 의해서 제공되는 블록체인의 블록으로부터 추출되는
    방법.
  18. 제17항에 있어서, 상기 블록체인은 상기 블록체인에서 데이터를 추출하기 위한 액세스가 제한되는 허가된 블록체인이고, 상기 컴퓨터 디바이스는 등록되며 상기 컴퓨터 디바이스가 상기 블록체인에서 데이터를 추출할 수 있도록 하는 엑세스 권한을 포함하는
    방법.
  19. 제17항에 있어서, 상기 블록체인은 암호화된 데이터를 포함하고, 상기 컴퓨터 디바이스는 암호 해독 키에 액세스할 수 있으며, 상기 이벤트 데이터를 추출하는 단계는 상기 이벤트 데이터를 암호 해독하는 단계를 포함하는
    방법.
  20. 제17항에 있어서, 상기 이벤트 데이터를 추출하는 단계는:
    상기 블록체인 네트워크의 피어에 의해 제공되는 로컬 데이터 컬렉션으로부터 복수의 추가 이벤트 데이터를 검색하는 단계를 더 포함하고, 상기 추가 이벤트 데이터는 상기 블록체인의 블록으로부터 추출된 이벤트 데이터에 할당되는
    방법.
  21. 제20항에 있어서, 상기 로컬 데이터 컬렉션은 상기 블록체인 네트워크의 피어들의 제한된 세트에 의해 공유되는 개인 데이터 컬렉션(a private data collection)이고, 상기 개인 데이터 컬렉션의 개인 데이터는 상기 피어들의 제한된 세트의 하나 또는 그 이상의 피어들에 의한 사용으로 제한된 암호화 보안 통신 연결을 사용하여 라우트 되는
    방법.
  22. 제1항에 있어서, 상기 로드하는 단계는 상기 변환된 데이터를 사용하는 쓰기 요청을 포함하는
    방법.
  23. 제22항에 있어서, 상기 쓰기 요청은:
    상기 변환된 데이터를 사용하여 상기 외부 데이터 구조의 데이터 컨텐츠의 데이터 엘리멘트를 갱신하는 단계, 상기 변환된 데이터에 의해 식별된 상기 외부 데이터 구조의 데이터 컨텐츠의 데이터 엘리멘트를 삭제하는 단계, 및 상기 변환된 데이터에 의해 제공되는 추가 데이터 엘리멘트를 상기 외부 데이터 구조의 데이터 컨텐츠에 삽입하는 단계로 구성되는 목록으로부터 선택되는 요청을 포함하는
    방법.
  24. 블록체인 네트워크에 액세스할 수 있는 컴퓨터 디바이스에 의해 상기 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출을 위해 구현된 컴퓨터 판독 가능 프로그램 코드를 갖는 비휘발성 컴퓨터 판독 가능 스토리지 매체에 있어서, 컴퓨터 판독 가능 프로그램 코드는 프로세서에 의해 실행 가능하고, 상기 프로세서가 방법을 수행하도록 하며, 상기 방법은:
    상기 블록체인 네트워크에서 발생하는 이벤트를 검출하는 단계;
    상기 검출된 이벤트에 대한 이벤트 스키마를 결정하는 단계;
    상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하는 단계;
    상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 외부 데이터 구조의 데이터 모델을 준수하도록 변환하는 단계;
    상기 결정된 이벤트 스키마와 상기 데이터 모델에 기초하여, 상기 이벤트 데이터를 상기 외부 데이터 구조의 논리적 구조에 매핑하는 단계; 및
    상기 매핑에 기초하여 상기 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 상기 변환된 이벤트 데이터를 상기 외부 데이터 구조에 로드 하는 단계를 포함하는
    컴퓨터 판독 가능 스토리지 매체.
  25. 블록체인 네트워크에서 발생하는 이벤트를 나타내는 이벤트 데이터의 모델 구동형 추출을 수행하기 위한 컴퓨터 시스템에 있어서, 상기 컴퓨터 시스템은:
    하나 또는 그 이상의 프로세서들, 하나 또는 그 이상의 컴퓨터-판독가능 메모리들, 하나 또는 그 이상의 컴퓨터-판독가능 유형의 스토리지 매체, 및 상기 하나 또는 그 이상의 메모리들 중 적어도 하나를 통해 상기 하나 또는 그 이상의 프로세서들 중 적어도 하나에 의한 실행을 위해 상기 하나 또는 그 이상의 컴퓨터-판독가능 유형의 스토리지 매체 중 적어도 하나에 저장된 프로그램 명령들을 포함하고, 상기 컴퓨터 시스템은 방법을 수행할 수 있으며, 상기 방법은:
    상기 블록체인 네트워크에서 발생하는 이벤트를 검출하는 단계;
    상기 검출된 이벤트에 대한 이벤트 스키마를 결정하는 단계;
    상기 검출된 이벤트를 나타내는 이벤트 데이터를 추출하는 단계;
    상기 추출된 이벤트 데이터를 상기 이벤트 스키마를 사용하여 외부 데이터 구조의 데이터 모델을 준수하도록 변환하는 단계;
    상기 결정된 이벤트 스키마와 상기 데이터 모델에 기초하여, 상기 이벤트 데이터를 상기 외부 데이터 구조의 논리적 구조에 매핑하는 단계; 및
    상기 매핑에 기초하여 상기 외부 데이터 구조의 데이터 컨텐츠를 수정하도록 상기 변환된 이벤트 데이터를 상기 외부 데이터 구조에 로드 하는 단계를 포함하는
    컴퓨터 시스템.
KR1020217031493A 2019-04-24 2020-03-19 블록체인 네트워크에서 데이터 추출 Active KR102738475B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19170763 2019-04-24
EP19170763.7 2019-04-24
PCT/EP2020/057574 WO2020216536A1 (en) 2019-04-24 2020-03-19 Extracting data from a blockchain network

Publications (2)

Publication Number Publication Date
KR20210133289A KR20210133289A (ko) 2021-11-05
KR102738475B1 true KR102738475B1 (ko) 2024-12-05

Family

ID=66251637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217031493A Active KR102738475B1 (ko) 2019-04-24 2020-03-19 블록체인 네트워크에서 데이터 추출

Country Status (10)

Country Link
US (2) US11449476B2 (ko)
EP (1) EP3959842B1 (ko)
JP (1) JP7461695B2 (ko)
KR (1) KR102738475B1 (ko)
CN (1) CN113711536B (ko)
AU (1) AU2020261982B2 (ko)
CA (2) CA3297706A1 (ko)
IL (1) IL287252B2 (ko)
SG (1) SG11202109836QA (ko)
WO (1) WO2020216536A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929352B2 (en) * 2018-05-29 2021-02-23 Oracle International Corporation Securing access to confidential data using a blockchain ledger
US11416510B2 (en) * 2019-04-10 2022-08-16 Kpmg Llp Systems and methods for applying lifecycle processes to digital data objects utilizing distributed ledger technology and artificial intelligence
IL287252B2 (en) 2019-04-24 2025-01-01 Ibm Extracting information from a blockchain network
US11647078B2 (en) * 2020-04-16 2023-05-09 Verizon Patent And Licensing Inc. Content consumption measurement for digital media using a blockchain
US11762889B2 (en) * 2020-05-06 2023-09-19 Jpmorgan Chase Bank, N.A. Method and apparatus for implementing an automatic data ingestion module
US11949784B2 (en) 2020-05-13 2024-04-02 Ridgeline, Inc. Auditing for events
US11233640B2 (en) * 2020-05-13 2022-01-25 Ridgeline, Inc. Mutation processing for events
US11556517B2 (en) * 2020-05-17 2023-01-17 International Business Machines Corporation Blockchain maintenance
US11854038B1 (en) * 2020-06-16 2023-12-26 Balan Mahesh Multi-party, multi-point type decentralized loyalty system for promotion and point issuance using a permission-based distributed ledger for promotion, point issuance, and point redemption
CN111935000B (zh) * 2020-09-25 2021-01-08 支付宝(杭州)信息技术有限公司 消息传输方法及装置
US12010244B2 (en) * 2020-11-09 2024-06-11 International Business Machines Corporation Blockchain based verifiability of user status
CA3206364A1 (en) * 2020-11-09 2022-05-12 Automobilia Ii, Llc Methods, systems and computer program products for media processing and display
CN112395290B (zh) * 2020-11-20 2024-06-18 深圳市麦谷科技有限公司 一种数据同步实现方法及系统
US11997108B1 (en) * 2021-03-05 2024-05-28 Professional Credentials Exchange LLC Systems and methods for providing consensus sourced verification
US11849026B2 (en) * 2021-04-13 2023-12-19 Sap Se Database integration with an external key management system
US11726999B1 (en) * 2021-06-14 2023-08-15 Amazon Technologies, Inc. Obtaining inferences to perform access requests at a non-relational database system
EP4120618A1 (en) * 2021-07-13 2023-01-18 Tata Consultancy Services Limited Method and system for blockchain monitoring
US11709820B2 (en) * 2021-09-03 2023-07-25 Bank Of America Corporation System for implementing intelligent data analysis
US12418418B2 (en) * 2021-09-17 2025-09-16 B Data Solutions Inc. System and method for building a trusted network of devices
US11907179B2 (en) 2021-09-23 2024-02-20 Bank Of America Corporation System for intelligent database modelling
CN114495445A (zh) * 2021-12-28 2022-05-13 山东华特智慧科技有限公司 一种智慧水利的实现方法、系统、设备及可读存储介质
CN114374633B (zh) * 2022-01-07 2023-11-10 广东工业大学 一种基于智能合约的可信物联网云服务评价方法及系统
CN114398428A (zh) * 2022-01-19 2022-04-26 安徽华云安科技有限公司 一种数据分析方法、装置、设备及存储介质
CN114428818B (zh) * 2022-01-28 2025-09-02 京东方科技集团股份有限公司 数据处理系统、数据处理方法、可读存储介质
CN116561187B (zh) * 2022-01-30 2025-09-16 腾讯科技(深圳)有限公司 一种基于区块链的数据处理方法、设备以及可读存储介质
US11928125B2 (en) * 2022-07-05 2024-03-12 Capital One Services, Llc Cleaning and organizing schemaless semi-structured data for extract, transform, and load processing
US12107918B2 (en) * 2022-09-02 2024-10-01 Ahp-Tech Inc. System for use in a cloud-storage block chain solution
CN115905216A (zh) * 2022-10-18 2023-04-04 中科纯元(珠海)科技有限公司 一种基于区块链的数据管理系统
US12609817B2 (en) 2023-01-11 2026-04-21 John A. Nix Systems and methods for a quantum safe certificate ledger
US12388819B2 (en) 2023-02-07 2025-08-12 Bank Of America Corporation Systems and methods for authenticating a resource transfer in a peer-to-peer resource sharing electronic network
US12353581B2 (en) * 2023-04-13 2025-07-08 Dell Products L.P. Processing transactions using nested data objects
CN116599966B (zh) * 2023-05-09 2024-05-24 天津大学 基于区块链共享的边缘云服务并行资源分配方法
US11829340B1 (en) * 2023-06-22 2023-11-28 Citibank, N.A. Systems and methods for generating data transfers using programming language-agnostic data modeling platforms
US12061631B1 (en) * 2023-12-07 2024-08-13 Citibank, N.A. Systems and methods for account classification using a middleware system architecture
US12452066B2 (en) 2024-01-17 2025-10-21 Bank Of America Corporation System and method for allocating transfer of data from a data file
US12609917B2 (en) 2024-01-17 2026-04-21 Bank Of America Corporation System and method for requesting data transfers in a blockchain network
US12388588B1 (en) * 2024-02-12 2025-08-12 Briza, Inc. Restructuring structured payloads for efficient downstream electronic transmission, storage, and processing
US12549196B2 (en) 2024-04-23 2026-02-10 Bank Of America Corporation Systems and methods for dynamically generating and mapping unicode for cross-distributed network data transmissions
US12509965B2 (en) 2024-05-23 2025-12-30 Saudi Arabian Oil Company Energized swabbing device for a slickline based well initiation service tool

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262192A1 (en) 2003-08-27 2005-11-24 Ascential Software Corporation Service oriented architecture for a transformation function in a data integration platform
JP2008051934A (ja) 2006-08-23 2008-03-06 Fujifilm Corp 感光性組成物及びそれを用いた感光性転写材料、表示装置用遮光膜及びその製造方法、遮光膜付基板並びに表示装置
US20170132300A1 (en) 2015-11-10 2017-05-11 OpenMetrik Inc. System and methods for integrated performance measurement environment
US11121858B2 (en) 2017-07-07 2021-09-14 Microsoft Technology Licensing, Llc Blockchain analytics

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101076793A (zh) * 2004-08-31 2007-11-21 国际商业机器公司 企业数据集成系统的体系结构
US10607442B2 (en) * 2015-09-25 2020-03-31 Bally Gaming, Inc. Unified digital wallet
JP6995762B2 (ja) 2016-02-23 2022-01-17 エヌチェーン ホールディングス リミテッド ブロックチェーンからのデータのセキュアな抽出のための暗号方法及びシステム
US20210211468A1 (en) * 2016-05-27 2021-07-08 Wells Fargo Bank, N.A. Systems and methods for service compliance via blockchain
US10621150B2 (en) 2017-03-05 2020-04-14 Jonathan Sean Callan System and method for enforcing the structure and content of databases synchronized over a distributed ledger
US10515233B2 (en) 2017-03-19 2019-12-24 International Business Machines Corporation Automatic generating analytics from blockchain data
US12026685B2 (en) 2017-04-21 2024-07-02 Blockdaemon Inc. Method and apparatus for blockchain management
CN107562775B (zh) 2017-07-14 2020-04-24 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
CN110996826B (zh) 2017-07-27 2023-04-25 直观外科手术操作公司 医疗装置手柄
US10565192B2 (en) 2017-08-01 2020-02-18 International Business Machines Corporation Optimizing queries and other retrieve operations in a blockchain
US11032293B2 (en) * 2018-02-10 2021-06-08 SmartAxiom, Inc. System and method for managing and securing a distributed ledger for a decentralized peer-to-peer network
CN108664650B (zh) * 2018-05-17 2020-05-22 百度在线网络技术(北京)有限公司 一种区块链网络的事务处理方法、装置、设备及存储介质
IL287252B2 (en) 2019-04-24 2025-01-01 Ibm Extracting information from a blockchain network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262192A1 (en) 2003-08-27 2005-11-24 Ascential Software Corporation Service oriented architecture for a transformation function in a data integration platform
JP2008051934A (ja) 2006-08-23 2008-03-06 Fujifilm Corp 感光性組成物及びそれを用いた感光性転写材料、表示装置用遮光膜及びその製造方法、遮光膜付基板並びに表示装置
US20170132300A1 (en) 2015-11-10 2017-05-11 OpenMetrik Inc. System and methods for integrated performance measurement environment
US11121858B2 (en) 2017-07-07 2021-09-14 Microsoft Technology Licensing, Llc Blockchain analytics

Also Published As

Publication number Publication date
IL287252B2 (en) 2025-01-01
KR20210133289A (ko) 2021-11-05
IL287252B1 (en) 2024-09-01
CN113711536B (zh) 2023-09-15
IL287252A (en) 2021-12-01
US11449476B2 (en) 2022-09-20
US11921682B2 (en) 2024-03-05
JP7461695B2 (ja) 2024-04-04
EP3959842B1 (en) 2025-12-10
SG11202109836QA (en) 2021-10-28
US20200341951A1 (en) 2020-10-29
WO2020216536A1 (en) 2020-10-29
CN113711536A (zh) 2021-11-26
JP2022529967A (ja) 2022-06-27
CA3137242A1 (en) 2020-10-29
AU2020261982A1 (en) 2021-09-30
US20230004537A1 (en) 2023-01-05
CA3297706A1 (en) 2026-03-02
AU2020261982B2 (en) 2023-07-06
EP3959842A1 (en) 2022-03-02

Similar Documents

Publication Publication Date Title
KR102738475B1 (ko) 블록체인 네트워크에서 데이터 추출
US11449478B2 (en) Blockchain implemented data migration audit trail
US11741083B2 (en) Cross-shard private atomic commit
US11194961B2 (en) Systems, methods, and apparatuses for adding a document history graph and corresponding hash value to a blockchain in a cloud based computing environment
US11917088B2 (en) Integrating device identity into a permissioning framework of a blockchain
US20200242595A1 (en) Systems, methods, and apparatuses utilizing a blended blockchain ledger in a cloud service to address local storage
US11550796B2 (en) Coexistence mediator for facilitating blockchain transactions
US11804950B2 (en) Parallel processing of blockchain procedures
KR20230132878A (ko) 실행-오더-검증 블록체인 모델들에서 트랜잭션 취소들 감소
US11640392B2 (en) Blockchain endorsement agreement
US11375009B1 (en) Minimizing the impact of malfunctioning peers on blockchain
US11782823B2 (en) Automatically capturing weather data during engineering tests
US12061600B2 (en) API management for batch processing
US11743327B2 (en) Topological ordering of blockchain associated proposals
US12174827B2 (en) Trustless operations for blockchain networks
US20240380604A1 (en) Blockchain operation authorization and verification

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20210930

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240227

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20241030

PG1601 Publication of registration