{"version":"https://jsonfeed.org/version/1.1","title":"苏迟但到的主页","home_page_url":"https://kexohproject.pages.dev","feed_url":"https://kexohproject.pages.dev/json/","description":"<p>你好，欢迎访问个人主页！</p><p>擅长密码学，安全分析，数字水印等技术。</p><p>你可以联系我通过:findmykexin@gmail.com或者知乎私信。</p><p>我的知乎链接：<a href=\"https://www.zhihu.com/people/su-chi-dan-dao\" rel=\"noopener noreferrer\" target=\"_blank\">苏迟但到 - 知乎 (zhihu.com)</a></p><p>我的github链接：<a href=\"https://github.com/kexinoh\" rel=\"noopener noreferrer\" target=\"_blank\">kexinoh</a></p>","icon":"https://kexohcdn.gptapi.cyou/kexohproject/production/images/channel-2e54d141ee195646ca12a9d16507a908.jpg","favicon":"https://kexohcdn.gptapi.cyou/kexohproject/production/images/favicon-340a2925d02a0386f3b954a032834917.jpg","authors":[{"name":"苏迟但到"}],"language":"zh-cn","items":[{"id":"_Zi0HuEu2La","title":"有没有人尝试破解比特币的算法？","content_html":"<p data-pid=\"_CXHqkX1\">收录于<b>专业瞎扯专栏系列</b></p><p data-pid=\"WX27HzJ8\">最近有群友说想要组建一个1000人团队来暴力破解比特币私钥。</p><p data-pid=\"Gp84ollA\">于是我们就在群里面欢快的讨论了可能性：</p><figure data-size=\"normal\"><noscript><img src=\"https://pic3.zhimg.com/v2-62c122ea3b580b2f32c7749347a6cf1e_b.jpg\" data-size=\"normal\" data-rawwidth=\"550\" data-rawheight=\"313\" data-original-token=\"v2-8457533886ac90d42fe277cadb85fb22\" class=\"origin_image zh-lightbox-thumb\" width=\"550\" data-original=\"https://pic3.zhimg.com/v2-62c122ea3b580b2f32c7749347a6cf1e_r.jpg\"/></noscript><img src=\"data:image/svg+xml;utf8,&lt;svg xmlns=&#39;http://www.w3.org/2000/svg&#39; width=&#39;550&#39; height=&#39;313&#39;&gt;&lt;/svg&gt;\" data-size=\"normal\" data-rawwidth=\"550\" data-rawheight=\"313\" data-original-token=\"v2-8457533886ac90d42fe277cadb85fb22\" class=\"origin_image zh-lightbox-thumb lazy\" width=\"550\" data-original=\"https://pic3.zhimg.com/v2-62c122ea3b580b2f32c7749347a6cf1e_r.jpg\" data-actualsrc=\"https://pic3.zhimg.com/v2-62c122ea3b580b2f32c7749347a6cf1e_b.jpg\"/><figcaption>群友的大胆构想</figcaption></figure><h2>计算可能性</h2><p data-pid=\"hBgpWWkm\">我们先对碰撞比特币私钥进行概率分析。</p><p data-pid=\"dril2Tzu\">先获取我们有多少的比特币地址（<a href=\"https://link.zhihu.com/?target=https%3A//explorer.btc.com/zh-CN/btc/top-address%3Fchart%3Dcount\" class=\" wrap external\" target=\"_blank\" rel=\"nofollow noreferrer\">持币地址 - 比特币(BTC) - BTC.com 为全球区块链爱好者提供专业的数据与矿池服务</a>），我们可以看见大概有1000万左右比特币地址的余额在0.001比特币以上。</p><p data-pid=\"Y_nuEFTw\">而比特币的secp256k1的阶数正好近似于2^256的数目的（稍微低一点）。</p><p data-pid=\"y0N4Xc_L\">那么我们平均需要扫描多少的地址才能有50%的概率出来一个地址呢？</p><p data-pid=\"vJL47cLU\">根据生日攻击原理，这个数目就正好是一半，我们有1000个矿机。</p><p data-pid=\"4Ou6aO_t\"><img src=\"https://www.zhihu.com/equation?tex=N%3D%5Cfrac%7B2%5E%7B256%7D%7D%7B1000000%5Ccdot1000%5Ccdot2%7D%3D5.78960446%C3%9710%5E%7B67%7D\" alt=\"N=\\frac{2^{256}}{1000000\\cdot1000\\cdot2}=5.78960446×10^{67}\" eeimg=\"1\"/> </p><p data-pid=\"Dde3G24O\">这个数字看上去还是太大了一点，在以太坊挑战赛里面，56位以下的才能被破解，而这个达到了67位，也就是说目前还是很难破解的。</p><h2>分布式算法</h2><p data-pid=\"l4kB91NP\">虽然破解的概率还是很小，我们还是要讨论一下如果要写分布式破解算法怎么写？</p><p data-pid=\"Mjqje8nc\">我们这个计算过程有以下特点：</p><p data-pid=\"lcek9_wc\">1.只包含了三种运算：ECC运算，hash运算，数据查询运算。</p><p data-pid=\"nebqnedT\">其中这三种运算用到的芯片恰好还不一样。ECC用的是CPU或者FPGA等等，而hash运算存在专门ASIC矿机进行快速运算，数据查询运算主要需要一块大内存。（ <img src=\"https://www.zhihu.com/equation?tex=10%5E7%5Ccdot%5Cfrac%7B256bits%7D%7B8%5Ccdot1024%5E%7B2%7D%7D%3D305MB\" alt=\"10^7\\cdot\\frac{256bits}{8\\cdot1024^{2}}=305MB\" eeimg=\"1\"/> ）</p><p data-pid=\"KKofC_Te\">因为这三个机器的工作效率不同，且适合的机器也不同，因此我们采用如下的计划：</p><p data-pid=\"jbcjrk38\">ECC矿机950台，hash矿机10台，40台查询矿机。</p><p data-pid=\"9L-H9HyR\">ECC计算出的公钥运送到hash矿机，矿机再输送到查询矿机。</p><h2>进一步优化</h2><h3>软件优化</h3><p data-pid=\"86YkiDWF\">我们这里还有一些优化的空间。</p><p data-pid=\"2KebCcZ5\">小学二年级学过椭圆曲线算法遵循以下规律</p><p data-pid=\"cFuigxOI\"><img src=\"https://www.zhihu.com/equation?tex=%28m%2Bn%29P%3DmP%2BnP\" alt=\"(m+n)P=mP+nP\" eeimg=\"1\"/> .</p><p data-pid=\"Uxj7Y3t8\">因此对于每一个矿机我们可以对其分配一个240bit的地址，对于这个地址一次性挖取2^16个块。</p><p data-pid=\"er_DrW9u\">这样对于一个XP只需要进行+P操作就可以了。</p><p data-pid=\"9M2UGFw9\">在hash矿机端还可以加上一个取secp256k1阶的负值</p><p data-pid=\"azjkYT4e\"><img src=\"https://www.zhihu.com/equation?tex=%28%5C%23k1-x%29p%3D-xp\" alt=\"(\\#k1-x)p=-xp\" eeimg=\"1\"/> </p><p data-pid=\"5zQ_mdQa\">相当于对复杂度进行了mod2处理。</p><h3>硬件优化</h3><p data-pid=\"b_bgsiDL\">ECC专用芯片有很多，但是专门针对secp256k1曲线的矿机为0.（废话，只能用来比特币签名的矿机有什么用，比特币的TPS是7.小灵通都可以完成整个比特币网络的签名的计算量需求了）。</p><p data-pid=\"-C7Rd0Wf\">如果一定要头铁开发的话，可以采用以下方法：</p><p data-pid=\"UjcOHec_\">预运算好 <img src=\"https://www.zhihu.com/equation?tex=2P%2C3P%2C4P%2C8P....2%5E%7B255%7DP\" alt=\"2P,3P,4P,8P....2^{255}P\" eeimg=\"1\"/> .</p><p data-pid=\"cQqTppG5\">到时候，可以直接进行点加运算。</p><p data-pid=\"74OB-GSL\">-------完--------</p><p data-pid=\"uE-fJX7y\">专业瞎扯专栏系列第一篇，欢迎大家关注</p>","content_text":"收录于专业瞎扯专栏系列\n\n最近有群友说想要组建一个1000人团队来暴力破解比特币私钥。\n\n于是我们就在群里面欢快的讨论了可能性：\n\n[https://pic3.zhimg.com/v2-62c122ea3b580b2f32c7749347a6cf1e_b.jpg][data:image/svg+xml;utf8,&lt;svg\nxmlns=&#39;http://www.w3.org/2000/svg&#39; width=&#39;550&#39;\nheight=&#39;313&#39;&gt;&lt;/svg&gt;]群友的大胆构想\n\n\n计算可能性\n\n我们先对碰撞比特币私钥进行概率分析。\n\n先获取我们有多少的比特币地址（持币地址 - 比特币(BTC) - BTC.com\n为全球区块链爱好者提供专业的数据与矿池服务），我们可以看见大概有1000万左右比特币地址的余额在0.001比特币以上。\n\n而比特币的secp256k1的阶数正好近似于2^256的数目的（稍微低一点）。\n\n那么我们平均需要扫描多少的地址才能有50%的概率出来一个地址呢？\n\n根据生日攻击原理，这个数目就正好是一半，我们有1000个矿机。\n\nN=\\frac{2^{256}}{1000000\\cdot1000\\cdot2}=5.78960446×10^{67}\n[https://www.zhihu.com/equation?tex=N%3D%5Cfrac%7B2%5E%7B256%7D%7D%7B1000000%5Ccdot1000%5Ccdot2%7D%3D5.78960446%C3%9710%5E%7B67%7D]\n\n这个数字看上去还是太大了一点，在以太坊挑战赛里面，56位以下的才能被破解，而这个达到了67位，也就是说目前还是很难破解的。\n\n\n分布式算法\n\n虽然破解的概率还是很小，我们还是要讨论一下如果要写分布式破解算法怎么写？\n\n我们这个计算过程有以下特点：\n\n1.只包含了三种运算：ECC运算，hash运算，数据查询运算。\n\n其中这三种运算用到的芯片恰好还不一样。ECC用的是CPU或者FPGA等等，而hash运算存在专门ASIC矿机进行快速运算，数据查询运算主要需要一块大内存。（\n10^7\\cdot\\frac{256bits}{8\\cdot1024^{2}}=305MB\n[https://www.zhihu.com/equation?tex=10%5E7%5Ccdot%5Cfrac%7B256bits%7D%7B8%5Ccdot1024%5E%7B2%7D%7D%3D305MB]\n）\n\n因为这三个机器的工作效率不同，且适合的机器也不同，因此我们采用如下的计划：\n\nECC矿机950台，hash矿机10台，40台查询矿机。\n\nECC计算出的公钥运送到hash矿机，矿机再输送到查询矿机。\n\n\n进一步优化\n\n\n软件优化\n\n我们这里还有一些优化的空间。\n\n小学二年级学过椭圆曲线算法遵循以下规律\n\n(m+n)P=mP+nP [https://www.zhihu.com/equation?tex=%28m%2Bn%29P%3DmP%2BnP] .\n\n因此对于每一个矿机我们可以对其分配一个240bit的地址，对于这个地址一次性挖取2^16个块。\n\n这样对于一个XP只需要进行+P操作就可以了。\n\n在hash矿机端还可以加上一个取secp256k1阶的负值\n\n(\\#k1-x)p=-xp [https://www.zhihu.com/equation?tex=%28%5C%23k1-x%29p%3D-xp]\n\n相当于对复杂度进行了mod2处理。\n\n\n硬件优化\n\nECC专用芯片有很多，但是专门针对secp256k1曲线的矿机为0.（废话，只能用来比特币签名的矿机有什么用，比特币的TPS是7.小灵通都可以完成整个比特币网络的签名的计算量需求了）。\n\n如果一定要头铁开发的话，可以采用以下方法：\n\n预运算好 2P,3P,4P,8P....2^{255}P\n[https://www.zhihu.com/equation?tex=2P%2C3P%2C4P%2C8P....2%5E%7B255%7DP] .\n\n到时候，可以直接进行点加运算。\n\n-------完--------\n\n专业瞎扯专栏系列第一篇，欢迎大家关注","date_published":"2022-05-21T11:54:37.000Z","_microfeed":{"web_url":"https://kexohproject.pages.dev/i/有没有人尝试破解比特币的算法-_Zi0HuEu2La/","json_url":"https://kexohproject.pages.dev/i/_Zi0HuEu2La/json/","rss_url":"https://kexohproject.pages.dev/i/_Zi0HuEu2La/rss/","guid":"_Zi0HuEu2La","status":"published","itunes:title":"New Article Title for iTunes","date_published_short":"Sat May 21 2022","date_published_ms":1653134077000}}],"_microfeed":{"microfeed_version":"0.1.2","base_url":"https://kexohproject.pages.dev","categories":[{"name":"Education","categories":[{"name":"Language Learning"}]},{"name":"Technology"}],"subscribe_methods":[{"name":"RSS","type":"rss","url":"https://kexohproject.pages.dev/rss/","image":"https://kexohproject.pages.dev/assets/brands/subscribe/rss.png","enabled":true,"editable":false,"id":"4KlfbtkEfzy"},{"name":"JSON","type":"json","url":"https://kexohproject.pages.dev/json/","image":"https://kexohproject.pages.dev/assets/brands/subscribe/json.png","enabled":true,"editable":false,"id":"DVFm7TYiNSq"}],"description_text":"你好，欢迎访问个人主页！\n\n擅长密码学，安全分析，数字水印等技术。\n\n你可以联系我通过:findmykexin@gmail.com或者知乎私信。\n\n我的知乎链接：苏迟但到 - 知乎 (zhihu.com)\n\n我的github链接：kexinoh","copyright":"©2024","itunes:type":"episodic","items_sort_order":"newest_first"}}