-
라이스톤
태평양 한가운데 있는 미크로네시아의 얍(Yap) 섬에는 라이스톤(Rai stones)이라는 가운데가 뚫린 거대한 돌이 전통적 화폐로 사용된다.
이 돌들은 가로길이가 약 3미터에 이르고 픽업트럭정도의 무게가 나간다.
얍 마을에는 수십 개의 라이스톤이 흩어져 있다.
사람들은 이 돌들을 갖고 다니면서 쓸 수 없기 때문에 얍 섬의 사람들은 모두가 각 돌의 주인이 누구인지를 기억하며,
지난 거래에 대한 기록을 머릿속에 남긴다.
예를 들어 족장의 딸이 목수에게 배 한 척을 사고자 한다면, 그녀는 자신이 소유한 라이스톤 한 개가 목수의 것이 되었다고 마을 사람들에게 알린다. 그러면 마을 사람들은 족장의 딸이 목수에게 라이스톤 한 개를 주었다고 서로 간에 말을 퍼뜨린다.
다음에 목수가 다른 사람에게 그 돌을 주고 싶어 할 때 마을 사람들은 이를 허락할 것이다.
집 반대편 마을에 있는 돌이라 해도 소유가 가능하고, 라이스톤을 실은 배가 바다에 가라앉은 적이 있는데, 마을 사람들은 그 돌이 해저 어딘가에 있을 것으로 생각하고 계속해서 서로에게 그 돌로 값을 치렀다.
라이스톤 시스템은 무형인 동시에 중개인이 없다.
사토시가 비트코인을 개발할 때 얍 섬에 대해 알고 있었는지는 모르겠지만, 그가 꿰뚫어 본 것은 라이스톤과 매우 비슷했다.
블록과 체인
블록체인은 블록을 선형으로 연결한다. Txn은 트랜잭션(transaction:거래)의 줄임말
해싱(hashing)
블록은 해시를 이용하여 서로 연결되며, 각 해시는 이전 블록의 해시로부터 계산된다.
가장 많이 사용되는 알고리즘은 MD5, SHA-256
논스(nonce)
해시 함수는 세 개의 입력값을 사용해 블록에 대한 해시를 생성
- 마지막 블록 해시값
- 거래 기록
- 논스
문제는 논스값을 집어넣을 때마다 해시값이 달라지고, 해시가 올바른 개수의 0으로 시작하는 경우에만 체인에 블록을 추가할 수 있음
따라서 입력한 논스값이 조건에 맞는 해시값으로 이어지지 않으면 사용자는 계속 다시 시도해야 한다. = 채굴
출력값으로 입력값을 찾기 위해 해시 함수를 크래킹 할 수 있는 유일한 방법은 가능한 모든 출력값을 하나하나 확인하는 것
이 시스템이 낭비적인 것으로 보이지만, 공격자들을 힘들게 하려고 고안된 것
채굴의 가장 어려운 부분은 적합한 논스값을 찾는 것
합법적 체인보다 더 긴 사기 체인을 만들려는 악의적인 채굴자들이 더 빠르게 블록을 채굴하기 위해서는 전 세계 해시 파워의 50% 이상을 통제해야 가능하다.
공격자가 51%의 해시 파워를 통제할 수 없다면, 블록체인을 조작할 가능성은 사라진다.
728x90'DEV' 카테고리의 다른 글
simple RAG pipeline (2) 2024.11.08 LLM 기반 챗봇 설계, 구조 변화 (1) 2024.11.07 미술과 객체지향 프로그래밍의 추상 (0) 2024.01.27 추상 클래스, 인터페이스, 상속, 합성, 프록시/데코레이터 패턴 그리고 Spring AOP (0) 2024.01.20 심리적 안전과 지식공유, 강백호와 중경삼림 (0) 2024.01.12