‘무엇’과 ‘왜’에 대한 간단한 멘탈 모델:

블록체인은 여러 참가자들 간의 다양한 의견에 대한 탈중항화된 합의를 나타내며 두 가지에 관한 것입니다:

  1. 공식적인 트랜잭션의 오더링(렛저)
  2. 계정의 잔고 및 다양한 프로그램의 스테이트를 포함한 세계의 공식적인 스테이트

현대 블록체인인 이더리움과 같은 경우, 트랜잭션은 잔고 이체, 새로운 프로그램 생성 및 기존 프로그램에 대한 함수 호출로 구성됩니다. 지금까지 모든 트랜잭션의 집합 결과로 현재 스테이트가 생성되며, 이것이 (1)에 대한 합의를 의미하므로 (2)에 대한 합의도 함께 의미합니다.

블록체인 시스템은 현재 동기화된 분산된 노드 집합이 어떻게 통신하고 각 노드가 적용해야 할 새로운 트랜잭션 목록에 합의할지를 설명하는 프로토콜 규칙 세트를 갖고 있습니다. 귀납은 노드를 동기화 스테이트로 유지합니다: 노드는 동일한 스테이트에서 시작하고 동일한 트랜잭션을 적용하므로 새로운 트랜잭션 목록을 적용한 후에도 일관된 스테이트를 유지합니다. (본 에세이에서는 노드 시스템이 어떻게 합의를 달성하는지의 세부 사항을 다 전달하지 못하겠지만, 더 자세한 내용은 Monad의 컨센서스 메커니즘 문서를 참조할 수 있습니다.)

공유된 글로벌 스테이트는 탈중앙화된 앱의 개발을 가능케 합니다. 이는 "블록체인 상" 또는 블록체인 시스템의 각 노드에서 실행되는 앱을 의미합니다. 탈중앙화된 앱은 어떤 사용자에 의해든 호출될 수 있는 코드 조각입니다.(뿐만 아니라 영속적이며 앱에 특화된 스테이트) 사용자는 해당 앱의 함수를 가리키는 트랜잭션을 제출하여 이를 실행합니다. 블록체인의 각 노드는 호출된 바이트코드를 올바르게 실행하는 책임이 있습니다. 복제는 각 노드를 정직하게 유지합니다.

예시 앱:

탈중앙화된 앱은 일반적으로 중앙화된 방식에서 구현되기를 기대할 수 있는 기능을 구현할 수 있습니다. 예를 들어, 탈중앙화된 앱의 매우 간단한 예로는 가상 은행이 있습니다 (암호화폐에서는 일반적으로 대출 프로토콜로 언급됩니다).

물리적인 세계에서 은행은 예금을 받아들이고 더 높은 이율로 대출을 하는 비즈니스입니다. 은행은 고금리와 저금리 간의 차액을 얻습니다. 대출을 받은 사람은 경제적으로 생산적인 일을 할 수 있고, 예금에서 이자를 얻을 수 있습니다. 모두가 윈-윈 상황입니다!

가상 은행은 간단히 말해 네 가지 주요 메서드를 가진 앱입니다: 입금, 출금, 대출, 상환. 각각의 메서드에 대한 로직은 대부분 예금과 대출이 올바르게 추적되고 있는지 확인하기 위한 회계 작업입니다:

class VirtualBank:
  def deposit(sender, amount):
    # transfer amount from sender to myself (the bank)
    # do internal bookkeeping to credit the sender

  def withdraw(sender, amount):
    # ensure the sender had enough on deposit
    # do internal bookkeeping to debit the sender
    # transfer amount from myself (the bank) to sender

  def borrow(sender, amount):
    # ...

  def repay(sender, amount);
    # ...

이더리움이나 Monad에서는 누군가가 이 가상 은행을 위한 코드를 작성하고 업로드할 수 있습니다. 그러면 누구나 해당 코드를 활용하여 차용이나 대출을 할 수 있으며, 이는 자신의 국가에서 은행 서비스에 액세스하려는 시도보다 훨씬 쉽게 이루어질 수 있습니다.

이 간단한 예시는 탈중앙화된 앱의 강점을 보여줍니다. 여기 몇 가지 기타 이점을 살펴보겠습니다: