
블록체인 기술에 대해 처음에 흥미로웠던 점은 은행과 중개자 없이 전 세계 누구에게나 디지털 통화를 P2P로 전송할 수 있다는 것입니다. 오늘날 이 P2P 기능이 자산, 증서, 음악, 예술품, 기업 간 계약 등과 같은 다른 비암호화폐 유형의 거래에 적용될 수 있다는 사실을 깨닫고 그 흥분이 더욱 고조될 것입니다.
보조 제목
비트코인에서 블록체인으로
보조 제목
실제 블록체인 살펴보기
그림 1의 오른쪽에 있는 Tx(트랜잭션)는 참여자의 두 계정(From 및 To) 간의 메시지를 나타냅니다. 이러한 트랜잭션의 세부 사항은 블록체인에 기록됩니다.
보조 제목
블록체인이란 무엇입니까?
블록체인은 탈중앙화 트랜잭션 시스템의 모든 참여자 간에 합의를 달성하는 데 사용되는 기술입니다. 블록체인의 목적은 개시자가 제안한 트랜잭션을 검증 및 실행하고 모든 참여자의 합의하에 이러한 트랜잭션 정보를 기록하는 것입니다.
그림 2에서 볼 수 있듯이 블록체인의 인프라는 특정 목적을 위한 소프트웨어, 즉 피어 간의 신뢰 매개체를 포함하는 분산 시스템에 존재합니다. 그림 2의 왼쪽은 작업을 수행하는 분산(클라이언트/서버) 시스템입니다. 시스템은 데이터 정보를 블록체인에 검증하고 기록할 수 있습니다.
블록체인 프로그래밍에서는 기존 시스템을 교체하는 대신 코드를 검증하여 합의를 강화합니다. 블록체인 프로그래밍을 더 잘 이해하기 위해 비트코인 및 이더리움 블록체인 스택을 살펴보겠습니다.
이미지 설명
그림 3
그림 3은 세 가지 프로그래밍 수준도 보여줍니다.
프로토콜 수준 프로그래밍 - 이 계층에는 오늘날 컴퓨터의 운영 체제 소프트웨어와 유사하게 블록체인 자체를 배포하고 운영하는 데 필요한 소프트웨어가 포함됩니다.
스마트 계약 수준 프로그래밍 - 이 수준에서는 검증 규칙을 설계하고 프로그래밍할 수 있으며 기본 블록체인에 기록할 데이터와 메시지를 지정할 수 있습니다. 스마트 계약은 사용자 애플리케이션을 대신하여 블록체인을 구동하는 엔진입니다.
응용 프로그램 수준 프로그래밍 - 이 수준에는 블록체인 프로토콜 외부의 웹 응용 프로그램 프레임워크 및 사용자 인터페이스 디자인 개념을 사용한 프로그래밍이 포함됩니다.
Dapp은 기본 블록체인 기술에서 파생된 다양한 분산 응용 프로그램이며 블록체인 세계에서 서비스 제공의 한 형태입니다. Dapp에는 중요한 코드 요소인 스마트 계약이 포함되어 있습니다. 주어진 스마트 계약에 대해 코드의 정확한 사본이 특수 트랜잭션으로 전송되고 블록체인 네트워크의 노드에 배포됩니다.
보조 제목
블록체인 프로그래밍
순차적 프로그래밍에서 구조적 프로그래밍, 함수형 프로그래밍, 객체 지향 프로그래밍(OOP), 웹 및 데이터베이스 프로그래밍, 빅 데이터 프로그래밍으로 진화하는 동안 프로그래머는 방법론, 아티팩트 및 아키텍처의 변화를 경험합니다. 마찬가지로 블록체인 프로그래밍은 또 다른 패러다임 전환입니다. 네 가지 기본 개념이 블록체인 프로그래밍에서 중요한 역할을 합니다.
분산형 인프라 - 블록체인 프로토콜, 스마트 계약 및 애플리케이션(Dapps)을 지원하는 특수 컴퓨팅 하드웨어 및 소프트웨어 스택. 이 인프라의 주요 구성 요소는 블록체인을 연결하는 노드와 네트워크입니다.
분산 원장 기술 - 인프라 맨 위에는 트랜잭션과 데이터가 모든 이해관계자의 원장에 동시에 기록되는 원장이 있습니다. 모든 이해 관계자가 동일한 사실을 기록하는 분산 원장입니다. 각 블록이 이전 블록의 서명에 연결되어 있어 변조할 수 없기 때문에 변경할 수 없습니다.
중개 프로토콜 - 탈중앙화 시스템의 참여자는 동일한 블록체인 프로토콜을 따라 연결하고 서로 통신하고 거래할 수 있습니다. 프로토콜은 모든 참가자가 준수해야 하는 일련의 규칙입니다.
분산형 인프라
분산형 인프라
블록체인 인프라는 도시를 연결하는 철도와 도로처럼 본질적으로 분산되어 있습니다. Dapp을 기차와 자동차로 생각할 수 있습니다. 분산 시스템이란 무엇입니까? 분산 시스템은 다음과 같은 특징을 가진 분산 시스템입니다.
1. 참여자는 점대점으로 의사소통하고 디지털이든 비디지털이든 자산의 소유권을 가집니다.
2. 참가자는 자신의 의지에 따라 시스템에 가입하거나 탈퇴할 수 있습니다.
3. 참가자는 기존의 신뢰 경계 외부에 자신의 네트워크를 배포할 수 있습니다.
4. 결정권은 중앙 기관이 아닌 모든 참가자가 내립니다.
5. 블록체인 자동화 소프트웨어를 사용하여 신뢰의 중개자 역할을 합니다.
이미지 설명
그림 4
그림 4는 단일 블록체인 노드의 논리적 아키텍처를 보여줍니다. 분산형 네트워크에서 노드는 네트워크 참가자의 신원을 나타내는 여러 계정을 지원할 수 있으며 계정은 트랜잭션 엔터티의 고유 식별자입니다.
블록체인 노드는 그림 4의 스택으로 표시된 요소를 호스트합니다. 블록체인 애플리케이션 개발의 기초입니다. 아래쪽 두 계층은 대부분 컴퓨팅 시스템의 표준 하드웨어 및 소프트웨어입니다. 세 번째 계층은 블록체인의 구성 요소를 포함하는 블록체인 프로토콜 계층입니다. 두 번째 계층은 애플리케이션 논리를 호스팅하며 이 계층은 데이터 액세스, 유효성 검사 및 로깅을 처리합니다. 최상위 계층은 HTML 및 JavaScript 관련 프레임워크를 사용하여 웹 프로그래밍이 수행될 수 있는 사용자 대면 인터페이스이며 이러한 요소는 Dapp 및 사용자 인터페이스(UI) 계층을 구성합니다.
Dapp은 우리가 일반적으로 하는 핸들 게임과 달리 단일 사용자만 지원합니다. 대신 많은 수의 참가자가 노드 네트워크를 통해 연결되며 각 노드는 여러 계정을 호스팅하고 다른 참가자를 식별할 수 있습니다. 노드는 분산형 관리 시스템용과 분산형 결제 시스템용으로 여러 개의 Dapp을 호스트할 수도 있습니다.
이미지 설명
그림 5
네트워크 식별자는 블록체인 네트워크에서 노드를 식별하는 데 사용됩니다. 예를 들어 네트워크 ID #1은 이더리움 공용 네트워크이고 네트워크 ID #4는 Rinkeby라는 또 다른 공용 네트워크입니다. 네트워크에 스마트 계약을 배포할 때 해당 식별자를 사용하여 네트워크를 지정해야 합니다. 주어진 네트워크의 참가자는 통합된 분산 원장을 공유하여 트랜잭션을 기록합니다.
성간 관측
성간 관측
오늘날 인터넷 기술이 그렇게 발전했다고 생각하지 않는 것처럼 블록체인의 기술은 무한합니다. 기술은 끊임없이 돌파하고 있으며 우리는 계속해서 새로운 아이디어와 새로운 아이디어를 제공해야 합니다.
변조할 수 없는 분산 데이터베이스인 블록체인은 점대점 전송 및 암호화 알고리즘과 같은 기술을 사용하여 신뢰 비용을 크게 줄이고 현재 생산 효율성을 향상시킬 것입니다. 동시에 블록체인 기술은 가치 인터넷의 매개체로서 현재의 정보 인터넷 기술을 전복시킬 가능성이 높다.