สอนแฮก bitcoin มูลค่า 1 ล้านบาท ฟรีๆ แจกบิทคอยฟรี
จริงๆไม่ใช่แฮกนะ หัวข้อน่าจะ clickbait ไปหน่อย แต่ก็ไม่ผิดนะ
ตอนนี้โพสนี้ราคา bitcoin อยู่ที่ 1.00 Bitcoin = 1,844,585.74 Thai Baht
ดังนั้น 0.64 Bitcoins = 1,176,287.51 Thai Baht (รางวัลสำหรับ puzzle หมายเลข 64)
ในเว็บบอร์ดเก่าแก่
bitcointalk.org เขามี puzzle หรือ ปริศนาบิทคอยให้คอยแก้ไขอยู่ ใครแก้ไขปริศนาได้ ก็เอา bitcoin ไปเลย
โปรเจคนี้เริ่มมาตั้งแต่ปี 2015 ซึ่งปัจจุบัน ยังมีคนแก้ไขปริศนา ไม่ได้อีกครึ่งหนึ่ง ไม่สามารถถอดรหัสได้
จริงๆแล้ว puzzle ชุดนี้ไม่ใช่ปริศนา ที่ต้องคิดหรือคำนวนใดๆ แต่เป็นการท้าท้ายให้แฮก bitcoin ที่เขาตั้งใจทำไว้ให้แฮกเลย ก็คือค้นหาเอา private key ได้ก็เอา bitcoin ไปเลย ยกให้ฟรีๆ
มันเป็น challenge ท้าทายให้คนแก้ปริศนาค้นหา private key
จุดประสงค์เขาก็คือ ทดสอบว่าจะมีใครแฮกได้ ถ้ามีคนแฮกได้แล้วละก็ แสดงว่า bitcoin มันไม่ปลอดภัยแล้วละ เขาจะได้กระโดดหนีทัน คือขาย bitcoin ทิ้งก่อนร่วงหรือย้ายไปอยู่เป็นคริปโตอื่นๆ ที่ปลอดภัยแทน ประมาณนั้น
bitcoin จริงๆ ตั้งแต่เวอรชั่น alpha ของซาโตชิ นั้นทำงานอยู่ที่ 256bit ตั้งแต่พัฒนาเลย แต่แรกเริ่ม ดังนั้น bitcoin จะไม่มีทางแฮกได้เลย(น่าจะจริง)
ยกเว้นใครที่ใช้ brain wallet ที่ใช้ประโยค หรือคำศัพท์เป็นคำตั้งต้นในการสร้าง private key นั้น โดนแคร็กโดยนักวิจัยไปแล้ว ใครที่ใช้คำศัพท์ไม่ว่าภาษาใดๆ เป็น keyword ในการสร้าง private key จะไม่ปลอดภัย ไม่ว่า คำคม กลอน ร้องเพลง หรือ อะไรที่คนใช้ก็โดนเอาไปแคร็กได้ 555
ทีนี้ puzzle เขาทำขึ้นโดยใช้ private key ที่ bit ต่ำๆ ซึ่งทำให้สามารถแฮกได้ง่ายๆ ขึ้นมา เริ่มจาก 1 บิต ไปตนถึง 160 บิต เรียกว่า puzzle หมายเลข 1 ไปจนถึง puzzble หมายเลข 160
puzzle หมายเลข 1-63 มีคนสามาระแกะ private key แล้วเอา bitcoin ไปได้แล้ว
เหลือ อีกประมาณ 82 หมายเลข ยังแก้ไขไม่ได้ ล้วนแต่อยู่ในระดับ bits สูงๆทั้งนั้น
คนทำ puzzle เขาก็กะว่า ถ้ามีคนเอา puzzble หมายเลข 160 หรือ 160 bits ไปได้แล้วละก็
puzzle ทั้งหมดตั้งใจสร้างมาให้แคร็กโดยเฉพาะ มีทั้งแบบ address เปล่าๆ และแบบที่มี hint หรือคำบอกไบ้ให้ก็คือ มี publick key ให้ด้วย เป็นเฉพาะ puzzle เป็นช่วงๆ ดูได้ที่รายการของ กระทู้โพส bitcoin ในบอร์ดฝรั่ง
ทีมันแฮกได้ เป็นเพราะมันใช่ bit ต่ำครับ คือ รหัส 1 bit ไปจนถึง 64 bit แต่ bitcoin จริงๆ มันเป็น bitcoin 256 bit (หากใครอุตริใช้ต่ำกว่า 256 bit ถือว่าเสี่ยงมากในการใช้ bitcoin ต่ำกว่า 256 bit)
private key ที่ใช้หมายเลข 1 ไปจนถึง 9223372036854775808 ได้ถูกค้นพบไปแล้ว
นับเลข bit ยังไง เช่น 40 บิต ก็คือ 2 ยกกำลัง 40 เครื่องคิดเลขใช้ 2^40 หรือภาษาโปรแกรมเมอร์มักจะใช้ 2**40
ใน excel ใช้ =2^40
bit ต่ำสุดที่เหลือนี้คือ puzzle หมายเลข 64 ก็คือใช้รหัสอยู่ที่ 64 บิต
ก็คือ puzzle 64 จะใช้ private key อยู่ในช่วง 2^63 - 2^64 แปลงเป็นตัวเลขจะได้ 9223372036854775808 - 18446744073709551616
ใครสามารถค้นหาหมายเลขในช่วงนี้เจอ private key ของเลขนี้ ก็เอารางวัลไปเลย 0.64 bitcoin ก็ถอนแล้วโอนเข้า bitkrub แล้วแลกออกมาเป็นเงินบาทได้เลย 1 ล้านกว่าบาท(ตอนที่โพสนี้)
ตัวเลข
เลขฐาน 2 เรียกว่า binary (มันคือ ประมาณ 0101010101 )
เลขฐาน 10 หรือเลขที่เรานับกันอยู่ทุกวัน เรียกว่า Decimal (มันคือ เลข 1 ถึง 10)
เลขฐาน 16 หรือ Hex เฮ็กซ์ เรียกว่า Hexadecimal (ประกอบไปด้วย เลข 1 ถึง 10 และตัวอักษร ABCDEF หกตัว)
ในนี้ส่วนใหญ่จะใช้เลขฐาน 16 Hex
เพื่อให้เข้าใจง่ายสามารแปลงเลข hex เป็นตัวเลขธรรมดาได้
https://www.rapidtables.com/convert/number/hex-to-decimal.html(แต่เวลาใช้งานจริงต้องใช้เลข hex นะครับ)
puzzle ตอนนี้มีเหลืออยู่ 82 puzzle ใครสนใจเลขใหน ก็ลองแกะรหัสได้เลย (ตั้งแต่ 64 ถึง 160)
puzzle ที่ง่ายที่สุด ที่จะสามารถถอดได้ มี 2 puzzle คือ puzzle #64 กับ puzzle #120
puzzle #64 มูลค่า 0.64 bitcoin (คิดเป็นเงินไทย 0.64 Bitcoins = 1,176,518.86 Thai Baht)
puzzle #120 มูลค่า 1.20 bitcoin (คิดเป็นเงินไทย 1.20 Bitcoins = 2,205,972.85 Thai Baht)
puzzle #160 มูลค่า 1.60 bitcoin (คิดเป็นเงินไทย 1.60 Bitcoins = 2,941,297.14 Thai Baht )
puzzle หมายเลข 1-63 ถูกถอดรหัสด้วยโปรแกรม bitCrack
puzzle หมายเลข #105 #110 #115 ถูกถอดรหัสด้วยโปรแกรม Kangaroo
ทำไม puzzle #64 ถึงง่ายที่สุดในตอนนี้
เพราะมันเป็น bit ต่ำสุด ที่เหลือที่อยู่ในตอนนี้แล้ว อันอื่นๆ มันเป็น bit สูงมาก ยิ่งสูง ยิ่งยากมากๆๆๆๆ
แนวทางในการ crack
1. ใช้โปรแกรม BitCrack
2. ใช้โปรแกรม Baby-step giant-step
3. ใช้โปรแกรม Pollard Kangaros
4. อื่นๆ ได้ทุกวิธีทาง
วิธีการแคร็ก puzzle #64
ใช้โปรแกรมชื่อ bitcrack แคร็ก puzzle #64
ดาวโหลดได้ใน
https://github.com/brichard19/BitCrackbitcrack เป็นโปรแกรมที่ใช้ GPU หรือ กราฟฟิกส์การ์ด ในการคำนวน ทำให้คำนวณเร็วกกว่าใช้ CPU มากหลายเท่าตัว
bitcrack มี 2 โปรแกรมชื่อ cuBitcrack.exe กับ clBitcrack.exe
cuBitcrack.exe นำหน้าด้วย CU เป็นตัวที่ใช้กับกราฟฟิกการ์ดยี่ห้อ NVIDIA รุ่นกลางๆถึงสูง
clBitcrack.exe นำหน้าด้วย CL เป็นตัวที่ใช้ระบบ OpenCL ใช้ได้กับกราฟฟิกส์การ์ส่วนใหญ่ รวมถึง NVIDIA ด้วย
วิธีการ brute force attach คือการคำนวน หรือสุ่ม private key ขึ้นมาแล้วทำการเข้ารหัสเปลี่ยนเป็น address แล้วก็เทียบกับ address เป้าหมาย ถ้ามันใช่ตรงกัน ก็คือใช่เลย private key
โปรแกรม bitcrack ทำงานโดย
คำสั่งในการใช้
ใช้ GPU Nvidia CUDA
cuBitcrack.exe 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN
ใช้ GPU OpenCL
clBitcrack.exe 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN
ตัวอย่างการแคร็ก bitcoin ภายใน 5 นาที
ตัวอย่างการแคร็ก private key ของ puzzle #40
คำสั่ง
cuBitcrack.exe -gpu -o output.txt --keyspace 8000000000:FFFFFFFFFF 1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv
แล้วรอ 5 นาที ถึง 10 นาที
ถ้าไม่มี GPU จะเป็นการใช้ CPU คำนวน จะนานกว่า 2-4 เท่า
คำสั่ง
clBitcrack.exe -o output.txt --keyspace 8000000000:FFFFFFFFFF 1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv
แล้วรอ 15 นาที ถึง 30 นาที
ลองแล้ว คุณจะแกะรหัสได้ภายใน 10 นาที เมื่อพบรหัสแล้ว ก็เอาโค้ดเข้าถึง bitcoin แล้วโอนออกได้เลย
หลังจากทดลองทำสำเร็จ คุณก็เอาวิธีการเดียวกันนี้ไปทำกับ puzzle #64 ถ้าสามารถค้นหาได้สำเร็จ คุณก็ทำการโอนออกเข่าไปในบัญชีของคุณได้เลย
หรือ puzzle หมายเลขอื่นๆ ก็สามารถใช้วิธีเดียวกันนี้ได้เลย
คำนวนระยะเวลาการสแกน โดยใช้ bitcrack
สมุตติว่า GPU กราฟฟิสกการดของคุณสามารสแกนได้ วันละ 2^40 Key(แอดเดรส) ต่อวัน คุณจะใช้การคำนวนคนเดียวที่
ช่วงคื 2^63 ถึง 2^64
คิดเป็นเลข 9223372036854775808 ถึง 18446744073709551616
(2^64 จะใช้ 18446744073709551616 ลบออก -1 เหลือ 18446744073709551615)
ตัวเลข Hex = 8000000000000000 ถึง FFFFFFFFFFFFFFFF
ตัวเลขในช่วง 64 บิต คือ มีจำนวน 9223372036854775808 หมายเลข หรือ = 9 Quintillion
สแกนได้วันละ 2^20 = 1048576 แอดเดรส (1 billion = 1 พันล้าน key)
จะต้องใช้เวลา = 8796093022208 วัน
สแกนได้วันละ 2^25 = 33554432 แอดเดรส (1 billion = 1 พันล้าน key)
จะต้องใช้เวลา = 274877906944 วัน
สแกนได้วันละ 2^30 = 1073741824 แอดเดรส (1 billion = 1 พันล้าน key)
จะต้องใช้เวลา = 8589934592 วัน
สแกนได้วันละ 2^40 = 1099511627776 แอดเดรส (1 trillion key)
จะต้องใช้เวลา = 8388608 วัน
ทำไมตัวเลชมันน้อยจัง ผมคำนวนผิดหรือเปล่าเนี่ย จำได้ว่าเคยคิดแล้วได้นานกว่านี้นะ
โปรแกรม bitcrack มีการรวมตัวกันแสกน private key โดยแบ่งให้ตามงานที่แต่ละคนทำ ช่วยสแกนมากได้มาก สแกนน้อยได้น้อย เรียกว่ากลุ่ม 64 bit
วิธีการแคร็ก puzzle #120
ใช้โปรแกรมชื่อ Kangaroo แคงการู จิงโจ้ เป็นชื่อของ อัลกอริทึ่มที่ใช้ในการคำนวน ชื่อเต็มคือ Pollard's kangaroo
มูลค่าเงินรางวัล puzzle #120 หาไขปริศนาได้ จะได้ 1.60 bitcoin (มูลค่าตอนโพสนี้คือ 2,933,240.20 Thai Baht )
Kangaroo ดาวนโหลดได้ที่
https://github.com/JeanLucPons/Kangarooโปรแกรม Kangaroo ใช้แกะรหัสได้เฉพาะ puzzle ที่มี รหัส publick key เท่านั้น
Kangaroo จะใช้ publick key แปลงเป็น publick point (หมายเลข) แล้วใช้อ้างอิงในการ
หลักการหยาบๆ ของ Kangaroo ก็คือ มันจะคำนวนจุดมา 2 จุด แล้วคำนวน แล้วก็กระโดด jump ก็ข้ามไปตามสูตรอัลกอริทึ่มของมัน แล้วก็ถ้า เกิดการชนกัน 2 จุดของจุด มาบรรจบกัน ก็จะเจอ private key ประมาณนี้
Kangaroo จะใช้ได้เฉพาะ address ที่มี publick key
publick key จะแสดงเมื่อ address นั้น มีการโอนเงินออก ก็จะแสดง publick key ให้เห็นด้วย ส่วน address ที่รับเงินเข้ามาแล้ว มีเงินอยู่ใน bitcoin แต่ยังไม่เคยโอนอะไรออก ก็จะไม่มีการแสดงให้เห็น หรือเปิดเผยให้เราเห็น จนกว่าจะมีโอนเงินออก ดังนั้นคนส่วนใหญ่ ก็จะโอนเงินไปเก็บไว้ใน bitcoin ที่ยังไม่เคยโอนเงินเพื่อความปลอดภัย
ดังนั้น puzzle ที่ไม่มี publick key จะใช้ Kangaroo ไม่ได้เพราะไม่มี publick key ให้อ้างอิง
คำสั่ง Kangaroo puzzle #120 17s2b9ksz5y7abUm92cHwG8jEPCzK3dLnT
ต้องใช้ไฟล์ in.txt
ไฟล์ in.txt ใช้ notepad เขียนข้อความดังนี้
800000000000000000000000000000
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
02CEB6CBBCDBDF5EF7150682150F4CE2C6F4807B349827DCDBDD1F2EFA885A2630
บรรทัดแรกคือจุดเริ่มต้นของการสแกน
บรรทัสองคือจุดสิ้นสุดที่ต้องการสแกน
บรรทัดสามคือรหัส publickey หรือ pubkey ของ address ที่ต้องการสแกน
แล้วก็สั่งรัน
Kangaroo.exe in.txt
ออฟชั่นคำสั่ง Kangaroo.exe
-gpu ใช้เมื่อใช้งานกับ GPU ในการคำนวณ(ถ้าไม่ใส่ตัวนี้ จะเป็นการแสกนโดยใช้ CPU ในการประมวลผล
-d คือ DP method ระยะห่างระหว่าง 2 จุด ที่ใช้คำนวณ
-o คือ output result จะให้เขียนออกมาใส่ผลการค้นหาออกมาในไฟล์ชื่ออะไร
ตัวอย่างคำสั่ง
Kangaroo.exe -gpu -o output.txt input.txt
โปรแกรม BSGS หรือ Baby Step Giant Step for SECPK1
อัลกอริทึ่ม Baby Step Giant Step เป็นอัลกอรึทึ่มหนึ่ง ที่พัฒนาเพื่อแก้ปัญหา puzzle โดยเฉพาะ
BSGS ต้องใช้กับ publickey เหมือนกับใช้โปรแกรม Kangaroo
ดาวนโหลดโปรแกรม BSGS
https://github.com/JeanLucPons/BSGSคำสั่ง
bsgs.exe in.txt
ไฟล์ in.txt
40000000
49dccfd96dc5df56487436f5a1b18c4f5d34f65ddb48cb5e0000000000000000
49dccfd96dc5df56487436f5a1b18c4f5d34f65ddb48cb5effffffffffffffff
0459A3BFDAD718C9D3FAC7C187F1139F0815AC5D923910D516E186AFDA28B221DC994327554CED887AAE5D211A2407CDD025CFC3779ECB9C9D7F2F1A1DDF3E9FF8
โปรแกรม VanitySearch
ดาวนโหลด
https://github.com/JeanLucPons/VanitySearchใช้งาน VanitySearch คล้าย bitcrack
คำสั่ง
VanitySearch.exe 16jY7qLJnxb7CHZyqBP8qca9d51gAjyXQN
ทดสอบ
VanitySearch.exe 16jY7qLJn
วิธีอื่นๆ
คุณสามารถ
วิธีคำนวนด้วยช่องโหว่งของ bitcoin
ใช้ลองกับ bitcoin จริงได้ใหม
ได้ครับ ลองได้เลย
เลือกเอา bitcoin ใหนก็ได้มาลองดูครับ
เช่น
bitcoin แอดเดรสแรก 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
cubitcrack.exe 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
หรือ
clbitcrack.exe 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
ใครที่มี GPU กราฟฟิกส์การด ก็ลองเอามาเสี่ยงสแกนดู
เพราะการขุด bitcoin โดยการใช้ GPU ในคอม มันจบไปแล้วเพราะขุดยากมาก ต้องใช้เครื่อง ASIC เฉพาะจะดีกว่า
ส่วน GPU โดยมากเขาจะเอาไปขุด Ethereum กันมากกว่า
สิ่งที่ท้าทาย
ความเป็นไปได้มีในชาติหน้า ทำอย่างไรจะให้มันเกิดในชาตินี
เว็บไซทอ้างอิง
เว็บบอร์ด
bitcointalk.orgกระทู้ ล่าสุด
== Bitcoin challenge transaction: ~100 BTC total bounty to solvers! ==UPDATED==
https://bitcointalk.org/index.php?topic=5218972.0กระทู้เก่า(เก่ามาก)
Bitcoin puzzle transaction ~32 BTC prize to who solves it
https://bitcointalk.org/index.php?topic=1306983.0https://bitcointalk.org/index.php?topic=1305887.0https://bitcointalk.org/index.php?topic=5166284กระทู้โปรแกรม bitCrack, Kangaroo
https://bitcointalk.org/index.php?topic=4453897.0https://bitcointalk.org/index.php?topic=5244940.0https://bitcointalk.org/index.php?topic=5173445.0https://bitcointalk.org/index.php?topic=5112311.0https://bitcointalk.org/index.php?topic=5322040.0https://bitcointalk.org/index.php?topic=5328080.0เว็บ Bitcoin Puzzle
https://privatekeys.pw/puzzles/bitcoin-puzzle-txเว็บแปลงรหัส
https://www.rapidtables.com/convert/number/hex-to-decimal.htmlhttps://www.rapidtables.com/convert/number/decimal-to-hex.htmlhttps://emn178.github.io/online-tools/sha256.htmlYoutube แนะนำให้ดู
DEF CON 23 - Ryan Castellucci - Cracking CryptoCurrency Brainwallets
The Eleventh HOPE (2016): "Stealing Bitcoin with Math"
CONFidence2015 - How to Steal Bitcoins (Daniel Shearer, Nick Zeeb)
PDF แนะนำให้อ่าน
https://rya.nc/files/cracking_cryptocurrency_brainwallets.pdfhttps://news.webamooz.com/wp-content/uploads/bot/offsecmag/151.pdfเว็บความรู้
https://learnmeabitcoin.com/technical/public-keyhttps://hackernoon.com/hacking-a-bitcoin-wallet-642u36saกลุ่ม bitcrack รวมตัวกันสแกน
http://ttdsales.com/64bit/login.phpดาวนโหลดโปรแกรม
https://github.com/brichard19/BitCrack/releaseshttps://github.com/JeanLucPons/Kangaroo/releaseshttps://github.com/JeanLucPons/BSGS/releaseshttps://github.com/JeanLucPons/VanitySearch/releasesอัลกอริทึ่ม
https://en.wikipedia.org/wiki/Pollard%27s_kangaroo_algorithmhttps://en.wikipedia.org/wiki/Baby-step_giant-stephttps://asecuritysite.com/encryption/babyคำเตือน
คุณอาจจะไม่ได้อะไรเลย(เสียเวลา)ในการแคร็ก bitcoin (เพราะมันยากมาก ไม่มีความเป็๋นไปได้เลย)
กระทู้นี้อาจจะอยู่ยาวไปอีก 5 ปีก็ได้ เพราะกว่าจะมีคนแคร็กได้นานมาก
อย่างในบอร์ดฝรั่ง ตั้งแต่ปี 2015 ถึง 2021 ก็มีคนแคร็กได้ไม่ถึงครึ่ง
ถ้ามีโพสเยอะ อาจจะต้องตั้งขึ้นกระทู้ใหม่อัพเดทปีต่อปี
ขอทุกคนให้โชคดี
ปล. เขียนผิดถูกยังไง ช่วยแจ้งด้วยนะครับ ผมจะได้แก้ไข ไม่ใช่ guru ทางด้านนี้โดยเฉพาะ