Flow는 CryptoKitties를 개발한 회사인 Dapper Labs가 만든 분산형 1계층 블록체인입니다. Flow는 주로 Dapp, NFT, 게임 및 자체 암호화폐인 FLOW를 위한 기반으로 설계되었습니다. [13]
Flow는 비잔틴 장애 허용(BFT) 합의 알고리즘과 지분 증명(PoS)을 결합하여 높은 보안성과 효율성을 달성하는 권한 없는 네트워크입니다. 이 블록체인은 트랜잭션의 선택 및 순서를 실행과 분리하여 기존 PoS 블록체인의 처리량 한계를 극복하도록 설계되었습니다. [14]
Flow는 2020년에 출시되었으며, 개발자들이 스마트 계약 및 Dapp을 실험할 수 있도록 하는 사용자 친화적인 개발 환경 도구인 Flow Playground를 제공합니다. 이는 2017년 Dapper Labs의 CryptoKitties가 인기를 얻으면서 Ethereum 네트워크가 과부하되는 상황을 경험한 후, 자체 블록체인을 만들어야겠다는 아이디어에서 시작되었습니다. [12]
Flow 블록체인의 인프라는 현재 블록이 실행되는 동안 다음 블록을 생성할 수 있는 파이프라인 구조를 사용하여 처리량을 개선하도록 설계되었습니다. 이 방법은 단일 사이클 처리 아키텍처를 사용하는 기존 블록체인과 다릅니다. Flow 블록체인은 또한 노드의 이질성을 인식하고 각 노드의 기능에 따라 특정 작업을 할당합니다. 컬렉터 노드, 합의 노드, 실행 노드, 검증 노드를 포함하여 노드에 할당된 네 가지 역할이 있습니다. [15]
각 노드 유형의 기능은 다음과 같습니다.
Flow 아키텍처는 관심사 분리 원칙에 따라 설계되었으며, 네트워크에는 합의 노드와 실행 노드라는 두 가지 전문화된 역할이 있습니다. 이 두 노드 유형의 차이는 객관적 작업과 주관적 작업의 차이에 기반합니다. 객관적 작업은 객관적으로 정답이 있는 작업이고, 주관적 작업은 결정적인 해결책이 없는 작업입니다. 기존 블록체인 아키텍처에서는 노드가 두 가지 유형의 문제를 동시에 해결해야 합니다. 그러나 Flow에서는 합의 노드가 주관적인 질문을 해결하고 실행 노드가 객관적인 문제를 처리합니다. [16][17]
합의 노드는 트랜잭션 데이터 다이제스트로부터 블록을 형성하여 핵심 Flow 블록체인을 유지 관리하고 확장하는 역할을 합니다. 제안된 블록의 수락에는 비잔틴 장애 허용(BFT) 합의 알고리즘이 필요하며, 합의 노드는 계산 상태를 유지하거나 트랜잭션을 실행할 필요가 없습니다. 또한 실행 노드가 잘못된 출력을 생성했다는 주장과 같이 다른 노드의 슬래싱 요청을 심판합니다. [17]
실행 노드는 합의 노드가 결정한 순서대로 실행될 때 트랜잭션의 결과를 결정하는 데 필요한 원시 계산 성능을 제공합니다. 실행 노드는 잘못된 것으로 판명되었을 때 실행 노드의 주장에 이의를 제기하는 데 사용할 수 있는 실행 영수증 형태의 암호화 증명을 생성합니다. 실행 노드는 정확한 것으로 알려지면 블록체인의 현재 상태 증명을 생성하는 책임이 있습니다. 잘못된 영수증은 거부되고 유효한 영수증은 수락되는 비잔틴 영수증의 검증 프로세스는 이 논문의 범위를 벗어나며 향후 작업에서 다룰 것입니다. [17]