본문 바로가기

:D/block chain

(20)
Moralis server 생성 Connect with SDK npm install(or yarn add) moralis react-moralis src/index.js import React from"react"; import ReactDOM from "react-dom"; import "./index.css"; import App from "./App"; import reportWebVitals from "./reportWebVitals"; import { MoralisProvider } from "react-moralis"; ReactDOM.render( , document.getElementById("root") ); src/App.js import logo from './logo.svg'; import './..
UNISWAP 5 : 유니스왑 V3 게으른 유동성을 해결하기 위한 유동성 집중 공급 CPMM 함수를 기반으로 토큰을 스왑하면 필연적으로 의도했던 가격과 실제 거래 가격 사이에 차이가 발생하는 슬리피지가 발생하게 됩니다. 슬리피지는 풀에 유동성이 적고 거래량이 많을수록 커지게 되는데, 이 슬리피지가 커질수록 거래자는 더 비싼 가격에 토큰을 거래해야 했습니다. 이러한 슬리피지 문제는 유니스왑 v2의 고질적인 문제로 자리 잡게 되었습니다. 유니스왑은 v3로 유동성 공급 방식에 변화를 주어 슬리피지 이슈를 일부 해결할 수 있다고 주장했습니다 유니스왑이 v3로 업데이트를 하며 해결하려했던 AMM의 문제점과 이에 대한 해결방법, 그리고 이로 인해 기존 CPMM 로직이 어떤 영향을 받았는지 알아봅니다. 유니스왑 v3의 변경된 유동성 공급창 유니스왑 v..
UNISWAP 4 : 유니스왑 V2 코드 분석(2) UNISWAP 4 : 유니스왑 V2 코드 분석 1편 보러가기 UniswapV2Pair.sol LP 토큰(쉐어)를 만들어내는 mint 함수 pair contract가 기록하고 있는 자기 자산의 양과 실제로 그 첫번째로 token0(1) 컨트랙트에 기록되는 자기 자산의 양이 다를 수 있다고 했음 만약 token0(1) 컨트랙트에 있는 내 자산의 양이 더 많다 라고 하면 mint를 시켜 줘야 함 반대로 더 적다 라고 하면 burn을 시켜줘야 함. 그것을 보고 mint를 할지 burn을 할지를 정하는 것. 그래서 mint를 하기 위해서는 token0 컨트랙트로 가서 balanceOf를 호출해서 내 잔고를 받아옴 마찬가지로 balance1도 똑같이 함 그리고 _reserve0(1)은 지금 내가 기록하고 있는 내 ..
UNISWAP 4 : 유니스왑 V2 코드 분석(1) V2-core github GitHub - Uniswap/v2-core: 🎛 Core smart contracts of Uniswap V2 🎛 Core smart contracts of Uniswap V2. Contribute to Uniswap/v2-core development by creating an account on GitHub. github.com Uniswap/v2-core 의 contracts 디렉토리 (interfaces, libraries, test 볼 필요가 없고 UniswapV2ERC20.sol UNI 토큰에 대한 내용이라서 볼 필요 없음) UniswapV2Factory.sol 새로운 pair를 거래하는 컨트랙트를 생성해내고 관리하는 게이트웨이 같은 것 저 V2 Pair가 실제로 ..
UNISWAP 3 : 유니스왑 V2 백서 유니스왑 V2 기존 V1의 단점들을 보완해서 2020년 5월에 새로 개발한 컨트랙트가 유니스왑 V2 (유니스왑 v2 core 백서) 원래 유니스왑 V1에서는 토큰 pair를 ERC-20토큰과 이더리움을 서로 pair로 만들어서 사용했음 UNISWAP 2 에서 봤던 Token Exchange 컨트랙트가 전부 다 ERC-20과 이더리움 pair로 이루어져 있음 이더리움을 bridge currency(기축통화)로 사용함 이렇게 되면 어떤 문제가 발생하냐면 어떤 사람이 두 스테이블코인(stable coin) DAI와 USDT를 가지고 pair를 만들고 싶은데 유니스왑에서는 반드시 이더리움을 bridge로 써야 함 그래서 그 pair를 만들기 위해서는 DAI-ETH pair 와 USDT-ETH pair를 만들어야..
UNISWAP 2 : 유니스왑의 컨트랙트 자세히 알아보기 두 개의 자산, 코인, 토큰을 가지고 AMM을 만드는 것 : 그래서 유니스왑은 항상 두 코인을 가지고 pair를 만들어서 관리를 하게 됨 유니스왑은 크게 Factory 컨트랙트와 Token Exchainge 컨트랙트로 나뉘어져 있음 Factory 컨트랙트는 우리가 *토큰 pair를 정할 때 이 pair 가 있으면 그 두 코인을 대상으로 컨트랙트를 만든 다음 그 안에 풀(pool)을 만듦. 당연히 그 풀에 있는 수량은 서로 곱이 일정함 * token pair : 거래되는 토큰 쌍을 의미. 이 토큰 페어로 구성된 유동성을 * pool 이라고 함. 그래서 1편에서 봤었던 ETH와 OMG라고 하면 ETH와 OMG의 pair에 대한 컨트랙트가 만들어지고 사람들이 만약에 ETH와 OMG를 교환하고 싶으면 그 컨트랙..
UNISWAP 1 : 유니스왑이란? UNISWAP 탈중앙화거래소(DEX : Decentralized Exchange) 코인을 거래할 때 중앙화거래소를 통하지 않고 탈 중앙화된 방식으로 스마트 컨트랙트를 이용하여 거래소를 만든 플랫폼 2018년 Devcon 4 에서 발표 후 Hayden Adams이 트위터로 런칭사실을 알림 기존에 유니스왑 말고도 IDEX 또는 DDEX 라는 여러 탈중앙화 거래소들이 존재했음 그런데 유니스왑이 이렇게 유명해진 이유? 탈 중앙화 플랫폼인 블록체인의 특징을 잘 이해하고 있는 플랫폼이기 때문 흔히 거래소라고 하면 주식, 증권, 코인 거래소 다들 비슷하게 생겼음 차트가 있고 호가창이 있음(*오더북) *오더북 : 거래자의 모든 매도 및 매수 주문을 기록한 목록을 의미. 쉽게 말해, 주식이나 암호화폐를 거래할 때 흔히 ..
[Solidity] 가스(Gas) 가스 - 이더리움 DApp이 사용하는 연료 솔리디티에서는 DApp의 함수를 실행할 때마다 가스 라고 불리는 화폐를 지불해야 함 사용자는 이더(ETH)를 이용해서 가스를 사기 때문에, DApp 함수를 실행하려면 사용자들은 ETH를 소모해야 함. 함수를 실행하는 데에 얼마나 많은 가스가 필요한지는 그 함수의 로직(논리 구조)이 얼마나 복잡한지에 따라 달라짐. 각각의 연산은 소모되는 가스 비용(gas cost)이 있고, 그 연산을 수행하는 데에 소모되는 컴퓨팅 자원의 양이 이 비용을 결정. 예를 들어 storage에 값을 쓰는 것은 두 개의 정수를 더하는 것보다 훨씬 비용이 높음. 함수의 전체 가스 비용은 그 함수를 구성하는 개별 연산들의 가스 비용을 모두 합친 것과 같음 함수를 실행하는 것은 사용자들에게 실..