블록체인 캠퍼스 190704
블록체인 플랫폼 분석 - 2
▶ 블록체인 동향 및 Technic
네이버 - 라인 Link Link Chain
kt- BaaS(지역화폐)
두나무 - 업비트(루니버스)
은행권 - 공인인증서를 대체할 뱅크사인 (BankSign)
2. 합의 알고리즘
- 노드의 유형 및 역할
풀노드(full node)
- 비트코인 코어, 모든 비트코인 거래를 기록 지갑 생성, 채굴, 네트워크 등 포함한 노드
풀 비트코인 노드
- 지갑과 채굴 기능이 빠진 노드
- 단순하게 블록체인 유지 기능
마이너 노드
- 솔로 마이너
- 자신이 채굴한 블록을 자신의 블록체인 노드에 저장. 이웃에 전파
풀마이너 - 풀을 만들어서 블록체인 채굴.
Light-Weight (SPV) Wallet
- 지갑 기능이 있는 노드, 전파 가능
- 모바일 지갑
Light-Weight Startum Wallet
- 네트워크 전파 기능이 없는 노드
- Startum 이라는 프로토콜로 연결은 가능(동기화기능이 없음 => 최신블록 다운로드 불가) : 은행전체의 거래 내역을 알필요가 없고 나의 거래내역만 알면 되므로
- Light-weight : 모든 데이터를 저장하지 않고, 거래에 확인이 필요하면 외부 풀노드에게 연결하여 확인
블록 검증에 참여하지 않는 노드, 가벼운 노드
3. 트랜잭션
UTXO : 소비되지않는 돈을 가지고 있음 / 거스름돈 받는 알고리즘은 굉장히 어려운것
블록체인은 거스름돈 개념 없음. 이더리움은 있음. 자기자신에게 다시 트랜잭션을 보내는것
ex) 9utxo중 8utxo를 보내면 1utxo가 다시 나에게 들어옴 (거스름돈 트랜잭션이 일어남)
슈노르 서명...
4. 전자서명
base58check => 오탈자나 데이터 입력 오류 등에 대한 추가 보안을 설정하기 위해 사용.
5. 해시함수
블록체인 : 기존의 개념을 합친 것.
Hashcash : 스팸 제한 => 작업증명 시스템 구현 알고리즘
▶ 이더리움 플랫폼
GO 언어 : 분산 네트워크에 최적화된 언어
codingground : 코딩환경이 셋팅되어있는 웹페이지
remix ide : smart contract 개발 툴?
이더리움 초기화
myethernetwork/
├── genesis.json
├── geth
│ ├── chaindata
│ │ ├── 000001.log
│ │ ├── CURRENT
│ │ ├── LOCK
│ │ ├── LOG
│ │ └── MANIFEST-000000
│ └── lightchaindata
│ ├── 000001.log
│ ├── CURRENT
│ ├── LOCK
│ ├── LOG
│ └── MANIFEST-000000
└── keystore
DAG알고리즘
> geth attach http://127.0.0.1:8545
> eth.getBlock(208)
{
difficulty: 139493,
extraData: "0xd883010900846765746888676f312e31302e34856c696e7578",
gasLimit: 109534728,
gasUsed: 0,
hash: "0x72b1bbb64cb540845ff8246e6f028e39c76eba9c2e710eb9e37cfc755e9086aa",
logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
miner: "0x57d29ebdcec430048c855d9419b9c24cd4ab9958",
mixHash: "0xbaf5a0afe410d0594b3dde238925c6b8af49a72091c9af6ed2ffaa153ec38b8b",
nonce: "0x76a949dc0f3a77ab",
number: 208,
parentHash: "0x3e0c68f4805229f0b459667dd645fa6ee2b0d6f333aeb69a294da6ca71338aa6",
receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
size: 538,
stateRoot: "0x570524b8d6f8945db51857b874e11e5bbf5d04fdf512727f2df9201be048e7ad",
timestamp: 1562221909,
totalDifficulty: 28368094,
transactions: [],
transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
uncles: []
}