레이블이 daily인 게시물을 표시합니다. 모든 게시물 표시
레이블이 daily인 게시물을 표시합니다. 모든 게시물 표시

Bitcoin(2)

이전 포스트에서 말했던것과 같이 Bitcoin을 신뢰성있고 투명하지만 익명성있는 그렇게 만 있었던 algorithm, Block chain에 대해서 파고 들어가보자. Block chain은 말그대로 Block이 chain을 형성하여 여러개가 얽혀있는 관계다. 종이가 없던시절 대나무를 종이처럼쓰던 시절이 있을것이다. 이때 대나무를 여러개 엮어서 하나로 가지고 다녔다고 하는데 맞는것인진 모르겠다. 그래서  이 책이라는 한자가 이러한 모양이 나왔다고 어디서 주어들었는데 찾아보진않았다. 여튼 이렇게 하나로 엮은 모양의 Block이라는 것이다. 그럼 흐름을 보면서 이해해본다. 운이좋게도 누군가 인포그래픽을 사용해서 한눈에 보여주었다.

Joshua라는 친구가 이렇게 한눈에 보기쉽게 만들어줬다. 고마워 Joshua. 그럼 하나하나 짚고 넘어가보자. 

우선 내가 곽진산한테 비트코인을 보낸다. 이때 필요한게 비트코인 지갑인데, 컴퓨터에 설치되어있는 프로그램이라고 생각하면되겠다. 이 프로그램은 내 지갑이되며 이 지갑내에서 여러개의 계좌를 관리할 수 있다. 계좌는 복잡한 여러글자로 되어있다. 아마 곽진산도 이런 복잡한 계좌글자를 가지고 있을것이다. 하지만 이 컴퓨터 세상에서는 복잡함은 필요없다는 걸 알고있다. 왜냐하면 control+C,V가 있기 때문이다.

나의 계좌에서 상대방의 계좌로 이제 비트코인을 쏴줄것이다. 그럼 이제 계좌를 고르고 얼마를 보낼지 정한다음에 "쏴주기"를 클릭하는 순간, 사용자는 모르는 엄청난 일을 하게된다.

우선 첫번째로 내 계좌인지 알아보기 위해 암호를 풀어야한다. 이때 자신이 가지고있는 비밀키로 이 암호를 풀면 내가 이 계좌의 주인이라고 확인을 시켜줄 수 있다. 비밀키-공개키 알고리즘은 암호학의 기초로서 단방향성을 가진 함수를 사용한다. 즉, 2개의 수를 곱하는건 누워서 떡먹는 수준이다. 하지만 어떠한 큰수가 어떤 소수들로 나누워질수 있는진 알기힘들다. 소인수분해의 어려움을 가지고 이 알고리즘이 작동하는것이다.

여기서 두 수를 곱한건 공개키가 되고 이 공개키를 소인수분해 한 것이 비밀키가 된다. 즉, 공개키를 보여줘도 다른사람들은 이 암호를 풀지 못하게 된다. 이  자세한건 이 글 전체의 몇배를 써야될지 모르기 때문에 기회가 되면 따로 포스팅하겠다. 

여튼 비밀키로 내 계좌인것을 입증시켜주면 이제 그사람한테 보내면끝인가? 아니다. 이 것은 내 계좌가 맞는지 아닌지만 확인한거다. 이제 이 계좌에 돈이 있는지 없는지를 확인해야한다. 이것을 확인하는 방법이 블록체인 알고리즘으로서 향후 여러 확인시스템, 공유시스템을 이루는데 많이 사용될것으로 보인다. 귀아프게 들었을지 모르겠지만 이제 사물인터넷, 유비쿼터스니 뭐니하며 컴퓨터의 연결에 대한 새로운 이름을 붙이는 것 자체가 진부해져버린 세상이 되어버렸다. 이제 너무 당연하게 네트워크로 연결되어 데이터를 공유하며 작동한다. 이런 공유시스템에서는 어떤 작업을 했니, 안했니, 그렇다면 안전하게 잘해서끝냈니 안끝냈니등의 협업 시스템이 구축되어야 한다. 이러한 문제들은 컴퓨터가 작업을 공유할 때부터 논의되어왔다. 하지만 풀기어려운문제로 남겨져있었다. 비잔틴장군의 문제로 알려져있다.

비트코인은 이 확인하는 방법에 있어서 비트코인이 근간이되는 핵심적인 알고리즘을 사용한다. 블록체인이라는 것인데, 거래 내역이 적혀있는 블록을 연결고리처럼 생성하므로 붙여진 이름이다. 이 거래내역서를 네트워크에 연결되어있는 사용자들이 모두 가지고 있다. 그리고 이 거래내역서는 중앙에서 관리하는것이 아니라 모두가 같이 관리한다. 

이 거래내역서에 10분에 한번씩 거래내역을 추가하게 되는데, 추가할때 상당한 연산이 필요한 계산을 하게된다. 그리고 거래내역에 안정성을 위해 네트워크에 연결된 과반수가 인정하는 거래만을 기록한다. 즉, 이때 악의적인 이용자가 거래내역서를 조작해서 네트워크에 뿌려봤자 채택이 되지않는다. 왜냐하면 악의적인 이용자보다 그렇지 않은 사람이 많기 때문이다. 2013년 말에 벌써 세계의 슈퍼컴퓨터 1~500위까지의 연산능력을 더한 것보다도 더 많은 컴퓨팅 능력을 비트코인 네트워크가 가지고있다고한다.

그리고 이것을 만든 사토시님이 머리를 잘쓴게, 블록체인을 생성하는 계정에게 인센티브를 제공한다. 그리고 이 블록체인을 생성하는것을 채굴이라고하는데, 인센티브가 주어지므로 금을 캐는 것에 빗댄표현이다.

인센티브는 갈수록 연산이 어려워지고(매 2016블록 마다), 채굴로 제공되는 비트코인은 4년마다  기하급수적으로 줄어든다. 그리고 2100만개가 다 공급되면 더 이상의 채굴은 없어진다. 즉 비트코인의 총량이 정해진것이다. 아마 그이후에는 거래수수료가 인센티브로 돌아올것이다. 

그럼 총량이 정해져 있다면 점점 화폐가치가 올라가는 디플레이션이 올것이다. 이 문제는 1비트코인을 소수점 8자리까지 분할해사용할 수 있으므로 상품의 가격하향에 반응 할 수 있게 했다. 
Bitcoin(1)

Bitcoin(1)

'비트코인은 가장 완벽한 화폐이다'라고 까지 말해지며 비트코인의 가치는 2013년이후 폭발적으로 올라 지금은 현재 1BTC당 590USD에 거래되고 있어요. 과연 비트코인의 어떤 면이 화폐로써 혹은 투자가치로써 이렇게 인기를 끄는 건지 궁굼하네요.


우선 비트코인의 특징을 볼까요?
0. 가상화폐이다.
1. 정부나 은행과 같은 중앙권력기구가 없죠.
2. 누가 어떤 거래를 했는지 알수 없어요. 익명성이 보장되죠.
3. 그러나 언제 어떤거래가 이루어졌는지는 모두다 알수 있는 공개성이 있죠.
4. 여기서 일어나는 거래들은 모두 암호화되어있어요.
5. 발행의 한계가 있어요.

비트코인은 가상화폐에요. 실물이 없죠. 천원이면 이황선생이 있어야하고 오만원이면 신사임당이 웃고있는 그런 화폐가 아니라는 거죠. 그렇다면 마일리지나 포인트같은 개념일까요? 그것도 아닙니다. 

유럽중앙은행에서 가상화폐를 세종류로 나눴습니다. 하나는 현실화폐와 환금 및 교환이 불가능, 가상의 재화나 서비스만 이용가능한 겁니다. 예를들면 뭐가있을까요? 음...넥슨캐쉬같은 거죠. 게임할때 쓰는 사이버머니들이죠. 아바타에 사탕하나 물려줄려면 3000원 입금해야되죠. 근데 이건 그 안에서만 사용해야되죠. 

두번째는 첫번째 가상화폐가 확장된 개념으로 현실화폐와 환금및 교환 불가, 현실에 서비스나 재화에 사용가능합니다. 즉 이모티콘을 살수도있고, 기프티콘으로 바꿔서 아이스크림도 먹을 수 있는 카카오같은거죠. 하지만 원이나 달러로는 교환하지 못합니다.

마지막 세번째는 현실화폐와도 교환가능한 겁니다. 비트코인이 바로 이 단계에 속하는 가상화폐입니다. 음...생각해보면 리니지 아이템같은건가요? 아니면 한게임 포커머니? 이런건 정망치한테 물어봐야되는데.. 여튼 상당히 제한적인 곳에서 사용되었습니다. 이제 이 비트코인이 등장하면서 가상화폐를 완성시켰습니다.

우리가 사용하는 원이나 달러등의 화폐는 국가 혹은 은행이 보증을 스는 채권같은 거죠. 그래서 나라가 휘청할 때마다 화폐들은 폭락, 폭등하게 되죠. 

그런데 그러한 채권형태의 화폐가 아니라면 걱정할 필요가 없겠죠? 바로 금같이 말입니다. 간단하게 금은 생산량이 한정적이고 누구나 가치있다고 생각하기 때문에 가격급락이 없는 기본적인 화폐입니다. 그래서 금을 찬양하는 사람들이 생겨났죠.이러한 금의 특성을 비트코인은 가지고 있습니다. 비트코인은 생산량이 한정적이죠. 그리고 중앙에서 관리하는 기구가 없기 때문에 특수한 나라의 경제상황이나 정치상황에 덜 민감하겠죠. 

그러면 이러한 중앙기구가 없는데 누가 거래의 무결성을 보장할 거죠? 즉, 내 통장의 100원을 다른사람한테 줬으면 내통장에서 100원이 없어져 더이상 사용못하고 그 사람이 사용할수 있어야하는데.... 지금은 그 일을 은행이 하고있으며, 은행들의 울타리 속, 데이터센터 속, 보안구역 속, 굳게 닫힌 철문 속, 한정된 사람들만들어 갈수 있는 서버에 들어있어요. 이걸 비트코인은 대중, 즉 비트코인을 지지하는 사람들에 의해 이 무결성의 장부를 실현해요. 이것이 비트코인을 성공적인 화폐로 세울 수 있는 알고리즘입니다. 다음 포스팅에 이 알고리즘을 중점적으로 설명해볼게요.

블로그 고르고 설정하기까지.

블로그 고르기

블로그를 운영하는데 있어서 가장 눈에 띄고 또 가장 처음 필요한건 템플릿 변경이라고생각해요. 우선 나부터 들어오고 싶어야 뭘 올리든 말든하겠죠. 그래서 뭐 다들 같고 뻣뻣한 형식의 블로그들보다 디자인들을 수시로 바꾸고 고치고 할 수 있는 이 블로거가 저한텐 짱인거같에요.

보니깐 블로그도 종류별로 나눠져있더라고요? 뭐 설치형, 가입형으로 나누기도 하고 목적에 따라서 단문형 장문형도 나누기도 해놨더라고요.

네이버, 이글루스, 싸이월드, 티스토리 뭐 사람들마다 각자 선호하는 것 필요하는것 모두 달라서 무엇이 좋다고 말은 못해요. 하지만, 전 꽉막힌 네이버나 이글루스, 싸이월드는 싫고 티스토리 할려고 했더니 무슨 초대장?이 필요하데, 난 누구 생일잔치도 초대못받아서 서러운데 블로그하나 하려는데도 초대받아야하다니... 여튼 다따져봐도 블로거가 나한텐 딱.

이정도로 유연한데 호스팅할 필요도 없고~

템플릿 고르기

누가 인생은 선택의 연속이라 했던가? 쟁쟁한 블로그 제공자들 중에 하나 고르고 나니깐 또 이 템플릿이라 불리는 블로그 껍데기를 고를 차례네요. 그래서 여기서도 내가 필요한거 몇개 적어놓고 가장 적합한거 눈에 보이면 바로 골르고 뒤도 안돌아볼거임. 껍데기는 나중에 바꾸는데 문제 없으니깐! 그래서 거지인 나에게 무료이고, 심플하고, 글이 많이~ 있어도 분류하거나 찾아보는데 어렵지 않을 정도의 카테고리나이징이 조건이에요. 그래서 고른게 이 붉고 모던하게 각진 스타일, 마치 윈도우8의 시작화면 같은느낌을 골랐네요. 몇 가지 아쉬운건 카테고리를 트리 구조형식을 원하는데, 나중에 코드를 수정하던가 아예 바꾸던가 해야되겠죠?


저위에 백업/복원 눌러서 xml파일 업로드하면 알아서 내가 원하는데로 해주더라고요. 편리해요. 아 무료템플릿은 구글링하면 꽤나와요. 키워드는 무료 블로그 템플릿 하니깐  
btemplates.com/‎ 

여기 나오더라고요 블로거에 맞는 템플릿이 제공되서 미리보기해서 고르기만 하면되네요. 이 사람들은 이거 기부해서 잘먹고 잘사는지 궁금하네요. 저 정도로 기부할 재능만 있어도 좋겠다ㅏㅏㅏㅏㅏ.

간단한 블로그 시작기 끝.
블로그를 다시한번 시작!

블로그를 다시한번 시작!

블로그 시작!


저번에 블로그를 시작했는데 몇 개월 안가서 접었네요. 뚜렷한 목적도 없었고 공유의 흥미도 없어서 그랬어요. 이번에는 목적! 내 학습들을 기록하고 나중에도 찾아볼 수 있게 정리해 놓고 뭐 그거를 가져다 써주는 사람은 땡큐라고 생각해요. 모든 글은 한글로 올릴 거고 쉽게 쉽게 쓸려고 노력할 거에요. 지금 하고 있는 것 중에 몇 가지가 이미 진행된게 있어서 중간부터 시작하는 것도 있을 거에요. 그런 것들은 우선 어쩔 수 없고 지금부터 진행되는 건 모두 적어 놓을게요.

우선 첫번째, Node.js를 하던 참이었어요. 나름 아이디어도 생기고 자바스크립트라는 매력적인 언어를 기반으로해서 작성할 수도 있고 지금 상태는 쉬운 예제들을 갓 끝낸 상태에요.

그리고 두번째, opencv 이건 지금 처음 건들여 보는 거에요. 교수님의 과제로 이걸지금 건드려봐야되요. 책의 목차를 보니 중요한 영상처리에 중요한 알고리즘 혹은 기계러닝 라이브러리를 제공해주고 있어요. 아 기대되네요~ 오랜만에 C를 만져봐야될 거같아 한숨 나오지만.....씨는 진짜 씨x에 씨인거 같에요.

아 그리고 이번엔 블로그 좀 오래해볼려고 여기 템플릿도 바꾸고 해봤어요. 좋은 템플릿이 무료로 많이 배포되네요. 그런 재능을 가지고 있고 또 공유를 하는 사람들... 부럽네요.