Blockchain: 데이터의 단일 소유자 또는 controler가 없는 동기화 상태를 유지하는 여러 엔티티에 분산된 분산형 데이터베이의 네트워크
-> 트랜잭션 수집과 기록 허용
-> 연대순으로 블록들이 연결
-> 결과 ledger에 다른 서버가 access 가능
중앙화 시스템
- client-sever network
- 데이터는 서버에 저장되고 client는 그들이 로그인할때 데이터에 언제든지 접근할 수 있음
- 클라이언트는 그 데이터가 확실하다고 신회
- ex) 웹사이트는 서버에 있고 사용자는 클라이언트임
- client-sever network는 매우 효율적이고 전통적인 모델
- 중앙화 시스템 문제점
- 단일 장애 지점: 중앙 권한이 장애가 있으면 전체 시스템이 장애다. 시스템이 다운되면 은행 시스템의 모든 거래를 사용할 수 없는 것처럼
- 힘의 집중: 중앙집권화된 기관은 과거 상태를 수정함으로써 현재 상태를 쉽게 조작할 수 있다. ex) 투표 결과 조작
Decentralized System (탈중앙화)
: 조직의 활동, 특히 계획과 의사결정에 관한 활동이 중앙의 권위 있는 위치나 집단으로부터 분산되거나 위임되는 과정이다.
: 분산 컴퓨팅은 하드웨어 및 소프트웨어 리소스를 각 개별 워크스테이션에 할당하는 것
-> peer-to-peer, file sharing 응용 프로그램
- peer-to-peer network
- 각 피어에는 100%의 데이터가 있음 (또는 가능한 한 그것에 가깝게)
- 업데이트는 주변에서 공유됨
- 데이터는 여러 번 복제되는됨 기계당 한 번, 그리고 데이터를 변경하거나 추가할 때마다 많은 잡음(noisy gossip)이 발생
- BitTorrent 네트워크: 사용자 간에 파일을 공유하는 데이터는 제어하는 중앙 서버 없이 작동
- 피어 투 피어(peer-to-peer)는 데이터 복제와 시끄러운 가십으로 인해 어떤 면에서 클라이언트 서버보다 효율성이 떨어진다.
- 피어 투 피어 네트워크의 각 피어는 더 독립적이며, 네트워크의 나머지 부분에 대한 연결이 끊기더라도 어느 정도 계속 작동할 수 있음
- P2P 네트워크는 더 강력하며, 제어할 수 있는 중앙 서버가 없으므로 P2P 네트워크를 닫는 것은 비트토렌트처럼 어렵다.
- The problems of agreement
- 피어 투 피어 모델의 경우 모든 피어가 '신뢰'하더라도 합의 문제가 발생할 수 있다
- 각 피어가 서로 다른 속도로 업데이트하고 있고 상태가 약간 다른 경우 데이터의 "실제" 상태를 어떻게 결정?
- 누가 옳은지 결정할 믿을 만한 중재자가 없음
- 어떤 피어도 반드시 신뢰할 수 없는 피어 투 피어 네트워크에서 시스템이 나쁜 피어에 의해 쉽게 손상되지 않도록 하려면 어떻게 해야 합니까?
- 송금 등 높은 수준의 신뢰가 요구되는 제도에는 적합하지 않다고 판단
- 피어 투 피어 모델의 경우 모든 피어가 '신뢰'하더라도 합의 문제가 발생할 수 있다
simple example: playing chessmonline
앨리스와 밥에게 무엇이 필요한가?
◦초기 상태에 대한 동의: 둘 다 보드의 시작 위치를 알고 있다.
◦상태 변경에 대한 동의: 둘 다 지금까지의 메시지 순서를 알고 있다.
• 그 메시지들은 게임의 녹취록을 구성한다.
• 따라서, 그들은 보드의 상태를 재구성할 수 있다.
앨리스와 밥이 이사회 상태에 동의하지 않으면, 그들은 게임을 할 수 없습니다!
• 앨리스가 비숍을 체스판의 f8로 옮기고 싶어한다고 가정해보자.
◦밥은 앨리스의 주교가 이 처형을 위한 유효한 위치에 있는지 알아야 한다.→밥은 시스템의 현재 상태를 알아야 한다.
• 밥이 앨리스의 장부의 과거 상태를 보고 있다면, 앨리스는 이미 이사한 주교 위치를 보드의 다른 위치로 수정하여 밥을 속일 수 있습니다.
• 그들은 일부 분산 시스템과 시스템의 현재 상태에 대해 합의할 수 있습니까?→블록체인!
만약 앨리스와 밥이 역사에 대해 동의한다면, 그들은 현재 상태에 대해 동의한답니다!
◦그들은 게임의 초기 상태에 대해 모두 동의한다.
◦블록체인에는 개별 거래 내역이 포함되어 있습니다. 시작(초기) 상태 + 기록 = 현재 상태
• 블록체인은 밥과 앨리스가 서로를 믿지 않더라도 시스템의 상태에 합의하도록 하는 기술입니다!
Blockchain detail
- 블록체인 안에서는 모든 사용자가 실제 중재자 없이 신뢰할 수 있는 중재자의 기능을 얻는다.
- 블록체인 시스템에는 분산형 시스템이 필요하다
- 블록체인 내 엔티티는 서로 믿지 않거나 단일 실체를 믿지 않는다.
- 그러나 그들은 변화의 history 에 동의하기를 원한다.
- 그것은 시스템 참여자들이 시스템의 현재 상태에 동의하게 만든다.
블록체인의 작동
- 블록은 해시 체인 레코드의 시퀀스
- 새 레코드가 해시되고 체인으로 연결되면 과거 레코드는 수정할 수 없습니다
- 암호화 해시 함수는 다음과 같은 속성을 만족한다.
- 메시지 요약: 암호화 해시 함수는 데이터의 무결성을 보장하는 데 사용됩니다. 임의의 길이 입력을 받아 고정 길이 값을 출력한다.
- Preimage Resistant: Given v such that Hash(d) = v, finding value of d is infeasible.
- Collision Resistant: It is infeasible to find the two distinct d and d’ such that Hash(d) = Hash(d')
'전공 > 블록체인' 카테고리의 다른 글
[블록체인] 블록체인 개념정리 Hashchain과 Hashcash (1) | 2023.11.18 |
---|---|
[블록체인] 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 |
[블록체인] 작업증명 (POW) (0) | 2022.10.23 |