분류 전체보기
-
[blockchain] 암호화(2)블록체인 2022. 9. 23. 00:27
타원곡선: y^2 = x^3 + ax + b 형태의 식 계산하기는 쉽지만 역을 계산하기는 어렵다는 특징을 이용하여 암호학에서 사용된다 퍼블릭키는 개인키에 의해서 생성되고 지갑주소는 퍼블릭키에 의해서 생성된다 개인키를 생성하는데 해시함수(sha256) 의 특성상 함수에 규칙성은 없지만 결국 같은 인풋을 만들어내지 않는 것이 중요한데 이점에서 인풋값은 난수생성에 의해서 만들어져야한다는 점이 중요한부분이다. 난수생성에 의한 인풋값 > 해시함수 > 개인키 > ... > 공개키 이번에는 ... 과정을 알아보고 공개키를 생성해보자 이때 사용되는부분이 타원곡선이다. 식은 K=k*G 이다. K=공개키,k=개인키, G=생성자점 여기서 * 는 일반 곱하기가 아님 타원곡선의 곱하기 연산자라는데 자세히모름 무튼 내가아는 곱하..
-
[blockchain] 암호화(1)블록체인 2022. 9. 21. 00:01
지갑에는 퍼블릭키와 프라이빗키 쌍이 존재한다. 난수를 암호화하여 프라이빗키를 생성하고 프라이빗키를 암호화하여 퍼블릭키를 생성 이후 퍼블릭키를 암호화 하여 나온게 지갑의 주소이다. 이 암호화 과정을 구체적으로 살펴보자 그전에 몇가지 개념을 확인 해보자 암호화의 목적 원본의 내용을 일련의 과정을 통해서 원본을 감추는 행위이다. 복호화는 암호화된 내용을 통해 원본을 찾는 행위다. 복호화가 가능한지 여부에 따라 암호화는 단방향 암호화와 양방향 암호화 두개로 구분할수 있다. 복호화가 안되는 암호화는 경우는 단방향 암호화라고 하며 대표적인 예로는 sha256 이 있고 복호화가 가능한 경우는 양방향 암호화 라고하며 대표적으로 rsa 방식이 있다. 단방향 암호화 의 경우는 복호화를 해서 원문을 확인할수는 없지만 암호화..
-
[blockchain] difficulty, target값, blockhash블록체인 2022. 9. 20. 23:16
https://en.bitcoin.it/wiki/Difficulty Difficulty - Bitcoin Wiki See also: target What is "difficulty"? Difficulty is a measure of how difficult it is to find a hash below a given target. The Bitcoin network has a global block difficulty. Valid blocks must have a hash below this target. Mining pools also have a pool-spe en.bitcoin.it difficulty = difficulty_1_target / current_target difficulty_1 ..
-
[blockchain] 정의, 특징, 구조블록체인 2022. 9. 17. 00:34
블록체인 : 탈중앙화시스템을 위한 분산원장기술 특징 : 1.익명성: 본인과 상관없는 지갑주소를 통해서 익명성을 가질수 있다 그러나 완전 익명은 아닌듯 준익명 2.추적가능함 : 지갑주소만 알면 모든 거래 내역을 조회 할수 있다. (토네이도 캐쉬?) 3.무신뢰성 : 제3자를 통한 신뢰기관이 필요없다. 4.분산원장 : 제3자를 통한 신뢰를 대신하는 방법은 네트워크에 참여하는 모두가 원장을 다 가지고 있음으로서 해결한다. 5.탈중앙화 : 전통적인 시스템은 중앙화 되어있어서 효율적이지만 공격대상역시 중앙만 공격하면 되서 안전하지 못함. 6.합의알고리즘 : 제3자가 하던일 (옳은 정보가 무엇인가 판단하는일) 을 할수 있는 방법에 대한 알고리즘 (ex. 더긴 체인이 옳은 체인이다.) 7.불변함: 변하지 않는 것은 아..
-
[blockchain]하드포크, 스마트 컨트랙트, dapp블록체인 2022. 8. 27. 13:36
하드포크 블락을 생성할때에는 규칙이 필요하고 그러한 약속을 프로토콜이라고 했을때 기능추가나 성능개선시에 기존 프로토콜과 별개로 새로운 프로토콜을 만들어 새로운 블록체인으로 시작하는 방식을 하드포크라고 한다. 소프트 포크는 프로토콜이 바뀌지 않고 이전 버전과 호환 가능하면 소프트 포크 스마트컨트랙트 라이브러리나 프레임워크 이름인가 그랬는데 그게 아니라 제3의 인증기관 없이 개인 간 계약이 이루어질 수 있도록 하는 기술 이라고 한다. 인증기관을 대체할 기술로 블록체인 기술을 사용해서 많이 쓰이는 단어인듯 근데 지금은 이더리움에서 사용하고 있는 오픈소스 프로그램 이름인듯. 여기서 개인간 계약은 탈중앙화를 지향한다는 뜻이고 인증기관은 보안과 신뢰부여 목적이 큼으로 이더리움(블록체인)이 지향하는 방향성을 잘활용할..
-
[javascript] 객체 접근 dot notation(.) , bracket notation([])javascript 2022. 7. 8. 08:58
코딩중에 습관적으로 obj.key ... 아 아니다 obj[key] 이렇게 수정하다가 근데 왜 이걸 수정하고 있지? 둘이 뭔차이였더라 ? 뇌정지와서 적어둠.. 결론은 bracket notation 방식은 변수로도 접근할수 있고 number 도 string 타입으로 변환해서 접근(객체 key 는 type 이 string임) dot notation 은 해당값 그대로만 접근가능 예시) const obj = {1: '고등어', 2: '김치찌개', 계란: '한판에', 만원: '너무비싸'} //숫자예시 obj.1 = syntaxError: unExpected number obj['1']= '고동어' obj[1] = '고등어' //변수예시 const key = '계란' obj.key = undefined obj[ke..
-
[react] props 를 initialState 로 사용 하면 안되는 이유react 2022. 5. 19. 11:04
state 값은 getinitialState() 함수가 마운트시에 동작하면서 생성이 되고 이후에 state 값은 this.setState 에 의해 변형 되는 식이다. 즉 컴포넌트 마운트시에만 getinitialState() 함수가 동작하기 때문에 prop 값을 initialState 값에 넣어둬도 리렌더 시에는 해당 변경이 반영이 되지 않는다 마운트 이후에 리렌더과정에서 state 값을 변경하고 싶은경우 setState 를 이용해야 한다. 리렌더가 되는경우들을 살펴보면 그이유를 짐작할수 있는데 리렌더가 되는경우는 1.부모컴포넌트 리렌더 2.전달받은 props 변경 3.state 변경 그중 3번의 경우에서 만약에 추가로 getinitialState() 가 동작하는 과정이 끼어 있다고 생각해보자 얼마나 비효..