내가 이번에 취업한 회사는 블록체인 거래소 회사이다.
그렇기에 회사에서 블록체인 관련된 용어들이 자주 나오고 있다.
하지만 나는 블록체인 용어에 대해서 잘 모르고 있기에 업무에 효율이 떨어지는 것을 느끼게 되었다.
그래서 관련 지식들을 찾아보고 정리 해보려고 한다.
블록체인은 분산된 컴퓨터 네트워크에서 공유되는 블록이라 불리는 데이터 단위로 구성된다.
이전 블록과의 연결을 통해 안전하게 연결된 형태를 이루며 정보를 저장하는 시스템이다.
중앙화된 데이터베이스와는 달리 높은 안전성과 투명성을 제공한다.

중앙화는 결정과 권한이 한 지점 또는 단일 기관에 집중 되어 있는 것을 의미한다.
그러므로 단일 지점에서 문제가 발생 시에 전체 시스템에 영향을 미칠 수 있다.
탈중앙화는 결정과 권한이 여러 지점 또는 다수의 참여자에게 분산되어 있는 것을 의미한다.
시스템 전체가 단일 지점에 의존하지 않기 때문에 신속한 의사결정과 안정성을 제공할 수 있다.

블록은 데이터를 담고 있는 기본 단위이다.
각 블록에는 트랜잭션 데이터와 이전 블록을 식별하는 고유한 해시 값이 들어있다.
해시 함수는 어떠한 데이터에 대해 고정된 길이의 문자열을 생성하는 알고리즘이다.
블록체인에서는 해시 함수가 사용되어 블록의 내용을 고유하게 식별하고, 이전 블록의 해시 값을 참조하여 체인을 형성한다.

블록을 생성하고 블록체인 네트워크를 유지하기 위해 수학적 문제를 해결하는 프로세스를 의미한다.
이를 통해 새로운 블록이 체인에 추가되고, 참여자들 간의 합의가 이뤄진다.
블록체인에서는 자체적인 가치를 나태나는 디지털 자산을 토큰이라고 한다.
대표적인 토큰으로는 이더리움의 ETH가 있다.
Web3는 탈중앙화와 블록체인 기술을 통한 분산된 웹을 지칭한다.
Web3는 사용자가 중앙 기관이나 중앙화된 서비스에 의존하지 않고 개인적이고, 투명한 디지털 경제를 경험 할 수 있도록 하는 개념이다.

컨센서스는(Consensus)는 분산 시스템에서 여러 참여자 간에 동의에 도달하는 프로세스를 나타낸다.
분산 시스템에서는 여러 노드(참여자)가 동시에 데이터를 관리하고 업데이트 하기 때문에, 각 노드 간에 일치된 합의가 필요하다. 이러한 합의를 컨센서스 메커니즘을 통해 이뤄지게 된다.
컨센시스의 목적은 네트워크 상의 모든 노드가 동일한 상태의 분산 원장을 유지하도록 하는 것이다.
일치된 합의 없이 각 노드가 독자적으로 데이터를 수정하면 데이터 불일치가 발생할 수 있으며, 이는 신뢰성과 무결성에 문제를 일으킬 수 있다.
트랜잭션(Transaction)은 블록체인에서 수행되는 하나의 작업 또는 거래를 나타낸다.
이는 데이터베이스나 원장에 변경을 가하는 모든 단위적인 활동을 의미한다.
주로 암호화폐 거래와 관련이 있지만, 블록체인에서의 트랜잭션은 다양한 형태를 가질 수 있다.
1. 송금 트랜잭션
암호화폐를 보내거나 받는 행위.
가장 일반적인 트랜잭션 형태 중 하나이다.
2. 스마트 계약 트랜잭션
스마트 계약을 실행하는 행위.
스마트 계약은 조건이 충족되면 자동으로 실행되는 프로그램으로 트랜잭션을 통해 상호작용 한다.
3. 데이터 전송 트랜잭션
블록체인에 데이터를 저장하거나 업데이트하는 행위.
4. 참여 인증 트랜잭션
블록체인 네트워크에 참여하는 사용자의 인증과정을 나타내는 트랜잭션이며,
프로토콜에 따라 참여자가 블록을 검증할 수 있도록 하는 트랜잭션도 있다.
서명원리는 주로 공개키 암호화 기술을 기반으로 하며, 티지털 서명을 통해 트랜잭션의 무결성과 인증을 보장한다.
사용자는 공개키와 개인키를 생성한다.
- 공개키 : 누구나 알 수 있는 키로, 다른 사용자들이 여러 정보를 암호화 하는데 사용된다.
또한 블록체인에서는 사용자의 지갑 주소로 주로 사용된다.
- 개인키 : 해당 키와 연결된 공개키를 소유한 사용만이 알 수 있는 비밀 키이다.
사용자가 거래를 생성할 때, 해당 거래에는 수신자의 공개키가 포함된다.
사용자는 개인키를 사용하여 거래의 디지털 서명을 생성한다.
이 서명은 거래와 사용자의 개인키를 기반으로 생성되므로, 해당 사용자에 의해 만들어진 것을 증명한다.
거래를 받는 사람은 해당 거래와 송신자의 공개키, 그리고 디지털 서명을 이용하여 서명을 확인한다.
만약 디지털 서명이 올바르게 검증되면, 그 거래는 송신자에 의해 만들어진 것이 입증된다.
스마트 컨트랜트는 계약 조건이 코드로 작성된 프로그램으로, 블록체인 상에서 실행되는 자동화된 계약이다.
이는 코드로 작성되어 블록체인에 배포되고, 조건이 충족되면 자동으로 실행되는 특징이 있다.

스마트 컨트랜트는 코드로 작성되어야 한다.
작성된 스마트 컨트랙트 코드는 특정 블록체인 네트워크에 배포된다.
이 때 스마트 컨트랙트는 주소를 갖게 된다.
스마트 컨트랙트는 블록체인 네트워크에 의해 실행되는데, 이는 사용자가 특정 조건을 충족시켰거나, 특정 함수를 호출 했을 때 발생한다.
스마트 컨트랜트는 실행 시점에 조건을 검사하고, 조건이 충족되면 정의된 로직에 따라 자동으로 특정 행동을 수행한다.
스마트 컨트랙트가 실행된 결과와 상태 변경은 블록체인에 기록된다.
이는 모든 노드가 동일한 상태를 유지하게 해주는 분산 원장의 특징 중 하나이다.
스마트 컨트랙트가 암호화폐를 다루는 경우, 특정 조건이 충족되면 자동으로 암호화폐가 전송되거나 계좌에 입금되는 등의 행동을 수행한다.
스마트 컨트랙트는 특정 상황에서 이벤트를 발생시킬 수 있다.
이는 외부 시스템이나 인터페이스에서 이벤트를 감지하고 반응할 수 있게 해준다.