BlogHide Resteemsbrownbears (42)in kr • 6 years ago이더리움 - 블록과 블록체인비트코인과 이더리움 블록 비교 비트코인의 블록은 헤더와 바디로 나누어 볼 수 있습니다. 이더리움도 비트코인의 블록구조와 크게 다르진 않지만 블록의 헤더부분에 uncle_list 와 stack_trace 라는 값이 추가되어 있는 형태입니다. uncle list: 비트코인의 이전블록을 이더리움에서 parent 블록이라고 말하기…brownbears (42)in kr • 6 years ago이더리움 - 상태변환단계 및 코드실행상태변환함수 이더리움을 송금했다고 했을 때 계정의 상태가 어떻게 변하는지 아래에서 설명합니다. 상태변환 단계 트랜잭션이 형식에 제대로 맞는지(즉, 올바른 개수의 값을 가지고 있는지) 체크하고, 서명이 유효한지, nonce가 발신처 계정의 nonce와 일치하는지를 체크. 그렇지 않다면 오류를 반환 gaslimit *…brownbears (42)in kr • 6 years ago이더리움 - 계정, 트랜잭션, 메시지 (Ethereum - Account, Transaction, Message)이더리움 계정 (Account) 이더리움 계정에는 20바이트의 주소와 정보를 직접 전달해주는 상태변환을 가지고 있으며 다음 네 개의 필드가 존재합니다. nonce : 각 트랜잭션이 오직 한번만 처리되게 하는 카운터 value : 계정의 현재 ether 잔고 contract code : 계정의 컨트랙트코드 (값이 없을…brownbears (42)in kr • 6 years ago이더리움이란?비트코인의 한계 튜링불완전성 : 비트코인 스크립트 언어로 할 수 있는 작업이 많긴 하지만, 모든 경우의 프로그래밍을 다 지원하지는 않습니다. 거래 증명을 할 때 무한 순환에 빠지는 것을 막기 위해 while이나 for와 같은 순환(loop) 명령 카테고리가 빠져 있습니다. 이론적으로는 튜링불완전성 은 개발자가 극복할 수 있지만 (if…brownbears (42)in kr • 6 years ago비트코인 개념 - UTXO 란?UTXO 란 Unspent Transaction Output 의 약자로, 아직 쓰지않은 잔액 이라는 의미입니다. 비트코인 네트워크에서는 잔액이라는 개념은 애초에 존재하지 않고, 트랜잭션에 의한 결과물들의 합을 잔액이라는 개념으로 사용하는데 이를 UTXO 데이터로 대체합니다. 각 지갑의 UTXO들은 해당 지갑 주인(소유주)에 대해 공개키 암호로…brownbears (42)in kr • 6 years ago양자 컴퓨터(quantum computer)란?양자컴퓨터란? 양자컴퓨터는 연산 체계 자체가 기존의 컴퓨터와 전혀 다른 방식으로 작동하는 컴퓨터입니다. 기존의 방식은 비트로 0, 1로만 표현되며 비트는 둘 중 하나만 가질 수 있습니다. 반면 양자컴퓨터은 0, 1, 그리고 0과 1의 조합을 동시에 나타내고 저장할 수 있는 양자 비트(quantum bits) , - 이를 줄여서…brownbears (42)in kr • 6 years ago블록체인 타임스탬프 (blockchain timestamp)블록체인에 해당하는 개념은 타임 스탬프 서버 라는 부분에 설명되어 있습니다. 이로 인해 블록체인과 타임스탬프는 상당히 큰 연관성이 있어 보인다는 것을 알 수 있습니다. 그렇다면, 타임 스탬프 개념에 대해서 다시 생각해 봅시다. 일반적인 타임스탬프(Timestamp)라고 하면 “2018-04-05 13:00:00”등의 형식으로 표현되는…brownbears (42)in kr • 6 years ago51% 공격(Attack)이란?51% 공격(Attack)이란? 51% 공격은 작업증명 (PoW) 알고리즘에서 나오는 용어입니다. 비트코인은 작업증명(PoW)을 사용해서 연산을 통해 일종의 문제를 가장 빨리 푼 노드에게 블록을 추가시킬수 있는 권한을 줍니다. 이때 나머지 노드들은 해당 블록이 유효한 거래인지 승인을 하게 됩니다. 절반 이상의 승인을 거치면 유효한 거래로 확인하고…brownbears (42)in kr • 6 years ago작업증명 (Proof-of-Work : PoW) 알고리즘이란?작업증명(Proof-of-Work) 방식의 합의 알고리즘은 비트코인에서 사용되는 합의 알고리즘으로써 어떤 트랜잭션이 발생했을 경우 해당 트랜잭션이 유효한 트랜잭션인지에 대한 합의 방법 및 새로운 블록이 진짜인지, 가짜인지에 대한 검증을 수행합니다. 작업 증명 방식(PoW)을 이해하기 위해서는 우선 마이닝 과정에 대한 개념정리가 필요합니다.…brownbears (42)in kr • 6 years ago1-2. 머클트리(merkle tree)란?이전글보기 1. 블록체인이란? 1-1. 블록체인 기술 정의 1-2. 머클트리(merkle tree)란? 2. 채굴방식(마이닝) POW, POS, DPOS 란? 3. 스마트 컨트랙트란(Smart Contracts)? 4. 퍼블릭 블록체인, 프라이빗(컨소시움) 블록체인 비교 5. 튜링…brownbears (42)in kr • 6 years ago1-1. 블록체인 기술 정의이전글보기 1. 블록체인이란? 1-1. 블록체인 기술 정의 1-2. 머클트리(merkle tree)란? 2. 채굴방식(마이닝) POW, POS, DPOS 란? 3. 스마트 컨트랙트란(Smart Contracts)? 4. 퍼블릭 블록체인, 프라이빗(컨소시움) 블록체인 비교 5. 튜링…brownbears (42)in kr • 6 years ago5. 튜링 완전(turing-complete)이란?이전글보기 1. 블록체인이란? 1-1. 블록체인 기술 정의 1-2. 머클트리(merkle tree)란? 2. 채굴방식(마이닝) POW, POS, DPOS 란? 3. 스마트 컨트랙트란(Smart Contracts)? 4. 퍼블릭 블록체인, 프라이빗(컨소시움) 블록체인 비교 5. 튜링…brownbears (42)in kr • 6 years ago4. 퍼블릭 블록체인, 프라이빗(컨소시움) 블록체인 비교이전글보기 1. 블록체인이란? 1-1. 블록체인 기술 정의 1-2. 머클트리(merkle tree)란? 2. 채굴방식(마이닝) POW, POS, DPOS 란? 3. 스마트 컨트랙트란(Smart Contracts)? 4. 퍼블릭 블록체인, 프라이빗(컨소시움) 블록체인 비교 5. 튜링…brownbears (42)in kr • 6 years ago3. 스마트 컨트랙트란(Smart Contracts)?이전글보기 1. 블록체인이란? 1-1. 블록체인 기술 정의 2. 채굴방식(마이닝) POW, POS, DPOS 란? 3. 퍼블릭 블록체인, 프라이빗(컨소시움) 블록체인 비교 4. 튜링 완전(turing-complete)이란? 스마트 컨트랙트란? 스마트 컨트랙트(Smart Contracts) 는 중개자없이…brownbears (42)in kr • 7 years ago2. 채굴방식(마이닝) POW, POS, DPOS 란?리플과 같이 최초 발행 이후 추가발행이 불가능한 암호화폐도 있지만 대부분은 채굴방식을 통해 추가발행이 진행됩니다. 채굴방식은 대표적으로 POW, POS, DPOS가 있습니다. 한마디로 어떤 방식으로 채굴을 해서 보상을 받을것인지에 대한 약속 이라고 보면 됩니다. 명칭은 채굴 증명방식 , 합의 프로토콜 , 합의 메카니즘 등…brownbears (42)in kr • 7 years ago1. 블록체인(blockchain) 이란?블록체인(block chain)이란? 블록체인 은 관리 대상 데이터를 블록 이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어 누구도 임의로 수정될 수 없고 누구나 변경의 결과를 열람할 수 있는 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술입니다. 이는 근본적으로…brownbears (42)in kr • 7 years agoGO언어 기본 디렉토리 설정설치는 받으시면 됩니다. 기본 디렉토리 Go 언어는 모든 부분이 패키지로 구성되어 있고, 인터넷에 있는 소스 코드를 받아와서 바로 사용하기 때문에 기준 디렉터리가 필요합니다. 다음과 같이 company 디렉터리를 예로 들면 company아래에 bin, pkg, src 디렉터리가 들어있습니다. bin: 소스 파일(패키지)를 컴파일하여…brownbears (42)in kr • 7 years agoGO언어란?Go 언어는 빠른 성능, 안정성, 편의성, 쉬운 프로그래밍을 목표로 개발되었으며 범용 프로그래밍 언어입니다. 내용 구글이 2009년에 만든 프로그래밍 언어입니다. 이름이 이름인 만큼 검색이 불편해 보통 golang이라고 많이 이야기합니다. Go 언어의 사용자들은 고퍼(Gopher)라고 부르며, 고퍼들을 위한 연례행사인…