DApp은 죽었는가? Web3 애플리케이션의 탈중앙화와 사용자 경험의 딜레마

심조TechFlow
2024-11-08 03:00:00
수집
복잡성을 인프라 계층으로 이전할 수 있다면 DApp 제작이 훨씬 간단해질 것입니다.

원제목:《dApps Graveyard》

저자:w1nt3r.eth

편집:심조 TechFlow

어쩌면 블록체인은 영원히 존재할 수 있지만, 탈중앙화 애플리케이션(dApps)의 수명은 매우 짧습니다.

2024년 할로윈, 2021년에 사용했던 dApps를 열어보려 했으나 결과는 끔찍했습니다: 도메인이 만료되었고, 배포가 중단되었으며, 페이지를 찾을 수 없고, 서비스가 사용할 수 없었습니다.

잠깐, 이 애플리케이션들은 탈중앙화되어야 하지 않나요? 이들은 중앙 집중화된 실체에 의존하지 않아야 하며, 맥주처럼 무료이고, 발언처럼 자유롭고 검열에 저항하는 애플리케이션이어야 합니다. 이들은 Web3를 새로운 인터넷으로 만드는 애플리케이션입니다.

하지만 이 애플리케이션들은 거의 사라졌고, 제가 2년 전에 사용했던 대부분은 존재하지 않습니다. 그들의 '유령'은 블록체인의 어딘가에 남아 있을지도 모르지만, 올바른 계약 주소를 찾고 올바른 호출 데이터를 추측해야 합니다.

왜 이런 일이 발생했을까요? 문제는 어디에 있을까요? 우리는 이 상황을 바꾸기 위해 무엇을 할 수 있을까요?

그럼, 'dApp'은 도대체 무엇인가요?

우리가 선사 시대(2016년)에서 찾은 고대 문헌을 살펴봅시다.

'dApp'은 '탈중앙화 애플리케이션'의 약자입니다. 이 개념은 당신이 HTML/CSS/JS와 같은 개방형 기술을 사용하여 웹 애플리케이션을 만들고, 이를 탈중앙화되고 허가 없는 인프라(예: IPFS)에 호스팅할 수 있다는 것입니다. dApp은 당신의 지갑을 통해 블록체인과 상호작용합니다. 당신은 중앙 집중화된 회사에 의존하지 않고 최신 데이터를 가져오고 거래를 보낼 수 있습니다.

이로 인해 dApps는 거의 저지할 수 없는 존재가 되었습니다. 무료, 허가 없음, 탈중앙화. 이것은 진정한 펑크 정신이 추구하는 꿈입니다.

멋진 랜딩 페이지

그러나 대부분의 사람들은 탈중앙화와 허가 없는 특성에 관심이 없습니다. 그들은 애플리케이션이 실용적인지(그리고 숫자가 오를 수 있는지)에 더 관심이 있습니다.

Web3의 개발자들은 곧 그들이 Web2 분야에서 디자인이 뛰어나고 빠르며 매력적인 Web2 애플리케이션과 사용자 주목을 두고 경쟁하고 있다는 것을 깨달았습니다. 탈중앙화는 이 전장에서 그들에게 많은 이점을 제공하지 않았습니다.

기술을 깊이 이해하는 사람들은 블록체인이 진정한 패러다임 전환이라는 것을 이해합니다. 그러나 블록체인上的 모든 것은 '오픈 소스'이며 복제할 수 있기 때문에 상품화되었습니다. 경쟁 장벽이 없습니다. 누구나 어디서나 Uniswap 계약을 배포할 수 있습니다. 사실, 누구나 자신의 L2를 만들 수 있습니다!

진정한 차별점은 브랜드, 유통 채널, 네트워크 효과 및 사용자 경험에 있습니다. 수억 개의 Uniswap 배포 중에서 사용자는 그들이 신뢰하는(브랜드), 쉽게 접근할 수 있는(유통), 모두가 사용하고 있는(네트워크 효과) 그리고 인터페이스가 친숙한(사용자 경험) 것을 선택합니다.

비록 제가 마지막에 사용자 경험을 언급했지만, 이는 가장 덜 중요한 것은 아닙니다. 나쁜 사용자 경험은 부정적인 영향을 미칩니다. 모든 전자상거래 상점의 소유자는 100밀리초의 지연이 발생할 때마다 10%의 사용자를 잃을 수 있다는 것을 알고 있습니다. 사용자 경험이 좋지 않으면 고급 브랜드를 구축할 수 없습니다. 만약 당신의 애플리케이션이 사용하기 불편하다면, 사용자를 유지할 수 없습니다.

Vercel에 배포하는 것이 IPFS에 배포하는 것보다 더 간단합니다

좋은 일을 하는 것은 쉽지 않다

대부분의 사용자가 탈중앙화에 관심이 없더라도, 진정한 암호화 펑크들은 여전히 신경을 씁니다. '모든 사람이 탈중앙화의 열광자가 되어야 한다'는 것이 아니라 '이것이 올바른 방법이다'라는 것입니다. 중앙 집중화된 실체가 적대적이거나 검열을 받을 때조차도, 탈중앙화는 사람들에게 권한과 자율성을 부여할 수 있습니다.

문제는 여기 있습니다. 탈중앙화되면서도 좋은 사용자 경험을 제공하는 애플리케이션을 만드는 것은 쉽지 않습니다. 하지만 어려운 이유는 우리가(개발자) 게을러졌기 때문입니다.

BasePaint 분석하기

오늘날의 전형적인 'dApp'과 그 의존 기술을 살펴보겠습니다. 저는 제가 개발한 BasePaint를 예로 들겠습니다. 어떤 의미에서는 이것이 'Web3 dApp'이어야 합니다: 블록체인(Base L2)을 사용하고 사용자 지갑을 통해 상호작용합니다. 하지만 이것만으로는 좋은 사용자 경험을 제공하기에 부족했기 때문에 비탈중앙화 요소를 추가해야 했습니다. 사실, 많은 요소를 추가했습니다.

BasePaint의 기술 서비스 구성

다음은 제가 개발 중에 사용해야 했던 중앙 집중화 기술입니다:

  • 도메인. 사용자가 우리를 쉽게 찾고 웹사이트에 접근할 수 있기를 원했습니다. 브라우저가 ENS를 지원하지 않기 때문에 도메인 등록업체에서 도메인을 구매하고 DNS를 올바른 서버로 가리키도록 설정해야 했습니다.
  • 호스팅 서비스. 애플리케이션(HTML/CSS/JS 파일 포함)을 어딘가에 호스팅하고 접근 속도가 빠르고 안정적이도록 해야 했습니다. IPFS는 잠재력이 있지만, 대부분의 브라우저에서 지원하지 않으며, 게이트웨이 속도가 느리고 URL도 친숙하지 않습니다.

(휴대폰에서 QmRxM6Fz3jYBNLTNn59Whtj8uiFodC53Z5nEep6eSkwf8V를 입력해 본 적이 있나요?)

  • 데이터베이스. 블록체인은 특정 상황에서 좋은 데이터베이스이지만 모든 상황에 적합하지는 않습니다. 예를 들어, 우리는 채팅 정보를 Postgres 데이터베이스에 저장합니다. 이는 더 저렴하고 빠르기 때문입니다. 이를 블록체인에 저장하려고 시도할 수 있지만, 속도는 중앙 집중식 데이터베이스에 미치지 못합니다.
  • 백엔드 서비스. BasePaint는 이더리움에서 처리하기에 적합하지 않은 몇 가지 계산을 수행해야 합니다. 예를 들어, 비디오 생성, 여러 사용자의 커서 위치 동기화, 채팅 권한 검증 등이 있습니다. 또한 데이터베이스 연결 자격 증명 및 비공식 토큰과 같은 민감한 정보를 보호해야 합니다.
  • 이더리움 JSON-RPC 제공업체. 이론적으로, 우리는 사용자의 지갑을 통해 블록체인에 접근할 수 있습니다. 그러나 이는 'Web3를 지원하지 않는' 브라우저의 사용자가 아무것도 볼 수 없다는 것을 의미합니다. 더 복잡한 것은 서로 다른 지갑의 RPC 제공업체 간에 미세한 차이가 있다는 것입니다. 예를 들어, QuickNode는 로그 쿼리를 10,000개로 제한하고 Alchemy는 자체 계산 단위를 사용하여 요청을 제한합니다. 지갑의 RPC를 사용한다는 것은 이러한 미세한 차이를 처리해야 한다는 것을 의미합니다.
  • 인덱서. 블록체인에 데이터를 저장하는 것은 비용이 많이 듭니다. BasePaint는 픽셀을 계약에 저장하지 않음으로써 이 문제를 해결합니다. 대신, Painted 이벤트를 통해 모든 필요한 데이터를 전송합니다. 스마트 계약 이벤트를 쿼리하여 어떤 캔버스든 재구성할 수 있습니다. 그러나 BasePaint 갤러리 페이지에서 이렇게 하는 것을 상상해 보세요(우리는 수백 개의 캔버스를 보여줍니다!). 원활한 사용자 경험을 제공하기 위해 우리는 블록체인 이벤트를 추적하고 빠른 쿼리를 위해 데이터를 저장하는 인덱서를 운영합니다.
  • 기타 서비스. 우리는 Reservoir를 사용하여 2차 시장 데이터를 얻고 크로스 체인 민팅을 하며, Cloudflare를 CDN으로 사용하고, R2를 비디오 저장 및 캐싱에 사용하며, DataDog를 로그 기록에, PostHog를 분석에, Neynar를 Farcaster 사용자 지갑 주소 찾기에 사용합니다. 각 서비스는 우리에게 수주 또는 수개월의 개발 시간을 절약해 주었지만, 우리의 애플리케이션을 덜 탈중앙화되게 만들었습니다. 또한 많은 도구들이 지속 가능한 비즈니스 모델이 부족하여 언제든지 종료될 수 있습니다.
  • 신용카드. 이 문제는 항상 저를 웃기고 울게 만듭니다. 아시나요, 대부분의 암호화 SaaS 제품은 암호화폐로 결제할 수 없나요? 만약 제 신용카드 잔액이 부족하거나 만료되면, 제 도메인, 데이터베이스, 서버, RPC 엔드포인트 및 기타 SaaS 제품이 중단됩니다.

애플리케이션의 탈중앙화를 어떻게 실현할 수 있을까요?

Web3 개발자로서 현재 제가 보는 선택지는 다음과 같습니다:

  • 중앙 집중화 기술을 포기하고 완전히 탈중앙화 서비스에 의존하는 하드코어 dApp을 구축합니다. 이는 Tornado Cash와 같은 프로젝트에서는 가능할 수 있지만, 일반 소비자 제품에는 사용자 경험에 장애를 초래할 수 있습니다.
  • 중앙 집중화된 애플리케이션을 유지하면서 탈중앙화 기술 스택에만 의존하는 간소화된 dApp을 개발합니다. 이는 두 개의 독립적인 애플리케이션을 유지해야 하므로 엔지니어링 작업량과 비용이 증가합니다.
  • '점진적 향상' 전략을 채택합니다. 간소화된 dApp에서 시작하여 서버가 사용 가능할 경우 이를 활용하여 속도를 높입니다. 이는 엄격한 관리가 필요하며, 두 번째 선택지와 비교할 때 절약되는 시간은 많지 않습니다.
  • 코드를 오픈 소스화하여 사용자가 직접 실행할 수 있도록 합니다(이것이 우리가 선택한 방향입니다). 그러나 실제로 전체 시스템을 시작하는 데는 상당한 소프트웨어 엔지니어링 능력이 필요하며, IPFS에서 페이지를 로드하는 것보다 훨씬 복잡합니다.

위의 선택지는 모두 상당한 노력을 필요로 하며 기본 선택이 아닙니다. 어떤 dApp 튜토리얼이나 템플릿을 살펴보면 이러한 문제에 대해 거의 언급하지 않습니다. 사실, 탈중앙화 애플리케이션 개발은 그렇게 어려울 필요가 없습니다. 만약 우리가 복잡성을 인프라 계층으로 이전할 수 있다면, dApp을 만드는 것이 훨씬 더 간단해질 것입니다.

어쩌면 우리는 그 까다로운 문제를 해결해야 할까요?

우리는 인프라 계층에서 탈중앙화를 실현할 수 있습니다. 예를 들어, ENS 지원을 getaddrinfo에 통합하여 모든 브라우저가 IPFS를 기본적으로 지원하도록 하고, IPFS의 속도를 현재 가장 진보된 CDN과 경쟁할 수 있도록 향상시킬 수 있습니다. 우리는 또한 이더리움의 JSON-RPC를 개선하여 탈중앙화 애플리케이션(dApps)에 더 실용적으로 만들 수 있습니다. 그러나 이것은 단순한 부분에 불과합니다.

중앙 집중식 데이터베이스와 서버를 대체하기 위해서는 현재 존재하지 않는 일련의 기술을 개발해야 합니다. 아마도 보안 영지식 증명(ZK)에 기반한 분산 컴퓨팅 시스템이 필요할 것이며, 코드 실행 시 보상을 받을 수 있거나, 일반 x86 명령어를 효율적으로 실행할 수 있는 슈퍼 이더리움이 필요할 것입니다.

또한 우리는 암호화폐를 중심으로 구축된 모든 서비스에 대한 탈중앙화 솔루션을 찾아야 합니다. 우리는 새로운 인센티브 메커니즘을 설계해야 합니다—누가 이러한 계산 자원에 대한 비용을 지불할까요? 진정한 탈중앙화 시스템에서는 기존의 SaaS 비즈니스 모델이 작동하지 않을 것입니다. (하지만 이러한 서비스의 비용이 신용카드 없이 암호화폐로 지불될 수 있기를 바랍니다.)

그 외에도 우리는 이 새로운 시스템의 개발 경험이 현재의 중앙 집중식 플랫폼과 적어도 동일하게 좋도록 해야 합니다. 이러한 플랫폼은 수십억 달러의 엔지니어링 시간을 투자하여 다듬어졌으며, 마케팅에 막대한 비용을 들여 네트워크 튜토리얼을 채우고, 그들의 솔루션이 최선이라고 설득하려고 합니다.

이게 정말 중요한가요?

"당신의 과학자들은 기술의 실행 가능성에 너무 집중하고, 그렇게 하는 것이 적절한지 고려할 시간을 갖지 않았습니다." ------《쥬라기 공원》에서 발췌

하지만 애플리케이션 계층은 정말 탈중앙화가 필요할까요?

Nouns는 아마도 단순히 블록체인의 탈중앙화만으로도 충분할 수 있음을 보여줍니다. Nouns는 번창하는 애플리케이션 생태계를 가지고 있으며, 모든 애플리케이션이 동일한 계약과 상호작용합니다. 당신은 Camp 또는 Agora를 통해 투표할 수 있으며, 이는 중요하지 않습니다. 당신이 좋아하는 인터페이스를 선택하기만 하면 됩니다.

수십억 사용자를 끌어들이기 위해 암호화폐는 기존 시스템에 원활하게 통합된 구성 요소가 되어야 할 것입니다. 이는 이상적인 암호화 경험이 사용자가 암호화폐를 사용하고 있다는 사실조차 모르게 되어야 함을 의미합니다. 즉, 단순히 휴대폰을 터치하여 커피를 구매할 수 있고, USDC를 사용하든 Visa 네트워크를 사용하든 사용자는 신경 쓰지 않는 것입니다.

시장은 부분적인 최적해를 찾았습니다:

  • 블록체인은 기본 계층으로서 탈중앙화되어 있으며, 수조 달러의 자산 안전을 보장하고 소유권 및 검열 저항을 강력하게 지원합니다.
  • 애플리케이션 계층은 중앙 집중화되어 있습니다. 회사는 최상의 사용자 경험을 제공하기 위해 중앙 집중화된 애플리케이션을 개발합니다. 이들의 폐쇄형 시스템은 경쟁 장벽을 형성하지만, 이러한 애플리케이션은 여전히 동일한 블록체인과 상호작용합니다.

부족한 도구들

저는 이러한 균형이 더 탈중앙화 쪽으로 기울기를 바랍니다. 저는 링크를 클릭하는 것처럼 간단하게 로컬에서 제 자신의 Nouns Camp 또는 Agora 버전을 실행할 수 있기를 바랍니다. 저는 이러한 탈중앙화 애플리케이션을 구축하는 것을 간단하게 만들 수 있는 도구들이 생기기를 바랍니다. 동시에 사용자 경험에 영향을 미치지 않기를 바랍니다.

BasePaint는 놀랍습니다. 그것은 자가 유지되는 생태계입니다: 예술가들은 작품을 창작하고, 수집가들은 구매하여 2차 시장에서 이익을 얻으며, 소유자는 투표를 통해 일상 업무에 영향을 미칠 수 있습니다. 이 모델은 효과적이며, 우리는 이러한 방식으로 창작자에게 백만 달러 이상의 분배를 해왔습니다.

그러나 전체 시스템에서 가장 약한 고리는 우리 팀입니다. 애플리케이션을 유지하는 데는 많은 노력이 필요하며, 버그를 수정하고 사용자 경험을 향상시키는 등의 작업이 필요합니다. 동시에 우리는 시스템을 더욱 탈중앙화하기 위해 노력하고 있으며, 애플리케이션을 더 쉽게 자가 호스팅할 수 있도록 하고, 권한 제어를 포기하여 장벽을 설정하지 않으려 합니다.

결론

탈중앙화 애플리케이션(dApps)은 '탈중앙화'의 이점이 현재 사용자에게 큰 관심사가 아니기 때문에 생명력을 잃은 것 같습니다. 따라서 개발자들은 조정이 필요합니다. 우리는 애플리케이션을 탈중앙화하기 위한 도구 개발을 중단했습니다.

다행히도 블록체인의 기본 인프라는 그 어느 때보다도 더 견고해졌습니다. 기본 기술은 더욱 탄탄해졌고, 발전 로드맵도 기대됩니다. 우리는 실제로 글로벌 컴퓨팅 플랫폼을 구축할 기회를 가지고 있습니다.

그러나 안타깝게도 사용자 인터페이스를 향상시키는 방법에 대한 논의는 충분한 주목을 받지 못했습니다. dApp의 개념은 잠시 보류되었습니다…

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축