[모두의 연구소] Introducing Ethereum and Solidity 7장 요약본
안녕하세요, 모두의 연구소 블록체인 연구실입니다.
11월 16일 7회차 스터디에서 진행한 Introducing Ethereum and Solidity의 7장 요약본입니다.
7장 암호경제학
암호경제학
- 암호경제학의 정의: 안전한 컴퓨터 네트워크를 통해 이루어지는 경제 활동에 대한 연구
- 게임 이론: 경제, 국방 계획, 심리학, 정치학, 생물학, 심지어 도박(!) 등의 분야에서 널리 쓰이며, 특정 시스템 내부에서 작동하는 인간과 컴퓨터의 행동을 연구, 분석하고 예측하는 방법론
- 이더리움에 포함된 설계적 요소, 그 중에서도 경제적 인센티브와 불이익에 대한 시스템에 연관됨
- 기술적 내용은 이더리움 백서/황서 참조
암호학
- 암호의 역사는 수천년(메시지를 아무나 못 보게 변조)
- 학문으로써는 2차대전 이후 10년에 걸쳐 정착 (이니그마 머신)
- 아날로그 -> 디지털로 이동하며 발전
- 암호경제학은 적대적인 환경에서 네트워크 프로토콜을 통해 이루어지는 경제 활동에 대한 연구로 발전
- 응용 영역: 온라인 신탁 / 온라인 평판 / 암호화를 통한 보안 통신 / 탈중앙화 애플리케이션 / 웹 서비스로서의 (일종의) 통화 또는 자산 / P2P 금융 계약 (스마트 계약) / 네트워크 데이터베이스 합의 프로토콜 / 스팸 방지 및 시빌 공격(Sybil attack) 방어 알고리즘
- 시빌 공격(Sybil): 공격자가 많은 수의 익명 ID를 가지고 P2P 네트워크에 공격을 퍼부어 의도적인 불균형을 만들어내고 영향력을 행사하는 방식 (51프로 공격)
게임의 규칙
- 암호경제학 전제들의 경험적 근거
중앙화 주의: 두 세력이 25%씩이면?
이성과 비이성: 대부분의 사람은 이성적이지만 …
가입자와 이탈자: 트래픽과 사용률은 요동침. 일부는 활동 유지.
검열 불가: 스마트 계약의 장점
노드는 자유롭다: 노드 간의 커뮤니케이션은 쉽고 빠름 - 대부분 비트코인에서 쌓은 경험임
암호경제학의 유용성
- 암호경제학은 갖가지 규모의 퍼블릭 네트워크와 공격자 간의 방어 계층을 구축하는 공학적 방법을 제공
- 퍼블릭 체인은 공개되어 있기 때문에, 높은 컴퓨팅 성능을 가진 공격자에 대한 방어력이 필요. 따라서 노드의 수가 많고 지리적으로 많이 분산되어 있으며, 서로 연결되지 않은 소유자들이 관리하는 네트워크가 더 보안성이 높음.
- 채굴 풀은 중앙화에 기여하므로, 해시파워가 25%를 초과하는 풀은 네트워크의 위협 요소. 풀 2개면 포크 가능성 높음.
- 이더리움 프로토콜의 설계자는 ASIC으로 실행할 수 없는 맞춤형 알고리즘인 Ethash를 사용하고 난이도가 빠르게 상승하도록 네트워크를 설계함으로써, 채굴의 전문화와 중앙화를 통해 얻을 수 있는 인센티브 요소를 상당 부분 제거.
해시와 암호화
- 블록체인의 3요소: 암호화 해싱 / 비대칭 암호화 / 분산 P2P 컴퓨팅
- 암호화: 복호화 가능. 이더 비트 모두 ECDSA 타원 알고리즘 사용. 이더는 추후 변동가능
- 암호화의 약점: 연산량이 크고 관리가 어려움.
- 해시: 복호화 불가. MD5, SHA1, SHA2 등 있지만 이더와 비트는 SHA256 사용.
- 해시의 용도: 와이파이!
블록 속도의 중요성
- 2013년의 연구에 따르면, 전체 노드의 95%에 대해 12.6초 이내에 접근이 가능. 이 수치는 블록 크기에 비례하므로, ‘빠른’ 블록 시간이 가능하다면 보다 반응성이 좋은 네트워크를 이용할 수 있는 셈
- 단기적으로 보았을 때 빠른 블록은 안전성이 떨어짐.
- 하지만, 빠른 블록 시간은 트랜잭션의 확인 시간을 단축시켜 정보의 불균형을 해소. 따라서 처음에 노드가 쉽게 바보짓을 한다 해도, 몇 세대 내에 ‘진정한’ 체인 쪽으로 강하게 끌어당겨지게 됨. 빠른 블록이 느린 블록보다 덜 안전하다는 생각은 잘못된 것.
- 블록 속도가 다양한 네트워크 특성에 미치는 영향: https://blog.ethereum.org/2015/09/14/on-slow-and-fast-block-times
이더 발행 계획
- 이더는 채굴자에게 보상을 지불하기 위해 네트워크에 의해 생성.
- 그러나 일부 이더는 2014년 중반에 네트워크의 자금 조달을 위해 미리 발행. 당시 1비트코인 당 1,000 ~ 2,000ETH의 가격으로 약 6천만 ETH가 판매. 그 중 약 10%는 이더리움 재단에 할당되었고, 또 다른 10%는 프리세일 당시에 보유분으로 유지.
- 프리세일 이후로는, 이더리움 시스템이 채굴자에게 채굴 보상을 지급하는 과정에서 연간 1,560만개의 이더가 발행. 이더의 발행은 중단되지 않지만 매년 발행되는 양이 전체 풀에서 차지하는 비율은 점점 감소.
- 2025년까지 인플레이션 구조, 이후로는 디플레이션 구조.
공격자 시나리오
- 무한 루프가 포함된 스마트 계약을 공격자가 채굴자에게 보내면, 결국 가스가 고갈. 그러나 각 트랜잭션은 여전히 유효. 프로그램이 수행한 각 계산 단계마다 공격자가 수수료를 지불하고 채굴자가 이를 수령하기 때문.
- 공격자가 자신의 코드에 대한 채굴을 유지하기 위해 적절한 가스 요금을 지불하려고 하더라도, 채굴자는 STARTGAS 값이 지나치게 높다는 것을 보고 계산량이 너무 크다는 것을 미리 알게 됨.
- 공격자가 가스 지불량을 조절하는 속임수를 쓴다고 가정. 공격자는 자금의 인출이 이루어지지만, 계정의 잔액이 줄어들지는 않는 정도의 수준으로 가서를 설정해서 트랜잭션을 배포. 이는 공중에서 돈을 벌어들인다는 점에서 이중 지출 공격과 유사. 그러나 이더리움 시스템에서는 트랜잭션 중간에 가스가 모자라면 해당 트랜잭션이 완전히 롤백.
PPT 링크는 아래와 같습니다.
https://docs.google.com/presentation/d/1S37gnVAzYlboZ3gMBSUCe5QXahGLIuCm9Md7a49CUC0/edit?usp=sharing
감사합니다.
keep voting please