Jump Crypto: 블록체인 인프라 세분화 트랙 및 지형 상세 설명
원저자: Rahul Maganti/Jump Crypto 파트너, Saurabh Sharma/Jump Crypto 부사장
원제목: 《Peeking Under the Hood: Key Pillars of Crypto Infrastructure》
편집: 자이, 린치, 체인캡처
소개
크로스체인 브리지, 새로운 프레임워크 및 기타 핵심 암호 프로토콜의 빠른 출현과 함께 블록체인 인프라를 효과적으로 계획하는 것은 여전히 사용자, 개발자 및 투자자에게 중요한 도전 과제입니다. "블록체인 인프라"라는 용어는 기본 네트워크 스택에서 합의 모델 또는 가상 머신에 이르기까지 다양한 제품과 서비스를 포함할 수 있습니다. 우리는 L1/L2 체인을 구성하는 다양한 "핵심" 구성 요소에 대한 심층 분석을 보류하여 나중에 발표할 예정입니다(기대해 주세요!). 이 글에서 우리의 구체적인 목표는 다음과 같습니다:
- 블록체인 인프라의 핵심 구성 요소에 대한 폭넓은 개요 제공.
- 이러한 구성 요소를 명확하고 소화하기 쉬운 하위 부분으로 분해.
- 인프라 맵
우리는 블록체인 인프라의 생태계를 L1 및 L2 개발을 지원하기 위해 설계된 프로토콜로 정의합니다:
- 0층 인프라: (1) 분산형 클라우드 서비스(저장, 계산, 인덱스); (2) 노드 인프라(RPC, 스테이킹/검증자)
- 미들웨어: (1) 데이터 가용성; (2) 통신/메시징 프로토콜
- 블록체인 개발: (1) 보안 및 테스트; (2) 개발자 도구(즉시 사용 가능한 도구, 프론트엔드/백엔드 라이브러리, 언어/IDE).
0층 인프라
분산형 클라우드 서비스
클라우드 서비스는 Web2의 발전에 필수적입니다. 애플리케이션의 계산 및 데이터 요구가 증가함에 따라, 이러한 데이터와 계산을 경제적으로 신속하게 제공하는 서비스 제공업체가 중요합니다. Web3 애플리케이션은 데이터와 계산에 대한 유사한 요구가 있지만 블록체인의 정신에 충실하기를 원합니다. 따라서 이러한 Web2 서비스의 분산형 버전을 만들기 위한 프로토콜이 등장했습니다. 분산형 클라우드는 3개의 핵심 부분으로 구성됩니다:
- 저장 - 데이터/파일이 여러 개체가 운영하는 서버에 저장됩니다. 데이터가 여러 머신에 복제되거나 스트라이프화되기 때문에 이러한 네트워크는 높은 내결함성을 실현할 수 있습니다.
- 계산 - 저장과 마찬가지로, Web2 패러다임에서 계산은 중앙 집중화되어 있습니다. 분산형 계산은 이러한 계산을 여러 노드에 분산시켜 더 높은 내결함성을 실현하는 데 중점을 둡니다(하나 또는 여러 노드가 실패하더라도 네트워크는 요청에 서비스를 제공할 수 있으며 성능에 대한 간섭이 최소화됩니다).
- 인덱스 - Web2 세계에서는 데이터가 한 개체가 소유하고 운영하는 하나 또는 여러 서버에 저장되어 있어 이러한 데이터를 쿼리하는 것이 상대적으로 쉽습니다. 블록체인 노드는 분산되어 있기 때문에 데이터는 고립되어 있을 수 있으며, 서로 다른 영역에 분산되어 있고 종종 비호환 표준에서 운영됩니다. 인덱스 프로토콜은 이러한 데이터를 집계하고 이를 접근하기 위한 사용하기 쉽고 표준화된 API를 제공합니다.
여러 프로젝트가 저장, 계산 및 인덱스를 제공하고 있으며(Aleph 및 Akash 네트워크), 다른 프로젝트는 더욱 전문화되어 있습니다(예: The Graph는 인덱스용, Arweave/Filecoin은 저장용).
노드 인프라
원격 프로시저 호출(RPC)은 많은 유형의 소프트웨어 시스템 기능의 핵심입니다. 이는 하나의 프로그램이 다른 컴퓨터에 있는 프로그램을 호출하거나 접근할 수 있게 해줍니다. 이는 블록체인에 특히 유용하며, 블록체인은 다양한 지역과 환경에서 실행되는 여러 머신의 대량의 수신 요청에 서비스를 제공해야 합니다. Alchemy, Syndica 및 Infura와 같은 프로토콜은 이러한 인프라를 서비스로 제공하여 구축자가 노드에 대한 호출 전송 및 라우팅과 관련된 기본 메커니즘에 집중하지 않고 고급 애플리케이션 개발에 집중할 수 있도록 합니다.
많은 RPC 제공업체와 마찬가지로 Alchemy는 모든 노드를 소유하고 운영합니다. 암호 커뮤니티의 많은 사람들에게 중앙 집중화된 RPC의 위험은 명백합니다. 이는 단일 실패 지점을 도입하여 블록체인의 활성성을 위협할 수 있습니다(즉, Alchemy가 실패하면 애플리케이션이 블록체인에서 데이터를 검색하거나 접근할 수 없습니다). 최근에는 Pocket과 같은 분산형 RPC 프로토콜이 이러한 문제를 해결하기 위해 성장하고 있지만, 이러한 접근 방식의 유효성은 대규모 테스트를 통해 검증되어야 합니다.
스테이킹/검증자 - 블록체인의 보안은 체인에서 거래를 검증하기 위해 분산된 노드 집합에 의존하지만, 합의에 참여하는 노드를 실제로 운영하는 사람이 있어야 합니다. 많은 경우, 노드를 운영하는 데 필요한 시간, 비용 및 에너지는 부담스러워 많은 노드가 탈퇴하고 다른 노드에 체인의 안전성을 보장하는 책임을 맡기게 됩니다.
그러나 이러한 태도는 심각한 문제를 초래합니다. 모든 사람이 안전성을 다른 사람에게 전가하기로 결정하면 아무도 검증하지 않게 됩니다. P2P 및 Blockdaemon과 같은 서비스는 인프라를 운영하여 덜 성숙하거나 자본이 부족한 사용자가 일반적으로 자본을 집중하여 합의에 참여할 수 있도록 합니다. 일부는 이러한 스테이킹 제공업체가 불필요한 집중도를 도입한다고 생각하지만, 대안은 더 나쁠 수 있습니다. 이러한 제공업체가 없으면 일반 네트워크 참여자가 노드를 운영하는 진입 장벽이 너무 높아져 더 높은 집중도를 초래할 수 있습니다.
미들웨어
데이터 가용성
애플리케이션은 데이터를 대량으로 소비합니다. Web2 예제에서 이러한 데이터는 일반적으로 중앙 집중화된 방식으로 사용자 또는 제3자 제공업체로부터 직접 제공됩니다(데이터 제공업체는 데이터를 집계하고 특정 회사 및 애플리케이션에 판매하여 직접 보상을 받습니다. 예: 아마존, 구글 또는 기타 머신러닝 데이터 제공업체).
DApp도 데이터의 대량 소비자이지만, 이러한 데이터를 체인에서 실행되는 사용자 또는 애플리케이션이 사용할 수 있도록 검증자가 필요합니다. 신뢰 가정을 최소화하기 위해 이러한 데이터를 분산형 방식으로 제공하는 것이 매우 중요합니다. 애플리케이션은 두 가지 주요 방법을 통해 고충실도 데이터에 빠르고 효율적으로 접근할 수 있습니다:
Pyth 및 Chainlink와 같은 데이터 오라클은 데이터 흐름에 대한 접근을 제공하여 암호 네트워크가 신뢰할 수 있고 분산형 방식으로 전통적인 시스템 및 기타 외부 정보와 연결할 수 있도록 합니다. 여기에는 고품질의 재무 데이터(즉, 자산 가격)가 포함됩니다. 이 서비스는 DeFi를 거래, 대출, 스포츠 베팅, 보험 및 기타 여러 분야로 확장하는 데 중요한 광범위한 사용 사례에 필수적입니다.
데이터 가용성 계층은 거래를 정렬하고 해당 데이터를 지원하는 체인에서 사용할 수 있도록 하는 체인입니다. 일반적으로 블록의 일부를 사용하여 모든 블록 데이터가 체인에 게시되었음을 고객에게 높은 확률로 확인하는 증거를 생성합니다. 데이터 가용성 증명은 Rollup 시퀀서의 신뢰성을 보장하고 Rollup 거래 처리 비용을 낮추는 데 핵심입니다. Celestia는 이 계층의 좋은 예입니다.
통신 및 메시징
Layer1 및 그 생태계의 수가 증가함에 따라 크로스체인 관리의 조합 가능성과 상호 운용성에 대한 요구가 더욱 절실해지고 있습니다. 크로스체인 브리지는 원래 고립된 생태계가 의미 있는 방식으로 상호작용할 수 있도록 하며, 이는 새로운 무역 노선이 원래 서로 다른 지역을 연결하여 지식 공유의 새로운 시대를 여는 것과 유사합니다! Wormhole, Layer Zero 및 기타 크로스체인 브리지 솔루션은 일반 메시징을 지원하여 모든 유형의 데이터와 정보(체포 포함)가 여러 생태계를 가로질러 이동할 수 있도록 하며, 애플리케이션은 심지어 크로스체인에서 임의의 함수 호출을 수행할 수 있어 다른 커뮤니티에 진입할 수 있습니다. Synpase, CELER 등 다른 프로토콜은 자산 또는 토큰의 크로스체인 전송에만 국한됩니다.
온체인 메시징은 여전히 블록체인 인프라의 핵심 구성 요소입니다. DApp 개발 및 소매 수요의 증가와 함께, 프로토콜이 의미 있지만 분산형 방식으로 사용자와 상호작용하는 능력이 성장의 주요 동력이 될 것입니다. 다음은 온체인 메시징이 유용할 수 있는 몇 가지 잠재적 영역입니다:
- 토큰 수령 알림.
- 지갑 내 통신 메시징 내장 허용.
- 프로토콜의 중요한 업데이트에 대한 알림.
- 주요 문제 추적 알림(예: DeFi 애플리케이션의 위험 지표, 보안 취약점).
온체인 통신 프로토콜을 개발하는 몇 가지 주목할 만한 프로젝트에는 Dialect, 이더리움 푸시 알림 서비스(EPNS) 및 XMTP가 포함됩니다.
블록체인 개발
보안 및 테스트
암호 기술의 보안 및 테스트는 상대적으로 초기 단계에 있으며, 그러나 이는 전체 생태계의 성공에 매우 중요합니다. 암호 애플리케이션은 보안 위험에 특히 민감하며, 이는 종종 사용자 자산과 직접 관련이 있습니다. 설계 또는 구현의 작은 오류는 종종 심각한 경제적 결과를 초래합니다.
주요 보안 및 테스트 방법은 7가지입니다:
- 단위 테스트는 대부분의 소프트웨어 시스템 테스트 스위트의 핵심 부분입니다. 개발자는 프로그램의 작은 원자 부분의 동작을 검사하기 위해 테스트를 작성합니다. 다양한 유용한 단위 테스트 프레임워크가 있습니다. 예를 들어 이더리움의 Waffle 및 Truffle, Solana의 표준은 Anchor 테스트 프레임워크입니다.
- 통합 테스트는 다양한 소프트웨어 모듈을 그룹으로 테스트합니다. 라이브러리와 고급 드라이버는 다양한 방식으로 상호작용하며, 다른 저급 모듈 간의 상호작용(예: TypeScript 라이브러리와 일련의 기본 스마트 계약 간의 상호작용)도 마찬가지입니다. 이러한 모듈 간의 데이터 및 정보 흐름을 테스트하는 것이 중요합니다.
- 감사는 블록체인 보안 프로세스 개발의 핵심 부분이 되었습니다. 프로토콜은 일반에 스마트 계약을 공개하기 전에 종종 제3자 코드 감사자를 활용하여 코드의 모든 줄을 검사하고 검증합니다. 우리는 감사자를 매우 중요하게 여기며 최고의 보안을 보장합니다. Trail of Bits, Open Zeppelin 및 Quantstamp는 블록체인 감사 분야에서 신뢰할 수 있는 몇 가지 기관입니다.
- 형식 검증은 프로그램 또는 소프트웨어 구성 요소가 일련의 속성을 충족하는지 확인하는 것입니다. 일반적으로 누군가 프로그램의 동작 방식을 자세히 설명하는 공식 사양을 작성합니다. 형식 검증 프레임워크는 이 사양을 일련의 제약으로 변환한 다음 이를 해결하고 검사합니다. 스마트 계약의 보안을 강화하는 선도적인 프로젝트 중 하나입니다. Certora는 스마트 계약의 보안을 지원하기 위해 Runtime Verification을 사용하여 형식 검증을 구현하는 선도적인 프로젝트입니다.
- 모의 - 오랫동안 정량적 거래 회사는 에이전트 기반 모의를 사용하여 알고리즘 거래 전략을 백테스트했습니다. 블록체인에서 실험하는 데 드는 높은 비용을 고려할 때, 모의 방법은 매개변수화된 프로토콜을 테스트하고 다양한 가정을 테스트하는 방법을 제공합니다. 그 중 Chaos Labs와 Guantlet는 시나리오 기반 모의를 활용하여 블록체인과 프로토콜을 보호하는 우수한 플랫폼입니다.
- 버그 바운티는 암호 분야의 분산 정신을 활용하여 대규모 보안 문제를 해결하는 데 도움이 됩니다. 높은 보상은 커뮤니티 구성원과 해커가 주요 취약점 문제를 보고하고 해결하도록 유도합니다. 따라서 보상 프로그램은 "그레이 해트"를 "화이트 해트"로 전환하는 데 독특한 역할을 합니다. 예를 들어 Wormhole이 만든 보상 플랫폼 Immunefi는 최대 1,000만 달러의 버그 보상을 제공합니다! 우리는 누구나 참여하기를 권장합니다!
- 테스트넷은 메인넷 네트워크와 유사한 형태를 제공하여 개발자가 연구 환경에서 테스트 및 디버깅 매개변수를 지원합니다. 많은 테스트넷은 속도 최적화를 위해 권한 증명/기타 합의 메커니즘과 소수의 검증자를 사용하며, 테스트넷의 토큰은 실제 가치가 없습니다. 따라서 사용자는 수조 외에는 토큰을 얻을 방법이 없습니다. 많은 테스트넷은 메인넷 L1의 일부 프로젝트를 모방하기 위해 구축되었습니다(예: 이더리움의 Rinkeby, Kovan, Ropsten).
각 방법은 장단점이 있으며, 물론 서로 배타적이지 않으며, 서로 다른 테스트 스타일이 프로젝트 개발의 다양한 단계에서 일반적으로 사용됩니다:
- 1단계: 계약을 구축할 때 단위 테스트를 작성합니다.
- 2단계: 더 높은 수준의 프로그램 추상화가 구축되면 통합 테스트가 모듈 간의 상호작용을 테스트하는 데 매우 중요해집니다.
- 3단계: 코드 감사는 테스트넷/메인넷 출시 또는 대규모 기능 출시 시 수행됩니다.
- 4단계: 형식 검증은 일반적으로 코드 감사와 결합되어 추가 보안 보증을 사용합니다. 프로그램이 지정되면 나머지 프로세스는 자동화할 수 있으며, 이를 통해 Continuous Integration 또는 Continuous Deployment 도구와 쉽게 결합할 수 있습니다.
- 5단계: 테스트넷에서 애플리케이션을 시작하여 처리량, 트래픽 및 기타 확장 매개변수를 확인합니다.
- 6단계: 메인넷에 배포된 후 버그 바운티 프로그램을 시작하여 커뮤니티 리소스를 활용하여 문제를 찾고 수정합니다.
개발자 도구
어떤 기술이나 생태계의 성장은 그 개발자의 성공에 달려 있습니다. 암호 분야에서는 특히 그렇습니다. 우리는 개발자 도구를 네 가지 주요 범주로 나눕니다:
- 즉시 사용 가능한 도구
- 새로운 L1 개발을 위한 SDK로, 합의 모델을 생성하고 배포하는 과정을 추상화하는 데 도움이 됩니다. 미리 구축된 모듈은 유연성과 사용자 정의를 허용하지만 개발 속도와 표준화에 최적화되어 있습니다. Cosmos SDK는 Cosmos 생태계 내에서 새로운 검증된 블록체인을 신속하게 개발할 수 있도록 지원하는 좋은 예입니다. Binance Chain과 Terra는 Cosmos 기반의 공공 블록체인의 유명한 예입니다.
- 스마트 계약 개발 - 개발자가 스마트 계약을 신속하게 개발하는 데 도움이 되는 많은 도구가 있습니다. 예를 들어, Truffle boxes는 간단하고 유용한 Solidity 계약(투표 등) 예제를 포함합니다. 커뮤니티는 이 저장소에 부록을 추천할 수 있습니다.
- 프론트엔드/백엔드 도구 - 애플리케이션 개발을 간소화하는 많은 도구가 있습니다. 애플리케이션을 체인에 연결하는 도구(즉, ethers.js, web3.js 등).
- 업그레이드 및 계약 상호작용(예: OpenZeppelin SDK) - RPC 요청 처리기를 작성하고 IDL을 발행하며 ID에서 클라이언트를 생성하는 다양한 도구가 생태계에 따라 다릅니다(예: Solana 스마트 계약의 Anchor IDL, Parity 스마트 계약의 Ink).
- 언어 및 IDE - 블록체인 프로그래밍 모델은 종종 전통적인 소프트웨어 시스템의 프로그래밍 모델과 크게 다릅니다. 블록체인 개발에 사용되는 프로그래밍 언어는 이러한 모델을 용이하게 하기 위해 설계되었습니다. EVM 호환 체인에서는 Solidity와 Vyper가 널리 사용됩니다. Rust와 같은 다른 언어는 Solana 및 Terra와 같은 공공 블록체인에서 많이 사용됩니다.
결론
블록체인 인프라는 과부하되고 혼란스러운 용어일 수 있으며, 일반적으로 스마트 계약 감사에서 크로스체인 브리지에 이르기까지 다양한 제품과 서비스의 동의어입니다. 따라서 암호 인프라에 대한 논의는 지나치게 광범위하고 혼란스러울 수 있으며, 일반 독자에게는 지나치게 구체적이고 목표 지향적일 수 있습니다. 우리는 이 글이 암호 산업에 처음 진입하는 사람들과 더 깊은 개요를 찾고 있는 사람들 사이에서 적절한 균형을 찾기를 바랍니다.
물론 암호 산업은 빠르게 변화하고 있으며, 본문에서 인용된 프로토콜은 2개월 또는 3개월 후에는 더 이상 생태계를 대표하는 샘플이 아닐 가능성이 높습니다. 그럼에도 불구하고 우리는 이 글의 주요 목표(즉, 인프라를 더 쉽게 이해하고 이해할 수 있는 부분으로 분해하는 것)가 앞으로 더 큰 관련성을 가질 것이라고 생각합니다. 그러나 블록체인 인프라의 패턴이 진화함에 따라, 우리는 또한 우리의 생각을 명확하고 일관되게 업데이트할 것을 보장할 것입니다.
질문이나 의견이 있으시면 연락해 주세요(Rahul Maganti(@rahulmaganti) 및 Saurabh Sharma(@zsparta)). 우리가 잘못한 부분이나 당신이 동의하지 않는 부분을 알려주세요! 특히 Nikhil Suri(@nsuri)에게 감사드립니다. 그리고 Lucas Beck(@sansgravitas)에게도 귀중한 피드백을 제공해 주셔서 감사합니다.