728x90
오늘 내가 배운 것 1. Layer2 2. Layer2의 종류 1. Layer2 블록체인은 트렐레마 문제가 있다. 확장성, 보안성, 탈중앙화 세가지 요소의 트렐레마로 무언가 하나의 성능을 좋게 하면 다른 하나의 성능이 줄어든다는 개념이다. 이 트렐레마를 해결하기 위해서 레이어2 블록체인이라는 개념을 이용하여 해결 할 수 있다는 방법이 제안되었다. Layer2는 메인 블록체인 위에 추가적인 프로토콜 레이어를 구축하여 트랜잭션을 처리하거나 저장하는 방식을 변경하므로써 네트워크의 성능을 향상시킬 수 있는 것이다. 쉽게 설명하면 레이어2(layer2)란 기존의 블록체인이 아닌 별도의 레이어에서 연산을 수행하고, 기록, 검증한 후에 결과값을 기존의 블록체인으로 전달하여 블록에 포함시킨다. Layer2를 활용하게 ..
목차 1. P2P 2. 코드 작성하기 1. P2P 네트워크의 통신방식 중 하나인 P2P는 블록체인에서 중요한 통신방식중 하나이다. 이 P2P 방식은 클라이언트이자 서버라는 개념을 알고 시작해야 한다. 하나의 프로그램(코드들)을 작동시켜 하나의 프로세스(실행)로 실행하게 된다면 Client이자, Server가 구축되는 것이다. 코드기준으로 생각해 보면 하나의 동일한 프로그램에서 클라이언트 측과, 서버 측 코드를 작성하는 것이다. 그렇기 때문에, 각 노드는 클라이언트와 서버의 역할을 하기 때문에 중앙서버 없이 통신이 가능하다. 블록체인은 각 노드가 데이터를 저장하며 블록체인을 형성하는 분산 원장 기술이다. 그래서 블록체인에서 P2P네트워크는 각 노드가 연결되어 데이터를 주고받으며 분산 원장을 유지하고 전파하..
목차 1. 블록 만들기 2. 트랜잭션 풀 (Transaction Pool) 3. 블록을 생성하는 기본 과정 4. 블록생성 구현하기 어제까지의 코드 https://github.com/100space/2304/tree/main/0503 GitHub - 100space/2304 Contribute to 100space/2304 development by creating an account on GitHub. github.com 1. 블록 만들기 어제의 코드에서 블록을 생성할 때, data로 들어가는 내용은 코인베이스에 대한 내용만 들어갔다. 원래는 코인베이스를 포함해서 트랜잭션들의 내용을 배열로 가지고 블록을 만든다. const newBlock = this.block.createBlock(latestBlock..
목차 1. 트랜잭션 2. 디지털 서명 만들기 이전 코드 https://github.com/100space/2304/tree/main/0427 GitHub - 100space/2304 Contribute to 100space/2304 development by creating an account on GitHub. github.com 1. 트랜잭션 const block1 = block.createBlock(GENESIS, "123123", GENESIS) 블록을 생성할 때 data를 string으로 강제로 넣은 상태로 블록을 생성했었지만, 원래 data는 트렌잭션들로 이루어져 있다. 트랜잭션을 간단히 설명하자면 블록체인에서 데이터를 처리하고 저장하는 기본 단위이다. 트랜잭션은 크게 input, output..
https://github.com/100space/2304/tree/main/0425 GitHub - 100space/2304 Contribute to 100space/2304 development by creating an account on GitHub. github.com 어제의 코드에 이어서 작업을 할 예정이다. 목차 1. Block 생성 2. 코드 작성 1. Block 생성 블록을 만든다는 것은 제네시스 블록을 기준으로 2번째 블록부터 만드는 과정이라고 할 수 있을 것이다. n번째 블록을 생성하기 위해서는 n-1번째 블록의 정보를 가지고 있어야 한다. 그리고, 블록 안에 들어갈 data(transaction)의 내용을 알고 있어야 한다. 블록을 생성하는 과정 순서는 1. 이전 블록의 해시 값을 ..
목차 1. 블록의 기본요소를 구성하는 요소의 데이터 타입 2. Genesis 블록 만들기 3. hash를 만드는 과정 - TDD 4. 정리 블록은 블록체인을 구성하는 요소 중 가장 기본 단위이다. 블록 1개를 생성할 때 이전 블록의 해시 값을 참조하여 생성하기 때문에 체인처럼 엮여 있는 구조이므로 블록체인이라고 할 수 있다. 하지만 블록체인 중 제일 처음인 블록은 이전 블록이 없기 때문에 참조할 수 없다. 이 첫 번째 블록을 제네시스 블록이라고 한다. 블록체인의 네트워크를 구성하기 위해서 가장 중요한 블록이다. 이 제네시스 블록의 구성에 대해서 알아볼 예정이다. 1. 블록의 기본요소를 구성하는 요소의 데이터 타입 기본적으로 필요한 데이터는 version, height(블록의 id를 의미한다.), time..