TIL (45) 썸네일형 리스트형 TIL) 암호학 기초 #암호화에 필요한 요소 기밀성(Confidentiality) 무결성(Integrity) 인증(Authentication) #단방향vs양방향 암호화 단방향 - 무결성을 위하여 사용 - ex) 해시 알고리즘 MD5 양방향 - 대칭키, 비대칭키 방식 - 대칭키 방식은 배달사고가 일어날 수 있음. 따라서 인터넷이 아닌, 혼자 사용할 때 활용. - 대칭키 ex) AES - 비대칭키(공개 키 방식) ex) RSA 알고리즘을 통해 공개키-개인키 페어 생성 #비대칭 키 암호 방식 - 개인 키 암호 방식 - 공개 키 암호 방식 : B가 A에게 전달할 메시지를 공개된 A의 공개키로 암호화한 후, 전달받은 암호화된 메시지를 A는 개인 키로 복호화 #전자서명(디지털서명) - 개인 키 암호방식 - A는 전자문서를 해시화한 후 .. TIL) 블록체인 토큰 이코노미 설계 시 고려해야 할 점 #토큰 이코노미의 3요소 - 토큰 : 원하는 보상과 교환가치를 가지는 매개체 - 강화제 : 유저가 원하는 보상 - 특정 목표 행동 : 유저가 하길 바라는 행동 #기존 토큰 이코노미(블록체인 이전)의 문제점 1) 토큰의 교환가치가 비합리적인 경우 2) 토큰의 발행/지급/기록이 투명하지 않은 경우 3) 토큰의 교환가치 또는 비율에 일관성이 없는 경우 4) 미래 교환가치에 확신이 없는 경우 모두 중앙 주체가 존재하기 때문에 발생하는 문제. 따라서 토큰 시스템의 지속적 신뢰성을 구축하기 위해서는 운영의 투명성 확보해야 함. #블록체인에서의 토큰 이코노미 기존 토큰 이코노미와 다르게 블록체인에서는 토큰자체가 강화제 역할을 함. 1) 토큰 가치는 시장의 공급과 수요에 의해 정해짐 2) 블록체인을 통해 투명성이 관리.. TIL) 블록체인을 구성하는 기술 : 세그윗, 머클트리, 머클 패트리샤 트리, 슈노르 서명, MAST 세그윗(Segregated Witness)이란? - 블록체인의 속도와 확장성 개선을 위한 기술 - 블록의 사용가능한 용량을 증대시켜 속도와 확장성을 개선하는 방법 - 블록에서 디지털 서명 부분을 따로 분리하여 블록당 저장가능한 트랜잭션을 늘리는 기술 - 비트코인은 세그윗 기술을 적용하여 2017년 8월 1일 기준으로 소프트 포크(소프트웨어 업그레이드) 됨 세그윗 기술 장점 - (속도와 확장성 개선) 서명 데이터가 전체 블록의 75%를 차지하기 때문에, 이를 분리하여 한 블록에 더 많은 트랜잭션을 담을 수 있게 됨 - (거래 가변성 문제 해결) 세그윗은 거래ID를 서명과 함께 따로 저장하기 때문에, 거래ID(TXID) 조작하여 발생할 수 있는 거래 가변성 문제 해결. 머클트리란? - 여러 데이터에 대해 단.. TIL) Blockchain oracle 개념 및 관련 솔루션 Smart contract의 단점 - input이 조작될 수 있음 - 따라서 이를 검증하는 blockchain oracle 필요 Blockchain oracle이란? - 네트워크에 들어오는 input을 관리하고 검증하는 layer Blockchain oracle의 주요 기능 1) 요청 확인 : 블록체인 네트워크를 모니터링해 오프체인 데이터를 요청하는 유저 또는 스마트 컨트랙트가 있는지 확인 2) 추출 : 서드파티 웹 서버에서 호스팅 되는 오프체인 API와 같은 하나 또는 다수의 외부 시스템으로부터 데이터 가져오기 3) 포맷 : API로부터 받은 데이터를 블록체인이 읽을 수 있는 형태(인풋)로 포맷 또는 블록체인 데이터가 외부 API(아웃풋)에 호환될 수 있도록 상호 시스템 간 커뮤니케이션을 가능하게 함 .. TIL) 분산 원장(DLT)의 개념 및 다양한 구현 방법 분산 원장이란? 분산원장(DLT, Distributed Ledger Technology)이란, 대규모 네트워크 공간에서 모든 구성원이 거래정보를 독립적으로 업데이트하고 보유하는 디지털 데이터베이스의 한 형태를 말함. 이러한 유형의 원장에는 중앙화된 권한이 없음. 분산 원장 장단점 장점 거래 증명을 위해 여러 중간 매개체 또는 인증기관이 필요했지만, 분산원장기술은 사용자가 거래 내역을 직접 공유할 수 있는 시스템이기 때문에 중앙 서버관리가 필요없어짐. 또한 거래 정보가 저장된 원장이 분산되어있기 때문에 해킹하여 조작하기 어려워 보안성이 높음. 단점 개별 DB에서 저장하고 관리해야 하는 정보가 기하급수적으로 늘어남 분산 원장의 구현방식 분산 원장(DLT) = 블록체인으로 흔히들 오해하는데, 분산원장을 구현하.. TIL) 웹 호스팅 관련 사이트 : netlify, replit netlify - https://www.netlify.com/ - 웹 호스팅 서비스 - 내가 만든 웹앱 배포가능 - 깃허브랑 연동해서 사용가능. 커밋할 때마다 netlify에 자동 반영 - https 지원 replit - https://replit.com/ - 다른 사람들과 코드 공유, 수정, 테스트 가능 - 온라인 컴파일러로 자주 사용 - 가상 리눅스 터미널 환경 제공 - 토이 프로젝트에 적합 TIL) React state, prop 사용(feat. memo, propTypes, css-module) #state 값 변경 // 두 가지 방식으로 state 값 변경해줄 수 있음. setCounter(cur => cur + 1) // setCounter의 첫 번째 argument는 state 값이다. setCounter(cur + 1) // 선언하지 않을 경우 자동으로 연산 #label-input 값 연결 label과 checkbox input 연결하여, label을 클릭하여도 체크가 실행되게 만들고 싶을 때, htmlFor 옵션을 통해 연결가능. label 대신에 image 등 다른 tag 요소도 사용가능 체크하기 #변화하는 input 값 event.target.value로 가져오기 const [minutes, setMinutes] = React.useState(); const onChange = (e.. TIL) 독립적 앱 실행환경 제공하는 Docker docker란? docker는 컨테이너 방식으로 애플리케이션을 포장하고 실행하기위한 툴이자 독립적인 어플리케이션 실행환경. 리눅스 컨테이너로 만들어짐. 라이브러리와 애플리케이션을 모아 컨테이너 방식으로 별도의 서버를 구성한 것 컨테이너란, docker라는 기술 위에서 실행될 수 있도록 만든 애플리케이션 상자 컨테이너 방식이란? 앱의 실행 환경을 격리하여 컨테이너에서 실행 중인 애플리케이션은 어떠한 의존성도 공유하지 않고, 각자 고유의 의존성을 포함함 컨테이너가 격리하는 것 프로세스 네트워크 파일 시스템 docker와 VM(Virtual Machine)의 차이 docker 장점 1. 의존성 충돌 문제 해결 2. 개발과 배포 환경 일치 3. 수평 확장의 용이 4. 업데이트 배포 용이 docker 작동과정 1.. TIL) 인증 중개 메커니즘: OAuth(feat. github을 사용한 Sprint review) OAuth란? 인증을 중개하는 메커니즘 이미 사용자 정보를 갖고있는 웹 서비스에서 사용자의 인증을 대신해주고, 접근 권한에 대한 토큰을 발급한 후 이를 이용해 내 서버에서 인증이 가능해짐. OAuth 인증의 흐름 앱 클라이언트에서 로그인 요청 -> 인증 서버에서 로그인하면 authorizationCode 발급 -> 해당 코드를 앱 서버에 전달 -> 앱 서버에서 해당 코드로 accessToken 발급 -> 발급된 토큰을 앱 서버는 클라이언트로 전달 *authorizationCode를 통해 앱 서버에서 로그인 id 등 유저 정보 함께 받아올 수 있음 OAuth 관련 용어 - resource owner: 액세스 중인 리소스의 유저 - client : 앱 - resource server: 클라이언트 요청 수락하.. TIL) http 통신 라이브러리: Axios http 통신에 사용되는 라이브러리는 대표적으로 fetch, axios가 있다. 둘 다 비슷하게 사용되는거 같다. axios란? promise 기반의 http 비동기 통신 라이브러리이다. get, delete, post, put, patch 등 http 매서드 지원한다. promise 기반이기 때문에 axios.get().then(result)과 같은 형식으로 작성이 가능하다. axios 장점 1. 커스텀 인스턴스 가능 axios.create({ baseURL: host }) 2. 인터셉터 response를 받기 전 공통된 로직을 마치 미들웨어 처럼 넣을 수 있음 -> 이를 이용하여 쉽게 에러 핸들링 가능 3. 쉬운 참조 axios.get().then(result=> console.log(result.d.. 이전 1 2 3 4 5 다음