일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- smart contract
- 솔리디티
- 블록체인
- solidity
- node js
- 마스터링 비트코인
- 암호화폐
- 파이썬
- 알고리즘
- keras
- 문자열
- 백서
- 주소
- Ethereum
- 이더리움
- Redis
- js
- 레디스
- 개발
- 마스터링비트코인
- 개인키
- pythonic
- 스마트컨트랙트
- 비트코인
- DAPP
- python
- 공개키
- javascript
- 블록체인개발
- 마스터링 이더리움
- Today
- Total
목록블록체인 (34)
개발이야기
마스터링 비트코인 Ch 05 - Wallet Wallets비트코인에서의 '지갑'은 몇 가지 다른 의미로 쓰인다. 높은 수준에서 ‘지갑’은 기본 사용자 인터페이스로 사용되는 응용 프로그램이다. 사용자의 돈에 접근하고, 키와 주소 관리, 잔액 추적, 트랜잭션 생성 및 서명을 제어한다. 조금 더 좁은 의미의 프로그래머의 관점에서 보면 ‘지갑’이라는 단어는 사용자의 키를 저장하고 관리하는 데 사용되는 데이터 구조를 의미한다. 이 장에서는 두 번째 의미를 살펴볼 것이다. Wallet Technology Overview비트코인 지갑에 비트코인이 들어 있다는 것은 오해다. ‘코인’은 비트코인 네트워크의 블록체인에 기록되고 ‘지갑’에는 ‘키’만 들어있다. 지갑은 개인키, 공개키 쌍을 포함하는 키 체인이라고 할 수 있다..
안녕하세요. 이번 포스팅에서는 스마트 컨트랙트로 작성된 view 함수에 반환값을 Web3.js로 불러오는 코드를 구현해보도록 하겠습니다. OS : Windownode js : 10.15.0npm : 6.5.0Solidity IDE : Remix 먼저 간단한 스마트컨트랙트 코드를 작성해줍니다. 간단하게 코드 설명을 해보겠습니다.set_data 에서는 index 값을 새롭게 설정해줍니다. get_data 함수에서는 현재 index 값을 반환해줍니다.view 함수는 state를 바꾸지 않고 트랜잭션을 사용하지 않기 때문에 가스 소모가 없습니다.그렇기 때문에 값을 반환하고 보여주는 용도로 Dapp 개발을 할 때 굉장히 유용하게 사용됩니다. 코드 완성후 컴파일이 완료되면 해당 스마트 컨트랙트를 배포해줍니다. (저..
이더리움 백서 요약 • 비트코인 역사- 2009년 ‘사토시 나카모토’에 의해 비트코인이 개발되었으며 공개키 암호방식을 통한 소유권 관리를 위해 사용되던 기존의 알고리즘을 ‘작업 증명(proof of work)’이라고 알려진 합의 알고리즘과 결합함으로써 탈중앙화된 화폐를 구현할 수 있게 되었다.- 작업증명의 기반이 되는 작동방식은 두 가지 문제를 동시에 해결하기 때문에 매우 혁신적이었다. 첫째, 간단하면서도 상당히 효과적인 합의 알고리즘 제공. 즉, 네트워크상에 있는 모든 노드들이 비트코인의 장부상태(state of the Bitcoin ledger)에 일어난 표준 업데이트의 집합(a set of canonical updates)에 공동으로 동의할 수 있다. -> P2P, 분산 네트워크 상에서 존재하던 신..
Smart Contracts and VyperVyper는 더 나은 감사가능성을 제공하려고 분투하는 EVM을 위한 실험적이고 컨트랙트 지향 언어이며 개발자들이 지능적인 코드를 생성하는 데 쉽게 한다. 사실, Vyper의 원리 중 하나는 개발자가 오해의 소지가 있는 코드를 작성하는 것을 가상적으로 불가능하게 만드는 것이다. Vulnerabilities and Vyper최근 연구는 약 백만 개의 배포된 이더리움 스마트 컨트랙트를 분석하였고 이러한 많은 컨트랙트들이 심각한 취약성을 가지고 있다는 것을 발견했다. 그들의 분석에서, 연구자들은 취약성을 추적하는 세 가지 기본적인 카테고리로 윤곽을 보여줬다. - Suicidal contracts(자살 컨트랙트): 스마트 컨트랙트는 임의의 주소에 의해 kill될 수 있..
IPFS 블록체인의 블록의 크기는 1MB(비트코인 기준)에도 미치지 못합니다. 겨우 거래정보나 텍스트만 담을 수 있는 정도이죠. 이를 해결하기 위한 방법으로 사진, 동영상 파일을 IPFS에 뿌리고 그 파일 값을 해시화 한 해시값을 블록체인의 블록에 올리는 방법이 고안되며 IPFS가 인기를 끌고 있습니다. 또한 IPFS는 P2P 분산 파일 시스템으로 기존 중앙화된 서버를 이용하여 여러 문제점이 있었던 기존의 웹을 대체할 수 있을 것이라는 기대도 모으고 있습니다. 이번 글은 IPFS가 어떤 기술로 구성되어 있고 어떻게 동작하는지에 대한 글입니다. 제가 IPFS를 공부하기 위해 IPFS가 어떻게 동작되는지 찾아보다가 정보가 많이 부족하다고 느끼고 이렇게 직접 글을 쓰게 되었습니다. 이번 글은 IPFS - Co..
블록체인 개발, 특히 이더리움 네트워크를 사용해서 블록체인 개발을 할 때 반드시 필요한 Web3.js는 과연 무엇일까요.이더리움 네트워크를 포함한 블록체인 네트워크는 노드로 구성되어 있고, 각 노드들은 블록체인에 대한 복사본을 가지고 있습니다.특히 이더리움 네트워크 상에서 여러분이 스마트 컨트랙트의 함수를 실행하려고 하면 노드들에게 query를 보내 아래의 내용을 전달해야 합니다.1. 스마트 컨트랙트의 주소2. 실행하고자 하는 함수3. 함수에 전달하고자 하는 변수들 이더리움 노드들은 JSON-RPC라고 불리는 언어로만 소통을 합니다. 이 언어는 사람이 읽기는 불편하죠. 컨트랙트의 함수를 실행하고 싶다는 query는 아래와 같습니다. {"jsonrpc":"2.0","method":"eth_sendTrans..
지갑 지갑은 이더리움에서 기본 사용자 인터페이스 역할을 하는 응용 프로그램입니다. 지갑은 사용자의 자금 접근 권한, 키와 주소 관리, 잔액 확인과 트랜잭션작성, 그리고 서명을 제어합니다. 또한 일부 이더리움 지갑은 ERC20 토큰같은 계약과 상호작용을 합니다.개발자 관점에서는 지갑은 사용자의 키를 저장하고 관리하는데 사용되는 시스템으로 모든 지갑에는 이를 관리하는 구성 요소가 있습니다. 일부 지갑은 키 저장 및 관리에 대한 기능만 있고, 어떤 지갑은 이더리움 기반 분산 응용프로그램이나 Dapp에 대한 인터페이스로 활용됩니다. 지갑의 기술지갑을 만들 때 중요한 사항으로는 편의성과 개인 정보를 보호하는 것 입니다. 가장 편리한 점으로는 이더리움 지갑은 다시 사용가능한 개인키와 주소를 관리하는 것 입니다. 이..
Keys, Addresses 데이터의 진위성을 증명하기 위해 전자서명을 이용하는데, 이는 이더리움 플랫폼에 있어서 중요합니다. 이더리움 플랫폼 및 노드간의 통신은 암호화되지 않으며 누구나 읽을 수 있어야 합니다. 이는 모두가 업데이트의 정확성을 확인하고, 합의할 수 있도록 하기 위함입니다.이 장에서는 이더리움에서 사용되는 공개키 암호화를 설명합니다. Introduction이더리움에는 외부 소유 계정(EOA)와 계약 계정(CA)가 있습니다. 이번에는 외부 소유 계정에서 개인키를 사용하여 이더의 소유권을 설정하는 방법을 알아볼 것입니다. 개인키는 탈중앙화된 신뢰와 컨트롤, 그리고 소유권 증명을 가능하게 합니다.EOA에 대한 이더 소유권은 개인키와 이더리움 주소, 디지털 서명을 통해 증명됩니다. 개인키는 본인..