블록체인과 보안 및 개인정보
1. 블록체인과 보안
해커
해커의 주된 목표
- 가치있는 정보 탈취로 경제적 이익 추구 -> 정보 자체에 대한 약탈
- 서비스 중단(Denial of Service)을 통한 시스템의 교란
해커의 공격을 막으려면?
- 정보 자체가 노출되는 것을 보호
- 서비스가 중단되지 않도록 보호
블록체인은 해커의 공격에 대해 안전할까?
- 블록체인은 모든 데이터를 브로드캐스팅을 통해 다른 노드와 공유
- 정보의 탈취 자체가 필요없을 정도로 정보가 노출됨.
- 정보 탈취로부터의 안정성은 가지고 있지 못함
- 암호화 자체가 안전을 보장하지 않음
- 암호화를 위한 기술적인 문제도 뒤따름
블록체인 보안
- 서비스 중단 공격이나 기록을 변경시키려는 시도로부터는 현존하는 가장 안전한 시스템
- 공격이나 기록 변경을 위해서는 모든 노드를 공격해야 함.
현업에서의 블록체인 사용
- 정보의 탈취로부터의 안전성에 대한 고려는 접어두어야 함
블록체인 사용 고려 가능한 시스템
- 중단되는 안 되는 서비스
- 기록이 변경되면 안 되는 시스템
2. 블록체인과 개인정보
정보
- 데이터를 가공하여 누군가에게 가치 있는 무엇을 제공해 줄 수 있는 경우.
개인 정보
- 가공 된 정보 중 누구에게 해당하는 것인지 특정할 수 있는 경우
- 질병정보 -> 누구에 대한 정보인지 알 수없는 경우 -> 정보
- 질병정보 -> 누구에 대한 정보인지 알 수 있는 경우 -> 개인정보
- 두 가지 정보가 결합되어 어떤 사람을 특정할 수 있는 정보를 발생하기도 함
- 정보 중에 누구 것인지를 특정할 수 있는 경우
블록체인
- 두 가지 정보가 결합되어 어떤 사람을 특정할 수 있는 정보를 발생하기도 함
- 비트코인 블록체인에 들어 있는 데이터는 암호화되지 않은 채 모든 노드에 공개
블록체인 데이터의 암호화
- 암호화 자체도 안전하지 않음
- 해킹을 통해서 언제든지 풀릴 수 있음
- 암호화의 여부와 상관없이 접근을 통제하는 것이 가장 중요
데이터 암호화의 이치
- 암호화된 비밀번호 데이터를 온라인에 공개할 수 없는 것과 같은 이치
- 암호화를 통한 브로드캐스팅은 안전하게 보호할 수 없음 -> X
- 모든 데이터는 접근을 통제해야만 안전하게 보호가 가능함
- 블록체인은 암호화의 여부에 상관없이 정보가 보호되지 않음.
비트코인 블록체인
- 익명성 보장
- 정보가 존재 -> 모든 사람에게 공개 -> 이 정보가 누구의 것인지는 특정할 수 없다 = 개인정가 없다
- 정보는 노출되지만 개인정보는 노출되지 않음.
비트코인 블록체인에서 공개된 정보
- 발송인의 비트코인 주소
- 수취인의 비트코인 주소
- 비트코인의 수량
비트코인과 이더리움
비트코인
- 정적인 내용만 기록
- 적힐 내용이 미리 정해져 있음
- 사용자가 내용을 바꿀 수 없음
- 용도를 바꾸려면 프로그램을 완전히 수정해야 함
- 개인정보가 누출될 일이 없음
- 익명으로 처리됨
- 구조적으로 개인정보가 막혀 있음
이더리움
- 동적인 프로그램까지 기록
- 스마트 컨트랙트를 만드는 사람이 내용을 임의로 정할 수 있음.
- 스마트 컨트랙트를 통해서 임의로 데이터를 쓸 수 있음
- 스마트 컨트랙트를 이용해 개인정보를 저장했다면 개인정보의 누출이 일어 날 수 있음
- 개인정보의 누출이 언제든지 발생
블록체인의 순기능과 역기능
- 순기능 : 검열을 피해 자신의 의견을 퍼블릭이 파악할 수 있는 공간에 게재했다.
- 역기능 : 사실확인이 안 된 상태에서 영원히 기록되게 된다.
- 비트코인은 진실만을 기록한다? -> 비트코인은 단순한 기록장치
블록체인에 대한 진실
- 정적인 기록을 위한 검열을 통과했기 때문에 코인에서 진실을 쓰지 않는 방법이 존재하지 않음
- 검증 절차 없이 누구든 원하는 내용을 쓸 수 있음
- 정보 -> (스마트 컨트랙트) -> 이더리움
- 무엇이든 기록할 수 있지만 쉽게 바꿀 수 없음
비트코인과 스마트컨트랙트
-
비트코인 : 모든 거래내역을 모든 노드가 참여하여 검증하므로 진실만을 기록하도록 노력함
-
스마트 컨트랙트
- 원하는 사람이 자신이 원하는 내용을 쓸 수 있도록 하는 것
-
비트코인처럼 정적인 기록만 작성할 경우 개인정보보 보호 가능 -> 규칙검증 가능 -> 통제
-
스마트 컨트랙트 경우 어떤 기록이든 작성 가능하므로 개인정보 보호가 불가능
-
스마트 컨트랙트를 이용하면 개인정보는 언제든지 누출 될 가능성이 있음
3. 중개소와 블록체인
암호화폐 중개소와 블록체인의 관계
- 블록체인의 안전성과 암호화폐 중개소의 안전성을 관련이 없음
- 해킹과 블록체인의 안전성은 블록체인과 비트코인 시스템에 국한된 내용임
- 지갑 소프트웨어 -> 블록체인을 사용하기 위한 인터페이스
- 지갑을 통해 늘 블록체인과 통신을 하고 있음
- 지갑을 개발하는 사람마다 안전성이 다르게 만들 수 있음
- 우회적으로 블록체인을 접근하는 환경
- 죽애소는 블록체인 자체와 관련이 없음
![[Pasted image 20220326164000.png]]
비트코인 중개소
- 중앙화 시스템으로 되어 있음
- 중개소의 안정성은 그 중개소 자체가 가진 안정성과 같음
- 암호화폐 중개소는 블록체인의 외부 요소로 블록체인 기술과는 상관이 없음
- 최근 발생한 암호화폐 해킹 사건은 중개소를 해킹하여 많은 자원을 획득하려는 시도
- 암호화폐 중개소는 거래 내용을 시뮬레이션만 하고 있음 것
- 언제든지 해킹 위험에 노출
- 암호화폐 중개소의 안전성에 전적으로 의지
블록체인과 보안
- 블록체인에 담긴 데이터 자체는 모든 노드에 노출되므로 안전하지 않음
- 블록체인은 서비스 중단(Dos) 공격으로부터 안전함
블록체인과 개인정보
- 블록체인에는 정보는 담겨 있지만, 익명성을 기반으로 하고 있기 때문에 누구의 정보인지 특정할 수 없으므로 개인정보 문제는 발생하지 않음
- 법 조항의 강화에 따른 적극적인 대응 필요
중개소와 블록체인
- 중개소는 블록체인 기술과 무관하며, 단순히 이를 이용하는 외부 소프트웨어에 불과
- 다양한 해킹의 위협으로부터 노출되어 있음
이더리움 vs 비트코인
1. 비트코인 블록체인의 문제점
비트코인 블록체인의 문제점(=개선점)
- 이더리움이 등장하면서 나타난 비트코인에서 개선할 점
1. 용도가 제한적임
- 비트코인을 주고 받는 정적인 기록만 함.
- 새로운 것을 기록하기 위해서는 프로그램 모두가 수정되어야 함
- 비트코인을 주고 받는 제한적인 용도로만 사용 가능
2. 상태가 기록되어 있지 않음
비트코인의 상태
- 주소별 잔액
- 입출금 히스토리
- 비트코인의 특정 상태는 어떤 한 블록에 있지 않으므로 하나의 블록만으로는 상태를 알 수 없음
3. 비트코인이 사용하고 있는 해시 퍼즐 방식은 계산만 빨리하면 풀 수 있음
- 해시파워가 일부 세력에 의해 독점 될 위험이 큼
- 51% Attack -> 일부 세력의 해시파워 독점 -> 블록의 생산을 독점하는 결과가 나타남
- 빠른 계산만 하면 되므로 전용기계로 만들기에 좋은 방식으로 되어 있음
이더리움이 비트코인 문제를 개선한 방법
- 이더리움은 비트코인의 세가지 문제를 가장 큰 문제점이라 판단하고 개선하기 위해 노력함
1.용도가 제한적임
- 스마트 컨트랙트를 이용하여 극복
- 프로그램을 이용하여 각각의 용도가 바뀜
- 호출시마다 메세지를 통해 서로 다른 매개변수를 부여할 수 있음
- 각각 동작을 달리 할 수 있음
2. 상태가 기록되어 있지 않음
- 계정벌 상태 관리를 통하여 극복
- 비트코인 : 주고받은 모든 기록내용이 주소를 통해 기록. 모든 블록에 흩어져 있음
- 이더리움은 계정별 관리 진행 -> 각각의 블록에서 각각의 계정으로 이어가는 다리 역할
- 어떤 계정이던 특정 블록에서 바로 액세스 가능
3. 비트코인이 사용하고 있는 해시 퍼즐 방식은 계산만 빨리하면 풀 수 있음
- 메모리-하드 해시를 통하여 극복
2. 이더리움 블록체인의 특징
이더리움 블록체인
스마트 계약
- 1990년대 닉 사보(Nick Sazbo)에 의해 제안
- 제3자의 개입없이 법률적 계약사항이 집행되는 디지털 환경
이더리움에서의 스마트 컨트랙트 이용
- 컴퓨터 프로그램 -> 프로그램 실행 -> 데이터 생성 -> 데이터 이용
- 프로그램을 통해 원하는 내용을 블록에 저장 및 호출할 수 있는 환경 제공
- 솔리디티 언어를 이용하여 프로그래밍화
이더리움의 발전
- 계정단위의 관리를 위한 계정 정의
- EOA(Externally Owned Account)
- 비트코인 주소와 비슷
- 정적인 내용 기록이 기본 목표
- 개인키로 통제할 수 있음
- 이더리움 간 전송 가능
- 계약 계정
- 스마트 컨트랙트 저장
- 전송 내용과 특정 스마트 컨트랙트 저장
- 코드에 의해 통제
계정 단위 관리를 위한 계정정의
![[Pasted image 20220326171431.png]]
- 계약 계정 내의 실행코드가 실행되면 그 결과가 저장되게 됨
이더리움의 블록
- 현재 계정 상태가 저장된 별도의 공간이 있음
- 이더리움 주소 A를 여러번 사용 -> 글로벌한 결과를 한 곳에서 저장
- 계약 계정 속에 프로그램을 저장할 수 있는 방식 -> 스마트 컨트랙트
계약 계정
- 언제든지 코드에 의해 통제
- 실행된 코드는 또 다른 계약 계정 호출 가능
- 최초의 계약 계정은 반드시 EOA를 통해 호출
비트코인 해시함수의 단점
- 전용기계화가 쉬엄
- 특정 세력이 해시파워를 장악하는 것이 쉬움
- 해시 함수의 독점화를 통해 51% 공격이 용이
이더리움의 해시퍼즐 방식
![[Pasted image 20220326171810.png]]
- SHA256 -> SHA3 변경
- 메모리 문제 해결의 열쇠
이더리움 해시 함수
- 메모리 상자가 있음
- 하나의 해시 함수 계산 시 64회 메모리 액세스 필요
- Nonce 1씩 증가시키는 것을 물론 64개의 숫자를 읽어와서 계산
이더리움 해시 퍼즐 방식의 문제점
- 계산 속도 저하
- 해시 퍼즐에 가장 큰 시간이 소요되는 것은 -> 64회 메모리 액세스
- 64회의 메모리 액세스를 해야하므로 의도적으로 속도를 늦춘 셈
ASIC의 사용
- 속도를 따라 잡을 수 있는 메모리가 않음 -> ASIC으로 만드는 것이 용이 하지 않음
- 가격대 효용비용이 떨어 질 수 있음
- 비트코인에 비해 효율적이지 않음
- 특정 세력의 해시 함수 독점을 방지 할 수 있음
메모리-하드 방식
사용 속도가 느린 메모리 시스템의 활용을 통해 전용기계화 하여 해시 함수를 독점하려는 시도를 막는 방식
- 비트코인 블록체인 이후 대부분 메모리-하드 방식 이용
- 해시 함수의 전용화 및 특정 세력의 독점화 방지
- 비트코인에 비해 더 나은 성능으로 발전 중
그 밖의 개선
통합 개발 프로그램 (IDE)의 제공
- IDE 툴을 사용해 스마트 컨트랙트 생성 가능
- 스스로 작동, 집행되는 스마트 계약의 시발점
토큰 개념 도입
토큰 개념의 도입 전
- 독자적인 네트워크 구성 -> 구축된 네트워크에서 암호 화폐 발행
토큰 개념의 도입 후
- 스마트 컨트랙트 이용 -> 개념만으로 전송 및 판매 가능
- 누구나 손쉽게 토큰 발생 가능
개선되지 못한 부분
- 범용적인 부분 이외에 안전성, 지속성, 탈중앙화
- 비트코인 블록체인에 비해 개선된 점이 많지 않음
이더리움의 스마트 계약
- 스마트 계약의 환경 더 개선한것으로 볼 수 있음
- 비트코인이 가지고 있던 문제점을 개선
토큰의 개념을 보는 시각
- 암호화폐 -> 인센티브 공학의 일부
- 채굴하는 사람의 대가를 위해 도입
- 다른 인센티브 방식이 있을 수 있음
토큰의 기능
- 일정 디지털 화폐를 서로 주고받는 기능
- 이더리움에서는 스마트 컨트랙트를 위해서 주고 받을 수 있음
- 현재 15만개 중 1,000 여개가 실제로 거래
토큰의 이면
- 거래되고 있는 대부분의 토큰이 중개소에 의해 만들어지고 있음
- 스마트 컨트랙트가 토큰을 이용하는 사람들에 의해 남용될 가능성 발생
- 최근 생성되는 대부분의 스마트 컨트랙트가 토큰에 연루
이더리움이 꿈꾸는 세상
- 누구나 탈 중앙화 프로그램을 제공할 수 있도록 하겠다
- 안정성, 지속성에 대한 검증 필요
Dapp의 한계
- 중요한 정보를 저장할 수 없음 -> 사용제한에 대한 문제가 발생
- 비효율적인 시스템 -> 효율을 포기하고 값 저장
- 저장된 것에 대한 변화를 최소화
- 좀 더 나은 시스템 구현에 대한 숙제가 남아 있음
스마트 컨트랙트의 역할
- 원하는 데이터를 기록하고 블록체인이 범용성을 가지도록 함.
3. 이더리움과 비트코인 비교
비트코인과 이더리움
![[Pasted image 20220326173306.png]]
이더리움
- 비트코인의 비효율적인 부분 개선
- 해시파원의 편중 견제
- 스마트 컨트랙트 구현
- 누구나 쉽게 프로그램 할 수 있도록 함
튜링 완전과 튜링 비완전
- 튜링 완전 - 컴퓨터의 동작을 모두 표현 할 수 있는 경우. 솔리디티 언
- 튜링 비완전 - 튜링 완전에 비해 표현이 제한적. 스크립트 언어
비트코인과 이더리움의 블록 형태
![[Pasted image 20220326173556.png]]
비트코인 블록체인의 문제점
- 비트코인에는 정적인 데이터만 기록되어 용도가 제한적임
- 해시 퍼즐의 경우 계산에만 국한되어 전용기계를 통해 일부 세력의 독점화가 용이
이더리움 블록체인의 특징
- 이더리움은 디지털 환경을 통해 제 3자 없이도 계약을 이행하려는 닉 사보의 ‘스마트 컨트랙트’ 개념을 구현하기 위해, 블록에 프로그램을 저장할 수 있는 기능을 적용
- 해시 퍼즐에 메모리-하드-개념을 도입하여 전용기계를 통한 일부 세력의 독점화를 견제
이더리움과 비트코인 비교
- 이더리움은 블록체인의 비효율적인 부분을 개선함
- 이더리움은 튜링-완전 언어를 도입해 스마트 컨트랙트를 구현
- 이더리움은 메모리-하드 해시 퍼즐을 통해 일부 세력 독점을 견제했음
- 이더리움은 계정 위주의 관리를 통해 현재 계정의 잔액 등 상태를 손쉽게 알 수 있게 했음
- 이더리움은 블록체인 본연의 기능 면에 있어서 큰 변혁이 아니라고 볼 수 있음
블록체인의 진정한 효용
1. 블록체인의 진정한 효용
블록체인에 관한 오해
- 데이터 저장의 안전성
- 해킹 방지에 탁월
- 진실만을 기록
- 기록의 불변
- 중앙화 시스템보다 효율적
데이터 저장의 안정성 오해 바로잡기
- 블록체인에 데이터를 저장하면 안전하게 보호된다 (▲)
데이터 자체 비보호
- 블록체인 데이터는 브로드캐스팅을 통해 모든 노드에 공유
DoS 공격에 대해서는 상대적 안정성 보유
데이터는 보호되지 않으나, 서비스 중단 공격에는 상대적으로 안전하다.
해킹 방지에 탁월 오해 바로잡기
- 블록체인은 현존하는 시스템 중 해킹으로부터 가장 안전하다 (▲)
기록 변조 및 서비스 중단 시도에 대한 안정성 보유
- 참여한 모든 노드의 중복 검증
서비스 중단 및 기록 변조 시도에는 가장 안전하지만 데이터의 보호가 되지 않는 가장 취약한 시스템이다.
진실만을 기록에 대한 오해 바로잡기
- 블록체인은 항상 진실만을 기록한다. (X)
초창기 블록체인
- 정적인 기록, 비트코인 거래 내용 기록 -> 검증가능
- 최소한 비트코인 블록체인에서는 진실만 기록 가능한 장치 마련
후기 블록체인
- 누구든 원하는 사실 기록 -> 검증 불가
블록체인은 진실을 기록하는 것이 아니라, 기록이 변경되지 않도록 특정장치를 한 것이다.
기록의 불변 오해 바로잡기
- 한 번 기록되면 어떤 경우에도 변경되지 않는다.(X)
기록 및 변경이 어려울 뿐, 불가능한 것은 아니다. 퍼즐의 난이도 조절로 기록 변경을 어렵게 만들 수 있다.
중앙화 시스템보다 효율적 오해 바로잡기
- 블록체인은 중앙화 시스템보다 더 효율적이다 (X)
일의 반복을 통해 데이터의 투명성을 요구하는 기술
- 효율성 ↓, 투명성 ⬆️
- 속도의 효율성 : 블록체인 < 중앙화 시스템
블록체인은 중앙화 시스템에 비해 비효율적이다.
블록체인 플랫폼
- 블록체인의 효용을 위해 작업증명 방식의 막대한 에너지 사용에 대한 의구심 증폭
블록체인의 효용성
- 효용성을 희생하고 안전성을 누림
- 스스로 실행되는 스마트 계약 환경을 구축할 수 있는 플랫폼
- 진정한 효용성을 얻기 위해서는 블록체인의 안정성이 관건
현재 블록체인의 발전 방향
- 기존의 블록체인을 변형하려는 노력이 많이 나오고 있음
- 블록체인 = 리더선출 방식
- 비트코인 : 해시 퍼즐 방식을 통해 무작위성을 최대한 보장하며 리더 선출
- 현재 : 정해진 방식 혹은 일부 세력이 점유한 방식에 의해 리더 선출
- 블록체인의 무작위성을 잃어버리게 되는 결과를 가져올 수 있음
- 신뢰받는 제3가 필요 없는 거래, 안전성, 기록불변성, 확장성 등의 모든 조건을 만족하는 블록체인 개발은 여전히 미지수임
블록체인에 관한 연구의 미래
- 과연 탈중앙화된 세상을 소프트웨어로 구현할 수 있을까?
- 누군가 혁신적인 방식이 제안될 가능성이 있음
- 소프트웨어로 새로운 효용을 가질 수 있을까
2. 프라이빗 블록체인과 컨소시엄 블록체인
- 프라이빗 블록체인과 컨소시엄 블록체인을 과연 블록체인이라고 할 수 있는가?
비트코인과 이더리움 블록체인의 특징
기록과 검증을 위해 특정 서버를 의지하지 않음(확장성)
퍼블릭 블록체인
- 확장성 보유, 누구든 기록의 무결성 확인 가능 -> 기록의 투명성 확보
프라이빗, 컨소시엄 블록체인
- 기록과 검증은 정해진 소수의 서버에 의해서 가능
- 프라이빗 블록체인의 경우
- 단 하나의 서버가 기록과 검증 실시 중앙화 시스템과 유사
- 분산 저장을 통해 차별화
- 프라이빗, 중앙화 시스템으로 분류할 수도 있다.
- 컨소시엄 블록체인
- 여러 개의 서버로 나눠 저장할 뿐 기록과 검증을 정의된 소수에 의존
- 사전에 정의된 컨소시엄에 합류해야 기록의 검증에 참여가능
- 몇 개의 동종업계가 기록 분산 저장 방식 채택
프라이빗, 컨소시엄 효용성 훼손 사항
1. 심각한 안정성의 저해
- 해커의 목표가 뚜렷함
- 해킹에 안전하다는 말이 성립되지 않음
- 서비스 중단 공격 및 기록 변경 공격으로부터 안전했던 속성을 잃음
2. 확장성 보유 불가
- 사전에 정한 노드만 기록과 검증에 참여가능
3. 기록의 불변성 저해
- 채굴과정이 없음
- 기록 변경에 대해 쉽게 감지하거나 엄청난 에너지가 드는 리소스가 필요 없음
- 해시 함수만 다시 계산하면 언제든지 기록 변경 가능
4. 탈중앙화, 제3자의 개입 없이 거래 불가능
- 노드 자체가 이미 신뢰받는 제 3자의 역할
- 여러 개의 서버에 의존하는 방식으로 변경된 것임
- 퍼블릭 블록체인과는 거리가 멀다.
- 다소의 안전성을 제외하고 블록체인이 가지고 있는 모든 속성을 잃음
분산저장 =? 블록체인
- 안전성 유지
- 투명성 유지
- 탈중앙화 -> 프라이빗, 컨소시엄 블록체인 기능 수행 불가
블록체인 도입 전 체크리스트
1. 왜 블록체인이 필요한가?
- 용도에 따른 블록체인의 종류는 중요하지 않음.
- 왜 블록체인 도입을 생각했을까?
- 기록의 불변성, 안정성을 고려하면 -> 퍼블릭/프라이빗 답이아님
- 안전성 때문에 새로운 시스템을 도입해야할 필요가 있을까?
2. 어떤 형태의 블록체인을 도입할 것인가
3. 도입하는 블록체인이 문제점을 해결 할 수 있는가?
- 안전성 분산이 해답이 아님 -> 분산이 해답이라면 현재의 은행 모두가 해킹으로부터 안전하지 않을까?
블록체인 도입 시 고려사항
- 블록체인은 안전성을 위해 효율을 포기한 시스템이다.
- 현재 시스템으로 원하는 목적을 달성할 수 없는가?
- 블록체인은 그 효능이 한정적이다.
컨소시엄 블록체인의 등장
- 컨소시엄, 프라이빗으로 구현 가능
- 하이퍼레저 시스템은 분산 저장시스템으로 부르는 것이 합당.
- 분산 저장시스템은 효용성이 있을 수 있음
- 새로운 효용을 만들 수 없을 수 있음
- 하이퍼렛저를 왜 이용하는지에 대해 꼼꼼히 따져봐야 함
- 분산저장 시스템은 더 큰 효용성을 둘 수 있을 경우에만 사용하도록 함
지분 증명
- 작업증명을 대체할 수 있는 방식
- 작업증명 방식을 대선하여 더 나은 방식으로 호도되기도 함
- 지분증명과 작업증명은 다른 방식
- 다수결, 코인보유량에 따라 결정방식이 다름
지분증명을 사용하는 블록체인 시스템
- 블록체인 시스템으로 부르기에 미흡함
- 안전성이 담보되지 않았음
- 투명성 문제가 제기되고 있음
- 완전한 무작위성에 의한 투명성을 가진 블록체인과는 거리가 멀다.
- Delegated POS, PPOS 표방한 블록체인은 미리 몇 개의 노드가 검증에 참여 -> 컨소시엄 블록체인과 거의 동일한 형태
블록체인의 진정한 효용
- 안전성, 기록 불변성, 신뢰받는 제 3자 필요없는 거래, 누구나 검증에 참여 가능하다는 특징이 있음
- 블록체인은 완성형으로 사용할 수 있는 기술이 아닌, 많은 실험을 통해 그 효용성을 검증해 나가야 하는 상태의 기술임
프라이빗 블록체인과 컨소시엄 블록체인
- 프라이빗 블록체인 : 기능의 입루를 변형한 블록체인, 특정 노드가 서버 역할 수행, 하나의 서버만 존재
- 컨소시엄 블록체인 : 다수의 노드가 서버 역할 수행
- 프라이빗 블록체인과 컨소시엄 블록체인의 경우 누구나 참여하는 확장성이 결여
과정 종합
1. 블록체인과 일반적 중앙집중 시스템
블록체인과 중앙 서버
비트코인의 탄생
- 유래 : 암호화를 통해 프라이버시 보호를 극대화하고자 했던 -> 사이퍼 펑크
- 탄생 : 절대 익명 거래, 비가역성 거래
비트코인의 기반, 탈중앙화 시스템
- 분산시스템 => 일의 배분을 통한 효율성 추구
- 탈중앙화 시스템 => 일의 반복을 통해 기록 불변성과 안전성을 추구
- 블록체인 사용시 효율성 증대 불가능 -> 중앙화 시스템 보다 일 반복
- 분산시스템 목적 <-> 블록체인 목적
비트코인의 목적
- 누구도 접근 불가능한 절대 익명의 금융거래 환경
- 신뢰받는 제 3장벗이 작동하는 방식 연구 -> 블록체인 인프라 제안
탈중앙화 시스템
- 일의 반복을 통해 안정성을 추가한 시스템
2. 블록체인의 기본 원리
블록체인의 기본 원리
트랜잭션 처리 방식
- 블록체인 정보 -> 브로드 캐스팅 -> 전체 노드 공유
- 중요한 정보에 블록체인에 담으면 안됨 ![[Pasted image 20220326182718.png]]
비트코인의 소유권 통제
- 비대칭 암호화에 의해 철저히 통제
- 브로드캐스팅 통해 모든 공유 -> 기록 사용은 해당 개인키 소유자만 가능
- 공개키와 개인키로 이루어진 암호화로 소유권 통제
기록 조작 불가
- 작성된 기록 조작 시 해시 함수에 의해 발각
개인정보 노출 X
- 블록체인은 익명성에 기반
블록체인을 이루기 위한 기반 기술
해시 함수
- 입력 길이와 상관없이 늘 일정한 길이의 출력을 내는 함수
- 입력의 사소한 변화에도 출력이 완전히 달라짐
- 출력으로 입력 예측 불가
- 비트코인에서 해시 함수는 원래 문서의 변경 여부 탐지에 사용
해시 함수의 블록 해시 숫자 생성
- 현재 해시값 + 이전 해시값 : 모두 연쇄 반응을 일으키도록 설계
- 현재 블록값의 값 변경시 그 이후 생성 블록 값은 연쇄적으로 변경
- 제네시스 블록 값 변경 이후 생성된 블록은 해시값 변경
해시퍼즐
- 작업증명이라는 방식을 비트코인 형식으루 구현
- 비트코인에서의 작업증명 -> 해시퍼즐
- 엄청난 양의 계산을 해야만 해결 가능
- 하나의 해시 퍼즐 풀이에 걸리는 시간 -> 최소 10분이상
- 오래된 기록일수록 불변성이 기하급수적으로 증가
비대칭 암호화 기법
- 대칭형 암호화 기법
- 비대칭형 암호화 기법 -> 암호화, 복호화 할때 서로 다른 키
- 개인키, 공개키 두 개의 키가 쌍을 이룸
- 개인키 소유자만이 잠금 장치를 풀 수 있음
- 실수령자만이 비트코인 사용 가능
- 비트코인은 짝이 되는 상대키로만 잠금 장치를 풀 수 있는 방식 적용
블록 기록 과정
![[Pasted image 20220326183504.png]]
리더 선출
- 비트코인 -> 해시 퍼즐을 가장 먼저 해결한 사람
- 작업증명 방식
- 지분증명 방식 -> 안전성 문제, 블록체인으로 보기 어려움
검증 절차
- 리더로 선출된 노드가 전권을 보유하고 기록 수행
- 신뢰할 수 없으므로 검증 절차가 필요함
- 검증은 시스템에 참여한 모든 노드가 수행
합의
- 모든 노드가 동의하면 새로운 블록 형성
- 정상적인 블록이 아니라고 판명되면 폐기
- 소프트웨어 버전에 따라 블록체인의 기본 원리와 블록체인의 진정한 효용 발생 -> 하드포크, 소프트포크
각 블록은 하나의 새로운 세계
- 세계를 지배할 리더 선출, 선출된 리더는 전권 보유
- 55만 개의 비트코인은 55만 번에 걸쳐 새로운 리더 선출
- 선출된 리더는 중앙 서버의 역할
- 기록하는 사람이 단 한명이기 때문에
- 기록할 리더는 계속 변경
- 비트코인 : 10분마다 반복
- 이더리움 : 15초마다 반복
3. 블록체인의 진정한 효용
블록체인의 진정한 효용 이해
- 현업에서 블록체인의 필요 여부 판단
- 블록체인에서 요구 실현 가능성 판단
현업에서 블록체인이 비효율적인 경우
- 안정성보다 효율성을 추구할 때 -> 블록체인 적절하지 않음
- 리더 선출의 무작위성 보장, 제3자 없이 거래 가능하도록 구축
- 제3자가 필요하거나 되고 싶은 경우
블록체인 도입 시 만족해야 하는 사항
- 안정성, 기록불변성, 신뢰받는 제3자가 필요 없는 거래, 누구나 검증에 참여 가능한 확장성
- 일부만 필요하거나 모두 필요 없다면 블록체인은 적절한 솔루션이 아님
- 일부만 맞고할 경우 처리 여부는 스스로 판단
블록체인이 이루려고 했던 세상
DAO(Decentralized Autonomous Organization)
- 탈중앙화 된 자유 조직
- 자율적으로 실현될 수 있는 환경 추구
- 블록체인이 자율적 환경을 실현해줄 것이라도 믿음
- 이를 통한 경제적 이득 -> 불필요한 수수려 제거
닉 사보의 스마트 계약
- 그 누구의 간섭없이 스마트 컨트랙트에 의해서만 꾸려지는 생태계
- 이 상태를 꿈꾸는 사람들이 만든 용어
블록체인의 비각역성과 불변성
- 블록체인의 기록 -> 바꾸는 것이 어렵게는 가능 -> 작업증명 방식
- 현실 -> 비각역적 불변성은 아직 미구현
- 채굴업자들의 담함
- 블록체인 기록 언제든 변경 가능
더 다오 사건
- 이더리움 진영 사이에 다툼 발생
- 채굴업자와 담합 -> 지금의 이더리움
- 채굴업자와 반기 -> 이더리움 클래시
중재가 필요 없는 거래
- 연구 가치 있음
- 중재가 필요 없다는 자체로 의미를 가지지 못함
- 세상에 중재가 있는 이유는 필요하기 때문
현업에 블록체인 도입 시 고려사항
블록체인으로 어떤 효용을 얻을 것인가
- 기존에 없던 효용 획득 -> 고객은 어떤 시스템이든 만족
- 효용 미획득 -> 고객
그 효용이 기존의 시스템으로는 불가능한가
어떠한 형태로 블록체인을 구현해야 하는가
블록체인을 위한 블록체인 프로젝트 -> 존립가치 없음
효용을 위한 블록체인 프로젝트 -> 앞으로 계속 연구해야 할 영역임
블록체인과 일반적 중앙집중 시스템
- 분산시스템 : 일의 분산을 통해 효율을 올리려는 시스템
- 블록체인 : 탈중앙화 시스템으로서 일의 반복을 통해 기록의 불변성과 안정성을 꾀하려는 기술
블록체인의 기본 원리
- 블록체인은 브로드캐스팅을 통해 모든 정보를 전체 노드에 공유
- 블록 단위로 리더를 선출, 기록을 맡긴 다음, 그 기록이 정확한지 모든 노드가 검증
블록체인의 진정한 효용
- 블록체인은 효용성을 버리고 기록의 불변성과 안정성을 꾀함과 동시에, 신뢰받는 제 3자 없이도 거래가 가능한 P2P 시스템을 구현하고자 하는 것임
- 따라서 블록체인을 고려할 때는 이러한 효용이 진정으로 필요한 것인지 면밀히 검토하에 체크리스트 검토후 진행