블록체인
-
[블록체인] 전자투표 웹 만들기 - 컨트랙트 디플로이블록체인 2022. 7. 19. 16:57
use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; use near_sdk::json_types::{U128, U64}; use near_sdk::{env, near_bindgen, AccountId, Balance, EpochHeight}; use std::collections::HashMap; #[global_allocator] static ALLOC: near_sdk::wee_alloc::WeeAlloc = near_sdk::wee_alloc::WeeAlloc::INIT; type WrappedTimestamp = U64; /// Voting contract for unlocking transfers. Once the majority of..
-
[블록체인] 이더리움 dApp개발 MacOS 환경설정블록체인 2022. 7. 4. 08:22
1. node.js와 npm이 설치되었는지 확인한다. node --version npm --version 2. ganache.cli 와 web3, 솔리디티 컴파일러를 설치한다. npm install ganache-cli web3@0.20.3 solc 3. node에 접속한다. node 4. Web3 = require('web3') web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545")) 5. 생성된 10개의 계정을 확인한다. node_modules/.bin/ganache-cli node 에서 확인할 수도 있다. web3.eth.getAccounts (console.log)
-
[블록체인] 블록체인 전자투표 웹 만들기 -3블록체인 2022. 6. 30. 08:39
본격적인 스마트컨트랙트의 구성이다. 1. near-sdk 다운로드 yarn add -D near-sdk-as 약간 고난인 점은, 니어에서 스마트 컨트랙트를 짤 때 러스트를 사용한다는 점이다. 타입스크립트나 이런 걸로 되려나. 2. npx create-near-app [options] new-awesome-project 여기서 옵션을 assemblyscript로 주려고 했으나 네, 안된다고 한다. 즉, 어쩔 수 없이 러스트를 사용해야만 한다. npx create-near-app --frontend=react --contract=rust [프로젝트이름] 3. 니어 프로젝트에서 러스트 설치 방법 1. Rustup 설치 curl --proto '=https' --tlsv1.2 -sSf https://sh.rus..
-
[블록체인] 블록체인 전자투표 웹 만들기 -1블록체인 2022. 6. 20. 14:20
1. Node.js 설치 2. vs code의 터미널을 연다 sudo npm install create-near-app -g 3. 프론트엔드 생성 create-near-app --frontend="react" blockheadvote source $HOME/.cargo/env cd blockheadvote yarn dev 터미널에서 말해주는 대로 환경 설정과 yarn 실행해준다. 니어가 자동으로 뜬다. 새로운 계정을 만들어 준다. 이렇게 디렉토리 중에 frontend 폴더에 디폴트로 생성되어 있는 부분들을 수정해 주면 원하는 기능을 사용자에게 보여줄 수 있다. 이런 식으로 부트스트랩 설치 npm install react-bootstrap bootstrap 원하는 꾸미기 요소를 검색해서 코드를 복사하고 A..
-
[블록체인] 체인코드-1블록체인 2022. 5. 29. 16:20
$ cd $GOPATH/src/fabric-samples/first-network 하이퍼레저 예제는 BYFN의 실행을 위해 자동 스크립트 실행 파일과 설정 파일들을 제공하는데, 중요한 파일들은 다음과 같다. - byfn.sh : 네트워크를 구축하고 테스트할 수 있는 byfn 예제를 위한 쉘 스크립트 파일이다. 이걸 실행해서 하이퍼레저 네트워크를 구축한다. - configtx.yaml : 네트워크의 채널과 제네시스 블록을 만들고 앵커 피어노드 파일을 생성하기 위한 설정 파일이다. - crypto-config.yaml : MSP에서 인증서를 발급하기 위한 설정 파일이다. cryptogen 툴로 인증서를 발급할 때 사용되는데, 이 파일을 이용해서 조직과 참가자들에게 각각의 인증서를 발급한다. - docker-..
-
-
-
[블록체인] Hyperledger Fabric블록체인 2022. 5. 20. 16:06
하이퍼레저 패브릭 전체 구성에 대해 알아보고 이를 예제 코드로 구현해 보도록 한다. 하이퍼레저 패브릭은, 허가형 네트워크 이므로 각 조직을 나타내는 네트워크가 구성돼야 한다. 앞으로 엔도싱 / 커밋 피어 / 오더러 / CA/ 원장/ 블록체인 / 월드 스테이트를 간단히 구현하여 어떻게 상호작용 하는지 알아보도록 한다. 각 구성 요소에 대한 설명은 다음과 같다. 엔도싱 피어 - 클라이언트가 발생시킨 트랜잭션을 계산/보증한 후 리턴 커밋 피어 - 오더러가 보낸 블록을 장부에 기록 오더러 - 보증된 트랜잭션(Read/Write Set)을 받아서 정렬한 후 블록으로 만들어서 커밋 피어에게 전달 카프카 - 오더러가 정렬할 때 사용하는 도구 CA - 피어와 사용자에게 암호화 재료를 만들어 주는 도구 MSP - 허가형..
-
-
[블록체인] 하이퍼레저패브릭 테스트블록체인 2022. 4. 15. 16:37
하이퍼레저 패브릭 환경 구축을 위한 테스트채널을 개설하고 이를 실행해 본다. 환경변수를 설정한다 FABRIC=$GOPATH/src/github.com/hyperledger/fabric 패브릭을 받아 온다. git clone -b release-1.4 https://github.com/hyperledger/fabric $FABRIC cd $FABRIC 경로 지정을 해준다. export PATH=$GOPATH/bin:$PATH make dist-clean all 네트워크를 실행한다. ./network up -끝-
-
[블록체인] DID Indy tutorial블록체인 2022. 4. 1. 20:53
what Indy and Libindy are and why they matter 인디는 프라이빗, 안전하면서 강력한 아이덴티티를 위한 sw 생태계를 제공한다. 그리고 리브인디는 클라이언트에게 그런 생태계가 가능하도록 한다. 인디는 사람에게 개인 정보 보호와 보안에 대한 결정을 내릴 수 있도록 한다. 이전까지는 은행에게 자신의 금융 정보를 맡기고 그들이 지키도록 강제했다면, 이젠 개개인이 스스로의 정보를 보안하도록 하는 것이다. 인디의 레저들은 데이터베이스 형태이다. 이 레저들은 중앙의 관리자가 관리하는 거대한 데이터 베이스가 아니라, 참여자들에게 협력적으로 제공된다. 데이터는 여러 곳에서 중복돼 존재하며, 트랜젝션에 누적됩니다. 암호화 기술이 이것들을 보호한다. 예시를 통해 인디에 대해 공부해 보자. ..
-
[블록체인] opensea-marketplace 제작하기블록체인 2022. 3. 29. 20:55
1. node.js설치 https://nodejs.org/en/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 2. npx create-next-app@latest opensea-clone 3. yarn 설치 npm install --global yarn 4. cd opensea-clone 5. dependency 설치 yarn add ethers hardhat @nomiclabs/hardhat-waffle ethereum-waffle chai @nomiclabs/hardhat-ethers web3modal @openzeppelin/contracts ipfs-http-client axio..
-
[블록체인] 하이퍼레저 툴(Tools)블록체인 2022. 3. 28. 10:54
이더리움에도 블록 익스플로러가 있듯이, 하이퍼레저에도 블록 익스플로러가 있다. https://medium.com/emblock/hyperledger-explorer-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0-feat-byfn-e6d924c72d25 [Hyperledger Tools] 1. Explorer 사용해보기 (feat. BYFN) 📝 공식문서를 기준으로 정리한 Hyperledger Explorer 실습 문서입니다. medium.com 블록 익스플로러에서 블록 개수, 트랜잭션 내용, 체인 코드 등 다 확인할 수 있다. api의 형태로 invoke 등을 할 수 있다. 캘리퍼는 퍼포먼스를 체크할 수 있다. 하이퍼레저에서 TPS를 측정하기 위한 툴이다. 첼로는 피어..
-
[블록체인] 패브릭 아이덴티티블록체인 2022. 3. 25. 10:18
1. 패브릭 아이덴티티란 PKI를 기반으로 하는 인증서 기반의 시스템이다. 오더러, 피어, 애플리케이션은 자신의 개인키, 공개키, 인증서가 있어서 애플리케이션은 트랜잭션을 만들 때 자신의 개인키를 갖고 서명을 해서 던지게 되고 피어도 자신이 endorsing해서 해당 트랜잭션을 검증하면 개인키로 서명을 해서 반환하고 오더러도 블록을 만들 때 서명을 하고 반환한다. 각자 요소들은 서명을 공개키를 갖고 검증하는 과정을 거친다. 2. PKI - 공개키 암호화 대부분의 블록체인에서 공개키 암호화 알고리즘을 사용하고 있다. 개인키 + 공개키 1) 개인키 : 소유자가 갖고 비밀 키 - 데이터에 서명하는 용도로 사용 - 공개키로 암호화한 데이터를 복호화 할 수 있다. 2) 공개키 : 다른 사람에게 알려주는 용도 - ..
-
[블록체인] 패브릭 네트워크 세팅블록체인 2022. 3. 25. 09:42
패브릭 구성 요소들 중에 가장 중요한 것은 권한 관리에 관한 것이다. 권한은 인증서를 기반으로 한다. 인증서를 만들고 수정하는 것을 패브릭CA를 통해서 제공하고 있다. 인증서 관리에 대한 이슈가 항상 있다. 패브릭 ca를 통해 멤버십 서비스 등을 제공할 수 있다. 채널은 피어들이 채널에 가입할 수 있다. 같은 채널에 있는 피어들은 해당 채널에 있는 컨트랙트, 블록체인(원장)을 공유한다. 채널에 가입된 피어들끼리 공유하기 위해서는 같은 스마트컨트랙트가 있어야 한다. 한 피어가 여러 채널에 가입되어 있을 수 있다. 오가니제이션(R)은 아이덴티티를 규정하는 것이다. 네트워크 셋업을 할 때 오가니제이션 단위로 관리한다. 1. 크립토 관련 작업 블록체인 네트워크 피어와 오가니제이션 등등 관련해서 패브릭은 인증서를..
-
[블록체인] 하이퍼레저 패브릭으로 네트워크 생성하자블록체인 2022. 3. 24. 10:48
1. 비트, 이더와 공통점 / 차이점 비트와 이더는 가장 많이 쓰이는 퍼블릭 블록체인입니다. 패브릭과 비교했을 때 가장 큰 차이는 비트와 이더는 '프로그램 하나가 모든 것을 처리한다' 이고, 패브릭은 프로그램이 하나가 아니라 구성요소가 나뉘어 있어서 각 역할이 분배돼 있다. 즉, 비트와 이더는 블록 생성자와 스마트 컨트랙트 처리 노드가 동일하지만, 패브릭은 각각을 오더와 피어로 나누어 수행한다. 비트와 이더에서는 마이닝, 지갑, 블록체인 저장, 월드 스테이트를 갖고 있어서 프로그램을 하나 깔면 모든 기능을 할 수 있다. 패브릭의 경우 역할이 나눠져 있으므로 오더러(orderer)는 블록을 생성하는 역할만 한다. 피어(peer)는 시뮬레이팅과 블록체인 보관을 하는 역할을 한다. 물론 오더러도 블록체인을 보..
-
[블록체인] 체인코드 동작 과정블록체인 2022. 3. 23. 11:49
하이퍼레저 패브릭의 네트워크 구조 애플리케이션을 사용하는 이용자가 클라이언트이고, 생성된 피어와 채널, 체인코드, 장부가 패브릭 영역에 속한다. 클라이언트는 request를 서버로 전송하고 서버는 request에 따라 동작한다. DB 탐색이 필요하다면 여기에 접근해 read/write 동작을 수행하고 그 결과를 statusCode와 함께 response로 클라이언트에게 전송한다. 이와 같은 구조는 웹 애플리케이션의 기본 구조이다. 그대로 하이퍼레저 패브릭에 빗대어 표현하면 다음과 같다. 클라이언트가 애플리케이션을 통해 요청을 보낸다. 이때 서버 역할을 하는 동작은 애플리케이션 내부에서 수행한다. 이 서버의 요청에 따라 체인코드를 호출한다. 체인코드에는 main/init/invoke 세 가지가 있다. - ..
-
[블록체인] 하이퍼레저 패브릭 - 블록체인블록체인 2022. 3. 22. 20:22
블록체인 기술에 대한 짧은 요약을 하자면, 블록체인 기술은 P2P 네트워크에서 발생하는 모든 거래 정보를 담고 있는 원장과 노드라고 불리는 모든 컴퓨터가 분산 저장 및 업데이트하고 무결성을 유지하도록 하는 기술이다. 블록체인 구조와 동작 - 하나의 블록에는 이전 블록의 거래정보(해시값)와 현재의 거래정보(해시값)가 포함돼 있다. - 이처럼 블록들이 서로 연결돼 있고, 해시 함수의 특성을 활용하고 있으므로 무결성을 보장한다. 또한 거래 정보가 투명하게 공개돼 있다. - 만약 누군가 해시값을 조작하려 할지라도 블록체인의 합의 과정에 의해 조작된 블록은 자연스럽게 제거된다. 분산형 원장 구조 네트워크의 참가자들이 모두 원장을 소유한다. 네트워크 구성 요소 - 노드 : 트랜잭션 내역 보관, 트랜잭션 승인, 합의..
-
[블록체인] 블록체인의 수익 창출 원리블록체인 2022. 3. 19. 10:09
산학 트랙으로 간다면 생태계를 만들고, 이를 활용한 수익 창출 요소와 이용자를 확보할 수 있는지를 생각해야 한다. 최초의 블록체인, 퍼블릭 블록체인 모델들은 이렇다할 수익 창출 요소가 없다. 비트코인, 이더리움 등. 보안 계열의,,.,잘 모르지만 학문의 영역에 있었던 블록체인이 점차 기업의 관심 요소가 되면서 블록체인을 활용해 어떤 프로젝트를 했을 때 수익을 창출 할 수 있는지 궁리하기 시작했다. 산업에 적용한다면 서비스 제공자와 이용자가 상호작용하는 생태계를 구성하는 것이 중요하다. 그러나 탈중앙화라는 특성을 지닌 블록체인은 기존의 개념으로써는 수익을 창출할 수 없다. 기업이 발행한 서비스, 제품을 사용자에게 제공하고 이를 대가로 돈! 이라는 수익을 얻는 게 일반적인 수익 모델이다. 하지만 블록체인은 ..
-
[블록체인] 블록체인이란 / 작업증명 / DID 란/ 하이퍼레저 인디블록체인 2022. 3. 18. 13:40
블록체인이란 블록체인은 비트코인에 대해 얘기할 때 가장 많이 언급된다. '은행 없는 글로벌 금융 시스템'이 바로 비트코인이다. 사토시 나카모토는 비트코인을 '전적으로 거래 당사자 사이에서만 오가는 전자화폐' 라고 소개하고, 'P2P 네트워크를 통해 이중 지불을 막는다.' 라고 설명했다. (-> 전자투표에 활용한다면, 선거 비용을 아낄 수 있겠다.) 전자화폐는 물리적인 실체 없이 컴퓨터 상에 데이터로만 존재할 수 있다. 하지만 무한정 복제할 수 있는 돈은 가치가 없다. 그러니 전자화폐를 돈으로 쓰려면 데이터를 함부로 고칠 수 없도록 장치를 해둬야 한다. 블록체인이 이런 장치를 갖고 있다. 블록체인은 '공공 거래장부'라고도 불린다. 말 그대로 거래장부를 공개해 두고 관리한다는 뜻이다. 예를 들어, 내가 은행..