Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- javascript
- 안정 정렬
- #유니티
- ES6 모듈
- http 모듈
- Hybrid Blockchain
- UTXO
- SQL
- CSS
- CLI
- Factory Functions
- 명시도
- IP
- #1인게임개발
- short-circuiting
- npm
- CSS Specificity
- skip ci
- 3티어 아키텍처
- 2티어 아키텍처
- Private Blockchain
- Factory 함수
- solidity
- react
- caverjs
- 텍스트 가운데 정렬
- Relational Database
- 블록체인
- NoSQL
- 불안정 정렬
Archives
- Today
- Total
짹뚜 스튜디오
[블록체인] 블록체인이란? 본문
블록체인이란 데이터 분산 처리 기술로 네트워크에 참여한 모든 사람들이 동일한 데이터를 저장하고 공유하는 기술이다. 데이터가 블록이라는 형태로 저장되어있고 그러한 블록들이 체인처럼 연결되어있다 해서 블록체인이라고 부른다. 컴퓨터 자료구조 중 Linked List와 유사한 형태이다.
블록체인은 분산 저장한다. 즉, 동일한 데이터를 모든 노드들 (컴퓨터) 이 가지고 있다. 그래서 데이터의 위조 또는 변조가 어렵다. 만약 데이터를 하나의 서버에서만 관리를 한다면 그 하나의 서버만 공격을 해서 데이터를 위조를 할 수 있지만 (단일 실패 지점), 블록체인에서는 모든 사람들이 가지고 있는 데이터들을 모두 위조를 해야 하기 때문에 사실상 불가능하다.
중앙 관리자가 필요하지 않다. 탈중앙화라고도 얘기한다. 데이터를 검증을 할 때 중앙 관리자가 하지 않고 네트워크에 참여하고 있는 노드들이 검증을 한다. 이것이 가능한 이유가 모두가 동일한 데이터를 가지고 있기 때문이다.
블록
데이터들이 저장되는 단위를 블록이라고 한다. 다음과 같은 중요한 정보들이 블록에 저장된다.
- Block Hash: 수학 함수로 동일한 Input을 받으면 언제나 동일한 Output을 생성한다 (Deterministic). Input을 조금만 바꿔도 Output이 완전히 달라지는 성질을 가진다. 그리고 일방향성을 가지고 있다. 일방향성이란 Input으로 Output을 만들어 낼 수는 있지만, Output을 가지고 Input이 무엇인지 알아낼 수는 없다는 뜻이다. Previous Block Hash값과 Data를 가지고 (Input) Hash를 생성한다 (Output).
- Previous Block Hash: 어떤 블록과 연결이 되어있는지 알려준다.
- Data: 블록체인으로 다양한 정보들을 저장할 수 있다. 그러한 정보들이 Data에 저장된다. 예를 들어, 비트코인에서는 Data에 거래내역이 저장된다.
이렇듯 hash 값을 이용해서 블록들이 체인처럼 연결이 되어있다. 그러므로 누군가가 블록의 Data를 수정하게 되면 해당 블록의 hash값이 완전히 바뀌게 되면서 다음에 연결된 블록의 hash 값에도 영향이 가고 연결된 모든 블록의 hash 값을 새로 만들어서 블록을 생성해야 하기 때문에 블록체인에 연결된 블록의 Data를 위조하는 것은 불가능하다.
'개발 공부 > 블록체인' 카테고리의 다른 글
ICO 스마트 컨트랙트 구현하기 (0) | 2022.04.07 |
---|---|
caver-js-ext-kas 를 활용한 클레이튼 API 구현 (0) | 2022.04.06 |
[암호화폐] 채굴 (0) | 2022.03.07 |
[암호화폐] UTXO (0) | 2022.03.03 |
[블록체인] Public vs Private vs Hybrid (0) | 2022.03.03 |
Comments