블록체인 8

[블록체인 기술 1] 블록체인 트릴레마

블록체인 트릴레마 (Trilemma) - 블록체인 기술의 3대 요소인 확장성(Scalability), 보안성(Security), 탈중앙성(Decentralization) 중 하나는 희생해야 한다는 문제 * 트릴레마 (Trilemma) - 선택해야 하는 길은 3가지가 되는데 그 어느 쪽을 선택해도 남은 두 가지는 또는 한 가지의 문제를 악화시키는 상황 블록체인 기술의 3대 요소 1. 확장성 (Scalability) - 사용자 수가 늘어나더라도, 유연하게 대응할 수 있는 정도 ** 확장성이 높으면 사용자 수가 증가해 거래 건수가 늘더라도, 무리 없이 전송 처리용량을 증가시킬 수 있음 ** TPS가 높다고도 표현함 (블록체인 네트워크의 성능지표로 사용함) - 높은 트랜잭션 처리량과 미래의 증가량을 얼마나 견딜..

블록체인 2023.05.10

[블록체인 기술 1] 암호화

암호학 - 암호화 및 복호화를 연구하는 학문 * 암호화 - 일반 메시지(평문)를 이해하기 위한 어려운 암호문으로 변경하는 과정 * 복호화 - 암호문을 읽을 수 있는 일반 메시지(평문)으로 변경하는 과정 * 암호 사람이 읽을 수 있는 평문을 타인이 이해할 수 없는 암호문으로 만들어 전송하고, 그것을 다시 사람이 읽을 수 있는 평문으로 복구하는 것 ⇒ 암호화폐에는 해시 함수, 공개키 암호화, 디지털 서명과 같은 다양한 함호화 기술을 사용함 ⇒ 블록체인에 저장된 데이터의 일관성을 보호하고 거래를 인증하는데 사용 블록체인에서 암호는 대표적으로 보안을 위해서 사용 → 기밀성, 익명성, 무결성, 부인 방지를 위해 사용 아래의 기능들은 크게 대칭키 암호 방식, 비대칭키 암호 방식, 해시 함수를 사용해 구현 기밀성 타..

블록체인 2023.05.08

[블록체인 기술 1] 블록체인 지갑 (+ 영지식 증명)

핫 월렛 (Hot Wallet) - 온라인 - 네트워크에 연결되어 있어 실시간으로 거래 정보를 주고 받을 수 있음 - 개인 키가 온라인에 노출되기에 해킹 등의 보안 문제에 취약함 - 암호화폐 거래를 자주 사용하는 경우 사용하는 것이 바람직 핫 월렛의 종류 1. 웹 월렛 - 웹 기반으로 호스팅되는 지갑 - 인터넷 브라우저를 통해 접속하는 지갑으 ** 브라우저 확장 프로그램이나 웹 사이트 형태로 제공됨 - 항상 인터넷에 노출되어 있어 보안에 가장 취약 / 즉시 거래가 가능하기에 가장 실용적 - 종류 : 메타마스크(MetaMask), 카이카스(Kaikas) 등 2. 데스크톱(PC) 월렛 - OS에 다운로드하여 작동할 수 있는 앱 - 인터넷 접속 여부에 따라 핫 월렛이나 콜드 월렛으로 작동함 - 웹 월렛보단 불..

블록체인 2023.05.05

[블록체인 기술 1] 암호화폐 내용 정리

암호화폐(Cryptocurrency) - 암호화 (crypto) + 화폐 (currency) - 암호화 기술을 이용한 가상화폐 - 분산 장부(Distributed Ledger)에서 비대칭키 암호화를 통해 안전하게 전송하고, 해시 함수를 이용해 쉽게 소유권을 증명할 수 있는 디지털 자산 - 단일 주체가 소유하거나 관리하지 않는 탈중앙화된 전자 화폐 시스템 탈중앙화 모델 - 네트워크에 참여한 노드(서버 역할)들이 서로 연결되어 있고 서로 거래 정보를 전달함 - 네트워크 탈중앙성은 상당한 수준의 차단과 검열 저항성을 가능하게 함 ** 검열 저항성 : 거래를 감시하더라도 막지 못함한다는 뜻 - 중앙화된 모델에 비해 가용성 측면에서 우수함 ** 모든 노드가 동일한 DB 사본을 보관 → 일부 노드가 공격당해 정상적..

블록체인 2023.05.04

[블록체인 기술 1] 머클트리와 머클 패트리샤 트리

머클트리 (Merkle tree) - 여러 데이터에 대해 단계적으로 해시함수를 적용하여 하나의 해시값으로 나타내는 데이터 구조 ⇒ 여러개의 데이터를 하나의 해시값으로 만드는 데이터 구조 - 블록체인에 있는 데이터의 위변조를 방지하고, 데이터가 변하지 않았음을 보장하는데 사용 - 여러 데이터를 모아 만들어진 하나의 해시값 ⇒ 머클루트 (Merkle Root) 머클트리의 동작 방식 1. 머클 루트를 만들기 위한 데이터 A, B, C, D를 해시함수에 넣어 해시값을 만든다. 2. 각 해시값을 2개씩 짝지어 연결 후 해싱 ** ex ) hA와 hB를 하나로 연결하고 이를 해시함수에 넣어 해싱 3. 최종적으로 하나의 해시값만 남을 때가지 이 과정을 반복 함 4. 마지막으로 남은 값을 다시 한번 해싱 → merkl..

블록체인 2023.05.03

[블록체인 기술 1] 분산원장 내용 정리 1

분산 데이터베이스 (Distributed Database) - 분산된 저장소(노드)들이 네트워크를 통해 연결되어 작동하는 하나의 데이터베이스 관리 시스템(DBMS) - 물리적으로는 여러 위치에 분산 저장하고 흩어져 있지만 논리적으로는 하나인 것 처럼 활용 ** 물리적으로 떨어져 있는 저장소(노드)들은 네트워크를 통해 연결됨 ** 노드들은 투명성 확보가 가장 중요함 분산 데이터베이스에서 목표로 하는 투명성의 특징 종류 내용 특징 병행 다수의 트랜잭션 실행 시 결과가 일관성 유지 자원처리 양 및 속도 개선 장애 장애 발생이 All or Nothing 유지 (원자성 유지) 데이터 일관성 지역사상 개별 지역의 물리적 이름과 관계없이 접근 가능 확장성 확보 위치 데이터를 물리적 저장 위치가 아닌 논리적 입장에서 ..

블록체인 2023.05.02

블록체인 이더리움 지분증명

2022.09.15 이더리움이 지분증명(PoS)으로 전환됨 지분증명 전환은 성능과는 크게 상관이 없다고 함 Dapp은 큰 영향 없이 작업증명 때의 블록체인처럼 실행된다고 함 궁금해서 아래의 강의를 시청하고 내용 정리함 (인프런) 블록테인 이더리움 지분증명(Proof of Stake) 작업증명과 지분증명의 차이 현재 우리가 사용하는 대부분의 서비스 → 중앙화된 형태 이에 따른 문제점 1. 서버가 다운되면 그에 연결된 서비스들이 함께 중단됨 2. 개인정보 유출 등등 중앙화된 주체 없이 불특정 다수들이 모여서 하나의 네트워크를 이룬다면 일부가 다운되어도 문제 없음 특정 기업에 데이터가 축적되고 그것이 악용되는 등의 문제 막을 수 있음 그래서 블록체인에서 이런 시스템을 구현하기 위해 여러 방안을 모색중 이더리움..

블록체인 2023.02.26

블록체인과 솔리디티

Blockchain - 블록들이 연결된 체인 * 블록(Block) : 데이터의 집합 예시) a가 b에게 송금한 기록, c가 d에게 송금한 기록등을 한데 모아 블록으로 만듦 위와 같은 블록들을 하나하나 연결한 것 → 블록체인 - 위와 같은 블록체인을 각각의 사용자들이 동일하게 가지고 있음 → 누군가 한명이 다른 정보를 가지고 있다면 그 사람이 잘못된 정보를 가지고 있다는 것이 증명됨 Merkle Tree - 블록에 포함된 거래 내역을 트리 형태로 요약한 것 - 해쉬가 이용된 데이터 검증을 위한 트리구조 - 데이터를 간편하고 확실하게 검증 가능 - 머클루트 : 모든 거래 내역들을 해쉬화 함 → 거래내역의 변동여부를 쉽게 확인 가능 - 머클루트를 헤더에 담아 트랜잭션의 유효성 보장 생성과정 1. 최초 데이터를..

블록체인 2023.02.15