본문 바로가기
etc/블록체인 뉴딜일자리사업

자바스크립트 작성 규칙, 나이 계산 / 디파이 역사와 리서치 실습

by vellahw 2023. 5. 8.

 

💭 교육 4일차

오전은 자바스크립트 기초 프로그래밍, 오후는 블록체인 디파이 관련 수업을 했다. 자바스크립트 수업은 prompt, document.write()로 브라우저에 내용 띄우기, 크롬 개발자 도구를 통해 오류 찾기 등 아주아주 기초적인 것들이었어서 가볍게 들었다. 한 예제의 설명이 끝날 때마다 배운 코드를 직접 작성하는 시간을 주셔서 처음 프로그래밍을 접하는 분들께는 따라가기 좋은 진행이었던 것 같다! 블록체인은 어쩔 수 없이 코인에 관한 역사적인 것들을 진행하다보니 관심있게 들으려 노력을 해야하긴 했다 ㅎㅎ..

 

 

 


자바스크립트 기초

 

✔️ 환경설정

- Live Server 확장프로그램 설치: 임의 서버 활용 

- 개발자 도구 단축키 ctrl+shift+j도 가능

개발자 도구 열 때 F12키만 활용 했었는데 노트북으로 작업시 fn키를 누르는게 종종 번거롭다고 생각했는데 쓰다보니 fn키 누르는게 나은 것 같다 ㅎㅎ.. 

 

 

✔️ 자바스크립트 소스 작성시 지켜야할 6가지 규칙

  1. 대소문자를 구분하여 작성한다.
  2. 가독성을 위한 들여쓰기 하는 습관 
  3. 세미콜론(;)으로 문장을 구분한다. (붙이지 않아도 코드가 실행되지만 코드 구분을 위해 붙이는 것을 권장)
  4. //한줄 주석,  /* 여러줄 주석 */
  5. 식별자(변수, 함수, 속성)의 첫 글자는 반드시 영문자, 언더바(_), $ 기호로 시작하며 (num, _num, $num) 두 단어를 연결하여 이름을 지을 때는 첫단어 시작은 소문자, 다음 단어 시작은 대문자로 작성 (checkPoint => 이러한 형태를 카멜 케이스라고 부름)
  6. 예약어는 식별자로 사용 불가능

 

✔️ 변수와 자료형

변수의 첫 글자는 반드시 영문자, 언더바(_), $ 기호로 시작한다.

 

🧷 나이 계산 예제

<script>
	function calc() {
		var now = new Date();
		var currentYear = now.getFullYear();
		var userBirthYear = prompt('출생연도를 입력해주세요.', 'YYYY');
		var userAge = currentYear - userBirthYear + 1;

		document.querySelector('#result').innerHTML = '당신의 나이는 ' + userAge + '세 입니다.';
	}
</script>

innerHTML 보다 appendChild()를 자주 쓰다보니 innerHTML은 = 기호를 붙여 값을 입력해야 하는걸 자꾸 잊는다..

쓸 일 있을 때마다 괄호 안에 입력해서 꼭 오류를 한 번 만나고 고치게 되는 듯.. ㅎㅎ

innerHTML 보다 appendChild()를 쓰는 걸 더 권장하던데 그래도 까먹지 말자!

 

 

👀 배열의 생성 및 특정 값 가져오기

배열의 생성

  • 대괄호 [ ] 안에 콤마로 구분하여 작성한다.

배열의 특정 값 가져오기

  • 배열의 인덱스는 0부터 시작한다
  • 배열변수명[배열인덱스] 로 값을 가져올 수 있다.

 

👀 Object 자료형

 

 

🧷 할인율 계산 예제

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
31
32
<body>    
    <div id="contents">
        <img src="images/sale.png">
        <ul>
            <li>
                <label for="oPrice">원래 가격</label> 
                <input type="text" id="oPrice">
            </li>
            <li>
                <label for="rate">할인율</label>
                <input type="text" id="rate">%
            </li>
            <li>
                    <button onclick="showPrice()">할인 가격 계산하기</button>
            </li>
        </ul>
        <div id="showResult"></div>    
    </div>    
 
    <script>
        function showPrice() {
            var originPrice = document.getElementById('oPrice').value;
            var rate = document.getElementById('rate').value;
 
            var savedPrice = originPrice * (1 - (rate/100));
 
            document.querySelector('#showResult').innerHTML = '상품의 원래 가격은 ' + originPrice + '원이고 '
                                                            + '할인율은 ' + rate + '%입니다.'
                                                            + '<br/> 할인된 금액은 ' + savedPrice + '원 입니다.';
        }
    </script>
</body>
cs

 

가격과 할인율을 입력하고 버튼을 누르면 동자가는 showPrice() 함수만 작성했다.

 

실행화면 ㅎ

 

 

 

 

 


블록체인 이론

 

✔️ 블록체인의 트릴레마(탈중앙화, 보안성, 확장성)는 모두 충족할 수 없다.

비트코인은 굉장히 탈중앙화 되어 있고 보안성이 높다. 하지만 하나하나의 이해관계와 검증이 필요하기 때문에  확장성은 조금 떨어지게 된다.

하지만 탈중앙화를 포기한 솔라나가 등장했다. 탈중앙화를 포기했기 때문에 보안성은 낮아졌지만 확장성은 굉장히 높아졌다. 보안성이 낮아진만큼 체인이 멈추는 등의 문제가 발생하기도 했다.

 

이더리움 네트워크의 Layer2 체인

이더리움은 확장성이 보장되어야 시장의 가치가 커질 것이라고 판단했다. 따라서 PoS로의 전환을 시도했다.

PoS로의 전환만 한다면 솔라나와 다를 것이 없었는데 DA(Data Ability), Consensus, Settlement, Execution 작업 레이어를 분업화 하기 시작했다. 그리고 이더리움의 기능 개선에 동참한 Layer2(아비트럼, 옵티미즘 등)가 등장했다.

 

네가지 요소를 한 번에 처리하는 블록체인 - 모노리틱 (비트코인)

한 번에 처리가 아니라 여럿에 분업하여 처리하는 블록체인 - 모듈러 (이더리움)

 

 

✔️ 디파이 역사 

블록체인으로 금융이 가장 먼저 발전하게 되었다. 이것을 디파이(Decentralized Finance) 탈중앙화 금융이라고 한다. 중앙화 금융의 반대이다.

 

- 중앙화 금융?  우리가 현재 사용하고 있는 우리은행, 카카오뱅크, 토스 등을 사용하는 것. 국가 통제하에 운영됨 

- 탈중앙화 금융? 국가의 통제가 없고 누구나 참여 가능하고 허락이 필요하지 않기 때문에 자유롭다. 이로인해 시장이 빠르게 성장할 수 있었다.

 

디파이는 어떤 상품?

금융 상품이라고 부를순 없지만 금융의 형태를 띈다.

  1. 예치 Deposit
  2. 환전 Swap
  3. 대출 Lend
  4. 파밍 Farm(유동성 공급. 대가로 보상을 받음) < 중앙화 금융에는 없는 상품

2020년도 초반 일론 머스크의 비트코인에 대한 주장으로 비트코인 급상승, 급락 사건이 있었다. 

디파이의 수익은 거래 수수료(0.3%, 0.25%)와 거버넌스 토큰(디파이 서비스를 제공하는 회사가 발행한 토큰)의 합으로 계산되는데 시장에 너무 많은 거버넌스 토큰이 있고(유통 과다) 과도하게 부풀려진 토큰 가치를 해결하기 위해선 중앙화된 기구가 있어야 한다는 의견 제시되었다. 

거버넌스 토큰 유통을 줄이면 문제가 해결될 것이라는 의견으로 올림프스 다오(Olympus DAO, DeFi 2.0)가 탄생했으나 유통비율만 잡으려고 했기에 과도하게 부풀려진 토큰 가치는 해결되지 못해 아직까지도 디파이는 하락장이 지속되고 있다.

 

2022년 거버넌스 토큰을 재정의 하자는 의견이 모아졌다. 22년 전에는 거버넌스 토큰은 프로토콜의 사업 방향성 결정에 참여할 수 있다고 정의 했는데 이 말은 즉 자신이 원하는 대로 프로젝트를 이끌어 갈 수 있다는 뜻이었다. 하지만 거버넌스 토큰 의사 결정에 목소리를 낼 수 있는 건 재단이었다.

이에 프로토콜의 가치를 반영하는 거버넌스 토큰이 필요하다는 의견 즉, 배당해달라!

하지만 배당(증권성 토큰)은 불법이다. 그래서 탄생한 것이 프로토콜의 수익을 토큰 예치자한테 돌려주는 프로젝트 아비트럼 GMX이다.(거버넌스 토큰 GMX에 예치하면 70%를 예치자에게 돌려주고 30%는 다른 목적으로 사용하겠다고 함)

 

 

✔️ 디파이 일드 (Farming Yield)

금리 혹은 수익률이라고 볼 수 있다.

일드의 구성: 거래수수료+프로토콜 거버넌스 토큰(유니스왑 등이 주는 토큰)

 

거래수수료가 0.3%가 표준이었지만 0.25%를 유동성 공급자에게 준다.

시장 일드가 100%이라고 했을 때 거래 수수료는 1% 뿐이고 거버넌스 토큰이 99%를 차지한다.

99%의 거버넌스 토큰은 결국 부채이기 때문에 시간이 지나 결국 터지게 됨

 

은행에서 제공하는 이자는 기업(개인)의 대출, 국공채, 사채 등으로 얻은 수익이다.

기업은 서비스를 제공해서 대가를 받고 수익을 낸다. 하지만 디파이는 이러한 메커니즘이 없어 문제가 발생했다. 

 

초기에는 찍어낸 토큰에서 기인 했으나 최근에는 리얼 일드(Real Yield) 창출을 위한 노력을 하고 있다고 한다.

 

 

 

🧷 블록체인 데이터를 활용한 루나 폭락 사태 찾기 & 폭락 전 시그널 찾기

문제의 발단: 은행에서 2% 정도 밖에 받지 못하는 저금리 시기에 테라폼랩스의 앵커라는 서비스에 예치하면 약 20% 정도의 이자를 준다는 홍보

 

두 가지 사실을 기억해보자.
첫째, 가격은 수요와 공급의 상대적 크기에 따라서 결정된다. 초과공급이 발생한다면 가격은 하락하고, 초과수요가 발생하면 가격은 상승한다. 따라서 초과수요 또는 초과공급을 만들 수 있다면 가격을 조정할 수 있다.
둘째, 차익 거래는 언제나 이윤이 남기에 투자자 처지에 마다할 이유가 없다. 따라서 차익 거래의 기회를 만들 수 있다면 투자자들로 하여금 어떠한 물건을 사고팔게 할 수 있다. 투자자가 차익 거래를 통한 이윤 창출의 기회를 거절할 리 없기 때문이다.

(차익 거래란? 물건을 싸게 사서 비싸게 파는 것)

 

1UST의 시장가격이 1달러를 초과하는 경우를 가정하면(예를 들어 1UST=1.1달러) 프로토콜은 1UST를 시장가보다 저렴한 가격(=1달러)에 받을 수 있는 차익거래 기회를 제공해 의도적으로 초과공급을 만들어 가격을 낮춘다.

이 과정에서 투자자는 1달러로 1.1달러 가격의 1UST를 받은 후 시장에 판매하면 어떠한 리스크도 없이 0.1달러를 벌 수 있다. 이때 각 투자자는 자신의 이익을 위해 UST를 구입하지만, 결과적으로 UST의 가격이 안정되는데 일조하게 된다. 

 

여기서 어떤 과정을 통해 UST를 받을 수 있게 했느냐, 그것이 담보 토큰 루나이다.

프로토콜은 법정화폐가 아닌 담보 토큰 루나를 이용해 차익 거래를 할 수 있는 기회를 제공한다. 1달러어치의 루나를 시스템에 전송하면 1UST로 교환해주는 것이다. 차익 거래가 실현되면 루나의 가격 역시 변동한다. UST로 교환하기 위해 시스템에 루나를 보내면 시장에 유통되는 루나의 양이 줄어들어 루나 가격이 상승한다. 이러한 알고리즘을 통해 루나는 뒷배, 담보 기능을 하게 된다.

UST 가격이 하락할 때, 프로토콜은 연동을 회복하기 위해 1UST를 1달러 어치의 루나와 교환한다. 시스템에 들어온 UST는 소각돼 UST 가격이 상승하지만, 루나의 유통량이 늘어났기 때문에 루나 가격은 하락한다.
그런데 UST의 가격 하락이 지속적으로 발생한다면,  1UST와 교환되는 루나의 양이 증가하기 때문에 루나의 가격은 점점 더 큰 폭으로 하락한다. UST와 교환되는 것은 1개의 루나가 아닌, ‘1달러어치’의 루나다. 따라서 루나의 가격이 떨어진다면 교환의 대가로 지급해줘야 할 루나의 개수는 기하급수적으로 많아진다. 이는 유통량의 폭증을 불러일으킨다. (출처)

 

 

 

💭 마치며

오늘 오후 시간은 거의 경제 공부를 한 것 같았다. 역사를 쭈욱 설명해주셨는데 거의 오오...만 하다가 끝난 것 같은 ㅋㅋ ㅠㅜ 흥미롭지만 뭔가 여전히 난해하고 머릿속에서 붕 떠다닌다. 따로 자료를 더 찾아봐야 완벽히 이해가 될 것 같다. 강사님께서 저번 시간 뭘 했는지 복습 해주시는데 어제 들은걸 한 번 더 듣는게 큰 도움이 되는 것 같다. 내일 다시 한 번 잘 들어봐야지 ㅎㅎ.. 

 

 


 

 

 

댓글