반응형

선택자

 

1. 클래스 선택자

 

2. id 선택자


선택자

 : 선택을 해주는 요소 , 이를 특정요소들을 선택하여 스타일을 적용할 수 있게 한다. 

클래스 선택자 

: 클래스에 속성 값을 가진 html 요소를 찾아 선택한다. 클래스 선택자는 클래스에 해당하는 요소앞에 .을 붙여준다.

.items {
  color: blueviolet;
}

 

id 선택자

: id에 속성 값을 가진 html 요소를 찾아 선택한다. id 선택자는 id에 해당하는 요소앞에 #을 붙여준다.

 

#root {
  background-color: aqua;
  color: #666;
}
반응형

'블록체인 개발' 카테고리의 다른 글

이미지 관련 태그 & form 형식  (0) 2023.06.14
웹 브라우저란  (2) 2023.06.13
개발이란 ?  (0) 2023.06.12
블록체인 개발기초 - html 기초  (1) 2023.06.07
WEB 개발 입문  (0) 2023.06.02
반응형

1. 블록체인 - 합의 알고리즘 

합의 알고리즘 : 다수의 참여자가 모두 동일한 결론에 이르도록 만든 알고리즘

제안자 : 모든 노드들에게 장부 변경에 대한 내용 제안

검증자 : 각 참여자들이 변경된 내용에 대해 검증

 

Proof of Work (작업증명) : 채굴(BTC,ETH)

채굴을 통해서 가장 먼저 블록을 만든 노드를 제안자로 채택

2. 블록체인 - 자가 제한 시스템

- 블록생성간격을 스스로 제한하는 시스템

- 전체 해시 파워가 변하면 난이도 조절 - 해시파워 X 난이도

- 타임스탬프 활용

- 비트코인의 경우 2016개 기준으로 2주(10분)에 대해 난이도 조절

3. 인센티브 - 보상시스템

- 보상을 통해 많은 노드들이 참여

- 채굴로 인한 전력 사용에 대한 보상, 네트워크 기여도에 대한 보상

- 수수료 보상

 > 트랜잭션을 일으킬 때 수수료 받고, 수수료 모아 채굴자 전달

 > 수수료가 높은 트랜잭션 일수록 블록에 우선적으로 포함 (용량의 한계)

 > 수수료 경쟁이 생김

4. FORK

1) 포크 

 - 체인에 여러 블록이  동시에 여러개가 연결을 시도하여 생기는 형태

 

2) 하드포크 & 소프트포크

 -블록체인의 소스코드를 포크하여 업그레이드 하기위해 사용되는 포크

 - 하위호환성과 관련이 있음.

 

3) 비동기 네트워크 와 POW

 > 비동기적 네트워크 상태와 POW를 통한 합의로 인해 채굴 경쟁 중 거의 동시에 블록을 생성 및 전파

 > 결국 두개의 블록을 전파받는 노드가 생김

 > 둘중에 어떤 블록을 선택해야 하는가

 

4) Longest Chain rule 

: 더 긴 (블록이 더 많은) 체인을 선택 

 

5) Heaviest Chain rule

: 더 무거운 체인(난이도의 합이 더 큰) 선택

 

6) 코어 개발

 6-1. 논문

 6-2. 하이퍼레저 패브릭 

 6-3. 포크 - 비트, 이더

 6-4. cosmos sdk - tedermint 합의 알고리즘

 

 

 

 

 

 

반응형
반응형

 covid-19 발생 이후 가상 서비스들이 증가함에 따라 NFT에 대한 관심들이 생겼다. 메타버스와 NFT라는 용어들이 생겨 남에 따라 새로운 it 스타트업 기업들이 생겼다. 그에 따라 NFT를 이용한 기업들과 이를 이용한 비즈니스들이 생겼다. 단순히 가상화폐 수단이 아닌 블록체인의 기술에 관심이 생긴 사람이 많아지고 있기 때문에 개발을 위한 간단한 블록체인 용어들을 알아보도록 하자. 

 NFT란 간단히 말하여 블록체인을 활용한 고유자산이라고 볼 수 있다. 특히 요즘에는 게임(P2E)/메타버스/음악/미술 각종 K-문화 산업에 블록체인과 접목하여 자연스러운 산업이 되어가고 있다. 자세한 NFT내용과 NFT를 만들어보고 싶다면 아래 링크로 들어가면 된다. 시간을 아끼기 위해 간단한 용어들로 개발에 도움되는 핵심 개념들을 정리 해보고자 한다. 

 

https://r-blockchain.tistory.com/18?category=956878 

 

NFT 만들기(민팅하기)

요즘 핫한 NFT를 민팅하는 방법을 알아 보겠다. 민팅이란 동전과 같은 법정화폐를 주조할떄의 '주조'를 뜻하는 영어단어이다. NFT란 디지털화폐로 발행, 주조, 민팅이라는 단어가 적용된다. 쉽게

r-blockchain.tistory.com

 

블록체인이란? 

 누구나 볼 수 있는 공공 거래장부

 

블록체인의 기본원리 

같은 내용을 모든 노드에 기록하고 한블록에 많은 데이터들을 기록하고 많이 기록된다면 더 기록할 수 없기 때문에 체인형태로 길게 연결하여 만들 것이 블록체인이다. 체인은 헤더와 바디로 구분된다. 헤더는 다른 체인과 연결하는 역할을 하고 바디는 거래장부를 적어 논다. 쉽게 말해 여러 가지의 거래 장부들을 체인형태로 연결한 것이 블록체인이라고 할 수 있다. 블록체인은 각각의 노드들이 모두 똑같은 정보를 가지고 있고, 이를 바꾸기 위해서는 50% 이상의 동의를 얻어야 하므로 사실상 해킹이 불가능하다고 할 수 있다. 아래에 두 링크에서는 블록체인의 세부구조와 50% 이상 동의 해킹 사례를 볼 수 있다. 

 

https://r-blockchain.tistory.com/38?category=957002 

 

블록체인 블록의 구조

블록체인이 체인의 연속이고, 블록들이 무수히 많이 연결되었다는 것은 많은 블록체인에 호기심 많은 사람들은 다들 알 것이다. 하지만 블록체인의 블록 안에 실제로 어떠한 데이터들이 들어

r-blockchain.tistory.com

https://r-blockchain.tistory.com/35?category=961376 

 

7장. 블록체인과 미신

블록체인에는 많은 잘못된 지식들이 많이 있다. 이 책의 7장에서는 블록체인에 미신과 잘못된 이야기에 대하여 설명하겠다. 7.1 목적과 수단 인류는 인위적으로 금을 만들기 위해 수천 년 동안

r-blockchain.tistory.com

 

합의 알고리즘

채굴을 통해 블록 생성시 네트워크에 기여하여 보상을 받을 수 있다. 

POW: Proof of work는 무언가에 대한 일을 하고 그 일이 제대로 성공했는지에 대한 증명을 하는 것.

>> 쉽게 말해 일을 많이 한 사람에게 보상하는 것이라고 볼 수 있다.

* POW어려운 문제 해결을 통해 첫 채굴자가 보상을 가져가기 때문에 첫 채굴자 이외의 채굴자는 전기나 사용되는 비용 낭비가 심하다. 따라서 등장한 방식이 POW이다.

POS: Proof of stake는 내가 많이 들고 있음을 증명하므로 돈을 많이 들고 있는 사람이 찾을 확률이 더 높은 지분 증명 방식이다. 

 

공개키와 비밀키 

public key: 외부에 공개된 키를 의미. 주소라고 생각하면 된다 지갑 주소 알면 입금 가능

private key: 나만 접근할 수 있는 권한

 

hash function: 블록체인 위변조가 어렵다

hash를 보고 잘못되었는지 알 수 있다. 위변조를 쉽게 분간하고 바로 지워고 대체 가능하게 한 것이 해시이다. 해시는 값이 길고 다르기 때문에 위변조가 불가하다. 

 

클레이튼이란? 

카카오 계열사 그라운드 X가 개발한 블록체인 플랫폼이다.

클레이튼의 목표는 블록체인 대중화 웹이나 모바일 애플리케이션과 동일한 수준의 사용자 경험을 제공하여 사용자가 블록체인인지 인식하지 못하도록 하는 것이다. 쉽게 말해 블록체인 시스템을 어플리케이션과 웹상에서 동일하게 사용할 수 있는 것이다. 

 

클레이튼 장점

 

TPS가 높다는 장점이 있다. 

TPS: Transcaction Per Second의 약자로 1초당 처리할 수 있는 트랜잭션의 규모로 1초에 얼마나 많은 거래가 처리되어서 블록에 저장되는지 보여주는 단위이다.

비트코인 이더리움 클레인튼
7tps 20tps 4000tps

 

Finality : 완결성, 블록에 담긴 거래가 바뀔 수 없다는 걸 보증하는 시간

 

저비용: 이더리움의 경우 트랜잭션 발생 시 가스비가 많이 드는데 클레이튼의 경우 100분의 1로 발생한다.

 

합의 메커니즘: 알고리즘

비트코인 이더리움 클레이튼
pos pow ibft(이스탄불 비잔티움 결함허용)

 

컨센서스

: 악의적인 상황이 발생하더라도 네트워크를 올바른 방향으로 이끌고자 하는 다수의 노드들이 상호 검증을 거쳐 올바른 블록 생성을 이끌어내는 프로세스와 알고리즘

소수의 컨센서스 노드가 빠르게 검증하고 블록을 생성하면 주변 프락시 노드들에서 그 결과를 전달하여 엔드포인트 노드들에서 다수가 감시하는 시스템이라고 보면 된다. 합의의 핵심인 컨센서스 노드는 각 산업을 대표하는 32개의 글로벌 기업으로 구성되어 더욱 안정적으로 운영된다.

 

클레이튼 용어

 

kas: 클레이튼 api 서비스 , 블록체인의 복잡한 과정을 api 호출 가능하게 하여 쉽게 api 호출로 서비스 론칭 가능

 

klip: klip api는 블록체인은 지갑을 만들고 사용해야 하는데 지갑을 만들지 않고 카카오톡에서 사용 가능하다.

 

Bapp: blockchain application/클레이튼 기반의 애플리케이션

반응형
반응형

블록체인이 체인의 연속이고, 블록들이 무수히 많이 연결되었다는 것은 많은 블록체인에 호기심 많은 사람들은 다들 알 것이다. 하지만 블록체인의 블록 안에 실제로 어떠한 데이터들이 들어 있는지 모르는 사람들이 많다. 이러한 블록체인에 블록 안에는 실제로 어떠한 데이터들이 어떻게 들어 있는지 보자.

 

블록의 구조 

 

1. 현재 블록 해시

 

2. 블록 Header

 2-1) Version: 비트코인 소프트웨어 버전 정보를 나타냄

 2-2) Previous block hahsh: 이전 블록의 해시 값을 펴시, 이 값은 이전 해시 값을 가리키는 해시 포인터의 역할을 하고,   블록들은 체인으로 연결됨, 블록 안에 있는 트랜잭션

 2-3) Merkle hash root: 머클 루트는 머클 트리의 루트 노드 값이다. 머클 트리는 블록에 있는 모든 트랜잭션의 해시 값을 이진트리로 요약할 것이다. 머클트리는 트랜잭션 데이터를 보호할 목적으로 사용된다.

 2-4) Timestamp: 타임스탬프는 이 블록이 생성된 날짜와 시각이다. 시간은 UTC를 기준으로 표시한다. 타임스태프는 유   닉스 시간으로 19701100:00:00시부터 현재까지 경과한 시간을 초로 표시한다.  

 2-5,6) Bits & Nonce: 이 정보는 채굴의 난이도와 일종의 해답에 관련된 것이다. 임의의 논스값을 헤더에 넣은 상태에서   헤더의 해시를 계산한 경우, 만약 이 해시값이 비츠가 표현하고 있는 어떤 값보다 작으면 채굴에 성공한 것이다. 즉 비   츠는 채굴의 성공 여부를 판단하는 정보이고 논스는 해답에 해당한다.

 2-5) Bits: 채굴의 성공여부

 2-6) Nonce: 해답

 

 3. 거래 개수

 

 4. 블록 body

 4-1) 트랜잭션 카운트: 블록 바디에 기록된 트랜잭션의 개수, 이 트랜잭션들은 채굴자가 선택해서 이 블록에 포함시킨   것이다. 채굴자는 수수료가 높은 트랜잭션을 우선적으로 선택한다. 트랜잭션을 많이 선택할수록 보상은 커지지만 채굴   시간이 많이 소요되므로 채굴자들은 경쟁우위와 보상의 크기를 절충해서 트랜잭션의 최적 개수를 결정한다.

 4-2) 트랜잭션: 비트코인을 주고받는 거래

 

5. 기타 정보

 

**비트코인 코어에서 블록 확인**

 

 

{

  "hash": "hash"(문자열) 블록 해시(제공된 것과 동일)

  "confirmations": n, (숫자) 확인 횟수 또는 블록이 메인 체인에 없는 경우 -1

  "크기": n, (숫자) 블록 크기

  "strippedsize": n, (숫자) 감시 데이터를 제외한 블록 크기

  "weight": n(숫자) BIP 141에 정의된 블록 가중치

  "height": n, (숫자) 블록 높이 또는 인덱스

  "version": n, (숫자) 블록 버전

  "versionHex": "00000000", (문자열) 16진수 형식의 블록 버전

  "merkleroot": "xxxx", (문자열) 머클 루트

  "tx": [(문자열 배열) 트랜잭션 ID

     "transactionid"(문자열) 트랜잭션 ID

     ,...

  ],

  "time": ttt, (숫자) epoch(1970년 1월 1일 GMT) 이후의 블록 시간(초)

  "mediantime": ttt, (숫자) Epoch(1970년 1월 1일 GMT) 이후의 중앙 블록 시간(초)

  "nonce": n, (숫자) nonce

  "bits": "1 d00 ffff", (문자열) 비트

  "difficulty": x.xxx, (숫자) 난이도

  "chainwork": "xxxx", (문자열) 이 블록까지 체인을 생성하는 데 필요한 예상 해시 수(16진수)

  "nTx": n, (숫자) 블록의 트랜잭션 수입니다.

  "previousblockhash": "hash", (문자열) 이전 블록의 해시

  "nextblockhash": "hash"(문자열) 다음 블록의 해시

}

반응형

'블록체인' 카테고리의 다른 글

토큰을 만들어보자!  (0) 2023.11.24
블록체인 MultiCall  (0) 2023.11.21
블록체인 용어정리  (0) 2021.07.27
P2P 네트워크 와 블록체인 네트워크 설계  (0) 2021.07.19
데이터베이스와 분산원장?  (0) 2021.07.08
반응형

만약 상장심사나 관련 규정 따위는 존재하지도 않고 사익 집단이 임의로 선정한 증표를 365일, 24시간 중개하는 시장, 그리고 전문성을 담보할 수 없는 중개소가 종목을 고르고 이를 거래한다고 가정해보겠습니다. 각 종목에 대한 정보라고는 중개소에 있는 몇 줄 소개글 이외에는 거의 없는 상태인데 바로 암호화폐 중개소 이야기입니다. 수십 개의 코인이 등록 및 취소를 거듭하고 코인의 거래가 중지되는 데 따른 피해는 모두 구매자의 몫입니다. 이번 장에서는 암호화폐 중개소와 함께 암호화폐를 둘러싼 시세조종 등 각종 금융 일탈, 가상자산이라는 새로운 법률용어와 암호화폐가 가진 익명성으로 인한 자금세탁의 위험에 대해서 알아보겠습니다.

 

8.1 암호화폐 거래소

암호화폐 거래소는 암호화폐 거래를 알선하고 그 대가로 수수료를 취하는 것을 업으로 하는 자들을 말합니다. 암호화폐 초기에는 주로 메신저나 게시판을 이용한 직거래가 유일한 거래 방법이었습니다. 대개 구매자가 법화 등을 먼저 송금하면, 판매자는 구매자가 지정한 비트코인 주소로 암호화폐를 이전하는 방식이었습니다. 2010년 3월 최초의 비트코인 중개 사이트로 알려진

BitCoinMarket.com이 출범했고, 이후 거래소가 우후죽순처럼 등장했습니다. 2020년 8월 16일 CoinMarketCap 기준으로는 무려 26,349개의 거래소가 존재하고, 등록되지 않은 중소업체까지 포함하면 최소 수십 배 이상 될 것으로 추정되며 정확한 수는 알 수 없습니다. 특히 국내의 경우 이들은 통신판매업자로 분류돼 정확히 파악할 방법도 없지만 최소 100개 이상으로 알려져 있으며, 단순 구매대행업체까지 포함하면 훨씬 더 많습니다. 거래소에서 취급할 코인의 선택은 거래소가 임의로 선정하기 때문에 대형 중개소가 코인을 선정할 때 그 선정에 있어 코인 개발자와 거래소 사이에 검은돈이 흘러들어 간다는 의혹이 계속 제기되고 있습니다.

 

8.1.1 거래소의 숫자 놀음 – 오프체인 거래

판매자와 구매자를 단순 알선하는 거래소는 돈이 안 되기 때문에 존재하지 않습니다. 앞서 설명한 대로 암호화폐 이전에는 수십 분에서 수십 시간이 소요되기 때문에 매번 실제로 이전하면 거래의 연속성이 깨지는 것은 물론 채굴업자 등에 별도로 수수료도 지불해야 합니다. 따라서 중개소들은 예외 없이 고객의 법화를 수탁한 다음 마치 암호화폐의 거래가 실제로 일어난 것처럼 조작해 보여줍니다. 거래 내역은 모두 자신들의 중앙화 서버의 장부에만 기록될 뿐인데 이를 흔히 오프체인 거래라고 합니다. 즉 오프체인 거래란 블록체인상에서의 실제 트랜잭션은 일어나지 않고 블록체인 외부에서 마치 트랜잭션이 일어나 이전이 완료된 것처럼 꾸미기만 한 것을 지칭하는 용어입니다. 반대로 실제로 블록체인에서 트랜잭션이 일어나는 경우는 온체인이라고 합니다.

고객이 구매한 암호화폐는 별도의 주소를 지정하고 인출을 요청해야 비로소 중개소들은 자신들이 일괄적으로 관리하는 암호화폐 중 일부를 온체인 거래를 통해 실제로 이전해줍니다.

 

8.1.1.1 기형적 숫자 놀음의 끝판왕 – 비트코인 골드

비트코인 골드는 2017년 10월 24일 비트코인의 491,407번 블록으로부터 하드 포크를 통해 파생된 알트코인입니다. 그런데 비트코인 골드의 거래소별 시세를 들여다보면 상당히 이상합니다. 통상 중개소 별로 시세 차이가 나는 것은 자연스러운 현상이지만 비트코인 골드의 경우 그 차이가 사뭇 다릅니다. 통상 중개소별로 시세 차이가 나는 것은 자연스러운 현상이지만 비트코인 골드의 경우 2020년 8월 29일 기준으로 빗썸의 비트코인 골드는 11610원에 거래되고 그 등락폭은 0%인데 반해 코인원의 비트코인 골드는 무려 16510원에 거래되고 그 등락폭은 -11.71%를 기록하고 있습니다. 둘의 시세차가 무려 42%에 육박하고 있는 데다 같은 날 거래 등락폭도 확연히 다릅니다. 이런 차이가 나는 이유는 비트코인 골드가 그 기술적 결함으로 인해 거래소 밖으로의 이전이 불가능하기 때문입니다. 비트코인 골드는 거래소별로 완전히 고립돼 외부로 나갈 수가 없으므로 아예 다른 코인처럼 시세가 형성됐기 때문입니다.

  

8.1.2.1 마켓 메이커와 펌프 앤 덤프

텔레그램에 존재하는 펌프 앤 덤프채팅 그룹이 각종 허위 소식 등을 퍼뜨리며 동시에 가격 축을 상방향으로 흔든 후 희생양이 몰려들면 시세 정점에서 한꺼번에 털어냅니다. 펌프 앤 덤프는 이렇게 시세조종을 하는 그들의 행동을 묘사한 것입니다. 암호화폐의 시세조종이 용이한 이유는 익명성과 거래소의 불투명성에서 기인합니다. 신원을 특정할 수 없는 암호화폐 주소로만 거래가 이루어지는 점과 규제와 관리 감독의 사각지대에 있는 거래소 내에서 허수 거래, 통정거래, 자기 거래 등을 통해 시세를 조종하더라도 무방비 상태이며, 중개소가 직접 시세조종을 한 사례도 적지 않게 나타나고 있습니다.

 

8.2 매매 회전율

 

거래소가 365일 24시간 운영되며 규정의 사각지대에 있는 것은 거래자들이 시세조종에 무방비 상태가 되는 또 다른 원인입니다. 다음 표를 살펴보면 자산 규모 상위 20위권에 있는 코인들의 평균 자산 대비 하루 거래 비중은 무려 92%로 주식시장의 307배에 이릅니다. 이는 전체 자산의 92%를 하루 만에 사고팔고를 반복한다는 의미로, 심각한 투기 현상을 뜻합니다. 거래소들이 부과하는 거래 수수료는 대략 거래 금액의 0.1%~0.2% 수준으로 Home Trading System의 최소 10배 이상입니다.

위 표에 따른 코인의 총자산 대비 하루 거래 비중이 약 92%이므로 365일 동안 거래하면 자기 총자산의 약 33.6%~67.2%를 그저 수수료로 지불한다는 의미가 됩니다.

 

8.3 거래소의 해킹

 

많은 사람들이 어떻게 블록체인 해킹이 가능한지 의문을 갖는데, 사실 해킹당한 것은 블록체인이 아니라 이의 매매를 알선한 거래소의 중앙화 시스템입니다.

위 그림은 사용자들과 거래소의 관계를 보여줍니다. A와 B가 암호화폐를 구매하면, 거래소들은 실제 거래가 일어난 것처럼 중앙화 서버의 장부에 숫자를 조작해 표시해주므로 A, B는 자신이 구매한 암호화폐가 그들 명의로 블록체인에 보관된 것처럼 착각하지만, 앞서 설명드린 대로 블록체인상의 거래는 일어나지도 않습니다. 모든 암호화폐는 거래소 명의의 주소로 일괄 보관돼 있습니다.

각 거래소의 보안 수준은 천차만별이지만, 적절한 관리 감독은 이뤄지지 않고 있습니다. 그림 중 Z를 해커라고 가정하면 다음과 같은 과정을 거쳐 A의 암호화폐를 절취할 수 있습니다.

먼저 1. Z는 거래소를 해킹한 다음, 자신의 신원이 A인 것처럼 속입니다.

2. Z는 해킹한 거래소에 자신이 지정한 가상자산 주소로 A가 위탁한 모든 암호화폐를 송금할 것을 요청합니다.

3. 해킹을 당해 Z를 A로 오인하고 있는 거래소는 A가 위탁한 모든 암호화폐를 거래소 명의의 주소에서 Z가 지정한 주소로 이전합니다.

 

 

 

 

8.4 비트코인과 자금세탁

범죄 수익을 은닉하는 것은 범죄자들의 해묵은 과제입니다. 구속되더라도 범죄로 획득한 수익만 적절히 감춰 두면 형을 마친 후 편하게 살 수 있다고 생각하기 때문입니다. 2011년에는 인터넷 도박으로 부당 이득을 취한 범인이 110억 원에 가까운 돈을 매형의 마늘 밭에 5만 원 권으로 숨겨 뒀다가 적발된 사건이 있었습니다. 당시 비트코인의 존재를 알았다면 범인은 마늘 밭을 파내는 따위의 일은 하지 않았을 것입니다.

비트코인은 검은돈을 숨겨 두기에는 완벽한 장소인데 범죄자들이 수익을 비트코인에 몽땅 넣어 두면 회수할 수 있는 방법이 없기 때문입니다. 비트코인에 묻어 둔 범죄 수익은 범인 스스로 자기 지갑의 비밀번호를 털어놓기 전까지는 회수할 수 없고 얼마 들어있는지도 알 수 없습니다. 범죄자들은 5만 원권을 땅에 묻은 채 경찰의 수색을 피하는 것보다 자산의 안정성은 다소 떨어지더라도 외부로부터 완벽히 보호되는 비트코인에 범죄 수익을 묻어두는 것이 더 나을 수도 있습니다.

 

8.4.1 비트코인과 세금 회피

비트코인은 각종 세금을 피할 수 있는 완벽한 여건을 갖추고 있습니다. 비트코인 거래는 비트코인 주소라는 암호화 해시 값에 기반한 체제를 사용하므로 거래 당사자가 누구인지 알 수 없는 데다가 비트코인 주소는 매번 바꿀 수도 있고 차익에 대한 세금도 없습니다. 관련 법규 자체가 존재하지 않기 때문입니다. 부자 아빠가 백억 원어치 비트코인을 사 자식에게 전해주고 자식이 그것을 시장에 내다 팔면 증여세 한 푼 내지 않고 증여한 효과가 발생합니다. 차명계좌식으로 비트코인을 분산해서 구매하면 현실적으로 추적할 수 있는 방법도 여의치 않습니다.

 

8.5 다크코인 – 자금세탁의 진화

비트코인은 추적이 불가능한 절대 익명을 추구해 구현됐지만, 기술적 관점에서 보면 거래 당사자의 신원을 특정할 수 있게 몇 가지 단서를 얻을 수 있는 허점이 있습니다.

1.     첫째로 비트코인은 거래 당사자들의 비트코인 주소가 누구나 열람할 수 있도록 블록에 그대로 공개 저장돼 있기 때문에, 이 비트코인 주소가 누구 것인지만 알아내면 신원을 밝힐 수 있습니다.

 

2.     두 번째로 비트코인의 네트워크 트래픽은 암호화되지 않은 상태로 전송되므로, 특정 발신지를 지속적으로 모니터링하면 IP 추적을 통해 비트코인 주소의 소유자를 알아낼 수 있는 가능성도 존재합니다. 이 때문에 최근에 bitcoin에서는 IP 추적을 막기 위한 Tor를 통해 별도의 클라이언트도 배부하고 있습니다.

 

따라서 중개소를 통한 거래를 포함해 특정 비트코인 주소가 누구의 것인지만 알 수 있다면 거래의 흐름을 추적하는 것이 이론적으로는 가능합니다.

한편 비트코인 이후에 나온 일부 암호화폐들은 추가적인 자금세탁 장치를 내장시켜 절대 익명성을 더욱 보강하는 시도를 했는데, 그 예로 모네로는 소위 링 시그니처를 통해 코인 주소의 소유자를 특정하기 힘들게 만들었습니다. 모네로는 당사자의 암호화폐 주소와 함께 의도적으로 다수의 제삼자를 한데 섞어 그중 누가 실제 거래 당사자인지 모르게 하는 모호성을 개입시켰습니다.

ZCash는 비트코인에 프라이버시를 보호하는 계층을 더 추가해 만든 코인입니다. 이는 제로-지식 증명을 이용해 발신지를 드러내지 않는 전송을 구현하여 소유자의 특정을 방해합니다. 제로-지식 증명을 설명하자면 비밀번호를 누르지 않고도 방문을 열 수 있게 한다는 것인데, 비밀번호를 직접 말하는 대신 비밀번호를 ‘알고 있다는 사실을 증명’하는 것으로 대체함으로써 비밀번호 자체가 누출되는 것을 방지한다는 기술입니다.

또한 Dash는 PrivateSend라는 기능을 사용해 거래의 직접 당사자를 특정하기 어렵게 만듭니다. PrivateSend는 CoinJoin이라는 기술을 이용하는 것인데, 그 기술이란 여러 발신 당사자를 한데 묶어 그 총합을 만든 다음 그 금액을 여러 갈래로 쪼개 다수의 수신자에게 전달함으로써 실제 거래 당사자를 특정하기 힘들게 하는 것입니다. Dash는 모두 5개의 유동성 공급자를 제공하고 있으며 PrivateSend로 CoinJoin을 통해 자금세탁을 하려면 중앙화 서버들을 유료로 이용해야 하므로 탈중앙화나 독립 등과는 거리가 멉니다.

 

8.6 FATF와 가상자산

FATF는 Financial Action Task Force의 약어로, G7 회의에서 자금세탁의 방지를 국제 협력을 통해 수행하자는 차원에서 1989년에 설립된 국제기구입니다.

FATF는 2018년 10월 각 회원국에 가상자산의 정의와 규제 대상 취급업소의 범위 그리고 자금세탁 방지 의무를 부과하도록 권고문을 개정했으며 FATF의 주요 권고 사항은 다음과 같이 요약할 수 있습니다.

“각국은 가상자산이 갖고 있는 자금세탁과 공중 협박 자금조달의 위험성을 식별하고 이해하며 평가한 다음 파악된 위험을 완화할 수 있는 조치를 취해야 한다.”

FATF의 권고문은 암호화폐가 자금세탁과 공중협박자금조달의 위험을 심각하게 내재하고 있음을 공식화한 것이며 그에 따라 해당 위험을 각국이 적절히 제거하도록 의무를 부과한 것이 핵심입니다.

8.6.1 특정 금융거래 정보의 보고 및 이용 등에 관한 법률

 

우리나라에서는 자금세탁 방지를 위한 법인 ‘특정 금융거래정보의 보고 및 이용 등에 관한 법률’ 즉 특정 금융정보법이 2001년 9월 제정, 시행되고 있습니다. 우리나라는 가상자산을 위한 새로운 법을 제정하는 대신 기존의 특정 금융정보법을 개정해 가상자산이라는 새로운 정의를 추가하는 방향을 선택했는데 한 가지 문제가 있습니다. 특정 금융정보법의 전문에는 그 목적을 ‘금융거래를 이용한’ 자금세탁 행위와 공중 협박 자금조달행위를 규제하는 데 있다고 적시하고 있는데 가상자산 거래는 금융거래가 아니므로 이 법의 목적에 맞지 않는다는 것이었습니다.

그러나 이 문제는 전문에 “등”이라는 글자 하나를 추가해 금융거래가 아닌 가상자산 거래에 대한 자금세탁과 공중 협박 자금조달의 위험을 기존의 특정 금융정보법으로 다룰 수 있게 한 것입니다.

 

반응형
반응형

  5장에서는 블록체인의 기본 형태와 이 블록체인들이 변형되어 나온 형태들의 상태에 대해서 알아보겠습니다.

 

5.1 이더리움과 스마트 컨트랙트

 

  비트코인은 비효율적인 단점이 강해 비탈릭 부테린이라는 개발자가 비트코인의 여러 단점을 보강한 새로운 암호화폐인 이더리움을 만들었습니다.

  이 표는 이더리움과 비트코인을 간단히 비교하고 있는데, 기본적으로 이더리움은 비트코인의 작동 방식을 그대로 베낀 복제품이지만 몇 가지 기능적 개선이나 변화를 시켰습니다. 채굴 시간은 비트코인 평균 10분에서 약 15초로 획기적으로 줄였습니다. 이 평균 채굴 시간은 그 냥 정한 값으로, 기술 발전에 의한 것은 아닙니다. 그래서 비트코인보다 6년 정도나 늦게 나온 이더리움의 블록은 오래전에 1000만 개를 훌쩍 넘어섰습니다. 그리고 중요한 것이 이더리 움이 가장 주목받았던 이유인 스마트 컨트랙트입니다.

 

  스마트 컨트랙트는 원래 닉 사보가 1990년대에 제안한 프로토콜 이름으로 법률행위를 담은 계약이 자동으로 집행될 수 있을 것이라고 생각하고 지은 이름으로, 스마트 컨트랙트의 구현으로 법률가나 법무사 등에 지불해야 하는 불필요한 수수료가 절감될 수 있을 것이라고 믿었습니다.

  앞서 설명했듯이 비트코인의 블록에는 비트코인을 주고받은 거래 내역, 즉 트랜잭션이 적혀 있으며 블록체인의 역할은 네트워크에서 발생한 트랜잭션을 채굴업자가 정한 순서대로 기록하는 것입니다. 이더리움은 이렇듯 정적인 기록만 가능했던 비트코인 블록체인을 변형해서 프로그램 코드도 저장할 수 있도록 변형한 다음 스마트 컨트랙트라고 부른 것입니다. 또, 스마트 컨트랙트는 탈중앙화 응용프로그램인 디앱이라고도 부릅니다.

  이 그림은 이더리움의 스마트 컨트랙트를 개념적으로 비유한 것으로, 왼쪽의 비트코인의 경 우 비트코인을 주고받은 정적인 내용이 기록되는 반면에, 오른쪽의 이더리움 블록에는 비트코 인식의 정적인 기록에 더불어 프로그램 코드도 저장되는 모습입니다. 그래서 이더리움의 블록에 저장되는 프로그램을 다양하게 바꾸면 블록체인의 용도도 다양해질 수 있게 된 것입니다.

 

  하지만, 이더리움에 구현된 스마트 컨트랙트는 명칭만 같을 뿐, 닉 사보가 구상한 프로토콜 과는 거리가 먼데, 닉 사보의 구상의 핵심은 법률행위를 담은 계약을 과연 컴퓨터 프로토콜로 표현할 수 있는가에 있는데, 이더리움의 디앱은 단순히 프로그램을 구동하는 플랫폼에 불과합니다. 이렇게 되면 단순히 가상 프로토콜을 구동할 수 있는 플랫폼은 중앙 서버가 더 효율적일 수 있고 이더리움을 사용한다면 앞서 설명한 것처럼 엄청난 비효율과 자원 낭비를 감수해야 합니다. 그래서 이더리움이 나온 지 꽤 시간이 지났지만 디앱은 법률의 집행은 고사하고 단순한 게임 정도가 전부입니다.

  그 이유는 다음과 같은 4가지 이유에서 기인하게 됩니다.

 

  먼저, 블록체인의 모든 정보는 노출돼 전혀 보호되지 않습니다. 의미 있는 계약은 통상 개 인정보를 포함한 민감한 데이터를 다룰 필요가 있는데, 데이터 노출로 인해 원천적인 제약이 생기게 됩니다.

 

  두 번째로, 닉 사보 구상의 핵심은 플랫폼이 아니라 법률행위를 프로그램으로 표현 가능한가 인데, 이더리움의 디앱방식으로 스마트 컨트랙트를 구현하려면 먼저 복잡한 법률행위를 스크립트 코드로 표현해야 하는데 이것 또한 새로운 과제이고, 그 코드를 보고 법조문을 이해하는 건 사실상 불가능하기 때문입니다.

  다음으로 블록체인 디앱으로 프로그램을 구현하고 실행하는 것은 통상적인 방식에 비해 훨씬 더 많은 비용이 소모되게 됩니다. 스마트 컨트랙트의 목적은 비용절감인데, 더 많은 비용이 들고 더 복잡하고 더 느리고 더 관리가 힘든 방식이면 굳이 사용할 필요가 없습니다.

  마지막으로 블록체인으로는 제삼자가 배제된 거래를 구현할 수 없습니다. 블록체인은 제삼 자의 중계가 반드시 필요한 시스템입니다. 이것에 대해서는 다음 2부 내용 때 더 자세히 다룰 예정입니다

 

5.2 하이퍼레저와 프라이빗 블록체인

 

  이러한 블록체인의 태생적 한계를 극복하기 위해 기존의 블록체인과는 완전히 다른 새로운 형태의 변형이 등장하기 시작했습니다. 리눅스 재단이 주도가 된 이 프로젝트의 이름은 하이퍼레저로 이들이 던진 근복적 질문은 “블록체인은 왜 익명이어야 하는가?”입니다.

  이 표는 비트코인과 하이퍼레저 패브릭을 비교한 것으로 살펴보면 비트코인과 하이퍼레저 패브릭은 다르다는 것보다 정반대라는 느낌이 듭니다. 먼저 패브릭은 익명이 아닌 실명으로 구성되며 중앙 서버에 의해 통제됩니다. 그래서 사실 따지고 보면 블록체인이라고 할 수 없습니다.

 

  일반적으로 중앙 관리자 없이 누구나 해당 블록체인 플랫폼에 노드로 참여할 수 있는 게 퍼 블릭 블록체인인데, 이는 불특정 다수의 노드가 처리하는 거래 정보 검증은 익명성과 보안성 이 우수하지만, 그만큼 거래 소요 시간이 오래 걸린다는 한계점이 존재합니다. 그래서 그 대 안으로 프라이빗 블록체인, 컨소시엄 블록체인이 나오게 됩니다.

퍼블릭 블록체인의 형태

  퍼블릭의 경우를 보면, 불특정 다수의 참가자가 노드로 참여합니다. 이는 상당한 거래 시간과 많은 채굴을 수반하게 되지만 거래의 투명성이나 기록 수정의 불가역성이 보장되게 됩니다. 하지만 A아파트 대표 선거와 같은 작은 규모는 그만큼의 신뢰성과 보안성을 요구하지 않을 수 있습니다.

프라이빗 블록체인의 형태

  그래서 프라이빗의 경우처럼 별도의 내부망 또는 인증방식으로 참여자를 제한하여, 퍼블릭에 비해 수배 빠른 속도의 블록체인 기술을 투표에 적용할 수 있습니다.

  하지만 이 중앙 관리자가 존재는 블록체인의 중요 가치인 탈중앙화 정신에 위배됩니다. 그래서 등장하게 된 것이 컨소시엄입니다.

 

컨소시엄 블록체인의 형태

  컨소시엄은 특정 노드만 참여할 수 있는 프라이빗과 유사하지만, 프라이빗은 한 집단에서 독자적으로 블록체인 망을 만든다면, 컨소시엄은 여러 집단이 협의체로 노드에 참가해 신뢰성과 익명성을 높임으로 퍼블릭과 프라이빗의 단점을 극복하였습니다.

 

5.3 비잔틴 장군 문제

 

  다음으로는 신뢰할 수 없는 p2p환경에서 어떤 방식으로 시스템을 공격할 수 있는지, 그리고 그 난제를 작업 증명으로 어떻게 해결하는지 간단히 설명하겠습니다.

비잔틴 장군 문제

  중앙에 적의 본진이 있으며, 장군 A, B, C, D, E 중 3명 이상이 공격해야만 성을 함락시킬 수 있습니다. 그러기 위해, 서로 공격시간을 맞추기 위한 메시지 전달을 합니다. 한 장군은 다음 장군에게만 메시지를 전달할 수 있고, 메시지는 반드시 20분 안에 전달해줘야 합니다.

  그림처럼 장군 A는 장군 B에게 새벽 4시에 공격을 개시하자는 메시지를 전달합니다.

  장군 B는 메시지를 확인하고, 장국 C에게 메시지를 그대로 전달합니다.

  장군 C는 배신자이므로 기존에 왔던 메시지를 찢어버리고, 공격시간을 새벽 5시로 위조하여 장군 D에게 전달합니다.

  장군 D는 메시지를 확인하고 장군 E에게 그대로 전달합니다. 이러면 성을 함락하기 위해 최소 3명의 장군이 필요한데 새벽 4시에는 장군 A와 장군 B만 공 격에 가담하게 되므로 성을 함락시키지 못합니다.

작업증명 방식으로 해결한 비잔틴 장군 문제

  위의 문제에서 장군 C가 배신자의 경우 적 본진 함락에 실패하지만, 작업 증명 방식을 이용하여 해결해보겠습니다. 장군들이 메시지를 작성해서 보낼 때 각자 10분간 작업을 해야만 만 들 수 있는 서명을 첨부합니다. 이렇게 되면 배신자인 장군 C가 위조하기 위해서는 장군 A와 B의 서명을 모두 위조해서 변경해야 하는데 그러기 위해서는 20분 안에 메시지를 보낼 수 없기 때문에 시간상 불가능합니다. 즉 이런 식으로 해결하게 됩니다.

 

5.4지분 증명 등 그 밖의 변형

 

pow 방식

  앞서 설명한 작업 증명의 방식을 비트코인에 대입하면 10명의 사람들이 블록 채굴에 참여를 한다고 가정했을 때, 문제가 주어지고 정답 시 블록을 생성합니다. 그렇게 작업을 하여 가장 빠른 단 1명만이 블록을 생성하고 다음 채굴을 준비합니다. 이것의 장점은 모든 앞서 비잔틴 장군의 경우에서 살펴봤듯이 모든 노드의 승인을 거쳐야 하기에 거래 내역을 속이기 힘들지만 모든 노드의 승인을 거쳐야 하기 때문에 거래 처리 속도가 느리고 채굴에 따른 부수적인 비용과 에너지의 과잉소비가 발생합니다.

 

pos 방식

  그리하여 그다음 방식인 지분 증명 방식은 노드가 될 자격을 갖추고 네트워크에 참여합니다. 이 노드들 중에 가장 많은 지분을 가진 노드를 리더로 선출하는 것입니다. 그리고 누구나 코인 지분을 통해 블록 생성 권한 확률을 배정받고 그에 알맞은 보상도 받기 때문에 작업 증명처럼 무의미한 계산을 지속적으로 하지 않아 더 경제적이고 분산화된 네트워크를 가지게 됩니다. 하지만 지분량에 따라 보상이 배정되기 대문에 빈익빈 부익부가 나타날 수 있는 문제가 있습니다.

  작업 증명은 신뢰가 없는 네트워크에서 합의를 이루기 위해 치러야 하는 대가로 생각할 수 있지만, 지분 증명이 이러한 비용이 들지 않는 이유가 지분 증명에 의해 선출된 노드를 신뢰해야만 작동하게 됩니다. 그런데 이러한 신뢰를 바탕으로 한 네트워크를 구성하기 위해서는 굳이 중앙화 시스템을 버리고 블록체인을 사용할 이유가 없을 수도 있습니다. 결국 에너지 절감과 속도 향상을 하기 위해서 지분 증명을 쓴다고 하지만 이는 중앙화 서버에서 신뢰를 바탕으로 사용하게 되면 극대화되게 됩니다. 그래서 탈중앙화에 가장 근접한 방식은 작업 증명이라고 볼 수 있습니다.

 

참고

https://steemit.com/dclick/@eaglekeeneye/-4-bitcoin-1-1543794926642

https://brunch.co.kr/@mobiinside/1207

https://m.blog.naver.com/bodoblock00/221657805838

반응형

+ Recent posts