비트코인을 사용하는 사용자들이 늘어나고 수석 과학자 가빈 안드레센이 블록체인의 하드 포크를 제안하면서 네트워크 확장성 문제가 다시 부각되고 있습니다. 이 문제는 “블록체인 부풀림”이라고 불리며, 거래가 증가할수록 블록체인은 기록해야 할 데이터가 많아지고, 너무 커지면 쉽게 다운로드하거나 저장하기 어려워집니다. 그 결과, 현재 블록 크기가 제한되어 있어 초당 최대 거래 수가 7로 제한되며, 이는 비자나 마스터카드가 처리하는 거래량에 비해 훨씬 적습니다.
이는 비트코인에 대한 주요 비판의 원인이 되었으며, 특히 암호화폐와 관련 없는 “비트코인 2.0” 애플리케이션이 블록체인을 사용하고자 할 때 더욱 두드러집니다. 그러나 모든 두려움에도 불구하고, 이 문제를 간단한 걱정으로 만드는 여러 가지 해결책이 있습니다. 이 기사에서는 이 문제를 해결하고자 합니다.
하드웨어
가빈 안드레센이 기본적으로 제안한 것은 블록 크기를 늘려 초당 최대 거래 수를 증가시키는 것입니다. 이 기술적 어려움으로 인해 불가능하다고 반박할 수 있지만, 계획은 매년 50씩 점진적으로 증가시키는 것입니다. 컴퓨터와 인터넷 기술은 기하급수적으로 성장하고 있으므로 과학자와 엔지니어는 이를 따라잡을 수 있어야 합니다.
현재 블록체인은 20GB가 넘고 증가하는 추세이지만, 블록 크기가 1MB로 제한되어 있고 약 10분마다 1개의 블록이 생성되므로, 블록체인은 최대 525,600 / 10 = 52,560MB 또는 연간 약 52.5GB만큼 성장할 수 있습니다(윤년 제외). 블록 크기가 매년 50씩 증가한다면, 블록체인은 10년 동안 52.5 * 1.5^10 ~ 3TB 이상 성장할 수 있습니다.
비교하자면, 1TB 이상의 하드 디스크 드라이브는 현재 상대적으로 풍부하며, 비트코인이 충분한 사용자와 2.0 애플리케이션을 확보하여 최대 성장을 이루었을 때, 수십 테라바이트에 달하는 하드 드라이브가 일반화될 것입니다. 그리고 Storj와 같은 창의적인 블록체인 기반 클라우드 저장소 애플리케이션의 출현으로 인해, 모든 사용자가 블록체인의 일부를 저장하고 필요할 때 네트워크를 통해 다른 부분에 접근할 수 있게 되면 이러한 한계를 확장할 수 있습니다.
이제 모든 데이터를 어떻게 이동할 것인가가 문제입니다. 하드 디스크 드라이브는 디스크의 회전 속도에 의해 제한된 최대 데이터 전송 속도를 가지지만, 솔리드 스테이트 드라이브는 플래시 메모리를 기반으로 하거나 DRAM을 사용할 수 있으며, 이는 데스크탑에서 애플리케이션을 실행하는 데 사용하는 RAM과 비슷한 속도입니다. 마지막 가능한 병목 현상은 인터넷 연결에 있으며, 현재는 대역폭과 월별 다운로드 데이터 총량 모두에 제한이 있습니다.
다행히도, 인터넷을 분산화하는 방법에 대한 이전 기사를 읽은 사람들은 이미 알고 있듯이, ‘넷’은 지속적으로 발전하고 있습니다. 성가신 통신 독점 기업들이 우리의 인터넷 연결 속도 성장에 방해가 되지만, Wi-Fi 라우터는 곧 서로 직접 연결할 수 있게 될 것입니다. 다음 무선 표준인 802.11ac는 긴 범위의 지향성 5GHz 주파수를 사용하며, 약 40MB/s의 속도를 지원합니다. 이는 40 * 60 * 10 = 24,000MB ~ 24GB를 10분마다 전송할 수 있으며, 이는 블록체인상의 어떤 비트코인 블록보다 훨씬 큽니다.
소프트웨어
새롭게 떠오르는 네트워킹 기술은 비트코인 네트워크를 유지하기에 충분하지만, 하니 배저는 단순히 충분함에 만족하지 않습니다. 비트코인의 경쟁자들은 비트코인이 에너지와 기타 자원을 낭비한다고 비난하지만, 대부분의 은행과는 달리 비트코인은 항상 더 효율적으로 성장하고 있습니다. 암호화를 영리하게 사용함으로써 우리는 블록체인의 크기를 제한하면서도 그 안에 포함된 정보를 잃지 않을 수 있습니다.
그것이 Factom의 핵심입니다. Factom은 “블록체인 오염”이라고 불리는 비하 용어를 사용하여, 거래에 삽입된 비통화 또는 기타 2.0 데이터를 나타내며, 다양한 파일을 열로 정리합니다. 이러한 항목들은 해시 처리되어 입력 블록에 삽입되며, 여기서 이들은 머클 트리라고 불리는 것의 “잎”이 됩니다. 잎은 단계적으로 2개씩 해시 처리되어 머클 루트라고 불리는 해시로 합쳐집니다.
Factom 프로토콜을 사용하는 모든 분산 애플리케이션의 데이터는 자체 입력 블록으로 그룹화되어 각자 머클 루트를 생성하며, 이 모든 것은 Factom 블록이라고 불리는 것으로 그룹화됩니다. 각 분산 애플리케이션의 머클 루트는 새로운 트리의 잎이 되며, 다시 단계적으로 해시 처리되어 최종 머클 루트를 생성합니다. 실제 애플리케이션은 비트코인의 10분 블록 시간보다 더 빠르게 움직여야 하므로, 이러한 루트는 계산되면서 쌓이고, 이후 한 번에 비트코인 블록에 삽입됩니다.
각 Factom 블록은 모든 분산 애플리케이션과 조직의 메타 스냅샷을 제공하여, 누가 무엇을 소유하거나 빚지고 있는지, 그리고 사람들이 조작하거나 이견을 가질 수 있는 기타 정보를 검증할 수 있습니다. 만약 우리가 하나의 애플리케이션에 해당하는 모든 입력 블록을 Factom 체인이라고 불리는 것으로 수집하고 정리한다면, 우리는 약 1분마다 그 애플리케이션의 해시 데이터를 과거로 거슬러 올라가며 검토할 수 있습니다. 만약 누군가가 당신의 스마트 자산을 속이기 위해 가짜 입력 블록을 위조했다면, 이는 비트코인 채굴자들이 기록한 올바른 Factom 루트로 해시 처리되지 못할 것이며, 이는 수학적으로 쉽게 증명할 수 있습니다.
그렇다면, 누가 이러한 입력 블록을 생성하고 저장하며, 우리는 어떻게 이를 접근할 수 있을까요? 비트코인 블록체인은 스마트 계약의 유효성과 스마트 자산의 소유자를 검증하는 데 사용될 수 있지만, 애플리케이션 데이터를 압축하여 부풀림을 제거하는 과정에서 사용자와 앱에 대한 특정 정보를 잃게 됩니다–누가 누구인지와 무엇인지에 대한 정보입니다.
그에 대한 해결책은 분산되어야 합니다. Factom은 본질적으로 BitTorrent와 유사한 프로토콜을 사용하는 P2P 네트워크로, 연합 서버 시스템에서 운영됩니다. 이 서버들은 서로를 지속적으로 감사하여 Factom의 규칙을 준수하고 있는지 확인하며, 모든 서버는 그들의 서비스에 대해 암호화폐로 보상을 받습니다. 미래에는 Storj 및 SAFE와 같은 네트워크를 사용하여 메쉬넷을 통해 통신할 것입니다.
이것이 확립되면, 적절한 클라이언트 프로그램이 설치된 컴퓨터 장치를 가진 누구나 분산 애플리케이션을 실행하는 데 필요한 정보를 얻고 검증할 수 있습니다. 인터넷에 연결되어 있기만 하면 되며, 분산화가 계속 진행됨에 따라 곧 “블록체인 부풀림”과 같은 사소한 문제에 대해 걱정하지 않고도 필요한 모든 것을 할 수 있게 될 것입니다.