신규: Helius가 Light Protocol을 인수했습니다
로켓, 양자 위협, 0과 1: Solana의 진실을 벼리는 Dean Little
블로그/문화

로켓, 양자 위협, 0과 1: Solana의 진실을 벼리는 Dean Little

Developer Experience EngineerX의 0xIchigoLinkedIn의 0xIchigoGitHub의 0xIchigo
읽는 데 28분

소개

블록체인은 거짓말 위에 세워집니다. 정확히는 추상화 계층으로 드러나는 정중한 거짓말입니다. 개발자가 보는 세계는 속도와 안전을 약속하는 SDK, API, 프레임워크로 가득합니다. 하지만 현실은 훨씬 미묘합니다. 레지스터, syscall, 바이트코드가 곳곳에 널려 있고, 오직 광기에 가까운 사람만이 발을 들이는 세계입니다. 실제로 모든 추상화에는 오버헤드가 따르며, 모든 컴파일러는 진실을 숨깁니다.

Dean Little은 회로를 납땜하고 EEPROMS를 플래싱하며 이런 거짓말을 헤쳐 나가고 진실을 좇아 왔습니다. Bitcoin에서는 채굴 풀, GPU 커널, SPV 도구를 만들며 최대한 머신에 가까이 머물렀습니다. 당시에는 온전히 실현할 수 없었던 분산 시스템의 가능성도 배웠습니다. 이후 Solana를 만났고, 이단적인 행보로 이름을 알렸습니다. 어셈블리를 직접 작성하고, 컴파일러를 무시하며, syscall을 악용합니다. 재미 때문이 아니라 속도가 곧 진실이기 때문입니다.

Zeus Network의 수석 과학자로서 그는 Solana 위에 Bitcoin 프로토콜 전체를 처음부터 구현해 BTC 유동성이 원활하게 흐르도록 했습니다. 양자 위협을 둘러싼 FUD에는 반박 불가능한 실력으로 대응했습니다. 다른 이들이 초당 6개를 꿈꿀 때 초당 수만 개의 자산을 마이그레이션할 수 있는 Winternitz One-Time Signature 볼트를 설계했습니다.

하지만 Dean은 교육자이기도 합니다. Turbin3와 Blueshift, 그리고 최근 Solana Foundation의 중국어권 시장 팀에서 수행한 DevRel 업무를 통해 개발자들을 대부분이 보지 못할 세계로 이끕니다. 수백 명의 개발자가 온체인에 제품을 출시하도록 가르쳤으며, 때로는 그들의 모국어로 기초부터 교육했습니다. 그가 마주하는 긴장은 끊이지 않습니다. 추상화로 사람들을 끌어올린 뒤 다시 머신 가까이 밀어 넣습니다.

저는 교육과 실험, 추상화와 어셈블리, 인간을 위한 코드와 머신을 위한 명령어 사이의 긴장 속에서 산다는 것이 무엇인지 알고 싶었습니다. 이 인터뷰는 바로 그 대화에 관한 이야기입니다. 모두가 머신을 비껴 말할 때 머신과 직접 대화한다는 것이 무엇을 뜻하는지 살펴봅니다.

이 대화는 간결성을 위해 편집하고 축약했습니다.


인터뷰

시작과 세계관

한계를 그대로 받아들여서는 안 됩니다. 다른 사람들이 생각하지 못한 창의적인 방식으로 한계에 맞서야 합니다. 이것이 제가 Solana 작업에 적용해 온 철학입니다.

Dean Little
Dean Little
Syscall 악용자, 양자 고양이, Blueshift 큐레이터

Ichigo: Solana를 만나기 훨씬 전부터 하드웨어를 수리하고 EEPROM을 플래싱했으며 로켓용 임베디드 제어 시스템을 작성했습니다. 말 그대로 납땜 인두와 펌웨어를 다루며 하드웨어 가까이에서 일한 경험이 빌더로서의 세계관을 어떻게 형성했나요?

Dean Little: 열 살쯤에 납땜을 배웠습니다. 마이크로프로세서와 마이크로컨트롤러를 다루며 자랐고, 이후 웹과 모바일 개발로 옮겼다가 노르웨이의 로켓 스타트업에 합류했습니다.

미션 크리티컬 임베디드 시스템을 다루면 몇 가지 매우 중요한 점을 배웁니다. 첫째는 세부 사항에 대한 주의입니다. 무언가 실패하면 순식간에 큰 문제가 생길 수 있기 때문입니다. 둘째는 단순성입니다. 단순하고 빠르며 이해하기 쉬운 시스템이 지나치게 복잡한 시스템보다 대체로 낫습니다. 셋째는 적대적 관점으로 사고하는 법입니다.

해양 로켓의 밸러스트 제어 장치를 다룰 때 저는 끊임없이 질문합니다. 이 컨트롤러가 고장 나면 어떻게 되는가? 고장을 어떻게 감지하는가? 어떤 백업이 있는가? 자세 제어가 잘못되어 실제로는 아래를 향하면서 위를 향한다고 판단하면 어떻게 되는가? 모든 것이 늘 작동한다고 가정하는 대신 실패를 전제로 설계하게 됩니다.

또 하나 배우는 점은 다른 사람의 작업을 맹목적으로 신뢰해서는 안 된다는 것입니다. 소프트웨어와 하드웨어 모두에 해당합니다. 하드웨어 제조사가 사양을 바꾸거나, 조달 과정에서 실수로 잘못된 부품을 구매하면 갑자기 아무것도 작동하지 않습니다. 잘못될 수 있는 요소는 너무 많고, 작은 실수 하나만으로도 전체 시스템이 실패할 수 있습니다. 그 사고방식은 지금까지도 제게 남아 있습니다.

이후 빠르게 Bitcoin 업계로 진출했습니다. 채굴 풀, GPU 커널, SPV 도구, 그리고 나중에는 Twetch에서도 일했습니다. Bitcoin 인프라를 다룬 시절을 통해 대규모 분산 시스템 구축과 당시 블록체인의 한계에 관해 무엇을 배웠나요?

2017년쯤 Bitcoin 개발에 전업으로 뛰어들었습니다. Bitcoin, EOS를 비롯해 당시 인기 있던 여러 블록체인에서 제품을 만들었습니다. 처음에는 Bitcoin을 단순히 사용했지만 수수료가 크게 치솟자 사실상 사용할 수 없게 됐습니다. 리테일 사용자가 암호화폐로 처음 대거 유입된 시기였고, 그때 수수료가 급등하면 블록체인이 무용지물이 된다는 사실을 깨달았습니다.

그 경험을 계기로 이른바 ‘확장성 트릴레마’를 다시 생각하게 됐습니다. 솔직히 말하면 억지로 만든 헛소리 같은 문제입니다. 2017년에도 4MB 사진을 1초 안에 전 세계로 보낼 수 있었습니다. 블록체인이 1MB 블록 이상으로 확장될 수 없다고 믿는 건 터무니없어 보였습니다. 한계는 물리 법칙이 아니라 설계에 있었습니다.

Bitcoin의 베이스 레이어는 제약이 심하기 때문에 다른 방식으로 혁신할 수밖에 없습니다. 저는 Secp256k1을 깊이 파고들어 실행 결과를 서명 안에 숨기는 솔루션을 만들었습니다. ZK가 본격적으로 부상하기 훨씬 전의 원시적인 검증 가능 연산이었습니다.

그 시기를 통해 Bitcoin 회사를 운영하는 일은 곧 인프라 회사를 운영하는 일이라는 점을 배웠습니다. Bitcoin 프로토콜은 많은 일을 할 수 있지만 노드 소프트웨어에는 한계가 있습니다. UTXO 모델은 Solana 계정처럼 상태가 분리되어 있어 병렬화에는 훌륭하지만 공유 상태와 인덱싱에는 형편없습니다. 반면 Ethereum의 계정 모델은 공유 상태에는 훌륭하지만 병렬화에는 형편없습니다. Solana의 분리된 계정 모델을 보고 모든 것이 맞아떨어졌습니다. UTXO의 병렬화와 Ethereum 전역 상태 모델의 사용성을 결합했기 때문입니다.

그 시절 얻은 가장 큰 교훈은 시스템은 자주 실패하므로 파국적으로 무너지기보다 우아하게 실패하도록 설계해야 한다는 것입니다. 한계를 그대로 받아들여서는 안 됩니다. 다른 사람들이 생각하지 못한 창의적인 방식으로 한계에 맞서야 합니다. 이것이 제가 Solana 작업에 적용해 온 철학입니다.

이제 Solana 커뮤니티에서 많은 사람이 당신을 어셈블리를 작성하고 컴파일러를 무시하는 사람으로 알고 있습니다. 왜 머신에 그렇게 가까이 머무르나요? 대다수 개발자가 더 높은 수준에서 개발할 텐데, 고수준 추상화를 개선하는 데 더 집중하지 않는 이유는 무엇인가요?

대중의 인식과 달리 저는 Anchor, Pinocchio, Agave, Alpenglow 등 사실상 모든 것에 기여하고 있습니다. 암호학, SIMD, 저수준 프로그램까지 스택 전반에서 일했습니다.

Solana 개발에서 가장 큰 문제는 온체인 프로그램과 인프라를 제외한 모든 영역이 완전히 허가형이라는 점입니다. 공식 저장소에 제 PR을 병합하기는 거의 불가능합니다. 하지만 온체인 프로그램은 다릅니다. 시스템이 실수로 허용한 일이라면 무엇이든 할 수 있습니다. 그곳에서는 아무것도 저를 막지 않습니다. 무허가형이니까요. 계속 더 개선하고 끝내주게 만들 수 있습니다.

그러니 제 작업과 그 완성도, 온체인 프로그램을 위해 제가 한 일을 보고 다른 스택 계층에서도 같은 일이 일어나길 원한다면 제 PR을 병합하기 시작하세요. 하하.

어셈블리의 경우 솔직히 컴파일러가 일을 형편없이 하고, 이를 개발하는 사람들도 별반 낫지 않습니다. 최종 고객인 개발자의 말에 실제로 귀 기울일 시간을 낸 적이 없습니다. 그래서 우리 삶을 더 편하게 만들기 위해 독립적인 자체 툴체인을 직접 구축해야 했습니다.

안타깝게도 대부분의 개발자는 그저 중간 수준입니다. 나쁘다는 뜻은 아니지만 Cavey나 저, 또는 실제로 고성능 코드를 작성할 줄 아는 Ellipsis DeFi의 고수들과는 다릅니다. 우리는 가장 낮은 수준에서 시스템의 한계를 밀어붙이고 모두가 더 편하게 사용하도록 개선하는 법을 아는 독특하고 작은 개발자 집단입니다.

우리의 피드백은 엄청난 가치가 있을 수 있지만 대부분 진지하게 받아들여지지 않습니다. 그래서 결국 누구도 우리가 건드리지 못하게 막을 수 없는 영역, 즉 VM에서 혁신합니다. 그런 의미에서 제가 머신 가까이에 머무르는 이유입니다.

기술 혁신과 기여

스택의 여러 영역을 넘나드는 작업에 관해 이야기해 보겠습니다. Zeus, Jupiter, 개인 프로젝트를 통해 여러 고급 암호학 프리미티브를 구축하고 통합했습니다. Solana에서 온체인 암호학을 구현하는 일은 악명 높을 정도로 어렵습니다. Solana 암호학의 미래를 어떻게 전망하나요? 또 사람들에게 PR을 병합하라고 소리치는 것 말고, 하하, 다른 이들이 더 고급 프리미티브를 쉽게 구축하도록 하려면 어떻게 해야 할까요?

제 생각에 몇 년 전에는 Solana에서 개발하려는 ZK 팀이 아주 많았습니다. 우리는 사실상 “네, 곧 지원됩니다”라고 말했는데, Firedancer가 등장해 “아니요, 이건 병합하지 않겠습니다”라고 했고 모든 일정이 미뤄졌습니다. 일부 팀은 투자를 유치했지만 필요한 온체인 암호학 프리미티브가 없어 말 그대로 사업을 운영할 수 없었고, 결국 다른 곳으로 떠나야 했습니다. 정말 가혹한 일이었습니다. 개발자를 그렇게 대하는 것은 잘못입니다. 프로토콜의 첫 번째 고객은 개발자입니다. 그들을 챙기지 않으면 아무것도 만들어지지 않고, 리테일 사용자가 쓸 것도 없어집니다.

그래서 좋다, 직접 알아내겠다고 했습니다. Secp256k1 recover syscall을 해킹해 사실상 전체 곡선의 제약을 풀었습니다. 이제 단 한 번의 프로토콜 변경 없이도 Schnorr 서명, Pedersen 커밋먼트, Bulletproofs, 임의 타원 곡선 곱셈, 조정된 Taproot 주소까지 구현할 수 있으며 비용은 약 25,000 CU에 불과합니다. 한 사람이 여가 시간에 해낸 일입니다. 제가 Anza보다 더 많은 암호학 프로토콜을 출시했죠? 이런 작업을 실제로 장려한다면 어떤 일이 가능할지 상상해 보세요. 개발이 더 개방적이라면 어떨지 상상해 보세요.

재미있는 점은 대부분의 사람이 이것이 얼마나 큰 돌파구인지조차 모른다는 것입니다. 콘퍼런스에 가서 Arcium 사람들에게 제가 만든 것을 설명하면 “정말 끝내주네요”라고 합니다. 하지만 Solana에서 그 수준의 암호학을 제대로 이해하는 열 명 남짓을 제외하면 아무도 알아보지 못합니다.

Anza 사람들은 좋은 사람들이지만 암호학자는 Sam Kim 한 명뿐입니다. 그가 상당히 뛰어나기는 해도 Anza의 다른 누구도 암호학을 모른다는 사실은 전망이 꽤 어둡다고 봅니다. Alpenglow 업그레이드에서는 저를 리뷰어로 참여시켰습니다. Sam의 코드를 검토하고 있는데 대부분 훌륭하고 아이디어도 합리적입니다. 다른 사람의 역량을 받아들이고 활용하는 것은 좋은 일이라고 봅니다. 하지만 궁극적으로 Anza가 이 분야에서 정말 뛰어나지기는 어려울 것입니다. 일부 영역은 겹치더라도 각자 전문 분야를 지닌 여러 경쟁 기업이 필요합니다. Anza가 모든 것을 하려는 건 합리적이지 않습니다. 우리에게 정말 필요한 것은 코어 개발의 다각화입니다.

문화적 문제에 더 가깝다고 보나요? 예를 들어 Ethereum에는 ZKsync나 StarkWare처럼 ZK 전용 L2가 존재합니다. Solana는 ZK를 그저 모호한 확장성 기술로 치부한 건가요? 하드웨어 성능을 최대한 끌어내는 것이 핵심이니 그 방식으로 체인을 확장하겠다는 식으로요. ZK를 Solana에서 반드시 확장성 용도로만 사용할 필요는 없지만 그렇게 치부됐고, 이제 ZK가 애매한 위치에 놓인 것인가요?

도구가 좋지 않다고 생각합니다. 사용법을 알려주는 튜토리얼이 하나도 없습니다. Blueshift에서 몇 가지를 추가할 예정입니다. 현재 Little Endian SIMD 관련 작업을 병합하려 하고 있습니다. 병합이 끝나면 사용하기 쉽고 성능이 뛰어난 ZK 템플릿과 몇 가지 튜토리얼을 공개할 예정입니다. 사람들이 더 쉽게 만들고 작동 원리를 이해하도록 돕고 싶기 때문입니다.

현재 문제는 Solana에서 아무것도 없는 상태로 시작해 Hello, World!까지 가는 과정이 터무니없다는 점입니다. Sui를 살펴보고 문서를 5분만 따라 하면 작동하는 Hello, World!를 만들 수 있습니다. Solana에는 그런 것이 없습니다. Mysten Labs가 암호학을 이해하는 사람을 10명가량 채용한 반면 Anza는 한 명만 채용한 데서 이런 차이가 생기는 것 아닐까요?

제 생각에는 Solana Foundation이 사실상 모든 기술에 대한 이해가 극도로 부족하다는 인식이 있습니다. 그들이 생각하는 기술의 범위는 상용화까지입니다. 그 너머의 문제를 고민하는 일은 Anza에 외주를 줍니다. Anza의 답변이 좋다고 하면 좋은 것이라는 사고방식입니다. 실제로는 대부분 성능 면에서만 좋을 뿐 다른 면에서는 그다지 좋지 않습니다.

Foundation은 상황이 아주 잘 돌아간다고 가정합니다. 하지만 개발자들은 “사용하기 어렵다”고 느낍니다. 프로토콜 수준에서 구현하는 사람들보다 실력이 뛰어나고 무보수로 기여하면서도 자신의 작업을 진지하게 검토받지 못하는 사람들에게는 정말 고통스러운 일입니다. “글쎄, 이 사람들에게는 마법의 Anza 배지가 없으니 무시하자. 평판 위험을 감수하거나 커뮤니티 PR을 병합하지 말자”는 식입니다. 제가 오픈 소스 개발자를 위해 치열하게 싸우고 목소리를 높이는 이유도 아마 이것입니다. 이런 문화를 없애고 싶습니다. 커뮤니티에는 정말 좋은 PR을 내놓는 사람이 많다고 생각합니다. 물론 AI가 만든 조악한 결과물과 쓰레기도 많지만, 제대로 검토받을 자격이 있는 훌륭한 사람도 많습니다. 블록체인은 분산 네트워크입니다. 기여하기 위해 일종의 Anza 배지가 필요해서는 안 됩니다. 누가 작성했든 좋은 코드를 중요하게 다룰 책임이 있어야 합니다.

이 모든 문제에도 불구하고 혁신과 암호학 측면에서 보면, Winternitz One-Time Signatures를 사용해 Solana에 양자 내성 볼트도 만들었습니다. 이 프로젝트를 시작한 계기는 무엇이며, 향후 양자 위협의 신뢰도가 높아질 때 어떻게 발전하리라 보나요?

솔직히 트윗 하나에서 시작했습니다. 하하. 작년 말 한 Bitcoin 맥시멀리스트가 “Solana가 양자의 첫 번째 희생자가 될 것이다”라고 게시했습니다. 그걸 읽고 생각했죠. “좋아, 친구. 언젠가 사람들을 양자에 취약한 암호학에서 양자 안전 암호학으로 마이그레이션해야 한다면 우리 체인은 초당 50,000건 이상 처리할 수 있어. 너희 체인은 6건 정도겠지. 과연 누가 먼저 박살 날까?”

그래서 그냥, 젠장, 직접 만들자고 했습니다.

열흘 뒤 Winternitz 볼트를 공개하고 그 사람의 글을 인용해 이렇게 썼습니다. GG.

동기는 바로 누군가 불가능하다고 말한 것이었습니다. 한동안 포스트 양자 서명 체계를 고민하고 있었는데, 그 말이 마지막 계기가 됐습니다.

그리고 실제로 작동했습니다. 자금을 곡선 밖에 있는 PDA에 보관하고 Winternitz 볼트를 사용할 수 있습니다. 원장이 롤백되든 양자 공격으로 리더 서명에 문제가 생기든, 최소한 롤백된 버전에서는 자금이 안전합니다. 궁극적인 해결책은 아니지만 완벽한 구명보트입니다.

수백만 또는 수십억 규모의 LST나 스테이킹된 SOL을 보유한 펀드 매니저에게 갑자기 양자 안전이 규제 요건이 되더라도 더 이상 도입을 가로막는 문제가 아닙니다. 프로토콜 업그레이드도 필요 없습니다. 그냥 작동합니다.

현재 이런 서명에 서명하는 Ledger 펌웨어와 지갑, 웹 앱을 만들었습니다. Blueshift는 아마 올해 후반에 이를 더 사용자 친화적인 형태로 발전시킬 것입니다. 아직 급한 문제는 아니지만 핵심은 오늘 이미 선택지가 존재한다는 것입니다. 그것이 돌파구입니다.

사실 정말 재미있는 일이 있었습니다. 다음 날 Toly가 DM을 보냈습니다. 농담으로 “양자 컴퓨터가 나오면 조용히 은퇴해야 할 줄 알았는데”라고 했죠. 저는 “하하, 은퇴하지 마. 우리가 지켜줄게”라고 답했습니다.

Bitcoin 이야기가 나온 김에 묻겠습니다. Zeus Network의 수석 과학자로서 사실상 Solana 위에 Bitcoin 프로토콜 전체를 처음부터 구현했습니다. 이를 달성하는 과정에서 가장 큰 과제는 무엇이었나요? 또 다른 체인도 Solana 위에 재구현되는 미래가 올까요?

정말 흥미로운 질문입니다. Winternitz 서명은 연산 비용이 극도로 높지만 단일 트랜잭션 안에서 가까스로 처리할 수 있습니다. Bitcoin도 비슷한 최적 지점에 있습니다. SPV 증명 같은 기능을 제공할 만큼 정교하지만, 더 발전하고 성능이 뛰어난 플랫폼인 Solana가 그것을 가져와 이것 안에 넣을 수 있을 만큼은 원시적입니다.

Ethereum 같은 2세대 블록체인은 더 까다롭습니다. 훨씬 덜 원시적이고 훨씬 복잡합니다. 따라서 Solana가 계속 빨라지는 동시에 단일 트랜잭션에 점점 더 많은 리소스를 할당할 수 있는지가 관건입니다.

현재로서는 여전히 어렵지만 불가능하지는 않습니다. 오늘날 EVM 호환성에서 가장 부족한 것은 BigModExp syscall입니다. 이를 활성화하면 VM 수준에서 Ethereum과 거의 완전한 동등성을 달성할 수 있다고 봅니다. 생각해 보면 꽤 놀라운 일입니다.

하지만 더 큰 질문은 굳이 왜 해야 하느냐는 것입니다.

Bitcoin의 답은 명확합니다. 수조 달러의 가치가 있고, 화폐의 골드 스탠더드이며, Solana가 깔끔하게 복제할 수 있을 만큼 원시적입니다.

Ethereum은 그렇지 않습니다.

‘초음파 화폐’는 밈입니다. 잠깐이지만 Solana의 보안 예산이 실제로 Ethereum을 넘어선 적도 있습니다. 그렇다면 Solana가 초음파 화폐인가요? ETH를 Solana로 래핑하는 것은 BTC를 래핑하는 것만큼 큰 가치를 더하지 않습니다.

그래서 Bitcoin이 올바른 첫 목표였다고 생각합니다. 기술적으로 실현 가능했고 경제적으로도 의미가 있었습니다. Solana가 계속 개선되면 언젠가 다른 체인도 재구현될 수 있습니다. 하지만 솔직히 Solana의 성능이 좋아질수록 다른 체인을 굳이 다룰 필요는 줄어듭니다.

이 모든 기능을 단일 트랜잭션에 담을 수 있다는 점이 매우 흥미롭습니다. 최근에는 초고효율 오라클 업데이트에 빠져 Doppler와 21 CU 업데이트로 한계를 밀어붙였습니다. 이런 저 CU 성과는 다른 체인 대비 Solana의 우위를 어떻게 보여주나요? 다른 체인에서도 가스 골프와 비슷한 발전이 있었는데, Solana만의 독특한 가능성은 무엇인가요?

오라클은 모두가 이미 ‘해결된’ 문제처럼 여긴다는 점에서 매우 흥미로운 사례입니다.

약 한 달 전을 돌아보면 Cavey가 제 noop 프로그램으로 메인넷에서 초당 100,000 트랜잭션을 달성했습니다. 멋진 일이었습니다. 이제 그보다 더 밀어붙일 수 있는지 확인할 겁니다. 구체적으로는 메인넷에서 초당 100,000회의 오라클 업데이트를 목표로 합니다.

그게 가능하다면 “Binance와 경쟁하려면 블록 시간이 더 빨라야 한다”는 주장은 완전히 무너집니다. 오라클을 초당 10만 번 업데이트할 수 있다면 Binance의 20밀리초 업데이트가 무슨 의미가 있을까요?

그것이 바로 극한 최적화의 핵심입니다. Prop AMM은 이미 이런 업데이트 방식을 어느 정도 사용하고 있습니다. 제가 공개하는 것과 정확히 같지는 않지만, 아는 사람은 압니다. 현재는 그 로직을 트레이딩 전략 깊숙이 넣어 사용하고 있습니다.

Doppler를 사용하면 그런 복잡성을 프로그램 내부에 유지할 이유가 별로 없습니다. 오라클 업데이트를 완전히 분리해 독립적으로 실행하면 됩니다.

크기도 아주 작습니다. Doppler 오라클은 약 480바이트에 불과합니다. 개발자가 Rust를 건드릴 필요 없이 TypeScript에서 바로 맞춤형 버전을 배포할 수 있도록 TypeScript SDK도 만들고 있습니다. Borsh 스키마를 정의하고 게시하면 오라클 업데이트를 최고 속도로 쏟아낼 수 있습니다. 물론 Rust 개발자도 같은 일을 할 수 있습니다. 하지만 이제 TypeScript 개발자도 내부의 극한 최적화 어셈블리를 활용해 그 수준의 성능에 접근할 수 있다는 점이 흥미롭습니다.

사용 사례로는 무작위성 오라클, 무기한 선물, 오라클 AMM, prop AMM이 모두 혜택을 봅니다. 결제 채널이나 L2 확장도 마찬가지입니다. 사실상 비용 없이 채널을 열고 닫을 수 있다면 엄청난 일입니다. 이제 오라클 하나를 업데이트하기 위해 거대하고 부담스러운 Anchor 프로그램이 필요하지 않습니다.

추상화, 어셈블리, 그리고 IBRL

사람들이 어떤 수준에 있든 그들을 끌어들이고 계속 오른쪽으로 이동시키고 싶습니다. Blueshift든 Solana Foundation이든 목표는 같습니다.

Dean Little
Dean Little
Syscall 악용자, 양자 고양이, Blueshift 큐레이터

어셈블리를 작성하는 사람으로 유명한데, 대부분의 개발자가 실제로 어셈블리를 다뤄야 한다고 보나요? 아니면 소수만 한계를 밀어붙이고 나머지는 스택의 더 높은 계층에서 안전하게 개발하면 되는 영역인가요?

모두가 적어도 조금은 배워야 한다고 생각합니다. 아마 현존하는 최고의 프로그래머인 George Hotz는 모두가 Python, C, 어셈블리를 배워야 한다고 말합니다.

어셈블리를 이해하지 못하면 컴파일러가 실제로 무엇을 하는지 이해하지 못합니다. C를 이해하지 못하면 Python이 제공하는 편리함을 제대로 알 수 없습니다. 저는 Python이 그렇게 훌륭하다고 생각하지 않지만, 예를 들어 Rust는 고수준과 저수준 모두에서 사용할 수 있는 표현력 높은 언어입니다. 훌륭한 선택입니다.

그러니 어셈블리와 Rust를 어느 정도 배우라고 말하고 싶습니다. 프런트엔드를 작성하려면 언젠가는 TypeScript도 배워야 합니다. 결국 사람을 위한 제품을 만드는 것이고, 사용자가 개발자라면 좋든 싫든 TypeScript를 고려하게 됩니다.

제가 Solana에서 어셈블리를 처음 작성하기 시작했을 때는 말 그대로 아무도 하지 않았습니다. 직접 도구를 만들고 예제를 공개했습니다. 이제는 수백 명이 시도했고, 그중 열 명 정도는 정말 뛰어납니다. 몇몇은 저보다 더 인상적인 프로그램을 작성하기도 했습니다. 대부분은 실현될 때까지 시간을 투자하는 문제입니다.

제가 하는 일의 대부분은 작고 우아하며 극도로 빠른 단일 목적 작업입니다. 실행 비용을 100배 개선할 잠재력이 보이는 영역을 다룹니다. 제 역할은 탐구하고 영감을 주며 다른 사람이 더 발전시키도록 하는 데 가깝습니다. 지금 단계에서는 제가 만든 모든 것을 직접 홍보해도 얻는 것이 많지 않습니다. 차라리 다른 사람을 조명하고 리트윗하며 그들이 이름을 알리도록 돕고 싶습니다.

그래서 모두가 적어도 어셈블리를 배워야 한다고 생각합니다. 훌륭한 훈련입니다. 동시에 소수의 사람이 가장 낮은 수준에서 치열하게 한계를 밀어붙여 모두가 누릴 수 있는 개선을 만들어 내는 것도 사실입니다.

지난 6개월간 Pinocchio에 적용된 개선 대부분을 살펴보면 모두 어셈블리 최적화에서 나왔습니다. Febo는 모든 PR을 진짜 고수처럼 분류하고 검토해 아주 좋은 작업들이 병합되도록 했습니다. p-token을 보세요. 같은 개념입니다.

저수준 코딩을 단순한 기술적 선택을 넘어 이념적인 무언가로 보나요?

네, 둘 다라고 생각합니다. 사람들이 왜 Bitcoin에 JPEG를 올리고 싶어 할까요? 매우 제한적인 시스템을 원래 설계되지 않은 용도로 사용하는 데는 원초적이고 본질적으로 흥미로운 무언가가 있습니다. 다소 우습지만 동시에 아름답기도 합니다.

질문을 멈추는 순간 호기심도 끝납니다.

호기심 많은 사람이라면 그 끝은 아마 이런 질문으로 이어질 것입니다. “TypeScript로 Anchor 프로그램을 사용하는 무언가를 작성했다. Anchor는 어떻게 작동하지? 매크로는 어떻게 작동하지? Rust는 어떻게 작동하지? 어셈블리는 어떻게 작동하지?”

그다음 Rust 컴파일러를 깊이 파고, MIR과 LLVM IR, eBPF로 컴파일되는 과정까지 살펴볼 수 있습니다. 이어서 eBPF가 무엇인지 묻고 그 어셈블리를 읽습니다. 마침내 원시 바이트코드를 들여다보며 컴파일러가 자동으로 최적화하지 못한 부분에서 몇 바이트를 줄일 수 있다는 사실을 깨닫습니다. 탐구가 논리적으로 도달하는 종착점입니다. 분명 이념적인 측면도 있습니다.

Solana Foundation과도 협력하며 중국어권 팀의 온보딩, 디버깅, 개발을 돕고 있습니다. 여러 팀과 협력하며 더 단순하고 접근하기 쉬운 방식으로 지원합니다. 동시에 어셈블리를 옹호하고 syscall을 악용하는 사람으로 알려져 있습니다. 이 긴장을 어떻게 조율하나요? 개발자를 하드웨어 가까이 이끄는 일과 고수준 추상화로 실질적인 온보딩을 제공해야 하는 필요 사이에서 어떻게 균형을 잡나요?

Blueshift를 보면 초보자부터 전문가까지 이어지는 연속적인 과정을 설계했습니다. 제 생각은 간단합니다. 어떤 개발자를 훈련하느냐에 따라 그런 수준의 개발자를 얻게 됩니다. Anchor나 TypeScript만 가르치면 그것으로 충분하다고 생각하는 개발자만 끌어들입니다. 하지만 직접 작성한 어셈블리로 단 하나의 컴퓨트 유닛까지 줄이는 이야기를 시작하면 다른 수준의 개발자가 찾아옵니다. 그 말의 의미를 실제로 이해하는 사람들입니다.

Blueshift의 전략은 먼저 곡선의 중간을 공략하는 것입니다. 가장 많은 사람이 있고 최고의 ROI를 얻는 지점입니다. 그런 다음 이들을 오른쪽으로 이동시켜 실력을 높입니다. 마침내 곡선의 왼쪽, 즉 완전한 초보자를 지원할 수 있는 강력한 개발자 군단을 갖게 됩니다.

이 방식이 더 확장 가능합니다. 모든 Solana 프로그램의 90%를 차지하는 Token Program으로 CPI하는 법을 초보자에게 매일 몇 시간씩 가르칠 수도 있습니다. 또는 같은 일을 할 수 있는 사람 100명을 훈련하고, 각자가 다시 100명을 온보딩하게 할 수도 있습니다. 이것이 확장하는 방법입니다.

사람들이 어떤 수준에 있든 그들을 끌어들이고 계속 오른쪽으로 이동시키고 싶습니다. Blueshift든 Solana Foundation이든 목표는 같습니다.

교육, 지식 전달, 커뮤니티

Blueshift 이야기를 해보죠. Turbin3와 함께 공동 설립했으며 둘 다 교육적 사명이 강합니다. 앞으로 이런 활동이 어떻게 발전할 것으로 보나요?

제가 합류했을 때 Turbin3에는 별다른 것이 없었습니다. 제가 들어가 커리큘럼의 모든 프로그램을 작성하고 운영을 시작했습니다. 세 번이나 네 번의 코호트를 운영했고, 현재 교사로 일하는 사람들을 모두 훈련한 것 같습니다. 아무것도 없는 상태에서 시작해 9개월 안에 좋은 교육으로 저를 대체했으니 제가 할 일은 많이 남지 않았습니다. 좋은 교육으로 사람을 훈련하면 확장 가능한 플라이휠 효과가 생긴다는 사실을 보여줍니다.

문제는 분기마다 지원자가 1,000명쯤 몰리지만 800~900명은 탈락한다는 점입니다. 합격자는 6주 과정에 참여하며 일주일에 세 번 수업에 출석해야 합니다. 과정을 마쳐도 수료를 증명할 인증서 같은 것은 받지 못합니다. 누군가 추천해 줄 수도 있고 아닐 수도 있습니다. 하지만 6주는 삶에서 아무 일도 생기지 않기를 기대하기에는 긴 시간입니다. 반려견이 아파서 동물병원에 가느라 수업 몇 번을 놓치면 갑자기 진도를 따라가지 못하고 탈락할 수 있습니다. 전통적인 부트캠프는 운영에 많은 시간과 비용이 들지만 실제로 최고의 개발자를 찾도록 최적화되어 있지 않습니다. 애초에 부트캠프가 필요하지 않고 경력을 시작할 출발점만 필요한 사람을 돕거나, 지속적인 지원 없이는 과정을 마치지 못했을 사람을 일일이 이끌어 주게 됩니다. 어느 쪽도 오늘날 Solana에 필요한 방식으로 개발자 온보딩을 확장하지 못합니다.

따라서 더 나은 질문은 이것입니다. 부트캠프에서 탈락한 800~900명 중 실제로 역량이 있는 사람에게 어떻게 기회를 줄 수 있을까요?

Blueshift의 답은 고품질 자기 주도 학습을 구축하는 것이었습니다. 자료를 따라갈 수 있다면 원하는 시간에 스스로 과정을 마치고 이를 증명하는 NFT를 받을 수 있습니다. 모든 것이 오픈 소스이며 커뮤니티의 pull request를 적극 권장합니다. Twitter에서 기여자를 소개해 경력을 홍보하고 시작할 수 있도록 돕습니다. 사람들이 개선안을 제출하면 이를 병합하고, 플랫폼 전체가 더 좋아집니다.

“죄송합니다. 탈락했습니다. 다음에 행운을 빕니다”라고 말하는 대신 “여기 커리큘럼이 있으니 원하는 시간에 직접 끝내 보세요”라고 말합니다. 이미 수업을 8개 언어로 번역했기 때문에 전 세계 어디서나 밋업이나 부트캠프를 운영할 수 있습니다. Superteam도, Forma도 사용할 수 있습니다. 마지막에는 객관적인 기준이 생깁니다. 모두가 같은 NFT를 획득하므로 어느 수준인지 알 수 있고, 그에 맞춰 채용하거나 과제를 제시할 수 있습니다.

Blueshift는 의욕이 있고 고품질 자기 주도 학습을 따라갈 역량이 있는 개발자에게 집중해 이 모든 문제를 해결합니다. 모든 것을 오픈 소스로 공개하면 사람들이 더 비판적으로 검토하고, 그 결과 커뮤니티의 지혜가 빛난다는 사실을 받아들입니다. 그래서 그들의 PR을 병합하고 최고의 교육 플랫폼과 콘텐츠를 만들어 냅니다.

이미 암묵적으로 답했지만 더 명확히 묻겠습니다. 개발자 교육을 복잡한 개념에 더 쉽게 접근하도록 만드는 번역의 문제로 보나요? 아니면 많은 사람이 빠르게 기본 수준에 도달하도록 하는 부트캠프의 문제인가요? 혹은 전혀 다른 문제인가요?

현재 개발자 교육의 가장 큰 문제는 무료로 내놓는 자료의 품질이 형편없다는 것입니다. 오래된 자료가 많습니다. 사실상 모두가 Anchor나 Pinocchio로 작성합니다. solana_program을 사용하는 사람은 없습니다. 모든 것이 매우 빠르게 낡습니다. 따라서 전부 오픈 소스로 공개하면 좋은 콘텐츠를 빠르고 세심하게 만들고 유지할 수 있습니다. 다른 누구도 이 일을 정말로 하고 싶어 하지 않는 듯합니다. 아무도 하지 않으니 우리가 할 것입니다.

6개월 전 이 이야기를 나눴을 때 Mert도 이를 알고 있었습니다. 그의 관점에서는 누군가 이 문제를 중요하게 다루기로 했다는 사실이 반가웠습니다. 우리보다 적합한 사람이 또 있을까요? 저는 이 분야에서 영향력 있는 개발자 중 한 명이라는 특권을 누리고 있습니다. 모든 것이 오픈 소스입니다. 우리에게는 해자가 없습니다. 하하. Foundation의 거액 지원금도 없이 자체 자금으로 운영합니다. 모든 것을 직접 해냈고, 유일한 해자는 실행력입니다.

교육은 연속적인 과정입니다. 사람들이 현재 있는 곳에서 시작해야 합니다. 무언가를 배울 만큼 도전적이면서도 이해하고 접근하기 쉬워 계속 돌아오게 해야 합니다. 그런 다음 이들을 오른쪽으로 끌어당깁니다. 저는 그 일을 잘한다고 생각합니다. 그래서 Blueshift는 궁극의 개발자 호기심 유발 플랫폼입니다. 그러다 갑자기 이렇게 생각하게 되죠. “대체 뭐지? 내가 왜 지금 어셈블리를 작성하고 있지?”

Blueshift Discord는 사람들이 프로젝트를 만들다가 막혔을 때 돕는 DevRel 서비스도 제공합니다. 가장 중요한 점은 그곳의 질문 대부분에 제가 답하지 않는다는 것입니다. 커뮤니티가 답합니다. 강력하고 적극적으로 참여하는 커뮤니티가 있으므로 StackOverflow 같은 곳보다 훨씬 낫습니다.

Blueshift의 미래는 어떤 모습인가요?

Blueshift의 미래는 기본적으로 두 제품입니다. Coursera와 LeetCode입니다. 이미 그럭저럭 괜찮은, 아니, 괜찮은 수준 이상이지만 이상적이지는 않은 두 제품 버전이 있습니다. 하지만 더 좋아져야 합니다. V3를 개발 중이므로 훨씬 나아질 것입니다.

자기 주도 학습을 따라갈 역량이 있는 개발자를 지원하는 데 극도로 효과적인 플랫폼이 되고 싶습니다. 솔직히 저는 그런 개발자가 생태계에 더 많기를 바랍니다.

소매를 걷어붙이고 일단 시도하는 사람을 원합니다. 좋은 자료를 제공해 최대한 쉽게 도전하도록 돕고 싶습니다. 오래된 자료와 깨진 의존성 같은 문제로 그들의 시간을 낭비하지 맙시다.

최종 목표는 사람들이 한 가지 틀에 갇히지 않고 관심 있는 것을 배운 뒤 다양한 과제를 완료해 실력을 증명할 수 있는 플랫폼을 만드는 것입니다.

짧은 질문과 답변

최근 어셈블리를 작성하면서 어떤 음악을 듣고 있나요?

하하, 보통 데스 메탈을 듣습니다.

Solana에서 악용하기 가장 좋은 syscall은 무엇인가요?

secp256k1_recover

평생 C#과 Java 중 하나만 작성해야 한다면 무엇을 고르겠나요?

싫습니다.

UTXO 기반 모델과 계정 기반 모델 중 무엇이 더 낫나요?

UTXO가 더 가치 있습니다.

리소스가 무제한이라면 내일 당장 시작하고 싶은 꿈의 교육 프로젝트는 무엇인가요?

Blueshift와 오프라인 활동의 결합입니다.

신규 개발자를 겁먹게 하지 않으면서 저수준 Solana 개념을 가르치는 팁 하나를 꼽는다면요?

자기 비하 유머입니다.


결론

고수준 추상화를 대중을 끌어들이기 위한 ‘현실’로 받아들이는 세상에서 Dean Little은 보기 드문 가교 역할을 합니다. 가장 기본적인 요소로 도구를 벼려 다른 이들을 자신의 어깨 위로 끌어올리는 저수준의 연금술사입니다. 로켓에서 시작해 극한 최적화된 오라클 업데이트를 확산시키기까지의 여정은 빌더의 정신을 보여줍니다. 진실을 향한 추구에서 물러서지 않는 정신입니다. 실패를 전제로 설계하고, 한계에 맞서 혁신하며, 무엇도 맹목적으로 신뢰하지 않습니다.

양자 볼트를 의지 하나로 현실로 만들든, Blueshift를 확장해 차세대의 비범한 Solana 개발자들을 끌어들이든, Dean은 순수주의자의 불꽃과 커뮤니티의 온기를 함께 보여줍니다. 이들이 거인의 어깨 위에 서서 우리만큼 고생하지 않기를 바랍니다. 진정한 진보는 불에 장작을 더 넣고 계층 위에 또 계층을 쌓는 것만이 아닙니다. 층을 걷어내 머신의 윙윙거림을 드러내고, 다른 이들에게 그 리듬에 맞춰 춤추는 법을 가르치는 일입니다.

Solana가 완전한 EVM 동등성, Alpenglow, 초당 100,000회의 오라클 업데이트 중 무엇이든 다음 도약을 향해 질주하는 가운데 Dean의 작업은 우리 모두에게 조용히 도전장을 던집니다. 직접 현실을 납땜할 수 있는데 왜 정중한 거짓말에 안주하나요? 호기심이 불씨라면 Dean 같은 사람은 촉진제입니다.

뛰어드세요. syscall을 악용하고 복잡한 기능을 트랜잭션 하나에 가득 채워 보세요. 누가 알겠습니까? 자신만의 양자 구명보트를 들고 나오게 될지도 모릅니다.

Helius 구독하기

최신 Solana 개발 소식을 확인하고 새 게시물 알림을 받아보세요