'이론 관련/암호화통화'에 해당되는 글 7건

  1. 2018.02.01 이더리움 DAG? 2
  2. 2018.01.15 블록체인 관련
  3. 2018.01.14 비트코인 단위 MH/s
  4. 2018.01.13 비트코인 프로토콜
  5. 2018.01.12 비트코인 구조 채굴 등
  6. 2018.01.11 비트코인 테스트 넷?
  7. 2018.01.10 비트코인과 지갑 그리고 cgminer

댓글 달려서 검색중..


이더리움이 각광받는 이유가 ASIC-resistance 인가?

검색하다 보니 이더리움 채굴하려면 3G 그래픽 카드로도 어렵다 라는 이기가 나오는데

[링크 : https://www.ddengle.com/mining/1842637]

[링크 : https://www.ddengle.com/miningbitcoin_voted/1842874]


Ethash DAG

Ethash는 PoW 시스템이다.(Proof of Work인가?). DAG(Dagger Hashimoto라고 알려진 )라 알려진 데이터 셋으로 1GB 정도 요구한다. 생성하고 기억하려는데 몇 시간이 소요된다.

[링크 : https://github.com/ethereum/wiki/wiki/Ethash-DAG]

   [링크 : https://github.com/ethereumproject/ECIPs/issues/6]


번역이 안되서 의역..

ASIC 방어 : 알고리즘을 위해 최적화 된 하드웨어의 개발로 얻어지는 이득은 최소화 해야 한다. 이상적으로 여분의 CPU 성능을 이용하여 채굴하는 평범한 사용자들을 위해 ASIC들이 개발되더라도 근소하게 적은 속도 향상이 있어야 한다.

Introduction

Dagger Hashimoto is a proposed spec for the mining algorithm for Ethereum 1.0. Dagger Hashimoto aims to simultaneously satisfy two goals:

  1. ASIC-resistance: the benefit from creating specialized hardware for the algorithm should be as small as possible, ideally to the point that even in an economy where ASICs have been developed the speedup is sufficiently small that it is still marginally profitable for users on ordinary computers to mine with spare CPU power.
  2. Light client verifiability: a block should be relatively efficiently verifiable by a light client.


Thaddeus Dryja의 Hashimoto 알고리즘은 IO-bound에 의해 ASIC 방어를 구현한다 (예를들어 마이닝 프로세스에서 메모리 읽도록 강요하는 것은 성능을 제한하는 요소가 됩니다).

-> 알고리즘의 중요요소는 공간 복잡도와 계산복잡도로 나누어지는데, 

간단하게 램을 졸라 쳐먹어 대면서 빠르게 계산할래? 아니면 램 조금 쓰고 cpu 졸라 갈궈댈래가 됨.

이더리움은 램 졸라 사용하여 성능 향상하게 해놨으니 ASIC이 추구하는 작은 시스템에는 방어가 가능할 것으로 보임

라는 의미가 되는건가?

반대로.. 그 알고리즘을 메모리 조금쓰고 CPU갈구는 알고리즘으로 치환이 가능하다면

Hashimoto 알고리즘 자체를 무효화 함으로서 구현 가능할지도 모르겠다.

Dagger Hashimoto builds on two key pieces of previous work:

  • Hashimoto, an algorithm by Thaddeus Dryja which intends to achieve ASIC resistance by being IO-bound, ie. making memory reads the limiting factor in the mining process. The theory is that RAM is in principle inherently a much more generic ingredient than computation, and billions of dollars of research already go into optimizing it for different use cases which often involve near-random access patterns (hence "random access memory"); hence, existing RAM is likely to be moderately close to optimal for evaluating the algorithm. Hashimoto uses the blockchain as a source of data, simultaneously satisfying (1) and (3) above.
  • Dagger, an algorithm by Vitalik Buterin which uses directed acyclic graphs to simultaneously achieve memory-hard computation but memory-easy validation. The core principle is that each individual nonce only requires a small portion of a large total data tree, and recomputing the subtree for each nonce is prohibitive for mining - hence the need to store the tree - but okay for a single nonce's worth of verification. Dagger was meant to be an alternative to existing memory-hard algorithms like Scrypt, which are memory-hard but are also very hard to verify when their memory-hardness is increased to genuinely secure levels. However, Dagger was proven to be vulnerable to shared memory hardware acceleration by Sergio Lerner and was then dropped in favor of other avenues of research. 

[링크 : https://github.com/ethereum/wiki/blob/master/Dagger-Hashimoto.md]


다르게 생각하면

ASIC에 DDR 램 8기가씩 박아대고 돌리면 제작은 가능하나,

램 특성상 IO 성능에 한계가 생겨 ASIC을 통해 빠르게 연산을 할 수 있도록 하여도

DDR SDRAM의 I/O 성능의 한계가 실제 연산 가능한 한계치로 수렴하게 되고

즉, 모든 채굴시스템의 성능적 한계는 메모리 대역폭으로 제한되게 된다.

그렇기에 ASIC도 FPGA도 CPU도 GPGPU도 모두 어느정도 공평하게 하향평준화(!) 되어 공정성을 유지한다

인가?

다만 near random 이라고 하니 충분히 큰 SRAM을 이용하여 cache를 구현한 다음

DDR <-> SRAM(SDRAM 아님) <-> ASIC 구조로 간다면 성능 향상도 일부 가능하겠지만

그렇게 복잡한 구조로 가면 이래저래 ASIC으로 구현하는게 투자비용 대비 채산성이 떨어지니

의도한 대로 어느정도는 작동이 가능할 것으로 보인다.


단, 메모리 대역폭에 제한되므로, 상상치도 못한 고속 메모리가 나온다면

혹은 PC에서 하기 힘든 멀티채널 메모리를 ASIC에서 구현해서 대역폭을 끌어 올린다면

승산이 있을지도 모르겠다.

'이론 관련 > 암호화통화' 카테고리의 다른 글

블록체인 관련  (0) 2018.01.15
비트코인 단위 MH/s  (0) 2018.01.14
비트코인 프로토콜  (0) 2018.01.13
비트코인 구조 채굴 등  (0) 2018.01.12
비트코인 테스트 넷?  (0) 2018.01.11
Posted by 구차니

일단 51% 공격이 가장 유용한데

가정이 어쩌면 가장 위험한 상황

자신의 데이터 무결성이 깨진걸 51% 이상의 연산력으로 조져야 가능한데

한번의 이익을 위해 수 많은 손실과 쌓아온 명예(?)를 날리겠느냐


데이터 조작이 목적이라면 이익이 그 시스템을 유지하는데서 나오는게 아니니까

충분히 이유가 생기는거 아닐려나?


그리고 우월한 연산량인지 아니면 노드수 인지 모르겠지만

국가에서 블록체인으로 한다고 하면 노드수 별로 어마어마한(?) 데이터 양을 가지고 있어야 하고

(비트 코인이야 거래별로 니까 크지만, 국가에서 문서 관리하면 머.. 몇기가 안될수도?)

노드별로 관리해야 하는 중복 데이터 용량이라는 관점에서 옳지 않고

분산 저장으로 위험이 준다고 하지만, 아주 극단적인 경우로

네트워크 데이터가 대량으로 손실되었고 (1차 공격, 네트워크 노드들을 차단)

그 틈을 타서 새로운 분기를 만들어 내고

기존 사용자들이 접속을 못하게 하는 상황에서(혹은 독립 네트워크 내에서)

새로운 데이터로 갈아 엎은 다음에

기존 사용자들이 데이터를 업데이트 하거나

신규 유저들로 하여 과반수를 넘기게 하면..

자료 조작이 가능해지는거 아닐려나?


[링크 : https://homoefficio.github.io/2017/11/19/블록체인-한-번에-이해하기/]

'이론 관련 > 암호화통화' 카테고리의 다른 글

이더리움 DAG?  (2) 2018.02.01
비트코인 단위 MH/s  (0) 2018.01.14
비트코인 프로토콜  (0) 2018.01.13
비트코인 구조 채굴 등  (0) 2018.01.12
비트코인 테스트 넷?  (0) 2018.01.11
Posted by 구차니

비트코인 단위로 MH/s 라는게 자주 보이는데

M은 말그대로 Mega Hash/Second

초당 몇 백만번 해시하냐 인데


DE2-115에서 80MH/s 가 기록되었는데

시리얼로 4800bps로 하는데.. 그게 어떻게 가능하지?

한번 계산할 내용을 주면

알아서 반복 계산하고 결과를 주거나 fail을 리턴하거나 하는 식으로 통신 내용을 줄인건가?


[링크 : https://automationrhapsody.com/md5-sha-1-sha-256-sha-512-speed-performance/]

[링크 : http://bithumb.cafe/archives/5214]

'이론 관련 > 암호화통화' 카테고리의 다른 글

이더리움 DAG?  (2) 2018.02.01
블록체인 관련  (0) 2018.01.15
비트코인 프로토콜  (0) 2018.01.13
비트코인 구조 채굴 등  (0) 2018.01.12
비트코인 테스트 넷?  (0) 2018.01.11
Posted by 구차니

supernova.cc였나 여기는 stratum 프로토콜인거 같고

구형은 getwork인지 getblocktemplate인지 모르겠다.

함수 이름이야 getwork 이긴 하고 json을 쓰긴하는데

예제 찾아서 일단 어떻게 돌아가나 확인이나 해봐야지


[링크 : https://en.bitcoin.it/wiki/Stratum_mining_protocol]

[링크 : https://en.bitcoin.it/wiki/Getwork]

[링크 : https://en.bitcoin.it/wiki/Getblocktemplate]

'이론 관련 > 암호화통화' 카테고리의 다른 글

블록체인 관련  (0) 2018.01.15
비트코인 단위 MH/s  (0) 2018.01.14
비트코인 구조 채굴 등  (0) 2018.01.12
비트코인 테스트 넷?  (0) 2018.01.11
비트코인과 지갑 그리고 cgminer  (0) 2018.01.10
Posted by 구차니

잘 해설된거 같은 내용이 있어서 덥썩!


SHA-256 해시를 이용해서 돈을 버는건데

채굴자의 지갑을 생성 후

채굴을 성공하게 되면 CoinBase 라는 기본 이름의 주인없는 돈이 생기고

블록체인대열에 포함된 주인없는 돈은 채굴자의 지갑에 존재하는 것으로 인정된다.. 인가?


[링크 : https://blog.iwanhae.ga/introduction_of_bitcoin/]



그런데 보면서 드는 의문...

난이도를 위해서 해시된 값을 순서대로 정렬해서 채굴하는 것 까지는 좋은데...

만약에 이 비트코인이 채굴이 완료되면

SHA-256 해시 공간에서 몇 %가 해석이 되는지 의문이고

다르게 보면 SHA-256 딕셔너리가 생성됨으로서 

SHA-256에 대한 무력화를 간접적으로 시도하게 되는게 아닐까?


BTC은 채굴난이도가 높아질수록 보상으로 떨어지는 금액이 줄어드는데

반대로 생각하면 전체 비트 코인의 갯수와는 별개로 

sha-256 해시에 대한 숫자는 더 많이 해독이 가능하다 라고 보면 되는건가?


Thus the total number of bitcoins in existence can never exceed 20,999,839.77085749 and counting.

[링크 : https://en.bitcoin.it/wiki/Help:FAQ]

'이론 관련 > 암호화통화' 카테고리의 다른 글

블록체인 관련  (0) 2018.01.15
비트코인 단위 MH/s  (0) 2018.01.14
비트코인 프로토콜  (0) 2018.01.13
비트코인 테스트 넷?  (0) 2018.01.11
비트코인과 지갑 그리고 cgminer  (0) 2018.01.10
Posted by 구차니

라즈베리 + de0용 채굴 툴이 되는지

한번 이걸로 테스트 해보면 되려나?



수퍼노바 Suprnova 비트코인골드 채굴 서버 설정


STRATUM: stratum+tcp://btg.suprnova.cc

PORT: 8861

Username: Weblogin.Worker

Password: Worker Password


[링크 : http://www.cryptocoin.kr/entry/비트코인골드-BTG-수퍼노바에서-테스트넷-채굴-연습-하기]

[링크 : http://www.csharpstudy.com/bitcoin/article/5-비트코인-네트워크]


'이론 관련 > 암호화통화' 카테고리의 다른 글

블록체인 관련  (0) 2018.01.15
비트코인 단위 MH/s  (0) 2018.01.14
비트코인 프로토콜  (0) 2018.01.13
비트코인 구조 채굴 등  (0) 2018.01.12
비트코인과 지갑 그리고 cgminer  (0) 2018.01.10
Posted by 구차니

fpga로 해보려던게 무산되서 좀 허망하긴 한데

(Cyclone IV로 구현된게 있고 18MH/s 정도 나온다는데, 

멀티코어 처럼 해보려고 했지만 남은 로직이 부족해서 불가능 ㅠㅠ)

이런저런 공부용으로는 좋아 보여서 일단 버리진 않고 있는중


라즈베리2와 de0-nano를 이용해서(시리얼로) 채굴을 해보려는데

채굴하려면 계좌가 필요하지 않나? 싶어서 찾다보니 비트코인 지갑이 그런 역활인 것 같고

bitcoin core라는 녀석을 깔아보니 무슨 블록 다 받아온다고 하루 내내 받아서 120GB정도 받아야

쓸 수 있도록 준비가 되는 것으로 보인다.

다르게 보면 전세계 모든 비트코인 거래 정보가 내 컴퓨터로 오는건가? 싶긴한데


이런 이유로 사람들이 온라인 지갑을 쓰는게 아닌가 생각된다.

bitcoin core는

PC만 가능하고, 온라인에서 사용불가

머.. 지갑 코드만 복사하면 다른데서 조회도 가능할지 모르겠지만 어떨지는 좀 더 찾아 봐야 할 듯.


아무튼 온라인 지갑에서 거래소와 환전소 역활을 하고

그 과정에서 이체 수수료로 이 생태계가 유지 가능할까? 라는 의문이 들긴 한다.


그리고 채굴은 여러가지 채굴 프로그램이 있지만

gpu 연동하는 cgminer가 가장 유명한거 같은데

fpga로 구현된게 cgminer랑 연동되서 되는진 모르겠고

cgminer 옵션중에 USB 타입의 ASCI-USB UART 식으로 구현된 녀석을 연동하거나 GPU 쓰는게

기본인것으로 보이지만.. fgpa는 특수 타입이니.. 존재할지 모르겠네?


라즈베리 꺼는 워낙 오래되서 지금 작동할지도 모르겠고

stratum 프록시 쓴다는데 링크도 보면 btcgulid라고 없어진 링크고..



---

온라인 비트코인 지갑

[링크 : https://steemit.com/kr/@maa/3yjimv]


cgminer를 이용해서 GPU 채굴하기

[링크 : https://toughnickel.com/personal-finance/How-to-Mine-Bitcoins-With-a-GPU-Using-CGMiner]


비트코인 코어(지갑 클라이언트) 설명

[링크 : http://thecoin.kr/lecture/1297]


cgminer는 아닌듯..  stratum PROXY server는 멀까...

[링크 : https://bitcointalk.org/index.php?topic=9047.940]

[링크 : https://github.com/kramble/DE0-Nano-BitCoin-Miner]


검색하다보니.. cgminer를 개조해서 4800bps에 돌아가게 했다 이런 느낌인데.. cgminer인건 맞는건가?

I cannot test it myself as my rig only runs at 4800 baud (AHEM, well I did hack the cgminer source to run at 4800, and it sort of worked, but required a change to the icarus detection algorithm to send the work packet twice as the first was ignored. This may be due to the use of a physical serial port on the raspberry pi rather than USB or may be a fault in my version of the fpgaminer code. Feedback would be appreciated as to whether the Mojo works with cgminer 3.1.1) 

[링크 : https://github.com/kramble/DE0-Nano-BitCoin-Miner/tree/master/Mojo_LX9]


얘가 cgminer 인가..? 1년 전에 업데이트가 일단 멈춤

[링크 : https://github.com/ckolivas/cgminer]


+

2018.01.11

[링크 : https://blog.naver.com/kang154123/221001176251]

[링크 : http://mtravel.tistory.com/94]


'이론 관련 > 암호화통화' 카테고리의 다른 글

블록체인 관련  (0) 2018.01.15
비트코인 단위 MH/s  (0) 2018.01.14
비트코인 프로토콜  (0) 2018.01.13
비트코인 구조 채굴 등  (0) 2018.01.12
비트코인 테스트 넷?  (0) 2018.01.11
Posted by 구차니