본문 바로가기

비트코인11

스위프트로 배우는 블록체인 - 탈중앙화 구현 스위프트로 배우는 블록체인 - 탈중앙화 구현 노드모듈생성지금까지는 하나의 네트워크에서 블록체인이 어떻게 작동하는지 알아보았습니다. 지금부터는 여러개의 노드를 만들어서 탈중앙화 개념을 구현해 보도록 하겠습니다. model.swift에 새로운 노드를 생성할 클래스를 아래와 같이 작성해 줍니다.//새로운 노드 생성 클래스class BlockchainNode : Codable { var address : String init(address : String) { self.address = address }} 아래에 이이서 class Blockchain 부분에 아래에 위에서 만든 노드 데이터를 컨트롤할 변수와 추가할 함수를 만들어 준다.//체인 구조체class Blockchain : Codable { //블록이 배.. 2018. 6. 2.
스위프트로 배우는 블록체인 -데이터구조 스위프트로 배우는 블록체인 - 데이터구조 순서xcode9열기 -> get Started with a playground -> 위쪽 탭에 mac os 선택 -> blank 선택 개요이번 포스팅에서는 블록체인 기술의 뼈대가 되는 데이터 구조를 만들어 보겠습니다. 먼저 거래를 담당하는 transaction 구조체, 거래내역과 해쉬, 이전해쉬값, nonce 값을 담는 block 구조체를 만들고 그 블록을 담을 blockchain 구조체를 만들어 보겠습니다. 위에서 오픈한 mac os playground를 열고 아래 코드를 작성해주세요. transaction 구조체//거래 데이터 구조체class Transaction{ var from: String var to: String var amount: Double //.. 2018. 6. 1.
자바스크립트로 블록체인 구현 강좌 11 - 나만의 비트코인 발행하기 자바스크립트로 블록체인 구현 강좌 11 - 나만의 비트코인 발행하기지난 포스팅에서 하나의 네트워크에서 블록체인이 어떻게 작동이 되는지 살펴보았다. 이번포스팅에서는 여러개의 노드, 즉 컴퓨터들이 참여를 할때 블록체인 데이터가 어떻게 기록되는지 살펴보겠다.순서1. api.js 파일 이름을 networkNode.js 로 변경하자. 2. networkNode.js 파일 윗 부분에 동적 포트관련 변수 선언해준다.//동적 포트 package.json script 객체에서 2번째 방에 들어있는 데이터 3001,3002,3003 ...3005var port = process.argv[2];3. app.listen 을 아래와 같이 바꿔 준다.//동적 포트app.listen(port,function(){ console.l.. 2018. 5. 31.
자바스크립트로 블록체인 구현 강좌 9 - 나만의 비트코인 발행하기 자바스크립트로 블록체인 구현 강좌 9 - 나만의 비트코인 발행하기 이번시간에는 api.js에 app.get() , app.post() 부분을 작성해주고, 개발에 조금 더 도움을 줄 node api를 설치 해보도록 하겠다. node js 에서 get, post이 부분이 이해가 안간다면...구글링을 부탁드린다..여기서는 조금이라도 알고 있다고 가정하고 쭉쭉 설명하겠다. 먼저 api.js 소스 코드다var express = require('express')var app = express() // 웹브라우저에 get 방식으로 /blockchain 주소를 입력했을 때 실행app.get('/blockchain', function (req, res) { res.send('blockchain Start')}) // 웹.. 2018. 5. 30.
자바스크립트로 블록체인 구현 강좌 8 - 나만의 비트코인 발행하기 자바스크립트로 블록체인 구현 강좌 8 - 나만의 비트코인 발행하기이번 포스팅 부터는 앞에서 만든 blockchain을 서버에서 구현해보도록 하겠다. 우리는 서버 구축을 간단하게 도와줄 express api를 사용할것이다. 일단 구글로 가서 express npm을 검색하자. 아래 주소로 들어가도 된다. https://www.npmjs.com/package/express콘솔을 열어서 위에 install명령어를 자신의 개발 폴더 위치에서 입력해준다. 이제 express api를 설치 완료 했다. 개발환경으로 가서 api.js 파일을 생성해주고 아래 소스 코드를 입력해주자 아래 소스코드는 express npm 문서에 있다. 간단하게 설명하면 app.get은 웹브라우저에 / 의 값이 들어오면 함수 아래를 실행하겠.. 2018. 5. 29.
자바스크립트로 블록체인 구현 강좌5 - 나만의 비트코인 발행하기 자바스크립트로 블록체인 구현 강좌5 - 나만의 비트코인 발행하기 이번 포스팅에서는 sha256 해시생성기와 npm을 이용해서 sha256 모듈을 설치해서 사용해보도록하겠다.일단.sha256 은 암호화 알고리즘의 하나이다. 음..엄청쉽게 말해서 '어떤 입력값이든 고정된 길이의 임의의 문자열값으로 출력한다' 라고 알고 있으면 쉽다.예를 들면 abc 값을 sha256 알고리즘에 넣고 돌리면BA7816BF8F 01CFEA4141 40DE5DAE22 23B00361A3 96177A9CB4 10FF61F200 15AD이값이 생성이된다. 길이를 보자.abcdef를 넣으면?BEF57EC7F5 3A6D40BEB6 40A780A639 C83BC29AC8 A9816F1FC6 C5C6DCD93C 4721같은 길이의 임의의값이.. 2018. 5. 28.
자바스크립트로 블록체인 구현 강좌3 - 나만의 비트코인 발행하기 자바스크립트로 블록체인 구현 강좌3 - 나만의 비트코인 발행하기 이번포스팅에서는 마지막 블록을 얻는 함수, 새로운거래가 발생할때 거래 트랜잭션 데이터를 생성하는 함수를 만들어 보도록 하겠다.먼저 blockchain.js 로가서 이어서 코드를 작성해보자. Blockchain.prototype.createNewBlock ... 생략. 이 코드 아래에 마지막 블록을 가져오는 함수를 작성한다. //마지막 블록 얻기 - chain 배열에는 블록데이터가 들어간다. 맨마지막 블록을 가져와라.Blockchain.prototype.getLastBlock = function(){ return this.chain[this.chain.length - 1];} 그 밑에 새로운 트랜잭션이 발생했을 때 작동되는 함수를 작성한다.참.. 2018. 5. 26.
자바스크립트로 블록체인 구현 강좌2 - 나만의 비트코인 발행하기 자바스크립트로 블록체인 구현 강좌2 - 나만의 비트코인 발행하기 지난 포스팅에서는 자바스크립트로 블록체인 구현을 위한 셋팅과 자바스크립트의 데이터구조와 프로토타입에 대한 기본 지식을 알아보았다. 이번에는 지난번 포스팅에서 구현한 내용을 직접 console.log로 찍어보면서 대충 아~ 이런거구나 하고 감을 잡아보자blockchain.js 모듈화 하기//블록체인 데이터 구조function Blockchain(){ this.chain = []; this.newTransactions = [];} //블록체인 프로토 타입 함수 정의Blockchain.prototype.createNewBlock = function(nonce,previousBlockHash,hash){ //새 블록 객체 const newBlock.. 2018. 5. 25.
자바스크립트로 블록체인 구현 강좌1 - 나만의 비트코인 발행하기 2년전부터 블록체인 기술에 관심이 생겨서 이것저것 찾아보면서 지식을 쌓았다. 이론만 공부하면 뜬구름 잡는 이야기처럼 들릴 수 있기 때문에 개발자라면 직접 구현을 한번 해보는것이 중요하다. 블록체인을 구현할 수 있는 언어들이 많지만 그중에서 가장 접근성이 쉬운 자바스크립트를 이용해서 개발을 해보겠다. 일단 자바스크립트와 node .js에 대한 기초 지식은 있어야 한다. 자바스크립트로 블록체인 구현 강좌1 - 나만의 비트코인 발행하기1.셋팅바탕화면에 개발 폴더를 만든다. 예를 들면 blockchain폴더를 만들었다고 하자. 그 폴더 위치에서 npm init을 해준다. 그러면 node js 서버를 구축 할 수 있는 기본 셋팅이 완료 된다. blockchain 폴더 안에 dev 폴더를 만들고 그안에 test.j.. 2018. 5. 25.
인터뷰 형식으로 알아보는 블록체인 인터뷰 형식으로 알아보는 블록체인 블록체인 스터디에서 각 팀원들이 주고 받은 내용을 인터뷰 형식으로 정리했습니다. ● 돈이란 무엇인가? - 돈이란 사람들이 필요로 하거나 원하는 가치를 보다 쉽게 저장하고 교환하기 위한 수단이나 매개체라고 생각한다. 물물교환의 시공간적 한계를 뛰어넘기 위해 만들어졌고, 가치평가의 기준이 된다. 그리고 돈의 가치는 사람들간의 합의를 통해 부여된다. ● 비트코인이 돈의 위치까지 올라갈 수 있는가? - 비트코인을 포함한 모든 탈중앙화 기반의 화폐가, 기득권(중앙기관)이 인정하는 화폐의 가치를 위협할수있기때문에 당연히 좋아하진 않을것같습니다 - 지금은 양적완화라는 이름으로 화폐를 발행하고 있는데, 이는 비트코인과 별반 다르지 않은 모습니다. 제도권에서 통제가 가능하나 안하냐가 중.. 2018. 5. 14.
키워드로 알아보는 블록체인 정리 키워드로 알아보는 블록체인 정리 ●블록체인이란?: 사람들이 신뢰 할 수 있는 방식으로 블록안에 정보 데이터가 정리, 기록되어 있는 공개된 장부 ●블록 : 관리대상이 되는 데이터 ●형태 : 블록안에 들어가있는 데이터가 서로 연결되어서 체인형태로 존재 ●특징: 누구든 임의로 수정할 수 없다. 누구나 변경된 데이터를 볼 수 있다.(장부 조작 불가능) , 위변조 방지, 분산처리 방식, 해킹 불가능 ●탈중앙 : 중앙 집중화된 권력을 분산 시킨다는 의미(중앙은행에서 화폐를 발행했다면, 이제는 모든 개인이 발행할 수 있다.) ●이중지불 방지 기술 : 한 명이 1000원을 보냈는데, 2명이 받는 문제를 방지하는 기술.(데이터의 해킹이나 오류 문제 해결) ●구현사례 : 비트코인 ●비트코인: 블록체인 기술을 기반으로 만들.. 2018. 5. 14.