일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- IP
- 블록체인
- 안정 정렬
- Relational Database
- CSS Specificity
- 명시도
- short-circuiting
- NoSQL
- ES6 모듈
- Factory 함수
- #1인게임개발
- #유니티
- 불안정 정렬
- http 모듈
- Factory Functions
- SQL
- CSS
- CLI
- Private Blockchain
- javascript
- npm
- caverjs
- Hybrid Blockchain
- 2티어 아키텍처
- UTXO
- 텍스트 가운데 정렬
- react
- 3티어 아키텍처
- solidity
- skip ci
- Today
- Total
목록개발 공부/블록체인 (8)
짹뚜 스튜디오
이번에 진행한 프로젝트는 커뮤니티 활동에 참여를 하면 보상으로 토큰을 지급하고 획득한 토큰으로 NFT를 구입할 수 있는 서비스이다. 팀원들과 모여서 가장 먼저 한 일은 우리의 서비스에 어떠한 기능들을 추가할 것인지 서로 의견을 나눴고 다음과 같이 결론이 나왔다. 글을 작성하면 토큰을 지급한다. 글에 좋아요를 누르면 글 작성자에게 토큰을 지급한다. 댓글을 달면 댓글을 단 사람에게 토큰을 지급한다. 회원가입 시 토큰을 지급한다. 자신이 만든 글들을 엮어서 출판할 수 있는 쿠폰을 NFT 형태로 판매한다. NFT를 구매할 때는 토큰을 사용한다. 클라이언트에서 서버로 API 요청을 하면 서버는 DB에서 정보를 가져와서 클라이언트에 데이터를 보내준다. 그런데 서버에서는 DB에서 데이터를 가져오는 것과 동시에 특정 ..

팀원들과 Opensea 클론 코딩 프로젝트를 진행했다. 일단은 블록체인과 프론트만 구현을 해서 Opensea를 구현하기로 했다. Opensea에서 제공하는 무료 API를 활용해서 이더리움 테스트넷인 Rinkeby에 존재하는 NFT들을 조회할 수 있고 각 Collection 및 NFT들에 대한 상세정보도 API로 제공하기 때문에 사용했다. 그러나 무료 API는 API 키 없이도 사용할 수 있는 장점이 있지만 모든 기능을 사용할 수 없기 때문에 Opensea의 모든 부분을 구현할 수는 없었다. 일단 우리가 중점으로 둔 기능들은 다음과 같다. 현재 Rinkeby 네트워크에 존재하는 NFT들 리스트로 출력 각 NFT에 대한 상세정보 페이지 출력 NFT 민팅 기능 NFT 판매 목록에 등록 NFT 구매 기능 htt..
스마트 컨트랙트로 ICO를 구현해보려고 한다. 일단은 ICO를 구현하기 위해서 필요한 기능들을 보면 다음과 같다. ERC20 토큰 스마트 컨트랙트 (ICO를 통해 판매하고자 하는 토큰) 돈을 전송받으면 토큰을 발행해야 한다. 한 명이 모든 토큰을 구매하면 안 되기 때문에 구매할 수 있는 토큰 양에 제한을 둬야 한다. 정해진 시간 내에서만 토큰을 구매할 수 있어야 한다. 목표 모금액을 달성하지 못하면 환불해줘야 한다. ICO가 진행 중일 때는 구매한 토큰을 전송하지 못해야 한다. 해당 글에서는 각 기능에 대해 중요한 부분과 직접 프로그래밍을 하면서 헤매었던 부분들 위주로 설명을 하고 전체 코드는 깃허브에서 확인할 수 있다. https://github.com/JJakDDo/ICOPractice GitHub ..

caver-js-ext-kas를 활용해서 클레이튼의 블록, 트랜잭션, 계정 정보들을 응답해주는 API 서버를 만들어보았다. API 서버는 클레이튼 바오밥 네트워크와 연결해서 구현했다. (https://github.com/JJakDDo/klaytnAPI) GitHub - JJakDDo/klaytnAPI Contribute to JJakDDo/klaytnAPI development by creating an account on GitHub. github.com 가장 먼저 해야 할 일은 KAS를 사용하기 위해 API 인증 키를 받아야 한다. https://www.klaytnapi.com/ko/landing/main 여기에 접속하고 가입해서 인증키를 받을 수 있다. 그 다음 프로젝트에 KAS 모듈을 설치해야 한..
일상생활에서 사용하는 금융 기록들은 금융 기관에서 모두 관리하고 있다. 그러나 비트코인 같은 경우에는 블록체인을 활용해서 하나의 기관이 금융 거래 기록을 관리하는 것이 아닌 네트워크에 참여하고 있는 모든 사람들 (노드들)이 관리하게 된다. 모두가 거래 기록을 저장할 수 있을 때 저장되는 기록들에 잘못된 정보가 없는지를 확인하는 작업이 필요하다. 비트코인의 경우에는 PoW (작업 증명)이라는 합의 알고리즘을 사용해서 블록체인에 블록을 연결할 때 노드들의 합의를 받아온다. PoW에서 작업이란 컴퓨터 연산을 뜻하는데 해시값이 특정한 값보다 작아지게 만드는 nonce 값을 찾아내는 일이다. 그리고 이 작업을 가장 빨리한 노드에게 블록을 생성할 권한을 주고 그에 대한 보상을 준다. 이러한 과정을 채굴이라고 한다...
거래에서 가장 중요한 것이 이중 지불이 되지 않아야 한다. A가 백만 원을 가지고 있는데 B와 C 동시에 백만 원을 입금할 수 없어야 한다. 중앙에서 관리를 하면 순차적으로 진행해서 B에게 백만 원을 입금하고 나서 C에게 백만 원을 입금할 때 잔액부족으로 이중 지불을 쉽게 방지할 수 있지만 비트코인과 같은 탈중앙화 시스템에서는 이것을 관리해주는 중앙이 없다. 그래서 비트코인은 이중 지불을 막기 위해서 UTXO를 사용한다. UTXO UTXO는 Unspent Transaction Outputs의 줄임말로 거래 내역 중 아직 소비하지 않은 거래 정보를 얘기한다. 비트코인은 이더리움과는 다르게 계정이나 잔고가 없고 UTXO의 합으로 비트코인을 얼마나 소유하고 있는지를 알 수 있다. UTXO는 각각의 코인들이 저..
Public Blockchain 이름에서 알 수 있듯이 개방형 블록체인으로 누구나 노드가 되어서 블록체인 네트워크에 참여할 수 있다. 그렇기 때문에 참여한 모두가 트랜잭션을 생성하고 모든 거래 내역을 열람할 수 있다. Public Blockchain은 네트워크에 참여한 모든 노드들이 서로 검증을 하기 때문에 신뢰도가 높지만 트랜잭션을 모든 노드들에게 공유하고 검증을 받아야 하기 때문에 처리속도는 느리다. Private Blockchain Public Blockchain과는 반대되는 개념으로 승인받은 사람들만 블록체인 네트워크에 참여할 수 있다. 중앙에서 블록체인 네트워크를 관리하기 때문에 Blockchain의 목적인 탈중앙은 아니지만 Blockchain의 데이터 분산 저장 기술과 보안성은 유지하기 때문에..
블록체인이란 데이터 분산 처리 기술로 네트워크에 참여한 모든 사람들이 동일한 데이터를 저장하고 공유하는 기술이다. 데이터가 블록이라는 형태로 저장되어있고 그러한 블록들이 체인처럼 연결되어있다 해서 블록체인이라고 부른다. 컴퓨터 자료구조 중 Linked List와 유사한 형태이다. 블록체인은 분산 저장한다. 즉, 동일한 데이터를 모든 노드들 (컴퓨터) 이 가지고 있다. 그래서 데이터의 위조 또는 변조가 어렵다. 만약 데이터를 하나의 서버에서만 관리를 한다면 그 하나의 서버만 공격을 해서 데이터를 위조를 할 수 있지만 (단일 실패 지점), 블록체인에서는 모든 사람들이 가지고 있는 데이터들을 모두 위조를 해야 하기 때문에 사실상 불가능하다. 중앙 관리자가 필요하지 않다. 탈중앙화라고도 얘기한다. 데이터를 검증..