最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

當前位置:主頁 > 區(qū)塊鏈 > 區(qū)塊鏈技術(shù) > 區(qū)塊鏈錢包私鑰碰撞概率

關(guān)于區(qū)塊鏈錢包私鑰碰撞概率計算分析

2024-03-16 00:55:38 | 來源: | 作者:佚名
最近看到有人說通過碰撞區(qū)塊鏈錢包私鑰而一夜暴富,感興趣所以了解了一點關(guān)于區(qū)塊鏈錢包的知識

各種貨幣的錢包地址是唯一的嗎?

先說結(jié)論:一種算法內(nèi),錢包地址是唯一的。兩種不同的算法可以用不同的私鑰生同相同的公鑰。但是兩者之間毫無關(guān)系。所以,另一種幣的錢包地址和你的ustd錢包地址一致,基本上也沒什么關(guān)系。但是,如果你說的另一種幣加密算法和ustd是一致的,那么就意唯著你的私鑰也是他的私鑰,你們雙方都可以操作對方的賬戶。這就意味著你們兩人在生成私鑰的時候,生成了一個一模一樣的,嗯~~,這種概率無限趨近于零。

早在區(qū)塊鏈出現(xiàn)的時候,大家就知道一種破解錢包的方法,就是私鑰碰撞。你可以拿一臺電腦,一直生成錢包地址,萬一生成出了一個和現(xiàn)在公鏈上已經(jīng)存在的錢包地址,那就意味著碰撞成功,萬一這個錢包里面有很多很多的數(shù)字貨幣,那你就發(fā)財了。碰撞成功概率有多少呢?以比特幣為例:

已知比特幣私鑰總數(shù)為2^256個。假設(shè)地球74億人每人擁有100個有余額的私鑰,那么隨機生成一個私鑰,剛好碰撞成功的概率是6.42*(10^-68),可以忽略不計~

最后補充一個基礎(chǔ)知識:

所有區(qū)塊鏈的錢包的地址都是非對稱加密算法的公鑰,與之對應(yīng)的是一個私鑰。簡單來說,就是一對密碼,他們通過一個算法,可以相互解密對方加密的信息。然后把其中一個密碼公布出去(放在公鏈上)讓誰都能得到,撐握私鑰的你就可以發(fā)起交易了,你發(fā)起的交易任何人拿公鑰都可以解密驗證,所以可以證明這個交易是真實的體現(xiàn)了你的意愿。

公鑰和私鑰的生成靠的是隨機算法,因為生成范圍無限大,所以雖然理論有可能生成出相同的公私鑰,但是概率無限趨近于零。

什么是區(qū)塊鏈錢包

這是一個儲存加密貨幣資產(chǎn)的工具,可以理解為銀行賬戶。區(qū)塊鏈錢包可以讓用戶查看余額、發(fā)送交易、接收資金等等。更具體地說,加密貨幣錢包本身不持有任何加密貨幣,它們持有的是加密貨幣的私鑰。

什么是私鑰

私鑰就像是你的銀行卡密碼,它是由大小寫字母和數(shù)字組成的編碼,長度與區(qū)塊鏈類型有關(guān)。你可以通過私鑰推導(dǎo)出公鑰。

什么是公鑰

公鑰可以對外公開,人們可以向你的公鑰轉(zhuǎn)賬,就好比別人可以向你的銀行賬戶打款一樣。

私鑰碰撞

既然每一個私鑰都對應(yīng)了一個錢包賬戶,那我們能不能通過隨機生成私鑰,來碰撞到有存儲加密貨幣的錢包呢?

說干就干,咱們隨便寫一個多線程隨機生成私鑰并檢查余額的程序來試試

from web3 import Web3
from loguru import logger
import binascii, os
import threading
import time
def generate_private_key():
    return binascii.b2a_hex(os.urandom(32)).decode('utf8')
# 初始化 Web3
# 這里用alechemy提供的接口來連接Ethereum 節(jié)點
http_provider = Web3.HTTPProvider('https://eth-mainnet.g.alchemy.com/v2/YOUR-PROJECT-ID')
web3 = Web3(http_provider)
# ABI
abi = """
[
    {
        "constant": true,
        "name": "balanceOf",
        "outputs": [{"name": "", "type": "uint256", "value": "2000000000"}],
        "inputs": [{"name": "_owner", "type": "address"}],
        "anonymous": false,
        "type": "function"
    }
]
"""
# 智能合同地址和對應(yīng)的單位
contracts_info = {
    'USDT': {
        'address': "0xdAC17F958D2ee523a2206206994597C13D831ec7",
        'decimal': 10**6
    },
    'USDC': {
        'address': "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
        'decimal': 10**6
    },
    'Dfyn': {
        'address': "0x9695e0114e12c0d3a3636fab5a18e6b737529023",
        'decimal': 10**18
    },
    'BigTime': {
        'address': "0x64bc2ca1be492be7185faa2c8835d9b824c8a194",
        'decimal': 10**18
    },
    'MANA': {
        'address': "0x0F5D2fB29fb7d3CFeE444a200298f468908cC942",
        'decimal': 10**18
    }
}
# 存有所有的合約實例
contracts = {}
# 創(chuàng)建所有的合約實例
for token, contract_info in contracts_info.items():
    contracts[token] = {
        'contract': web3.eth.contract(address=web3.to_checksum_address(contract_info['address']), abi=abi),
        'decimal': contract_info['decimal']
    }
try:
    latest_block = web3.eth.block_number
    logger.success(f'Web3 成功連接!最新的區(qū)塊編號是: {latest_block}')
except Exception as e:
    logger.error('Web3連接失敗!')
    logger.error(str(e))
# 創(chuàng)建一個線程鎖
lock = threading.Lock()
def task():
    while True:
        try:
            myPrivateKey = generate_private_key()
            myAccount = web3.eth.account.from_key(myPrivateKey)
            wallet_address = web3.to_checksum_address(myAccount.address)
            # 請求會繼續(xù)嘗試直到成功
            while True:
                try:
                    # 查詢ETH余額
                    balance_wei = web3.eth.get_balance(wallet_address)
                    balance_eth = web3.from_wei(balance_wei, 'ether')
                    break  # 如果請求成功則跳出循環(huán)
                except Exception as e:
                    logger.error('Failed to query ETH balance. Retrying...')
                    time.sleep(0.5)  # 暫停0.5秒再重試
            # 查詢 Token 余額
            balances = dict()
            non_zero_balance = False
            for token, contract_info in contracts.items():
                contract = contract_info['contract']
                decimal = contract_info['decimal']
                # 請求會繼續(xù)嘗試直到成功
                while True:
                    try:
                        balance = contract.functions.balanceOf(wallet_address).call() / decimal
                        break  # 如果請求成功則跳出循環(huán)
                    except Exception as e:
                        logger.error(f'Failed to query {token} balance. Retrying...')
                        time.sleep(0.5)  # 暫停0.5秒再重試
                balances[token] = balance
                # 檢查余額是否大于0
                if balance > 0:
                    non_zero_balance = True
            # 打印所有余額
            logger.info(f'PrivateKey:{myPrivateKey},ETH:{balance_eth},' + ','.join([f'{token}:{balance}' for token, balance in balances.items()]))
            # 如果余額大于0,加鎖向文件追加數(shù)據(jù)
            if non_zero_balance:
                with lock:
                    logger.success(f'發(fā)現(xiàn)非空錢包,PrivateKey:{myPrivateKey},ETH:{balance_eth},' + ','.join([f'{token}:{balance}' for token, balance in balances.items()]))
                    with open('key.txt', 'a') as f:
                        f.write(f'PrivateKey:{myPrivateKey},ETH:{balance_eth},' + ','.join([f'{token}:{balance}' for token, balance in balances.items()]) + '\n')
        except Exception as e:
            logger.error('Error occurred. Retrying...')
            continue
def main():
    # 線程數(shù)量
    logger.info('請輸入線程數(shù):')
    num_threads = int(input())
    for _ in range(num_threads):
        t = threading.Thread(target=task)
        t.start()
if __name__ == '__main__':
    main()

程序運行截圖

這個程序在開200個線程的情況下,一臺服務(wù)器運行24小時大概能夠查詢上千萬個私鑰對應(yīng)的錢包是否有以上幾種加密貨幣。

因為是程序是聯(lián)網(wǎng)查詢的,所以速度上會稍微慢一些。如果想要優(yōu)化查詢速度的話,可以把所有有過交易記錄的錢包地址都記錄下來,然后拿私鑰計算出來的錢包地址直接去和記錄的錢包地址做比對(空間換時間),這樣可以節(jié)省掉聯(lián)網(wǎng)查詢的耗時。

概率計算

我們假設(shè)全世界80億人,每個人有2個區(qū)塊鏈錢包,我們的程序一分鐘能夠計算1000萬個私鑰對應(yīng)的錢包里是否有加密貨幣,我們放在服務(wù)器上計算一年,碰撞到持有加密貨幣的錢包地址的概率是多少呢?

區(qū)塊鏈的錢包私鑰通常是256位的,以十六進制來表示則為64個字符(一位十六進制 = 4位二進制),所以有效的私鑰數(shù)量為 16^{64} ,接近 10^{77} 。

全世界80億人( 8*10^{9} ),每個人有2個錢包里面有加密貨幣,所以總共有 1.6*10^{10} 個錢包。所以有加密貨幣錢包的概率是 1.6*10^{10}/10^{77} = 1.6*10^{-67} 。

程序每分鐘能生成1000萬( 10^{7} )個私鑰,一小時就是( 60*10^{7} ),一年(假設(shè)為365天),就是 365*24*60*10^{7}=5.256*10^{12}

所以,一年的時間內(nèi),碰到一個持有加密貨幣的錢包地址的概率為 5.256*10^{12}*1.6*10^{-67}=8.4096*10^{-55}

這個概率是個什么概念呢?

雙色球一等獎(猜中6個紅球號碼,以及藍球的號碼),中獎概率為1/17721088,約等于 5.64325*10^{-8} 。

如果我們將這兩個概率進行比較,可以得到連續(xù)中雙色球的次數(shù)為log( lg8.4096*10^{-55}/lg5.64325*10^{-8}\approx7.5 ^-51)。

也就是說碰撞到一個持有加密貨幣的錢包地址相當于連續(xù)7.5次中雙色球一等獎

這就是為什么人們稱基于私鑰的加密為安全的原因。私鑰空間太大了,即使使用極其強大的計算能力,也不可能在有限的時間內(nèi)通過生成檢查所有可能的私鑰的方法找到特定的私鑰。

多簽錢包

當你碰撞到了一個持有大量加密貨幣的錢包,其還有可能是多簽錢包(Multisignature Wallet),一筆交易需要多個私鑰的簽名才能完成。即使你有一個私鑰,也無法進行轉(zhuǎn)賬或交易。

在線手動碰撞

這是一個在線手動進行私鑰碰撞的網(wǎng)頁,可以根據(jù)私鑰計算出公鑰,也可以生成隨機的公私鑰對,并且點擊鏈接能夠直接跳轉(zhuǎn)到 Etherscan 檢查地址對應(yīng)的余額。

地址:http://eag.smallyu.net

免責聲明:本文只為提供市場訊息,所有內(nèi)容及觀點僅供參考,不構(gòu)成投資建議,不代表本站觀點和立場。投資者應(yīng)自行決策與交易,對投資者交易形成的直接或間接損失,作者及本站將不承擔任何責任。!

你可能感興趣的文章

幣圈快訊

  • 伊拉克真主黨旅:將對美沙聯(lián)合打擊作出回應(yīng)

    2026-07-29 23:02
    伊拉克真主黨旅表示,將“不可避免”地對美沙聯(lián)合打擊作出回應(yīng)。
  • 霍爾木茲海峽關(guān)閉美聯(lián)儲可能在九月加息

    2026-07-29 22:53
    資管公司AberdeenInvestments表示,如果霍爾木茲海峽繼續(xù)關(guān)閉,美聯(lián)儲可能在九月加息。
  • 4天內(nèi)6個錢包從幣安提取445.2萬枚KAITO價值561萬美元

    2026-07-29 22:45
    據(jù)鏈上分析師余燼監(jiān)測,最近4天里,6個錢包從幣安提取445.2萬枚KAITO到鏈上,價值561萬美元。同期KAITO價格上漲35%,從0.93美元升至1.26美元。若時間線拉長至一個月,KAITO價格上漲193%,從0.43美元升至1.26美元。
  • WTI原油日內(nèi)漲幅一度達7%

    2026-07-29 22:37
    7月29日,WTI原油日內(nèi)漲幅一度擴大至7.00%,現(xiàn)報83.7美元/桶。布倫特原油現(xiàn)漲6.5%,報87.3美元/桶。
  • Solana政策機構(gòu)敦促參議院盡快表決ClarityAct加密法案

    2026-07-29 22:37
    據(jù)TheBlock報道,美國SolanaPolicyInstitute向參議院兩黨領(lǐng)袖致信,呼吁在8月初國會立法窗口關(guān)閉前推動ClarityAct數(shù)字資產(chǎn)法案進入表決程序。該法案旨在為美國加密開發(fā)者、機構(gòu)和消費者提供監(jiān)管清晰度,并通過BlockchainRegulatoryCertaintyAct為非托管軟件開發(fā)者建立“非貨幣傳輸”安全港。最新共和黨版本還新增倫理條款,禁止聯(lián)邦公職人員及配偶發(fā)行或贊助數(shù)字資產(chǎn),相關(guān)條款擬于2029年1月20日到期。SPI稱該法案有助于防止監(jiān)管與刑事執(zhí)法對軟件開發(fā)者的“過度延伸”,維持美國本土建設(shè)動能。
  • 查看更多
更多

熱門幣種

  • 幣種
    最新價格
    24H漲跌幅
  • bitcoin BTC 比特幣

    BTC

    比特幣

    $ 64147.77¥ 434325.3
    +1.11%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 1894.55¥ 12827.42
    +0.31%
  • tether USDT 泰達幣

    USDT

    泰達幣

    $ 0.9988¥ 6.7625
    +0%
  • binance-coin BNB 幣安幣

    BNB

    幣安幣

    $ 568.52¥ 3849.27
    -0.02%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1.0009¥ 6.7767
    +0%
  • ripple XRP 瑞波幣

    XRP

    瑞波幣

    $ 1.073¥ 7.2649
    +1.75%
  • solana SOL Solana

    SOL

    Solana

    $ 73.3077¥ 496.34
    -0.17%
  • tron TRX 波場

    TRX

    波場

    $ 0.3267¥ 2.2119
    +0.71%
  • hyperliquid HYPE Hyperliquid

    HYPE

    Hyperliquid

    $ 55.0113¥ 372.46
    -0.17%
  • dogecoin DOGE 狗狗幣

    DOGE

    狗狗幣

    $ 0.070259¥ 0.4757
    +0.35%
隆子县| 门源| 磐安县| 德化县| 海安县| 霍山县| 竹山县| 筠连县| 威远县| 太仓市| 永年县| 甘孜| 昭通市| 镇安县| 凭祥市| 大冶市| 乌拉特前旗| 上饶市| 石家庄市| 乌海市| 金沙县| 咸宁市| 鄂托克前旗| 平遥县| 营山县| 阿尔山市| 安泽县| 云安县| 大石桥市| 西充县| 阿城市| 遵义县| 深水埗区| 墨竹工卡县| 恭城| 赤壁市| 巴青县| 南涧| 类乌齐县| 林西县| 盐城市|