반응형

SW/블록체인 59

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

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

SW/블록체인 2022.02.01

블록체인 : 이더리움의 데이터 계층 : 어카운트, 트랜잭션, 트랜잭션 리시트의 구성 요소

계정 생성 어카운트를 식별하는 어카운트 주소가 어떻게 만들어지는지 설명하겠습니다. 이더리움 클라이언트에서 어카운트 생성 명령어를 통해서 계정을 생성하면 20바이트의 Hex 값이 생성됩니다. 이것이 바로 생성한 어카운트를 가리키는 주소입니다. 주소가 생성되는 과정은 다음과 같습니다. 우선 랜덤으로 32byte의 개인 키를 생성합니다. 그리고 생성된 개인 키를 가지고 ECDSA를 통하여 64byte의 공개키를 생성합니다. 이 공개키를 가지고 Keccak256 해시함수를 실행하면 32byte의 해시값이 생성됩니다. 마지막으로, 생성된 해시값에서 뒤의 20바이트를 추출한 것이 어카운트의 주소가 됩니다. 트랜잭션은 한 외부 소유 어카운트에서 다른 어카운트나 스마트 컨트랙트에 보내는 데이터 구조입니다. 보통 다른 ..

SW/블록체인 2022.01.31

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

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

SW/블록체인 2022.01.30

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

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

SW/블록체인 2022.01.29

블록체인 : 비트코인 네트워크에서 합의가 필요한 이유 : 마이닝 과정을 통한 합의 도출

채굴 채굴은 새로운 블록과 비트코인이 블록체인 네트워크상에 추가되는 과정입니다. 새로운 블록을 생성하기 위해서 채굴자들은 네트워크에 컴퓨팅 파워를 제공하고, 그에 대한 보상으로 비트코인을 지급받는 것입니다. 이러한 보상을 받기 위해 채굴자들은 자신의 컴퓨터를 이용해 암호화 해시 알고리즘을 기반으로 하는 어려운 수학 문제를 푸는데, 이것이 채굴의 기본이라고 할 수 있습니다. 블록체인 네트워크상에서 이 문제를 다른 노드들보다 빨리 해결해야 하고, 블록을 생성할 권한을 얻기 위해 각 노드들은 서로 경쟁하게 됩니다. 이 문제에 대한 해답을 찾는 과정을 작업증명 (Proof of Work)이라 하고, 이것은 채굴자가 새 블록을 생성하기 위해 어려운 계산을 하려고 했다는 사실을 증명하는 역할을 합니다. 또한 채굴을..

SW/블록체인 2022.01.28

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

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

SW/블록체인 2022.01.27

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

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

SW/블록체인 2022.01.26

블록체인 : 트랜잭션 수수료, 트랜잭션의 입력/출력, 비트코인 스크립트 : 개념, 원리, 이해

거래의 요소 차액은 해당 거래가 포함된 블록을 채굴한 마이너가 가져갑니다. 그래서 이 수수료는 거래를 다음 블록에 포함시키기 위한 장려금으로 사용되고, 해당 블록을 채굴하는 마이너는 거래의 수수료들을 수집하게 되는 것입니다. 뿐만 아니라, 수수료는 스팸 같은 블록체인 네트워크에 악영향을 미치는 노드들의 의욕을 꺾는 역할로 사용됩니다. 왜냐하면 스팸이나 DDoS를 하기 위해서 거래를 생성해야 하는데 이때 수수료가 발생하면 금전적인 문제 때문에 공격을 못 하기 때문입니다. 수수료는 앞서 말씀드린 대로 input들의 sum과 output들의 sum을 계산해서, 총 input에서 총 output을 빼면 남는 것이 수수료가 됩니다. 수수료는 거래를 만드는 대상이 정할 수 있는데, 수수료를 책정할 때는 금액에 비례..

SW/블록체인 2022.01.25

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

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

SW/블록체인 2022.01.24

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

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

SW/블록체인 2022.01.23

블록체인 : 해시함수, 디지털 서명, 암호학 관련 기법, 개념, 개요, 설명, 예제

해시 함수 해시 함수의 첫 번째 특징은 메시지 축약입니다. 입력 값으로 어떤 데이터를 넣더라도 동일한 크기의 출력 값을 도출해낸다는 점입니다. 정확히 말하면, 입력 값으로 어떤 크기의 데이터를 넣든, 어떤 타입의 데이터를 넣든 같은 사이즈의 출력 값이 출력됩니다. 그림에는, 해시 함수의 입력 값 X와 출력 값 Y가 있습니다. 입력 값 X를 해시 함수를 이용해 해싱을 하면 출력 값 Y를 얻을 수 있습니다. 그림의 해시 함수 H를 SHA-256 해시 함수라고 가정해보겠습니다. 이 경우, 예시에 나와 있는 것처럼 소문자 하나를 입력하든, 긴 문자열을 입력하든 32바이트의 동일한 사이즈의 output을 만듭니다. 이와 같은 해시 함수의 성질을 이용하면 용량이 큰 원본 데이터의 사이즈를 많이 줄일 수 있습니다. ..

SW/블록체인 2022.01.22

블록체인 : 비트코인 한계, 블록체인 종류, 사용 사례, 산업 분야

비트코인의 한계 비트코인에는 몇 가지 고유한 문제가 있습니다. 첫째는 작동하는 데 엄청난 비용이 든다는 것입니다. 수백만 대의 컴퓨터가 전세계에서 사용되고 있으며 사용하는 전기량이 엄청납니다. 비트코인은 이러한 컴퓨터 중 많은 부분이 마이닝이라고 불리는 프로세스를 거치며, 보상으로 비트코인을 지불해야 합니다. 또한 마이닝 비용을 허용합니다. 또한 통화를 사용하려면 거래 수수료가 발생해야 한다는 모순이 있습니다. 일상생활에서 돈을 사용하는데 필요한 수수료는 없습니다. 둘째, 거래 확인에 너무 많은 시간이 걸립니다. 따라서 비트코인을 실시간 결제 수단으로 사용하기는 어렵습니다. 이유는 블록을 생성하는 데 약 10분 (약 10분 동안 생성되는 트랜잭션의 세부 사항 포함)이 소요되고, 첫 번째 블록에는 6개 이..

SW/블록체인 2022.01.21

블록체인 : 핵심 기술, 특징, 네트워크 동작 원리

블록체인 제4차 산업혁명 시대에 인공 지능을 뛰어넘는 거대한 기술인 정보의 바다를 가치의 바다로 바꾸는 새로운 기술입니다. 기존의 패러다임과 질서를 변화시키는 또 다른 산업 혁명으로 간주되고 있습니다. 세계 경제 포럼 (World Economic Forum)은 세계은행의 80%가 블록체인 기술을 채택할 것으로 예측을 하였습니다. 또한 블록체인 기술이 2025년까지 전 세계 총 생산량의 10%를 차지할 것이라고 예측하였습니다. 블록체인 핵심 기술 블록체인은 다음의 핵심 기술들로 이루어졌습니다. 첫째는 트랜잭션 서명을 위한 비대칭 암호화 기술입니다. 둘째는 트랜잭션과 블록 해싱을 위한 해시 함수입니다. 세 번째는 트랜잭션을 블록으로 효율적으로 패키징하기 위해 Merkle Tree라는 기법을 사용하고 있습니다..

SW/블록체인 2022.01.20

블록체인 : 기존 화폐의 문제점, 암호화폐의 출현 배경, 기존 화폐 문제 해결 방법

암호화폐 열풍 2017년 말, 암호화폐 열풍이 한국에 왔습니다. 많은 젊은이들이 암호화폐에 돈을 투자하기 시작했습니다. 2018년 1월 6일 한국에서 비트코인 한 개가 2,660만 원 또는 약 미화 24,000달러로 팔렸지만, 동일한 한 개의 비트코인이 미국에선 2,000만 원 또는 18,000달러에 팔렸습니다. 가격이 왜 이렇게 다른 것을 “김치 프리미엄”이라고 불렀습니다. 비트코인의 가격이 암호화폐 거래소마다 다른 이유는 각 거래소에서 거래하는 사람들이 다르기 때문입니다. 주식과 같은 통합관리 시스템이 없기 때문에 각 사용자가 가격을 책정합니다. 비트코인의 가격이 그때보다 많이 떨어졌음에도 불구하고, 그 열풍은 여전히 한국뿐만 아니라 전 세계에서 계속되고 있습니다. 암호화폐에 대한 동기를 설명하기 전..

SW/블록체인 2022.01.19

블록체인 : 분산 금융 DeFi의 특징과 사례

Decentralized Finance (DeFi) 탈중앙화 금융(DeFi)은 블록체인 네트워크 위에서 작동하는 금융 애플리케이션 생태계를 일컫습니다. 구체적으로 말하자면, 탈중앙화 금융이라는 용어는 누구나 이용할 수 있고 어떠한 중앙 기관 없이 작동하는 오픈 소스이자, 허가가 필요 없고, 투명한 금융 서비스 생태계를 만들고자 하는 움직임을 의미할 수 있습니다. 사용자는 자신의 자산을 완전히 통제하며, 피어-투-피어(P2P)와 탈중앙화 애플리케이션(DApp)을 통해 생태계와 상호작용 합니다. DeFi의 핵심 이점은 특별히 현 금융 시스템으로부터 고립된 이들이 금융 서비스를 쉽게 이용할 수 있습니다. DeFi 장점과 단점 DeFi의 또 다른 잠재적 이점은 공용 블록체인상의 상호 운용 가능한 DeFi 애플리..

SW/블록체인 2022.01.18

블록체인 : 프로젝트의 자금 모집 방법 : ICO, IEO, STO의 특징

ICO (Initial Coin Offering) ICO는 쉽게 말해 새로운 블록체인 프로젝트를 개발하는 블록체인 개발자들이 초기 개발 자금을 모금하기 위한 수단이라고 할 수 있습니다. ICO를 하려는 개발 팀은 프로젝트의 목적과 역량과 같은 핵심 정보를 설명한 백서를 작성하여 공개합니다. 성공적인 ICO를 위해서는 프로젝트가 어떻게 활용될지, 왜 가치가 있는지, 누가 그것을 필요로 하고, 어떻게 개발에 성공할 수 있을지를 확실한 증거를 이용해 뒷받침해주어야 합니다. 그리고 토큰을 만든 후, 투자자들에게 ICO에 참여해 프로젝트를 지원하도록 설득하는 것입니다. 투자자는 개발자가 공개한 정보를 보고 비트코인 또는 화폐를 이용해 펀딩하는 방식으로 토큰을 구매합니다. ICO를 통해 그 회사는 제품을 개발할 자..

SW/블록체인 2022.01.17

블록체인 : 암호화폐 거래소와 증권 거래소의 특징 비교 : 중앙집중식 거래소와 분산형 거래소의 특징

암호화폐 거래소 한동안 실시간 검색어에서 상위 랭크를 차지했던 코인원, 업비트, 빗썸은 한국의 대표적인 암호화폐 거래소이며 바이낸스는 세계 최대의 거래소로 잘 알려져있습니다. 비트코인의 인기가 급등하면서 비트코인과 여러 코인들을 구입하기 위해 많은 사람들이 거래소를 이용하게 되었고, 업비트의 경우를 예로 들자면, 17년 12월 하루 평균 100만 명의 이용자, 30만명의 동시접속자 수, 그리고 최대 10조원에 달하는 거래액 등의 기록을 세우며 폭발적인 성장세를 보였습니다. 또한 빗썸은 대한 민국의 가상화폐 거래소 1세대로서 글로벌하게 많이 이용되었던 거래소입니다. 이러한 암호화폐 거래소는 기존의 화폐나 암호화폐를 다른 코인 또는 토큰과 교환해주는 서비스를 제공하고 있습니다. 이 이미지는 암호화폐 거래소 ..

SW/블록체인 2022.01.16

블록체인 : 지갑의 개념, 종류, 이해

암호화폐 지갑은 사용자가 비트코인과 같은 암호화폐를 보관하거나, 주고 받을 수 있도록 만들어진 소프트웨어입니다. 전통적인 ‘포켓‘ 지갑과 달리 디지털 지갑은 암호화폐를 저장하지 않습니다. 코인들은 단일 위치에 저장되거나 물리적인 형태로 존재하지 않고, 블록체인 내에 기록되어 있는 데이터이기 때문에 디지털 지갑은 해당 소유주에게 속한 암호화폐를 추적하여 합산한 결과만을 보여주는 역할을 합니다. 쉽게 말해, 지갑 속에 만원권, 오만원권 등의 실제 지폐를 넣고 다니지만, 비트코인 지갑이라고 해서 지갑 내부에 실제 비트코인이 들어있는 것은 아니라는 의미입니다. 키 스토리지 지갑 내에는 거래를 하기 위해 필요한 중요한 키 값들을 저장합니다. 이 키 값은 공개키, 개인키에 해당하는데요, 공개키는 개인의 계좌번호, ..

SW/블록체인 2022.01.15

블록체인 : CBDC 개요, 특징, 의미, 원리, 기술, 장점

CBDC (Central Bank Digital Currencies) 중앙은행 디지털화폐(CBDC)는 전자적인 형태로 발행되는 중앙은행 화폐를 말합니다. 형태상 중앙은행 디지털화폐와 유사하나, 중앙은행이 새로이 발행하는 전자화폐를 CBDC로 정의합니다. 이용 목적에 따라 모든 경제주체들의 일반적인 거래에 사용되는 소액 결제용과 은행 등 금융기관 사이의 거래에 사용되는 거액 결제용으로 구분 가능합니다. CBDC는 전자적 방식으로 구현됨에 따라 현금과 달리 관련 거래의 익명성을 제한할 수 있을 뿐만 아니라 정책 목적에 따라 이자 지급, 보유한도 설정, 이용 시간 조절도 가능합니다. CBDC와 관련된 논의는 과거에도 있었으나, 최근 분산원장기술의 발전과 암호자산의 확산 등을 계기로 이에 대한 논의가 활성화되었..

SW/블록체인 2022.01.11

블록체인 : 스테이블 코인 : 특징, 개념, 의미, 정리, 종류

스테이블 코인 오늘날, 미국 달러부터 유럽 유로화, 일본 엔화 등에 이르기까지, 유엔이 인정하는 화폐는 전세계적으로 180개입니다. 전 세계 경제에서 화폐는 상품과 서비스를 구입하는 데 사용됩니다. 인플레이션, 변동 환율와 같은 요인에도 불구하고, 이러한 대부분의 통화의 가치는 거의 변하지 않습니다. 그렇기에 여러 경제권에서 정부가 발행한 통화를 활용합니다. 예를 들어, 여러분이 좋아하는 제빵사로부터 한 덩어리의 빵을 살 수 있고, 그것이 내일 99센트로 급격히 떨어질 가능성이 매우 낮다는 것을 알기 때문에 오늘 빵을 위해 3.50 달러를 기꺼이 지불합니다. 스테이블 코인은 디지털 화폐의 형태로 전통적이고 안정적인 통화를 모방하는 것을 목표로 합니다. 일반적으로 스테이블코인은 기초자산의 가치를 담보로 한..

SW/블록체인 2022.01.10
반응형