KR20210094484A - 가십 프로토콜을 통해 dag 합의 알고리즘을 구현하는 시스템 및 방법 - Google Patents

가십 프로토콜을 통해 dag 합의 알고리즘을 구현하는 시스템 및 방법 Download PDF

Info

Publication number
KR20210094484A
KR20210094484A KR1020210007909A KR20210007909A KR20210094484A KR 20210094484 A KR20210094484 A KR 20210094484A KR 1020210007909 A KR1020210007909 A KR 1020210007909A KR 20210007909 A KR20210007909 A KR 20210007909A KR 20210094484 A KR20210094484 A KR 20210094484A
Authority
KR
South Korea
Prior art keywords
node
information
given
event
dag
Prior art date
Application number
KR1020210007909A
Other languages
English (en)
Inventor
카슨 블레서 라스무쎈
Original Assignee
아이25에스 에이피에스
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 아이25에스 에이피에스 filed Critical 아이25에스 에이피에스
Publication of KR20210094484A publication Critical patent/KR20210094484A/ko

Links

Images

Classifications

    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures
    • 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
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 가십 프로토콜을 통해 DAG/해시 그래프 합의 알고리즘을 통해 정보를 교환하기 위한 컴퓨터 구현 방법에 관한 것으로, 이 방법은,
- 주어진 제1 노드(N1)가 주어진 제2 노드(N4)를 무작위로 선택하고 참조 정보(8)를 전송하도록 하는 단계;
- 참조 정보(8)에 기초하여 어떤 노드 이벤트가 다른 이벤트보다 앞에 있는지 결정하는 단계;
- 참조 정보(8)가 주어진 제1 노드(N1)의 이벤트가 주어진 제2 노드(N4)의 이벤트 앞에 있음을 의미하는 경우,
-- 그 다음 취소 정보(9)를 주어진 제1 노드(N1)로 전송하여 결과적으로 주어진 제1 노드(N1)가 주어진 제2 노드(N4)로 DAG-이벤트 정보를 전송하는 것을 방지하는 단계;
- 참조 정보(8)가 주어진 제2 노드(N4)의 이벤트가 주어진 제1 노드(N1)의 이벤트 앞에 있음을 의미하는 경우,
-- 그 다음 주어진 제1 노드(N1)가 DAG-이벤트 정보(6)를 주어진 제2 노드(N4)로 전송하도록 하는 단계를 포함하여서, 곧 네트워크를 통해 전파된다.

Description

가십 프로토콜을 통해 DAG 합의 알고리즘을 구현하는 시스템 및 방법{System and a method implementing a Directed Acyclic Graph (DAG) consensus algorithm via a gossip protocol}
본 발명은 특정 네트워크에 연결된 분산된 컴퓨터 노드들 사이에서, 특히 액션 또는 트랜잭션의 목록과 관련된 정보를 교환하는 분야에 관한 것이다.
본 발명은 가십 프로토콜을 통해 해시 그래프 합의 알고리즘과 같은 DAG (방향성 비순환 그래프, Directed Acyclic Graph) 합의 알고리즘을 구현하는 시스템 및 방법에 관한 것이다.
해시 그래프는 탈 중앙화 된 네트워크에서 합의에 도달하는 새로운 방법으로 당 업계에 알려져 있다. 종종 투표 알고리즘이라고 한다. 해시 그래프(Hashgraph)는 특정 DAG(Directed Acyclic Graph)이다.
해시 그래프의 목표는 주로 분배 시스템에서 노드 간의 합의에 도달하는 것이다. 해시 그래프 알고리즘은 비잔틴 일반적 문제(Byzantine Generals' Problem)를 해결하는 방법이다.
또한, 해시 그래프 알고리즘은 공격자가 네트워크를 종료하거나 네트워크를 동결시키는 것을 막음으로써, 합의에 도달하지 못하는 것을 막을 수있다.
본 발명의 한 가지 아이디어는 노드들 사이에서 정보를 교환하는 효율적인 방법뿐만 아니라, DAG 정보를 교환해야 하는 해시 그래프 또는 다른 DAG 시스템을 위한 지원 방법 및 지원 시스템을 갖는 것이다.
도 1은 당업계에서 개발된 바와 같은 해시 그래프를 개략적으로 나타낸다. 해시 그래프는 도 1에 수직으로 배열된 컴퓨터 노드 (NA, NB, NC, ND, NE)의 네트워크를 기반으로 한다. 각 컴퓨터 노드 (NA, NB, NC, ND, NE)는 원으로 표시된 이른바 이벤트 1을 기록할 수 있는데, 도 2 에 자세히 도시되어 있다. 이 이벤트는 일반적으로 정보/바이트 및 메모리의 시퀀스이며, 해시된다. 상기 이벤트는 노드에 의해 기록된다. 상기 이벤트는 네트워크에 배포될 정보로 구성된다. 상기 정보는 일반적으로 보안을 위해 해시된다. 따라서 해시 그래프를 사용하면 네트워크에 배포되는 보안 정보를 배포할 수 있다.
상기 이벤트는 노드에 의해 서명된다.
해시 그래프의 구현에서, 노드는 무작위로 다른 노드를 선택하고 통신에 대해 해시한 모든 정보를 전송한다. 이것은 정보가 네트워크를 통해 전파될 때까지 반복된다.
해시 그래프는 네트워크에서 무한한 수의 정보 전송을 의미한다. 또한 해시 그래프 알고리즘에서, 이벤트는 네트워크의 합의 타임 스탬프에 도달하기 위한 타임 스탬프를 항상 포함한다.
도 2를 참조하면, 상기 이벤트 정보는,
- 도 2에서 수직으로 표현된 자기-부모(self-parent) 노드로부터 수신된 자기-부모(2)로부터의 해시. 자기-부모(2)로부터의 해시는 자기-부모 노드의 메모리에 있는 이전 이벤트와 관련됨;
- 도 2에 대각선으로 표시된 다른 부모 노드로부터 수신된 "다른(other)" 부모(3)의 해시. 다른 부모(3) 노드의 해시는 다른 부모 노드의 메모리에 있는 이전 이벤트와 관련됨;
현재 이벤트(1i)의 정보; 및
현재 이벤트의 타임 스탬프(4)를 포함한다.
US 2017/308648 A1 US 2019/013934 A1
본 발명의 목적은 정보의 전송 횟수를 제한/감소시키고 정보의 계산, 저장 및 전송에서 컴퓨터 리소스(resources)의 사용을 감소시키는 것이다.
본 발명의 또 다른 일반적인 목적은 컴퓨터 노드들 사이에서 정보를 효율적으로 교환하고 노드들이 정보를 영원히 주고받는 무한 에코에 들어가는 것을 방지하는 것이다.
또 다른 목적은 노드를 보호하고 노드 간에 불필요한 정보를 전송하지 않고 노드 간에 공유해야 하는 정보를 쉽게 결정하는 것이다.
이러한 목적을 달성하기 위해 본 발명은 특정 네트워크에 연결된 분산 된 컴퓨터 노드들 간에 정보를 교환하는 컴퓨터 구현 방법에 관한 것으로, 해시 그래프 합의 알고리즘과 같은 DAG(Directed Acyclic Graph) 합의 알고리즘을 구현하는 방법에 관한 것이다. 가십 프로토콜에 대한 가십을 사용하여 다음 단계를 포함하는 방법이다.
- 주어진 제1 노드가 주어진 제2 노드를 무작위로 선택하고 참조 정보를 전송하도록 하는 단계;
상기 방법은 바람직하게는,
- 참조 정보를 기반으로 어떤 노드 이벤트가 다른 이벤트보다 앞에 있는지 결정하는 단계;
- 참조 정보가 주어진 제1 노드의 이벤트가 주어진 제2 노드의 이벤트 앞에 있음을 의미하는 경우,
-- 그 다음 취소 정보를 주어진 제1 노드에 전송하여 결과적으로 주어진 제1 노드가 주어진 제2 노드에 DAG-이벤트 정보를 전송하는 것을 방지하는 단계;
- 참조 정보가 주어진 제2 노드의 이벤트가 주어진 제1 노드의 이벤트 앞에 있음을 의미하는 경우,
-- 그 다음 주어진 제1 노드가 DAG-이벤트 정보를 주어진 제2 노드로 보내도록 하는 단계;
-- 그리고 바람직하게는, 주어진 제2 노드가 주어진 제1 노드에 DAG-이벤트 정보를 전송하도록 하는 단계;
- 다른 노드들에 대하여 위 단계가 적용되어서, 네트워크를 통해 DAG-이벤트 정보를 동기화하고 전파한다.
보다 정확하게는, 일 측면에 따르면, 방법은 다음 단계를 포함한다.
- 주어진 제2 노드가 주어진 제1 노드로부터 참조 정보를 수신하면,
주어진 제2 노드가 주어진 제1 노드에 취소 정보를 보내도록 하고,
주어진 제2 노드가 이전에 주어진 제1 노드에 참조 정보를 보낸 경우에는,
주어진 제1 노드가 주어진 제2 노드에 DAG-이벤트 정보를 보내지 않도록 한다.
"DAG-이벤트 정보(DAG-event information)"는 DAG의 이벤트와 관련하여 교환되는 정보를 의미한다. 특히, 정보 조각은 해시 포인터를 통해 연결된다. 이는 이벤트의 해시가 고유한 해시(지문)이고, 자기-부모 및 다른-부모 해시 지문이 이벤트에 포함되어 DAG의 이벤트 간에 고유한 식별자/포인터 역할을 함을 의미한다.
바람직하게는, 방법은 노드가 정보의 통신을 중지하도록 취소 정보를 통한 정보의 전송 횟수를 제한할 수 있다. 이는 정보의 계산, 저장 및 전송에서 컴퓨터 자원의 사용을 줄이는 것을 의미한다.
본 발명의 아이디어는 노드 간에 정보를 교환하는 효율적인 방법(가십에 관한 가십)을 갖는 것이다. 따라서 본 웨이브프론트(Wavefront) 방법은 DAG 정보를 교환해야하는 해시그래프 또는 기타 DAG 시스템에 대한 지원 시스템으로 사용된다.
또한, 참조/고도 번호로 표시되는 각 노드의 이벤트 체인 상태를 전송하여 정보의 수를 제한한다. 이러한 방식으로 노드는 이벤트 체인의 마지막 이벤트가 다른 노드 이벤트 체인의 뒤 또는 앞에 있는지 결정할 수 있다.
또한, 취소는 두 노드 사이의 무한 에코를 방지할 수 있다.
또한, 본 웨이브프론트 방식은 노드 간에 불필요한 정보를 전송하지 않고 "웨이브-프론트(wave-front)" 상태 (아래에서 자세히 설명됨)를 공유함으로써 노드를 쉽게 보호하고 노드 간에 공유해야 하는 정보를 결정할 수 있다.
개별적으로 취하거나 임의의 기술적으로 가능한 조합으로 결합된 방법의 다른 측면에 따르면 :
- 참조 정보는 노드 이벤트의 순서와 관련되며; 및/또는
- 노드 이벤트의 순서는 모든 이벤트의 세로 값을 추적하여 결정되며; 및/또는
- 노드 이벤트의 순서는 각 노드가 노드에서 생성된 각 이벤트에 대해 증가하는 고도(Altitude)라는 정수 값을 추적하도록 하여 결정되며; 및/또는
- 참조 정보는 해일을 통해 전송되며; 및/또는
- 취소 정보는 쇄파(Breaking-wave)를 통해 전송되며; 및/또는
- 주어진 제2 노드로부터 주어진 제1 노드로의 DAG-이벤트 정보의 두 번째 전송은 DAG-이벤트 정보의 제2 및 마지막 웨이브이며; 및/또는
- 상기 방법은 노드가 미리 결정된 정보 교환 시퀀스에 있지 않은 정보를 수신하고/하거나 노드가 이미 정보를 교환한 노드로부터 정보를 수신하는 경우 다른 취소 정보를 전송하는 단계를 포함한다.
본 발명은 또한 본 발명에 따른 방법의 단계를 수행하기 위한 수단을 포함하는 정보 교환 시스템에 관한 것이다.
보다 일반적으로, 본 발명은 특정 네트워크에 연결된 분산 된 컴퓨터 노드들 간에 정보를 교환하기 위한 시스템에 관한 것으로서, 이 시스템은 가십 프로토콜에 대한 가십을 사용하여 해시 그래프 합의 알고리즘과 같은 DAC(Directed Acyclic Graph) 합의 알고리즘을 구현하며, 시스템 구성은,
- 주어진 제1 노드가 주어진 제2 노드를 무작위로 선택하고 참조 정보를 전송 하도록하는 수단;
시스템은 바람직하게는,
- 참조 정보에 기초하여 어떤 노드 이벤트가 다른 이벤트보다 앞에 있는지 결정하기 위한 수단;
- 참조 정보가 주어진 제1 노드의 이벤트가 주어진 제2 노드의 이벤트 앞에 있음을 의미하는 경우,
주어진 제1 노드에 취소 정보를 보내는 수단,
결과적으로, 주어진 제1 노드가 주어진 제2 노드에 DAG-이벤트 정보를 전송하는 것을 방지하며; 및
- 참조 정보가 주어진 제2 노드의 이벤트가 주어진 제1 노드의 이벤트 앞에 있음을 의미하는 경우,
주어진 제1 노드가 주어진 제2 노드에 DAG-이벤트 정보를 전송하도록 하는 수단;
- 그리고 바람직하게는, 주어진 제2 노드가 주어진 제1 노드에 DAG-이벤트 정보를 전송하게 하는 수단;
...
- 다른 노드들에 대하여 위 수단이 적용되어서, 네트워크를 통해 DAG-이벤트 정보를 동기화하고 전파한다.
방법에 대해 위에서 언급한 이점은 방법을 구현하는 시스템에도 적용된다.
개별적으로 취하거나 임의의 기술적으로 가능한 조합으로 결합된 시스템의 다른 측면에 따르면:
- 참조 정보는 노드 이벤트의 순서와 관련되며; 및/또는
- 시스템은 노드 이벤트의 순서를 결정하기 위해 모든 이벤트의 세로 값을 추적하는 수단을 포함하며; 및/또는
- 시스템은 노드 이벤트의 순서를 결정하기 위해 노드에서 생성된 각 이벤트에 대해 증가하는 고도(Altitude)라는 정수 값을 각 노드가 추적하도록 하는 수단을 포함하며; 및/또는
- 시스템은 해일을 통해 기준 정보를 전송하는 수단, 및 쇄파를 통해 취소 정보를 전송하는 수단을 포함하고; 및/또는
- 시스템은 주어진 제1 노드와 주어진 제2 노드 사이의 DAG-이벤트 정보의 전송 수를 제한하는 수단을 포함하며; 및/또는
- 시스템은 노드가 미리 결정된 정보 교환 시퀀스에 없는 정보를 수신하는 경우 또 다른 취소 정보를 전송하기 위한 수단을 포함한다.
본 발명의 다른 목적은 하나 이상의 중앙 장치, 특히 하나 이상의 컴퓨터화 된 중앙 장치, 및 트랜잭션, 특히 컴퓨터화된 명령 장치를 구현하는 추가 명령 장치에 대한 커넥션을 포함하는 네트워크이며, 특히, 컴퓨터화된 명령 장치, 중앙 장치(들)은 본 발명 따른 시스템을 포함한다.
상술한 기술적 해결책에 의해서, 본 발명은 컴퓨터 노드들 사이에서 정보를 효율적으로 교환하고 노드들이 정보를 영원히 주고받는 무한 에코에 들어가는 것을 방지한다.
또한, 노드를 보호하고 노드 간에 불필요한 정보를 전송하지 않고 노드 간에 공유해야 하는 정보를 쉽게 결정할 수 있다.
도 1은 종래기술에 따른 방법에서 해시 그래프의 개략도이다.
도 2는 도 1의 해시 그래프에서 이벤트의 개략도이다.
도 3은 본 발명의 실시예에 따른 시스템의 개략도이다.
도 4는 본 발명의 일실시예에 따른 방법에서 해시 그래프의 개략도이다.
도 5는 본 발명에서 두 노드 사이의 정보 교환에 대한 상세한 설명이다.
본 발명은 이제 본 발명을 한정하지 않는 실시예의 설명 및 첨부된 도면에 기초하여 상세하게 제시될 것이다.
본 발명은 정보 교환에 관한 것이다.
본 발명은 가십 프로토콜에 관한 가십을 통한 해시 그래프 합의 알고리즘과 같은 가십에 대한 가십 프로토콜을 통해 DAG 합의 알고리즘을 구현하는 것을 포함한다.
본 발명의 수단은 가십 프로토콜을 통해 정보를 배포하여 특정 네트워크(5)의 다른 노드로부터 수신된 데이터에 대한 정보를 전송한다.
본 발명은 컴퓨터로 구현된 방법, 또한 대응하는 시스템(5a) 및 네트워크 (5)에 관한 것이다. 본 발명의 방법은 블록체인 거래 및 해시 그래프의 애플리케이션에 필요한 것과 같은 정보를 처리하고 교환할 수 있게 한다.
해시 그래프와 같은 DAG는 특정 네트워크에 연결된 분산 컴퓨터 노드 간에 정보를 교환하는데 사용된다. 정보는 보호되고 해시된다. 전송되는 DAG / 해시 그래프 정보를“DAG-이벤트 정보”라고 한다.
가십 프로토콜은 컴퓨터 노드가 메모리에 있는 정보를 서로에게 전송한다는 것을 의미한다.
본 발명의 방법은 앞에 있는 노드 이벤트 및 뒤에 있는 노드 이벤트를 결정하기 위해 노드 이벤트의 순서를 결정하는 단계를 포함한다.
실 예에서, 앞뒤 순서는 시간에 기초하지 않는다. 이 실시예는 시간 합의가 필요하지 않다. 바람직하게는 이것은 에코 컴퓨터 노드가 동시에 동의하는 문제를 방지한다.
이벤트의 순서를 결정하면 어떤 이벤트가 앞에 있는지, 어떤 이벤트가 뒤에 있는지 알 수 있다. 따라서 이벤트에 대한 정보가 더 정확하다. 이 결정은 바람직하게는 이벤트에서 노드의 타임 스탬프를 갖는 것으로 제한되지 않는다.
본 발명의 일실시예에 따르면, 노드 이벤트의 순서는 모든 이벤트의 세로 좌표 값(ordinate value)을 추적함으로써 결정된다. 바람직하게는, 세로 좌표 값을 사용하면 에코 컴퓨터 노드가 동시에 동의하는 문제를 피할 수 있다.
특히, 노드 이벤트의 순서는 노드에서 생성되는 이벤트마다 증가하는 고도(Altitude)라는 정수 값을 각 노드가 추적하도록 함으로써 결정된다. 고도는 정보 처리에 중요한 역할을 한다.
본 발명의 방법의 다른 단계에서, 주어진 제1 노드(N1)는 주어진 제2 노드 (N4)를 무작위로 선택하고 네트워크(5)에서 DAG-이벤트 정보(6, 7)를 전송할 수 있다.
네트워크(5)의 모든 노드(N0, N1, ..., N5, ...)는 DAG-이벤트 정보(6, 7)가 네트워크 (5)에서 전파될 때까지 진행한다.
본 발명은 DAG-이벤트 정보의 일부 전송을 방지하면서 관련 정보가 네트워크 (5)에서 전파되는 것을 목적으로 한다.
본 발명에 따르면, 상기 방법은 주어진 제1 노드(N1)가 주어진 제2 노드(N4)를 무작위로 선택할 때, 주어진 제1 노드(N1)가 임의의 DAG-이벤트 정보(6, 7)를 전송하기 전에 주어진 제2 노드(N4)에게 특정 참조 정보(8)를 전송하도록 하는 단계를 포함한다. 참조 정보의 전송을 해일(Tidal-wave)이라고 할 수 있습니다. 해일(Tidal-wave)은 정보의 흐름이다.
"해일(Tidal-wave)"은 각 노드에 대한 고도 값을 정의할 수 있다. 각 노드는 이벤트-DAG를 추적한다. 즉, 각 노드에는 각 노드에 대해 노드가 알고 있는 현재 고도가 있다.
특히, 참조 정보(8)는 노드 이벤트의 순서와 관련된다. 보다 구체적으로, 참조 정보(8)는 이전 고도, 여기서 각 노드에 대한 모든 고도 목록을 포함한다.
또한, 본 발명에 따르면, 상기 방법은 소정의 조건하에 상기 주어진 제1 노드(N1)에 취소 정보(9)를 전송하여 상기 주어진 제1 노드(N1)로부터 주어진 제2 노드(N4)로의 DAG-이벤트 정보(6, 7)의 추가 전송을 방지하는 단계를 포함한다. 취소 정보(9)의 전송은 쇄파(Breaking-wave)라고 할 수 있다. 쇄파(Breaking-wave)는 노드가 초기 상태로 돌아가기 위해 응답으로 전송되는 정보의 흐름이다.
취소 정보(9)는 주어진 제2 노드(N4)가 주어진 제1 노드(N1)로부터 참조 정보(8)를 수신할 때, 참조 정보(8)를 고려할 때, 주어진 제2 노드(N4)의 이벤트가 주어진 제1 노드(N1)의 이벤트보다 앞에 있지 않다면 송신된다. 이것은 고도를 분석할 때 쉽게 이루어진다.
취소 정보(9)는 바람직한 실시예에서 제2 노드(N4)에서 제1 노드(N1)로 직접 이동할 수 있다.
방법은 취소 정보의 결과로, 주어진 제1 노드(N1)가 주어진 제2 노드(N4)로 DAG-이벤트 정보를 전송하는 것을 방지하는 단계를 더 포함한다.
다시 말해서, 주어진 제2 노드(N4)는 주어진 제1 노드(N1)에 취소 정보를 전송하여 주어진 제1 노드(N1)가 주어진 제2 노드(N4)에 DAG-이벤트 정보를 전송하지 않는다.
바람직하게는, 방법은 노드가 정보의 통신을 중지하도록 취소 정보를 통해 트랜잭션 수를 제한할 수 있다. 이것은 정보의 계산, 저장 및 전송에서 컴퓨터 자원(resources)의 사용 감소를 의미한다.
참조 정보(8)의 관점에서, 주어진 제2 노드(N4)의 이벤트가 주어진 제1 노드 (N1)의 이벤트보다 앞에 있으면, DAG-이벤트 정보의 전송은 계속된다.
특히, 주어진 제2 노드(N4)는 메모리에 있는 이벤트를 포함하는 DAG-이벤트 정보를 주어진 제1 노드(N1)로 전송한다. DAG-이벤트 정보의 이러한 최초 전송은 제 1-웨이브(6, First-wave )이라고 할 수 있다. 제1-웨이브는 당업자에게 알려진 정보의 흐름이다. 제1-웨이브(6)의 DAG-이벤트 정보는 주어진 제2 노드(N4)가 메모리에 갖는 모든 이벤트의 목록을 포함한다.
더욱이, 특히, 주어진 제1 노드(N1)가 주어진 제2 노드(N4)로부터 DAG-이벤트 정보를 수신한 후에, 주어진 제1 노드(N1)는 메모리에 있는 이벤트를 포함하는 DAG-이벤트 정보를 주어진 제2 노드(N4)로 전송할 수 있다. DAG-이벤트 정보의 이 두 번째 전송을 제2-웨이브(7, Second-wave)라고 할 수 있다. 제2-웨이브는 당업자에게 알려진 정보의 흐름이다.
제1 및 제2 웨이브 후에, 주어진 제1 노드(N1)와 주어진 제2 노드(N4) 사이의 정보 교환이 중지된다.
이것은 전송되는 정보의 무한 에코를 피하는 두 번째 방법이다. 즉, 제2 웨이브가 수신/송신되면 이 노드 아이디(node-id)에 대한 웨이브 상태가 초기 상태로 돌아간다.
바람직한 실시예에 따르면, 상기 방법은 노드가 미리 결정된 정보 교환 시퀀스, 특히 첫 번째 참조 정보(8)의 시퀀스, DAG-이벤트 정보의 제1 웨이브(6)와 제2 웨이브(7)에 없는 정보를 수신하는 경우 또 다른 (제 2) 취소 정보를 전송하는 단계를 포함한다. 취소 정보는 특히 이전과 동일한 유형이지만, 예를 들어 주어진 제2 노드(N4)가 처음에 제2 웨이브를 수신하면 트리거된다.
다른 실시예에 따르면, 방법은 노드가 이미 정보를 교환한 노드로부터 정보를 수신하면 다른 (제 3) 취소 정보를 전송하는 단계를 포함한다. 취소 정보는 특히 이전과 동일한 유형이지만, 예를 들어 주어진 제2 노드(N4)가 나중에 제1 노드 (N1)로부터 다른 참조 정보(8)를 수신하면 트리거된다. 바람직하게는, 이러한 단계는 전송과 관련된 중복성/에코를 추가로 제한한다.
본 발명은 또한 상술한 방법을 구현하기 위한 시스템(5a)에 관한 것이다. 시스템(5a)은 컴퓨터화된 시스템이며 위에서 설명된 방법을 구현하도록 구성된 고유 하드웨어 및 소프트웨어 모듈을 포함한다. 이는 웨이브프론트(Wavefront) 시스템 (5a)이라고 할 수 있다.
상기 시스템(5a)은 가십 프로토콜에 대한 가십을 통해 DAG/해시 그래프 합의 알고리즘을 구현하여, 특정 네트워크에 연결된 분산된 컴퓨터 노드 간에 정보를 교 할 수 있게 한다.
상기 시스템(5a)은 앞에 있는 노드 이벤트와 뒤에 있는 노드 이벤트를 결정하기 위해 노드 이벤트의 순서를 결정하는 수단;
- 주어진 제1 노드(N1)가 주어진 제2 노드(N4)를 무작위로 선택하고 참조 정보(8) 및 적용 가능한 경우 DAG-이벤트 정보(6, 7)를 전송하기 위한 수단,
...
- 네트워크(5)에서 DAG-이벤트 정보(6, 7)를 전파하는 수단을 포함한다.
일 측면에 따르면, 상기 시스템(5a)은,
- 주어진 제2 노드(N4)가 주어진 제1 노드(N1)에 취소 정보를 전송하도록 하기 위한 수단,
주어진 제2 노드(N4)가 주어진 제1 노드(N1)로부터 참조 정보를 수신하면,
주어진 제2 노드(N4)가 이전에 주어진 제1 노드(N1)에 참조 정보를 보냈다면,
- 결과적으로, 주어진 제1 노드(N1)가 주어진 제2 노드(N4)로 DAG-이벤트 정보를 전송하는 것을 방지하기 위한 수단을 포함한다.
바람직하게는, 상기 시스템(5a)은 노드가 미리 결정된 정보 교환 시퀀스에 없는 정보를 수신하는 경우; 및/또는 노드가 이미 정보를 교환한 노드로부터 정보를 수신하는 경우 다른 취소 정보를 전송하는 수단을 포함한다.
방법에 대해 위에서 상술한 이점은 방법을 구현하는 시스템에도 적용된다.
본 발명의 또 다른 목적은 하나 이상의 중앙 장치(들) (10), 특히 하나 이상의 컴퓨터화된 중앙 장치, 및 트랜잭션, 특히 컴퓨터화된 트랜잭션을 구현하는 추가 명령 장치(11)에 대한 커넥션(12)을 포함하는 네트워크이며, 상기 중앙 장치(들)은 전술한 바와 같은 시스템(5a)을 포함한다. 이를 웨이브프론트(Wavefront) 네트워크라고 할 수 있다. 네트워크는 인터넷을 통해 추가적인 명령 장치에 연결될 수 있다.
방법 및 시스템(5a)에 대해 상술한 이점은 대응하는 시스템(5a)을 포함하는 네트워크(5)에도 적용된다.
실시예(Example)
실시예는 도 4 및 5에 상세히 설명되어 있다.
도 4는 네트워크 노드들(N0, N1, N2, ..., N5) 사이의 정보 흐름을 나타내는 가십 정보의 해시 그래프를 나타낸다.
한정된 시간 내에 네트워크의 모든 노드는 동일한 이벤트-DAG를 구축할 수 있다.
각 수직선은 컴퓨팅 노드를 나타내고 각 원은 이벤트를 나타낸다. 이벤트 사이의 선은 노드 간의 이벤트 통신을 나타낸다.
각각의 노드에서만 볼 수 있는 이벤트는 선이 끊어지지 않은 흰색 원 안에 있다. 두 개 이상의 노드에 표시되는 이벤트는 점선이 있는 흰색 원 안에 있다. 각각의 노드의 마지막 이벤트는 단색 원 안에 있다.
생성할 마지막 이벤트는 점이 있는 원(dotted circle)이다.
해시 그래프 알고리즘은 노드 간에 정보를 전파하기 위해 "가십에 관한 가십(gossip about gossip)"이라는 가십 프로토콜을 사용한다. 이것은 주어진 제1 노드(N1)는 알고 있는 모든 통신 정보를 무작위로 선택된 주어진 제2 노드(N4)로 전송함을 의미한다. 이를 통해 노드(N4)는 노드(N1)과 동일한 해시 그래프를 구성할 수 있다.
본 발명의 네트워크(5)에서, 웨이브프론트(Wavefront)라는 프로토콜은 두 노드 사이에서 정보를 교환하는 데 사용되며, 노드 N1과 N4는 그래프의 상태를 교환하기 위해 3번만 통신하면 된다.
각 노드는 고도(Altitude)라고 하는 정수 값을 추적한다. 노드가 생성한 각 이벤트에 대해 고도가 하나씩 증가한다. 각 노드는 네트워크의 각 노드에 대한 현재 고도 보기(view of Altitude)를 저장한다.
두 노드 사이에서 고도에 대한 정보를 교환함으로써, 두 노드는 어느 이벤트가 앞에 있는지 파악할 수 있다.
어떤 이벤트가 현재 이벤트이고, 수신된 이벤트가 차감된 것인지를 결정하기 위해 이 값이 0보다 크다는 것은 현재 이벤트가 수신된 이벤트 앞에 있다는 것을 의미하고 그 반대의 경우도 마찬가지이다.
Figure pat00001
수신된 이벤트가 현재 이벤트 앞에 있는 경우.
웨이브프론트(Wavefront) 정보 교환에는 4가지 상태가 있다.
1. 노드 N1은 노드 N4를 임의로 선택하고 각 노드에 대해 마지막으로 알려진 고도 목록을 보낸다. 이 상태를 해일(Tidal-wave)이라고 한다.
2. 노드 N4는 노드 N1에서 해일(Tidal-wave)을 수신한다. 해일을 기반으로, 노드 N4의 이벤트가 노드 N1의 이벤트 앞에 있지 않으면 노드 N4가 쇄파(Breaking-wave)라고 하는 것을 노드 N1에 전송한다. 그렇지 않으면, 노드 N4는 노드 N1의 해일 앞에 있는 모든 이벤트 목록을 반환한다. 이 상태를 1차-웨이브(first-wave)라고 한다.
3. 노드 N1이 노드 N4로부터 1차-웨이브를 받으면 노드 N4 앞에 있는 모든 이벤트 목록을 반환한다. 이 상태에 도달하면 웨이브프런트 교환이 종료된다.
4. 노드 N1 또는 노드 N4가 쇄파(Breaking-wave)를 수신하면 웨이브프론트 통신이 끊어진다.
상태 2와 관련하여, 대안적으로 또는 조합하여, 노드 N4가 이미 이전의 해일을 통해 노드 N1과 정보를 교환했다면, 노드 N4는 쇄파를 보낼 것이다. 또한, 대안 적으로 또는 조합하여, 노드 N4가 노드 N1로부터 제2-웨이브를 처음 수신했다면, 노드 N4는 쇄파를 보낼 것이다.
이것은 양 노드가 정보를 영원히 주고받는 무한 에코로 들어가는 것을 방지한다.
네트워크에서, 노드는 종종 많은 동시 웨이브프론트 연결을 가질 것이고, 따라서 때때로 다른 노드로부터 동일한 이벤트 패키지를 수신할 것이다. 이는 수신한 중복 이벤트를 간단히 삭제할 것이다.
도 4 및 5의 예는 이벤트를 예시하고 고도 값이 표시된다.
노드 N1은 노드 N4에 동기화된다. 이벤트 b5 (색상)는 노드 N1에 의해 생성 된 마지막 이벤트이며 b5에 의해 알려진 모든 이전 이벤트는 점선 아래에 있다.
이벤트 e5 (색상)는 노드 N4에 의해 생성된 마지막 이벤트이며, 이 이벤트에 의해 알고 있는 모든 이전 이벤트는 점선 아래에 있다.
b5와 e5가 알고 있는 모든 이벤트는 점선 원으로 그려진다.
노드 N1의 웨이브프론트 (점선으로 표시됨)는 최근에 알려진 이벤트의 모든 고도 목록이다.
Figure pat00002
파란색 점선으로 표시된 노드 N4에 대해서도 동일하다.
Figure pat00003
통신 단계는 다음과 같다.
제1 노드(N1)는 도면의 맨 아래에서 아이들(idle) 상태에 있다. 제1 노드(N1)는 제2 노드(N4)를 향한 가십을 시작하고 초기 상태 I 로 이동한다.
1. 초기 웨이브프론트(Wavefront) :
노드 N1은 노드 N4에 연결하고 웨이브프론트 W1, b5 를 노드 N4로 보낸다.
이 메시지는 해일 유형으로 표시된다. 이로 인해 노드 N4는 아이들 상태에서 해일 상태 T 로 이동한다.
2. 해일 유형으로 표시된 메시지가 수신된 경우:
노드 N4는 웨이브프론트(Wavefront)를 수신하고 웨이브프론트 W4, e5 와 비교하여 W1, b5 앞에 있는 모든 이벤트를 수집한다. 이는 이벤트 e3, e4, e5, f3 및 f4가 노드 N1로 반환됨을 의미한다.
이 메시지는 제1-웨이브 형식으로 표시된다. 노드 N1이 제1-웨이브 상태 F 가 된다.
3. 제1 웨이브(First-wave)라고 표시된 메시지가 수신된 경우:
노드 N1은 노드 N4로부터 웨이브프론트를 수신하고 노드 N1에 의해 알려지지 않은 이벤트를 저장한다.
수신된 웨이브프론트는 그것의 웨이브프론트와 비교되고 수신된 웨이브프론트 앞의 이벤트는 수집되어 노드 N1으로 반환된다.
이 예시에서 수집된 것은 a1, b1, b2, b4, b5, c2, c3 및 d3이다.
이 메시지는 제2-웨이브 형식으로 표시된다. 이는 노드 N4를 제2-웨이브 상태 S 로 만든다.
노드 N4가 이미 노드 N1에 제1-웨이브의 메시지를 전송한 경우, 노드 N4는 쇄파 유형으로 표시된 메시지를 노드 N1에 보내고 노드 N1과의 통신 상태를 없음으로 설정한다.
4. 제2 웨이브(Second-wave)로 표시된 메시지가 수신된 경우:
이벤트가 노드 N4에 알려지지 않은 경우 이벤트가 저장된다.
5. 쇄파(Breaking-wave)라고 표시된 메시지가 수신된 경우:
수신된 채널의 이 통신 상태는 없음으로 설정된다.
이 예시의 통신 흐름은 도 5에 도시되어 있다.
이 실시예에서, 해일(8)은 고도 W1, b5 = [-3, -2,1, -10,2]의 목록을 포함한다.
제1-웨이브(6)는 고도 W4, e5 = [-4, -6, -1, -2,3,4]의 목록과 이벤트 1의 목록: {e3, e4, e5,f3, f4}을 포함한다.
제2-웨이브(7)는 이벤트 1의 목록: {a1, b1, b2, b4, b5, c2, c3, d3}을 포함한다.
1i: 현재 이벤트 2: 자기-부모
3: 다른 부모 4: 타임 스탬프
5: 네트워크 5a: 시스템
6: 제1-웨이브 7: 제2-웨이브
8: 해일 9: 취소 정보
10: 중앙 장치(들) 11: 명령 장치
12: 커넥션

Claims (15)

  1. 특정 네트워크에 연결된 분산된 컴퓨터 노드들 간에 정보를 교환하는 컴퓨터 구현 방법이며, 가십 프로토콜에 대한 가십을 이용하여 해시 그래프 합의 알고리즘과 같은 DAG(Directed Acyclic Graph) 합의 알고리즘을 구현하는 방법으로서, 상기 방법은,
    - 주어진 제1 노드(N1)가 주어진 제2 노드(N4)를 무작위로 선택하고 참조 정보(8)를 전송하는 단계를 포함하며;
    특징이 되는 방법은,
    - 상기 참조 정보(8)에 기초하여 어떤 노드 이벤트가 다른 노드(N1) 앞에 있는지 결정하는 단계;
    - 상기 참조 정보(8)가 주어진 제1 노드(N1)의 이벤트가 주어진 제2 노드 (N4)의 이벤트 앞에 있음을 의미하는 경우,
    -- 이 경우에는 상기 취소 정보(9)를 주어진 제1 노드(N1)로 전송하여, 결과적으로 주어진 제1 노드(N1)가 주어진 제2 노드(N4)로 DAG-이벤트 정보를 전송하는 것을 방지하며,
    - 상기 참조 정보(8)가 주어진 제2 노드(N4)의 이벤트가 주어진 제1 노드 (N1)의 이벤트 앞에 있음을 의미하는 경우,
    -- 이 경우에는 주어진 제1 노드(N1)가 DAG-이벤트 정보(6)를 주어진 제2 노드(N4)로 전송하도록 하며,
    -- 그리고, 바람직하게는 주어진 제2 노드(N4)가 DAG-이벤트 정보(7)를 주어진 제1 노드(N1)로 전송하도록 하며;

    - 다른 노드들에 대하여 위 단계가 적용되어서, 네트워크를 통해 DAG-이벤트 정보(6, 7)를 동기화하고 전파하는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 참조 정보는 노드 이벤트의 순서와 관련된 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 노드 이벤트의 순서는 모든 이벤트의 세로 값을 추적함으로써 결정되는 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제1항 내지 제3항 중의 어느 한 항에 있어서,
    상기 노드 이벤트의 순서는 노드에서 생성된 각각의 이벤트에 대해 증가하는 고도(Altitude)라는 정수 값을 각각의 노드가 추적함으로써 결정되는 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 기준 정보는 해일(8)을 통해 전송되고, 및/또는 상기 취소 정보는 쇄파(9)를 통해 전송되는 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 주어진 제2 노드로부터 상기 주어진 제1 노드로의 DAG-이벤트 정보의 제2 전송은 DAG-이벤트 정보의 제2 및 마지막 웨이브인 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 제1항 내지 제5항 중의 어느 한 항에 있어서,
    노드가 미리 결정된 정보 교환 시퀀스에 있지 않은 정보를 수신하거나 또는 노드가 이미 정보를 교환했던 노드로부터 정보를 수신하는 경우 또 다른 취소 정보를 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 특정 네트워크에 연결된 분산 컴퓨터 노드 간의 정보 교환 시스템으로서, 가십 프로토콜에 대한 가십 프로토콜을 이용하여 해시 그래프 합의 알고리즘과 같은 DAG(Directed Acyclic Graph) 합의 알고리즘을 구현하는 방법으로서, 상기 시스템은,
    - 주어진 제1 노드(N1)가 주어진 제2 노드(N4)를 무작위로 선택하고 참조 정보(8)를 전송하도록 하는 수단을 포함하며;
    특징이 되는 시스템은,
    - 참조 정보(8)에 기초하여 어떤 노드 이벤트가 다른 이벤트보다 앞에 있는지 결정하기 위한 수단;
    - 참조 정보(8)가 주어진 제1 노드(N1)의 이벤트가 주어진 제2 노드(N4)의 이벤트 앞에 있음을 의미하는 경우,
    취소 정보(9)를 주어진 제1 노드(N1)로 전송하는 수단,
    결과적으로, 주어진 제1 노드(N1)가 DAG-이벤트 정보(6, 7)를 주어진 제2 노드(N4)로 전송하는 것을 방지하고;
    - 참조 정보(8)가 주어진 제2 노드(N4)의 이벤트가 주어진 제1 노드(N1)의 이벤트 앞에 있음을 의미하는 경우,
    주어진 제1 노드(N1)가 DAG-이벤트 정보(6)를 주어진 제2 노드(N4)로 전송하도록하는 수단,
    - 그리고 바람직하게는, 주어진 제2 노드(N4)가 DAG-이벤트 정보(7)를 주어진 제1 노드(N1)로 전송하게 하는 수단;
    ...
    - 다른 노드들에 대하여 위 수단이 적용되어서, 네트워크를 통해 DAG 이벤트 정보(6, 7)를 동기화하고 전파하는 것을 특징으로 하는 시스템.
  9. 제8항에 있어서,
    상기 기준 정보는 노드 이벤트의 순서와 관련된 것을 특징으로 하는 시스템.
  10. 제8항 또는 제9항에 있어서,
    상기 노드 이벤트의 순서를 결정하기 위해 모든 이벤트의 세로 값을 추적하는 수단을 포함하는 것을 특징으로 하는 시스템.
  11. 제8항 내지 제9항 중의 어느 한 항에 있어서,
    각각의 노드가 고도(Altitude)라고 불리는 정수 값을 추적하도록 하는 수단을 포함하고, 이는 노드 이벤트의 순서를 결정하기 위해 노드에서 생성된 각 이벤트에 대해 증가하는 것을 특징으로 하는 시스템.
  12. 제8항 내지 제11항 중 어느 한 항에 있어서,
    상기 기준 정보를 해일(8)을 통해 송신하기 위한 수단 및 쇄파(9)를 통해 상기 취소 정보를 송신하기 위한 수단을 포함하는 것을 특징으로 하는 시스템.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 주어진 제1 노드(N1)와 상기 주어진 제2 노드(N4) 사이의 DAG-이벤트 정보의 전송 횟수를 제한하는 수단을 포함하는 것을 특징으로 하는 시스템.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서,
    노드가 미리 결정된 정보 교환 시퀀스에 있지 않은 정보를 수신하는 경우, 및/또는 노드가 이미 정보를 교환 한 노드로부터 정보를 수신하는 경우에는 또 다른 취소 정보를 전송하는 수단을 포함하는 것을 특징으로 하는 시스템.
  15. 하나 이상의 중앙 장치, 특히 하나 이상의 컴퓨터화 된 중앙 장치(10), 및 트랜잭션, 특히 컴퓨터화된 명령 장치를 구현하는 추가 명령 장치(11)에 대한 커넥션(12)을 포함하는 네트워크이며, 특히, 컴퓨터화된 명령 장치, 중앙 장치(들) (10)은 제8항 내지 제14항 중 어느 한 항에 따른 시스템(5a)을 포함하는 것을 특징으로 하는 네트워크.
KR1020210007909A 2020-01-20 2021-01-20 가십 프로토콜을 통해 dag 합의 알고리즘을 구현하는 시스템 및 방법 KR20210094484A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP20020031.9A EP3851974B1 (en) 2020-01-20 2020-01-20 System and a method implementing a directed acyclic graph (dag) consensus algorithm via a gossip protocol
EP20020031.9 2020-01-20

Publications (1)

Publication Number Publication Date
KR20210094484A true KR20210094484A (ko) 2021-07-29

Family

ID=69191849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210007909A KR20210094484A (ko) 2020-01-20 2021-01-20 가십 프로토콜을 통해 dag 합의 알고리즘을 구현하는 시스템 및 방법

Country Status (7)

Country Link
US (1) US11706295B2 (ko)
EP (1) EP3851974B1 (ko)
JP (1) JP2021131850A (ko)
KR (1) KR20210094484A (ko)
CN (1) CN113225175A (ko)
ES (1) ES2961304T3 (ko)
PL (1) PL3851974T3 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170308648A1 (en) 2016-04-20 2017-10-26 Loop Med, Inc. Patient status update and third party engagement system
US20190013934A1 (en) 2017-07-07 2019-01-10 Microsoft Technology Licensing, Llc Blockchain proof of custody, proof against tampering, proof of chain of custody

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390154B1 (en) * 2015-08-28 2016-07-12 Swirlds, Inc. Methods and apparatus for a distributed database within a network
EP3399446B1 (en) * 2015-08-28 2020-09-23 Swirlds, Inc. Methods and apparatus for distributed database within a network
US10747753B2 (en) * 2015-08-28 2020-08-18 Swirlds, Inc. Methods and apparatus for a distributed database within a network
US9529923B1 (en) * 2015-08-28 2016-12-27 Swirlds, Inc. Methods and apparatus for a distributed database within a network
US10862959B2 (en) * 2016-11-28 2020-12-08 Keir Finlow-Bates Consensus system and method for adding data to a blockchain
US11222006B2 (en) * 2016-12-19 2022-01-11 Swirlds, Inc. Methods and apparatus for a distributed database that enables deletion of events
EP3560136B1 (en) * 2016-12-22 2020-12-02 Itext Group NV Distributed blockchain-based method for saving the location of a file
KR102348418B1 (ko) * 2017-07-11 2022-01-07 스월즈, 인크. 네트워크 내의 분산 데이터베이스를 효율적으로 구현하기 위한 방법들 및 장치
EP3655905B1 (en) * 2017-07-17 2021-08-11 Radix DLT Limited Distributed ledger technology
EP3543940A1 (de) * 2018-03-23 2019-09-25 Siemens Aktiengesellschaft Computerimplementiertes verfahren zum bereitstellen von daten, insbesondere für eine konformitätsverfolgung
WO2019226099A1 (en) * 2018-05-23 2019-11-28 Haj Enterprise Ab A system and a method for achieving consensus between multiple parties on an event
CN109344623B (zh) * 2018-09-27 2021-03-26 福建福链科技有限公司 一种基于dag的去中心化方法及终端
US20200118131A1 (en) * 2018-10-11 2020-04-16 International Business Machines Corporation Database transaction compliance
WO2020086261A1 (en) * 2018-10-23 2020-04-30 Medici Ventures, Inc. Context based filtering within subsets of network nodes implementing a trading system
US20200394183A1 (en) * 2019-06-12 2020-12-17 Subramanya R. Jois System and method of executing, confirming and storing a transaction in a serverless decentralized node network
CN110198233B (zh) * 2019-05-09 2021-11-19 中国人民解放军国防科技大学 基于可信执行环境和有向无环图的区块链共识方法及系统
MX2021015531A (es) * 2019-06-13 2022-04-06 Sheris Luis Eduardo Gutierrez Sistema y metodo que utiliza un consenso de gradiente de idoneidad de la cadena de bloques y proporciona capacidades avanzadas de libro mayor distribuidas mediante registros de datos especializados.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170308648A1 (en) 2016-04-20 2017-10-26 Loop Med, Inc. Patient status update and third party engagement system
US20190013934A1 (en) 2017-07-07 2019-01-10 Microsoft Technology Licensing, Llc Blockchain proof of custody, proof against tampering, proof of chain of custody

Also Published As

Publication number Publication date
US11706295B2 (en) 2023-07-18
JP2021131850A (ja) 2021-09-09
EP3851974B1 (en) 2023-07-26
PL3851974T3 (pl) 2024-03-04
US20210227027A1 (en) 2021-07-22
EP3851974C0 (en) 2023-07-26
CN113225175A (zh) 2021-08-06
EP3851974A1 (en) 2021-07-21
ES2961304T3 (es) 2024-03-11

Similar Documents

Publication Publication Date Title
CN107862216B (zh) 用于匿名跨链交易的隐私保护方法、装置和存储介质
US20190149600A1 (en) Partitioning of a blockchain ledger
JP4144897B2 (ja) 共通作業キュー環境における最適格サーバ
JP2022533396A (ja) ブロックチェーンコンセンサス方法、装置及びシステム
AU1955301A (en) Federated operating system for a server
CN112416632B (zh) 事件通信方法、装置、电子设备和计算机可读介质
CN110753005A (zh) 限速方法、装置及系统、电子设备和计算机可读存储介质
CN109005208A (zh) 用于推送信息的方法和装置
US20200169391A1 (en) Multi-hop security amplification
KR20210094484A (ko) 가십 프로토콜을 통해 dag 합의 알고리즘을 구현하는 시스템 및 방법
SE0300435D0 (sv) Signal Transmission Management System
Ba et al. Computational time complexity of allocation problem for distributed servers in real-time applications
KR20220082074A (ko) 합의 메커니즘이 있는 분산 네트워크
US20090083379A1 (en) Enabling connections for use with a network
KR20210061245A (ko) 블록체인에서의 병렬적 블록 처리 방법, 이를 이용하는 블록체인 노드 및 프로그램
CN112416887A (zh) 信息交互方法、装置和电子设备
CN114500546B (zh) 基于负载均衡集群的通信消息发送方法、装置及设备
US20220060567A1 (en) Remote Procedure Call Between Entities in a Service Bus Communication System
CN115062320B (zh) 异步机制的隐私保护联邦学习方法、装置、介质及系统
CN111340529B (zh) 抽奖方法、抽奖装置、存储介质与电子设备
CN111259298B (zh) 基于区块链的话题生成方法、节点服务器及存储介质
CN110830510B (zh) 检测dos攻击方法、装置、设备及存储介质
KR102612892B1 (ko) 통신 디바이스, 컴퓨터 판독가능 매체, 및 통신 시스템
CN114138906A (zh) 交易存储和区块执行方法、设备和存储介质
EP3944181A1 (en) Method and apparatus for conducting fair lottery while reducing transaction cost by using blockchain network

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination