An open API service indexing awesome lists of open source software.

https://github.com/kimjuls/golang-blockchain

This is a blockchain project for golang.
https://github.com/kimjuls/golang-blockchain

Last synced: about 2 months ago
JSON representation

This is a blockchain project for golang.

Awesome Lists containing this project

README

        

# golang-blockchain

이것은 Go 언어를 이용한 블록체인 프로젝트이다. 이는 Web3.0 등 블록체인 분야에 응용될 수 있다.

## 기본 개념

블록체인은 분산된 퍼블릭 데이터베이스로, 합의에 따라 새로운 레코드를 추가할 수 있다. 이를 통해 암호화 화폐와 스마트 컨트랙트를 만들 수 있다.

### 블록

블록은 중요한 정보를 저장하는 데이터 구조이다. 예시 코드에서 블록은 타임스탬프, 데이터, 이전 블록의 해시값, 해시값을 포함한다. 해시는 SHA-256 알고리즘으로 계산되며, 이를 통해 블록의 무결성을 유지한다.

### 블록체인

블록체인은 순서가 있는 링크드 리스트 형태의 데이터베이스로, 블록을 순서대로 저장하고 연결한다. 배열을 사용해 블록체인을 구현하며, 제네시스 블록을 생성해 초기화한다. 블록을 추가하는 함수와 블록체인을 생성하는 함수가 제공된다.

### 작업 증명 (Proof of Work)

블록체인 네트워크에서 참여자들이 블록을 생성하고 보상을 받는 과정을 채굴이라고 한다. 이 작업을 통해 블록은 안전하게 블록체인에 추가되며, 전체 데이터베이스의 안정성을 유지한다. 작업을 마친 사람은 이를 증명해야 하며, 이를 작업 증명(Proof of Work, PoW)이라고 한다. PoW는 많은 컴퓨팅 파워가 필요하며, 블록 생성 속도를 일정하게 유지하기 위해 난이도가 증가한다. 비트코인에서는 특정 요구사항을 충족하는 블록의 해시를 찾는 것이 목표다. PoW는 작업 수행은 어렵지만 증명 검증은 쉬워야 한다.