4월, 2022의 게시물 표시

REST API 원칙 6개

1. Uniform interface - 1 Dataset : 1 URL - URL 하나를 알면 둘을 알 수 있도록 - req, res는 충분한 정보를 포함 >> url은 명사로 작성 >> 하위 문서 작성시 / >> 띄어쓰기 - 사용 >> 자료 하나당 하나의 url >> 파일확장자 쓰지말자 2. Client-Server 역할 구분을 명확히 - 브라우저는 요청만! - 서버는 응답만! 3. Stateless - 요청 1과 요청 2는 상호의존성이 없도록  4. Cacheable -서버에서 보내는 정보들은 캐싱 가능해야함 - 캐싱을 위한 버전 관리도 잘해줘야 (는 크롬 브라우저가 다 알아서 해줌 ㅎㅎ) 5. Layered System 6. Code on Demand

암호화폐에 공개 키/비공개 키가 있는 이유를 최대한 쉽게 알아보자.

비대칭 키 암호화 1. 대칭 키 암호화의 문제 대칭 키 암호화는 암호화/복호화에 같은 키를 쓰는데 키를 공개적으로 배포하기 힘들다... 키가 공개되어있으면 아무나 다운로드할 수 있는데 이거 딱봐도 안전하지가 않은데... 암호화폐에서 보통 공개 키는 지갑 주소인데 지갑 주소만으로 암호화/복호화가 가능하다면 어떻게 될까? A가 B에게 10ETH를 보내는데 이 전자 서명을 공개 키(지갑 주소)로 암호화할 수 있고 B가 A의 공개 키로 다시 복호화 해서 트랜잭션이 이뤄지는 것 까지는 문제가 되지 않는다. 그런데 A의 공개 키(지갑 주소)는 단어 그대로 공개되어있으므로 제 3자인 C가 A의 공개 키로 A가 B에게 10ETH를 보내는 전자서명을 만들어낼 수도 있다. 심지어 복호화도 A의 공개키로하므로 아무런 문제가 없다. 즉 제 3자에 의해 A의 계좌에 있는 이더리움을 털어갈 수 있는 것이다. 2. 비대칭 키 암호화 그래서 보통 비대칭 키 암호화를 쓴다. 공개 키(지갑 주소)와 비공개 키가 있고 비공개 키는 전자 서명(A가 B에게 10ETH을 보낸다)을 암호화하고 공개 키는 누구에게나 공개되어있으므로 해당 전자서명이 맞는지 채굴자가 A의 공개 키로 복호화하여 확인 및 검증이 가능하게 되는 것이다. 이제 왜 비대칭 키 암호화를 쓰고 공개 키와 비공개 키가 있어야하는지 다들 아시겠죠..? 3. 대표적인 비대칭 키 암호화 기법과 비트코인/이더리움은 이 중 뭘 쓰나..? (1) 디피-헬만 키 교환 (2) RSA(Rivest-Shamir-Adleman) (3) DSA(Digital Signature Algorithm) (4) 타원곡선 DSA(Elliptic Curve DSA, ECDSA) 이중 비트코인/이더리움은 (4)와 관련이 있다. 비공개 키를 난수 생성기로 생성하고 비공개 키에 타원 곡선 위의 한 점(생성자)를 곱하여 공개 키를 만든다. 여기서 "...

PoW 끄적거리며 최대한 쉽게 정리해보기 Part. 1

Proof of Work 1. 상태와 트랜잭션 작업 증명(PoW)에 대해 이야기하기 전에 상태와 트랜잭션에 대해 먼저 알아보자. 많은 사람들이 생각하듯 비트코인은 "돈"으로 사용될 수 있는데 당연하게 이게 쓸모가 있으려면 상태와 트랜잭션이 정의가 되어야한다. 비트코인에서 상태는 계좌-잔고의 쌍으로 생각하면 편하다. 그리고 트랜잭션은 "상태 변화"에 해당한다. A계좌에서 B계좌로 2만원이 전송되면 A계좌의 잔고가 -2만원//B계좌의 잔고가 +2만원되는 변화말이다. 아니 그래서 그래서 비트코인 1억원 가나요? 라고 묻지말고 왜 사람들이 비트코인이 "돈" 또는 "투자 자산"으로 생각하게 되었는지를 깊게 고민해보자. 적어도 이 글을 찾아볼 정도면 "가즈아~"만 외치는 사람은 아닐테니 말이다. 2. 합의(Consensus) 블록체인 이야기하다보면 꼭 등장하는 단어가 있다. "컨센서스" 합의라는 뜻을 가진 저 단어가 왜 중요한지는 조금만 생각해보면 알 수 있다. 위에서 상태와 트랜잭션에 대한 이야기를 했는데 결국 "돈"이란 걸 주고 받았다면 이걸 보통 기록을 해둬야 사기를 당하지 않을 수 있다. "합의"란 것은 이 기록 및 신뢰에 대한 합의를 의미하는데 일반적으로 우리는 중앙화된 은행에 이것을 위임한다. "야 쟤네들이 우리 거래한 기록장부 가지고 있거든? 은행 믿을만 하잖아?" 일단 중앙화된 은행이 망하거나 국민을 상대로 단체로 사기행각을 벌이지 않는 이상 문제가 발생하지 않지만.... 역시나 인간 사회에도 버그란 존재하기에 중앙화된 주체를 믿을 수 없는 경우가 존재 한다. 예시가 잘 떠오르지 않는다면 정부나 중앙 은행이 맛탱이가 가버린 멕시코 or 베네수엘라를 생각해보면 편할 것이다. 그래서 블록체인에서는 "탈중앙...