이전 글에서는 딥러닝의 기본 개념에 대하여 알아보았다. 사람의 신경망에서 사용되는 정보 처리의 과정을 모방하여 기계가 학습을 빠르게 할 수 있도록 구현한 기술을 딥러닝이라고 정의하였다. 이러한 딥러닝이 어떻게 구현되는지 조금 더 자세히 살펴 보겠다. 딥러닝을 보다 보면 가장 먼저 퍼셉트론(Perceptron)에 대해서 듣게 될 것이다. 퍼셉트론(Perceptron)이란 인식(Perception)과 뉴런(Neuron)을 합한 용어이다. 인공신경망의 가장 초기 알고리즘으로 입력층, 중간층, 출력층으로 나누어진 학습 알고리즘의 하나이다. 각 입력 정보에 대해서 가중치 팩터(w)가 곱해지고 바이어스 팩터(b)를 이용하여 더하는 과정을 통해서 원하는 답을 출력으로 도출할 수 있도록 구현된 알고리즘이 바로 퍼셉트론..
딥러닝에 대한 얘기를 하면 2016년 알파고와 이세돌의 바둑 대결을 생각하는 사람들이 많을 것이다. 사람과 컴퓨터의 바둑 대결을 보면서 많은 사람들이 놀랐다. 바둑은 경우의 수가 아주 다양하고 예측하지 못하는 상황도 많아서 컴퓨터가 인간을 이길 수 없을 것이라고 많은 사람들이 생각했는데, 그와 반대의 결과가 나왔기 때문이다. 이미 체스는 훨씬 전에 사람이 컴퓨터를 이길 수 없다는 것이 판명이 났지만, 바둑은 체스보다 훨씬 더 많은 변수가 존재하기 때문에 사람이 컴퓨터에게 진 것은 더욱더 놀라운 일이었다. 그렇다면 알파고는 어떻게 지구상에서 가장 바둑을 잘 두는 사람중 한 명인 이세돌을 이길 수 있었을까? 그것은 바로 "딥러닝(Deep Learning)"이라는 기술 덕분이다. 프로 바둑 기사들은 평소에 바..
비트코인은 2009년에 나카모토 사토시라는 의문의 인물에 의해서 처음 개발이 되었다. 비트코인이 개발된 이후 여러 가상화폐들이 개발되기 시작 했고, 이더리움은 비트코인이 개발된 지 6년 뒤인 2015년에 비탈릭 부테린이라는 러시아 학생에 의해서 개발되었다. 이더리움은 가상화폐의 한 종류이며 블록체인을 기반으로 만들어졌다. 하지만 비트코인과는 큰 차이점이 있다. 비트코인은 단순히 화폐로써 거래의 목적만 가지고 있는 반면에 이더리움의 경우 화폐 기능뿐만 아니라 프로그래밍이 가능하여 다른 기능을 포함시킬 수 있다. 이더리움은 스마트 계약과 분산형 응용프로그램 DApp (Decentralized Application)의 개발 및 실행 환경을 제공한다. 먼저 이더리움에서 제공하는 스마트 계약이 무엇인지 알아보자...
블록체인이라고 하면 단순히 비트코인 혹은 가상화폐를 떠올리는 경우가 많을 것이다. 하지만 블록체인 기술을 이용하면 화폐뿐만 아니라 다양하게 활용이 가능하다. 4차 산업혁명의 차세대 세계 10대 핵심 기술로도 선정된 블록체인의 적용 가능 분야에 대해서 다양하게 살펴보자. 우선 첫 번째로는 투표 시스템을 들 수 있다. 블록체인의 장점에 해당하는 기록의 투명성과 신뢰성 덕분에 투표에 적용하는 사례가 늘어나고 있다. 2016년도에는 미국에서 실제로 블록체인 기반의 시스템을 투표에 도입했다. 유타주와 텍사스주에서 정당 대선 후보 선정에 새로운 시스템을 도입했고 이전 투표 방식보다 더 많은 참여를 이끌었다고 한다. 우리나라에서는 2017년 경기도에서 “따복 공동체 주민 제안 공동사업”의 심사에 블록체인 기반의 투표..
이전 글에서는 거래의 기록 및 거래가 이루어지는 방법에 대해서 알아 보았다. 이번 글에서는 비트코인에서 거래가 안전하게 이루어질 수 있도록 사용하고 있는 암호화 기술에 대하여 설명하겠다. 암호화 기술은 다른 SW 분야에서도 다양하게 이용되고 있는데 크게 “대칭 키 암호화” 방식과 “비대칭 키 암호화” 방식이 있다. 비트코인에서는 “비대칭 키 암호화” 방식을 사용 중이다. 그러면 이러한 암호화 방식의 차이점을 알아보자. 대칭 키 암호는 키가 하나라고 생각하면 된다. 암호화를 할 때와 암호를 풀 때 동일한 키를 사용하는 것이다. 비대칭 암호화 방법은 암호화할 때 사용하는 키와 암호를 풀 때 사용하는 키가 서로 완전히 다른 것이다. 따라서 대칭 키 암호화 방식은 키를 알게 되면 역으로 쉽게 풀 수가 있다. 하..
이전 글들에서는 작업증명을 거치고 생성된 블록이 블록체인으로 연결되는 과정에 대해서 알아보았다. 이번 글에서는 블록이 생성될 때 기록되는 거래의 기록에 대해서 알아보고 어떻게 거래가 이루어지는지 살펴보겠다. 우선 비트코인의 거래를 말하기에 앞서서 우리가 현재 하고 있는 거래에 대해서 생각해보자. 예를 들어, 물건 구매 시 계좌이체를 통해 돈을 지불하는 경우가 있다고 하자. 이때 구매자는 판매자의 계좌번호를 알아야 상대방에게 이체를 해줄 수 있다. 구매자는 판매자의 계좌번호로 돈을 입금해주고 판매자는 물건을 구매자에게 건네주고 거래가 마무리된다. 비트코인에서도 지불방법이 이와 유사하다. 받는 사람의 목적지 주소를 블록의 거래 기록에 적어주면 비트코인도 계좌이체와 유사하게 받는 사람에게 비트코인의 소유권이 ..
이전 글에서는 블록체인의 “작업증명”에 대하여 설명하였다. 이번 글에서는 블록체인의 연결과정, 즉 작업증명을 마치고 생성된 블록이 다른 블록과 어떻게 연결되고 블록체인을 형성하는지에 대한 설명을 하겠다. 블록이 하나만 있다면 블록자체의 크기의 한계 때문에 계속 사용하기가 어려울 것이다. 따라서 블록체인에서는 블록을 여러 개 연결하여 이러한 문제를 해결하였다. 새로운 거래 기록은 이전 블록이 아닌 주기적인 단위로 (비트코인의 경우 10분 정도) 새로 생성되는 블록에 포함된다. 그렇다면 이렇게 지속적을 생성되는 블록들은 어떻게 연결되는지 살펴보자. 위의 그림에서처럼 99번 블록 뒤에 100번 블록이 연결되는 것을 예로 들겠다. 앞서 각 블록은 블록내용과 난스로 나누어진다고 설명했다. 100번 블록은 99번 ..
이전 글에서는 해시함수에 대하여 알아보았다. 이번 글은 해시함수를 통한 “작업증명(Proof of Work)”이 어떻게 이루어지는지 알아보자. 작업 증명이란? 새로운 블록(신규 기록)을 생성함에 있어서 일정한 노력이 들어갔음을 보장하는 것 블록체인은 여러 네트워크(Node)가 연결되어 블록을 형성하고 전달하면서 블록을 연결하는 과정인데, 어느 한 노드(Node)에서 새로운 블록이 무분별하게 만들어지고 배포된다면 다른 노드(Node)에서는 이에 대한 확인을 하기가 쉽지 않다. 따라서 블록체인은 새로운 거래기록을 블록으로 만들면서 이에 대한 작업 증명 과정을 거친 이후 블록이 생성되어 다른 노트로 전파되도록 하는 것이다. 작업 증명을 알아보기 전에 먼저 하나의 블록은 어떻게 구성되어 있는지 알아보자. 각각의..
먼저 "해시"에 대해 알아보자. 해시의 의미를 사전적으로 보면 '고기, 야채를 잘게 써는일', '끌어 모음' 등의 의미가 있다. 최근 SNS에서 자주 사용하는 용어인 해시태그가 있는데 이때의 해시의 의미는 '끌어 모음'에 해당하는 것이다. 여기서는 게시물 검색 및 분류를 용이하게 할 때 사용하는 것을 해시태그라고 부른다. 그런데 블록체인 기술에서의 해시는 다른 의미이다. '고기, 야채를 잘게 써는일'에 그 의미가 더욱 가깝다. 해시함수란? : 정방향 계산은 쉽지만 역방향 계산은 어려운 특성을 지닌 함수 블록체인에서의 해시는 정방향으로 계산은 쉬우나 역방향으로 계산하는 것은 매우 어려운 계산식을 말한다. 예를 들어서 간단한 해시함수의 특성에 해당하는 식을 설명해보겠다. 위의 그림을 바탕으로 설명해보겠다. ..
블록체인이란? 공동의 거래 장부를 이용하여 거래를 안전하게 하는 보안 기술이다. 많은 사람들이 인터넷 P2P를 이용하여 음악을 다운로드하고, 영화를 다운로드 해본 경험이 있을 것이다. P2P가 등장하기 전에는 하나의 중앙 네트워크 서버에서 데이터를 불러오는 방식이 주를 이루었다. P2P는 이러한 기존의 중앙 집중형 네트워크와는 다르게 분산형 네트워크를 이용하여 여러 네트워크에서 데이터를 전송받아 하나의 완성 데이터를 이루는 기술이다. 블록체인은 이러한 분산형 네트워크의 기술 중 하나이다. 인터넷을 통해서 유통되는 데이터가 많아지면서 분산형 네트워크가 점점 발전하고 있는 상황이고, 블록체인은 이를 안정적으로 처리하기 위해 그 대안으로 떠오른 암호화 기술이다. 블록체인에 대한 이해를 조금 더 돕고자 그림을 ..