블록체인
✅ 블록체인이란?
: 블록들이 연결된 체인
▶ 블록 : 데이터의 집합
Ex) A가 B에게 송금한 기록, C가 D에게 송금한 기록이 하나의 블록일 때, 이러한 블록들이 모여 연결한 것이 바로 블록체인
[ 블록체인의 특징 ]
1. 각각의 사용자들이 모두 동일하게 가지고 있음
→ 누군가 한 명이 다른 정보를 가지고 있을 경우 그 사람은 잘못된 정보를 가지고 있다는 것이 증명됨
2. 기존의 보안과 달리 가능한 한 많은 사람이 알도록 하여 보안을 지킴 ▶ 모두가 접근 가능
→ 조작 시, 모두가 눈치채지 못하게 모두의 정보를 전부 바꿔야하기 때문에 불가능에 가까움
블록체인과 암호학
✅ 머클 트리
: 해시가 이용된 데이터 검증을 위한 트리 구조
→ 블록체인에서 라이트 노드와 거래 검증의 핵심 요소임
💡 라이트 노드
: 모든 블록 정보를 가지고 있지 않고 머클루트 값만을 가지고 있는 노드
▶ 즉, 머클루트만을 가지고 있는 노드를 라이트 노드라고 부름
머클트리 활용의 예): 이진트리로 2개씩 병합하여 상위노드가 됨
만약 Leaf 노드 중 하나가 변경되었다면?)
→ 머클루트 값이 변경되기 때문에 머클루트 값만 비교해도 데이터의 무결성이 어느정도 보장 됨▶ 머클루트 값이 다른 블록이 오면 바로 거절 가능
✅ 쉬운 거래 검증
: 머클 트리의 경우 머클 경로만 알려주면 몇 번째 블록이건 검증가능
블록체인의 활용
✅ 암호화폐
→ 비트코인, 이더리움, 비트코인 캐시 등 수천가지의 암호화폐들이 블록체인을 기반으로 만들어짐.
블록체인 활용의 특징
1. 가치전달
- 지금까지 인터넷은 정보 전달 역할
- 은행 계좌의 경우 송금하는 과정을 통해 내 계좌의 금액을 줄이고 상대방 계좌를 늘리는 가치에 대한 정보를 바꿔줄 수 있음
▶ 실제 은행 계좌는 가치를 확인하기 위해서는 출금을 해보아야 하지만 블록체인에서의 거래는 실제로 가치가 전달됨: 조작될 수 없는 환경인 블록체인에서의 거래는 바꿀 수도 되돌릴 수도 없기 때문에 그 자체로 가치 전달이 증명됨
- 1세대 (비트코인) : 금전적인 가치- 2세대 (이더리움) : 금전적인 가치를 넘어 데이터로 확장됨
이더리움과 스마트 컨트랙트
✅ 이더리움
: 이더리움 재단에서 만들고 있는 암호화페이며 동시에 블록체인 플랫폼- 플랫폼으로서 이더리움 블록체인 위에 스마트 컨트랙트를 작성할 수 있도록 만들어짐
✅ 스마트 컨트랙트
: 블록체인 상에 존재하는 계약서로 즉, 과정을 블록체인에 담는 것
✅ Decenetralized Application
: 이더리움 플랫폼 위에 올라가 있는 어플리케이션을 분산한 어플리케이션, 디센트럴라이즈드 어플리케이션, Dapp이라고도 읽음▶ 어떤 조건을 만족하면 실행되는 계약을 만들 수 있고, 이는 무결한 블록체인으로 인해 정확히 실행됨
블록체인과 이더리움의 문제
(1) 프라이버시
데이터 조작이 불가능하고 평생 기록이 남는다는 블록체인의 특성으로 인해 프라이버시 문제가 있을 수 있음
(2) 트랜잭션 코스트
이더리움 트랜잭션 실행 시, 가스라는 수수료를 지불하는데 이 가격을 사용자가 부담하게 된다. 이러디룸이 다른 코인에 비해 가격이 안정적인 편에 속하지만 그럼에도 불구하고 매번 변하는 가스비와 이더리움 가격이 높아질수록 증가하는 수수료는 많은 사람들에게 부담이 될 수밖에 없음
(3) 트랜잭션 스피드
중앙화된 처리에 비해 상당히 느린 속도로 거래가 된다. 비자카드의 처리속도는 평균 1초에 약 2000개 정도를 처리할 수 있는 반면 이더리움은 1초에 약 20개를 처리할 수 있다고 알려짐. 또한, 중앙처리 시스템에서는 바로 즉시 효력을 가질 수 있으나 이더리움은 구조상 약 10번 정도의 컨펌이 나야 무결하다고 할 수 있어 효력을 갖게 된다.
(4) 블록 사이즈
모든 채굴자가 모든 블록을 가지고 있어야 하므로 용량을 아주 많이 차지하게 된다. 매달 약 2기가 정도의 블록이 새로 추가되기 때문에 금방 매우 큰 용량이 필요하게 된다.
참고자료 : 블록체인과 솔리디티(https://inf.run/rr8q)
'Study > Blockchain & Solidity' 카테고리의 다른 글
[Solidity 깨부수기] Instance - constructor (0) | 2024.05.22 |
---|---|
[Solidity 깨부수기] Instance 정의 (0) | 2024.05.15 |
[Solidity 깨부수기] Function (0) | 2024.04.29 |
[Solidity 깨부수기] 기본 (1) | 2024.04.15 |
Solidity (0) | 2024.04.08 |