IT
-
[ Bazel ] Windows 환경에서 설치하기 | bazelisk2024.07.13
-
필리퀴드(파일코인 DeFi 플랫폼) 테스트넷 서비스 체험기 - 12024.03.06
아비트럼 Stylus가 여는 스마트 컨트랙트 개발의 확장
이 글은 투자 조언을 위한 글이 아닌, 순수한 정보 전달을 위한 것임을 명확히 밝힙니다.
이번 포스팅은 내용이 짧아 별도의 요약은 없습니다
서론
아비트럼은 9월 4일 Stylus 메인넷 출시를 발표했습니다. Stylus가 표방하는 것은 Smart Contract Composability 즉, 스마트 컨트랙트의 상호운용성입니다. 굉장히 많은 사람들이 사용하는 Rust나 C/C++과 같은 프로그래밍 언어를 사용해서도 Smart Contract를 구현할 수 있도록 하겠다는 것이 Stylus의 목표입니다. 이것이 왜 필요한 것일까요?
이 Stylus의 중요성을 인식하기 위해서는 먼저 상호운용성이 중요한 이유부터 살펴보아야합니다. 이 글을 읽으시는 분들께서는 이미 이더리움에 대해서는 잘 알고 계실 것입니다. 그 이더리움의 핵심이 무엇이냐고 한다면, Native Token인 ETH라고도 할 것이고, Smart Contract라고도 할 수 있습니다. 블록체인 트릴레마도 있구요. 어떤 분들은 EVM을 떠올릴 수 있습니다. EVM은 이더리움 가상 머신(Ethereum Virtual Machine)의 약자로, 이더리움 체인 내에서 Smart Contract를 실행할 수 있도록 하는 가상 환경을 말합니다. 이 EVM을 통해 이더리움에서 구동되는 프로그램을 설계하고 싶은 개발자는 자신의 OS와 상관없이 Solidity 혹은 Vyper 등의 일명 Contract Language만 익히면 개발이 가능합니다. 컴퓨터를 업그레이드해야할 필요도, OS를 바꿀 필요도 역시 없습니다. 앱 개발을 해보신 분들은 잘 아시겠지만 iOS 앱을 개발하기 위해서는 반드시 MacOS 환경이 필요하죠. Flutter나 React Native 등으로 개발자체는 가능할 수 있지만 테스트는 반드시 MacOS 환경에서 진행해야합니다. 이렇듯, 개발을 위해 OS 환경을 맞추는 것은 생각보다 불편한 장벽이 됩니다. 윈도우 PC를 샀는데, 앱 개발을 위해서 맥북도 사야하다니. 다행히 최근에는 앱 개발을 위해서는 윈도우와 맥 환경만 지원되면 문제없지만 예전에는 블랙베리 OS나 삼성의 자체 OS도 있었죠. 개발자가 모든 환경에 맞춰 프로그래밍을 해야한다는 것은 굉장한 어려움이 됩니다. 이더리움은 이런 문제점을 해결할 혁신적인 방법으로 EVM을 제안한 것이구요. 이 EVM을 통해서, 우리는 OS와 무관하게도 개발할 수 있는 편리함을 갖게 됐습니다.
EVM의 한계와 Stylus의 등장
EVM에 단점은 전혀 없는 걸까요? 당연히 아니겠죠. EVM의 여러 단점들에 대해 언급하기 보다 우리는 Stylus 탄생의 배경이 되는 단점만 짚고 넘어가면 되겠습니다. 바로 EVM이 Solidity 등 특정 언어만 지원한다는 것이죠. EVM은 OS 환경에 무관하게 동작할 수 있는 환경을 만들어줍니다. 그러나 이 EVM이 코드를 이해하기 위해서는 Java, C/C++, Python 등의 대중적인 언어를 사용할 수는 없습니다. OS의 장벽은 넘어섰지만, 새로운 장벽이 나타난 것이죠. 바로 개발 언어의 장벽입니다. 이더리움을 비롯한 여러 코인관련 시장의 급성장으로 산업화되고 발전하면서 많은 개발자들이 블록체인 개발을 시작했습니다. 그 과정에서 꽤 많은 블록체인 전문 개발자, 특히 스마트 컨트랙트 개발자들이 탄생했죠. 아비트럼에 따르면 이 스마트 컨트랙트 개발자(Solidity 위주)는 약 2만 명 정도로 추산된다고 합니다. 아주 오래전부터 프로그래밍 언어의 정석이 된 C++는 약 1200만, 비교적 최근에 떠오른 Rust 역시 300만 정도로 추정되는 개발자가 있는 것에 비하면 아주 적은 수입니다. 우리는 EVM이 개발될 때 그들이 제시한 문제점에 대해 알고 있습니다. 이제 여기서 아비트럼이 주장하는 문제점과 이를 해결하기 위해 제안한 Stylus가 등장하게 됩니다.
Stylus란 무엇인가?
아비트럼은 Stylus를 차세대 프로그래밍 언어라고 정의합니다. Stylus를 사용해 Rust, C/C++ 등의 언어를 사용하는 전세계 수천만의 개발자들이 별도의 Solidity 공부를 하지 않고도 EVM 호환이 가능한 Dapp을 개발할 수 있게 됩니다. 어떤 OS 환경에도 제약받지 않는 EVM의 위에서, 새로운 언어를 배워야한다는 압박감없이 가장 대중적인 언어들로 개발할 수 있도록 하는 것. 이것이 Stylus가 추구하는 것입니다.
기본적으로 Stylus는 MultiVM을 표방합니다. 여기서 말하는 MultiVM은 EVM과 동일한 역할을 하는 WASM VM이라는 또 하나의 가상 머신이 추가되는 개념입니다. WASM은 WebAssembly의 약어로 Javascript의 속도를 보완하면서도 대체하기 위해 고안된 바이트코드 언어입니다. WASM VM을 통해 WASM로 컴파일할 수 있는 프로그래밍 언어는 대부분 지원하게 됩니다. 대표적으로 Rust, C/C++이 있고, Go나 최근 블록체인 업계에서 많이 사용되기 시작하고 있는 Move, Sway 등도 포함됩니다.
많은 분들이 제가 이전에 작성한 BoLD(Bounded Liquidity Delay)보다 이 Stylus 출시에 관심을 갖는 것은 당연할 것입니다. BoLD는 그 자체로 생태계의 활성화에는 큰 영향을 주기 어렵습니다. BoLD는 사실, 안전하고 신뢰할 수 있는 시스템으로서의 도약을 위한 준비에 가깝기 때문입니다. 하지만 Stylus는 그 방향을 달리합니다. Stylus의 도입은 그 자체로 생태계 Dapp 활성화를 목표에 두고 있기 때문입니다. 개발자분들은 당연하게도 익숙한 언어의 사용으로 Dapp을 개발해 새로운 부가가치를 창출할 수 있다는 것에, 사용자들은 더 많은 아이디어와 기술력으로 무장한 Dapp들이 제작될 것이라는 기대감에, 투자자들은 이러한 생태계의 활성화가 가져올 미래에 관심을 갖게 될 것입니다.
준비가 끝난 Stylus, 이제 대중의 선택을 받을 차례
Offchain Labs의 CEO이자 Co-founder인 Steven Goldfeder는 Stylus가 EVM보다 최대 70배 더 빠르다며, 이는 같은 가스 한도 내에서 Stylus Dapp들은 더 많은 거래를 처리할 수 있어 비용 절감의 효과도 있다고 언급했습니다. 저렴하면서도 빠르고, 그로 인한 Layer 2의 이점을 극대화할 수 있다는 것이죠. 또한 Stylus는 유명한 블록 익스플로러인 Etherscan, 가장 대중적인 오픈소스 스마트 컨트랙트 라이브러리인 OpenZeppelin 등과 파트너십을 통한 개발자 및 사용자를 지원합니다. OpenZeppelin의 경우 Rust용 Stylus 라이브러리 지원하고 있는데, Rust 개발자가 스마트 컨트랙트 개발을 위해 해야할 단계가 많이 간소화될 수 있을 것으로 보입니다.
위와 같은 Stylus 소식들을 살펴보면, 아비트럼 측에서는 이번 Stylus 출시를 위해 상당히 많은 공을 들였음을 알 수 있습니다. 개발자의 폭을 넓히기 위한 툴을 개발하고, 그 과정에서 개발자들이 필요로할 만한 것들을 착실히 준비해온 것으로 보입니다. 이제 커뮤니티가 그들의 예상대로 자신들의 익숙한 프로그래밍 언어로 스마트 컨트랙트를 포함한 블록체인 개발로의 자연스러운 전환을 시작하는지 지켜볼 때입니다. 이더리움 역시 그동안 많은 방법을 통해 개발 편의성을 지원하며 많은 웹2 개발자들이 웹3로 넘어올 수 있도록 노력해왔습니다. 현 시점에서 그 노력이 뚜렷한 결과를 냈다고 말할 수 있을지는 보는 관점에 따라 다르겠죠. Stylus는 세상에 없던 완전히 새로운 아이디어를 제안한 것은 아닙니다. 그렇기 때문에 아비트럼 측도 더 많은 준비를 해왔을 것이고, 또 그래야만 합니다. 최대한의 편의성을 돕기 위한 Stylus를 통해 더 많은 개발자를 온보딩시키려는 그들의 노력이 성공적으로 안착할 수 있을지 앞으로가 주목됩니다.
Reference
Arbtirum blog, Arbitrum. Sep, 2024
A gentle introduction: StylusArbitrum Docs, Arbtirum Sep, 2024
Offchain Labs Github, stylus-sdk-rs
OpenZeppelin Github, rust-contracts-stylus
'IT > BlockChain' 카테고리의 다른 글
아비트럼 BoLD: 단순한 원리와 무거운 자본주의의 분쟁 해결 프로토콜 (2) | 2024.08.23 |
---|---|
필리퀴드(파일코인 DeFi 플랫폼) 테스트넷 서비스 체험기 - 2 (1) | 2024.03.06 |
필리퀴드(파일코인 DeFi 플랫폼) 테스트넷 서비스 체험기 - 1 (0) | 2024.03.06 |
디퍼런스(DE-FERENCE) 2024 참관기 (0) | 2024.02.22 |
한 발 늦은, KOBAC 2024 행사 참관기 (0) | 2024.02.03 |
아비트럼 BoLD: 단순한 원리와 무거운 자본주의의 분쟁 해결 프로토콜
이 글은 투자 조언을 위한 글이 아닌, 순수한 정보 전달을 위한 것임을 명확히 밝힙니다.
TL; DR
- 아비트럼의 BoLD(Bounded Liquidity Delay)는 기존의 Arbitrum Classic 분쟁 해결 프로토콜의 한계를 극복하기 위해 도입된 기술
- 단순한 원리와 공격적인 이코노믹 시스템을 통해 악의적인 공격을 억제하면서 신속한 분쟁 해결을 가능하게 함
- 아비트럼은 BoLD를 통해 Permissionless Validation을 달성하고, 비탈릭이 제안한 롤업 마일스톤 Stage 2에 도달해 레이어 2 시장에서의 압도적인 경쟁력을 유지하고자 함
서론
블록체인 기술의 핵심 가치는 중앙 권력이 존재하지 않는 탈중앙화된 네트워크에서의 투명성과 신뢰에 바탕을 두고 있습니다. 탈중앙화라는 측면에서 네트워크에 참여하는 노드들 간의 합의가 중요하고, 이 합의 과정에서 이견으로 인한 분쟁이 발생하는 것은 자연스러운 현상입니다. 이러한 자연스러운 분쟁 상황을 어떻게 빠르면서도 공정하게 해결할 수 있는가가 블록체인 네트워크의 확장성과 안정성에 중요한 요소가 됩니다.
이더리움 블록체인은 대중화를 통한 탈중앙화에는 성공했지만 그 역설로 인해 높은 가스비와 느린 트랜잭션 속도로 인해 확장성에 한계를 가져왔습니다. 소위 말하는 블록체인 트릴레마를 극복하기 위해 여러 시도들이 있어왔고, 레이어 2 솔루션은 그 중 현재 가장 대중적으로 널리 채택되는 확장성 극복 방법의 하나가 되었습니다. 아비트럼은 이더리움을 기반으로 하는 레이어2 솔루션 중 가장 높은 TVL(Total Value Locked)와 인지도를 가지고 있는 프로젝트입니다. 아비트럼은 분쟁을 해결하기 위한 자체 분쟁 해결 프로토콜을 가지고 있습니다. 이 분쟁 해결 프로토콜을 통해 아비트럼은 네트워크의 무결성을 보장했지만, 초기 분쟁 해결 프로토콜은 일부 지연 공격에 대해 취약점을 갖고 있었습니다. 기존의 분쟁 해결 프로토콜인 Arbitrum Classic(별도의 명칭이 있었던 것은 아니지만 BoLD와 구분하기 위해 이렇게 부릅니다)은 악의적인 검증자가 충분한 자금만 가지고 있다면 L2에서 L1으로의 Withdraw(인출)를 원하는 만큼 지연시킬 수 있었습니다. 이를 지연 공격(Delay-attack)이라고도 합니다. 이 한계점을 극복하기 위해 아비트럼의 개발사인 Offchain Labs는 차세대 분쟁 해결 프로토콜인 BoLD(Bounded Liquidity Delay)를 지난 4월 공개했습니다. BoLD는 이전 Arbitrum Classic을 대체하는 강력하고 효율적인 분쟁 해결 프로토콜입니다.
왜 아비트럼은 BoLD가 필요했나?
2020년 아비트럼이 등장하고 약 4년이 지난 지금, 아비트럼은 왜 새로운 분쟁 해결 프로토콜을 개발/적용하고자 했을까요?
2022년 이더리움의 창시자 비탈릭 부테린은 롤업과 관련되어 하나의 제안을 한 적이 있습니다. 일종의 레이어 2 롤업 프로젝트들이 달성할 목표와 같은 것인데, 레이어 2 프로젝트들의 정보를 모아 제공하는 L2beat 팀은 비탈릭이 제안한 마일스톤을 통해 프로젝트를 평가하고, 달성도를 표기하고 있습니다.
아비트럼은 가장 높은 시장 점유율을 가지고 있음과 동시에 TOP 10 프로젝트 중 가장 높은 Stage인 Stage 1을 달성했다는 것을 알 수 있습니다. 가장 강력한 경쟁자인 옵티미즘이 버그 픽스를 이유로 Permissioned로 임시 전환하며 리뷰 중이 되다 보니 현재 유일한 Stage 1 Rollup로 등록됐습니다. Stage에 대한 구체적인 설명은 여기에서는 다루지 않고, 비탈릭의 글을 상세히 설명되어 있으니 찾아보시면 좋을 것입니다. 총 3단계의 Stage 중 Stage 1도 굉장히 높은 수준의 보안성을 의미합니다. 아비트럼은 이에 (당연하지만) 안주하지 않고 Stage 2로 나아가려 하고 있습니다. Stage 2는 가장 이상적인 형태로 완전한 탈중앙화된 단계를 의미합니다. 아비트럼의 경우 Stage 1에 해당하는 ‘사기 증명 시스템의 활성화’를 달성하긴 했지만, Stage 2를 달성하기 위해서는 ‘누구나 L2의 State(상태)를 검증하고 제약 없이 이더리움(L1)에 사기 증명을 게시’할 수 있도록 해야 합니다. 즉, Stage 2를 달성했다는 것은 하나의 레이어 2 프로젝트가 특정 단체에 의해 컨트롤되지 않고 모든 커뮤니티로부터 집단적인 감시 체계를 구축해 탈중앙화를 완전히 이루었다는 의미를 갖습니다.
앞서 볼 수 있었던 L2beat 이미지를 자세히 보면 작은 파이차트가 있다는 것을 확인하실 수 있습니다. 파이차트는 비탈릭이 제안한 5가지 wheel을 시각화해 나타낸 것인데, 이 요소들을 모두 충족하면 Stage 2를 달성하게 됩니다. BoLD는 이 5가지 중 State Validation을 중간 단계라는 의미의 노란색에서 완전히 달성했다는 의미의 초록색으로 업그레이드하기 위해 개발 및 채택된 기술이라고 보시면 됩니다.
아비트럼은 기존의 Arbitrum Classic을 업그레이드하는 형태의 BoLD를 통해 이 Stage 2 달성을 위한 단계로 나아가고자 하고 있습니다. 아비트럼은 이 BoLD 프로토콜을 통해 누구나 아비트럼의 State에 이의를 제기할 수 있어, 허가 없는 검증(Permissionless validation)을 가능하게 합니다.
아비트럼 측은 BoLD를 통해 누구나 검증 가능한 네트워크가 되었다는 의미로 여러 차례 Permissionless를 강조합니다.
BoLD란?
BoLD가 무엇을 위해 제안된 것인지에 대해 이해했다면, 이제 BoLD에 대해 상세히 알아보아야할 차례입니다. 앞서 언급한 대로 BoLD는 아비트럼의 기존 분쟁 프로토콜인 Arbitrum Classic을 대체, 즉 업그레이드한 것입니다. 검증자가 아비트럼의 State에 대한 분쟁을 열고, 해결하는 과정에서의 적용되는 규칙 중 일부를 변경해 누구나 체인의 State 검증에 참여하고, L1에서의 Withdraw(인출) 과정에서의 보안성을 강화할 수 있습니다.
BoLD의 ‘단순한’ 작동 원리
BoLD의 작동 방식을 통해 조금 더 명확히 BoLD에 대해 이해해볼 수 있습니다. BoLD의 작동 원리는 굉장히 단순합니다. 물론 실제 운영을 위해서는 복잡한 수식과 엄청난 코드의 향연이 펼쳐지기는 하지만, 그 개념 자체는 단순하죠. 아비트럼의 State는 결정론적(Deteministic)이기 때문에 특정 input에 대해 항상 유일한 correct state가 존재합니다. 우리가 중학교 때 배운 함수와 같은 느낌으로 보시면 이해가 편하실 듯 합니다. BoLD는 아비트럼이 결정론적인 State를 가지고 있음을 전제로 출발합니다.
- 주장(Assertion) 제기
검증자는 가장 최근에 컨펌된 롤업 블록(RBlock)인 Block A를 가지고, 이후 일정수의 트랜잭션이 결정론적 상태 전환 함수(State Transition Function, STF)에 의해 계산된 결과값이 Block Z라는 최종 State가 될 것이라고 주장합니다. 검증자가 이 Block Z가 올바르다고 판단한다면, 자신의 자금을 Block Z에 본딩(묶는다에 가깝습니다)하고 해당 State를 이더리움에 게시할 것을 제안합니다. 이의 제기 기간이라고 하는 일정 시간이 지나도 아무도 이의를 제기하지 않으면, 아비트럼의 롤업 블록인 Block Z가 나타내는 State가 올바른 아비트럼 체인 State로 확정됩니다. 그러나 누군가 이 Block Z에 의심을 갖게 된다면, 이의를 제기할 수 있습니다. 이제, BoLD가 등장합니다. - 챌린지(Challenge) 개시
이의를 제기한 다른 검증자가 자신이 주장하는 Block A의 또 다른 최종 State인 Block Y에 자금을 본딩 하며 ‘분쟁’이 시작됩니다. Block A가 Block Z가 될 것인지, Block Y가 될 것인지 결정을 해야 하죠. 앞서 함수와 비슷하다고 말씀드렸는데, 함수는 두 집합에서의 각 원소에 대해 다른 집합의 원소와 하나씩만 대응될 때 함수라고 합니다. 아비트럼의 State 역시 결정론적이기 때문에 하나에만 대응되어야 하죠. 지금 챌린지가 개시된 State에서는 두 가지에 대응되기 때문에 단 하나의 승자가 나올 때까지 분쟁 상황에 놓이게 됩니다. 그리고 이를 해결하는 ‘분쟁 해결 프로토콜’이 BoLD입니다. 이전에는 Arbitrum Classic이 이 역할을 했죠.
여기에서 챌린지를 개시하는데 누군가의 허가는 필요 없습니다. 누구나 자신의 자금을 본딩 하기만 한다면 챌린지 할 수 있습니다. 여기에서 Permissionless라는 용어가 등장하게 됩니다.
이의 제기가 열린 동안 주장은 두 가지가 됩니다. Block A → Block Z와 Block A → Block Y. 레이어 1인 이더리움 네트워크에서는 어떤 주장이 옳은지 알 수 없습니다. 다만, 이런 상반된 주장이 있었다는 기록은 남겨둡니다. - 다단계의 상호작용 분석(Multi-level, interactive dissection begins)
BoLD 프로토콜에서 이 분쟁을 해결하는 과정은 아주 간단한 개념을 기반으로 하고 있습니다. 모든 트랜잭션을 처음부터 하나씩 확인하기에는 엄청난 비용과 시간이 들 것이기 때문에 BoLD에서는 각 검증자의 주장을 단계적으로 절반씩 잘라가며(bisect) 논쟁의 범위를 좁혀나갑니다.
각 검증자는 서로 번갈아가며 자신들의 주장을 작은 부분으로 나누어 비교합니다. 이 과정을 계속 반복하다보면 결국 하나의 올바른 State만이 존재하게 됩니다. 크게 세 단계로 이 과정이 나뉩니다.
블록 챌린지(Block Challenge) : 두 검증인 서로 동의하지 않는 특정 블록이 무엇인지 식별될 때까지 번갈아가며 History Commitment를 쪼개나갑니다. 그러다보면 서로 동의하지 않는 어느 블록 하나가 특정될 것입니다. 다른 트랜잭션들을 다 확인할 필요없이 특정 블록 하나에 있는 트랜잭션을 검증하면 되니 상대적으로 문제 해결이 간편해집니다.
빅 스텝 챌린지(Big Step Challenge) : 블록 챌린지를 통해 분쟁을 하나의 블록으로 좁혔다면 해당 블록 내에서 앞 뒤로 분할하는 작업을 진행합니다. 여기에서는 상태 전환 함수(State Transition Function)을 사용해 특정 명령어 범위를 좁혀나가고, 서로 의견이 일치하지 않는 명령어 범위가 나올 때까지 반복합니다.
원 스텝 챌린지(One Step Challenge) : 마지막으로 하나의 명령어만 남을 때까지 이 과정을 반복합니다. 아비트럼의 State는 언제나 결정론적이기 때문에 단 하나의 올바른 State를 갖고 있을 것입니다. 그럼 둘 중에 하나는 맞고, 하나는 틀리겠죠. 최종적으로 남게 된 명령어의 특정 함수를 통해 실행한 결과를 검증해보면 어떤 State가 올바른지 판단할 수 있게 될 것입니다. - 원 스텝 증명 (One Step Proof)
원 스텝 챌린지까지 오게 되면 각 검증자는 해당 단계를 실행해 원 스텝 증명을 생성한 다음 L1 체인의 스마트 컨트랙트에 제출합니다. L1의 스마트 컨트랙트는 두 검증자가 제출한 증명의 정확성을 검증하게 됩니다. 정직한 쪽의 증명이 정확하다고 판단되면, 해당 검증자 측의 트리를 유효한 것으로 확정하고 반대쪽 주장은 기각(Reject)됩니다. - 컨펌(Confirmation)
정직한 쪽의 원 스텝 증명이 확인되면 정직한 검증자 측은 본딩했던 자금을 회수할 수 있으며, 잘못된 주장을 한 검증자는 자신이 본딩했던 자금을 몰수당하게 됩니다. 이 과정에서 생긴 L1 가스 비용과 같은 부대 비용은 건전한 생태계 유지를 위한 비용으로 판단해 아비트럼 재단 측에서 보상해줍니다. - 타이머 : 경우에 따라 이러한 검증을 주고받는 과정 없이 챌린지가 종료되기도 합니다. 바로 시간에 따른 방법인데, 모든 챌린지에는 BoLD에서 정한 규칙에 따른 타이머가 부여됩니다. 한 쪽이 먼저 주장하고 나서, 상대 측이 응답을 제출하지 않고 시간을 초과하게 되면 제출한 쪽의 주장이 자동으로 확정됩니다.
BoLD의 무거운 자본주의
겉보기엔 다소 복잡해 보이지만, 실상은 아주 간단한 원리에 의해 동작하는 이 BoLD가 독특한 점은 바로 BoLD의 경제적 측면에 있습니다. 제가 관심을 갖게 된 것도 바로 이 점 때문인데, 아비트럼의 개발사 Offchain Labs는 이 프로토콜의 안정적 운영을 위해 다소 파격적으로 보이는 경제 시스템을 운영하고 있습니다.
앞서 살펴본 바와 같이 우리는 BoLD 프로토콜 하에서 아비트럼 체인에서의 잘못된 State를 챌린지하기 위해서는 일정 자금을 본딩 해야 한다는 것을 알 수 있었습니다. 그런데 이 일정 자금이 어마어마하게 큽니다. 앞서 Arbitrum Classic에서의 문제점은 일정 자금만 있으면 악의적으로 누군가가 계속해서 지연 공격을 가할 수 있다는 것에 있다고 말씀드린 바 있습니다. Offchain Labs는 여기에 대한 해결책으로, 이 일정한 자금의 수준을 어마무시하게 높여버리는 방법을 채택했습니다. 주장을 위한 본딩에는 3,600 ETH가 필요한데, 이 액수는 24년 8월 22일 기준 약 한화로 125억여 원에 이르는 큰 금액입니다. 반드시 개인이 혼자 다 이 3,600 ETH를 내야 하는 것은 아니고 같은 의견을 가진 여러 사람이 공동으로 제출할 수는 있게 해두었습니다. 챌린지 과정을 통해 자신의 주장이 올바르다면 돌려받을 수 있지만, 반대로 잘못된 주장을 할 경우 이 125억 원을 몰수당하게 되고, 몰수된 자금은 아비트럼 DAO에 귀속됩니다.
뿐만 아니라 챌린지의 각 단계에서도 본딩이 필요한데, 8월 업데이트 기준 블록 챌린지에서 원 스텝 챌린지의 단계까지 이어지는 각 챌린지 단계마다 각각 555 ETH와 79 ETH의 본딩이 필요합니다. 즉, 555 ETH는 블록 챌린지에 79 ETH는 낮은 단계의 챌린지에 필요한 본딩 금액입니다.
BoLD 프로토콜의 Economics 문서에서 이들이 이렇게 설계한 의도를 살짝 엿볼 수 있습니다. BoLD 프로토콜에 따라 이의가 발생하고, 챌린지과정을 거치는 동안 본딩된 금액들은 기본적으로 아비트럼 재단에서 관리하게 됩니다. 모든 과정이 끝난 이후 정직하지 않은 쪽에는 매우 치명적이게도 본딩 금액 전액을 몰수하는 패널티를 부과하고, 정직한 쪽에는 본딩 금액을 모두 회수할 수 있게 하고 여기에 더불어 몰수된 패널티의 1%를 보상으로 지급하는 인센티브 제도를 사용합니다. 3600 ETH의 1%만 되더라도 36 ETH라 상당히 큰 금액입니다. 자신이 정직한 검증자라면 챌린지를 마다할 이유가 없으며, 타이머를 통해 시간이 초과되더라도 몰수될 수 있기 때문에 쓸데없이 긴 시간을 낭비하지 않도록 해, 빠른 분쟁 해결이 되도록 유도합니다.
아비트럼은 이 모든 경제학적인 설계가 시스템의 안정성을 위한 것이라고 말합니다. 확실히 안정성은 유지될 것입니다. 정말 확실하게 잘못된 것이라는 판단이 아니라면 어지간해선 개인이 쉽게 주장할 수 없는 금액을 설정해 악의적인 공격자가 네트워크를 지연시키지 못하도록 하면서, 동시에 올바른 검증자에게 상당한 규모의 보상을 함으로써 검증자 풀이 지속적으로 유지될 수 있도록 독려하는 효과를 가질 것으로 보입니다.
오픈소스를 통한 공개
Offchain Labs는 오픈소스를 통해 BoLD 프로토콜을 공개했습니다. 여기에서 우리는 앞서 살펴본 BoLD의 챌린지 과정이 어떤 아키텍처를 통해 구현되었는지 확인할 수 있습니다.
Offchain Labs의 BoLD github를 통해 그들이 연구한 백서를 포함한 BoLD 프로토콜의 코드를 통해 실제 프로세스를 local 환경에서도 구현해 동작 원리를 구현해볼 수도 있습니다. 이런 공개 과정을 통해 아비트럼의 분쟁 해결 프로토콜을 개량해나가려는 모습은, 이외의 핵심 코드들은 비공개로 남겨두는 경우가 많은 Offchain Labs의 그간 행보와 달리 BoLD를 통해 진정한 탈중앙화 시스템 구축으로 나아가려는 그들의 의지를 담았다고도 볼 수 있겠습니다.
결론
아비트럼은 BoLD 프로토콜을 도입하면서 기존의 Arbitrum Classic이 지니고 있던 한계를 극복하고, Permissionless validation을 달성해 탈중앙화와 보안성을 강화하는 새로운 도약을 준비하고 있습니다. 기존에 문제로 지적되었던 지연 공격 방지를 위한 BoLD 프로토콜은 단순하면서도 명확한 구조를 기반으로 기술적 업그레이드를 포함하고 있으며, 다소 과감한 경제적 구조를 채택하고 있습니다. Offchain Labs는 악의적인 공격자를 방어하기 위해 혁신적인 시스템 설계보다는 경제적 진입 장벽을 높이는 방식을 선택하여 Permissionless 환경을 구현하려는 것으로 보입니다. 아무리 효율적인 보안 기술이 도입되더라도 시간이 지나면 취약점이 드러날 수 있지만, 이러한 강력한 경제적 장벽은 시간이 지나도 쉽게 무너지지 않는 방패 역할을 할 수 있을 것입니다.
아비트럼의 분쟁 해결 프로토콜 개선 사례에서 볼 수 있듯이 비탈릭 부테린이 제시한 Rollup training wheels의 Stage 2를 달성해야만 롤업으로서의 가치를 인정받을 수 있는 것은 아니지만, 많은 레이어 2 프로젝트들이 지금도 연구/분석/테스트를 통해 기존 시스템을 개선하려는 동기부여로서의 역할을 하고 있는 것으로 보입니다. 사용자들 역시 레이어 1의 보안성만을 의존하기보다 자체 메인넷을 꾸준히 개선하는 레이어 2 프로젝트들에 주목하며 우수한 프로젝트를 선별하는 과정에 나서고 있습니다.
최근 비트코인, 이더리움을 포함한 코인 시장이 다소 소강상태에 접어든 현 시점에서도, 여전히 가장 높은 시장 점유율과 TVL을 보유하고 있는 레이어 2의 강자 아비트럼이 Stage 2로의 도약과 함께 시장의 압도적 지배자의 위치를 유지할 수 있을지 주목됩니다. 또한, Offchain Labs의 이 실험적 BoLD 도입을 통해 거대한 아비트럼 생태계가 더욱 투명하고 탈중앙화된 시스템으로 성숙해질 수 있을지 기대됩니다.
References
L2beat summary
https://l2beat.com/scaling/summary
A gentle introduction: BoLD, Arbitrum Docs. last updated on Aug, 2024.
https://docs.arbitrum.io/how-arbitrum-works/bold/gentle-introduction
Proposed milestones for rollups taking off training wheels, Vitalik Buterin. Nov, 2022.
https://ethereum-magicians.org/t/proposed-milestones-for-rollups-taking-off-training-wheels/11571
Inside Arbitrum Nitro, Arbitrum Docs, last updated on Aug, 2024.
https://docs.arbitrum.io/how-arbitrum-works/inside-arbitrum-nitro#the-rollup-chain
Arbitrum BOLD, Esther Oche. Jan, 2024.
https://medium.com/web3-writers-guild/arbitrum-bold-95b6cd1b184a
Offchain Labs — BoLD github
https://github.com/OffchainLabs/bold
‘Arbitrum is (once again) the only Stage 1 EVM rollup.’ Steven Goldfeder Twitter. Aug, 2024.
https://x.com/sgoldfed/status/1826377841283662073
'IT > BlockChain' 카테고리의 다른 글
아비트럼 Stylus가 여는 스마트 컨트랙트 개발의 확장 (2) | 2024.09.10 |
---|---|
필리퀴드(파일코인 DeFi 플랫폼) 테스트넷 서비스 체험기 - 2 (1) | 2024.03.06 |
필리퀴드(파일코인 DeFi 플랫폼) 테스트넷 서비스 체험기 - 1 (0) | 2024.03.06 |
디퍼런스(DE-FERENCE) 2024 참관기 (0) | 2024.02.22 |
한 발 늦은, KOBAC 2024 행사 참관기 (0) | 2024.02.03 |
[ Bazel ] Windows 환경에서 설치하기 | bazelisk
바젤(Bazel)은 소프트웨어 빌드 및 테스트 자동화를 돕는 오픈소스 기반 툴입니다. Google 내부에서 사용중인 빌드 툴인 Blaze를 대외에서 사용할 수 있도록 일부 공개한 버전의 툴을 Bazel이라 부릅니다. 2015년 3월 출시되어 2024년 7월 현재 배포된 최신 버전은 7.2.1 버전입니다.
바젤의 장점은 Java, C++, Go, Android 및 iOS 등 다양한 플랫폼을 지원하고, 빠른 빌드 속도를 자랑한다는 점이 된다고 합니다. 바젤은 현재 Adobe나 ASML, Canva, Compass 등 다양한 기업에서 사용중인 것으로 알려져 있습니다.
저는 Windows 환경에서 사용할 예정이라 Windows에서 설치하는 법을 알아보도록 하겠습니다.
먼저 바젤 설치 전에 Windows에서는 Microsoft Visual C++ Redistributable package 설치가 필요합니다.
이 링크를 통해서 설치를 먼저하시고 다음을 진행해주세요.
https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
링크는 MS 공식 링크이니 걱정하시지 않으셔도 됩니다!
바젤에서는 권장 버전의 업데이트를 자동으로 할 수 있게, Bazelisk 사용을 권장하고 있습니다. Bazelisk는 Go로 래핑한 Launcher입니다. MacOS의 경우 Brew를 통해 간편하게 설치할 수 있는데, Windows의 경우 설치 과정에서도 Chocolatey를 사용하도록 하며, Path 관리가 필요합니다.
일단 직접 바젤을 설치하려면, 총 5가지 방법을 사용할 수 있습니다.
권장되는 방법은 Bazelisk를 사용하는 것입니다. 제가 이 방법을 따라가기 때문에 가장 마지막에 안내드릴께요.
1. Github에서 Bazel binary 다운로드받기
바젤 공식 깃허브에서 latest 버전에 대한 다양한 asset을 지원하니 다운받아주시면 됩니다.
https://github.com/bazelbuild/bazel/releases
원하는 형태의 확장자를 확인하시고 다운받아주시면 됩니다. Windows 환경 기준에서는 bazel-{version}-windows-x86_64.exe를 확인하세요.
2. Chocolatey에서 Bazel 설치
Chocolatey 패키지를 미리 설치해뒀다는 가정하에 다음 커맨드를 통해 Bazel 패키지를 설치할 수 있습니다.
$ choco install bazel
3. Scoop에서 Bazel 설치
Scoop은 저도 잘 모르는 패키지라, 공식 홈페이지의 안내를 꼭 확인해주시기 바랍니다. 기본 내용은 다음과 같습니다.
- Scoop 패키지 설치
$ iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
- Bazel 패키지 설치
$ scoop install bazel
4. 소스에서 Bazel 컴파일하기
내용이 굉장히 길고 복잡한데, 굳이 소스에서 컴파일해오는게 개인적으로는 큰 의미가 있을지는 모르겠어서, 관련 내용을 첨부해드립니다. 필요하신 분은 직접 확인해보시면 좋을 것 같습니다.
https://bazel.build/install/compile-source?hl=ko
5. Bazelisk를 통한 설치 (Bazel 공식 권장)
Bazelisk를 통한 설치를 권장하는 이유는 자동 업데이트를 통한 버전 관리가 용이하기 때문입니다. Bazel이라는 툴이 자주 사용되는 툴은 아니기 때문에 업데이트에 굳이 신경쓰지 않는 것이 좋다면, Bazelisk를 통해 설치하는 것이 좋겠습니다.
위에서 말씀드린대로 저는 Bazelisk를 통해 설치했는데, 아래 링크를 통해 간편하게 설치할 수 있습니다.
https://github.com/bazelbuild/bazelisk/releases
위의 2번에서 Chocolatey를 사용하는 방법이 있었는데, Bazelisk도 chocolatey를 통해 쉽게 설치할 수 있습니다.
$ choco install bazelisk
Bazelisk는 npm으로도 배포되어있어 $ npm install -g @bazel/bazelisk 로도 설치할 수 있습니다.
저는 bazelisk-windows-amd64.exe를 다운받아 설치했습니다.
설치는 자동으로 진행되니, 설치가 완료되면 $ bazel version을 통해서 제대로 설치되었는지 확인하시면 됩니다.
'IT > Develop' 카테고리의 다른 글
[React] 'React' must be in scope when using JSX 오류 해결하기 (0) | 2023.02.19 |
---|---|
[React] React에서 <a> 태그 사용 오류 해결 방법 (0) | 2023.02.07 |
[Javascript] 변수선언 var, let, const ? (0) | 2023.02.06 |
[Algorithm] Merge Sort (합병 정렬) (0) | 2022.12.09 |
[Nodejs] Nodejs 설치와 버전 관리, 개발용 의존성 설치 방법 (0) | 2022.04.28 |
필리퀴드(파일코인 DeFi 플랫폼) 테스트넷 서비스 체험기 - 2
안녕하세요. 블록체인하는 만두아빠입니다.
지난 포스팅에 이어 스테이킹한 FIL토큰을 기반으로 이자농사와 언스테이킹도 체험해보겠습니다.
스테이킹이 완료되고나서 파밍(이자농사) 탭으로 넘어와보면 FIL토큰 스테이킹으로 받은 FIT 토큰으로 파밍할 수 있습니다. 지난 포스팅에서 확인한대로 59개의 FIL토큰 스테이킹하면 약 58.9개의 FIT 토큰을 수령할 수 있는데, 이 FIT 토큰을 특정 기간 동안 Lock하고 이자를 수령할 수 있습니다. 저는 테스트니까 1개월만 진행해볼께요.
예상되는 보상이 378.53 FIG 라고 뜹니다. 일단 찍히는 금액이 58.93에 비해 매우 커보이긴한데, 어느정도의 가치를 지닌 토큰인지..
농사를 클릭하고 트랜잭션을 진행해줍니다.
저렴한 가스비..
한국어로 되어있긴한데, 또 무슨말인지 얼추 알 것 같기는 한데, 번역이 조금 이상합니다. 변동기간 농사, 농사짐..?!
FIG 잔액에 아까 확인할 수 있었던 379.5310 FIG가 추가되었습니다. 대신 제 FIT 토큰은 4월 5일까지 잠겨있다고 뜹니다.
FIG 토큰을 직접 메타마스크 지갑에 추가할 수 있습니다.
이제 메타마스크에서 tFIL 토큰 말고도 FIG 토큰의 보유량을 확인할 수 있습니다.
언스테이킹은 처음 포스팅에서 진행했듯이 스테이킹 페이지로가면 할 수 있습니다.
이자농사를 위해 스테이킹해서 얻은 FIT 토큰을 모두 잠궈버렸기 때문에 Faucet을 통해 다시 10 FIL을 받아 스테이킹을 했습니다. 이 중에 2개를 언스테이킹해봅니다.
해왔던 대로 메타마스크에서 컨펌하면 생각보다 조금 긴 시간이 지난 후에 성공적으로 언스테이킹할 수 있습니다. 2개의 FIT 토큰을 언스테이킹해 총 2.000338 FIL 토큰을 수령했습니다.
테스트 마무리한 시점에서의 FIL 토큰과 FIT 토큰 잔액입니다.
여기까지 필리퀴드 테스트넷에 참여해보고 포스팅을 남겨보았습니다.
필리퀴드 테스트넷은 비록 현지화가 완벽하게 된 것은 아니지만 필요한 부분에서의 한국어 번역이 잘 진행되었고 깔끔한 UI와 간단한 사용성을 갖고 있음을 확인할 수 있었습니다. 또한 가스비가 매우 저렴했고, 다양한 지갑을 지원하는 점이 매력적이었습니다. 다만 각 트랜잭션 마다의 딜레이 시간이 굉장히 긴 편이고, 한국어 번역이 전반적으로 잘되어있지만 용어를 단순하게 번역한데 그쳐 다소 어색한 표현이 많이 보였습니다. 그리고 FIT 토큰에 관한 설명은 바로 확인이 가능했지만 파밍농사와 관련된 FIG 토큰에 대해서는 별다른 정보가 제공되지 않아 활용을 어떻게 해야할지 알기 어렵다는 점이 단점이었습니다.
테스트넷 이후에 여러 피드백을 받아 개선된다면 파일코인 투자자로서 새로운 파일코인의 사용처가 생긴다는 점에서 큰 점수를 줄 수 있을 것 같습니다. 앞으로의 필리퀴드 행보도 기대됩니다.
'IT > BlockChain' 카테고리의 다른 글
아비트럼 Stylus가 여는 스마트 컨트랙트 개발의 확장 (2) | 2024.09.10 |
---|---|
아비트럼 BoLD: 단순한 원리와 무거운 자본주의의 분쟁 해결 프로토콜 (2) | 2024.08.23 |
필리퀴드(파일코인 DeFi 플랫폼) 테스트넷 서비스 체험기 - 1 (0) | 2024.03.06 |
디퍼런스(DE-FERENCE) 2024 참관기 (0) | 2024.02.22 |
한 발 늦은, KOBAC 2024 행사 참관기 (0) | 2024.02.03 |
필리퀴드(파일코인 DeFi 플랫폼) 테스트넷 서비스 체험기 - 1
안녕하세요. 블록체인하는 만두아빠입니다.
작성일 기준으로 비트코인이 9천만원을 돌파하고, 이더리움이 5백만원을 넘는 등 그야말로 불장이 이어지면서 가상자산에 대한 관심이 크게 늘고 있음을 느끼고 있습니다. 하지만 블록체인에의 관심이 너무 투자 쪽에 집중되는 상황이라 오히려 블록체인 기술에의 관심은 상대적으로 줄어들고 있는 것은 아닌가 느끼기도 합니다. 그런 중 이번에 필리퀴드에서 테스트넷을 오픈해 체험한 경험을 공유해드리기 위해 포스팅을 작성해봅니다.
우선, 필리퀴드를 체험하기 전에 파일코인(Filecoin)이 무엇인지 먼저 알아야합니다. 필리퀴드는 이 파일코인의 FIL토큰을 기반으로하는 서비스이기 때문입니다.
파일코인은 분산형 클라우드 스토리지용 P2P(Peer-to-Peer) 네트워크로 Protocol Labs에서 개발하고 있습니다. 창립자인 Juan Benet은 IPFS(InterPlanetary File System)를 창시한 사람이기도 합니다. 파일코인의 FIL 토큰은 네트워크 참여자들이 서비스를 제공/활용하는 과정에서 사용되는 토큰으로 파일코인은 FIL 토큰을 참여자들이 IPFS 스토리지 시스템 기반의 스토리지 공간을 제공하는 인센티브로 활용하고 있습니다.
필리퀴드는 이 파일코인의 FIL 토큰를 활용하는 DeFi 플랫폼입니다.
필리퀴드는 FIL 토큰을 활용해 추가 수익을 창출할 수 있는 여러 서비스 제공을 목표로 하고 있는 것 같습니다. 인프라 서비스에 해당하는 파일코인에도 이런 서비스가 생겨나는게 어쩌면 당연한 거였을 수도 있는데 왜 이제서야 처음으로 등장하는 걸까 싶기도 합니다.
그럼 이제 체험을 해볼까요?
필리퀴드 홈페이지에 접속하면 테스트넷 참여를 할 수 있는 버튼을 쉽게 발견할 수 있습니다. 한국 사용자들을 위해 한국어 서비스가 제공되는 것도 굉장히 마음에 드네요.
하지만 일단 테스트에 참여하기 위해서는 테스트넷을 위한 FIL토큰을 수령해야합니다.
다양한 방법이 있겠지만, 저는 Calibration Faucet을 제공하는 곳을 찾아 토큰을 수령했습니다. Faucet은 수도꼭지라는 뜻이죠. 틀면 나오는 수도꼭지처럼 클릭하면 토큰을 제공받을 수 있는 서비스를 의미합니다. 일반적으로 테스트넷에서 사용할 토큰을 받기 위해 사용됩니다. 한 번에 10FIL 정도를 제공해주기 때문에 시간을 두고 약 60FIL 정도를 받아 테스트를 진행했습니다.
필리퀴드 테스트넷을 들어가보면 아래와 같은 화면을 만날 수 있습니다.
여기에서도 한국어로된 서비스를 만날 수 있네요. 아주 현지화가 잘 된 서비스라는 생각이 들었습니다. 처음 DeFi를 사용하시는 분들께는 좀 어려울 수 있지만 가이드가 제공되고 있으니 확인해보시면서 하나씩 알아갈 수 있을 것 같습니다. 물론 가이드는 영어로 되어있어요.
테스트를 위해서 먼저 지갑을 연결해줍니다. 보통 메타마스크 정도 지원하는게 일반적인데, 필리퀴드에서는 다양한 지갑을 지원하고 있는 것을 알 수 있습니다. 솔라나 네트워크를 기반해서 사용되는 지갑은 거의 대부분이 지원되는 것 같습니다.
저는 Faucet에서 60tFIL을 받아두었기 때문에 메타마스크 연결하니 tFIL이 확인되었습니다. 지갑을 연결하면 바로 테스트넷으로 전환될 수 있도록 합니다.
지갑 연결이 완료되면 테스트넷 페이지에서도 FIL 잔액을 확인할 수 있습니다. 가장 먼저 기본적인 스테이킹부터 체험해봤습니다. 60개가 있는데 전부 다 넣지 않고 일단 59개만 스테이킹해봤습니다. FIL 토큰을 스테이킹하면 받게되는 유동성 토큰인 FIT를 FIL 토큰 59개 기준으로 약 58.9개 정도 받게된다는 것을 알 수 있네요. FIL/FIT 교환비율이 1.001167이라고 표시된 것도 확인할 수 있습니다.
스테이킹 금액을 체크하고 확인버튼을 누르면 트랜잭션이 진행됩니다.
메타마스크에서 트랜잭션을 위한 가스비를 확인할 수 있습니다. 스테이킹을 위한 트랜잭션에 가스비는 0.00000923tFIL이 들어가는걸 볼 수 있네요. 거의 들어가는 가스비가 없는 수준의 저렴함입니다. 최근 이더리움의 급상승으로 이더리움 가스비 폭탄만 보다가 필리퀴드 가스비를 보니 거의 공짜로 쓴다는 생각이 들 정도입니다.
가스비를 확인하고 메타마스크에서 컨펌하면, 한 15~20초 정도가 지나고 스테이킹이 성공적으로 완료됩니다. 트랜잭션 체크를 통해 Explorer 서비스에서 해당 트랜잭션 내용을 확인할 수 있습니다.
FILSCAN은 꽤나 깔끔하게 생겼네요. 정상적으로 잘 전송되었음이 확인됩니다. 여기까지가 완료되면 스테이킹은 완료됩니다.
스크린 캡쳐를 하나씩 하면서 진행하다보니 생각보다 분량이 많아져서 별다른 건 없지만 두 개의 포스팅으로 나눠서 작성해보려합니다. 다음 포스팅에서는 파밍(이자농사)와 언스테이킹을 체험한 내용을 공유드리겠습니다.
'IT > BlockChain' 카테고리의 다른 글
아비트럼 BoLD: 단순한 원리와 무거운 자본주의의 분쟁 해결 프로토콜 (2) | 2024.08.23 |
---|---|
필리퀴드(파일코인 DeFi 플랫폼) 테스트넷 서비스 체험기 - 2 (1) | 2024.03.06 |
디퍼런스(DE-FERENCE) 2024 참관기 (0) | 2024.02.22 |
한 발 늦은, KOBAC 2024 행사 참관기 (0) | 2024.02.03 |
OKX 점프스타트(Jumpstart) 소개 및 참여방법 (0) | 2024.02.02 |