일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 블록체인
- Docker
- git
- ERC165
- JavaScript
- ERC20
- 솔리디티
- web3
- solidity
- geth
- server
- 제어의역전
- Python
- web3.js
- Ethereum
- 트랜잭션
- tcp
- 스마트 컨트랙트
- erc
- truffle
- 네트워크
- blockchain
- web
- erc721
- NFT
- github
- MySQL
- 이더리움
- ethers
- Programming
- Today
- Total
목록블록체인 (50)
멍개의 연구소
이번 포스트에서는 개인키와 공개키가 생성되는 과정과 트랜잭션을 서명하고 검증하는 방법을 다룹니다. 또한 트랜잭션을 서명하는 과정에서 Simple Replay Attack Protection을 위해 EIP-155를 적용합니다. 본론을 들어가기 앞서서 선행되어야 하는 개념이 있습니다. 바로 ECC인 타원곡선 암호화와 modular(나머지) 연산 입니다. ● ECC(Elliptic Curve Cryptography) ECC는 타원 곡선 암호화라고 불리면 공개키 암호화 방식입니다. · 정의 타원곡선은 다음과 같이 정의합니다. $$y^2=x^3+ax+b$$ 타원곡선 함수 타원곡선은 x을 중심으로 대칭입니다. 그 이유는 y가 제곱 형태를띄기때문 입니다. https://www.desmos.com..
RLP(Recursive Length Prefix) 인코딩은 임의의 길이를 가진 문자열과 배열을 인코딩하는 방법입니다. RLP 인코딩은 인코딩 된 값에 길이 정보를 포함합니다. RLP 인코딩은 아스키 코드를 이용합니다. ● RLP 인코딩 RLP 인코딩은 5가지 케이스가 있습니다. RLP는 아스키 코드를 절대적으로 참조하여 인코딩을 수행합니다. RLP 인코딩은 아스키 코드표 1~127을 제외한 문자는 취급하지 않습니다. 예를들면 한국어, 일본어, 일부 특수문자 등 · 첫 번째 케이스 - 단일 바이트일 때 첫 번째 케이스는 하나의 바이트만 존재할 때 입니다. 즉, 문자 하나만 존재할 때 해당 바이트에 해당하는 아스키코드 값을 그대로 사용합니다. 이 때 해당 바이트의 범위는 0x01 ~ 0x7f..
web3와 ethers으로 메타마스크를 이용하여 트랜잭션을 발생하는 방법을 알아보겠습니다. 확장프로그램 메타마스크가 설치되어 있다면 메타마스크 프로바이더가 window 객체에 ethereum으로 포함되어 있습니다. 근데 vanilaJS로는 window.ethereum 포함된것을 가지고 오기가 좀 까다로우므로 react에서 발생시켜보겠습니다. window.web3.currentProvider(레거시) 또는 window.ethereum(현재버전)으로 가져오면 됩니다. ● ethers provider에 메타마스크 프로바이더를 넣어줍니다. window?.web3?.currentProvider window.ethereum import { providers, Wallet, utils, Contract..
최신 리액트 버전에서 web3를 사용할 때 다음과 같이 에러가 발생합니다. // src/App.js import Web3 from 'web3'; // 에러발생 지점 function App() { const onClickHandler = async () => { const web3 = new Web3( window?.web3?.currentProvider // 메타마스크 프로바이더 || 'http://localhost:8545' ); const accounts = await web3.eth.requestAccounts(); console.log(accounts) const tx = await web3.eth.sendTransaction({ from: accounts[0], to: '0xAd46355359a..