Data Availability Problem: 해결
이 글은 Mustafa Al-Bassam, Alberto Sonnino, Vitalik Buterin이 작성한 Fraud and Data Availability Proofs: Maximising Light Client Security and Scaling Blockchains with Dishonest Majorities 논문을 기반으로 작성되었음.
Data Availability Problem
이전 글에서는 Data Availability Problem이 발생하는 배경과 원인에 대해서 알아보았다. 간단히 정리해보자면, 블록체인의 확장성 개선을 위해서 제안되는 방식(라이트 노드, 롤업과 샤딩)을 위해서는 Data Availability Problem 이 고려되어야 한다. Data Availability Problem은 올바른 블록체인 검증을 하기 위해서 데이터를 충분히 확보하지 못하는 문제를 의미한다. 구체적으로 다음의 두 가지 경우에 문제가 발생한다.악의적인 블록 생성자가 블록을 전파하지 않고 바로 블록체인에 등록하는 경우
악의적인 노드가 일부분의 데이터만 다른 노드에게 전파했지만, 다른 노드에서 데이터의 진위 여부를 확인할 수 없는 경우
이 두 가지 문제는 다른 의미로, 어떻게 하면 블록체인에 참여한 노드들이 강제로 데이터를 전달하게 할 수 있을까 또는 몇몇의 악의적인 노드가 있어도 검증에 필요한 충분한 데이터를 얻을 수 있을까 에 대한 문제가 된다. 이에 대해서 송신자에 의한 데이터의 전파가 자율이 아닌 요청(request)에 기반하여 작동하도록 하고, 조작된 데이터가 전파되더라도 데이터 수신자 노드가 자율적으로 정정할 수 있도록 함으로써 이 문제를 해결하려고 했다. 이 방법은 Reed-Solomon Erasure Code를 바탕으로 제안되었다.