블록체인 ( 기초 )
페이지 정보
작성자 HELLO 작성일24-11-10 00:38 조회10회 댓글0건관련링크
본문
블록체인이란?
블록체인에 바카라사이트 출금 빠른 곳 대한 기초적인 개념을 학습하려고 한다
블록체인의 정의를 찾아보면 이러한 말이 정의되어 있다
블록체인은 비즈니스 네트워크에서 트랜잭션을 기록하고 자산을 추적하는 프로세스를 용이하게 하는 공유 불변 원장이다
처음보는 블록체인을 학습하는 사람에겐 다소 어려운 개념일 수 있다
저 정의를 쉽게 풀이하자면,
서버에 데이터를 저장하고 서버에 저장되는 데이터를 추적할 수 있어야하며,
그 데이터는 바뀌면 안된다. 마지막으로 데이터는 화폐값어치가 있는 것이라 할 수 있다
블록체인이 중요한 이유 ( 트랜잭션 )
우리가 흔히 아는 비트코인 같은 데이터들은 화폐값어치가 있다
이 화폐라는 것은 트렌잭션이라는 개념이 존재한다
이때 트렌잭션은 데이터적으로 이중지불 개념을 뜻한다
예를 들어,
만원을 가진 A라는 사람과 0원을 가진 B라는 사람이 있다.
A가 B에게 5000원을 바카라사이트 출금 빠른 곳 주기위해, 만원에서 5000원을 출금하고
B라는 사람은 0원에서 입금받아 5000원이 된다.
이렇게 한번의 거래애 두개의 row 가 생기는데, 이러한 두개의 데이터가 하나로 묶여지는 것을 트랜잭션이라고 한다
그렇다면 이 데이터들을 어디에 저장할까?
A와 B는 은행을 통해 거래하며 저 두개의 row 는 은행에 저장될 것이다.
마찬가지로 블록체인도 은행과 같다
블록체인은 한번의 거래로 인한 데이터를 수많은 곳에 저장을 한다
이때 저장하는 곳 하나하나를 서버라고 한다
이를 분산원장이라 하는데, 저장하는 곳이 만개라고 치자면 이를 해킹하기 위해서는 똑같이 만개를 해킹해야한다
그래서 `블록체인은 흔히들 해킹할 수 없다`, `보안이 강하다` 라고 하는 것이다
블록체인의 핵심요소에는 3가지가 있다
첫번째는 위에 언급한 분산원장이며,
두번째는 불변기록이다
불변기록은 업데이트가 될 수 바카라사이트 출금 빠른 곳 없는 개념이다
쉽게말하자면 mysql이 업데이트가 안된다고 생각하면 된다
마지막은 스마트 계약이다
이 개념은 블록체인에 대해 어느정도 알고 추후에 학습하도록 하자
탈중앙화?
지금까지 학습하고 프로젝트를 진행할 때 express 서버 하나로 웹페이지를 구성했었다
그렇다면 이 express 서버를 터트리면 어떻게 될까? 웹페이지 또한 터지는 것이기 때문에
이러한 것을 중앙화라고 한다
블록체인은 수많은 서버 하나하나가 메인 서버이다
그래서 블록체인을 탈중앙화 라고 한다
쉽게말해 express 로 연 서버를 똑같이 다 열었다고 생각하면 된다
위의 사진처럼 똑같은 서버가 8개가 있다고 하자
8개 중 하나의 서버를 해킹하여 내 자산을 10억으로 바꾼다면
남은 7개의 서버와 전부 하나하나 비교를 하여 이를 방지한다.
때문에 해킹을 하려면 최소 51% 를 해킹해야 바카라사이트 출금 빠른 곳 한다.
그것도 동시에 절반이상을 해킹해야한다
이렇게 해킹할 수 없게끔 연결되어 있는 것을 p2p 라고 한다
블록과 체인
블록은 데이터베이스라 할 수 있다
체인은 이 데이터베이스들을 연결한다
쉽게말해 배열이라 생각하면된다
배열에 push 하는 것, 이전 데이터베이스의 식별자를 담는다
여기까지가 최소한의 BlockChain 의 개념이다
이제 블록체인 네트워크 개념(노드) - 비트코인 - 이더리움 (스마트컨트렉트) 순으로 학습할 것이다
블록체인 네트워크
블록체인 네트워크를 알려면 개인키와 공개키의 개념을 알아야 한다
블록체인 네트워크는 모든 원장을 공개한다
그 원장을 보는 사이트가 존재하는데 블록 익스플로러 라고 한다
블록안에 트랜잭션이 저장되는데, 그 모든 트랜잭션을 렌더하는 곳이 블록 익스플로러이다
위의 자료는 비트코인의 처음 만들어진 블록이다
블록 높이(넘버) 가 1번이라는 것을 제네시스 블록이라고 한다
제네시스 바카라사이트 출금 빠른 곳 블록은 해당 블록체인을 만든 사람이 가지고있다
마이닝(채굴) 이란 블록을 생성하는 역할을 한다
채굴하는 사람이 많을 수록 비트코인은 탈중앙화가 가능하고
채굴한 사람은 그 행위로 인해 보상(코인) 을 받는다
지갑
우리가 쓰는 계좌는 사용하기 위해 비밀번호를 만든다
이는 내가 나임을 증명하기 위해 사용하는 것인데
그렇게 비밀번호를 통해 나임을 증명하고 거래원장, 입금, 출굼, 잔액의 프로세스를 사용한다
비트코인에서도 이와 같은 프로세스가 적용된다
위에서 언급한 공개키와 개인키인데
공개키는 계좌번호가 되며, 개인키는 비밀번호가 된다
이때 개인키는 Hash 값을 가진다
지갑이라는 것은 이러한 비밀번호를 보관하는 것을 말한다
대표적인 지갑프로그램이 존재하는데 이더리움계열 지갑인 메타마스크를 예로 들 수 있다
지갑에는 콜드월렛과 하드월렛이 있다
이는 소프트웨어에 저장할 것인지, 하드웨어에 저장할 것인지로 바카라사이트 출금 빠른 곳 나뉜다
블록체인 트릴레마
블록체인 트릴레마라 하여 3가지 항목이 있다
확장성, 보안성, 탈중앙화
블록체인 네트워크는 똑같은 서버를 여러개 두며 이를 통해 보안을 철저히 강화한다
하지만 그 만큼 속도가 느려진다
가끔 안전하고 거래 속도가 빠른 코인이 나왔다는 얘기가 있는데
이는 다 거짓말이라고 생각하면 된다
블록체인 트릴레마인 3가지 항목은 하나의 항목이 높아지면 나머지 두 항목이 낮아지게 된다
그래서 이 느린 속도를 해결하기 위해 업비트, 빗썸, 등 중앙화 거래소가 만들어졌으며 사용하는 것이다
업비트와 빗썸 등 이런 거래소는 비트코인 네트워크가 아닌 중앙화 거래소이다
트랜잭션
블록은 객체 형태로 되어있으며 하나의 블록에는 여러개의 트랜잭션을 담을 수 있다
블록 헤더의 속성 중 하나인 HashMerkleRoot 는 트랜잭션 내용이 바뀌없는지 바카라사이트 출금 빠른 곳 검증하기 위한 속성값이다
트랜잭션마다 고유 식별자가 존재할 것이며, 이 트랜잭션 두개를 해쉬화 한다
그럼 하나의 해쉬값이 나오는데 그 값이 바로 HashMerkleRoot 이다
한번 블록이 생성될때 HashMerkleRoot 가 정해지는데, 이는 절대 변하지 않는 불변성을 가진다
그렇게 해당 블록의 HashMerkleRoot 의 값이 달라진다면 그 블록은 폐기된다
작업증명 (Proof-of-Work)
작업증명이란 분산원장에 새로운 블록을 추가할때 사용되는 알고리즘이다
작업증명은 네트워크 참여자들이 경쟁적으로 수학적 문제를 해결하면서 새로운 블록을 생성하는 과정이다
이러한 보안성이 높은 분산원장을 구현하기 위해 컴퓨팅 파워가 매우 많이 필요하기때문에
그만큼 많은 전력을 소모하게 되며 이에 환경적 비판도 존재한다
이더리움은 이 작업증명을 대체하는 합의 알고리즘 (Proof-of-Stake) 로 바꾸었지만
POS 도 POW 에서 바카라사이트 출금 빠른 곳 시작되었기 때문에 POW 를 먼저 알아야 한다
POW 란 새로운 블록을 생성할 때
먼저 해당 블록에 대한 해시값을 계산하고, 이 값이 일정한 기준에 부합하는지 검증하는 작업을 수행하는 것을 말한다
이때 해시값 계산은 위 사진에도 나와있는
버전 + 이전블록해시값 + 머클루트 + 타임 + 난이도목표 + 논스
이렇게 속성값들을 합쳐서 만든다
모든 값을 합쳐 만든 블록 해쉬값은 변하면 안되는 값이지만 논스는 가변적으로 값이 변한다
블록해쉬값이 일정한 기준에 부합할 때 까지 논스값을 지속적으로 바꿔계산한다
SHA256 >>64자리의 16진수값64자리의 16진수는 32byte1byte = 8bit16진수의 한 자리당 4bit즉, 두개씩 묶어 8bit. 즉 1byte 가 되고 두개씩 묶었기에 32자리로 32byte 바카라사이트 출금 빠른 곳 가 된다
댓글목록
등록된 댓글이 없습니다.