블록체인
History of Blockchain
- 사토시 나카모토(Satoshi Nakamoto)라는 가명을 쓰는 사람이 논문을 발표 <2008년 비트코인: 개인 대 개인의 전자화폐 시스템>
- 2009년 블록체인 기술을 적용한 최초의 암호화폐인 비트코인을 발표 (오픈 소스 코드)
- 2014년 더 많은 암호화폐들이 나옴
- 2015년 이더리움 출시돼 화폐뿐만 아니라 대출이나 계약 등 다른 자산을 기록할 수 있는 '스마트 계약'을 구축하는 데 활용할 수 있게 됨
- 블록체인은 비트코인, 인터넷이 이메일을 보내는 것과 같다. 애플리케이션을 구축할 수 있는 큰 전자 시스템이다.
what is Blockchain?
- 블록체인은 데이터의 단일 소유자나 컨트롤러(중앙화)가 없는 동기화된 여러 엔티티에 분산된 분산형 데이터베이스 네트워크이다.
- 이 데이터 베이스는
- transcation(거래)를 수집하고 기록하는 것을 허락
- 암호화 체인 블록(데이터베이스 내용)은 순서대로 연결되어 있음
- ledger (변화된 기록)을 다른 서버에서 접근할 수 있도록 허용한다
잠깐 ledger이란?
- 원장은 기록 보관 시스템
- 블록체인은 네트워크 내의 모든 트랙잭션을 검증하고 저장하는 디지털 원장의 한 형태
- ex) 비트코인 블록체인은 암호적으로 보호되는 블록을 사용해 비트코인과 관련된 모든 트랜잭션을 기록
- 블록체인 기술은 불변의 자율적인 기록 관리 네트워크를 운영하기 때문에 효과적인 원장 시스템, 즉 일단 블록체인에 저장되면 어떤 데이터도 변경이 불가능
Centralized System
- 신뢰 기관 (중앙화된 기관)
- all users은 단 하나의 신뢰 기관을 믿는다
- 신뢰 기관은 현재 상태를 정의하고 초기의 상태와 변화의 순서를 기록한다
- 우리는 쉽게 신뢰 기관을 가진 시스템을 찾을 수 있다.
- 은행 system
- 은행은 transactions의 순서와 잔고의 기록을 공식적으로 제공
- 돈을 보내는 것을 원할 때, 은행에게 message를 보낸다→
- 은행은 거래 요청을 실행한다
- 은행 system
- Client-server network
- data는 server에 저장한다. 클라이언트는 로그인 할 때 데이터에 접근 할 수 있다
- 클라이언트는 그 데이터가 확정적이라고 신뢰
- 예를 들어, 그 웹사이트는 서버를 가지고 있고 유저는 클라이언트이다
- 클라이언트-서버 네트워크는 매우 효율적이고 컴퓨팅 안에서 전통적인 모델이다
Problems of Centralized system
- Single point of failure
- 중앙화된 기관에서 발생하는 장애는 전체 시스템에 발생
- 단순히, 은행시스템에 시스템이 다운되면 어떤 거래도 할 수 없음
- Concentration of power
- 중앙 집중화된 기관은 과거의 상태를 수정함으로써 현재 상태를 쉽게 조종할 수 있음
- 예를 들어, 투표 시스템에서 중앙기관은 투표의 결과를 위해 조작할 수 있다
Decentralized System
- Decentralisation(탈중앙화)는 조직의 활동, 특히 계획 및 의사 결정에 관한 활동이 중앙 위치 또는 그룹에서 벗어나 분산되거나 위임되는 과정
- 분산 컴퓨팅은 하드웨어와 소프트웨어를 포함한 자원을 각 워크스테이션에 할당하는 것
- Peer-to-peer
- file 공유 어플리케이션
- 각 개인이 데이터를 100% 가지고 있음
- update는 주변에 공유됨
- 데이터는 기계당 한 번씩 복제되며, 데이터를 변경하거나 추가할 때마다 많은 잡음이 발생
- 사용자 간에 파일을 공유하는 BitTorrent 네트워크는 데이터를 제어하는 중앙 서버 없이 작동Peer-to-Peer
- peer-to-peer은 서버-클라이언트보다 덜 효율적이다 데이터가 복제와 잡음 측면에서.
- 각 개인은 더 독립적이다. 그것은 심지어 네트워크의 나머지 부분에 대한 연결이 끊어져도 계속 작동할 수 있다
- 피어 투 피어 네트워크는 더 강력하고 제어할 수 있는 중앙 서버가 없기 때문에 P2P 네트워크를 닫는 것은 BitTorrent처럼 어렵다.
The problems of agreement
- peer-to-peer 모델의 경우 모든 피어가 'trusted'하더라도 합의 또는 The problems of agreement가 발생할 수 있다.
- 각 피어가 서로 다른 속도로 업데이트되고 상태가 조금씩 다를 경우 데이터의 "real" 또는 "true" 상태를 어떻게 결정합니까?
- 누가 옳은지 결정하는 믿을 만한 중재자는 없다.
- 피어를 '신뢰할 수 없는' 피어 투 피어 네트워크에서 시스템이 bad 피어에 의해 쉽게 방해받지 않도록 하려면 어떻게 해야 할까?
- 돈 거래 등 높은 신뢰가 요구되는 시스템에서는 적합하지 않다고 여겨질 수 있다
Sample example: playing chess online
- Alic와 Bob의 필수적인 것은 무엇일까?
- 초기 상태의 동의: 둘다 board에서의 시작 위치를 알아야 한다
- 변경 상태의 동의: 둘다 지금까지 메세지의 순서를 알아야 한다
- 메세지들은 게임의 성적을 보충한다
- 따라서 그들은 board의 상태를 다시 구축해야 한다
- 만약 엘리스와 밥이 보드의 상태를 동의하지 않으면 그들은 게임을 시작할 수 없다
- 앨리스가 체스판에서 비숍을 f8로 옮기고 싶어한다고 가정
- 밥은 앨리스의 비숍이 이번 실행을 위한 올바른 위치에 있는지 알아야 합니다.→밥은 현재 시스템의 상태를 알아야 한다
- 밥이 앨리스의 장부의 과거 상태를 보고 있다면 앨리스는 보드의 다른 위치로 이미 이동한 비숍의 위치를 수정하여 밥을 속일 수 있습니다.
- 일부 분산형 시스템과 시스템의 현황에 대해 합의할 수 있습니까?→블록체인!
- 앨리스와 밥이 history에 동의한다면, 그들은 현재 상태에 동의한다.
- 그들은 모두 게임의 초기 상태에 동의한다
- 블록체인은 개별 거래 내역을 포함하고 있다
- Starting (Initial) state + history = current state
- 블록체인은 밥과 앨리스가 서로 믿지 않더라도 시스템의 상태에 대해 동의하게 해주는 기술!
What is Blockchain in detail?
- 블록체인안에서, 모든 users은 기능적으로 신뢰하는 중재자다
- 블록체인 시스템은 탈분산화 시스템을 요구한다
- 블록체인 안에 엔티티들은 서로 또는 한개의 엔티티 들을 믿지 않는다
- 그러나 엔티티들은 변화의 기록에 대해서 동의한다
- 현재시스템에 동의
- 그것들은 meaningful
In BlockChain
- 만약 엘리스와 밥, 그들은 transaction에 동의
- 각자의 account에 비트코인이 얼마나 있는지
- 누구 account인지
- 시스템의 현재 상태
- 게다가 하나의 신뢰하는
- 우리는 일정 수준의 탈분산화를 원한다 - 하나의 실패 포인트가 아니라 화합 또는 조정
How does blockchain work?
- 하나의 블록은 hash-chained의 기록의 순서이다
- 일단 새로운 기록이 hashed, chained되면, 과거의 기록들은 수정이 불가능
- 암호화 hash-function은 다음의 속성을 만족시킨다
- 메시지 다이제스트(Message Digest): 메시지를 해시(Hash)하는 것을 의미한다. 임의의 길이를 가진 메시지를 MD함수에 넣으면 일정한 길이를 가진 데이터를 얻는다. 이 데이터를 비교해 위/변조 되었는지 쉽게 알 수 있다.
- 역상공격 (preimage attack): 해시값이 주어져 있을 때, 그 해시값을 출력하는 입력값을 찾는것이 불가능
- 충돌방지 (collision resistant): 두 개의 d와 d`를 알아내는 것을 불가능
- ⇒ Hash(d)=Hash(d`)
Hashchain
- 해시체인은 기록의 순서이다. 각 과거, 현재의 모든 기록 내용을 포함
- 각 블록은 이전 블록의 해시 알고리즘의 대한 약속들을 포함한다. 이것은 과거 transitions의 모든 순서에 무결성을 제공한다
- 예를 들어, 만약 악성 공격자가 payload100을 payload100`으로 바꿨다고 가정. 그러면 bolck101뿐만 아니라 누구의 블록인지 나타났는지도 바뀐다
- 모든 블록은 이전의 커밋한 블록들의 정보를 가지고 있다 → 가장 최근의 블록을 수락한다는 것은 이전의 모든 커밋들을 잠근다는 것을 의미한다
Building a Block
- 블록체인 시스템은 다음 블록을 어떻게 받을까?
- 블록체인은 추가할 수 있는 것을 결정하는 신뢰하는 엔터티를 가지지 않는다.
- 그러나 여전히 어떤 블록이 유효한지 결정해야 한다
- 새로운 블록의 비율을 제한하고 잘못된 블록을 추가하는 것은 비용이 많이 든다 → 블록체인에는 작업 증명이 포함되어야 한다 (proof-of-work)
Hashcash
- proof-of-work은 원래 스팸 필터링을 하는데 소개되었지만 해시캐시는 비트코인 마이닝 알고리즘의 일부분.
- 만약 너가 메일을 보내길 원해면 너는 작업량(노력)을 보여줘야 한다→ 스팸필터
- 그러나 너의 노력을 쉽게 확인할 수 있다.
- 이것은 해시체인 시스템에서 nonce를 생성하는 방법을 설명한다
- nonce는 암호화 통신에서 한 번만 사용할 수 있는 임의의 숫자
- if (Cost to send a spam > Benefit of a spam sender ) → preventing spam mails
- 어떻게 하면 적절한 컴퓨팅 efforts를 해서 메일을 보내는지가 해시캐시의 핵심
- challenge C와 limit L가 주어진다.
- 메일에서 하나씩 증가시켜 조건(예: 해시 결과의 처음 20비트는 0(< 2^140))을 만족하는 카운터를 찾습니다(계산할 바로 가기 없음). ➔ 작업증명
- 그러나 수신자는 해시(C||counter)를 계산하여 쉽게 확인할 수 있으며, 송신자가 해시값을 재사용하지 않도록 해시값을 저장합니다.
- 신뢰할 수 있는 중재자가 필요하지 않습니다.
Why Is Blockchain Important (in Finance)?
- Financial institute는 제 3자에게 크게 의존한다.
Problems of Trusted Third Party
- 타사 독점
Cryptocurrency (암호화폐)
- 블록체인 활용으로 알려진 암호화폐는 비트코인
- AltCoin
- LiteCoin
- Dash
Asset Registry Technology (자산 등록 기술)
- Colored Coin
- Meta coin
Asset Centric Technology
- Ripple
- Stellar
- Stable Coin
Application Stacks
- Smart Contract
'전공 > 블록체인' 카테고리의 다른 글
[블록체인] Ripple, Dapp이란 (0) | 2023.12.21 |
---|---|
[블록체인] 이더리움 Transaction, smart contract (1) | 2023.12.21 |
[블록체인] BitCoin Transaction - UTXO (0) | 2022.10.24 |
[블록체인] - 암호화폐, Asset Registration Technology, Asset Centric Technology, Application Stacks (0) | 2022.10.24 |
블록체인 Hashchain, Hashcash (0) | 2022.10.24 |