KR102441087B1 - 신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치 - Google Patents

신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치 Download PDF

Info

Publication number
KR102441087B1
KR102441087B1 KR1020190066985A KR20190066985A KR102441087B1 KR 102441087 B1 KR102441087 B1 KR 102441087B1 KR 1020190066985 A KR1020190066985 A KR 1020190066985A KR 20190066985 A KR20190066985 A KR 20190066985A KR 102441087 B1 KR102441087 B1 KR 102441087B1
Authority
KR
South Korea
Prior art keywords
peer
chunk
content
network
present disclosure
Prior art date
Application number
KR1020190066985A
Other languages
English (en)
Other versions
KR20190138614A (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 KR20190138614A publication Critical patent/KR20190138614A/ko
Priority to KR1020220044516A priority Critical patent/KR20220051834A/ko
Application granted granted Critical
Publication of KR102441087B1 publication Critical patent/KR102441087B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0609Buyer or seller confidence or verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/1082Resource delivery mechanisms involving incentive schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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

Abstract

본 개시에 따르면 P2P(Peer-to-Peer) 네트워크에서 컨텐츠를 전송하는 방법이 제공된다. 개시된 발명은 요청 단말로부터 상기 콘텐츠의 k번째 청크의 전달(delivery) 요청을 수신하는 단계; 상기 요청 단말로 상기 콘텐츠의 k번째 청크를 전달하는 전달 확률을 산출하는 단계; 및 상기 전달 확률로 상기 콘텐츠의 k번째 청크를 상기 요청 단말로 전달하는 단계; 를 포함할 수 있다.

Description

신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치{Method and Apparatus for Proof of Delivery in a Trustless Network}
본 발명은 네트워크 서비스를 제공하는 방법 및 장치에 관한 것으로, 더욱 상세히는 신뢰할 수 없는 네트워크에서 데이터 전달(delivery)을 증명하는 방법 및 장치에 관한 것이다.
개인 컴퓨팅 장치와 네트워킹 기술의 발전으로, 피어의 리소스(예를 들어, CPU, 저장 장치, 대역폭)를 활용하여 블록체인 기반 P2P (peer-to-peer)전달(delivery) 네트워크를 구축하는 기술에 대해 많은 발명이 제안되고 있다. 블록체인 기반 P2P 전달 네트워크에서, 전달 네트워크를 유지하기 위해서는 각각의 피어가 콘텐츠를 전달하는 참여가 필수적이기 때문에 파일을 업로드하는 업로더 (또는 전송자)에게 적절한 인센티브를 주는 것이 중요하다. 그러나 신뢰할 수 있는 제3자가 없는, 즉 신뢰할 수 없는(trustless) 네트워크에서는 특정 피어가 네트워크에 업로드한 데이터의 양을 명시적으로 측정하고 추적하는 것이 어려울 수 있다. 헨닝 파그니아와 펠릭 가트너가 기술한 "신뢰할 수 있는 제3자 없는 공정한 교환의 불가능성"에 관한 기술 보고서는 신뢰할 수 있는 제3자 없이는 양자 간의 공정한 서비스의 교환(예컨대, 파일 전달 등)과 보상이 불가능하다는 것을 논증하고 있다.
많은 블록체인 기반의 콘텐츠 전달 프로젝트 또는 블록체인 기반의 저장소 프로젝트는 소위 소액 지불(micropayment)을 도입하여(leveraging) 이 근본적인 문제를 다루고 있다. 이러한 소액 지불 전략 하에서, 전송자는 콘텐츠를 여러 개의 청크로 분할하여 각각 전달하는데, 전송자는 수신자가 전송자에게 보상을 제공하는 한 청크를 계속하여 전달하고, 만약 수신자가 보상 제공을 중단한다면 전송자도 청크의 전달을 중지할 수 있다.
그러나 이러한 소액 지불 기법은 효과적이고 안전한 방법으로 대역폭에 대한 기여도를 보완하는 데 있어 충분하지 않을 수 있다. 예컨대, 소액 지불 기법에서 전송자는 수신자에게 청크를 보낸 후, 전달을 멈추고 보상을 기다린다. 전송자 입장에서는 소액 결제 진행 절차로 인해 업 링크 대역폭을 완전히 사용할 수 없기 때문에, 이러한 반복적인 전달 및 정지 프로세스는 네트워크의 전달 성능을 저하시킬 수 있다. 더욱이 데이터를 보낸 사람에게 보상을 거부하는 사기성 수신자(즉, 사기 피어)로 인해 전송자는 피해자가 될 수 있다. 이러한 경우에는 사기에 대한 처벌도 없고 전송자에 대한 보상도 없다. 전송자의 손실을 작게 만들려면, 각각의 소액 결제는 극히 작아야 하므로 전달 성능은 매우 낮아지게 될 것이다.
Henning Pagnia and Felix C Gartner, "On the impossibility of fair exchange without a trusted third party," Technical Report TUD-BS-1999-02, Darmstadt University of Technology, Germany, 1999. Protocol Labs, "Filecoin: A Decentralized Storage Network," Jul. 2017. Theta, "A Decentrailzed Video Delivery and Streaming Network," Nov. 2018. B. Cohen, "Incentives Build Robustness in BitTorrent," in Proceedings of the Workshop on Economics of Peer-to-Peer Systems (P2PECON2003),pp. 116121, Jun. 2003. Ethereum, https://www.ethereum.org/ K. Park, J. Kim, K. Cho, T. Kwon, Y. Choi, and S. Pack, "Waterfall: Video Distribution by Cascading Multiple Swarms," IEEE Journals on Selected Areas in Communications (JSAC), Vol. 31, No. 9, pp. 65-174, September 2013. A Vlavianos, M Iliofotou, and M Faloutsos, "BiToS: Enhancing Bit-Torrent for supporting streaming applications," in IEEE Global Internet, 2006.
본 개시에서는 소액 결제 기법에 대한 문제점을 해결하기 위해 전달 증명 기법(proof of delivery mechanism: PoD)을 제안한다.
전달 증명 기법(PoD)을 통해, 전송자의 전달은 신뢰할 수 있는 제3자가 없어도 다른 피어들을 통해 증명되고 입증될 수 있다. 또한, 사기는 네트워크에서 검출되고 차단될 수 있다. 예컨대, 사기 피어는 더 이상 콘텐츠를 효과적으로 다운로드 할 수 없게 된다. 더욱이, 신뢰 윈도우 메커니즘(trust window mechanism)을 통해 신뢰할 만한 수신자에게 소액 지불 양을 조정하여 향상된 성능을 제공할 수 있다.
본 개시의 일 특징에 따르면, P2P(Peer-to-Peer) 네트워크에서 컨텐츠를 전송하기 위해 전송 단말에서 수행되는 방법이 제공된다. 본 개시의 방법은 요청 단말로부터 상기 콘텐츠의 k번째 청크의 전달(delivery) 요청을 수신하는 단계; 상기 요청 단말로 상기 콘텐츠의 k번째 청크를 전달하는 전달 확률을 산출하는 단계; 및
상기 전달 확률로 상기 콘텐츠의 k번째 청크를 상기 요청 단말로 전달하는 단계; 를 포함할 수 있다.
본 개시의 다른 특징에 따르면, P2P(Peer-to-Peer) 네트워크에서 컨텐츠를 전송하기 위해 전송 단말에서 수행되는 방법이 제공된다. 본 개시의 방법은 요청 단말로부터 상기 콘텐츠의 k번째 청크의 전달(delivery) 요청을 수신하는 단계; 상기 요청 단말의 신뢰도를 산출하는 단계; 상기 신뢰도에 비례하여 상기 전송 단말의 상기 요청 단말에 대한 신뢰성 윈도우의 크기(L)를 조정하는 단계; 상기 요청 단말로부터 상기 콘텐츠의 k+1번째 청크의 전달 요청 내지 상기 콘텐츠의 k+L-1번째 청크의 전달 요청을 수신하고, 상기 요청 단말의 요청에 따른 상기 콘텐츠의 k번째 내지 k+L-1번째 청크를 상기 요청 단말로 전달하는 단계 - L은 양수 -; 를 포함할 수 있다.
일 실시예에서, 상기 요청 단말로 상기 콘텐츠의 k번째 청크를 전달하는 전달 확률을 산출하는 단계는 블록체인 네트워크의 블록체인 트랜잭션 레코드를 수신하여, 상기 블록체인 트랜잭션 레코드에 포함된 상기 요청 단말의 거래 정보를 기초로 상기 전달 확률을 산출할 수 있다.
일 실시예에서, 상기 요청 단말로 상기 콘텐츠의 k번째 청크를 전달하는 전달 확률을 산출하는 단계는 k번째 청크에 대한 청크 요청 확률(
Figure 112019058075740-pat00001
또는
Figure 112019058075740-pat00002
)을 기초로 산출할 수 있다.
일 실시예에서, 상기 거래 정보는 전송 단말 정보, 수신 단말 정보, 거래 금액 정보, 및 거래한 콘텐츠 정보를 포함할 수 있다.
일 실시예에서, 상기 요청 단말의 신뢰도를 산출하는 단계는 상기 요청 단말의 신뢰성 윈도우의 크기를 산출하는 단계를 포함하고, 상기 전송 단말에서의 상기 요청 단말의 신뢰성 윈도우의 크기는 요청 단말이 수신한 청크의 개수와 상기 요청 단말이 보상금을 지급하지 않은 청크의 개수를 뺀 값에 비례하여 커질 수 있다.
본 개시의 다른 특징에 의하면, P2P(Peer-to-Peer) 네트워크에서 컨텐츠를 수신하기 위해 수신 단말에서 수행되는 방법이 제공된다. 본 개시의 방법은 콘텐츠의 k번째 청크의 전달(delivery)을 요청하는 단계; 상기 콘텐츠의 k번째 청크를 수신하는 단계; 상기 콘텐츠의 k번째 청크에 대한 거래 정보를 생성하는 단계, - 거래 정보는 상기 k번째 청크를 전송한 전송 단말 정보, 상기 k번째 청크를 수신한 상기 단말 정보, 거래 금액 정보, 및 거래한 콘텐츠 정보를 포함함 -; 상기 거래 정보를, 블록체인 트랜잭션 레코드에 기록하도록 블록체인 네트워크로 전달하는 단계를 포함할 수 있다.
일 실시예에서, 상기 수신 단말은 블록체인 네트워크와 구별되는 콘텐츠 전송을 위한 P2P 네트워크의 피어일 수 있다.
본 개시의 다른 특징에 의하면, 하나 이상의 컴퓨터 판독가능 명령어를 저장한 컴퓨터 판독가능 기록매체가 제공된다. 상기 하나 이상의 컴퓨터 판독가능 명령어는, 컴퓨터에 의해 실행될 경우, 상기 컴퓨터로 하여금 상술한 방법 중 어느 하나의 방법을 수행할 수 있다.
본 개시에 의하면, 전송자의 전달은 신뢰할 수 있는 제3자가 없이도 다른 피어들을 통해 증명되고 입증될 수 있고 신뢰할 만한 수신자에게 소액 지불 양을 조정하여 향상된 성능을 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른, 블록체인 기반의 전달 관리 시스템의 전체 구성을 개념적으로 도시한 도면이다.
도 2는 본 개시의 일 실시예에 따른, 도 1의 각 분산 노드의 기능적 구성을 개략적으로 도시한 기능 블록도이다.
도 3은 본 개시의 일 실시예에 따른, 도 2의 각 분산 노드에 포함된 블록체인 분산원장 저장 모듈에 저장될 수 있는, 블록체인 및 그에 포함된 각 블록의 구성을 개념적으로 도시한 도면이다.
도 4는 본 개시의 일 실시예에 따라 4명의 피어(peer) 간에 콘텐츠 전달에 따른 트랜잭션 레코드를 도시하는 도면이다.
도 5는 본 개시의 일 실시예에 따라 피어 A가 특정 콘텐츠 객체의 청크 가용성을 비트 맵으로 도시하는 도면이다.
도 6은 본 개시의 일 실시예에 따라 피어 A의 비트맵을 도시하는 도면이다.
도 7은 본 개시의 일 실시예에 따라, 사기 피어가 10번째 청크에 대한 보상금 지급을 거절하는 경우 사기 피어의 검출 및 차단의 효과를 도시하는 그래프이다.
이하, 첨부 도면을 참조하여 본 발명의 실시예에 관하여 상세히 설명한다. 이하에서는, 본 발명의 요지를 불필요하게 흐릴 우려가 있다고 판단되는 경우, 이미 공지된 기능 및 구성에 관한 구체적인 설명을 생략한다. 또한, 이하에서 설명하는 내용은 어디까지나 본 발명의 일 실시예에 관한 것일 뿐 본 개시가 이로써 제한되는 것은 아님을 알아야 한다.
본 개시에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로 본 발명을 한정하려는 의도에서 사용된 것이 아니다. 예를 들면, 단수로 표현된 구성요소는 문맥상 명백하게 단수만을 의미하지 않는다면 복수의 구성요소를 포함하는 개념으로 이해되어야 한다. 본 개시에서 사용되는 "및/또는"이라는 용어는, 열거되는 항목들 중 하나 이상의 항목에 의한 임의의 가능한 모든 조합들을 포괄하는 것임이 이해되어야 한다. 본 개시에서 사용되는 '포함하다' 또는 '가지다' 등의 용어는 본 개시 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐이고, 이러한 용어의 사용에 의해 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하려는 것은 아니다.
본 발명의 실시예에 있어서 '모듈' 또는 '부'는 적어도 하나의 기능이나 동작을 수행하는 기능적 부분을 의미하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 또는 '부'는, 특정한 하드웨어로 구현될 필요가 있는 '모듈' 또는 '부'를 제외하고는, 적어도 하나의 소프트웨어 모듈로 일체화되어 적어도 하나의 프로세서에 의해 구현될 수 있다.
이하, 첨부된 도면을 참조하여, 본 발명의 실시예에 대해 구체적으로 설명하기로 한다.
도 1은, 본 개시의 일 실시예에 따른, 블록체인 기반의 전달 증명 관리 시스템(100)의 전체 구성을 개념적으로 도시한 도면이다. 도시된 바에 의하면, 전달 증명 관리 시스템(100)은 P2P 네트워크(120), 블록체인 네트워크(130)를 포함하고, P2P 네트워크(120)는 복수의 분산 노드(122), 및 통신망을 포함하며, 블록체인 네트워크(130)는 복수의 분산 노드(132) 및 통신망(134)을 포함한다. 도시된 바와 같이, 일 실시예에서, P2P 네트워크(120)와 블록체인 네트워크(130)는 통신망(134)을 통해 연결되어 있다.
본 개시의 일 실시예에 의하면, P2P 네트워크(120)는 통신망(134)을 통하여 서로 연결된 복수의 분산 노드(122)를 포함하는 임의의 유선 또는 무선 통신망일 수 있다. 본 개시의 일 실시예에 의하면, P2P 네트워크(120)는, 예컨대 TCP/IP 통신망 상에 구현된 P2P 분산 네트워크일 수 있다. 본 개시의 일 실시예에 의하면, P2P 네트워크(120)는, 예컨대 Wi-Fi망, LAN망, WAN망, 인터넷망 등에 구현된 P2P 네트워크일 수 있으며, 다만 본 개시가 이로써 제한되는 것은 아니다. 본 개시의 일 실시예에 의하면, P2P 네트워크(120)는, 제한 없이 모든 사용자가 참여할 수 있는 네트워크(예컨대, 이더리움 네트워크 등)일 수 있으며, 다만 본 개시가 이로써 제한되는 것은 아니다.
본 개시의 일 실시예에 의하면, P2P 네트워크(120)의 각 분산 노드(122)는 P2P 통신으로 콘텐츠 송수신할 수 있다. 각 분산 노드(122)는 다른 분산 노드(122)로부터 콘텐츠 전송 요청을 수신하고 통신망(134)을 통하여 해당 분산 노드(122)에 그 콘텐츠을 전달할 수 있다. 본 개시의 일 실시예에 의하면, 각 분산 노드(122)는, 블록체인 네트워크(130)의 분산 노드(132)로부터 배포된 각 블록체인 트랜잭션을 수신할 수 있다. 본 개시의 일 실시예에 의하면, 각각의 분산 노드(122)는, 수신된 트랜잭션 상의 트랜잭션 레코드를 분석할 수 있다.
본 개시의 일 실시예에 의하면, 복수의 분산 노드(122) 각각은, 소정의 프로토콜에 따라, 블록체인 네트워크(130) 상의 각 블록체인 트랜잭션의 기록을 위한 요청을 생성하여 블록체인 네트워크(130) 상의 분산 노드(132)에게 배포할 수 있다.
본 개시의 일 실시예에 의하면, 블록체인 네트워크(130)는 통신망(134)을 통하여 서로 연결된 복수의 분산 노드(132)를 포함하는 임의의 유선 또는 무선 통신망일 수 있다. 본 개시의 일 실시예에 의하면, 블록체인 네트워크(130)는, 예컨대 TCP/IP 통신망 상에 구현된 P2P 분산 네트워크를 포함할 수 있다. 본 개시의 일 실시예에 의하면, 블록체인 네트워크(130)는, 예컨대 Wi-Fi망, LAN망, WAN망, 인터넷망 등에 구현된 P2P 네트워크일 수 있으며, 다만 본 개시가 이로써 제한되는 것은 아니다. 본 개시의 일 실시예에 의하면, 블록체인 네트워크(130)는, 퍼블릭 블록체인 네트워크, 즉 제한 없이 모든 사용자가 참여할 수 있는 블록체인 네트워크(예컨대, 이더리움 네트워크 등)일 수 있으며, 다만 본 개시가 이로써 제한되는 것은 아니다.
본 개시의 일 실시예에 의하면, 블록체인 네트워크(130)의 각 분산 노드(132)는 각 분산 노드(132) 의해서 생성된 블록체인 트랜잭션을 수신하고 통신망(134)을 통하여 다른 분산 노드들(132)에 그 수신된 블록체인 트랜잭션을 배포할 수 있다. 본 개시의 일 실시예에 의하면, 각 분산 노드(132)는, 다른 분산 노드로부터 배포된 각 블록체인 트랜잭션을 수신 및 처리할 수 있다. 본 개시의 일 실시예에 의하면, 각각의 분산 노드(132)는, 수신된 트랜잭션 상의 프로그램 코드(예컨대, 소정의 스마트 계약에 관한 프로그램 코드)를 실행할 수 있다.
본 개시의 일 실시예에 의하면, 복수의 분산 노드(132) 각각은, 소정의 알고리즘에 따라, 블록체인 네트워크(130) 상의 각 블록체인 트랜잭션의 기록을 위한 블록을 생성(또는 채굴) 및/또는 검증할 수 있다. 본 개시의 일 실시예에 의하면, 소정의 시간 간격 동안에 각 분산 노드(132)를 통하여 블록체인 네트워크(130) 상에 배포된 블록체인 트랜잭션들은, 새로이 생성된 블록에 함께 저장될 수 있다. 본 개시의 일 실시예에 의하면, 분산 노드(132) 각각은, 소정의 알고리즘에 따라, 블록체인 네트워크(130)를 위한 블록체인(즉, 블록체인 분산 원장)의 적어도 일부를 저장할 수 있다.
본 개시의 일 실시예에 의하면, 복수의 분산 노드(132) 각각은, 소정의 프로토콜에 따라, P2P 네트워크(120) 상의 분산 노드(122)로부터 블록체인 트랜잭션의 기록을 위한 요청을 수신하여 블록체인 트랜잭션을 생성할 수 있다.
도 2는, 본 개시의 일 실시예에 따른, 도 1의 각 분산 노드(132)의 기능적 구성을 개략적으로 도시한 기능 블록도이다. 도시된 바에 의하면, 분산 노드(132)는, 트랜잭션 처리 모듈(202), 통신 모듈(204), 블록 생성/검증 모듈(206), 및 블록체인 분산원장 저장 모듈(208)을 포함한다.
본 개시의 일 실시예에 의하면, 트랜잭션 처리 모듈(202)은, 소정의 블록체인 트랜잭션을 수신하고, 그 수신된 트랜잭션을 블록체인 네트워크(130) 상의 다른 분산 노드들(132)에 배포할 수 있다. 본 개시의 일 실시예에 의하면, 트랜잭션 처리 모듈(202)은 블록체인 네트워크(130) 상의 다른 분산 노드들(132)에 의해 배포된 각 트랜잭션을 수신할 수 있다. 본 개시의 일 실시예에 의하면, 트랜잭션 처리 모듈(202)은, 수신된 각 트랜잭션을 처리(예컨대, 트랜잭션에 포함된 각 스마트 계약의 실행 등을 포함하며, 다만 본 개시가 이로써 제한되는 것은 아님)할 수 있다. 본 개시의 일 실시예에 의하면, 트랜잭션 처리 모듈(202)에 의해 수신 및 처리되는 블록체인 트랜잭션은, 예컨대 다른 분산 노드들(132)로부터 유래한 전달 거래 장부의 전달 기록 정보와 연관된 트랜잭션을 포함할 수 있다. 본 개시의 일 실시예에 의하면, 트랜잭션 처리 모듈(202)에 의해 수신 및 처리되는 트랜잭션은, 임의의 분산 노드(132)에 의해서 블록체인 네트워크(130) 상의 각 분산 노드들에 배포된, 블록체인 네트워크(130)를 통하여 처리될 기타 다양한 트랜잭션(예컨대, 해당 블록체인 네트워크(130) 상에서 지원되는 디지털 화폐의 거래 정보 또는 기타 스마트 계약 정보를 포함한 트랜잭션 등을 포함하며, 본 개시가 이로써 제한되지 않음)을 포함할 수 있다.
본 개시의 일 실시예에 의하면, 통신 모듈(204)은, 분산 노드(132)가 블록체인 네트워크(130) 상에서 소정의 프로토콜에 따라 다른 분산 노드들(132)과 통신할 수 있도록 동작할 수 있다. 본 개시의 일 실시예에 의하면, 통신 모듈(204)은, 블록체인 트랜잭션이 소정의 프로토콜에 따라 통신망(134)을 통해 블록체인 네트워크(110) 상에 배포되도록 할 수 있고, 아울러 통신망(134)을 통하여 다른 노드들(132)로부터 블록체인 네트워크(130) 상의 각종 정보를 수신하도록 할 수 있다.
본 개시의 일 실시예에 의하면, 블록 생성/검증 모듈(206)은, 블록체인 네트워크(130)를 위한 블록을 생성하고, 소정의 시간 간격 동안 블록체인 네트워크(130) 상에서 발생한 트랜잭션들을 모아서 적절한 헤더 정보와 함께 그 생성된 블록에 기록할 수 있다. 본 개시의 일 실시예에 의하면, 블록 생성/검증 모듈(206)은, 생성된 블록을 통신 모듈(204)을 통하여 블록체인 네트워크(130) 상에 공지할 수 있다. 본 개시의 일 실시예에 의하면, 블록 생성/검증 모듈(206)은, 블록체인 네트워크(130) 상에 공지된, 다른 분산 노드(132)에 의하여 생성된 블록에 대한 검증을 수행할 수 있다.
본 개시의 일 실시예에 의하면, 블록체인 분산원장 저장 모듈(208)은, 소정의 알고리즘에 따라, 블록체인 네트워크(130)를 위한 블록체인 데이터베이스(즉, 트랜잭션들의 이력을 모두 포함하는 분산 원장)의 적어도 일부를 저장할 수 있다. 본 개시의 일 실시예에 의하면, 블록체인 분산원장 저장 모듈(208)은, 또한, 소정의 알고리즘에 따라, 블록체인 네트워크(130) 상의 블록체인에 의해 유지 및 관리되는 스마트 계약에 관한 정보의 적어도 일부를 저장할 수 있으며, 다만 본 개시가 이로써 제한되는 것은 아니다.
도 3은, 본 개시의 일 실시예에 따른, 도 2의 각 분산 노드(132)에 포함된 블록체인 분산원장 저장 모듈(208)에 저장될 수 있는, 블록체인 및 그에 포함된 각 블록(300)의 구성을 개념적으로 도시한 도면이다. 도시된 바에 의하면, 블록체인은 복수의 블록을 포함하며, 각 블록(300)은 블록 헤더(302)와 복수의 트랜잭션 정보(304a-304n)를 포함할 수 있다.
본 개시의 일 실시예에 의하면, 블록 헤더(302)는, 이전 블록 헤더의 해시(hash) 값, 넌스(nonce) 값, 해당 블록(300)에 포함될 트랜잭션 정보들(304a-304n)의 머클루트, 블록(300)이 생성된 시간을 나타내는 타임스탬프, 해당 블록(300)의 채굴 난이도 등의 값을 포함할 수 있다. 본 개시의 일 실시예에 의하면, 블록(300)에 포함된 복수의 트랜잭션 정보(304a-304n)는, 소정의 시간 간격 동안, 도 1의 분산 노드들(132)로부터 블록체인 네트워크(130) 상에 배포된 복수의 트랜잭션 기록들일 수 있다. 본 개시의 일 실시예에 의하면, 블록(300)의 트랜잭션 정보(304a-304n)는, 블록체인 네트워크(130) 상에서 발생한 각 거래 기록에 관한 트랜잭션 정보를 포함할 수 있다. 본 개시의 일 실시예에 의하면, 블록(300)의 트랜잭션 정보(304a-304n)는, 분산 노드(132)에 의해 생성되어 분산 노드(132)를 통해서 블록체인 네트워크(130) 상에 배포된 트랜잭션 정보를 포함할 수 있다.
전달 증명(Proof of delivery: PoD )
PoD (proof of delivery) 메커니즘은 블록체인의 중요한 필라(pillar)를 근본으로 한다. 즉, PoD (proof of delivery) 메커니즘은 공개적으로 명백하고 검증가능한 분산된 원장을 기초로 한다. 전송자가 요청된 데이터를 수신자에게 전달하면, 수신자는 블록체인 상에서 해당 전달에 대한 트랜잭션 레코드(transaction record)를 발행함으로써 전송자에게 보상을 할 수 있다. 설명하면, 전송자와 수신자 간의 교환에 관한 트랜잭션 레코드는 전송자로부터 수신자에게 전달이 완료되었다는 것을 나타낼 수 있다.
본 개시의 일 실시예에서, PoD 메카니즘은 트랜잭션 레코드(transaction record)를 콘텐츠 전달의 증명으로 사용할 수 있을 뿐만 아니라 사기를 검출하고 차단(isolation)하기 위해서 사용할 수 있다.
본 개시의 일 실시예에서, PoD 메카니즘에서 콘텐츠 객체는 고정된 크기의 청크(chunks)로 분할될 수 있다. 여기서 청크는 P2P(Peer-to-Peer) 파일 공유 프로토콜, 예컨대 비트토런트(BitTorrent)에서 사용되는 청크와 같은 개념이다.
일 실시예에서, 블록체인 상의 각각의 거래기록에 짧은 메모를 사용할 수 있다.
본 개시의 일 실시예에서, PoD 메카니즘은 이더리움 블록체인을 이용할 수 있다. 일 실시예에서, 이더리움 트랜잭션 레코드의 입력 데이터 필드는 다음과 같다. 예를 들어, 트랜잭션 레코드는 "R이 S에게 4:K에 대해서 $0.1를 지불했다"와 같을 수 있는데, 이는 수신자인 R이 전송자인 S에게 콘텐츠 K의 청크 번호 4의 전달에 대해서 $0.1 보상금을 지불했다를 의미한다.
도 4는 본 개시의 일 실시예에 따라 4명의 피어(peer) 간에 콘텐츠 전달에 따른 트랜잭션 레코드를 도시하는 도면이다.
도 4에 도시된 바와 같이, 각각의 피어들의 과거 트랜잭션이 발생 순서대로 기록될 수 있다. 피어 A가 피어 B에게 콘텐츠 K의 첫번째 청크(1:K)를 요청하는 경우, 피어 B가 해당 청크(1:K)를 저장하고 있다면 피어 B는 피어 A에게 청크(1:K)를 전달할 수 있다. 피어 A가 피어 B로부터 해당 청크(1:K)를 수신한 경우, 피어 A는 트랜잭션(4)를 발행함으로써 피어 B에게 청크(1:K)에 대한 보상을 해야 한다. 결과적으로, 피어 B가 피어 A에게 청크(1:K)를 전달한 것은 트랜잭션 레코드 (4), A pays B $0.1 for 1:K,에 의해 증명될 수 있다.
네트워크 전체에 전파되는 블록체인 상의 트랜잭션 레코드에 기초하여, 각각의 피어들의 보상 히스토리는 다른 모든 피어에 의해 추적될 수 있다. 따라서, 피어의 청크 전달은 신뢰할 수 있는 제3자의 도움 없이도 입증되고 증명될 수 있다.
도 4에 도시된 바와 같이, 트랜잭션 레코드 (1), (2) 및 (4)를 추적함으로써 모든 피어는 청크 1:K가 피어 D, 피어 C, 피어 B의 순서로 전달되었다는 것을 인식할 수 있다.
사기 검출 및 차단
전송자가 요청 받은 청크를 전달하였음에도 불구하고 수신자가 전송자에게 보상금을 지불하지 않을 수도 있다. 이러한 경우, 사기 피어(또는 수신자)에게 적절한 조치가 필요하다. 본 개시의 일 실시예에서, PoD 메카니즘은 다음의 경우 네트워크로부터 사기 행위를 차단함으로써 사기에 대해 조치를 취할 수 있으나, 본 개시가 이에 한정되는 것은 아니다.
A. 순차 수신 시나리오
일 실시예에서, 피어는 현재 청크를 수신하고(retrieve) 보상금을 지불한 경우에만 다음 청크를 순차적으로 요청할 수 있다.
도 5는 본 개시의 일 실시예에 따라 피어 A가 특정 콘텐츠 객체의 청크 가용성을 비트 맵으로 도시하는 도면이다. 도 2에 도시된 비트 맵 상자에서 '1'은 청크가 수신되고 보상금이 지불되었다는 것을 의미하고, '0'은 청크가 아직 '완료'되지 않았다, 즉 수신되거나 보상금이 지불되지 않았다는 것을 의미한다.
일 실시예에서, 콘텐츠 객체가 N+1 개의 청크로 구성된 경우, i는 완료되지 않은 가장 작은 청크의 인덱스를 의미할 수 있고(
Figure 112019058075740-pat00003
), j는 피어가 요청하는 다음 청크의 인덱스를 의미할 수 있고(
Figure 112019058075740-pat00004
), N은 콘텐츠의 가장 큰 청크 인덱스를 의미할 수 있다.
도 5에 도시된 바와 같이, 순차적 검색 시나리오에 있어서, i이고 2이고, j는 i와 같을 수 있다.
특정 피어의 청크 가용성 비트맵은 피어의 트랜잭션 레코드를 추적함으로써 다른 피어에 의해 구성될 수 있다. 이는 특정 피어의 비트맵이 해당 피어의 블록체인 상에서 트랜잭션 레코드를 나타내기 때문이다. 따라서, 모든 피어는 도 5의 피어 A가 다음 청크인 청크 2(j=2)를 요청할 것이라는 것을 예상할 수 있다. 만약 피어 A가 청크 2가 아닌 다른 청크를 요청한다면, 요청을 받은 피어는 사기라는 것을 알 수 있다. 왜냐하면, 피어 A는 청크 3 또는 더 높은 인덱스의 청크를 요청하기 전에 청크 2에 대한 보상금을 지급해야 하는데, 트랜잭션 레코드(또는 현재의 비트맵)에는 청크 2에 대해 A의 보상금이 지급되었다는 이력이 나타나지 않기 때문이다(도 5의 비트 맵에서 청크 인덱스 2의 값이 '0'임).
요청받은 피어에 의해 어떤 피어가 사기꾼이라고 검출된 경우, 요청받은 피어는 사기꾼이라고 검출된 피어의 순차적인 요청을 무시할 수 있다. 네트워크 상의 다른 피어들 또한 사기꾼이라고 검출된 피어의 순차적인 요청을 무시할 수 있다. 이러한 과정을 통해 사기꾼 피어는 네트워크에서 차단될 수 있는데, 즉 더 이상의 콘텐츠를 수신할 수 없는데, 이러한 차단은 해당 피어가 요청받은 피어(콘텐츠를 전송한 피어)에게 전송에 대한 적절한 보상금을 지불할 때까지 지속될 수 있다. 이러한 사기 검출 프로세스는 어떠한 외부의 정보, 예컨대 중앙화된 정보국 또는 전체 평판 데이터베이스 없이 각각의 피어에 의해 자동적으로 수행될 수 있다.
B. 확률적 순차 수신 시나리오(Probabilistic Sequential Retrieval Scenario)
일 실시예에서, 피어들은 전달 성능을 향상시키기 위해 확률 순차 수신 모드로 설정될 수 있다. 일 실시예에서 피어는 스스로(locally) 각각의 청크 인덱스에 대한 청크 요청 확률(
Figure 112019058075740-pat00005
또는
Figure 112019058075740-pat00006
)을 계산할 수 있고, 계산 값에 기초하여 청크를 요청할 수 있다. 여기서 청크 요청 확률(
Figure 112019058075740-pat00007
)는 다음과 같이 계산될 수 있다.
[수학식 1]
Figure 112019058075740-pat00008
여기서
Figure 112019058075740-pat00009
는 0 <
Figure 112019058075740-pat00010
< 1 이고,
Figure 112019058075740-pat00011
는 정규화 상수 즉
Figure 112019058075740-pat00012
이다. 여기서 파라미터 i, j와 N은 앞서 서술한 바와 같다.
여기서,
Figure 112019058075740-pat00013
는 사기 검출률 및 피어의 전달 성능에 모두 영향을 미치는 주요 파라미터이다. 각각의 피어는 피어의 성능이나 전략에 기초하여 0에서 1사이에서
Figure 112019058075740-pat00014
값을 다양하게 설정할 수 있는데, 이하에서 더욱 상세하게 서술하겠다. 일 실시예에서, 모든 피어는
Figure 112019058075740-pat00015
값을 동일한 값으로 설정할 수 있다.
도 6은 본 개시의 일 실시예에 따라 피어 A의 비트맵을 도시하는 도면이다.
일 실시예에서, 도 6에 도시된 바와 같이, 콘텐츠 K의 0번째, 1번째, 3번째, 4번째, 6번째 및 12번째 청크가 확률적으로 수신될 수 있다.
피어 A의 청크 가용성은 도 3에 도시된 바와 같으며,
Figure 112019058075740-pat00016
는 0.7이다. i의 값이 2이기 때문에, 청크 5, 즉 j = 5의 요청 확률은 다음과 같이 계산될 수 있는데, 여기서
Figure 112019058075740-pat00017
는 1.27 이다.
[수학식 2]
Figure 112019058075740-pat00018
따라서, 피어 A는 0.19의 확률로 청크 5를 다른 피어들에게 요청할 수 있다.
네트워크에서 피어들에게 제공되는 정보 중 블록체인이 유일하게 신뢰가능한 정보를 제공한다. 모든 피어의 트랜잭션 레코드와 현재 청크 가용성은 블록체인 네트워크 상에서 투명하게 공유될 수 있다. 요청자(또는 잠재적 수신자)가 스스로 계산한 확률(
Figure 112019058075740-pat00019
)로 청크를 요청하면, 요청을 받은 피어(또는 잠재적 전송자)는 또한 수신되는 요청에 대한 확률(
Figure 112019058075740-pat00020
)을 계산할 수 있다. 요청된 청크의 확률(
Figure 112019058075740-pat00021
)에 기초해서, 요청을 받은 피어는 요청자의 요청을 받아들일 것인지 여부를 스스로 결정할 수 있다.
도 6에 도시된 바와 같이, 피어 A가 피어 B에게 콘텐츠(7:K)를 요청하는 경우, 피어 B는 피어 A가 확률(0.09)로 콘텐츠(7:K)를 요청한 것이라고 결정할 수 있다. 만약 피어 B가 손실에 민감하다면, 피어 B는 다음과 같이 추론할 수 있다.
손실에 민감한 B의 추론: 만약 피어 B가 콘텐츠(2:K)를 아직 받지 않은 경우, 피어 A는 우선 콘텐츠 (2:K)를 요청했어야 한다. 왜냐하면 콘텐츠 (2:K)를 요청할 확률(0.55)이 콘텐츠 (7:K)를 요청할 확률(0.09)보다 높기 때문이다. 그러나 피어 A는 현재 콘텐츠 (7:K)를 요청하고 있는데, 이는 피어 A가 실제로는 콘텐츠 (2:K)를 수신하고도 그에 대한 대가를 지불하지 않았다는 것(즉, 콘텐츠 (2:K)에 대한 트랜잭션 레코드가 없음)을 암시할 수 있다. 피어 A의 요청이 다소 의심쩍을 수 있으므로, 피어 B는 잠재적인 손실을 방지하기 위해서 피어 A의 콘텐츠 (7:K) 요청에 대해 응답하지 않을 수 있다. 다른 예로, 피어 C가 위험을 감수하는 성향을 가지는 경우, 피어 C는 피어 A에게 콘텐츠 (7:K)를 전송하고 A의 보상을 기다릴 수 있다.
다른 예에서, 만약 피어 A가 피어 B에게 콘텐츠 (13:K)를 요청하는 경우, 콘텐츠 (13:K)를 요청할 확률이 0.008로 매우 낮기 때문에, 만약 피어 B가 위험을 감수하는 성향을 가지는 피어일지라도, 피어 B는 피어 A를 사기꾼으로 간주할 수 있을 것이다. 왜냐하면, 피어 A가 콘텐츠 (13:K)를 요청하기 전에 콘텐츠 (2:K)를 요청했을 확률이 0.55 >> 0.008로 매우 차이가 크기 때문이다. 네트워크 상의 다른 피어들도 상기 사례와 비슷하게 동작할 수 있다.
따라서, 만약 피어 A가 콘텐츠 (2:K)에 대한 비용 지불을 계속해서 미룬다면, 피어 A는 콘텐츠 (2:K)와 근처에 있는 일부 청크를 받을 가능성은 있을지라도 결국에는 어떠한 피어도 피어 A의 요청에 응답하지 않을 것이다. 따라서, 피어 A가 PoD 메카니즘에 따라 모든 청크를 수신하기 위해서는 피어 A는 반드시 그에 따른 비용을 지불해야 한다. 그렇지 않으면, 피어 A는 네트워크 상에서 차단될 것이다.
이상 설명한 바와 같이, 0 <
Figure 112019058075740-pat00022
< 1 인 경우,
Figure 112019058075740-pat00023
는 네트워크 상에서 모두 동일한 값을 가질 필요는 없는데, 왜냐하면 사기 노드는 결국 PoD 메카니즘에 따라 네트워크에서 차단되기 때문이다.
손실에 민감한 피어나 공공 네트워크 상의 피어는
Figure 112019058075740-pat00024
를 낮은 값으로 설정하여 전송 성능을 감소시키는 희생을 하더라도 잠재적인 손실을 방지할 수 있다. 낮은
Figure 112019058075740-pat00025
값을 가지는 피어가 높은
Figure 112019058075740-pat00026
값을 가지는 피어보다 (1) 청크를 보다 순차적으로 요청하고 (2) 보다 보수적으로 응답하는 경향이 있기 때문에, 낮은
Figure 112019058075740-pat00027
값을 가지는 피어는 결과적으로 다운로드하는 청크 분포가 덜 임의적이다. 역으로, 일부 가끔식의 손실을 감수하더라도 보다 높은 전송 성능을 선호하는 피어는
Figure 112019058075740-pat00028
값을 높게 설정할 수 있다. 예컨대, 높은
Figure 112019058075740-pat00029
값은 신뢰성이 높은 네트워크에서 사용될 수 있는데, 신뢰성이 높은 네트워크란 잠재적인 사기 피어의 수가 작다고 예상되는 네트워크일 수 있다.
신뢰성 윈도우 크기 조정
PoD 메카니즘은 피어의 신뢰도를 분석하여 해당 피어의 전송 성능을 향상시킬 수 있다. 소액 결제는 반복적인 전송 및 정지 프로세스이며 이러한 과정은 전송 성능을 현저히 감소시킬 수 있다. 전송자가 전송할 많은 청크가 있더라도, 전송자는 수신자로부터 적절한 보상을 받을 때까지 전송을 정지해야 한다. 수신자가 사기 피어일 수도 있기 때문에 잠재적인 손실을 줄이기 위해서 각각의 전송과 송금의 단위는 매우 작아야 한다. 이러한 작은 단위의 전송은 대용량의 콘텐츠를 전송하는데는 매우 낮은 성능을 야기할 수 있다.
각각의 피어의 콘텐츠의 검색 히스토리는 블록체인 네트워크 상에서 추적될 수 있다. 특정 피어가 과거에 전송자에게 보상을 하지 않았던 적이 있을 수 있다. 즉, 트랜잭션 레코드는 해당 피어가 사기 피어였음을 나타낼 수 있다. 반면에, 다른 피어는 다운로드한 콘텐츠에 대해서 모든 비용을 지불했을 수 있다. PoD 메카니즘에서 신뢰도 분석을 수행함으로써, 다운로드한 콘텐츠에 대해서 모든 비용을 지불한 피어는 과거에 전송자에게 보상을 하지 않았던 적이 있는 피어에 비해 보다 신뢰할 수 있는 피어로 간주될 수 있다. 일 실시예에서, 신뢰도 분석은 외부의 다른 정보 없이 각각의 피어에 의해 자율적으로 수행될 수 있다.
Figure 112019058075740-pat00030
TCP 혼잡 윈도우(TCP congestion window) 메커니즘과 유사하게, PoD (전송자 측에서) 메카니즘은 각각의 수신자에 대한 신뢰성 윈도우를 도입할 수 있다. 앞서 기술한 알고리즘1은 피어의 신뢰성 윈도우 크기를 계산하는 방법을 설명할 수 있다. 신뢰성 윈도우의 기본 값은 1로 설정될 수 있고, 수신자의 신뢰도에 따라 증가할 수 있다.
일 실시예에서, 예컨대, 전송자가 요청자로부터 특정 콘텐츠의 k번째 청크 요청을 수신하는 경우, 전송자는 요청자의 신뢰도를 산출하고 산출된 신뢰도에 비례하여 요청자의 신뢰성 윈도우의 크기를 조정할 수 있다. 전송자는 신뢰성 윈도우의 크기(L, L은 양수)만큼 요청자에게 청크를 전송할 수 있는데, 즉 전송자는 요청자로부터 콘텐츠의 k+1번째 청크 내지 k+L-1번째 청크의 전달 요청 더 수신하고, 콘텐츠의 k번째 내지 k+L-1번째 청크를 요청자에게 전달할 수 있다.
블록체인 네트워크 상의 트랜잭션 레코드를 기반으로 하는 신뢰도 분석은 전송자의 선호도 또는 전략을 반영하여 다양한 방법으로 수행될 수 있다. 일 실시예에서, 전송자가 특정 수신자에 대한 신뢰성 윈도우의 크기를 설정함에 있어, 해당 수신자의 성공적인 개체 수신 횟수에서 실패한 객체 수신 횟수를 뺀 값에 비례하도록 윈도우 크기를 설정할 수 있다.
신뢰도 분석과 신뢰성 윈도우의 조정은 소액 결제 알고리즘의 전달 성능을 현저하게 향상시킬 수 있다. 전송자는 하나의 청크를 보낸 후에 전송을 정지하지 않고 신뢰성 윈도우의 사이즈까지 동시에 여러 청크를 전송할 수 있는데, 신뢰할만한 수신자가 사기 피어일 확률이 낮기 때문이다. 결과적으로, 전송 성능을 향상시키기 위해서라도 피어들이 적절하게 행동할만한 인센티브가 있는 것이다.
시뮬레이션 결과
일 실시예에서, PoD 메카니즘의 사기 검출과 차단의 효과를 시뮬레이션 할 수 있다. 시뮬레이션의 기본 파라미터는 다음과 같다. 네트워크는 100 개의 피어를 포함하며, 99 개는 일반적인 피어이고 1개는 전송자에게 보상을 거부하는 사기 피어이다. 모든 피어는 서버와 이웃 피어로부터 콘텐츠 객체를 수신할 수 있고, 콘텐츠 객체는 100개의 청크로 분할될 수 있다. 각각의 피어의
Figure 112019058075740-pat00031
값은 평균(
Figure 112019058075740-pat00032
)과 표준편차(
Figure 112019058075740-pat00033
)의 표준 정규분포를 따른다. 만약 평균이 0.8이고 표준편차가 0.2인 경우,
Figure 112019058075740-pat00034
이다.
도 7은 본 개시의 일 실시예에 따라, 사기 피어가 10번째 청크에 대한 보상금 지급을 거절하는 경우 사기 피어의 검출 및 차단의 효과를 도시하는 그래프이다.
도 7은 사기 피어가 10번째 청크의 보상금의 지급을 거절하는 경우의 시뮬레이션 결과를 도시한다. Y축은 과정이 반복되는 동안 사기 피어가 수신한 청크의 수이다.
Figure 112019058075740-pat00035
로 설정된 네트워크는 피어간 신뢰도가 낮은 네트워크로, 대부분의 피어가 매우 높은 위험 회피성을 가진다. 이러한 경우에, 사기 피어가 10보다 큰 인덱스의 청크를 요청할 수록
Figure 112019058075740-pat00036
는 급격하게 떨어질 수 있다. 결과적으로 사기 피어의 요청은 무시되고 사기 피어는 네트워크로부터 더이상의 청크를 수신하기 어려울 것이다. 다른 실시예에 있어서, 네트워크는
Figure 112019058075740-pat00037
로 설정될 수 있고, 사기 피어는 10번째 청크에 가까운 인덱스를 가진 청크를 25개 더 많이 수신할 수도 있다. 하지만 모든 경우에 있어서, 사기 피어는 10번째 청크에 대한 비용을 지불하지 않는 한 결국 네트워크에서 차단될 것이다. 이러한 결과는 PoD 메카니즘의 효과(사기 피어를 네트워크로부터 차단함)를 저해하지 않고도 각각의 피어가
Figure 112019058075740-pat00038
값을 조절하여 손실 회피의 정도를 조절할 수 있음을 보여줄 수 있다.
본 개시의 일 실시예에 따르면, PoD 메카니즘을 사용하여 피어가 콘텐츠를 공유하는 네트워크에 안전하고 효과적으로 참여할 수 있는 방법을 개시한다. PoD 메카니즘은 신뢰성 없는 네트워크에서 사기 피어를 검출하고 차단할 수 있다. 또한, PoD 메카니즘은 신뢰성 윈도우를 통해 신뢰할 수 있는 피어의 전송 성능을 향상시킬 수 있다. 따라서, 신뢰할 수 있는 피어는 전송 성능의 관점에서 인센티브를 받을 것이고, 반면 사기 피어는 불이익을 받을 것이다. 시뮬레이션 결과는 PoD 메카니즘이 사기 피어를 효과적으로 검출하고 차단할 수 있음을 증명하고 있다. 따라서, 상용 콘텐츠 전달 서비스에 PoD 메카니즘을 적용할 수 있을 것이다.
본원에 개시된 실시예들에 있어서, 도시된 구성 요소들의 배치는 발명이 구현되는 환경 또는 요구 사항에 따라 달라질 수 있다. 예컨대, 일부 구성 요소가 생략되거나 몇몇 구성 요소들이 통합되어 하나로 실시될 수 있다. 또한 일부 구성 요소들의 배치 순서 및 연결이 변경될 수 있다.
본 발명 및 그 다양한 기능적 구성 요소들은 특정 실시예들로 설명되었으나, 본 발명은 하드웨어, 소프트웨어, 펌웨어, 미들웨어 또는 이들의 조합으로 구현될 수 있으며, 시스템, 서브시스템, 구성 요소들 또는 이들의 서브 구성 요소들로 활용될 수 있음을 이해하여야 한다. 소프트웨어로 구현되는 경우, 본 발명의 요소들은 필요한 작업들을 수행하기 위한 명령어들/코드 세그먼트들이 될 수 있다. 프로그램 또는 코드 세그먼트들은 프로세서 판독가능 매체와 같은 머신 판독가능 매체, 컴퓨터 프로그램 제품 내에 저장될 수 있다. 머신 판독가능 매체 또는 프로세서 판독가능 매체는 머신(예컨대, 프로세서, 컴퓨터 등)에 의해 판독되고 실행 가능한 형태로 정보를 저장 또는 전송할 수 있는 임의의 매체를 포함할 수 있다.
이상에서는 본 발명의 다양한 실시예들에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예들에 한정되지 아니하며, 상술한 실시예들은 첨부하는 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양하게 변형 실시될 수 있음은 물론이고, 이러한 변형 실시예들이 본 발명의 기술적 사상이나 범위와 별개로 이해되어져서는 아니 될 것이다. 따라서, 본 발명의 기술적 범위는 오직 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.
당업자라면 알 수 있듯이, 본 개시가 본 명세서에 기술된 예시에 한정되는 것이 아니라 본 개시의 범주를 벗어나지 않는 범위 내에서 다양하게 변형, 재구성 및 대체될 수 있다. 본 명세서에 기술된 다양한 기술들은 하드웨어 또는 소프트웨어, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있음을 알아야 한다.
본 개시의 일 실시예에 따른 컴퓨터 프로그램은, 컴퓨터 프로세서 등에 의해 판독 가능한 저장 매체, 예컨대 EPROM, EEPROM, 플래시 메모리장치와 같은 비휘발성 메모리, 내장형 하드 디스크와 착탈식 디스크 같은 자기 디스크, 광자기 디스크, 및 CDROM 디스크 등을 포함한 다양한 유형의 저장 매체에 저장된 형태로 구현될 수 있다. 또한, 프로그램 코드(들)는 어셈블리어나 기계어로 구현될 수 있다. 본 개시의 진정한 사상 및 범주에 속하는 모든 변형 및 변경을 이하의 특허청구범위에 의해 모두 포괄하고자 한다.
120: P2P 네트워크
130: 블록체인 네트워크
122: P2P 네트워크 상의 분산 노드
132: 블록체인 네트워크 상의 분산 노드

Claims (9)

  1. P2P(Peer-to-Peer) 네트워크에서 콘텐츠를 전송하기 위해 전송 단말에서 수행되는 방법으로서,
    요청 단말로부터 상기 콘텐츠의 k번째 청크의 전달(delivery) 요청을 수신하는 단계;
    상기 요청 단말로 상기 콘텐츠의 k번째 청크를 전달하는 전달 확률을 산출하는 단계; 및
    상기 전달 확률로 상기 콘텐츠의 k번째 청크를 상기 요청 단말로 전달하는 단계; 를 포함하고,
    상기 요청 단말로 상기 콘텐츠의 k번째 청크를 전달하는 전달 확률을 산출하는 단계는 블록체인 네트워크의 블록체인 트랜잭션 레코드를 수신하여, 상기 블록체인 트랜잭션 레코드에 포함된 상기 요청 단말의 거래 정보를 기초로 상기 전달 확률을 산출하며, k번째 청크에 대한 청크 요청 확률(
    Figure 112022501862954-pat00052
    또는
    Figure 112022501862954-pat00053
    )을 기초로 산출하는 네트워크 서비스 제공 방법.
    여기서, 콘텐츠 N+1 개의 청크로 구성된 경우, i는 청크 전송 및 그에 대한 보상이 완료되지 않은 가장 작은 청크의 인덱스를 의미하고(
    Figure 112022501862954-pat00054
    ), j는 상기 요청 단말이 요청하는 다음 청크의 인덱스를 의미하고(
    Figure 112022501862954-pat00055
    ), N은 콘텐츠의 가장 큰 청크 인덱스이며,
    Figure 112022501862954-pat00056
    는 0 <
    Figure 112022501862954-pat00057
    < 1 인 임의의 값.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 거래 정보는 전송 단말 정보, 수신 단말 정보, 거래 금액 정보, 및 거래한 콘텐츠 정보를 포함하는 네트워크 서비스 제공 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 하나 이상의 컴퓨터 판독가능 명령어를 저장한 컴퓨터 판독가능 기록매체로서, 상기 하나 이상의 컴퓨터 판독가능 명령어는, 컴퓨터에 의해 실행될 경우, 상기 컴퓨터로 하여금 제1항 및 제5항 중 어느 하나의 방법을 수행하도록 하는, 컴퓨터 판독가능 기록 매체.
KR1020190066985A 2018-06-05 2019-06-05 신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치 KR102441087B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220044516A KR20220051834A (ko) 2018-06-05 2022-04-11 신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180064623 2018-06-05
KR1020180064623 2018-06-05

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220044516A Division KR20220051834A (ko) 2018-06-05 2022-04-11 신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20190138614A KR20190138614A (ko) 2019-12-13
KR102441087B1 true KR102441087B1 (ko) 2022-09-07

Family

ID=68769528

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020190066985A KR102441087B1 (ko) 2018-06-05 2019-06-05 신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치
KR1020220044516A KR20220051834A (ko) 2018-06-05 2022-04-11 신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220044516A KR20220051834A (ko) 2018-06-05 2022-04-11 신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치

Country Status (3)

Country Link
US (1) US11038958B2 (ko)
KR (2) KR102441087B1 (ko)
WO (1) WO2019235864A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210035098A1 (en) * 2019-07-31 2021-02-04 Theta Labs, Inc. Methods and systems for micropayment support to blockchain incentivized, decentralized data streaming and delivery
KR102315226B1 (ko) * 2020-03-16 2021-10-20 이정우 규칙 증명 방식의 합의 알고리즘 기반 블록체인 시스템 및 그 방법
CN112153112B (zh) * 2020-08-20 2023-08-18 西安链融科技有限公司 一种分布式文件共享系统嵌套激励方法、系统及应用
GB2619038A (en) * 2022-05-25 2023-11-29 Nchain Licensing Ag Coordinating peer-to-peer data transfer using blockchain

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005159646A (ja) * 2003-11-25 2005-06-16 Ntt Docomo Inc パケット通信監視装置、及びパケット通信監視方法
KR101252947B1 (ko) 2010-12-10 2013-04-15 한양대학교 산학협력단 비디오 청크 분포에 적응적인 푸쉬-풀 혼성 스트리밍 방법 및 장치
US20150067819A1 (en) * 2013-08-28 2015-03-05 Hola Networks Ltd. System and Method for Improving Internet Communication by Using Intermediate Nodes
US20170132625A1 (en) * 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for use of a blockchain in a transaction processing network

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2309660C (en) * 1997-11-13 2010-02-09 Hyperspace Communications, Inc. File transfer system
US6529932B1 (en) * 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
JP2005525714A (ja) * 2001-08-24 2005-08-25 ヴァーチャル ペイパー イーメディア ソリューションズ ゲームーベーハー デジタルコンテンツの配信、広告、支払、返金方法及びその装置。
EP1657672A1 (en) * 2004-11-10 2006-05-17 Sony Deutschland GmbH Method for providing digital payload data
US9411976B2 (en) * 2006-12-01 2016-08-09 Maidsafe Foundation Communication system and method
US8792512B2 (en) * 2007-06-07 2014-07-29 Intel Corporation Reliable message transport network
CN101715650B (zh) * 2007-06-28 2012-03-21 纽约市哥伦比亚大学信托人 机顶盒对等端辅助的视频点播
US20090138307A1 (en) * 2007-10-09 2009-05-28 Babcock & Brown Lp, A Delaware Limited Partnership Automated financial scenario modeling and analysis tool having an intelligent graphical user interface
US9037657B2 (en) * 2008-05-23 2015-05-19 The Trustees Of Columbia University In The City Of New York Systems and methods for peer-to-peer bandwidth allocation
US8752100B2 (en) * 2008-08-29 2014-06-10 At&T Intellectual Property Ii, Lp Systems and methods for distributing video on demand
US20100293097A1 (en) * 2009-05-14 2010-11-18 Pomeroy Jordan Peer-to-peer file sharing system with data accounting
US20150006895A1 (en) * 2009-06-01 2015-01-01 Maidsafe Foundation Distributed network system
US20110015968A1 (en) * 2009-07-17 2011-01-20 Carlson Alan L Automated media and content reporting system for broadcast media
US20130246233A1 (en) * 2010-10-26 2013-09-19 Gold Innovations, Llc Method for Virtual Currency Futures Transactions
WO2013192631A1 (en) * 2012-06-22 2013-12-27 Maltbie Dan System and method for secure, high-speed transfer of very large files
US9628344B2 (en) * 2012-12-13 2017-04-18 Level 3 Communications, Llc Framework supporting content delivery with reducer services network
AU2014324893B2 (en) * 2013-09-26 2020-05-14 William Knight Foster Providing targeted content based on a user's values
US10497037B2 (en) * 2014-03-31 2019-12-03 Monticello Enterprises LLC System and method for managing cryptocurrency payments via the payment request API
US11250493B2 (en) * 2014-03-31 2022-02-15 Monticello Enterprises LLC System and method for performing social media cryptocurrency transactions
US10200265B2 (en) * 2015-06-11 2019-02-05 Comcast Cable Communications, Llc Application peering
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device
CN107770115B (zh) * 2016-08-15 2021-01-05 华为技术有限公司 在对等网络中分发数字内容的方法和系统
US10594488B2 (en) * 2017-08-05 2020-03-17 Proclus Technologies Limited Method and system for implementing automatic transaction rebroadcasting for transient blockchains
EP3479327B1 (en) * 2017-09-12 2020-12-30 Northwestern University Blockchain distribution network
GB201715423D0 (en) * 2017-09-22 2017-11-08 Nchain Holdings Ltd Computer-implemented system and method
US11042934B2 (en) * 2017-11-13 2021-06-22 Bank Of America Corporation Crypto-machine learning enabled blockchain based profile pricer
WO2019113308A1 (en) * 2017-12-05 2019-06-13 Franchitti Jean Claude Active adaptation of networked compute devices using vetted reusable software components
US11196747B2 (en) * 2017-12-07 2021-12-07 Bank Of America Corporation Automated event processing computing platform for handling and enriching blockchain data
US10659217B2 (en) * 2018-01-05 2020-05-19 Bank Of America Corporation Blockchain-based automated user matching
US20200366495A1 (en) * 2018-01-29 2020-11-19 Ubiquicorp Limited Proof of majority block consensus method for generating and uploading a block to a blockchain
US11188897B2 (en) * 2018-02-13 2021-11-30 Bank Of America Corporation Multi-tiered digital wallet security
EP3665608B1 (en) * 2018-03-29 2022-05-11 NEC Corporation Method and system of preserving privacy for usage of lightweight blockchain clients
EP3785199A4 (en) * 2018-04-26 2022-01-19 The Assay Depot, Inc. DECENTRALIZED DATA VERIFICATION
US20190333030A1 (en) * 2018-04-30 2019-10-31 Bank Of America Corporation Blockchain-based digital token utilization
US11204939B2 (en) * 2018-07-18 2021-12-21 Bank Of America Corporation Data manifest as a blockchain service
WO2020041873A1 (en) * 2018-08-28 2020-03-05 Novera Capital Inc. Systems and methods for short and long tokens
US20200090090A1 (en) * 2018-09-13 2020-03-19 Accenture Global Solutions Limited Distributed ledger system for venture management
US20200167770A1 (en) * 2018-11-28 2020-05-28 Bank Of America Corporation Blockchain implementation across multiple organizations
US20200272619A1 (en) * 2019-02-21 2020-08-27 Fiducia DLT LTD Method and system for audit and payment clearing of electronic trading systems using blockchain database
US11416791B2 (en) * 2019-02-22 2022-08-16 American Express Travel Related Services, Inc. Optimizing user task schedules in a customer relationship management platform
US20200311734A1 (en) * 2019-03-26 2020-10-01 American Express Travel Related Services Company, Inc. Dynamic trust score
US11423065B2 (en) * 2019-04-29 2022-08-23 American Express Travel Related Services Company, Inc. Data indexing system using dynamic tags
US11949691B2 (en) * 2019-05-24 2024-04-02 International Business Machines Corporation Malicious peer identification
US11943237B2 (en) * 2019-05-24 2024-03-26 International Business Machines Corporation Malicious peer identification for database block sequence
US10771524B1 (en) * 2019-07-31 2020-09-08 Theta Labs, Inc. Methods and systems for a decentralized data streaming and delivery network
US20210035098A1 (en) * 2019-07-31 2021-02-04 Theta Labs, Inc. Methods and systems for micropayment support to blockchain incentivized, decentralized data streaming and delivery
US20210091926A1 (en) * 2019-09-25 2021-03-25 The Mitre Corporation Assessing permissioned blockchains
KR20210041404A (ko) * 2019-10-07 2021-04-15 삼성전자주식회사 전자 장치 및 그 전자 장치를 이용한 블록체인 주소 관리 방법
US20210110310A1 (en) * 2020-12-22 2021-04-15 Intel Corporation Methods and apparatus to verify trained models in an edge environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005159646A (ja) * 2003-11-25 2005-06-16 Ntt Docomo Inc パケット通信監視装置、及びパケット通信監視方法
KR101252947B1 (ko) 2010-12-10 2013-04-15 한양대학교 산학협력단 비디오 청크 분포에 적응적인 푸쉬-풀 혼성 스트리밍 방법 및 장치
US20150067819A1 (en) * 2013-08-28 2015-03-05 Hola Networks Ltd. System and Method for Improving Internet Communication by Using Intermediate Nodes
US20170132625A1 (en) * 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for use of a blockchain in a transaction processing network

Also Published As

Publication number Publication date
US11038958B2 (en) 2021-06-15
KR20190138614A (ko) 2019-12-13
WO2019235864A1 (ko) 2019-12-12
US20210084101A1 (en) 2021-03-18
KR20220051834A (ko) 2022-04-26

Similar Documents

Publication Publication Date Title
KR102441087B1 (ko) 신뢰가 없는 네트워크에서 데이터 전달을 증명하는 방법 및 장치
US11665246B2 (en) Methods and apparatus for incentivizing participation in fog networks
CN109246211B (zh) 一种区块链中的资源上传和资源请求方法
Meng et al. GeTrust: A guarantee-based trust model in chord-based P2P networks
WO2019200919A1 (zh) 基于即时通信消息记录的区块链处理方法、介质、装置和计算设备
JP2020525895A (ja) ブロックチェーンネットワークにおける効率的な伝播のための確率的リレー
KR102337760B1 (ko) 심층강화학습 기반 적응적 샤드 블록체인 네트워크 관리 장치 및 방법
US11184457B2 (en) Information-centric network data cache management
US20210326879A1 (en) Blockchain protocol and a blockchain network
Badreddine et al. Monetization using blockchains for IoT data marketplace
Shin et al. T-chain: A general incentive scheme for cooperative computing
CN108768672B (zh) 数据处理方法、装置及存储介质
Le et al. A lightweight block validation method for resource-constrained iot devices in blockchain-based applications
Chen et al. Sociallink: utilizing social network and transaction links for effective trust management in P2P file sharing systems
Cherupally et al. Lightweight and Scalable DAG based distributed ledger for verifying IoT data integrity
Reno et al. Solving blockchain trilemma using off‐chain storage protocol
Nwebonyi et al. Reputation-based security system for edge computing
CN111211876B (zh) 发送针对数据请求的应答消息的方法及装置、区块链系统
Park et al. Proof of delivery in a trustless network
Li et al. NFT content data placement strategy in P2P storage network for permissioned blockchain
CN112565104B (zh) 区块链系统的流量控制方法、装置、介质及电子设备
Gencer On scalability of blockchain technologies
Mighan et al. Prioritizing transaction delivery in Ethereum network
Youssef et al. A resilient micro-payment infrastructure: an approach based on blockchain technology
Zhang et al. ITF: A Blockchain System with Incentivized Transaction Forwarding

Legal Events

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