반응형

SW/블록체인 36

이더리움 dApp 개발을 위한 4가지 최고의 프레임워크

이더리움(Ethereum)은 최근 몇 년간 눈부신 성장을 이루었으며, 이에 따라 dApp(분산형 애플리케이션)을 개발하려는 개발자들이 크게 늘어나고 있습니다. 이더리움 네트워크에 따르면, 현재 약 2억 2천만 개의 고유 주소가 존재하며, 이는 dApp의 성장과 사용자의 증가를 의미합니다. 금융, 인사(HR), 공급망 관리 등 다양한 산업에서 글로벌 기업들이 dApp을 활용하고 있습니다. dApp 개발을 시작하려는 초보자에게 적합한 프레임워크를 선택하는 것은 매우 중요한 결정입니다.이 글에서는 이더리움 dApp 개발을 위해 추천되는 4가지 프레임워크를 소개하며, 이를 통해 여러분이 적합한 개발 도구를 선택할 수 있도록 돕겠습니다. 하지만 그 전에, dApp이 무엇인지 간단히 짚고 넘어가겠습니다.  dApp..

SW/블록체인 2024.09.20

블록체인 : 하이퍼레저의 구성 요소와 아키텍쳐를 이해 : 트랜잭션 처리 흐름

하이퍼레저 패브릭 컴포넌트 기존의 블록체인 플랫폼과 유사 하면서도 패브릭만이 가지는 고유한 컴포넌트들은 무엇이 있는지 살펴보겠습니다. Asset, 즉 자산은 네트워크를 통해 교환되는 모든 가치를 의미합니다. 부동산 및 하드웨어에서 지적 재산권 까지 다양한 유형의 자산이 존재합니다. 하이퍼레저 패브릭은 체인코드 의 거래를 통해 자산을 수정할 수 있는 기능을 제공합니다. 자산은 키-값 쌍의 모음으로 표시되며, 자산의 상태가 변경되면 변경사항이 원장에 트랜잭션으로 기록됩니다. 체인 코드는 앞에서 잠깐 언급했던 대로 비즈니스 로직을 의미합니다. 자산을 정의하고 자산을 수정하기 위한 거래가 포함되어 있습니다. 블록체인에 저장된 키-값 쌍을 읽고 상태를 변경하기 위한 규칙을 시행합니다. 파라미터 및 시스템을 관리하..

SW/블록체인 2022.02.17

블록체인 : 하이퍼레저 프로젝트 중 가장 잘 알려진 하이퍼레저 패브릭의 특징

Hyperledger Fabirc 하이퍼레저 패브릭은 하이퍼레저 프로젝트들 중 가장 먼저 제안된 플랫폼입니다. 2017년 상반기 베타 버전인 0.6버전 을 발표한 이후 하반기에 1.0이 발표되었고, 현재는 1.1버전을 거쳐 2.2 버전까지 출시되어 있습니다. 하이퍼레져 패브릭 프로젝트는 IBM이 개발을 주도하고 있습니다. 패브릭 역시 기업용 블록체인 플랫폼 개발을 위한 프로젝트로 기존의 금융서비스와 유사한 허가형 블록체인을 개발하는 데에 목표가 있습니다. 하이퍼레저 패브릭은 아무 노드나 네트워크에 참여할 수 있는 다른 블록체인 플랫폼과 달리, 신원이 확인된 참여자들을 대상으로 하는 비즈니스 응용 블록체인을 개발하고자 합니다. 또한 체인코드라는 스마트 계약 프로그램을 통해 다양한 응용 개발을 효율적으로 지..

SW/블록체인 2022.02.16

블록체인 : 엔터프라즈용 블록체인인 하이퍼레저 프로젝트 이해 : 목적에 따라 적절한 프로젝트를 선택하여 활용 방법

하이퍼레져 하이퍼레져는 리눅스 foundation에서 주관하고 2015년 12월에 시작된 블록체인 오픈소스 프로젝트입니다. 금융, IoT, 물류, 제조 등 여러 산업 에 걸쳐 적용 가능한 블록체인 기술을 개발하는데 목표를 두고 있습니다. 현재는 비트코인 이더리움 등 하이퍼레저 이외의 다양한 블록체인 플랫폼이 존재합니다. 하지만 다른 플랫폼과 비교해 하이퍼 레저는 다음과 같은 이점들을 가지고 있습니다. 첫째 프라이빗 블록체인이라는 점입니다. 이것은 기업 별도의 비즈니스 모델을 구현하기에 적합한 환경을 제공합니다. 현재 여러 기업들이 하이퍼레저 를 기반으로 하여 블록체인 기술을 개발하는데 힘쓰고 있습니다. 둘째, 금융 산업에 특화된 다른 플랫폼들과 달리 여러 산업에 범용적으로 도입 가능한 기술 표준을 제시한..

SW/블록체인 2022.02.15

블록체인 : 비잔틴 장애 상황에서 합의를 이루기 위한 BFT 기반의 다양한 알고리즘이 트랜잭션 처리율, 비용, 노드의 양 등에서 차이점

Byzantine Fault Tolerance (BFT) 비잔틴 장애 허용은 두 장군 문제를 일반화한 문제인 비잔틴 장군 문제로부터 파생된 장애 허용 연구 분야의 한 갈래입니다. 이 분야의 연구의 목적은 비잔틴 장애라고 불리는 시스템에 생길 수 있는 임의의 장애를 견딜 수 있는 시스템을 만드는 것입니다. 비잔틴 장애는 단지 시스템이 멈추거나 에러 메시지를 보내는 것과 같은 장애뿐만 아니라, 잘못된 값을 다른 시스템에 전달하는 등 좀 더 원인을 파악하기 어려운 장애들까지 포함합니다. 예를 들어서 결과를 반환하는데 실패했다든지, 부정확한 결과를 반환한다든지, 의도적으로 잘못된 결과의 반환 또는 시스템의 다른 파트들에 상이한 값을 반환하는것이 있겠습니다. 만약 비잔틴 장애 허용 시스템이 제대로 구현되었다면 미..

SW/블록체인 2022.02.14

블록체인 : 분산 합의의 필요성 : 블록체인에서 합의 알고리즘이 필요한 이유 : PoW, PoS, DPoS의 차이를 이해

분산합의 블록체인에서 사용되는 다양한 합의컨센서스 알고리즘들을 소개하기 전에, 먼저 분산 합의distributed consensus 에 대해서 알아보겠습니다. 분산 합의는 신뢰할 수 없는 통신 네트워크에 의해서 연결된 프로세스들의 그룹 간의 합의에 도달하는 것을 다룹니다. 따라서 다수의 노드들이 참여해 있는 p2p 네트워크에서 합의가 필요한 상황에서 분산 합의가 필요합니다. 분산 합의의 기술적인 정의는 간단 합니다. 하나의 고정된 개수의 노드 또는 프로세스들이 있다고 생각해봅시다. 그리고 각각의 노드들은 어떤 입력 값을 갖습니다. 노드들이 모두 올바른 노드들이 면 괜찮겠지만, 실제로는 그렇지가 않을 수 있습니다. 노드들 중에서 일부는 잘못되었거나 의도적으로 악의적일 수 있기 때문입니다. 그래서 분산 합의..

SW/블록체인 2022.02.13

블록체인 : 엔터프라이즈용으로 플랫폼 중 하나인 EOS의 등장 배경

EOS EOS의 로고는 보는 바와 같이 생겼으며, block.one이라는 회사에 의해 제작 및 관리되고 있는 3세대 블록체인입니다. Block.one의 CTO인 Dan Larimer가 EOS 개발에 핵심적인 역할을 했습니다. Dan Larimer는 EOS를 개발하기 전에 Steemit과 Bitshares라는 블록체인 Decentralized App을 이미 개발한 경험이 있는 블록체인 industry에 유명한 인물입니다. 또, EOS는 현재 가장 활동량이 많은 블록체인이기도 합니다. Blocktivity.info라는 사이트에 가면 EOS가 가장 활발하게 사용되고 있는 것을 보실 수 있습니다. 또, 폭발적으로 트랜잭션 수가 늘어난 블록체인이기도 합니다. 역사적으로 살펴보자면, 블록체인이라는 개념이 비트코인으..

SW/블록체인 2022.02.09

블록체인 : 이더리움 플랫폼 활용 : 개발된 다양한 DApp 종류, 사례

DApp 카테고리 현재 어떤 분야에서 Dapp이 활발히 개발되고 있는지 알아보겠습니다. Dapp은 현재 거래소, 도ㄹ박, 지갑, 게임, 금융, 미디어, 소셜, 스토리지, 자산, 정부, 개발, 보안, 인증, 에너지, 건강, 보험 등 많은 영역에서 활발히 개발 되고 있습니다. 현재 dapp 개발이 전 세계적으로 가장 활발한 블록체인 플랫폼은 ethereum입니다. https//www.stateofthedapps.com라는 사이트를 방문하면 ethereum 기반의 dapp들에 대한 많은 정보를 접할 수 있습니다. 아래의 도표를 보시면 현재 dapp 개발 현황을 카테고리별로 확인할 수 있습니다. 추가적으로 해당 도표는 트랜잭션 의 양을 기준으로 나타낸 것입니다. 현재 총 3583개의 Dapp이 해당 사이트에 등..

SW/블록체인 2022.02.07

블록체인 : 전통적인 App과 DApp 어떤 차이점, 아키텍쳐 : DApp 개발을 위해 고려해야 할 사항

분산화 시스템과 중앙화 시스템 Dapp은 decentralized application의 약어입니다. 그럼 decentralized는 무엇을 의미하는 것일까요? Centralized, Decentralized, Distributed의 비교를 통해 decentralized가 무엇을 의미하는지 알아보겠습니다. Centralized system은 필수적으로 노드 유저 등의 모든 것을 제어하는 하나의 authority를 갖습니다. 이것은 개인이 될 수도 있고 정부가 될 수도 있고 회사가 될 수도 있습니다. 또한, centralized system은 개별 장치의 작동과 단일 센터로부터의 정보 흐름을 직접 제어 받습니다. 모든 개인은 정보를 송수신하고 명령하는 중앙의 힘에 직접적으로 의존합니다. 때문에, 중앙 서버..

SW/블록체인 2022.02.06

블록체인 : 이더리움의 P2P 네트워크, 데이터베이스, 인코딩 방법 및 노드 디스커버리 과정

이더리움 네트워크, 노드 이더리움의 공동 계층 (Common Layer)은 전체 아키텍처에서 공통으로 사용하는 기능을 포함하고 있습니다. Common Layer에 대해서는 RLPx P2P 네트워크 프로토콜 등을 설명하고, 블록체인의 데이터를 효율적으로 저장하기 위한 스토리지 기능 그리고 Recursive Length Prefix (RLP) 데이터 인코딩 방법도 소개합니다. Application Layer에서는 이더리움이 단순 암호화폐가 아닌 블록체인 기술을 적용하여 다양한 문제를 해결하기 위한 서비스들을 개발/운영할 수 있는 플랫폼이라는 것을 설명합니다. 이더리움은 P2P 네트워크에 연결된 모든 노드들이 같은 역할과 기능을 수행하는 완전 분산형 P2P 토폴로지로 구성됩니다. 또한, 개별 peer들이 스스..

SW/블록체인 2022.02.05

블록체인 : 이더리움에서 지원하는 스마트 컨트랙트 : 스마트 컨트랙트를 실행하기 위한 실행엔진 (EVM), 실행 프로세스

스마트 컨트랙트 이더리움에서는 스마트 컨트랙트 실행을 위한 실행 계층이 있습니다. 스마트 컨트랙트는 디지털 방식으로 특정한 계약을 수립, 검증, 실행하기 위한 컴퓨터 프로토콜입니다. 이는 제 3자 없이 신뢰할 수 있는 거래의 수행을 가능하게 하며, 거래들은 추적할 수 있고, 그러나 되돌릴 수 없게 합니다. 닉 자보는 스마트 컨트랙트를 “신뢰할 수 없는 컴퓨터 인터넷 환경에서 고도로 발달된 계약을 준수하도록 강제하는 프로토콜이다”라고 했으며, 이것은 기존의 계약 관련 법률보다 우수한 보안성을 제공하고 동시에 저렴한 비용으로 계약을 처리할 수 있도록 합니다. 스마트 컨트랙트는 디지털 명령어로 계약을 작성하면 조건에 따라 계약 내용을 자동으로 실행할 수 있습니다. 또한, 디지털로 된 계약서는 조건에 따른 계약..

SW/블록체인 2022.02.04

블록체인 : 이더리움 합의 알고리즘인 PoW 원리, 문제점

합의 알고리즘 이더리움은 블록체인 기술을 기반으로 한 플랫폼이기 때문에 중앙 서버에서 블록과 트랜잭션의 유효성을 판단해주지 않습니다. 때문에 전달된 정보가 문제가 없다는 것을 참여자들이 스스로 검증하고 그 유효성을 판단해야 합니다. 이뿐만 아니라 완전히 탈중앙화된 P2P 네트워크에서는 네트워크 지연, 중복 수신, 의도적인 변조 등의 이유로 정보 전달과정에 문제가 발생할 수 있습니다. 따라서 다음과 같은 문제들을 합의 수단, 즉 consensus mechanism을 통해서 해결해야 합니다. 첫째, 특정 노드가 임의로 블록체인을 조작하지 못 하도록 해야 합니다. 둘째, 블록과 트랜잭션 등의 유효성 여부를 검증할 수 있는 방법이 필요합니다. 셋째, 블록을 체인에 연결할 때, 동시에 두 개 이상의 유효한 블록체..

SW/블록체인 2022.02.03

블록체인 : 이더리움 네트워크에서 사용되는 암호화폐인 이더와 토큰인 Gas : 이더리움의 전반적인 트랜잭션 처리 과정

이더 단위 비트코인에서는 네트워크에서 비트코인(BTC)을 화폐로 사용하고 최소 단위로 사토시(Satoshi)를 사용합니다. 암호화폐는 쪼개질 수 있으므로 1BTC는 10^8(1억) 사토시입니다. 이와 마찬가지로 이더리움 네트워크에서도 사용되는 화폐가 존재합니다. 바로 이더(Ether)라는 암호화폐가 사용되고, 이더리움에서 계정들은 이더를 전달할 수도 있고 전달받을 수도 있습니다. 또한 이더는 저명한 암호화폐로서 거래소를 통해 시장에서 거래가 되고 있습니다. 그리고 이것은 이더리움상의 리소스를 사용한 대가로 지급할 가스(Gas)와 교환하기 위해 사용됩니다. 가스에 대해서는 자세히 설명하도록 하겠습니다. 그림은 이더의 단위를 보여줍니다. 기본단위인 Wei부터 Tether까지 나와 있으며, 이 이름들은 모두 ..

SW/블록체인 2022.02.02

블록체인 : 이더리움의 데이터 계층의 블록의 구조 : 비트코인의 머클트리를 개선한 머클 패트리샤 트리

제네시스 블록 제네시스 블록은 비트코인과 마찬가지로 블록체인의 최초 블록을 의미하며, 첫 번째에 위치에 생성됩니다. 특징으로는 최초의 블록으로서 이전(부모) 블록이 없기 때문에 이를 참조할 수 없고, 블록의 번호 또한 초기값인 0을 갖습니다. 그리고 처음에는 어떠한 트랜잭션도 생성되지 않았기 때문에, 제네시스 블록에는 트랜잭션이 없습니다. 추가로, 이더리움 클라이언트들은 같은 제네시스 블록을 갖고 있을 때만 서로가 같은 이더리움 네트워크에 연결되어 있다는 것을 인지하고 블록들을 싱크합니다. 그래서 제네시스 블록이 다르다면 다른 블록체인이라고 말할 수 있으며, 이는 이더리움에서 프라이빗 네트워크를 생성할 때 쓰입니다. 다음은 제네시스 블록을 생성하기 위해서 사용되고 있는 genesis.json 파일입니다...

SW/블록체인 2022.02.01

블록체인 : 이더리움의 탄생, 로드맵 : 비트코인과의 차이점

이더리움 개요 이더리움은 오픈소스이고 블록체인 기술을 기반으로 설계되었으며, 정확히 프로그래밍 한 대로 동작하는 스마트 컨트랙트를 실행시키는 분산 컴퓨팅 플랫폼입니다. 이더리움에서는 이더(Ether)라는 이더리움 플랫폼에 의해 생성된 암호화폐가 존재하고, 이것은 비트코인과 마찬가지로 거래소에서 거래되고 있습니다. 이더리움은 2013년 비탈릭 부테린이라는 아주 스마트한 젊은이가 백서를 작성했고, 이후 2014년에 ICO를 거쳐 2015년 7월 30일에 개발한 이더리움을 런칭하였습니다. 비탈릭 부테린은 암호화폐인 비트코인에 사용된 핵심 기술인 블록체인에 화폐 거래 기록 뿐만 아니라 계약서 등의 추가 정보를 기록할 수 있다는 점에 착안하여, 전 세계 수많은 사용자들이 보유하고 있는 컴퓨팅 자원을 활용해 분산 ..

SW/블록체인 2022.01.30

블록체인 : 비트코인 마이닝 알고리즘 원리, 이해 : 네트워크 분기 합의 알고리즘 원리, 이해

분산화된 합의 이미 설명해 드린 것처럼, 비트코인의 분산화된 합의는 네트워크상의 노드들 사이에서 독립적으로 일어나는 아래의 프로세스에 따라 이루어집니다. 첫 번째, 모든 풀 노드가 각 거래에 대해 독립적으로 검증을 실시합니다. 두 번째, 작업 증명 알고리즘을 이용하여, 마이너들은 검증된 거래들을 새로운 블록에 추가합니다. 세 번째, 모든 노드들이 새 블록을 검증한 후 블록체인에 연결합니다. 네 번째, 모든 노드가 작업증명을 통해 연결한 체인들 중 가장 긴 체인을 선택합니다. 이 네 가지 프로세스들에 대해 살펴본 후, 네트워크 전체의 합의를 얻어내기 위해 네 가지 프로세스가 어떻게 상호작용하는지 알아보겠습니다. 새롭게 생성된 거래는 비트코인 네트워크 내에 있는 이웃 노드들에게 전송된 후, 네트워크 전체로 ..

SW/블록체인 2022.01.29

블록체인 : 비트코인 네트워크를 구성하고 있는 노드의 종류와 동작원리 : 블룸필터의 원리

글로벌 비트코인 노드의 분포 비트코인 시스템에서 노드들이 가지고 있는 분산 장부는 어떤 내용을 가지고 있는지 알기 위해서 block과 transaction의 구조와 내용을 확인했습니다. 또한, 어떤 데이터를 주고받기 위해서는 거래의 대상들이 존재해야 합니다. 비트코인 시스템에서는 주소를 이용해서 정보를, 즉 비트코인을 전달합니다. A 주소에서 B 주소로 10트코인을 보낸다고 하는 것이 트랜잭션입니다. 그래서 비트코인 주소는 어떻게 생성되는지에 대해서 알아보았습니다. transaction과 block들이 전파되기 위한 비트코인 네트워크에 대해서 설명을 드리겠습니다. 지금 그림은 현재 전 세계 비트코인 노드들의 분포도를 나타냅니다. 현재, 전 세계적으로 총 10,211개의 노드가 구동 중인 것을 보실 수 있..

SW/블록체인 2022.01.27

블록체인 : 암호키와 비트코인 주소 개념 및 이해 : 암호화폐 지갑 개념, 종류

암호키와 비트코인 주소의 관계 모든 비트코인 거래에는 블록 상의 장부에 기록되기 위해 유효한 서명이 필요합니다. 이러한 서명은 디지털 키가 있어야 생성되는데, 이러한 디지털 키의 복사본만 가지고 있으면 해당 계좌에서 비트코인을 관리할 수 있습니다. 이 디지털 키는 개인 키(private key)와 공개키(public key)로 구성되어 있습니다. 공개키는 은행의 계좌번호와 유사하고, 개인 키는 비밀 번호(PIN 넘버)또는 계좌를 관리하기 위해 수표에 하는 서명과 유사합니다. 비트코인 네트워크상에서, 공개키는 비트코인을 전송받을 때 사용되며, 개인 키는 전송받은 비트코인을 소비(spend)하기 위해 거래에 서명할 때 사용됩니다. 개인 키를 이용해 직접 거래를 발생시킬 수 있으므로 개인 키는 백업을 해야 하..

SW/블록체인 2022.01.26

블록체인 : 비트코인을 구성하는 데이터 모델 : 트랜잭션 구조 : 개념, 원리, 개요

비트코인의 트랜잭션 거래는 비트코인 시스템에서 가장 중요한 요소이며, 비트코인 시스템 내에 있는 참가자들 간 가치를 전송하는 행위를 인코딩한 데이터 구조입니다. 각 거래는 전 세계적인 장부에 들어있는 공개된 항목입니다. 거래의 생성부터 시작하는 거래 생명 주기에 대해서 설명하겠습니다. 첫째, 거래는 비트코인 시스템에 참여하는 모든 노드가 생성할 수 있습니다. 비트코인 거래의 경우는 이전에 발생한 거래의 출력을 자금원으로 참조합니다. 거래가 생성되었으면 자금원의 소유주가 자금원을 해당 거래의 입력 값으로 사용하기 위해 해당 거래에 서명해야 합니다. 둘째, 서명이 완료된 유효한 거래는 블록체인에 포함되기 위해 채굴자들에게 도달할 때까지 비트코인 네트워크상에 전파되어야 합니다. 우선 비트코인 네트워크에서 생성..

SW/블록체인 2022.01.24

블록체인 : 비트코인의 기원, 비트코인의 구성 요소인 블록, 머클 트리 개념, 원리, 개요

비트코인의 기원 이 모듈에서는 비트코인의 기원에 대해 알아보고, 비트코인의 가장 기본적인 구성요소들인 블록체인의 블록과 머클 트리에 대해 공부하겠습니다. 비트코인은 2008년 가을, 익명의 개발자 또는 개발 단체인 사토시 나카모토에 의해 개발된 최초의 암호화폐 기반의 디지털 지불 시스템입니다. 비트코인은 분산 장부 기술을 사용하였는데 이것을 블록체인이라고 부르고 있습니다. 비트코인에서 처음 사용된 블록체인은 다음과 같은 특징이 있습니다. 첫째는 중앙 집중식 관리자가 없는 시스템입니다. 참여자들끼리 거래의 내용을 공유하고 거래를 인증하고 정보를 저장합니다.둘째는 모든 거래 내역과 역사가 공개됩니다. 기록된 데이터들은 수정할 수 없습니다. 그리고 강한 보안 방법으로 데이터들이 안전합니다.비트코인의 디지털 지..

SW/블록체인 2022.01.23
반응형