본문 바로가기
프로그래밍/Block Chain

[Block Chain] 블록체인 관련 용어 정리 3

by YuminK 2023. 10. 31.

1. 블록(block)

예를 들어, 비트코인의 경우 10분간 진행된 약 2,000건의 거래내역을 하나의 블록으로 묶어서 관리한다. 라이트코인의 경우 약 2분 30초 동안 진행된 거래내역을 하나의 블록으로 만들어 관리한다. 하나의 블록을 다음 블록과 이어주기 위해 해시를 이용하여 체인 구조를 만들 수 있다. 이처럼 다수의 트랜잭션을 블록으로 묶은 후 시간 순서에 따라 체인으로 엮은 것을 블록체인(blockchain)이라고 한다.

 

가장 많고 가장 빨리 작업을 한 사람이 블록에 기록하고 블록을 생성할 수 있는 투표권을 더 많이 갖는다고 할 수 있다. 이것이 작업증명이라는 것인데 여기에서 작업이란 수학 문제를 푸는 것을 말한다. 

 

기 때문이다. 블록이 권위체인에 깊숙이 들어가 있을수록 다음과 같은 사실이 성립된다. 블록이 더 오래 전에 추가되었고, 블록체인-데이터-구조에 포함된 후 더 많은 시간이 흘렀다. 후속 블록 추가에 더 많은 공통된 노력이 소모되었다. 가장 긴 체인에 속한 블록들의 변화에 덜 영향받는다. 블록이 버려질 가능성이 매우 낮다.

 

이것이 일반적인 블록의 특징이고 블록에 또 다른 고아블록이 있다. 고아블록은 블록체인에 속하지 못한 블록을 말한다. 고아블록은 권위체인에 기여하지 않으므로 아무런 쓸모가 없다. 따라서 고아블록을 생성하고 제출해서 보상을 받았던 노드들로부터 보상을 회수해야 한다. 블록체인-알고리즘 규칙에 따라 블록체인-데이터-구조에 추가된 블록이 나중에 유효하지 않거나 쓸모없는 것으로 판명되면 그 블록은 물론 후속 블록들 모두 블록체인-데이터-구조로부터 논리적으로 제거되고, 그 블록을 추가하면서 보상을 받은 노드에게서 보상을 회수한다.

 

고아블록에 소속돼 버려진 트랜잭션 데이터는 다시 노드의 수신함에 넣어져 재처리된 후 블록체인-데이터 구조에 다시 추가되어 '선택된 트랜잭션 이력'의 일부가 될 기회를 한 번 더 부여받는다. 고아블록의 트랜잭션은 자신이 속해 있던 블록이 버림받는 바람에 잠시 사라지게 되지만 재처리가 되자마자 다시 나타난다

http://wiki.hash.kr/index.php/%EB%B8%94%EB%A1%9D

 

2. 스마트 컨트랙트

계약 당사자 간 거래 내용을 코드로 기록해 블록체인에 올리면, 계약 조건이 충족됐을 때 계약을 자동으로 이행해 주는 시스템

 

은행처럼 계약 이행을 검증 & 보증하는 중앙화된 제3자 없이도 계약을 자동으로 이행할 수 있다는 점에서 매우 편리하고 경제적이라는 장점이 있습니다.

 

오늘날의 디지털 자산 거래는 신뢰할 수 있는 제3자라는 중앙 주체에게 무결성과 보안을 의존해야 하는 시스템입니다.

신뢰할 수 있는 제3자를 통한 디지털 자산 거래는 매우 불편합니다. 거래 중간 과정에서 제3자가 많아질수록 거래가 처리되는 데 시간이 오래 걸릴 수밖에 없습니다. 또한, 신뢰할 수 있는 제3자를 유지하는 비용은 국가의 세금 또는 개개인의 수수료로 충당되는 경우가 많습니다. 

즉, 신뢰할 수 있는 제3자를 통한 금융 거래를 위한 비용은 사용자가 부담해야 하는 것이죠.

 

커피 자판기에 300원을 넣으면 자판기는 우리에게 커피를 제공합니다. 다시 말해, 자판기와 나 사이에는 ‘300원을 넣으면(조건), 커피를 내려준다(이행)’이라는 계약이 존재하는 것입니다.

 

중요한 것은, 자판기의 계약 실행 과정에서 신뢰할 수 있는 제3자가 필요하지 않다는 점입니다. 자판기에는 이 계약이 프로그래밍 되어 있으며, 자판기의 하드웨어가 300원이 들어왔다고 인식하는 순간 자동으로 계약을 이행하기 때문이죠.

 

스마트 컨트랙트의 장점

 - 보안

스마트 컨트랙트는 블록체인 네트워크 위에서 생성되고 실행됩니다. 따라서 컨트랙트 코드와 컨트랙트 수행 내역 역시 블록체인 네트워크에 참여하는 모든 노드가 공유하게 되죠. 따라서 누군가가 계약 기록을 조작하기 위해서는 이 기록을 가지고 있는 모든 노드의 데이터를 변조해야 합니다. 노드의 수가 많을 수록 조작은 점점 더 어려워집니다.

 

 - 신뢰성&투명성

스마트 컨트랙트 코드에 작성된 조건이 만족되면, 계약이 이행됩니다. 이 계약 이행은 계약 당사자의 컴퓨터에서 기록되는 것이 아니라, 많은 노드들에 의해 검증됩니다. 만약 계약 이행 검증 시 문제점이 발견되면 계약 이행 자체가 취소됩니다. 즉, 계약 내용 및 계약 이행 결과를 위변조 하는 것이 어렵고, 여러 노드에 의해 계약 결과가 검증되기 때문에 신뢰성과 투명성이 높습니다.

 

 - 효율성

한번 스마트 컨트랙트 코드를 작성해 배포하고 나면 계약 당사자들이 수동으로 데이터를 입력하거나, 상대방의 계약 의무 이행 여부를 검증하거나, 제3자를 통해 계약 이행 여부를 확인하지 않아도 되기 때문에 효율성이 높습니다.

https://www.codestates.com/blog/content/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%EC%8A%A4%EB%A7%88%ED%8A%B8-%EC%BB%A8%ED%8A%B8%EB%9E%99%ED%8A%B8-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%9E%A5%EC%A0%90

 

거래소, 자산관리, 대출과 같은 전통적인 금융 서비스를 탈중앙화된 형태로 바꾸고 스마트 컨트랙트를 통해 새로운 형태의 금융 서비스를 만드는 것을 DeFi라고 한다.

 

3. 해시함수

해시함수는 임의 길이의 입력값을 받아 고정된 길이의 출력값을 내는 함수, 블록체인에서 해시 함수

 

- 트랜잭션 해시

블록체인에서 네트워크 참여자들 간에 전송되는 데이터 단위인 트랜잭션은 해시 함수를 거쳐 일정한 길이의 해시값으로 전환됩니다. 이를 통해 식별이 쉬워지고 트랜잭션 데이터가 변경되면 해시값도 변경되므로 무결성을 확인할 수 있습니다. 또한 해시 된 데이터는 원본 데이터로 복원이 어렵기 때문에, 블록체인에 저장된 데이터의 안정성이 높아집니다.

 

- 블록 해시

각 블록은 블록에 포함된 데이터를 기반으로 한 고유한 해시값을 가지고 있습니다. 이를 통해 블록들은 서로 구별되며, 특정 블록을 찾거나 검증할 때 해시값을 사용할 수 있습니다. 또한, 각 블록의 해시를 계산할 때는 이전 블록의 해시값도 포함되어 체인의 무결성을 보장합니다.

 

4. 머클 트리(Merkle Tree)

블록체인의 무결성을 검증하기 위한 핵심적인 데이터 구조인 머클 트리(Merkle Tree)를 함께 보면서 자세히 살펴보겠습니다. 머클 트리는 여러 데이터에 대해 단계적으로 해시 함수를 적용하여 하나의 해시값으로 나타내는 데이터 구조입니다. 쉽게 말해, 여러 개의 데이터를 하나의 해시값으로 만드는 데이터 구조입니다.

 

https://www.codestates.com/blog/content/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%ED%95%B4%EC%8B%9C%ED%95%A8%EC%88%98

 

머클루트의 정보를 확인하여 값이 변경되었는지 파악할 수 있다.

구조상 하나의 데이터만 바뀌어도 최상단의 hash도 바뀌기 때문이다.

댓글