Sha1coin Unofficial Wiki
CSwiki
Feb
07
th
採掘アルゴリズム
の編集
Top
/ 採掘アルゴリズム
Total:1/Today:1
トップページ
新規ページ作成
編集
導入方法
PC向けウォレット
↑
マイニング
LA Poolへの登録と設定
CPUでの採掘
GPUでの採掘
ソロでの採掘
検索速度一覧
↑
未分類
ブロックチェーンの確認
採掘アルゴリズム
SHA-1に対する衝突攻撃とSha1coinへの影響
↑
外部リンク
↑
公式関連サイト
Sha1coin公式サイト
最新ブロック情報
DNS Seed
Web Wallet
↑
関連ツール
CPU用Miner(採掘ソフト)
GPU用Miner(採掘ソフト)
↑
採掘プール
LA Sha1coin Pool
↑
Block Explorer
Multi Light Block Explorer
↑
Faucet
LA faucet
Web Wallet
It works!yay!!! All In Faucet
↑
取引所
もなとれ
Japan Scrypt Trade (国産暗号通貨両替所)
Coinsmarket
↑
サービス
GifANA -ギフアナ-
↑
情報サイト
暗号通貨 長者番付
Bitcoin Wiki
最新の10件
2017-12-11
MenuBar
2017-04-30
SHA-1に対する衝突攻撃とSha1coinへの影響
2017-04-29
検索速度一覧
2016-09-28
FrontPage
2016-04-27
採掘アルゴリズム
2015-11-12
PC向けウォレット
2015-09-11
GPUでの採掘
CPUでの採掘
LA Poolへの登録と設定
2015-09-08
ソロでの採掘
edit
Sha1coinでは採掘アルゴリズムに独自の方式を採用していて、採掘と同時に2ちゃんねる等の掲示板で使用できる12桁版トリップの検索も行えるようになっています。 図にすると #ref(sha1coinhash.png) といった流れになっていて、26通りの12文字の文字列のSHA-1ハッシュを計算する部分が12桁版トリップの検索で必要になる処理と同じようになるように設計されています。 #br ---- #br 入力の80バイトはブロックヘッダの候補で、ブロックヘッダのフォーマットは[[Bitcoin WikiのBlock hashing algorithm:https://en.bitcoin.it/wiki/Block_hashing_algorithm]]等で紹介されているように |フィールド|意味|更新される時|サイズ(バイト)|h |Version|ブロック・バージョンナンバー|新しいバージョンが指定されているソフトウェアにアップグレードした時|4| |hashPrevBlock|前のブロックヘッダの256ビットのハッシュ|新しいブロックが届いた時|32| |hashMerkleRoot|ブロックに含まれる全トランザクションに基づく256ビットのハッシュ|トランザクションを受け取った時|32| |Time|1970-01-01T00:00 UTCからの秒数|数秒ごと|4| |Bits|コンパクト形式で表現されたターゲット値|難易度の調整時|4| |Nonce|32ビットの整数(0から開始)|ハッシュを試すたび(1ずつ増加)|4| となっています。 採掘アルゴリズムがどのような役割を果たすのかをSha1coinの実際のブロックチェーンで確認してみます。 例としてブロック番号432100のものを使います。 ブロックの情報を確認すると #ref(getblock.png) となっていて、ブロックヘッダに必要なデータを得ることが出来ます。それらを使って色々と計算するスクリプトの例が [[sha1coinhash-test.py:https://github.com/holo-n94/holo-n94.github.io/blob/master/misc/sha1coinhash-test.py]] です。 これを実行すると #ref(sha1coinhash-test.png) の様に出力されます。 BlockHashはブロックヘッダのSHA-256 doubleとかSHA256dと呼ばれたりもするSHA256(SHA256())のハッシュ値、 MiningHashはブロックヘッダのSha1coinの採掘アルゴリズムのハッシュ値、 Targetはコンパクト形式のものを256ビットの形式に直したものです。 それぞれの値は256ビット整数の16進表記となっていてバイトオーダーがややこしいです。 ターゲット値の変換の詳細は[[Bitcoin WikiのDifficulty:https://en.bitcoin.it/wiki/Difficulty]]等を参考にしてください。 スクリプトで計算してみることで、ブロックの識別に使われブロックチェーンでも重要なブロックハッシュは、ブロックヘッダのSHA256dハッシュであることが確認出来ました。 また、採掘アルゴリズムによるブロックヘッダのハッシュ値が、ターゲットより小さな値となっていることも確認出来ました。 このように、採掘とは「採掘アルゴリズムによるハッシュ値がターゲットの値より小さい」という条件を満たすブロックヘッダを探す作業で、 NonceやTimeの部分を変更しながらハッシュの計算を繰り返しています。 #br ---- #br
タイムスタンプを変更しない
Sha1coinでは採掘アルゴリズムに独自の方式を採用していて、採掘と同時に2ちゃんねる等の掲示板で使用できる12桁版トリップの検索も行えるようになっています。 図にすると #ref(sha1coinhash.png) といった流れになっていて、26通りの12文字の文字列のSHA-1ハッシュを計算する部分が12桁版トリップの検索で必要になる処理と同じようになるように設計されています。 #br ---- #br 入力の80バイトはブロックヘッダの候補で、ブロックヘッダのフォーマットは[[Bitcoin WikiのBlock hashing algorithm:https://en.bitcoin.it/wiki/Block_hashing_algorithm]]等で紹介されているように |フィールド|意味|更新される時|サイズ(バイト)|h |Version|ブロック・バージョンナンバー|新しいバージョンが指定されているソフトウェアにアップグレードした時|4| |hashPrevBlock|前のブロックヘッダの256ビットのハッシュ|新しいブロックが届いた時|32| |hashMerkleRoot|ブロックに含まれる全トランザクションに基づく256ビットのハッシュ|トランザクションを受け取った時|32| |Time|1970-01-01T00:00 UTCからの秒数|数秒ごと|4| |Bits|コンパクト形式で表現されたターゲット値|難易度の調整時|4| |Nonce|32ビットの整数(0から開始)|ハッシュを試すたび(1ずつ増加)|4| となっています。 採掘アルゴリズムがどのような役割を果たすのかをSha1coinの実際のブロックチェーンで確認してみます。 例としてブロック番号432100のものを使います。 ブロックの情報を確認すると #ref(getblock.png) となっていて、ブロックヘッダに必要なデータを得ることが出来ます。それらを使って色々と計算するスクリプトの例が [[sha1coinhash-test.py:https://github.com/holo-n94/holo-n94.github.io/blob/master/misc/sha1coinhash-test.py]] です。 これを実行すると #ref(sha1coinhash-test.png) の様に出力されます。 BlockHashはブロックヘッダのSHA-256 doubleとかSHA256dと呼ばれたりもするSHA256(SHA256())のハッシュ値、 MiningHashはブロックヘッダのSha1coinの採掘アルゴリズムのハッシュ値、 Targetはコンパクト形式のものを256ビットの形式に直したものです。 それぞれの値は256ビット整数の16進表記となっていてバイトオーダーがややこしいです。 ターゲット値の変換の詳細は[[Bitcoin WikiのDifficulty:https://en.bitcoin.it/wiki/Difficulty]]等を参考にしてください。 スクリプトで計算してみることで、ブロックの識別に使われブロックチェーンでも重要なブロックハッシュは、ブロックヘッダのSHA256dハッシュであることが確認出来ました。 また、採掘アルゴリズムによるブロックヘッダのハッシュ値が、ターゲットより小さな値となっていることも確認出来ました。 このように、採掘とは「採掘アルゴリズムによるハッシュ値がターゲットの値より小さい」という条件を満たすブロックヘッダを探す作業で、 NonceやTimeの部分を変更しながらハッシュの計算を繰り返しています。 #br ---- #br
テキスト整形のルールを表示する