분산형 애플리케이션은 분산형 피어투피어 네트워크에서 작동하는 온라인 애플리케이션

my7979 2020.12.02 18:55:54 마감일자: 2020-12-31 홈페이지:

5b67256019c2c6ea7820a9428b606325_1606749338_5635.jpeg
 

'여러분은 디앱에 대해 정말 좋은 이야기들을 들어보셨을 테지만, 디앱이 무엇인지 정확히 알기는 어렵습니다. 세상의 모든 이들, 아니 적어도 기술을 다루는 사람들의 각자 정의가 다른 것 같고, 깊게 파면 팔 수록 더 혼란스러울 정도로 기술적인 영역으로 여겨집니다. 심지어 여러분들께서 디앱을 만들고 탈중앙화된 커뮤니티에 참여하고 싶을지도 모르지만, 왜 디앱들이 일반 앱보다 더 나은지 제대로 이해하기는 참 어렵습니다.

저희는 여러분들에게 드릴 수 있는 몇 가지 해답을 가지고 있는데, 이 내용들은 여러분들에게 쉬운 언어로 명확하게 실행 가능한 정보를 제공 할 것입니다.

현재 저희는 25개 이상의 디앱을 지원하는 벤처스튜디오를 운영하고 있으므로, 저희는 저희가 설명하는 것이 무엇인지 잘 알고 있다고 생각합니다.

탈중앙화 애플리케이션(DApp)이란 무엇인가?

분산형 애플리케이션은 분산형 피어투피어 네트워크에서 작동하는 온라인 애플리케이션입니다. 대부분의 기능적 방법에서 DApp은 다른 소프트웨어 애플리케이션과 동일한 방식으로 사용되며 웹 사이트 또는 모바일 앱에 기반을 둘 수 있습니다.

디앱이 일반 앱과 구별되는 점은 다음과 같습니다.

- 오픈 소스: 기술적으로 여러분이 DAPP를 만들기 위해 코드를 반드시 오픈소스로 만들 필요는 없지만, 일반적으로 디앱은 오픈소스입니다. 사용자 기반이 앱에 대한 완벽한 가시성과 신뢰를 얻을 수 있도록 저희는 디앱을 오픈 소스로 만들 것을 적극 권장합니다.

- 데이터 소유권: 많은 디앱들, 특히 디앱의 제작자들은 사용자들의 데이터를 소유하지 않습니다. 사용자들은 자신의 데이터를 온전하게 소유할 수 있고, 이를 다른 디앱들과 공유하거나 생태계 내에서 완전히 제거할 수 있습니다.

- 토큰: 많은 디앱들이 어떤 형태의 토큰을 사용하는 것을 받아들입니다. 다시 말해, 필요하지는 않지만 여러분의 커뮤니티 보상 수단으로 토큰은 매우 유용한 역할을 할 수 있으며, 디앱을 사용한다면, 이러한 꽤 쉽게 이러한 토큰들의 적용이 가능합니다. 디앱은 블록체인을 뛰어넘어 쉽게 토큰과 같은 가치 있는 자산을 제공할 수 있고 가치의 교환이 요구되는 응용프로그램의 실현을 가능케 합니다. 전통적인 애플리케이션은 이러한 교환 등의 목적 달성을 위해 은행이나 카드 거래 행위를 동반하고 여러분들의 자산을 그들의 지갑에 보관해야 하는 과정이 필요합니다. 그러나, 사용자들은 디앱을 활용함으로써 돈이나 보상 등을 자신의 지갑에 보관할 수 있습니다.

이 시점에서 여러분들이 알아차릴 수 있는 것은 '무엇이 가장 순수한 감각에서 이러한 디앱을 구성하는가?'에 대한 논쟁이 아직 남아 있다는 것일 것입니다. 어떤 사람들은 항상 토큰이 포함되어야 한다고 주장하고, 또 어떤 사람들은 오픈소스의 성격 자체에 매우 집착하지만, 현 시점에서 기억해야 할 중요한 점은 디앱들은 탈중앙화 네트워크 위에 구축되어 있다는 사실일 것입니다.

그렇다면 일반 앱과 비교했을 때, 디앱은 어떤 점이 혁신적인 것일까요? 무엇이 DApp을 특별하게 만드는지를 이해하기 위해서는 먼저 일반 전통(약간 지루한?) 중앙화 앱이 어떻게 작동하는지 자세히 알아야 합니다.

중앙화 앱은 어떻게 작동하는가?

네, 저희는 여기서 아주 기초적인 부분 부터 살펴볼 수 있습니다. 약간 일반화에 대한 부분은 양해 해주시기 바랍니다. 대부분의 기존 앱의 경우, 세 가지 주요 기능을 가지고 있습니다.

1. 인터페이스: 사용자는 웹, 모바일 또는 데스크탑 인터페이스의 프론트 엔드를 통해 앱과 상호작용합니다.

2. 서버: 프론트 엔드로부터의 요청은 중앙집중식 서버로 전달됩니다.

3. 데이터베이스: 프론트 엔드(서버를 통한 요청을 통해 획득됩니다.)의 사용자 행위 데이터를 수집하여 단일 회사 또는 개인이 소유한 중앙화된 데이터베이스에 저장합니다.

* 서버와 데이터베이스는 여러 데이터 센터 또는 클라우드 서비스 제공자들에 의해 분산될 수는 있지만, 이들은 궁극적으로 하나의 조직에 의해 제어됩니다.

이러한 실행 가능한 애플리케이션의 제작 방식은 서비스를 시작하고 실행하는 데 매우 효과적인 방법이었습니다. 중앙화의 경우, 저렴한 호스팅, 빠른 실행 속도, 손쉬운 개발 및 사용자 경험을 제공하기 때문이죠.

그러나, 이러한 장점들은 심각한 대가를 동반합니다.

첫번째는 구글이나 아마존과 같은 대규모 호스팅 기관에 상당한 양의 통제권을 넘기는 것입니다. 게다가, 중앙화된 데이터베이스는 해커들에게 있어 너무나도 유혹적인 대상이 되곤 합니다. 여러분들은 대형 호스팅 기업들이 보안을 철저히 유지하기를 바라야 하지만, 솔직히 말해서, 사이버 범죄는 더욱 조직적이고 체계화 될 것이며, 사이버 보안을 유지하는 것은 더 어려워질 것입니다.

그리고 여러분들의 사용자들에 대해 언급하자면, 음, 그들은 무식하게 혹은 겸허하게 그들의 모든 개인 데이터가 가장 높은 가격을 제시한 입찰자에게 넘어간다는 것을 받아들여야만 합니다.

디앱은 이 모든 문제를 해결하고 사회 정의를 실현하는 대안을 제시합니다.

DApp(디앱)은 어떻게 작동하는가?

우선, 여러분들의 궁금증에 대해 감사를 표합니다 :)

중앙화된 앱과 유사하게 디앱의 기능들은 다음과 같이 기본적인 세 가지 단계로 구분할 수 있습니다.

1. 인터페이스: 프론트 엔드는 중앙화된 앱과 대체로 동일합니다.

2. 스마트 컨트랙트: 스마트 컨트랙트가 무엇인지에 대해서는 완전히 별개의 아티클(또는 일련의 기사)이 존재할 수 있지만, 현재로서는 블록체인 네트워크와 상호 작용하는 디앱의 일부라는 것만 아시면 됩니다. (여기서는 이렇게 기본적으로만 설명하고 넘어가겠습니다) 프론트 엔드는 API를 이용하여 스마트 컨트랙트와 통신합니다(실제 이것은 블록체인의 지갑을 통해 일어나며, 조금 더 복잡한 요소를 지니고 있습니다).

3. 블록체인 네트워크: 스마트 컨트랙트에 의해 운영되는 코드는 탈중앙화 블록체인 네트워크에 데이터를 선택하여 저장합니다.

디앱 시스템 내에서는 앱과 앱의 모든 거래의 정확한 기능성을 확보하기 위해 '데이터'가 '사용자'를 대신하여 저장됩니다.

디앱의 특별한 점은 하부층, 즉 전체 시스템이 구동되는 블록체인 네트워크에 있습니다. 한 사람(또는 다국적 대기업)이 소유하고 관리하는 중앙화된 데이터베이스와 달리, 블록체인 네트워크는 완전히 분산되어 있어, 모든 과정이 생태계의 모든 사용자에 의해 실행되고 감시되는 것을 의미합니다.

이를 기술적으로는 피어투피어 시스템이라고 합니다. 앱의 프론트 엔드로부터의 모든 요청 사항은 네트워크에 존재하는 모든 사람(노드)을 통해 필터링됩니다. 스마트 컨트랙트에서 코드를 실행해 결과로 나온 블록체인 데이터들은 모두 노드들에 의해 자체 분산원장의 사본으로 저장됩니다. 그래서 모든 사람들은 디앱에서 일어난 모든 거래에 대한 각자의 기록을 소유합니다. 이러한 일련의 과정은 정보의 가시성 및 공동체의 데이터 소유를 최대한 허용하는 동시에, 정보를 조작하는 것을 무용지물로 만듭니다. 매우 놀랍지 않습니까?

개발자들에게 있어, 디앱에 기회가 있는 이유가 무엇일까요?

저희의 견해는, 여러 디앱 및 이들을 부채질하는 블록체인 분야는 현재 부상하고 있는 개발 영역 중 가장 흥미진진한 분야라는 것입니다! 블록체인과 디앱은 여전히 새로운 제품이고 아직도 발견되고 만들어져야 할 내용들이 무궁무진합니다. 그리고 바로 이러한 분야에 함께하고 계시는 여러분들은 이 길을 개척하는데 많은 기여를 하고 계십니다. 혁명적으로 보이는 이러한 정직한 발전의 길은 기술 영역 뿐만 아니라 일반 대중들의 일상에도 적용됩니다.

그렇습니다, 이는 매우 흥미진진한 것입니다. 하지만 아마 여러분들은 냉정하게 바라보고 계실 것입니다. '이런 것들이 내가 이제 완전히 새로운 기술을 습득하는 데 엄청난 시간을 보내야 하는 적절한 사업상의 이유를 대체 언제 줄건데?' 하며 말입니다. 이에 대한 정답은 바로 여기 아래에 있는 멋진 항목들이 말해줍니다.

보안, 보안 그리고 보안

이터 프라이버시는 이제 모든 조직이나 기업에 있어, 법적, 도덕적 요구사항이 되었습니다. 사용자 데이터가 있는 경우(가입자가 0명인 경우를 제외한 모든 앱 제작자들)에는 반드시 보안을 유지해야 합니다. 그리고 이것은 "아, 그래 ! 우리 모두 노트북에 비밀번호가 설정되어 있어" 라고 여기는 것 뿐만 아니라, 여러분은 여러분의 시스템을 침해하는 하루에 하나 이상의 2,244*의 악성 해킹을 예방할 수 있을 만큼 충분히 안전한 대화를 나누어야 합니다.

더욱 걱정스러운 것은 사용자 데이터를 안전하게 유지하는 일은 사용자 수가 증가함에 따라 더욱 어려워질 뿐 아니라 조직으로 성장하고자 하는 경우에도 마찬가지라는 점입니다. 아직도 가야 할 길이 먼 '데이터 침해'의 가장 큰 원인은 주로 인간의 실수입니다.

이것이 무섭게 들리시나요? 한 가지 좋은 소식은 디앱들이 사용자의 데이터를 훨씬 더 쉽게 관리할 수 있도록 한다는 것입니다만, 기본적으로 중앙 화라는 거대한 보안적 결함을 회피할 수 있을 경우에 해당합니다.

분산형 블록체인 컴퓨팅 시스템상의 실행으로 인해 저장된 데이터는 대형 기술 기업의 중앙집중식 스토리지와 달리 단일 장애 포인트에 취약하지 않습니다. 따라서 본질적으로 디앱들은 해커들이 사용자 데이터를 훔치는 것을 구조적으로 훨씬 어렵게 만듭니다(불가능하지 않다면). 데이터가 간단하게 해킹 될 수 있는 한 장소에 저장되지 않기 때문입니다.

여기에 영 지식 증명(Zero Knowledge Proof, ZKP) 방식 등의 추가적인 암호 검증 방식을 통해 더욱 높은 준의 블록체인 데이터 보안이 확보됩니다. 두 배로 안전해지는 것이죠. 그리고 지금 여러분은 여러분만의 암호화 알고리즘을 만들어야 하는것이 아닌지에 대해 고민 하실 수도 있지만, 그럴 필요는 없습니다. 이 모든것들은 블록체인 Primitive/Protocol에서 일종의 무료 패키지로 제공됩니다.

검열 저항성

아마도 이것은 현재 완전히 민주화된 국가의 개발자들에게는 다소 아무것도 아닌 것으로 느껴질 수도 있지만, 정부가 인터넷을 더 엄격하게 통제하는 세계의 일부 지역에서 이 분야에 관심을 가진 사람이나 고객들에게 이는 매우 중요한 사항입니다. 블록체인은 실제 사람들이 데이터와 금융 시설에 접근할 수 있는 권한을 부여할 수 있습니다.

사용자가 블록체인을 통해 네트워크에 디앱을 배포하거나 데이터를 읽거나 거래를 제출하는 것을 차단할 수 있는 '단일 실체'가 없습니다. 즉, 이는 전세계적으로 어떠한 압력에도 상관없이 여러분들의 서비스가 지속될 수 있다는 것을 의미합니다. 심지어 플랫폼 리스크도 적습니다. 어떠한 대기업의 플랫폼 상에서 구현되는 것이 아니기 때문에, 여러분들의 서비스가 그 대기업들의 눈에 거슬리더라도, 그 누구도 여러분들의 서비스를 중단시킬 수는 없습니다.

완전한 신뢰

누구나 디앱에서 실행되는 코드를 확인하고 분석해 공정하고 정확한지를 확인할 수 있습니다. 왜냐하면 모든 사람들이 해당 디앱에서 무슨 일이 일어나고 있는지를 정확히 확인할 수 있기 때문에, 여러분들이 모든것들을 직접 확인할 수 없는 폐쇄적인 프로세스로 유지되는 특정 중앙 당국(은행이나 정부처럼)의 신뢰에 의지할 필요가 없습니다.

작동하지 않는 시간(Downtime)에 대한 작별인사

일단 여러분들의 스마트 컨트랙트가 구축되고 블록체인에 배포된다면, 여러분들은 공식적으로 정지시킬 수 없습니다. 네트워크 전체는 항상 스마트 컨트랙트와 상호작용하는 고객들에게 서비스를 제공할 수 있으며 해커나 다른 악의적인 당사자들은 개인 디앱에 대한 서비스 거부 공격을 하기 위해서는 엄청난 대가를 치러야 할 것입니다.

DAPps에 몇 가지 문제가 발생할 수 있을까요? 당연히 있습니다…

- 비용: 분산형 네트워크는 모든 노드에서 실행되어야 하며, 이로 인해 초기 연산 오버헤드가 눈에 띄게 높아질 수 있습니다. 다만, 차세대 블록체인이 「지분 증명방식」이나 「 권한 위임 방식」 과 같은 스마트한 디자인을 사용하여, 추가 연산 오버헤드와 그 비용을 해결하고 있다는 점에 주목할 필요가 있습니다.

- 느린 네트워크: 일부 연산은 먼저 모든 노드에서 실행되어야 하며, 그 다음 해당 결과에 대한 합의에 도출되어야 합니다. 이것은 중앙화된 서버보다 작업을 더 느리게 만들 수 있습니다.

- 사용자 경험: 이러한 상황들은 올바른 방향으로 향하고 있다고 하더라도, 특히 기술적인 지식이 없는 사람들에게 친숙한 사용자 경험을 만드는 것은 더 어려운 일이 될 수 있습니다.

DApp 구축에 대해 생각하고 있는 여러분들께

블록체인의 매력을 알고 난 후 자신만의 디앱을 만들 준비가 되셨나요? 멋진 제품 말이죠! 여러분들이 블록체인의 전문지식에 자신이 있고 전면적으로 뛰어들 준비가 되어 있다면, 그것을 한 번 시도해보시기 바랍니다. 하지만 이것이 여러분의 첫 로데오라면, 여러분들은 완전히 개발에 몰두하여 뛰어들기 전에 Dapp 환경에서 생각하고 배울 수 있는 많은 방법들이 존재합니다.

- 몇 가지 바운티(Bounty) 프로그램이 존재합니다. 대부분의 ICO는 개발자들이 블록체인 프로젝트에 코드나 버그 수정에 대한 기여 행위에 보상하기 위해 다양한 바운티 프로그램을 운용하고 있습니다. 이러한 작업의 종류는 작은 것부터 중요한 내용들 까지 다양하게 존재하며, 무엇보다도 여러분들은 토큰이나 현금으로 보상을 받을 수 있습니다.

- 몇몇 Grant DAO들을 살펴보세요. 더 큰 프로젝트를 진행하고 싶거나 여러분과 함께 일하고 싶은 열렬한 개발자 팀이 있으신가요? 보조금(Grant)은 생태계의 영역이나 특정 서비스를 건설하는 데 도움이 되는 대규모 자금 지원 프로젝트 입니다.

- 미니 앱 만들기: 좋은 생각이 있어서 먼저 테스트해 보고 싶으시다면, 기존의 탈중앙화 에코시스템에 미니 앱을 만들어 볼 수도 있습니다.

 

[센트럴리티 공식 채널]

웹사이트 : https://centrality.ai/

미디움: https://medium.com/centrality

트위터 : https://mobile.twitter.com/centralityai

텔레그램 대화방 : https://t.me/CentralityKRofficial