Study/Blockchain 8

[Ethereum] #01_Ethereum Intro 이더리움

[Blockchain] 시리즈는 블록체인 기술과 스마트컨트랙트의 컨셉에 대해 이해하는 것을 목표로 이론을 공부하고 간단한 실습을 진행해보았다. Blockchain 시리즈에서 다룬 이론내용은 특정 네트워크에 specific하지 않다. 특히 블록체인 구조와 같은 경우, 비트코인과 이더리움의 구조는 상당히 다르다. 합의 알고리즘도 네트워크마다 다르고, 같은 알고리즘 기반이라고 하더라도 알고리즘에 따라 합의가 이루어지고 거래가 'finalized' 상태가 되는 과정은 네트워크마다 조금씩 다르다. 즉, network-specific하지 않은 내용을 다루었던 지난 시리즈만으로는 Dapp을 개발하기에 부족하다. [Ethereum]시리즈에서는, 이더리움의 블록과 합의알고리즘 등 이더리움 네트워크에 대해 공부하고 스마트..

Study/Blockchain 2024.07.19

[Blockchain] #07_Smart Contract & Solidity 스마트 컨트랙트 배포

지난 장에서 VendingMachine이라는 이름의 smart contract를 작성했다.화면에서 보이는 것처럼 compiler 아이콘에 초록색 체크가 표시되면, 배포가 가능하다는 의미이다. 만약 체크가 표시되지 않는다면, Auto compile란에 체크를 했는지 확인해보자.배포를 위해 deploy 아이콘을 눌러 배포 탭으로 이동한 후, environment를 Remix VM (London)으로 설정한다. 주황색의 'Deploy' 버튼을 눌러 배포한다. 콘솔 창에 초록색 체크와 함께 배포가 성공적으로 완료된 것을 확인할 수 있다. 또, 좌측 하단 Deployed/Unpinned Contracts에서 배포된 스마트컨트랙트의 상태변수와 함수를 볼 수 있다. 이 과정은 remix vm에 배포한 것이고, 이제 ..

Study/Blockchain 2024.07.18

[Blockchain] #06_Smart Contract & Solidity 스마트 컨트랙트 작성

Solidity는 블록체인 smart contract에 쓰이는 전용 언어이다.이더리움을 기준으로, 이더를 보낼 수 있는 기능들을 제공하며, 튜링 완전한 언어이기 때문에 송금 외에도 다양한 기능들을 smart contract에 구현할 수 있다. 이번 장에서는, solidity 문법을 공부하고 직접 smart contract를 작성해본다. 먼저, 솔리디티 언어로 작성된 프로그램이 이더리움 네트워크에서 작동하는 원리를 살펴보자.  솔리디티로 스마트컨트랙트를 작성한다. 인간이 읽고 이해할 수 있는 형태의 소스코드이다.스마트 컨트랙트를 Ethereum Bytecode로 컴파일한다. 컴퓨터가 이해할 수 있는 형태이며, EVM 기반의 블록체인에서 사용할 수 있다.배포의 과정을 통해 EVM 블록체인에 배포되면, 작성한..

Study/Blockchain 2024.07.18

[Blockchain] #05_Smart Contract Introduction 스마트 컨트랙트 개념

3장까지는 블록체인의 기초에 대해 알아보았다. 4장에서부터는 블록체인의 활용에 대해 공부한다.이 장에서는 이더리움 블록체인의 코어라고 할 수 있는 '스마트 컨트랙트'를 이해해보도록 한다. 스마트 컨트랙트의 개념의 이해를 돕기 위해, 먼저 전통적인 계약에 대해 살펴보자.예를 들어 부동산을 사고 팔려고 하는 참여자 2명이 있다고 하자. 매수인은 매도인에게 돈을 지불해야 하고, 매도인은 매수인에게 부동산의 소유권을 주어야 한다. 그런데 만약 두 명만이 이 거래에 참여한다면, 매수인과 매도인은 서로 상대가 약속한 금액과 약속한 부동산을 줄지에 대해 확신할 수 없다. 그래서 전통적인 계약 방식은 중개인을 필요로 한다. 이 예시에서는 부동산 중개업자와 변호사 등에 해당한다. 매수인과 매도인이 합의한 금액에 대해, ..

Study/Blockchain 2024.07.18

[Blockchain] #04_Wallet & MetaMask 블록체인지갑과 메타마스크

개인은 블록체인을 어떻게 사용할 수 있을까?직접 블록체인 노드를 운영할 수도 있고, 블록체인 네트워크의 일부 노드를 운영하며 생태계 기여에 따른 보상을 받을 수도 있다.하지만, 일반인이 가장 쉽고 빠르게 접근할 수 있는 방법은 블록체인 지갑을 생성하여 거래소로부터 가상화폐를 구매하여 지갑으로 옮겨 담은 후 사용하는 방법일 것이다. 블록체인 지갑이 무엇일까? 현실세계의 지갑이 현금과 카드, 신분증 등을 보관하고 관리할 수 있는 것처럼, 블록체인 지갑은 사용자가 비트코인, 이더리움 및 기타 암호화폐를 저장하고 관리할 수 있는 도구이다. Wallet 블록체인 지갑: 블록체인 지갑은 사용자의 가상화폐 계정을 제어하는 응용 프로그램이다. 공개/비공개 키를 저장하며 사용자의 신원을 증명하고 자산을 처리하는 데 필요..

Study/Blockchain 2024.07.18

[Blockchain] #03_Merkle Tree in Blockchain 머클트리&트랜잭션

이전 포스팅에서 간단히 알아본 것처럼, 블록 내의 각 트랜잭션은 MD5, BLAKE2, SHA-1, SHA-256 같은 해시 함수에 의해 고유하게 해시되어 전체 트랜잭션 세트의 디지털 지문을 생성한다. 각 해시된 트랜잭션 쌍은 해시 함수에 의해 다시 해시되며, 이 과정은 전체 블록에 대해 하나의 해시가 생성될 때까지 계속된다.이 과정에서 생성되는 트리를 Merkle Tree라고 한다. 즉, Merkle 트리는 블록 내 모든 트랜잭션의 요약 역할을 한다. Merkle TreeMerkle tree는 이진 트리의 한 형태로, 맨 아래 행의 트랜잭션 데이터 해시는 "리프 노드"라고 하고, 중간 해시는 "브랜치", 맨 위의 해시는 "루트"라고 한다. Merkle 트리는 해시 트리라고도 불린다. 블록체인의 각 블록..

Study/Blockchain 2024.07.18

[Blockchain] #02_Blockchain structure 블록체인 구조

이전 장에서 블록체인의 개념을 이해하기 위해 간소화된 블록 구조를 잠깐 살펴보았다. 이 장에서는, 블록의 구조와 체인화에 대해 더 자세히 알아본다. 블록의 구조는 네트워크마다 조금씩 다를 수 있는데, 이 장에서는 PoW 방식의 합의 알고리즘을 사용하는 비트코인의 경우를 기준으로 블록체인의 구조에 대해 설명한다.  위 그림을 보면 각 블록이 크게 두 부분으로 구성되는데, 각각 Block header와 Block body이다. Block header는 블록의 메타데이터를 포함하며 블록체인의 무결성과 보안을 유지하는 데 중요한 역할을 하고, 블록 바디는 블록에 포함된 실제 데이터 즉 트랜잭션들을 포함한다. 블록헤더에는 블록해시(Block hash)와 이전블록해시(Previous block hash)가 있는데,..

Study/Blockchain 2024.07.16

[Blockchain] #01_Blockchain Introduction 블록체인의 기초

https://cs251.stanford.edu/syllabus.html CS 251 Cryptocurrencies and Blockchain Technologies: SyllabusCourse syllabus and readings Fall 2023 Every lecture is accompanied by readings that support and expand on what was covered in the lecture.   Lecture 1: Wed 9/27/23 (DB) Intro to cryptography & cryptocurrencies   [pdf, pptx] References: Bitcoin mechanics251.stanford.edu 블록체인(Blockchain)이란? AWS에서..

Study/Blockchain 2024.07.16