본문 바로가기

블록체인16

Hardhat으로 컨트랙트 개발 시작하기 Hardhat으로 컨트랙트 개발 시작하기evm 기반에서 작동하는 스마트 컨트랙트 개발을 위해 하드햇을 사용하고 있다. 컨트랙트 개발을 시작하는 과정을 한 번 정리해보기 초기에 해둬야 할 설정에 대해도 정리해보자. 1. Node.js 설치하기대부분의 Ethereum 라이브러리와 도구는 JavaScript로 작성되었으며 Hardhat도 마찬가지입니다. 그렇기 때문에 node.js 가 설치되어 있어야하며 이 과정은 아래 링크를 참고하면 된다.https://hardhat.org/tutorial/setting-up-the-environment Hardhat | Ethereum development environment for professionals by Nomic FoundationHardhat is an Et.. 2024. 5. 16.
암호화폐 시가총액 시세와 같은 다양한 데이터를 API 형태로 제공하는 Coingecko 💡Coingecko Coingecko에서는 실시간 가격, 거래량, 과거 데이터, 컨트랙트 정보와 같은 다양한 데이터를 API 형태로 제공한다. * CoinGecko API 공식 문서 https://www.coingecko.com/ko/api/documentation Crypto API Documentation | CoinGecko Power your application with our free & independently sourced crypto data such as live prices, trading volume, exchange volumes, trading pairs, & more. www.coingecko.com 가령, https://api.coingecko.com/api/v3/coins/.. 2022. 8. 3.
클레이튼 네트워크의 블록탐색기, Klaytnscope 💡 Klaytnscope Klaytnscope는 클레이튼 네트워크의 블록 탐색기이다. 이더리움에서는 이더스캔을 사용하여 블록, 트랜잭션, 주소를 검색할 수 있듯이, 클레이튼 네트워크에서는 Klaytnscope 를 사용하여 트랜잭션, 블록, 주소를 검색할 수 있다. 또한, Klaytnscope는 네트워크의 상태를 모니터링하고 클레이튼 네트워크에 대한 다양한 통계를 제공한다. https://scope.klaytn.com/ Klaytnscope Klaytnscope allows you to find data by monitoring network health and statistics of Klaytn as well as profiling blocks and transactions on Klaytn. scop.. 2022. 8. 3.
프라이빗 블록체인에서의 스마트 컨트랙트 💡프라이빗 블록체인에서의 스마트 컨트랙트 우리가 흔히 아는 비트코인, 이더리움은 모두 퍼블릭 블록체인이다. 퍼블릭 블록체인은 무허가형 블록체인이기 때문에, 누구나 네트워크에 참여하여 블록체인을 읽거나 쓸 수 있다. 퍼블릭 블록체인은 탈중앙화 되어 있으며 네트워크를 제어할 수 있는 독점적인 참여자는 존재하지 않는다. 퍼블릭 블록체인에 있는 데이터는 노드들에 의해 검증되고 블록체인에 한 번 기록되면 수정하거나 삭제하는 것이 거의 불가능하다. 이러한 퍼블릭 블록체인과 반대되는 유형이 바로 프라이빗 블록체인이다. 프라이빗 블록체인은 네트워크 내에서 초대된 사용자만이 네트워크에 참여하고, 원장에 접근할 수 있는 허가형 블록체인을 의미한다. 프라이빗 블록체인은 채굴 과정과 합의 알고리즘에 대한 권한을 중앙 기관이 .. 2022. 7. 11.
블록체인에서 채굴(Mining)이란? 채굴자가 하는 일은? 해시율이란? 💡채굴 (Mining) 채굴이란 블록체인 네트워크에 노드로 트랜잭션을 검증하여 분산원장을 기록하고, 보상으로 암호화폐를 얻는 것을 뜻하며 땅을 파서 광물 따위를 캐내는 행위에서 유래한 용어이다. 새로운 블록을 만드는 것이 바로 채굴의 핵심이며 특정 컴퓨터 연산 작업을 통해 만들어지게 된다. 비트코인의 경우, 10분에 한 번씩 일정량의 블록이 생성되는데 이 생성된 비트코인을 채굴에 참여한 작업자 중 해시퍼즐이라는 문제를 푼 작업자에게 지급하게 되며, 이 해시퍼즐은 특정한 조건을 갖춘 해시를 찾아내는 일련의 과정을 말한다. 블록체인 기반의 암호화폐에서 새로운 블록을 생성하고 그 대가로 암호화폐를 지급받는 노드들이 바로, 채굴자(Miner)이다. ✓ 채굴자가 하는 일 토큰 이코노미와 크립토 이코노미를 통하여 .. 2022. 6. 29.
IPFS (InterPlanetary File System) 💡IPFS란? IPFS(InterPlanetary File System) 는 Git, BitTorrent, Kademlia, Bitcoin 등과 같은 서비스에서 영감을 받아 시작한 무료 오픈 소스 프로젝트이다. "인터넷과 웹의 인프라를 발전시키자" 라는 비전으로 현재 약 수천 명의 컨트리뷰터와 함께 운영되고 있다. 기존의 HTTP 프로토콜 방식은 방식은 데이터가 위치한 곳의 주소를 찾아가서 요청한 콘텐츠를 한 번에 가져오는 방식이었지만, IPFS는 전 세계 여러 컴퓨터에 분산 저장된 각 데이터 조각으로 잘게 나눠서 가져온 후 하나로 보여주는 방식으로 동작한다. IPFS는 현재도 진행 중인 프로젝트로써, 관련한 문서와 포럼은 실시간으로 발전하고 있다. Git: https://github.com/ipfs/i.. 2022. 6. 28.
블록체인 트릴레마 해소방안 - 오프체인(라이트닝 네트워크) 💡라이트닝 네트워크 라이트닝 네트워크는 양방향 채널이라는 아이디어를 기반으로 매우 저렴한 비용으로 거의 즉각적인 거래가 가능한 비트코인 레이어 2 솔루션이다. 기존 블록체인과 마찬가지로 P2P 교환을 갖추고 있지만 자금 관리를 위임하지 않는 채널 네트워크에서도 돈을 교환할 수 있다. 거래는 다른 모든 사람의 잔액에 대한 인증 역할을 하는 첫 번째와 마지막을 제외하고는 오프체인이다. 수많은 암호화폐가 트릴레마를 극복하기 위해 노력하고 있다. 그 중 하나인 라이트닝 네트워크는 기존 비트코인의 느린 처리 속도를 해결하고 빠른 속도를 구현하기 위해 개별 거래를 별도의 채널에서 처리한 후 그 결과만 블록체인에 기록하는 방식으로 작동하는 알고리즘이다. 라이트닝 네트워크는 탈중앙화와 보안을 기본으로 두고 확장성을 높.. 2022. 6. 24.
Safety 그리고 Liveness 💡Safety와 Liveness 합의 프로토콜은 다음의 두 속성을 만족시켜야 한다. Safety: 시스템에 나쁜 일이 발생하지 않는다는 의미이며, 모든 정상적인 참여자는 같은 상태에 동의하여야 하고 그 상태는 유효해야 한다. 다시 말해, 문제없는 노드는 잘못된 합의를 하지 않는다는 의미이다. Liveness: 시스템은 항상 살아있어야 한다는 의미이며, 결국에는 어떤 상태에 동의하여야 하고, 모든 참여자는 동의한 상태에 도달해야 한다. 다시 말해, 문제 없는 노드는 반드시 합의한다는 의미이다. ✓ FLP Impossibility 우선 아무 문제 없는 두 노드가 서로 다른 값으로 합의하면 안 된다. 다른 값을 합의했다는 것은 블록체인 관점에서 보면 같은 높이에 서로 다른 블록이 생성됐다는 것이다. 이런 특성.. 2022. 6. 24.
확장성을 타협한 암호화폐/블록체인 💡비트코인(Bitcoin) 비트코인은 높은 탈중앙화와 보안을 갖추고 있다. 그러나 확장성의 한계로 인해 트릴레마를 극복하지 못했다. 비트코인은 애초부터 탈중앙화와 보안에 초점을 맞추고 개발되었는데, 특히 보안 측면에서는 최고의 암호화폐라고 평가된다. 실제로 비트코인은 암호화된 기술을 바탕으로 서버 역할을 하는 노드들이 네트워킹되어 블록체인을 검증하기 때문에 쉽게 위변조가 사실상 불가능하다. 하지만 시간이 흐름에 따라 비트코인은 점점 더 많은 사용자를 확보하게 됐고, 자연스럽게 네트워크가 확장됨에 따라 트랜잭션 속도가 느려지는 확장성 문제가 확인되었다. 비트코인은 7 TPS 정도의 처리 속도를 가지고 있다. 이는 3세대 블록체인이라고 불리는 이오스의 3,000 TPS에 비하면 현저히 낮은 수치이다. 비트코.. 2022. 6. 24.
블록체인 트릴레마, 블록체인 기술의 3대 요소 💡블록체인 트릴레마 블록체인 기술이 금융을 포함한 다양한 산업 분야에서 유용함을 입증하고 있지만, 아직까지는 기존의 중앙집중적인 네트워크와 비교하기에는 무리가 있다. 궁극적으로는 해결되어야 할 문제, 트릴레마(Trilemma)가 있기 때문이다. 트릴레마에는 블록체인에서 확장성(Scalability), 보안성(Security), 탈중앙성(Decentralization) 중 하나는 희생해야 한다는 문제이다. 1980년대에 발표된 CAP정리가 여전히 블록체인 트렐라마에도 유요한 것이다. CAP 정리에 따르면 분산형 데이터 저장소는 일관성, 가용성 및 파티션 내성의 세 가지 보장 중 두가지만 동시에 제공할 수 있다. 예를 들어, 비트코인은 탈중앙화되어있고, 안전하지만 초당 약 7개의 트랜잭션만 처리할 수 있다... 2022. 6. 23.
블록체인에서 머클트리를 어떻게 사용할까? 💡 블록체인에서의 머클트리 비트코인의 블록 구조는 대략 다음과 같다. 모든 블록은 고유한 해시값을 가지고 있다. 헤더에는 이전 블록의 해시값, 버전, 난이도, 머클루트, 블록 생성 시간, 논스 등 블록에 대한 내용이 들어있다. 그리고 트랜잭션들이 담겨 있다. 블록의 해시값은 블록 헤더의 모든 값들을 연결하여 해싱한 값이 블록의 고유한 해시값이 된다. 또한 1번 블록의 해시값은 그 다음으로 이어디는 2번 블록의 헤더에 포함된다. 따라서 블록은 자신 바로 앞의 블록 해시값을 가지고 있다. 이 때, 블록 헤더의 머클루트는 트랜잭션을 사용해 머클 트리를 만들고 그 결과로 나온 값이 머클 루트 값이 되는 것이다. 즉, 블록에 담긴 모든 트랜잭션에 대한 무결성을 보장하는 머클루트 값이 블록 해시에도 들어가게 된다... 2022. 6. 22.
해시 함수는 무엇일까? 블록체인에서 해싱의 역할은 무엇일까? 💡해시 함수 본래 해시라는 것의 어원은 고기와 감자를 잘게 다져서 섞어 만든 요리이다. 우리가 잘 아는 해시 브라운도 감자를 잘게 다져서 튀김 음식이다. 어원이 이렇듯, 해시 함수도 원본 데이터를 잘게 조각내어 원본을 알아볼 수 없게 된다. 알고 있는 암호화는 암호화와 복호화가 한 세트인 '원본 보존이 가능한' 암호화였다면 해시 함수는 한 번 해싱했다면, 그 해싱된 값을 통해 입력값을 유추할 수 있다. 이러한 특성 때문에 단방향 암호라고 부른다. 해싱은 다양한 크기의 입력값을 고정된 크기의 출력값으로 생성해내는 과정을 의미한다. 해시 함수는 어떠한 크기의 입력이 들어와도 동일한 크기의 출력을 뱉는 함수이다. 원본이 조금이라도 바뀌어도 결괏값이 전혀 달라지며, 출력값을 통해 입력값을 유추할 수 없다. 오늘.. 2022. 6. 21.