코인에어드랍 신규가입시OSN1,0개받습니다

키워드 코인에어드랍 에 대해 쓴 글이며 요약된 정보는 아래와 같다.

Thar코인 (THAR) 10개 에어드랍
신규가입시 OSN 코인 1,000개 에어드랍 받습니다
Revelation (REV) 코인 50만개 에어드랍

아비(Arbi)코인 에어드랍 이벤트 ( 최대 12000개 Arbi)
아이오니아 거래소 사전가입 에어드랍 이벤트 ( 니아(NIA 코인) 100개 에어드랍 )
Ninja 닌자 코인 50000개 에어드랍

코인에어드랍 거래소 36곳 사전예약하고 무료 코인 에어드랍 받아가세요.(수정)
코인에어드랍 공짜로 받은 코인으로 상장 or 거래소 오픈날 팔고 현금화 하면 최소 몇천원 ~ 대박나면 수
십만원까지 받을 수 있습니다 투자 후 거래 하는 것이 아니라 무료로 받은 코인을 팔고 현금화

하는 것이기 때문에 리스크 0%입니다 얼마 전 뽐뿌에서 핫했던 비트소닉 거래소는 사전예약시
코인을 60개 주었고, 오픈날 개당 시세는 700원으로 사전예약 했던 대부분의 회원들이 현
금 4만원 넘게 버셨어요 비트소닉 다음으로 신규 에어드랍 코인 및 거래소 엄선하여 소개합니다

* 더 많고 자세한 에어드랍 정보를 원하신다면 제 블로그 https://blog.naver.
com/liuyifei42/ 방문 부탁드립니다 1
KBcoin거래소(에어드랍 250) 곧 마감 예정입니다

https://kbcoin.com?recommand_user_id=YWFhaWlpeXl5QG
5hdmVyLmNvbQ== 상장가 100원 얘기가 있는데 그러면 가입만해도 25000원 입니
다 밑져야 본전이니 신청해봅시다

조금더 자세히 알아 보자면

2
뮤지카 후오비코리아 상장기념 에어드랍 이벤트 ( 50 MZK ) 11월 19일 월요일 오후
6시에 마감 ㅠ 11월 19일 월요일 오후 6시부터 후오비코리아에서 뮤지카 거래 시작합니다!

받는방법
뮤지카 카카오 플러그 친구추가 http://pf.kakao.com/_qbtbj
기간: ~ 11월 19일 월요일 오후 6시까지 (단, 준비된 MZK 소진시 조기 종료)

플러스친구 추가 후
후오비코리아 UID 입력 25 MZK 지급
추천인 아이디 입력시 25MZK 추가 지급

추천인 아이디는 후오비 작성해주시면 감사합니다^^
3
붐비트(boombit) 코인60개 + 무제한 4000원 에어드랍

링크따라가면 거래시 코인 40개(bm) 획득 + 링크로 지인 불러오면 원화 4000원 에어드
랍 + 인증단계 다 받으면 코인 총 60개(bm) 획득 진짜배기는 레퍼럴입니다
보통 추천인 1명당 코인 몇개 주는 구조인데 여긴 현금으로 뿌립니다

게다가 내가 모집한 사람이 사람을 모으면 그 레퍼럴을 또 받을 수 있네요
https://www.boombit.co.kr/bm/register?invite=1OSj4q
vrtGW 4

빗키니거래소 오픈 기념 신규가입시 15000원 현금 지급
회원가입시 10000원 + 추천인 입력시 5000원해서 총 15000원 현금으로 받습니다
가입을 해보니 회원가입시 10000원은 즉시 들어오고

5000원은 12월 19일 수요일 14:00에 들어온다고 합니다
https://www.bitkiny.com/
가입시 추천인 aaaiiiyyy@naver.com 입력해 주시면

서로서로 5천원씩 더 받습니다
감사합니다
5

쎈비트 국내거래소 사전예약 에어드랍 ( 1000 SSEN 코인 )
[참 여 방 법]
① https://shrl.tk/Mazx7 접속

가입시 300 SSEN, 핸드폰 인증시 400 SSEN, 추천인 입력시 300 SSEN
휴대폰으로 가입시 폰인증이 안되시면
컴퓨터로 진행하시면 됩니다

추천인 : 9F614B00F1B5 감사합니다
총 1000 SSEN코인
② https://t.me/ssenbit3 텔레그램 입장 후 에어드랍 종료시 까지 유지 하셔

야 에어드랍 지급 받습니다 6
엔젤리스 신규거래소 (END 500 개 에어드랍)
END 거래소토큰 지급(총 발행량 20억개)

사전가입 500END 지급 (5만원 예상)
수수료의 80프로를 END토큰 소유자에게 분산지급
12월 15일 거래소 오픈

http://endless.pe.kr/sub01/register.html?referal=IN
C8419 7
메가비트(MEGA) 거래소 사전예약(1000 MEGA 에어드랍 )

기간이 짧고 간단한 에어드랍입니다
기간 : 11월 13일 ~ 11월 25일
매우 간단해요

인증도 없구요
https://bit.ly/2DBYcJF
8

비트젯(BitZet)거래소 신규 에어드랍
신규가입시 OSN 코인 1,000개 에어드랍 받습니다
(지급 일정은 11월 28일)

① https://www.bitzet.co.kr/member/join.html 접속
② 휴대폰 인증 & 양식 작성해주시고 추천인 aaaiiiyyy@naver.com 해주시면 정
말 감사합니다^^ 각각 1,000 OSN씩 받습니다 ③ ARS 인증은 본인폰 기종 선택하세요

인증전화 받고 안내 멘트가 나올 때 1번(승인) 누른 후 전화가 끊어지면 인증 전화번호의 마
지막 숫자 4자리 입력하시면 됩니다 9
아이오니아 거래소 사전가입 에어드랍 이벤트 ( 니아(NIA 코인) 100개 에어드랍 )

https://play.google.com/store/apps/details?id=tech.
ionia.app (안드로이드) https://itunes.apple.com/kr/app/i
onia/id1436937580 (IOS) 휴대폰 기종에 맞게 아이오니아 어플(월렛) 다운받

고 설치하세요 어플(월렛) 실행 후 회원가입 하시면 50니아(NIA) 지급하고 가입시 초대코
드 입력하시면 50니아(NIA) 추가지급합니다 *초대코드 : E25LOU 감사합니다
(회원가입은 어플(월렛)에서만가능)

10
코인닥 신규거래소 가입 이벤트
https://shrl.tk/RwLLX

DAC 코인
-기본 2000 DAC 획득
-추가 500 DAC

(₩8,000 사전판매 기준)
11
KSC 코인 300개 에어드랍 ( 마인빗 상장 예정 )

① Kstarcoin 오픈채팅방 주소
https://open.kakao.com/o/gAINrn2
② 구글폼 작성하기

https://docs.google.com/forms/d/1hZ3YSN_BgB5mOhz-UJ
D11Fzy4P73sEI2HDyWm8PURt8/viewform?edit_requested=t
rue (추천인 카카오톡 닉네임 : MJ 항상 감사드립니다.^^ ) 12

마인비트
https://minebit.com/Login/register.html?code=FRLZWD
먼저 마인비트 웹 가입을 하면 10MBT, KYC 절차를 하면 20MBT를 받습니다

(최대 100MBT까지)
해당 MBT로 이더리움이나 비트코인까지 에어드랍 받을 수 있습니다
12-2

마인월드 (어플)
https://mwapi.minebit.com/public/loginSingnIn.html?
lang=ko_kr&ya=FfJ177&skip=down 추천인 FfJ177 입력시 30헤시

지급됩니다 마인비트 어플인 마인월드입니다
하루에 1~2번 어플에 접속하여 MBT를 채굴하시면 됩니다
그냥 휴대폰으로 간단히 몇번 터치하는거라 CPU나 전력소모 전혀 없습니다

1분도 안걸립니다
출석체크 개념으로 매일 매일 계속계속 MBT 모으시고 배당금 노리시면 됩니다!
13

bluebelt 거래소 – 사전예약 상품 이벤트 (★추천코드: 19990)
https://event-kr.bluebelt.asia/
14

에어드랍라이브 퀴즈쇼 에어드랍!
http://www.airdroplive.co.kr/?code=hpqeg1
15

Coinchase (CCH) 코인 에어드랍 이벤트 (0.101 ETH ($20) + 50 C
CH 보상 (이더는 바로지급 CCH코인은 이벤끝나고 일괄지급) ) https://coinch
ase.com/c/dERqt9CK 위 접속주소로 들어가셔서 [가입하기] 클릭 후 회원가입 진

행 국가 South Korea 선택하고, 폰번호 입력 (핸드폰 맨 앞자리 0은 빼고 입력 e
x 1012345678), 이메일 인증 -> 0.101 ETH 즉시 보상 카톡방 입장 유지
후 https://bounty-cch.coinchase.com/ 접속하여 폰번호와 카카오톡I

D 입력 -> 이벤트 종료 후 CCH 50코인 보상 16 비트코인빙 홈페이지 회원가입시 에어
드랍 지급 (빙코인 30개) 12월 오픈 예정인 거래소 코인이며,
해외에서 매우 인기있는 에어드랍입니다

오늘날 ICO 80% 완료되었고 ICO 끝나면 에어드랍 진행된다고 합니다
받는방법 (홈페이지 회원가입)
https://www.bitcoinbing.io/register.php?code=771RZ

홈페이지 회원가입 진행
17
코인업마켓 ( 추천인x 신규가입시 코인 구입가능한 1만 캐쉬 즉시 지급 )

회원가입만 하면 즉시 1만 캐쉬 지급!
http://coinupico.com/
18

지닥 거래소 ( 추천인x 신규가입시 GT 5000개 지급 )
https://www.gdac.co.kr/
회원가입 이벤트 5000 GT (10월 4일 오전 10:00 ~ 종료 공지시까지)

19
프로비트 거래소
https://www.probit.com/referral/27964906

가입하시면 $4 USDT의 보너스와 100이오스 일일추첨권 10장과 주당 갤럭시s9 추첨해서
준다고 합니다 회원가입하시고 11월5일부터 진행되는 추첨기다리시면 됩니다
20

KRPEX 거래소
http://www.krpex.com/join/
추천ID: aaaiiiyyy@naver.com

공유하고 URL 남기면 대박 경품 혜택 (추첨인원많음) + EB코인 수수료 환급 + 에어드랍
등 21
마이닉스 거래소 ( 마이닉스 토큰(MNX) 11개 + 경품 이벤트 )

http://www.mineex.co.kr?recommend_code=SCtrWlNKYlVL
YUN0OTJKM1V0QjBOZz09 마이닉스 토큰 11개 + 위 링크로 가입시 서로에게 1
0프로 추가 + 그외 경품 이벤트 22

비트소닉
10월 15일(월) 오후 9시부터 선착순 10만명 – 총 30 BSC
① 회원가입시: 5 BSC

② 가입시 추천인 입력: 10 BSC
③ 실명인증: 5 BSC
④ OTP등록: 5 BSC

⑤ 입출금계좌등록: 5 BSC
https://bitsonic.co.kr/invite?rcode=5XTKHQ
23

Radiance(RNR) 2차 에어드랍 이벤트입니다(1만명 제한) 보상 RNR 50000코인
작성 하는곳: https://shrl.tk/vb6zs
텔레그램 2개 가입, 페이스북, 트위터 좋아요 공유 팔로우, 미디엄(이건 선택사항) 등의 미

션을 완수해야 합니다 24
HetaChain(HETA) 에어드랍 ( 1200HETA (19$) )
텔레그램과 트위터만 있으면 매우 간단하게 하실 수 있어서 추천드립니다

https://t.me/Heta_Airdrop_Bot?start=NzA1ODQwMzkx
25
WE SHOW (위쇼토큰) 에어드랍 (20WET)

https://act.we.show/i/3BT
신규 회원가입만 해도 20WET증정, 신규회원 가입후 WeShow 커뮤니티(텔레그램 or 카
카오톡)에 “We Show Fighting” 을 외치면 WeShow Token추가로 증정

26
Mobile Token Bank 코인 에어드랍 (무조건 100,000 MTB + @ 획득)
https://docs.google.com/forms/d/e/1FAIpQLScqR1Cz7PJ

8PFOoXVDPlEgtMLVhXCx5S3AqurlKEQme7nurOA/alreadyresp
onded 양식 작성을 위해서는 ① 텔레그램방 가입하기
② 트위터 팔로우 누르기

③ ERC20 개인지갑 주소 입력하기
④ 추천인: @basetoto 입력해주시면 + 10000MTB 더 받습니다
27

아비(Arbi)코인 에어드랍 이벤트 ( 최대 12000개 Arbi)
이벤트 참여방법
① 접속주소로 회원가입 10만명 한정 (3,000 arbi 토큰지급) 링크 : https:/

/arbi-coin.com/main/referral?recode=856555 (구글 크롬에서
하셔야 합니다) ② 아비봇 공식 페이스북 좋아요 미션 (2,000 arbi 토큰지급) 링크
: https://www.facebook.com/arbibot2018 ③ 개인 SNS계정에

이벤트 게시물 공유 ( 사이트 참고 ) ④ 미션3까지 완수 후 카카오톡 플러스 친구에게 회
원 ID 및 미션 수행 URL, 이미지 캡쳐 첨부하기 공식채팅방 : https://open.
kakao.com/o/g7IL0rW 28

Revelation (REV) 코인 50만개 에어드랍
https://shrl.tk/hsWyz 접속하셔서 텔레그램방 입장 후 유지, 트위터 팔로우,
지갑주소 입력 하시면 됩니다 29

Ninja 닌자 코인 50000개 에어드랍
11월 29일 Coinexchange 거래소 상장 예정
복잡합니다

시간적 여유가 있으신 분들만 하시기 바랍니다
https://shrl.tk/QclBq
① 구글폼 접속 https://shrl.tk/QclBq

② 트위터 팔로우 https://twitter.com/NNAToken
③ 트위터 좋아요 및 리트윗, 친구 5명 태그 ( 친구 태그는 @누르시고 아무 글자or숫자
쓰신 후 뜨는 사람들 넣으면 됩니다) https://twitter.com/NNAToken/s

tatus/1059451583111417857 ④ 디스코드 조인하여 닉네임 설정하고 이메일
입력 후 가입 https://discord.gg/Q69X8c8 ⑤ 텔레그램 조인 https:
//t.me/Ninjaeconomicproject ⑥ 구글폼 작성

1) 트위터 유저네임 (ex: @abcd)
2) 리트윗 링크
3) 디스코드 계정 (ex: abcd#1111)

4) 텔레그램 유저네임 (ex: @abcd)
5) 추천자(자동) : @basetoto
6) 이더계열 개인지갑 주소 입력

⑦ 50,000 NNA 에어드랍 !
30
Thar코인 (THAR) 10개 에어드랍

① https://shrl.tk/ksdi8 접속
② 트위터 팔로우, 고정 게시글 리트윗
③ 텔레그램방 3개 입장(에어드랍 받을 때까지 유지!!!)

31
CRS 코인 에어드랍 ( 미션에 따라 차등 )
받는방법

https://wn.nr/29LCth
이름, 이메일, 이더지갑주소 입력 후 제출하기
그 이후에 미션을 하시면 됩니다

미션은 많이 간단한 미션들입니다
예를들어, 텔레그램 접속, 텔레그램에서 대화하기, 인스타그램, 트위터 팔로우, 유투브 구독,
댓글달기, 뉴스레터 구독 등 매우 간단한 미션들입니다

모든 미션 다 참여시 88개의 CRS를 얻을 수 있으며, 1 CRS = 0.001 ETH 의
가치가 있다고 합니다 즉 88 CRS = 0.088 ETH = KRW 20,579원
또한 텔레그램 대화 미션은 15~20시간 마다 1번씩 할 수 있고 보상은 대략 15 CRS

코인입니다 <--- 이게 좋아요!!
32
코인데일리 신규 이벤트 추가 에어드랍

텔레그램 어플이든 PC버젼이든 설치되어 있어야 합니다.!
참여링크 (Link)-> https://t.me/coinDaily_kor_bot?start=
rydfKgJTQ ㄴ기본참여 : 2000 DAILY

ㄴ친구초대 : 1000 DAILY
ㄴ리뷰이벤트 : 3000개 ~ 최대 30만개
ㄴsns공유이벤트 : 500개 ~ 최대5000개

33
DACC 4차 에어드랍 + 추수감사절 이벤트 총 2100개 지급
IDEX, Kucoin, CoinEx, HIBTC 등 여러 거래소에 상장되어있고 코인마켓캡에

도 등재 되어있습니다 ① 3차 에어드랍 마감하자마자 4차 시작하네요
2018년 11월 13일부터 6일간 진행한다고 합니다
아무나 DACC 공식 카카오톡 방(카톡방 유지!!)에 들어가면 1000DACC 를 받을 수

있습니다 상세주소: https://bounty-ko.coinchase.com?code=f6c
v1d ② 추수감사절 이벤트 (1100 DACC 획득)
https://dacc-ko.coinchase.com?code=l1RG0W

34
맘스블록 (MOM) 사전예약 에어드랍
사전등록자 1만명 도달시 700MOM 지급

12월 오픈예정인 MOMS BLOCK은 블록체인기반 맘커뮤니티입니다
http://momsblock.co.kr/event.php?sponsor=aaaiiiyyy
접속하여 사전예약하기 35

루익 Looix 코인 1000개 에어드랍 (간단, 20달러에 해당)
텔레그램이 설치되어 있어야 합니다
http://t.me/looixAirDropBot?start=705840391

미션은 텔레그램 그룹방 2개 참여, 트위터 팔로우로 간단합니다
36
Condeal(콘딜) 코인 에어드랍

http://telegram.me/Condeal_AirdropBot/?start=baseto
to 텔레그램 봇 입장 텔레그램 채팅방 입장, 미디움 팔로우, 트위터 팔로우, 페이스북 좋아

요의 미션을 하셔야 에어드랍을 받습니다.

코인에어드랍 글을 쓰게 되면서 대해 메인 적인 내용을 알게 되었다.

해시함수 이는처음작쉬값같을경우,그후의들도모두동일한

핵심단어 해시함수 에 대해 쓴 글이며 밑에 글에는 요약된 정보이다

h(45) = 1인데, 이미 1의 위치에는 h(89)=1이 저장되어 있어 충돌한다
만약 0에서도 충돌이 일어났다면 h(48,2) = (48+2^2) mod 7로 3의 위치에
저장되었을 것이다 하지만 해쉬 함수를 짜더라도 충돌을 새로히 방지한다는 것을 보장하기

는 힘드므로, 충돌을 방지하기 위한 방법으로 충돌이란, 다른 k값이 동일한 h(k)값을 가
져 동일한 slot에 저장되는 경우를 말한다 충돌을 최소화 하는 방법 중에 충돌이 적은 좋
은 해쉬 함수를 만드는 방법도 있다 이 경우 k값이 h(k)로 해쉬되었다고 하며, h(k)

해시함수 해쉬란?
해시함수 해쉬는 임의의 크기를 가진 데이터를 고정된 데이터의 크기로 변환시키는 것을 말한다
즉 해쉬 알고리즘은 해쉬를 하는 방법에 대해 절차적으로 명세한다

이를 이용해 특정한 배열의 인덱스나 위치나 위치를 입력하고자 하는 데이터의 값을 이용해 저장
하거나 찾을 수 있다 기존에 사용했던 자료 구조들은 탐색이나 삽입에 선형시간이 걸리기도 했던
것에 비해, 해쉬를 이용하면 즉시 저장하거나 찾고자 하는 위치를 참조할 수 있으므로 더욱 빠

른 속도로 처리할 수 있다 1
Direct Addressing Table
Direct Addressing Table은 key-value쌍의 데이터를 배열에 저장할 ,

key값을 직접적으로 배열의 인덱스로 사용하는 방법이다 예를 들면 키 값이 400인 정보
가 있다면, 이는 배열의 인덱스가 400인 위치에 키 값을 저장하고 포인터로 데이터를 연결한
다 똑같은 키 값이 존재하지 않는다고 가정하면, 삽입 시에는, 각 키마다 자신의 공간이 존재

조금더 자세히 알아 보자면

하므로 그 위치에다 저장을 하면 되고, 삭제 시에는 해당 키의 위치에 NULL값을 넣어주면
된다.탐 색 시에는 해당 키의 위치를 그냥 찾아가서 참조하면 된다 찾고자 하는 데이터의 ke
y만 알고있으면 즉시 위치를 찾는 것이 가능하므로 탐색,저장,삭제,갱신은 모두 선형시간인 O

(1)로 매우 빠른 속도로 처리가 가능하다 그러나 key값의 최대 크기만큼 배열이 할당 되기
때문에, 크기는 매우 큰데, 저장하고자 하는 자료가 적다면 공간을 완전많이 낭비할 수 있다는
단점이 있다 2 Hash Table Hash Table은 key-value 쌍에서 key값을

테이블에 저장할 때, Direct Addressing Table 달리 key값을 함수를 이
용해 계산을 수행 한 후, 그 결과값을 배열의 인덱스로 사용하여 저장하는 방식이다 여기서 k
ey값을 계산 하는 함수는 해쉬 함수(Hash Function)이라고 부르며, 해쉬 함수는

입력으로 key를 받아, 0부터 배열의크기-1 사이의 값을 출력한다 해쉬에 대한 첫 정의대로
임의의 숫자를 배열의 크기 만큼으로 변환 시킨 것이다 이 경우 k값이 h(k)로 해쉬되었다
고 하며, h(k)는 k의 해쉬값이라고 한다 위 그림을 참조하면 각 k값들의 해쉬값인 h(k

)값들이 배열의 인덱스로 사용됨을 확인 할 수 있다 해쉬 테이블은 Direct Address
ing Table에 비해 공간 낭비가 매우 적은데 이는 key값의 크기에 테이블의 크기가 좌
우되는 것이 아니고, h(k)만큼의 공간에 저장되기 때문이다 2.1 충돌(Collusion)

하지만 해쉬 테이블은 충돌이 일어 날 수 있다는 큰 문제점이 있다
충돌이란, 다른 k값이 동일한 h(k)값을 가져 동일한 slot에 저장되는 경우를 말한다
예를 들자면 k1과 k12을 해쉬하였더니 h(k1) = h(k12)인 경우를 들 수 있다

Direct Addressing Table에서는 이를 예방 하기 위해 모든 key값이 다르다
고 전제하였지만 해쉬 테이블에서는 key값이 달라도 해쉬의 결과가 같을 수 있기 때문에 이를
방지하기 위한 방법이 필요하다 하지만 해쉬 함수를 짜더라도 충돌을 새로히 방지한다는 것

을 보장하기는 힘드므로, 충돌을 방지하기 위한 방법으로 충돌을 어느정도 허용하되 이를 최소화
하는 방법도 사용하기도 한다. 2.1.1 Chaining 방법 – 충돌을 허용하되 최소화
하는 방법 충돌을 허용하지만 이를 최소화 하기 위한 방법중 하나인 체이닝 방식이다

체이닝이란 이름 그대로 데이터들을 포인터를 이용해 서로 체인 형태로 엮어 나가는 것을 뜻하며
, 해쉬 테이블에선 동일한 해쉬값이 출력되 충돌이 일어나면, 그 위치에 있던 데이터에 key
값을 포인터로 뒤이어 연결한다 따라서 처음으로 h(k)위치에 저장된 데이터를 시작으로 그 이후

의 h(k)값이 출력되는 데이터는 모두 연결 리스트의 형태를 취한다 그렇기 때문에 최초의 위
치를 탐색하는 해쉬 과정을 제외하고, 모든 탐색, 삽입, 삭제 과정은 연결리스트와 유사한 방
식으로 진행한다 Chaing 방법에서의 수행시간은 삽입 시에는 해쉬값을 이용해 바로 slot

에 저장하면 되므로 상수시간에 일어나고, 삭제는 연결리스트의 삭제와 동일하게 상수시간에, 탐
색 시에는 연결리스트를 따라 가기 때문에 리스트의 길이 만큼 발생하지만, 최악의 경우, 즉
모든 데이터의 해쉬값이 일치하여 한 인덱스에 저장됬을 경우엔 연결리스트의 탐색 시간과 동일한

선형시간을 가지게 된다 2.1.2 적재률 하지만 이 최악의 경우는 극단적인 예료, 평균적인
경우엔 O(a+1)의 시간이 걸린다 a는 적재율을 뜻하며 적재율이란 오늘날 저장된 key값
갯수(K), 전체 테이블의 갯수(N)을 서로 나눈 값(K/N)이다 즉 지금 저장된 정보가

많으면 많아질수록 충돌 확률이 높아져 연결 리스트 탐색 확률도 증가하며, 적을수록 리스트 탐
색 확률이 적어진다는 것이다 2.1.3 Simple uniform hash 충돌을 최소화 하
는 방법 중에 충돌이 적은 좋은 해쉬 함수를 만드는 방법도 있다 좋은 해쉬 함수의 조건은 S

imple uniform hash 함수를 만드는 것으로, 이 조건은 다음과 같다 1 계산된
해쉬값들은 0부터 배열의 크기-1 사이의 범위를 동일한 확률로 골고루 나타날 것 2 각각
의 해쉬값들은 서로 연관성을 가지지 않고 독립적으로 생성될 것 첫 번째 조건을 충족하면 충돌

이 일어날 확률이 적어질 것이며, 두 번째 조건은 해쉬값들이 서로 연관이 있을 경우 연관성이
있으면 해당 해쉬값이 등장하는 패턴이나 순서가 존재 할 수 있고, 이는 반복적인 충돌을 일
으 킬 확률이 있기 때문이다 2.1.4 divison method 해쉬 함수는 정말 다양하지

만 대표적인 해쉬 함수로는 divison method가 있는데, modular 연산 방식을
이용하는 방법이다 특정 key를 어떤 수로 나눈 나머지를 해쉬값으로 사용한다 예를 들어 m=
100이면 k mod m은 0부터 99까지의 범위를 가진다 이 범위의 m은 해쉬 테이블의 성

능을 크게 좌우하는데, m의 크기는 보통 키의 수의 3배가 적당하다고 한다 (적재율이 30%
쯤까지 충돌이 거의 일어나지 않는다고 한다.) 그리고 m으로 2^p값을 사용하는 것엔 큰 주
의를 요한다 왜냐하면 m이 2^3이면, 2진수로 00001000이고, 4번째 이하의 숫자만

해쉬값에 영향력을 끼치기 때문이다 예를 들어 k1과 k2가 각각 10110100,1012010
0이면 둘 다 같은 해쉬값을 출력한다 이를 방지하기 위해서 m은 보통 2^p에 근접한 소수를
선택한다고 한다 즉 가장 최적의 m의 크기는 키의 갯수의 3배이며 2의 지수승에 근접한 소

수이다 3 Open Addressing Open Addresing은 key값을 테이블에 저장
하는 Direct Addressing Table과는 다르게, 모든 데이터(key+데이터)를
테이블에 저장하는 방법이다 장점으로는 데이터를 직접 모두 읽어 오기 때문에, 포인터를 쓸 일

이 없어 포인터를 사용함으로서 발생 할 수 있는 오버헤드를 예방 할 수 있다는 점이다 포인터
가 필요 없어 구현이 훨씬 용이해졌으며, 포인터 접근에 필요한 시간이 없기 때문에 큰 성능
향상이 있다 3.1.1 Liner probing 포인터를 사용하지 않기 때문에, 미리 설명한

Chaing 방식은 사용 할 수 없다 따라서 다른 방법으로 충돌시에 대처해야 하는데 그 중
하나가 Liner probing이다 Liner probing은 key값으로 인덱스를 계산할
때, 만약 충돌이 발생한다면 바로 다음 인덱스에 데이터를 저장하는 방식이다 다음으로 이동한

이후에도 충돌이 발생했다면 또 다시 바로 다음 인덱스에 저장한다 즉 충돌이 일어나지 않을
때 까지 다음 인덱스로 이동을 해가며 빈 공간을 찾으면 그 위치에 저장한다 위는 하나의 예제
이다 m의 크기는 11로 해쉬 함수는 k mod 11로 계산한다 1 h(54) = 10, h

(77) = 0, h(94) = 6, h(89) = 1, h(14) = 3으로 충돌이 일어나
지 않는다 2 h(45) = 1인데, 이미 1의 위치에는 h(89)=1이 저장되어 있어 충돌
한다 따라서 다음 위치에 저장한다

3
h(35) = 2인데, 여기엔 방금 충돌이 일어났던 45가 저장되어 있어 충돌한다, 빈 위치
가 저장할 때 까지 이동하여 저장한다 4

h(76) = 10이며, 저장은 3번과 같이 한다
매 충돌시마다 한칸씩 이동하므로 해쉬함수는 다으모가 형태를 취하게 된다
h(k,i) = (k+i) mod m

i는 충돌시마다 증가하여 한칸씩 이동한다
Liner probing은 정말 구현이 용이하지만, primary clustering이라는
문제점을 갖고 있다 primary clustering은 충돌이 나면, 뒤 슬롯에 데이터를

넣어 하나의 정보 덩어리를 이루기 때문에, 데이터들의 특정 위치에만 밀집하는 현상을 말한다
이 현상으로 slot이 많아지면 많아질수록 탐색 시간에 엄청 늘어나게 된다 3.1.2 Qu
adratic probing primary clustering을 방지하기 위해 hash함수를

다음과 같이 2차식의 형태로 만드는 것이다 h(k,i) = (h(k) + c1*i + c
2*i^2) mod m Liner probing과는 달리 i가 2차식의 형태를 취해, 한칸씩
이동하는 것이 아닌 c1*i + c2*i^2만큼 이동한다 위는 간단한 예제이다

해쉬 함수는 h(k,i) = (k+i^2) mod m 의 형태를 취한다
3번째에서 h(48,0) = 6으로 기존의 76과 충돌이 일어났다
그래서 i를 하나 증가시켜 h(48,1) = (48+1^2) mod 7 = 0의 위치에다가

저장하였다 여기선 충돌이 한번 일어난 경우만 있는 예제이지만
만약 0에서도 충돌이 일어났다면 h(48,2) = (48+2^2) mod 7로 3의 위치에
저장되었을 것이다 하지만 Quadratic probing에도 secondary cluster

ing이라는 단점이 있다 이는 처음 시작 해쉬값이 같을 경우, 그 이후의 해쉬값들도 모두 동
일한 값으로 계산되어 충돌이 반복적으로 일어나 것을 말한다 3.1.3 Double hashi
ng Quadratic probing의 secondary clustering를 해결하기 위해

서 사용하는 방법이다 원리는 간단한데 해쉬 함수를 해쉬 함수 2개로 구성되는 것이다
해쉬 함수는 다음과 같은 형태를 가진다
h1(k) = k mod m

h2(k) = k mod m2
h(k,i) = (h1(k) + i*h2(k)) mod m
밑은 dobule hasing의 간단한 예제이다

dobule hashing을 테스트를 위해 간단하게 코드를 작성했다
실무에서 쓰는 해쉬처럼 공간이 자동적으로 확장되거나 탐색 삭제를 위한 함수는 구현하지 않았고
그냥 삽입시 충돌이 얼마나 일어나는지를 체크하기 위한 코드이다

테이블의 크기와 입력값의 크기를 조절해가며 충돌을 테스트 할 수 있다
# include # include # include gorithm> # include # include usin

g namespace std ; vector< int > v,h; int n,k,m1,m2;
int myrandom (int i) { return std::rand()%i;} void
randGenerator (vector& v, int n,int k){ srand

( time (NULL)); for(int i=1;i<=2*n;i++){ v push_bac
k (i); } random_shuffle(v begin (),v end (),myrando
m); } //더블 해싱을 위한 해싱함수 1 int hashFunc1 (int k){ ret

urn k%m1; } //더블 해싱을 위한 해싱함수 2 int hashFunc2 (int k
){ return 1+k%m2; } //더블 해싱 함수 int doubleFunc (int
k,int i){ return ( hashFunc1 (k)+i* hashFunc2 (k))%

m1; } void hashing (vector& v,vector& h,
int (*hashFunc)(int,int)){ int coll, first = -1,cou
nt = 0; double rate; for(int i=0; i

= 0; while(true){ int key = hashFunc(v[i],c); if(h[
key] == -1){ // printf(“%d가 %d 에 저장! “,v[i],key); h

[key] = v[i]; break; } else{ // printf(“%d번쨰 %d가 %
d 에서 충돌 적재율 : %lf “,i,v[i],key,(double)i/n*100); i
f(first == -1) { first = v[i]; rate = (double)i/n*

100; } count++; c++; } } } printf(“첫 충돌 값 : %d “,f
irst); printf(“총 충돌 수 : %d “,count); printf(“첫 충돌
시 적재율 : %lf%% “,rate); } int main (){ printf(“키 값

범위의 크기 :”); scanf(“%d”,&k); printf(“해시테이블 크기(1~n)
: “); scanf(“%d”,&n); printf(“m1, m2 입력 : “); scan
f(“%d %d”,&m1,&m2); //해시테이릅 크기 증가 printf(” “); ran

dGenerator(v,n,k); for(int i=0;i ck (-1); } // for(int i = 0; i “%d “,v[i]); // } printf(” “); hashing(v,h,doubleF

unc); printf(” “); // for(int i = 0; i i++){ // printf(“%d “,h[i]); // } } <실행 화면>

해시함수 글을 쓰게 되면서 대해 메인 적인 내용을 알게 되었다.

머클트리 는라이노드에서거래를검증하기위해사용됨

주제어 인 머클트리 에 대해 쓴 글이며 요약된 정보는 아래와 같다.

머클트리는 SHA-256 암호화 (해시함수)를 사용
머클트리는 데이터의 간편하고 확실한 인증을 위해서 SHA-256 암호화 기술(해시함수)를
사용하고 있습니다 머클트리는 라이트 노드에서 거래를 검증하기 위해 사용됨

머클트리(Merkle Tree) 혹은 해시트리(Hash Tree)라는 구조는 Ralph
Merkle이라는 사람이 1979년에 만들어 낸 개념입니다 머클트리를 사용한 검증법
머클트리란?

머클트리 머클트리란?
머클트리 머클트리(Merkle Tree) 혹은 해시트리(Hash Tree)라는 구조는 Ralph
Merkle이라는 사람이 1979년에 만들어 낸 개념입니다 다른 트리 알고리즘과는 다르게 머

클트리의 목적은 빠른 검색이 아니라 데이터의 간편하고 확실한 인증을 위해 사용합니다 머클트리
의 최상위 부모노드(혹은 루트)는 머클루트라 부르며 블록체인의 원소역할을 수행하는 블록에서
저장된 트랜잭션들의 해시트리라 볼 수 있습니다 머클트리는 데이터의 간편하고 확실한 인증을 위

해서 SHA-256 암호화 기술(해시함수)를 사용하고 있습니다 자세한 내용은 아래 머클트리
그림과 같이 설명하겠습니다 SHA-256 암호화 (해시함수)란? SHA-256은 암호화 기술
로서 복호화가 되지 않는 단방향 암호화 기술입니다 암호화된 결과는 16진수로 어떠한 수를 암

호화 하더라고 결과의 크기는 64자입니다 http://www.convertstring.com
/ko/Hash/SHA256 해당 사이트에 들어가 abcd 라는 값을 SHA256 암호화 하
면 88D4266FD4E6338D13B845FCF289579D209C897823B9217DA

밑에 정보를 보면 자세히 알수 있다.

3E161936F031589 라는 값이 나오게 됩니다 만약 abcd가 아닌 aacd라는 값을
SHA256으로 암호화 하면 전혀 다른 값이 나오게 됩니다 이와 같이 입력된 값이 1개라도
다를 경우, 결과는 전혀 연상할 수 없습니다 또한 입력할 글자의 수에 상관없이 결과의 크기

는 64자입니다 머클트리 구조 위 그림에서는 해시함수 64자를 전부 입력하기 힘들어 길이가
4인 값으로 대체했습니다 (원래는 4자가 아닌 64자입니다.) 블록체인에서는 먼저 각 트랜잭
션(이하 TX1, TX2, …, TXn)들을 SHA-256으로 암호화해 64자의 해시결과

를 만들어 냅니다 다음 각 인접한 노드들을 합한 다음, 다시 SHA-256으로 암호화해 해시
결과를 만들어 냅니다 이러한 과정을 단 1개의 해시가 나올때까지 반복합니다 한마디로 수많은
거래내용들을 해시함수를 통해 압축하고 인접한 노드끼리 더한다음 다시 압축 과 같은 과정을 반

복해 나갑니다 모든 결과 값은 이전 출력들을 해시함수를 거쳤기 때문에 입력이 하나라도 달라지
면 최종결과인 머클루트가 달라지게 됩니다 이러한 특성으로 블록에서 거래변조가 일어났는지를 확
인할 수 있으며, 거래내용이 아무리 길어도 해시함수를 거친 결과는 64자이므로 블록의 용량을

획기적으로 줄일 수 있게 됩니다 머클트리를 사용한 검증법 지금부터 비트코인을 예를 들어 검
증하는 방식을 설명하겠습니다 머클트리 검증에 미리 풀 노드와 라이트 노드라는 개념이 나오는데
풀노드는 제네시스 블록부터 지금까지의 블록 즉, 블록체인 전체를 보유하고 유지하는 노드입니다

라이트 노드는 블록체인 전체가 아닌 몇몇 블록만 보유하고 있으며 풀노드에게서 필요한 정보를
받아서 유지하는 노드입니다 만약 아래의 그림과 같이 라이트 노드에서 가장 마지막 값인 1e3
a 해시값과 머클루트인 af3d 해시값만 보유하고 있다고 가정하고 1e3a라는 거래내역이 실제로

인지 확인을 어떻게 할까요? 방식은 풀노드로 부터 검은 네모박스인 43bc, 143c, 89
fe의 정보를 받아 해시 함수에 차례대로 넣어 계산을 진행합니다 아래의 그림과 같이 검은 네
모박스를 알게되면 인접한 노드끼리 더한 뒤 해쉬를 통해 상대값을 알게되어 머클트리를 진행해

나갈 수 있게 됩니다 이와 같은 경로를 머클경로라 합니다 만약 검은 네모박스가 아닌 파란 네
모박스를 알게 된다면 해시경로를 진행해 나갈 수 없어 머클루트가 진짜인지 알 수 없게 됩니다
이러한 과정을 통해 도출된 결과가 머클루트인 af3d의 값과 동일하지 않다면 1e3a 해시

값은 거짓거래로 판명이 납니다 요약 머클트리는 SHA-256 암호화 (해시함수)를 사용 머
클트리를 이용하면 빠르게 정보 검증을 할 수 있고 트리 저장 용량도 줄일 수 있음 머클트
리는 라이트 노드에서 거래를 검증하기 위해 사용됨


머클트리 글을 쓰게 되면서 대해 메인 적인 내용을 알게 되었다.

작업증명 보상은noce값을찾아내고,그결과새로운블록체인에

주제어 인 작업증명 에 대해 쓴 글이며 요약된 정보는 아래와 같다.

그리고 블록 해쉬는 작업 증명의 해답( nonce 값)을 찾아내야 구할 수 있으므로, 거래
정보를 변경한 블록부터 그 이후의 모든 블록을 순서대로 다시 채굴해야 한다 채굴은 블록에
담긴 거래 정보를 유효한 것으로 확정시키기 위해 어떤 숫자값을 찾아내는 작업 증명(Pro

of of Work)과 그에 따른 보상을 합친 개념이다. 블록 해쉬가 특정 숫자보다 낮게
나올 때의 nonce 값을 찾아내는 것이 작업 증명이라고 했다 작업 난이도는 블록 헤더 정
보에서 bits 라는 값으로 조절된다 블록 해쉬가 특정 숫자보다 낮게 나올 떄의 nonce

작업증명 BlockChain 기초 개념
작업증명 상당히 피상적으로만 알고 있던, 그래서 얘기하다가 서로 질문을 던져보면 너도 모르고 나도 모
르는. 블록이 정확히 뭘 말하는 거냐

..
그래서 채굴이 정확히 뭐라는 거냐
..

어려운 문제를 푼다는데 그게 대체 무슨 문제라는 거냐
..
분산된 어쩌구라는데 뭐가 어떻게 분산되어 있다는 거냐

..
사실 국내에서 찾을 수 있는 이런 저런 자료를 봐도 우연의 일치일까, 딱 어떤 정해진 선까지
만 다루고 더 깊은 얘기가 없다 그래서 그 수준까지의 내용을 보고 떠오르는 질문에 대한 답을

조금더 자세히 알아 보자면

찾기는 쉽지 않았는데, 이 책에 바로 그 수준 너머에 있는 내용이 담겨 있다 블록체인에 칭
칭 감길 수 있게 해주는 길잡이로서 매우 좋은 책이다 하지만 원문이 원래 그런건지 아니면 번
역이 좀 그런건지, 여튼 번역 결과는 그리 높은 점수를 줄 수는 없을 듯. 시작하기 전에 블

록체인과 비트코인의 구분 정도는 해보자 블록체인은 비트코인의 운영 바탕이 되는 체계이고, 비
트코인은 블록체인을 화폐 발행과 운영에 응용한 것이다 고로 핵심이 되는 기본 기술 체계는 블
록체인이고, 비트코인은 블록체인을 바탕으로 만들어낸 서비스의 하나이다 그럼 블록체인이 어떻게

작동하는지 기초부터 한 번 들여다보자 BlockChain
블록체인은 최초의 블록(Genesis Block)부터 시작해서 바로 앞의 블록에 대한 링크를
보유하고 있는 링크드 리스트다 블록체인은 여러 노드에 걸쳐 분산되어 저장 및 관리되며, 블록

에는 거래 정보가 포함되어 있으므로, 블록의 집합체인 블록체인은 모든 거래 정보를 포함하는
거대한 분산 장부라고 할 수 있다 Block 블록은 블록체인의 원소로서 개념적으로는 다수의
거래 정보의 묶음을 의미한다 블록은 블록 헤더와 거래 정보, 기타 정보로 구성된다

블록 헤더는 version , previousblockhash , merklehash , t
ime , bits , nonce 이렇게 6개의 정보로 구성된다 , , , , , 이렇게 6
개의 정보로 구성된다 거래 정보는 입출금과 관련한 여러가지 정보를 갖고 있다

기타 정보는 블록 내에 있는 정보 중에서 블록 헤더와 거래 정보에 해당하지 않는 정보를 말하
며, 블록 해쉬 계산에 사용되지 않는다 Block Header
블록 헤더는 다음의 6가지 정보로 구성

version : 소프트웨어/프로토콜 버전 previousblockhash : 블록 체인에서
바로 앞에 위치하는 블록의 블록 해쉬 merklehash : 개별 거래 정보의 거래 해쉬를
2진 트리 형태로 구성할 때, 트리 루트에 위치하는 해쉬값 time : 블록이 만들어진 시간

bits : 난이도 조절용 수치 nonce : 최초 0에서 시작하여 조건을 만족하는 해쉬값
을 찾아낼때까지의 1씩 증가하는 계산 회수 Block Hash 블록의 식별자 수행을 하는 블
록 해쉬는 6가지의 블록 헤더 정보를 입력값으로 하고, 여기에 SHA256 해쉬 함수를 2회

적용해서 계산되는 값으로, 32바이트의 숫자값이다 이름은 블록 해쉬이지만 그 값은 블록 전
체를 해쉬한 값이 아니라, 블록 헤더를 해쉬한 값이다 지금까지의 내용을 바탕으로 블록 해쉬를
구하는 과정을 그림으로 나타내면 다음과 같다 이제 이 그림을 중심으로 얘기를 풀어가보자 완

료된 거래 정보의 변경이 사실상 불가능한 이유 거래 정보의 해쉬값은 해당 거래가 포함된 블록
의 merklehash 계산에 입력값으로 사용되고, merklehash 는 블록 해쉬의 계산
에 입력값으로 사용된다 블록 해쉬는 다음 블록(A라 하면)의 previousblockhash

값으로 저장되며, previousblockhash 은 A 블록의 블록 헤더 정보로서, A
블록의 블록 해쉬를 계산하는데 입력값으로 사용된다 따라서, 거래 정보가 변경되면 merkle
hash 가 변경되고, merklehash 가 변경되면 블록 해쉬가 변경되고, 블록 해쉬의

변경은 다음 블록의 블록 해쉬 변경으로 연쇄적으로 이어지게 된다 그리고 블록 해쉬는 작업 증
명의 해답( nonce 값)을 찾아내야 구할 수 있으므로, 거래 정보를 변경한 블록부터 그
이후의 모든 블록을 순서대로 다시 채굴해야 한다 블록 하나 채굴하는데 평균 10분이 소요되고

, http://bitcoincharts.com/bitcoin/ 에서 확인한 2016-01-
23 오늘날 총 블록 수가 약 40만 블록이므로, 최초의 원조 블록인 Genesis 블록에 포
함된 거래를 변경하면 약 400만 분, 약 7.6년의 시간이 소요된다 그 7.6년의 시간 동

안에도 처음보는 블록들도 평균 10분 마다 하나 씩 계속 생성되므로 이를 모두 뒤집는 것은 사
실 상 불가능하다 완료된 거래 정보를 변경하려면, 변경하려는 거래 정보가 포함된 블록부터 그
이후의 모든 블록을 순서대로 다시 채굴해야 하는데, 이는 많은 시간이 소요되고, 그 동안

다른 노드들에 의해 블록이 계속 추가되므로, 완료된 거래 정보의 변경은 현실적으로 사실상 불
가능하다 채굴 채굴은 일반인들이 비트코인을 쉽게 이해할 수 있도록 만든 용어로서, 작업 증명
(Proof of Work)과 보상을 합친 개념이라고 생각하면 된다 Proof of Work

(작업 증명) 작업 증명은 혁신 블록을 블록체인에 추가하는 작업을 완료했음을 증명하
는 것이라고 이해하면 된다 처음보는 블록을 블록체인에 추가하려면, 그 혁신 블록의 블록 해쉬
를 계산해내야하고, 그 블록 해쉬를 계산해내려면 그 블록의 블록 헤더 정보 중의 하나인 no

nce 값을 계산을 통해 구해야 한다 결론적으로 이 nonce 값을 구하는 것이 바로 작업
증명이다 nonce 값의 계산 결과부터 말하면 nonce 값은, 이 nonce 값을 입력값
중의 하나로 해서 계산되는 블록 해쉬값이 특정 숫자보다 작아지게 하는 값을 말한다 그리고 해

쉬 함수의 특성상, 어떤 해쉬값(A라고 하면)을 결과로 나오게 하는 입력값을 찾으려면, A에
서 역산을 하는 방식으로는 찾을 수 없고, 결과가 A가 될 때까지 무작위로 입력값을 계속 바
꿔가면서 찾아낼 수 밖에 없다 그 입력값을 바꿀 수 있는 유일한 통로가 바로 nonce 다

다시 말해, 아래 그림의 블록 헤더란에 포함된 6가지 정보 중에서 확정되지 않아서 값을
바꿀 수 있는 유일한 항목이 nonce 다 이 nonce 값을 1씩 증가시키면서 반복적으로
계산한 블록 해쉬값이 특정 숫자보다 작은 값이 나오면, 그 때의 nonce 값으로 계산한 블

록 해쉬가 그 블록의 블록 해쉬로 확정되고, 블록 해쉬라는 식별자를 얻은 그 블록은 혁신
블록으로서 블록 체인에 추가되며 작업이 완료 된다 블록 해쉬가 특정 숫자보다 낮게 나올 떄의
nonce 값이 바로 작업 증명을 나타내는 nonce 값이다 이 과정을 그림으로 살펴보면

아래와 같다 아래의 그림은 블록 해쉬가 000000a84.. 보다 작게 나오는 nonce 값
을 구하는 과정을 나타내고 있다 앞에서 설명한 대로 nonce 외의 모든 항목의 값은 이미
정해져 있다 nonce 값이 0 일 때의 해쉬를 구해보니 000000a84.. 보다 큰 fa

8cbaeed.. 가 나와서 작업 증명에 실패 했다 다시 nonce 가 1 일 때의 해쉬를
구해보니 932d16e2e.. 가 나와서 또 실패. nonce 가 2 일 때의 해쉬, 3 일
때의 해쉬. 를 계속 반복해서 구하고 실패하다가, nonce 가 82,764,351 일 때

의 해쉬를 구해보니 드디어 000000a84.. 보다 작은 000000a83.. 이 나와서
작업 증명에 성공했다 그렇다면 작업 증명 성공 여부의 기준이 되는 000000a84.. 라는
값은 어떻게 정해지나? 바로 작업 난이도에 의해 정해진다(앞의 그림에서는 개념을 돕기 위해

작업 난이도 보다는 더 상세한 채굴 난이도 로 표시했으나, 이제 그 작업이 무엇인지 알았
으니 앞으로는 작업 난이도 라고 한다.) 작업 난이도 블록 해쉬가 특정 숫자보다 낮게 나올
때의 nonce 값을 찾아내는 것이 작업 증명이라고 했다 작업 난이도는 nonce 값 계산의

어려운 정도를 나타낸다 작업 난이도는 블록 헤더 정보에서 bits 라는 값으로 조절된다 앞
에서 블록 해쉬는 32바이트의 숫자라고 했는데, 개념을 쉽게 하기 위해 블록 해쉬를 부호 없
는 1바이트의 숫자라고 해보자 그럼 1바이트의 숫자값을 블록 해쉬값으로 산출하는 해쉬 함수는

0 ~ 255 사이의 값을 결과로 산출한다 블록 해쉬가 128보다 작아야 한다고 하면, 0
~ 255 사이의 값을 산출하는 해쉬 함수를 적용해서 128보다 작은 블록 해쉬값이 나올
확률은 128보다 작은 수(0~127)의 개수 = 128 / 해쉬 함수가 산출할 수 있는 모

든 값(0~255)의 개수 = 256 , 즉, 128/256 이므로, 50%의 확률이다 블록
해쉬가 64보다 작아야 한다면 64/256, 즉 25%의 확률로 nonce 값을 구할 수
있다 블록 해쉬가 32보다 작아야 한다면 확률은 12.5%로 줄어든다 여기서 128, 64,

32라는 특정 숫자가 바로 블록 헤더 정보의 bits 이다 실제로 bits 의 값이 128
, 256 이런 식으로 저장되지는 않고, 지수와 계수를 사용하는 별도의 표현 방식이 있다 난
이도는 2,160개의 블록이 생성되는데 소요되는 시간이 평균 시간인 21,600분(10분/블

록 * 2,160블록)보다 오래 걸리면 낮아지고, 적게 걸리면 높아지는 방식으로, 대략 21
,600분을 주기로 전체적으로 평균 10분이 소요되는 하나의 난이도가 전체에 적용된다 블록
헤더의 bits 는 nonce 값을 계산하는데 기준이 되는 특정 숫자를 나타내며, 블록체인

전체에 걸쳐 일률적으로 적용되는 숫자다 보상 보상은 새로 발행되는 비트코인과 해당 블록에 포
함되는 거래의 거래 수수료의 합이다 비트코인의 처음보는 발행은, 채굴자가 블록을 처음 구성할
때 채굴자의 지갑으로 일정량의 비트코인이 입금되는 거래를 그 블록의 첫 거래(generati

on transaction)로 추가하는 방식으로 이루어진다 새로 발행되는 비트코인은 최초에
50BTC에서 시작해서 블록 체인에 21만개의 블록이 추가될 때마다 절반으로 줄어든다 거래
수수료는 각 거래 당사자끼리 자율적으로 정할 수 있고, 거래가 블록에 추가되는 우선 순위를

결정하는데 거래 수수료가 입력값으로 사용되기도 한다 보상은 nonce 값을 찾아내고, 그 결
과 처음보는 블록을 블록 체인에 추가해서, 해당 블록에 포함된 모든 거래를 유효한 거래로 확정
시켜준 대가라고 할 수 있다 채굴 보상이 줄어든다면 채굴에 의해 유지되는 블록체인이 지속될

수 있나? 비트코인의 총 발행량은 2,100만BTC로 정해져 있다 결국 채굴하더라도 언젠가는
비트코인은 더 이상 발행되지 않으므로, 거래 수수료만이 유일한 보상으로 남게 된다 어떤 상
황에서든 채굴이 의미가 있으려면, 채굴에 소요되는 비용보다 수익이 더 커야하며, 이는 비트코

인의 신규 발행이 없는 상황에서도 마찬가지다 이 조건을 만족시켜야 채굴이 계속되고 블록체인이

지속될 수 있다 비트코인 신규 발행이 없는 상황에서 이 조건이 만족되려면 다음과 같은 시
나리오가 충족되어야 한다 채굴 비용의 감소 채굴 비용의 감소는 결국 작업 증명 해답을 찾는
데 얼마의 시간이 소요되느냐에 달려있다 이는 작업의 난이도에 달려 있으므로, 거래 수수료만

이 유일한 보상인 상황에서 블록체인이 유지되려면 작업의 난이도가 현재보다 더 낮아져야 한다
거래 수수료의 증가 거래 수수료의 증가는 결국 거래 수수료율의 증가를 의미하는데, 거래의
성격과 다른 화폐와의 경쟁 등 시장 상황에 따라 정해지겠으나 대폭 높아지기는 어려울 것이

다 신규 발행이 사라지는 2140년 경 이후에는 결국은 채굴 난이도가 낮아지는 방식으로 블
록체인이 유지될 것이다 정리 블록체인은 모든 거래 정보를 포함하는 거대한 장부로서, 여러
채굴자의 컴퓨터에 복제되어 관리되는 분산 장부다 블록은 다수의 거래 정보의 묶음이며, 이런

블록이 체인처럼 연결되어 전체 블록체인을 형성한다 채굴은 블록에 담긴 거래 정보를 유효한
것으로 확정시키기 위해 어떤 숫자값을 찾아내는 작업 증명(Proof of Work)과 그
에 따른 보상을 합친 개념이다.

작업증명 글을 쓰게 되면서 대해 주요 적인 내용을 알게 되었다.

작업증명 거래정보의해쉬값은당가포함된블록merklhas계산

작업증명 에 대해 쓴 글 요약 하자면 아래와 같다.

그리고 블록 해쉬는 작업 증명의 해답( nonce 값)을 찾아내야 구할 수 있으므로, 거래
정보를 변경한 블록부터 그 이후의 모든 블록을 순서대로 다시 채굴해야 한다 채굴은 블록에
담긴 거래 정보를 유효한 것으로 확정시키기 위해 어떤 숫자값을 찾아내는 작업 증명(Pro

of of Work)과 그에 따른 보상을 합친 개념이다. 블록 해쉬가 특정 숫자보다 낮게
나올 때의 nonce 값을 찾아내는 것이 작업 증명이라고 했다 작업 난이도는 블록 헤더 정
보에서 bits 라는 값으로 조절된다 블록 해쉬가 특정 숫자보다 낮게 나올 떄의 nonce

작업증명 BlockChain 기초 개념
작업증명 상당히 피상적으로만 알고 있던, 그래서 얘기하다가 서로 질문을 던져보면 너도 모르고 나도 모
르는. 블록이 정확히 뭘 말하는 거냐

..
그래서 채굴이 정확히 뭐라는 거냐
..

어려운 문제를 푼다는데 그게 대체 무슨 문제라는 거냐
..
분산된 어쩌구라는데 뭐가 어떻게 분산되어 있다는 거냐

..
사실 국내에서 찾을 수 있는 이런 저런 자료를 봐도 우연의 일치일까, 딱 어떤 정해진 선까지
만 다루고 더 깊은 얘기가 없다 그래서 그 수준까지의 내용을 보고 떠오르는 질문에 대한 답을

조금더 자세히 알아 보자면

찾기는 쉽지 않았는데, 이 책에 바로 그 수준 너머에 있는 내용이 담겨 있다 블록체인에 칭
칭 감길 수 있게 해주는 길잡이로서 많이 좋은 책이다 하지만 원문이 원래 그런건지 아니면 번
역이 좀 그런건지, 여튼 번역 결과는 그리 높은 점수를 줄 수는 없을 듯. 시작하기 전에 블

록체인과 비트코인의 구분 정도는 해보자 블록체인은 비트코인의 운영 바탕이 되는 체계이고, 비
트코인은 블록체인을 화폐 발행과 운영에 응용한 것이다 고로 핵심이 되는 시스템 기술 체계는 블
록체인이고, 비트코인은 블록체인을 바탕으로 만들어낸 서비스의 하나이다 그럼 블록체인이 어떻게

작동하는지 기초부터 한 번 들여다보자 BlockChain
블록체인은 최초의 블록(Genesis Block)부터 시작해서 바로 앞의 블록에 대한 링크를
갖고 있는 링크드 리스트다 블록체인은 여러 노드에 걸쳐 분산되어 저장 및 관리되며, 블록

에는 거래 정보가 포함되어 있으므로, 블록의 집합체인 블록체인은 모든 거래 정보를 포함하는
거대한 분산 장부라고 할 수 있다 Block 블록은 블록체인의 원소로서 개념적으로는 다수의
거래 정보의 묶음을 의미한다 블록은 블록 헤더와 거래 정보, 기타 정보로 구성된다

블록 헤더는 version , previousblockhash , merklehash , t
ime , bits , nonce 이렇게 6개의 정보로 구성된다 , , , , , 이렇게 6
개의 정보로 구성된다 거래 정보는 입출금과 관련한 여러가지 정보를 보유하고 있다

기타 정보는 블록 내에 있는 정보 중에서 블록 헤더와 거래 정보에 해당하지 않는 정보를 말하
며, 블록 해쉬 계산에 사용되지 않는다 Block Header
블록 헤더는 다음의 6가지 정보로 구성

version : 소프트웨어/프로토콜 버전 previousblockhash : 블록 체인에서
바로 앞에 위치하는 블록의 블록 해쉬 merklehash : 개별 거래 정보의 거래 해쉬를
2진 트리 형태로 구성할 때, 트리 루트에 위치하는 해쉬값 time : 블록이 만들어진 시간

bits : 난이도 조절용 수치 nonce : 최초 0에서 시작하여 조건을 만족하는 해쉬값
을 찾아낼때까지의 1씩 증가하는 계산 회수 Block Hash 블록의 식별자 수행을 하는 블
록 해쉬는 6가지의 블록 헤더 정보를 입력값으로 하고, 여기에 SHA256 해쉬 함수를 2회

적용해서 계산되는 값으로, 32바이트의 숫자값이다 이름은 블록 해쉬이지만 그 값은 블록 전
체를 해쉬한 값이 아니라, 블록 헤더를 해쉬한 값이다 지금까지의 내용을 바탕으로 블록 해쉬를
구하는 과정을 그림으로 나타내면 다음과 같다 이제 이 그림을 중심으로 얘기를 풀어가보자 완

료된 거래 정보의 변경이 사실상 불가능한 이유 거래 정보의 해쉬값은 해당 거래가 포함된 블록
의 merklehash 계산에 입력값으로 사용되고, merklehash 는 블록 해쉬의 계산
에 입력값으로 사용된다 블록 해쉬는 다음 블록(A라 하면)의 previousblockhash

값으로 저장되며, previousblockhash 은 A 블록의 블록 헤더 정보로서, A
블록의 블록 해쉬를 계산하는데 입력값으로 사용된다 따라서, 거래 정보가 변경되면 merkle
hash 가 변경되고, merklehash 가 변경되면 블록 해쉬가 변경되고, 블록 해쉬의

변경은 다음 블록의 블록 해쉬 변경으로 연쇄적으로 이어지게 된다 그리고 블록 해쉬는 작업 증
명의 해답( nonce 값)을 찾아내야 구할 수 있으므로, 거래 정보를 변경한 블록부터 그
이후의 모든 블록을 순서대로 다시 채굴해야 한다 블록 하나 채굴하는데 평균 10분이 소요되고

, http://bitcoincharts.com/bitcoin/ 에서 확인한 2016-01-
23 오늘날 총 블록 수가 약 40만 블록이므로, 최초의 원조 블록인 Genesis 블록에 포
함된 거래를 변경하면 약 400만 분, 약 7.6년의 시간이 소요된다 그 7.6년의 시간 동

안에도 혁신 블록들도 평균 10분 마다 하나 씩 계속 생성되므로 이를 모두 뒤집는 것은 사
실 상 불가능하다 완료된 거래 정보를 변경하려면, 변경하려는 거래 정보가 포함된 블록부터 그
이후의 모든 블록을 순서대로 다시 채굴해야 하는데, 이는 많은 시간이 소요되고, 그 동안

다른 노드들에 의해 블록이 계속 추가되므로, 완료된 거래 정보의 변경은 현실적으로 사실상 불
가능하다 채굴 채굴은 일반인들이 비트코인을 쉽게 이해할 수 있도록 만든 용어로서, 작업 증명
(Proof of Work)과 보상을 합친 개념이라고 생각하면 된다 Proof of Work

(작업 증명) 작업 증명은 처음보는 블록을 블록체인에 추가하는 작업을 완료했음을 증명하
는 것이라고 이해하면 된다 혁신 블록을 블록체인에 추가하려면, 그 처음보는 블록의 블록 해쉬
를 계산해내야하고, 그 블록 해쉬를 계산해내려면 그 블록의 블록 헤더 정보 중의 하나인 no

nce 값을 계산을 통해 구해야 한다 결론적으로 이 nonce 값을 구하는 것이 바로 작업
증명이다 nonce 값의 계산 결과부터 말하면 nonce 값은, 이 nonce 값을 입력값
중의 하나로 해서 계산되는 블록 해쉬값이 특정 숫자보다 작아지게 하는 값을 말한다 그리고 해

쉬 함수의 특성상, 어떤 해쉬값(A라고 하면)을 결과로 나오게 하는 입력값을 찾으려면, A에
서 역산을 하는 방식으로는 찾을 수 없고, 결과가 A가 될 때까지 무작위로 입력값을 계속 바
꿔가면서 찾아낼 수 밖에 없다 그 입력값을 바꿀 수 있는 유일한 통로가 바로 nonce 다

다시 말해, 아래 그림의 블록 헤더란에 포함된 6가지 정보 중에서 확정되지 않아서 값을
바꿀 수 있는 유일한 항목이 nonce 다 이 nonce 값을 1씩 증가시키면서 반복적으로
계산한 블록 해쉬값이 특정 숫자보다 작은 값이 나오면, 그 때의 nonce 값으로 계산한 블

록 해쉬가 그 블록의 블록 해쉬로 확정되고, 블록 해쉬라는 식별자를 얻은 그 블록은 혁신
블록으로서 블록 체인에 추가되며 작업이 완료 된다 블록 해쉬가 특정 숫자보다 낮게 나올 떄의
nonce 값이 바로 작업 증명을 나타내는 nonce 값이다 이 과정을 그림으로 살펴보면

아래와 같다 아래의 그림은 블록 해쉬가 000000a84.. 보다 작게 나오는 nonce 값
을 구하는 과정을 나타내고 있다 앞에서 설명한 대로 nonce 외의 모든 항목의 값은 이미
정해져 있다 nonce 값이 0 일 때의 해쉬를 구해보니 000000a84.. 보다 큰 fa

8cbaeed.. 가 나와서 작업 증명에 실패 했다 다시 nonce 가 1 일 때의 해쉬를
구해보니 932d16e2e.. 가 나와서 또 실패. nonce 가 2 일 때의 해쉬, 3 일
때의 해쉬. 를 계속 반복해서 구하고 실패하다가, nonce 가 82,764,351 일 때

의 해쉬를 구해보니 드디어 000000a84.. 보다 작은 000000a83.. 이 나와서
작업 증명에 성공했다 그렇다면 작업 증명 성공 여부의 기준이 되는 000000a84.. 라는
값은 어떻게 정해지나? 바로 작업 난이도에 의해 정해진다(앞의 그림에서는 개념을 돕기 위해

작업 난이도 보다는 더 상세한 채굴 난이도 로 표시했으나, 이제 그 작업이 무엇인지 알았
으니 앞으로는 작업 난이도 라고 한다.) 작업 난이도 블록 해쉬가 특정 숫자보다 낮게 나올
때의 nonce 값을 찾아내는 것이 작업 증명이라고 했다 작업 난이도는 nonce 값 계산의

어려운 정도를 나타낸다 작업 난이도는 블록 헤더 정보에서 bits 라는 값으로 조절된다 앞
에서 블록 해쉬는 32바이트의 숫자라고 했는데, 개념을 쉽게 하기 위해 블록 해쉬를 부호 없
는 1바이트의 숫자라고 해보자 그럼 1바이트의 숫자값을 블록 해쉬값으로 산출하는 해쉬 함수는

0 ~ 255 사이의 값을 결과로 산출한다 블록 해쉬가 128보다 작아야 한다고 하면, 0
~ 255 사이의 값을 산출하는 해쉬 함수를 적용해서 128보다 작은 블록 해쉬값이 나올
확률은 128보다 작은 수(0~127)의 개수 = 128 / 해쉬 함수가 산출할 수 있는 모

든 값(0~255)의 개수 = 256 , 즉, 128/256 이므로, 50%의 확률이다 블록
해쉬가 64보다 작아야 한다면 64/256, 즉 25%의 확률로 nonce 값을 구할 수
있다 블록 해쉬가 32보다 작아야 한다면 확률은 12.5%로 줄어든다 여기서 128, 64,

32라는 특정 숫자가 바로 블록 헤더 정보의 bits 이다 실제로 bits 의 값이 128
, 256 이런 식으로 저장되지는 않고, 지수와 계수를 사용하는 별도의 표현 방식이 있다 난
이도는 2,160개의 블록이 생성되는데 소요되는 시간이 평균 시간인 21,600분(10분/블

록 * 2,160블록)보다 오래 걸리면 낮아지고, 적게 걸리면 높아지는 방식으로, 대략 21
,600분을 주기로 전체적으로 평균 10분이 소요되는 하나의 난이도가 전체에 적용된다 블록
헤더의 bits 는 nonce 값을 계산하는데 기준이 되는 특정 숫자를 나타내며, 블록체인

전체에 걸쳐 일률적으로 적용되는 숫자다 보상 보상은 새로 발행되는 비트코인과 해당 블록에 포
함되는 거래의 거래 수수료의 합이다 비트코인의 처음보는 발행은, 채굴자가 블록을 처음 구성할
때 채굴자의 지갑으로 일정량의 비트코인이 입금되는 거래를 그 블록의 첫 거래(generati

on transaction)로 추가하는 방식으로 이루어진다 새로 발행되는 비트코인은 최초에
50BTC에서 시작해서 블록 체인에 21만개의 블록이 추가될 때마다 절반으로 줄어든다 거래
수수료는 각 거래 당사자끼리 자율적으로 정할 수 있고, 거래가 블록에 추가되는 우선 순위를

결정하는데 거래 수수료가 입력값으로 사용되기도 한다 보상은 nonce 값을 찾아내고, 그 결
과 처음보는 블록을 블록 체인에 추가해서, 해당 블록에 포함된 모든 거래를 유효한 거래로 확정
시켜준 대가라고 할 수 있다 채굴 보상이 줄어든다면 채굴에 의해 유지되는 블록체인이 지속될

수 있나? 비트코인의 총 발행량은 2,100만BTC로 정해져 있다 결국 채굴하더라도 언젠가는
비트코인은 더 이상 발행되지 않으므로, 거래 수수료만이 유일한 보상으로 남게 된다 어떤 상
황에서든 채굴이 의미가 있으려면, 채굴에 소요되는 비용보다 수익이 더 커야하며, 이는 비트코

인의 신규 발행이 없는 상황에서도 마찬가지다 이 조건을 만족시켜야 채굴이 계속되고 블록체인이

지속될 수 있다 비트코인 신규 발행이 없는 상황에서 이 조건이 만족되려면 다음과 같은 시
나리오가 충족되어야 한다 채굴 비용의 감소 채굴 비용의 감소는 결국 작업 증명 해답을 찾는
데 얼마의 시간이 소요되느냐에 달려있다 이는 작업의 난이도에 달려 있으므로, 거래 수수료만

이 유일한 보상인 상황에서 블록체인이 유지되려면 작업의 난이도가 현재보다 더 낮아져야 한다
거래 수수료의 증가 거래 수수료의 증가는 결국 거래 수수료율의 증가를 의미하는데, 거래의
성격과 다른 화폐와의 경쟁 등 시장 상황에 따라 정해지겠으나 대폭 높아지기는 어려울 것이

다 신규 발행이 사라지는 2140년 경 이후에는 결국은 채굴 난이도가 낮아지는 방식으로 블
록체인이 유지될 것이다 정리 블록체인은 모든 거래 정보를 포함하는 거대한 장부로서, 여러
채굴자의 컴퓨터에 복제되어 관리되는 분산 장부다 블록은 다수의 거래 정보의 묶음이며, 이런

블록이 체인처럼 연결되어 전체 블록체인을 형성한다 채굴은 블록에 담긴 거래 정보를 유효한
것으로 확정시키기 위해 어떤 숫자값을 찾아내는 작업 증명(Proof of Work)과 그
에 따른 보상을 합친 개념이다.

작업증명 글을 쓰게 되면서 대해 주요 적인 내용을 알게 되었다.

작업증명 보상은noce값을찾아내고,그결과새로운블록체인에

작업증명 에 대해 쓴 글 요약 하자면 아래와 같다.

그리고 블록 해쉬는 작업 증명의 해답( nonce 값)을 찾아내야 구할 수 있으므로, 거래
정보를 변경한 블록부터 그 이후의 모든 블록을 순서대로 다시 채굴해야 한다 채굴은 블록에
담긴 거래 정보를 유효한 것으로 확정시키기 위해 어떤 숫자값을 찾아내는 작업 증명(Pro

of of Work)과 그에 따른 보상을 합친 개념이다. 블록 해쉬가 특정 숫자보다 낮게
나올 때의 nonce 값을 찾아내는 것이 작업 증명이라고 했다 작업 난이도는 블록 헤더 정
보에서 bits 라는 값으로 조절된다 블록 해쉬가 특정 숫자보다 낮게 나올 떄의 nonce

작업증명 BlockChain 기초 개념
작업증명 상당히 피상적으로만 알고 있던, 그래서 얘기하다가 서로 질문을 던져보면 너도 모르고 나도 모
르는. 블록이 정확히 뭘 말하는 거냐

..
그래서 채굴이 정확히 뭐라는 거냐
..

어려운 문제를 푼다는데 그게 대체 무슨 문제라는 거냐
..
분산된 어쩌구라는데 뭐가 어떻게 분산되어 있다는 거냐

..
사실 국내에서 찾을 수 있는 이런 저런 자료를 봐도 우연의 일치일까, 딱 어떤 정해진 선까지
만 다루고 더 깊은 얘기가 없다 그래서 그 수준까지의 내용을 보고 떠오르는 질문에 대한 답을

그레서 중점적으로 다룰 것은

찾기는 쉽지 않았는데, 이 책에 바로 그 수준 너머에 있는 내용이 담겨 있다 블록체인에 칭
칭 감길 수 있게 해주는 길잡이로서 많이 좋은 책이다 하지만 원문이 원래 그런건지 아니면 번
역이 좀 그런건지, 여튼 번역 결과는 그리 높은 점수를 줄 수는 없을 듯. 시작하기 전에 블

록체인과 비트코인의 구분 정도는 해보자 블록체인은 비트코인의 운영 바탕이 되는 체계이고, 비
트코인은 블록체인을 화폐 발행과 운영에 응용한 것이다 고로 핵심이 되는 기본 기술 체계는 블
록체인이고, 비트코인은 블록체인을 바탕으로 만들어낸 서비스의 하나이다 그럼 블록체인이 어떻게

작동하는지 기초부터 한 번 들여다보자 BlockChain
블록체인은 최초의 블록(Genesis Block)부터 시작해서 바로 앞의 블록에 대한 링크를
보유하고 있는 링크드 리스트다 블록체인은 여러 노드에 걸쳐 분산되어 저장 및 관리되며, 블록

에는 거래 정보가 포함되어 있으므로, 블록의 집합체인 블록체인은 모든 거래 정보를 포함하는
거대한 분산 장부라고 할 수 있다 Block 블록은 블록체인의 원소로서 개념적으로는 다수의
거래 정보의 묶음을 의미한다 블록은 블록 헤더와 거래 정보, 기타 정보로 구성된다

블록 헤더는 version , previousblockhash , merklehash , t
ime , bits , nonce 이렇게 6개의 정보로 구성된다 , , , , , 이렇게 6
개의 정보로 구성된다 거래 정보는 입출금과 관련한 여러가지 정보를 보유하고 있다

기타 정보는 블록 내에 있는 정보 중에서 블록 헤더와 거래 정보에 해당하지 않는 정보를 말하
며, 블록 해쉬 계산에 사용되지 않는다 Block Header
블록 헤더는 다음의 6가지 정보로 구성

version : 소프트웨어/프로토콜 버전 previousblockhash : 블록 체인에서
바로 앞에 위치하는 블록의 블록 해쉬 merklehash : 개별 거래 정보의 거래 해쉬를
2진 트리 형태로 구성할 때, 트리 루트에 위치하는 해쉬값 time : 블록이 만들어진 시간

bits : 난이도 조절용 수치 nonce : 최초 0에서 시작하여 조건을 만족하는 해쉬값
을 찾아낼때까지의 1씩 증가하는 계산 회수 Block Hash 블록의 식별자 수행을 하는 블
록 해쉬는 6가지의 블록 헤더 정보를 입력값으로 하고, 여기에 SHA256 해쉬 함수를 2회

적용해서 계산되는 값으로, 32바이트의 숫자값이다 이름은 블록 해쉬이지만 그 값은 블록 전
체를 해쉬한 값이 아니라, 블록 헤더를 해쉬한 값이다 지금까지의 내용을 바탕으로 블록 해쉬를
구하는 과정을 그림으로 나타내면 다음과 같다 이제 이 그림을 중심으로 얘기를 풀어가보자 완

료된 거래 정보의 변경이 사실상 불가능한 이유 거래 정보의 해쉬값은 해당 거래가 포함된 블록
의 merklehash 계산에 입력값으로 사용되고, merklehash 는 블록 해쉬의 계산
에 입력값으로 사용된다 블록 해쉬는 다음 블록(A라 하면)의 previousblockhash

값으로 저장되며, previousblockhash 은 A 블록의 블록 헤더 정보로서, A
블록의 블록 해쉬를 계산하는데 입력값으로 사용된다 따라서, 거래 정보가 변경되면 merkle
hash 가 변경되고, merklehash 가 변경되면 블록 해쉬가 변경되고, 블록 해쉬의

변경은 다음 블록의 블록 해쉬 변경으로 연쇄적으로 이어지게 된다 그리고 블록 해쉬는 작업 증
명의 해답( nonce 값)을 찾아내야 구할 수 있으므로, 거래 정보를 변경한 블록부터 그
이후의 모든 블록을 순서대로 다시 채굴해야 한다 블록 하나 채굴하는데 평균 10분이 소요되고

, http://bitcoincharts.com/bitcoin/ 에서 확인한 2016-01-
23 오늘날 총 블록 수가 약 40만 블록이므로, 최초의 원조 블록인 Genesis 블록에 포
함된 거래를 변경하면 약 400만 분, 약 7.6년의 시간이 소요된다 그 7.6년의 시간 동

안에도 처음보는 블록들도 평균 10분 마다 하나 씩 계속 생성되므로 이를 모두 뒤집는 것은 사
실 상 불가능하다 완료된 거래 정보를 변경하려면, 변경하려는 거래 정보가 포함된 블록부터 그
이후의 모든 블록을 순서대로 다시 채굴해야 하는데, 이는 많은 시간이 소요되고, 그 동안

다른 노드들에 의해 블록이 계속 추가되므로, 완료된 거래 정보의 변경은 현실적으로 사실상 불
가능하다 채굴 채굴은 일반인들이 비트코인을 쉽게 이해할 수 있도록 만든 용어로서, 작업 증명
(Proof of Work)과 보상을 합친 개념이라고 생각하면 된다 Proof of Work

(작업 증명) 작업 증명은 처음보는 블록을 블록체인에 추가하는 작업을 완료했음을 증명하
는 것이라고 이해하면 된다 처음보는 블록을 블록체인에 추가하려면, 그 처음보는 블록의 블록 해쉬
를 계산해내야하고, 그 블록 해쉬를 계산해내려면 그 블록의 블록 헤더 정보 중의 하나인 no

nce 값을 계산을 통해 구해야 한다 결론적으로 이 nonce 값을 구하는 것이 바로 작업
증명이다 nonce 값의 계산 결과부터 말하면 nonce 값은, 이 nonce 값을 입력값
중의 하나로 해서 계산되는 블록 해쉬값이 특정 숫자보다 작아지게 하는 값을 말한다 그리고 해

쉬 함수의 특성상, 어떤 해쉬값(A라고 하면)을 결과로 나오게 하는 입력값을 찾으려면, A에
서 역산을 하는 방식으로는 찾을 수 없고, 결과가 A가 될 때까지 무작위로 입력값을 계속 바
꿔가면서 찾아낼 수 밖에 없다 그 입력값을 바꿀 수 있는 유일한 통로가 바로 nonce 다

다시 말해, 아래 그림의 블록 헤더란에 포함된 6가지 정보 중에서 확정되지 않아서 값을
바꿀 수 있는 유일한 항목이 nonce 다 이 nonce 값을 1씩 증가시키면서 반복적으로
계산한 블록 해쉬값이 특정 숫자보다 작은 값이 나오면, 그 때의 nonce 값으로 계산한 블

록 해쉬가 그 블록의 블록 해쉬로 확정되고, 블록 해쉬라는 식별자를 얻은 그 블록은 처음보는
블록으로서 블록 체인에 추가되며 작업이 완료 된다 블록 해쉬가 특정 숫자보다 낮게 나올 떄의
nonce 값이 바로 작업 증명을 나타내는 nonce 값이다 이 과정을 그림으로 살펴보면

아래와 같다 아래의 그림은 블록 해쉬가 000000a84.. 보다 작게 나오는 nonce 값
을 구하는 과정을 나타내고 있다 앞에서 설명한 대로 nonce 외의 모든 항목의 값은 이미
정해져 있다 nonce 값이 0 일 때의 해쉬를 구해보니 000000a84.. 보다 큰 fa

8cbaeed.. 가 나와서 작업 증명에 실패 했다 다시 nonce 가 1 일 때의 해쉬를
구해보니 932d16e2e.. 가 나와서 또 실패. nonce 가 2 일 때의 해쉬, 3 일
때의 해쉬. 를 계속 반복해서 구하고 실패하다가, nonce 가 82,764,351 일 때

의 해쉬를 구해보니 드디어 000000a84.. 보다 작은 000000a83.. 이 나와서
작업 증명에 성공했다 그렇다면 작업 증명 성공 여부의 기준이 되는 000000a84.. 라는
값은 어떻게 정해지나? 바로 작업 난이도에 의해 정해진다(앞의 그림에서는 개념을 돕기 위해

작업 난이도 보다는 더 상세한 채굴 난이도 로 표시했으나, 이제 그 작업이 무엇인지 알았
으니 앞으로는 작업 난이도 라고 한다.) 작업 난이도 블록 해쉬가 특정 숫자보다 낮게 나올
때의 nonce 값을 찾아내는 것이 작업 증명이라고 했다 작업 난이도는 nonce 값 계산의

어려운 정도를 나타낸다 작업 난이도는 블록 헤더 정보에서 bits 라는 값으로 조절된다 앞
에서 블록 해쉬는 32바이트의 숫자라고 했는데, 개념을 쉽게 하기 위해 블록 해쉬를 부호 없
는 1바이트의 숫자라고 해보자 그럼 1바이트의 숫자값을 블록 해쉬값으로 산출하는 해쉬 함수는

0 ~ 255 사이의 값을 결과로 산출한다 블록 해쉬가 128보다 작아야 한다고 하면, 0
~ 255 사이의 값을 산출하는 해쉬 함수를 적용해서 128보다 작은 블록 해쉬값이 나올
확률은 128보다 작은 수(0~127)의 개수 = 128 / 해쉬 함수가 산출할 수 있는 모

든 값(0~255)의 개수 = 256 , 즉, 128/256 이므로, 50%의 확률이다 블록
해쉬가 64보다 작아야 한다면 64/256, 즉 25%의 확률로 nonce 값을 구할 수
있다 블록 해쉬가 32보다 작아야 한다면 확률은 12.5%로 줄어든다 여기서 128, 64,

32라는 특정 숫자가 바로 블록 헤더 정보의 bits 이다 실제로 bits 의 값이 128
, 256 이런 식으로 저장되지는 않고, 지수와 계수를 사용하는 별도의 표현 방식이 있다 난
이도는 2,160개의 블록이 생성되는데 소요되는 시간이 평균 시간인 21,600분(10분/블

록 * 2,160블록)보다 오래 걸리면 낮아지고, 적게 걸리면 높아지는 방식으로, 대략 21
,600분을 주기로 전체적으로 평균 10분이 소요되는 하나의 난이도가 전체에 적용된다 블록
헤더의 bits 는 nonce 값을 계산하는데 기준이 되는 특정 숫자를 나타내며, 블록체인

전체에 걸쳐 일률적으로 적용되는 숫자다 보상 보상은 새로 발행되는 비트코인과 해당 블록에 포
함되는 거래의 거래 수수료의 합이다 비트코인의 혁신 발행은, 채굴자가 블록을 처음 구성할
때 채굴자의 지갑으로 일정량의 비트코인이 입금되는 거래를 그 블록의 첫 거래(generati

on transaction)로 추가하는 방식으로 이루어진다 새로 발행되는 비트코인은 최초에
50BTC에서 시작해서 블록 체인에 21만개의 블록이 추가될 때마다 절반으로 줄어든다 거래
수수료는 각 거래 당사자끼리 자율적으로 정할 수 있고, 거래가 블록에 추가되는 우선 순위를

결정하는데 거래 수수료가 입력값으로 사용되기도 한다 보상은 nonce 값을 찾아내고, 그 결
과 혁신 블록을 블록 체인에 추가해서, 해당 블록에 포함된 모든 거래를 유효한 거래로 확정
시켜준 대가라고 할 수 있다 채굴 보상이 줄어든다면 채굴에 의해 유지되는 블록체인이 지속될

수 있나? 비트코인의 총 발행량은 2,100만BTC로 정해져 있다 결국 채굴하더라도 언젠가는
비트코인은 더 이상 발행되지 않으므로, 거래 수수료만이 유일한 보상으로 남게 된다 어떤 상
황에서든 채굴이 의미가 있으려면, 채굴에 소요되는 비용보다 수익이 더 커야하며, 이는 비트코

인의 신규 발행이 없는 상황에서도 마찬가지다 이 조건을 만족시켜야 채굴이 계속되고 블록체인이

지속될 수 있다 비트코인 신규 발행이 없는 상황에서 이 조건이 만족되려면 다음과 같은 시
나리오가 충족되어야 한다 채굴 비용의 감소 채굴 비용의 감소는 결국 작업 증명 해답을 찾는
데 얼마의 시간이 소요되느냐에 달려있다 이는 작업의 난이도에 달려 있으므로, 거래 수수료만

이 유일한 보상인 상황에서 블록체인이 유지되려면 작업의 난이도가 현재보다 더 낮아져야 한다
거래 수수료의 증가 거래 수수료의 증가는 결국 거래 수수료율의 증가를 의미하는데, 거래의
성격과 다른 화폐와의 경쟁 등 시장 상황에 따라 정해지겠으나 대폭 높아지기는 어려울 것이

다 신규 발행이 사라지는 2140년 경 이후에는 결국은 채굴 난이도가 낮아지는 방식으로 블
록체인이 유지될 것이다 정리 블록체인은 모든 거래 정보를 포함하는 거대한 장부로서, 여러
채굴자의 컴퓨터에 복제되어 관리되는 분산 장부다 블록은 다수의 거래 정보의 묶음이며, 이런

블록이 체인처럼 연결되어 전체 블록체인을 형성한다 채굴은 블록에 담긴 거래 정보를 유효한
것으로 확정시키기 위해 어떤 숫자값을 찾아내는 작업 증명(Proof of Work)과 그
에 따른 보상을 합친 개념이다.

이 글을 연제 하면서 작업증명 에 대해 특징적인 내용을 알게 되었다.

제네시스 블록높이(Blockheigt):부터현재까지

핵심단어 제네시스 블록 에 대해 쓴 글이며 밑에 글에는 요약된 정보이다

비트코인의 경우, 10분마다 처음보는 블록을 생성하여 블록체인에 연결하고 있다
블록체인 네트워크마다 블록 안에 담는 거래 데이터나 양은 조금씩 다르다
제네시스 블록(Genesis block)

새로 생성되는 블록은 채굴자들의 작업증명(PoS) 과정을 거쳐 블록체인에 추가된다
블록체인 네트워크가 시작되었음을 상징하는 첫 번째 블록이다
블록(block)

제네시스 블록 블록(block)
제네시스 블록 블록은 데이터를 저장하는 단위이다
일정 기간 동안 쌓인 거래 데이터의 변화를 여러 블록에 분산하여 담게 된다

블록체인 네트워크마다 블록 안에 담는 거래 데이터나 양은 조금씩 다르다
블록에는 거래 데이터를 비롯해 타임스탬프와 이전 블록의 해시값이 표시되어 있다
타임스탬프는 블록이 만들어진 시간을 명시함으로써 다른 내역과 겹치지 않도록 한다

이전 블록의 해시값은 블록과 블록은 체인처럼 연결되어 있는데 연결되어 있는 블록들이 서로 같
은 해시값을 갖도록 함으로써 위변조를 막고 있다 새로 생성되는 블록은 채굴자들의 작업증명(P
oS) 과정을 거쳐 블록체인에 추가된다 비트코인의 경우, 10분마다 처음보는 블록을 생성하여

블록체인에 연결하고 있다 속도가 느리다는 단점이 있어 블록을 크게 만들어서 더 빠르게 처리할
수 있도록 하는 식의 대안(라이트코인 등)도 나오고 있다 블록체인 이란?, 51% 공격
제네시스 블록(Genesis block)

그레서 중점적으로 다룰 것은

블록체인 네트워크가 시작되었음을 상징하는 첫 번째 블록이다
첫 번째 블록이 있어야 다음 블록을 계속 연결할 수 있다는 점에서 의미를 갖는다
이에 창세기라는 뜻을 가진 ‘제네시스’로 명명하였다

비트코인의 경우, 2008년 10월에 논문이 발표되었고, 2009년 1월 2일 사토시 나카모
토에 의해 비트코인 제네시스 블록이 생성되었다 한편 블록이 만들어진 순서는 높이(height)
로 표현하는데, 제네시스 블록의 높이는 0이다 블록 보상(Block reward) : 가장

먼저 작업증명(PoS)을 끝낸 채굴자에게 주어지는 보상이다 작업증명을 위해서는 하드웨어 매입
, 전기비 등의 자원을 투입해야 한다 따라서 블록 보상은 작업증명에 대한 수고비, 이를 위해
지출한 비용에 대한 보상인 셈이다 비트코인의 경우, 1 블록 당 12.5비트코인이 보상으로

주어지고 있다(2018년 기준) 채굴량의 반감기가 4년마다 오는데 2020년에는 6.25
비트코인으로 줄어들 예정이다 블록 헤더(Block header) : 거래정보, 머클루트, 난
수 등 블록의 주요 정보를 담고 있다 각 블록체인 네트워크마다 헤더에 담긴 내용은 다르다

블록 높이(Block height) : 제네시스 블록부터 지금 블록까지 블록이 만들어진 양을

의미하는데, 이를 높이로 표현하고 있다.

제네시스 블록 글을 쓰게 되면서 대해 주요 적인 내용을 알게 되었다.

인공지능 마드AI는간과유사한추론엔진으로작동하자산관리플랫폼을

주제어 인 인공지능 에 대해 쓴 글이며 요약된 정보는 아래와 같다.

블록체인 기본 AI 프로젝트 스타트업 마인드 AI(MIND AI)는 헬스케어, 금융 지식
플랫폼 등에 쓸모있는 인공지능(AI) 엔진을 개발, 에코시스템을 구축한다 블록체인 시스템 인공지
능 프로젝트인 마인드 AI는 새로히 처음보는 개념의 정보 구조를 방식으로 핵심적인 추론(R

easoning) 엔진을 쓴다 마인드 AI는 지식 공유에 대한 보상을 코인으로 제공한다 마
인드 AI는 인공지능에 대한 혁신 접근을 제공하기 위해 만들어진 엔진과 생태계다 마인드
AI는 의학 분야 등 각종 지식 정보를 모은 온톨로지(자연언어로 표현된 개념 또는 지식)를

인공지능 블록체인 베이스 AI 프로젝트 스타트업 마인드 AI(MIND AI)는 헬스케어, 금융 지식 플
인공지능 랫폼 등에 사용하는 인공지능(AI) 엔진을 개발, 에코시스템을 구축한다 마인드 AI는 의학 분야
등 각종 지식 정보를 모은 온톨로지(자연언어로 표현된 개념 또는 지식)를 방식으로 한 블록

체인 기술 이용 인공지능 엔진을 개발한다 블록체인 기본 인공지능 프로젝트인 마인드 AI는 완
전히 혁신 개념의 정보 구조를 베이스로 핵심적인 추론(Reasoning) 엔진을 쓴다 지
금까지 없는 처음보는 AI 접근 방식을 제공한다 마인드 AI는 IBM 왓슨과는 다른 병렬 구조

의학 정보 등을 모은 플랫폼을 구상할 계획이다 조슈아 홍(Joshua Hong) 마인드 A
I 공동대표는 “왓슨이 대량의 의학 관련 논문, 서적 등 데이터를 학습해 의사 보조로 암 진
단을 돕는다면, 우리는 이와 다른 원리의 플랫폼을 만들 것”이라고 말했다 마인드 AI는 인공

지능에 대한 처음보는 접근을 제공하기 위해 만들어진 엔진과 생태계다 홍 대표는 “병렬 처리,
슈퍼컴퓨터과 대용량 자료가 있어야 하는 구조를 구축하는 것이 아니라 캐노니컬(Canonica
l)이라는 명칭을 부여한 국제적으로 특허 받은 새로히 처음보는 자료 구조에 기반한 메인 추론

그레서 중점적으로 다룰 것은

엔진을 만들었다”면서 “헬스케어 연관된 지식 기본 서비스도 제공될 것”이라고 설명했다 즉
대용랑 자료가 필요하지 않은 구조다 마인드 AI는 지식 공유에 대한 보상을 코인으로 제공한
다 블록체인 베이스 에코시스템을 통해서 헬스케어 관련 전문 지식(온톨로지)을 공유하는 이들에게는

코인(OMAI)을 통해 보상할 계획이다 의료 외에도 교육, 금융 등 다양한 분야에서 지식을
공유하면 코인으로 보상한다 마인드 AI는 인간과 유사한 추론 엔진으로 작동하는 자산 케어 플

랫폼을 구현하기 위해 코인페이먼트(CoinPayments)와 전략적 제휴를 체결했다 회사와
코인페이먼트는 제휴를 통해 자연언어의 문맥과 뉘앙스를 해석할 수 있는 AI로 전통적인 수
치 분석을 보완하기 위해 인간과 같은 추론 엔진을 도입하기 위해 협력했다 코인페이먼트 대표

알렉스 알렉산드로프(Alex Alexandrov)는 마인드 AI의 프라이빗 토큰 세일에
투자했다 이외에도 마인드 AI는 다수 벤처캐피탈로부터 투자를 받았다 지금 비트소닉에서 보너
스20%의 간편구매가 중이며 세일 이후 비트소닉에 상장이 확정되었다.


이 글을 연제 하면서 인공지능 에 대해 알게 되어서 개인적으로 많은 도움이 되었다.

블록체인 이번암호화폐넴의대량유출로코크취약한보안노되었다

키워드 블록체인 에 대해 쓴 글이며 요약된 정보는 아래와 같다.

일본 최대 토큰 거래소인 코인체크(coincheck)에서 26일 해킹으로 약 580억엔
(약5800억원) 상당의 암호통화 넴(NEM)이 유출되었다 이번 토큰 넴의 대량유출로
코인체크의 취약한 보안이 노출되었다 한국의 거래소들도 보안과 투자자보호를 우선하는 건전한

투자환경을 구축해야 세계 제일의 암호통화 거래국으로 성장할 수 있을 것이다 코인체크에서 드
러난 일본 코인 거래소의 문제점 코인체크 또한 해당 법 도입 전부터 암호통화 거래소를 운영
하고 있었으며 임시 사업자로 영업을 계속 하고 있다 일본 당국은 [암호화폐 거래를 전부

블록체인 일본 최대 토큰 거래소인 코인체크(coincheck)에서 26일 해킹으로 약 580억엔(
블록체인 약5800억원) 상당의 암호통화 넴(NEM)이 유출되었다 26일 새벽 3시경에 해킹을 당한
코인체크 측은 오전 11시25분에 이상을 감지하고 12시경에 이용자들에게 입금 일시정지를 공

지한 후 30분 뒤에 비트코인을 포함한 13종류의 암호화폐에 대한 거래를 중지했다 이번 사건
은 2014년 당시 4억5천만달러 상당의 가상화폐 해킹이 있었던 마운트 곡스 거래소 사건
을 뛰어넘는 규모로 디지털 화폐 역사 상 최대의 해킹 사건으로 기록될 것이라고 WSJ는

보도했다 당시 해킹을 당한 마운트 곡스는 파산했으며 피해자들에 대한 보상은 현재까지도 이루어
지지 않고 있다 일본에서의 여파 이번 사건의 피해는 일반 투자자뿐만 아니라 일본 연예계에도
영향력을 미쳤다 개그맨 콤비 후지사키 마켓(藤崎)의 토키(33) 씨는 자신의 트위터에 코인체

크의 암호화폐를 전부 도둑맞았습니다 전재산을 잃었습니다 일 좀 주세요 라는 글을 침통한 모
습의 사진과 함께 게시하여 피해 사실을 알렸다 세계 처음으로 암호화폐를 테마로 한 8인조 아이
돌 그룹 [가상화폐소녀]는 오늘 27일 기자회견에서 [이번 코인체크 사건으로 급여에 지장이

그레서 중점적으로 다룰 것은

생겼다]라며 [빠른 시일 내에 복구되었으면 좋겠다]고 밝혔다 가상화폐소녀는 급여의 일부를 암
호화폐로 받는다 소속사에서는 급여를 지불하기 위해 코인체크에 200만엔을 입금했지만 지금 매
매가 중단되면서 급여를 지불하지 못하고 있다 일본 인터넷에서는 한 누리꾼이 화제를 모으고 있

다 17살 여고생이라는 이 누리꾼은 자신은 [화이트 해커]로 현재 넴(NEM)의 거래정보를
바탕으로 해커를 추적 중이라고 밝혔다 이 누리꾼은 해킹된 암호화폐에 마킹하여 오늘날 화폐가 어
디에 있는지 위치까지 특정해내었다고 한다 또한 넴 재단에서의 대책프로그램이 마련되면 지금까지

의 추적을 인수인계하고 작업을 종료할 예정이며 그 전까지는 계속 추적할 계획을 밝혔다 보충:
이 트윗의 주인공은 사실은 48세이고 남성인 것으로 추측됩니다 코인체크에서 드러난 일본 코
인 거래소의 문제점 코인체크는 일본 금융청에 거래소로 등록신청 중이지만 등록신청 후 4개월이

지난 현재도 아직 등록이 안되었다 그 배경에는 익명성이 짙은 토큰 거래가 있다 또한
이번 유출사건으로 취약한 보안문제와 재무 불투명성도 불거졌다 암호통화 거래소가 안고 있는
문제점이 단숨에 부상하고 있다 일본 금융청은 2017년 4월에 토큰 거래소의 등록제와 함

께 개정된 자금결제법을 도입하였다 이에 모든 토큰 거래소는 등록 및 고객자산의 분산관리와
외부감사를 받을 의무가 주어졌다 해당 법이 시행되기 전에 일본 내에는 약 40곳의 암호통화
거래소가 있었으나 시행 후 시스템 구축을 위한 투자에 부담감을 느낀 거래소들 약 3분의 1이

폐업하였다 코인체크 또한 해당 법 도입 전부터 토큰 거래소를 운영하고 있었으며 임시
사업자로 영업을 계속 하고 있다 코인체크는 2017년 9월에 등록을 신청했다 하지만 보통
약 2개월이면 끝나는 심사가 4개월이 지나도 끝나지 않아 등록이 되지 않고 있다 코인체크는

가장 큰 거래소 중 하나인데 언제까지 걸릴 셈이냐 라는 목소리가 높아졌다 심사가 길어진
이유 중 하나는 코인체크에서 다루는 익명화폐 때문이다 익명화폐는 송금하는 쪽 주소를 일회
용 주소로 하거나 거래할 때의 데이터를 섞어서 보내는 사람과 받는 사람이 누구인지 추적할 수

없는 거래 특징이 있다 비트코인은 블록체인에 주소가 남기 때문에 주소로부터 거래를 추적할
수 있지만 개래 추적이 불가능한 익명화폐는 자금세탁과 세금도피에 사용되기 쉬운 점을 지적받고
있다 이번 암호통화 넴의 대량유출로 코인체크의 취약한 보안이 노출되었다 코인체크는 해킹 당

시 네트워크에 접속된 핫 월렛(Hot wallet)에서 넴을 관리하고 있었다 네트워크에서
분리된 콜드 월렛(Cold Wallet)에서 보관하지 않았다 와다 코이치로(和田晃一良)
사장은 [기술적인 어려움과 그 기술을 가진 인재가 부족]해서 콜드 월렛에 보관하지 않았다고

해명했다 게다가 거래 시에 여러 개의 전자서명이 필요하여 보안성이 높은 멀티시그(Multi
sig)를 보안관리에 사용하지 않았던 것으로 드러났다 [참고: 핫 월렛 vs 콜드 월렛] 이
번 일로 코인체크의 불투명한 자금유동성 문제도 떠올랐다 26일의 회견에서 고문변호사는 지금

재무정보를 즉시 제출할 수 있는 상황이 아니다 라고 진술하여 회사 내부의 재무상태에 대한
의심을 증폭시켰다 코인체크는 임시 사업자이지만 자금결제법의 준수가 요구되는 상황이며 사업
유지를 모색 중인 것으로 알려졌다 다만 금융청은 [이번 일을 발판으로 한층 더 엄격한 심사가

이루어질 것이다]고 밝혀 코인체크의 거래소 등록은 한발 더 멀어진 것으로 보인다 코인체크
및 일본의 대응 26일 해킹사건으로 막대한 손해를 입은 코인체크에서는 [아직 검토중]이라는
말만 되풀이하며 보상 및 향후 대응에 대한 언급을 회피하고 있다 오늘날 회사 내부에서 의논 중

이며 공식적인 입장은 뚜렷하게 밝히지 않은 상태다 일본 금융청은 거래소들의 재점검에 나섰다
[앞으로도 암호화폐 거래업자를 겨냥한 대규모 사이버 공격이 일어날 소지가 충분하다]며 주의를
환기시켰다 또한 [정보시스템과 업무용 단말기 점검], [의심스러운 거래와 통신에 대해 경계

를 늦추지 말 것], [시스템 장애와 보안을 침해하는 사안이 발견되면 즉각 당국에 보고할 것
]을 지시하며 담당부서에만 맡기지 말고 경영진들이 스스로 만전을 기할 것을 당부하였다 일본
당국은 [암호화폐 거래를 전부 파악하는 것은 어렵지만 거래소의 감시를 강화하여 이용자 보호를

우선시하고 실태파악을 진행할 예정]이라고 밝혔다 또한 [업자가 다루고 싶어하는 화폐를 제재
하는 일은 없을 것이다] 라며 익명화폐를 금지하지는 않을 방침이다 뒤이어 [익명화폐에 대해서
도 거래소라면 감시할 수 있다 거래를 감시하는 시스템을 구축할 필요가 있지만 상당한 시간이

걸릴 것으로 보인다] 고 밝혔다 코인체크 해킹 사건을 교훈삼아 보안 점검 및 보강에 나서
야 26일에 발생한 코인체크 사건은 전례가 있었음에도 불구하고 보안시스템을 허술히 하여 일어
난 인재(人災)다 기술적인 문제를 말하고 있지만 기본적으로 콜드월렛에조차 보관하지 않았다는

것은 애초부터 보안에 노력을 기울이지 않았다는 이야기이다 한국에서는 원화예치금은 100% 은
행에, 암호통화 예치금은 70%를 콜드월렛에 예치하여야 하는 예치자산 보호장치가 마련되어 시
행중이다 이에 콜드월렛의 국산화도 진행되고 있다 보안칩에 바이오인증까지 더한 제품 양산을 준

비하는 암호전문 스타트업도 있다 블록체인 기술이 발전하면서 암호화폐시장도 점점 커질 전망이다
시장이 커지면 한 번의 해킹사건으로 피해를 입는 사람들 또한 증가한다는 것이다 암호통화 거
래소는 중앙관리시스템이 없기에 시세가 제각각이다 거래소의 시세는 이용자들의 수와 비례하는데

화폐로서 다른 재화의 구매에 직접적으로 사용되지 못하는 암호화폐는 주식과 같은 성격을 띄며
거래소에서 거래가 되어야 그 가치를 지니기 때문이다 때문에 보다 안전하고 보다 빠른 서버를
가진 거래소에 사람들이 몰리고 이용자가 많을수록 시세가 시장상황에 민감하게 반응하여 거래가

활성화되면서 다시 사람이 몰리는 순환구조를 가진다 한국의 암호통화 거래소는 이번 일을 반면교
사로 삼아 자신들의 서비스 보안을 점검해보는 시간을 가져야한다 보안을 강화하고 보다 안전한
거래환경을 조성하는데 더 많은 투자를 해야 할 것이다 이번 일을 계기로 일본 거래소들은 적지

않은 타격을 입을 것으로 예상된다 자유로운 규제가 꼭 좋은 것만이 아니며 자신의 투자에 대한
자기책임을 투자자들도 느꼈을 것이다 이번 사건으로 규제에서 다소 자유로운 거래소에서 안전하
게 거래할 수 있는 거래소로 투자자 이동도 예상된다 한국의 거래소들도 보안과 투자자보호를 우

선하는 건전한 투자환경을 구축해야 세계 제일의 토큰 거래국으로 성장할 수 있을 것이다 *

* 본 기사는 오발 코리아 회장을 역임하였고 일본어 전공으로 일본 시장에 대한 리서치를 전
문으로 하는 윤형석 객원기자의 기고로 작성된 기사입니다 본 기사와 관련하여 궁금한 사항은
댓글로 남겨주기 바랍니다 출처1: 모든 가상화폐 거래소에 금융청이 재점검 요청 (닛케이 신

문) https://www.nikkei.com/article/DGXMZO26237890X2
0C18A1MM8000/ 출처2: 이용자 보호는 뒷전으로, 가상화폐 해킹 대책 부족 (닛케
이 신문) https://www.nikkei.com/article/DGKKZO2623156

0X20C18A1EA1000/ 출처3: [인력 부족 때문에] 네트워크 단절 없이 관리, 유
출 표적이 되어 (요미우리 신문) https://headlines.yahoo.co.jp/h
l?a=20180127-00050058-yom-bus_all (기타 트윗 계정과 참고자료

활용)

이 글을 연제 하면서 블록체인 에 대해 기본적인 내용을 알게 되었다.

블록체인 이러한특성때문에기술지금전세계적으로각광받고있는

키워드 블록체인 에 대해 쓴 글이며 요약된 정보는 아래와 같다.

▲(이미지)블록체인 기술은 전자문서 도입에도 쓰일 수 있다
그럼 구체적으로 일상생활에 블록체인 기술이 어떻게 쓰일 수 있는지 알아보자
그러면 블록체인에 기록을 보관한다고 가정하면 믿을 수 있는 것일까

전자문서를 블록체인에 올리면 그 누구도 문서의 내용을 조작할 수 없다
▲(이미지)투명성과 신뢰성 확보가 중요한 전자투표 시스템에 쓰일 수 있는 블록체인 기술
그런데 블록체인 트레이닝을 도입하면 어떻게 될까

블록체인 지금 전 세계는 비트코인을 비롯한 가상통화의 열풍에 휩싸여 있다
블록체인 비트코인을 만든 기반기술이 바로 블록체인이다
4차 산업혁명의 메인 기술로 불리는 블록체인으로 우리 사회는 많은 변화를 맞이하게 될 것이다

이제 블록체인을 알지 못하고서는 미래를 이야기할 수 없게 됐다
장부를 가진 사람이 많을수록 조작하기 어렵다!?
블록체인은 참여하는 모든 사용자들이 거래내역 등의 데이터를 서로 분산, 저장하여 악의적인 세

력에 의해 정보가 조작되는 것을 막는 기술이다 한 예로, 홍길동과 홍길서의 금전거래 내용이
기록된 거래 장부가 있다 두 사람의 거래 내역이 시간대별로 순서대로 기록되어 한 페이지를
채운다 홍길동과 홍길서가 서로 거래내역 한 장을 복사해서 서로 나누어 갖는다

이때 거래 장부를 두 사람만 보유하고 있어서 한사람이 거래내역을 조작한다면 서로 다투게 된다
즉, 거래 장부를 가진 사람이 두 사람인 경우는 한사람이 거래내역을 조작하면 누가 맞는지 확
인하기 어렵다 그런데 세 사람이 같은 장부를 보유하고 있으면 한사람이 조작을 하더라도 나머지

조금더 자세히 알아 보자면

사람이 비교해 줄 수 있다 그런데 둘이서 서로 짠다면
만약 100명 또는 1,000명이 같은 장부(분산장부)를 보유하고 있다면
장부를 가진 사람이 많을수록 조작하기 어렵지 않을까?

또한 거래 장부에 새로 추가되는 페이지가 이전페이지와 암호로 연결되어 있어 아무나 추가할 수
없게 한다면 오직 이전페이지와 연결되는 암호를 발견한 사람만 추가할 수 있게 된다
그리고 이 암호를 발견한 사람에게는 보상(코인 형태)이 주어진다

위에서 언급한 거래 장부 한 페이지를 하나의 ‘블록(Block)’이라 부르고, 이 블록들이
‘체인(Chain)’처럼 연결되어 있다고 해서 ‘블록체인(Blockchain)’이라 부른다
이 기술은 2008년 사토시 나카모토(필명)에 의해 제3자 개입(은행 등) 없이 거래 당사자

간 금융거래를 목적으로 비트코인(Bitcoin) 플랫폼이 처음으로 구현되었다 즉, 블록체인
테크닉을 바탕으로 만들어진 가상통화이다 비트코인은 누가 만들어서 배포하는 것이 아니고, 오직
암호를 찾는데(채굴)에 대한 보상으로만 생긴다 이렇게 생겨난 비트코인은 종이나 동전으로 된

실물 없이 온라인에서만 존재한다 블록체인 기술, 일상생활 속에서 어떻게 쓰일까? 자, 이제부
터 실제로 블록체인의 내부로 들어가 볼 차례다 블록체인이라는 체인을 이루는 최소 단위인 블록은
무엇일까 블록은 유효한 거래 정보의 묶음이다

▲(이미지)블록체인의 체인을 이루는 최소 단위는 블록이며, 블록은 유효한 거래 정보의 묶음을
말한다 “홍길동이 홍길순에게 70,000원을 송금한다.”와 같은 것이 하나의 거래이며, 하
나의 블록에는 여러 개의 거래가 포함된다 블록체인의 최초 구현인 비트코인을 기준으로 살펴보면

비트코인의 블록 하나에는 평균 약 1,800개의 거래 정보가 포함될 수 있으며, 블록 하나
의 물리적인 크기는 평균 0.98Mbyte이다 블록은 블록 헤더와 거래 정보, 기타 정보로
구성된다 이러한 분산원장 내에 계약서(Smart Contract라 지칭)까지 컴퓨터 언어로

기술하여 전달할 수 있다 즉, 계약서 내 기술된 내용대로 사물 또는 기기가 그 계약서대로 자
동 실행이 가능한 수준까지 가능하다 이렇게 된다면 향후 인공지능과 접목한다면 기기가 스스로
판단하고 자율적으로 실행할 수 있는 시대가 올 것이다 향후 우리가 상상도 하지 못한 일들이

일어날 가능성이 있다 블록체인은 위에서 언급한 금전거래에 연관된 비트코인에만 쓰이는 기술이
아니다 블록체인은 데이터를 무결하게 보관, 또는 기록에 대한 어떠한 조작도 없었음을 증명해야
하는 다양한 분야에 쓰일 수 있다 예를 들어, 전자문서의 보관과 공증, 신분증명, 투표,

자금추적, 식품유통관리, 의료정보 공유, 전력거래 등 다양한 산업분야에 적용되어 업무의 투명
성과 신뢰성을 높일 수 있다 이러한 특성 때문에 블록체인 기술이 지금 전 세계적으로 각광받고
있는 것이다 그럼 구체적으로 일상생활에 블록체인 기술이 어떻게 쓰일 수 있는지 알아보자 ▲

(이미지)투명성과 신뢰성 확보가 중요한 전자투표 시스템에 쓰일 수 있는 블록체인 기술 전자투
표를 살펴보자 현재의 전자투표 시스템은 하나의 중앙서버에 투표에 참여한 사람들의 투표내역과
결과를 저장한다 불행하게도 이는 해킹과 조작이라는 심각한 위험에 항상 노출되어 있다 그렇기

때문에 전자투표는 편리함에도 불구하고 활성화되지 못하고 있다 여기에 블록체인 트레이닝을 적용하면
어떻게 될까 투표에 관여하는 모든 이해관계자(선거관리위원회, 각 정당, 시민단체, 일반 개
인 등)들의 서버가 네트워크로 서로 연결되어 있다고 가정하자 유권자가 투표를 하면 투표내역이

네트워크의 모든 서버들에 동시에 저장되고 저장된 기록들은 암호로 서로 연결되게 된다 결국
모든 이해관계자들은 동일한 투표내역을 보관하게 되는 것이다 만약 누가 특정 서버의 투표기록을
조작하게 되면 다른 이해관계자들이 바로 알아차리게 되기 때문에 투표결과에 대한 투명성과

신뢰성 확보가 가능하게 되는 것이다 ▲(이미지)블록체인 기술은 전자문서 도입에도 쓰일 수 있
다 전자문서의 경우를 살펴보자 오늘날 우리는 수많은 종이문서의 홍수 속에 살고 있다
그래서 전자문서를 사용하고자 하는 노력을 기울이고 있으나 전자문서에 대한 검증이 어렵기 때문

에 현실화 되지 못하고 있다 만약 당신이 부동산 계약에 대한 전자문서를 계약 상대방으로부터
받았다고 가정하자 당신은 그 전자문서를 믿을 수 있는가
누가 만약 문서를 조작해서 계약 상대방이 보낸 것처럼 위장하면 당신은 밝혀낼 수 있는가

현재로서는 이를 효과적으로 밝혀낼 방법이 없다
하지만 블록체인 트레이닝을 도입하면 어떻게 될까
전자문서를 블록체인에 올리면 그 누구도 문서의 내용을 조작할 수 없다

왜냐하면 동일한 문서내용을 수많은 서버들이 보관하고 있기 때문이다
전자문서를 받은 당신은 그 문서에 대한 조작여부를 블록체인에서 확인하기만 하면 된다
▲(이미지)전 세계로부터 공급받는 원재료에 대한 유통과정까지 확인 가능하게 하는 블록체인 기

술 지금 우리는 안전한 먹거리에 대한 고민이 많다
식당마다 먹거리 원산지에 대한 표시를 하고 있지만 확인할 방법이 없다
중간 유통과정에 발생하는 상황에 대해서는 더더욱 알 길이 없다

만약에 먹거리를 제공하는 기업이 자기만의 서버에 먹거리가 식탁에 올라오기까지 모든 유통과정을
기록하고 고객에게 한 눈에 알 수 있도록 한다면 안전한 먹거리에 대한 고민이 사라질 것이다
그런데 이 기록을 믿을 수 있을까 대답은 ‘아니요’일 것이다

왜냐하면 조작여부를 알 수 없기 때문이다
그러면 블록체인에 기록을 보관한다고 가정하면 믿을 수 있는 것일까
대답은 ‘그렇다’라고 할 수 있다

왜냐하면 네트워크의 모든 참여자들이 보증해 주기 때문이다
또한, 블록체인은 글로벌 네트워크로 확장될 수 있기 때문에 전 세계로부터 공급받는 원재료에
대한 추적까지 가능하다 이제는 투명성과 신뢰가 있는 가치 공유의 시대

지금은 초고속 인터넷으로 인해 전 세계 어디에 있던지 유용한 정보를 실시간으로 얻는 시대를
맞이하고 있다 하지만 투명성 결여와 신뢰 부족의 문제를 해결하지 못해 인터넷을 통해 누리는
혜택이 정보 공유에만 국한되어 있다 이제는 정보의 공유를 넘어 가치 공유의 시대로 넘어가고

있다 인터넷에서의 가치 공유는 투명성과 신뢰가 절대적이다
결국 블록체인이 해답이 될 것임에는 누구도 의심치 않게 될 것이다
글 : 박종대 PL(Project Leader) / 한국전자통신연구원 초연결통신연구소 네트워

크연구본부

이 글을 연제 하면서 블록체인 에 대해 알게 되어서 개인적으로 많은 도움이 되었다.