코어 이더리움 12 [ 스마트 컨트랙트와 evm]
2022. 5. 27. 00:56
블록체인/코어 이더리움
1.스마트 컨트랙트 특정 계약을 스스로 수립,검증,이행하기위한 컴퓨터 프로토콜이다 스마트 컨트랙트를 만든 사람이 말한 두가지 원칙이 있다. 1.“모든 트랜잭션을 실행할 때는 해당 실행 비용을 지급해야 한다.” 이 말은 무한반복 같은 악의적인 코드를 막고 데이터의 무결성을 지키기위해 가스비를 소모하여 막는다는 의미이다. 2.“컨트랙트의 모든 내용과 입력을 공유한다.” 모든 컨트랙트의 내용과 입력 정보를 공유한다. 그러나 결과는 공유하지 않는다. 결과를 공유 하지 않는 이유는 블록체인의 컨트랙트와 트랜잭션, 리시트 정보를 재구성하면 언제든지 해당 트랜잭션의 결과를 확인할 수 있기 때문이다. 이처럼 컨트랙트의 모든 내용과 입력을 공유함으 로써 악의적으로 컨트랙트를 조작하는 것을 방지할 수 있다. 2.컨트랙트 ..
코어 이더리움 11 [믹스해시,넌스,타임스탬프,하드포크 추구하는방향?]
2022. 5. 25. 23:37
블록체인/코어 이더리움
믹스해시 블록의 헤더에는 넌스(64비트)와 믹스다이제스트(256비트)가 담겨있다 type BlockNonce [8]byte type Header struct { ... MixDigest common.Hash //----------- ➊ Nonce BlockNonce //----------- ➋ ... } 이두개는 제네시스블록에 저장되어있다. 난이도와 타임스탬프 난이도는 타임스탬프값을 기준으로 계속 조정이이루어진다. 1.if (타임스탬프가클때) 1.난이도가 낮아짐 2.블록생성시 채택이 잘안됌 2.else if(타임스탬프가 낮을때) 1.난이도가 높아짐 2.마이닝 비용상승 두가지 이유때문에 정확한 타임스탬프를 사용해야한다. 비잔티움과 홈스테드는 각각 하드포크 유무에따라 적용되는 공식이 다르다 즉, 비잔티움 =..
자바스크립트 문법정리 10 [ for in, for of]
2022. 5. 25. 01:26
자바스크립트
for에는 여러가지 자료형들이 있습니다. 1.그냥 for 반복문 (어려움) 2.forEach() 반복문 (Array 전용) 3.for in 반복문 (Object 전용) 4.for of 반복문(iterable 전용) 반복문은 용도가 2개라고 보시면 됩니다. 1. 코드 단순 반복 2. 자료형에 담긴 자료들을 하나씩 꺼내고 싶을 때 var 오브젝트 = { name : 'Kim', age : 30 }; for (var key in 오브젝트) { console.log(오브젝트[key]); } 이렇게하면 반복문은 오브젝트라는 자료 내부 데이터 갯수만큼 반복하게 되며 반복할 때마다 key라는 변수는 name, age 이렇게 데이터의 key값이 됩니다. 그럼 반복시마다 변경되는 key 값을 이용하면 오브젝트 내의 자료..
자바스크립트 문법정리 9 [async/await]
2022. 5. 25. 01:17
자바스크립트
async 키워드를 쓰면 Promise 오브젝트가 저절로 생성됩니다. 그럼 이 함수 자체가 Promise가 되어버립니다. 그래서 이 함수를 실행할 때 뒤에 then을 붙일 수 있습니다. Promise니까요. pomise 쓰기 싫으면 이거 쓰면 됌! async function 더하기(){ 1 + 1 ; } //1+1이 성공하면 아래 함수 실행 더하기().then(function(){ console.log('더하기 성공했어요') }); 1+1 값을 함수로 뱉고싶다면 return 으로 줘서 결과를 인자로 뱉어내주면됍니다. async function 더하기(){ return 1 + 1 ; } 더하기().then(function(결과){ console.log(결과) }); then함수 강제로 실패시키는 방법 as..
코어 이더리움 10[믹스해시]
2022. 5. 25. 01:11
블록체인/코어 이더리움
믹스해시란! 1.넌스를 이용하여 생성되는 중간단계의 128바이트해시값! 2.이녀석을 쓰면 작업증명계산이 경량화된다! 1. 캐착으로 암호해시 첫번째 믹스해시 구성! 2. 첫 번째 믹스해시를 사용! DAG(시드 해시로 생성된 약 2G 정도의 캐시 데이터 집합)에서 첫번째 페이지 추출함! 3. 이더리움의 믹싱함수를 사용! 추출된 DAG의 첫 번째 페이지와 첫 번째 믹스해시로부터 두번째 믹스해시 생성! 4. 위과정을 64번 반복하여 64번째 믹스해시 생성~~! 5. 64번째 마지막 믹스해시를 활용하여 32바이트 믹스다이제스트를 구성! 6.믹스다이제스트와 미리 정의된 32바이트 마이닝의 목푯값을 비교한다! if (믹스다이제스트 목표값 ) 넌스값 ++하거나 or Math.random(넌스값) 위과정 반복 요약! 컴..
코어 이더리움 9 [ 컴퓨팅파워가 높은 컴퓨터들의 독점을 막기위한 방법들중..]
2022. 5. 23. 23:36
블록체인/코어 이더리움
이대시 = 메모리 기반의 이더리움 PoW 합의 엔진 하는역할 정확한 믹스해시와 넌스값을 계산하는것이다. DAG 마이닝을 구동시키면, 십수분 후에는 홈 디렉터리의 디스크 사용량이 2G가량 증가, 이는 이대시에서 캐시영역을 확보하기위해 시드 해시를 생성. 시드 해시로 생성된 약 2G 정도의 캐시 데이터 집합을 DAG파일이라고 한다. 에포크 검증인들이 검증 작업을 하는 체크포인트의 블록 간격을 지칭하는 말이다. 이더리움은 이러한 전용 채굴기를 개발할 수 없게 하기 위해 일정한 시간마다 암호화 알고리즘을 변경시킨다. ================>그 시간 간격을 에폭이라 부른다. 에폭이 다음 단계로 넘어갈 때마다 DAG 사이즈는 점점 증가하게 된다. 따라서 DAG 사이즈보다 작은 용량의 그래픽 카드로는 해당 코..