ZMINE BLOG

English English   ไทย ไทย

กว่าจะมาเป็น ZMINE

Share this article

ZMINE เริ่มต้นจากกลุ่มเพื่อนวิศวกรคอมพิวเตอร์ที่ตื่นเต้นกับเทคโนโลยี อยากรู้อยากลองไปเรื่อย จนมาเจอกับเทคโนโลยี Blockchain และ Cryptocurrency

Blockchain มีศาสตร์ที่เกี่ยวของหลายแขนง ทั้งการเขียนโปรแกรม (Programming) การจัดการเครือข่าย (Network) การเข้ารหัส (Cryptography) ไปจนถึงเศรษฐศาสตร์การเงิน ความน่าจะเป็น ฯลฯ

ศาสตร์การ Mining ที่เราสนใจเป็นเพียงเสี้ยวเดียวของเทคโนโลยีบลอคเชนเท่านั้น แต่กลับต้องใช้เวลาศึกษาลองผิดลองถูกมามากมายจนถึงทุกวันนี้ก็ยังเรียนรู้ไม่หมด

เริ่มต้นจากการขุดเหมืองขนาดเล็กเป็นงานอดิเรก ใช้เงินส่วนตัวซื้อ GPU มาขุดกันเอง เตรียม GPU ให้อยู่ในสภาพที่ขุดได้มีประสิทธิภาพสูงสุดทีละการ์ด จัดการเส้นทางระบายความร้อนให้ดี

ช่วงเวลานี้เป็นเวลาที่สดใสง่ายดายสำหรับพวกเรา ทำให้เราอยากขยายขนาดเพิ่มเพื่อเพิ่มรายได้ให้เราโดยตรง แต่ลำพังการลงทุนซ้ำ (Reinvest) จากเงินที่ขุดได้มันช้าเกินไป เราจึงคิดหาช่องทางการต่อยอดลงทุนด้วยโมเดล WRYGC

โมเดล WRYGC (We Rent Your Graphics Card) คือ ให้ลูกค้านำ GPU มาฝากให้เราขุดให้ ได้ผลตอบแทนเท่าไหร่ หักค่าไฟ แล้วแบ่งกันคนละครึ่ง แม้ว่ารายได้ต่อ GPU เราจะหายไปครึ่งหนึ่ง แต่เราได้จำนวน GPU มาใช้ขุดเพิ่มขึ้นเกินสองเท่าตัว

เราเริ่มใช้โมเดลนี้กับเพื่อน ๆ และคนรู้จักก่อน ปรากฏว่าเสียงตอบรับดีมาก เราจึงเดินทางมาถึงขั้นถัดมา เป็นขั้นที่ขนาดเหมืองเพิ่มเป็นระดับ 1,000 GPUs

เมื่อไปถึงระดับ 1,000 GPUs ปัญหาที่รอเราอยู่ค่อยๆแสดงตัวออกมา

ปัญหาแรกที่เรารับรู้ทันทีคือ เราไม่สามารถวางในอาคารที่อยู่อาศัยได้อีกต่อไป ด้วยเหตุผลเรื่องพื้นที่ว่างสำหรับวาง Rigs ไม่พอหรือถึงพอ ก็ไม่สามารถทำให้ Rigs ทำงานอย่างมีประสิทธิภาพได้ ทั้งในด้านของการระบายความร้อนและการเข้าถึงเพื่อซ่อมแซมกรณีที่มี GPU บางตัวหยุดทำงาน

เราแก้ปัญหาด้วยการตั้ง Rigs ใหม่ในโกดังหลังคาสูงขนาดสิบไร่

ปัญหาที่ตามมาคือเวลาในการประกอบและดูแล Rigs ให้ทำงานได้อย่างมีประสิทธิภาพตลอดเวลา ปัญหานี้ทำให้เราต้องตัดสินใจครั้งยิ่งใหญ่ในชีวิต นั่นคือลาออกจากงานประจำมาเพื่อดูแลเหมืองโดยเฉพาะ ตอนนั้นเรากล้าๆกลัวๆ แต่ตอนนี้เรารู้สึกขอบคุณตัวเองมากที่ตัดสินใจเดินทางสายนี้เต็มเวลา

แม้จะออกมาเต็มเวลาแล้วก็ตาม การตรวจสอบการทำงานของ Rigs ด้วยตาเปล่ากลางโกดังก็ยังคงเป็นเรื่องยากมาก เราจึงเริ่มพัฒนา Inhouse Software เพื่อใช้ตรวจจับ Rigs ที่ไม่ทำงาน พร้อมแก้ปัญหาเบื้องต้นด้วยวิธีง่าย ๆ อย่างการสั่ง Restart เฉพาะ Rig นั้น ซึ่งในกรณีที่ยังไม่หาย ระบบจะเตือนพร้อมระบุตำแหน่งของ Rig ที่ไม่ทำงาน ให้เราจัดการซ่อมในขั้นต่อไป

นอกจากนี้ยังมีปัญหาเรื่องความสเถียรของ Internet เนื่องจากเราย้ายเหมืองมาบริเวณปริมลฑล ซึ่งมีความเสถียรของ Internet ไม่ดีนัก เราจำเป็นต้องใช้บริการพร้อมกันหลายเครือข่ายและทำระบบสลับสายทันทีเมื่อสัญญาณ internet ของเครือข่ายใดมีความเร็วต่ำกว่ามาตรฐาน (Load balance)

ตลอดทางที่สร้างผลตอบแทนและความเชื่อมั่นให้ลูกค้า จำนวน Rigs ก็เพิ่มขึ้นเรื่อย ๆ เราได้เรียนรู้สิ่งใหม่ ๆ ตลอดเวลา เราได้เจอและแก้ไขปัญหาที่เราไม่เคยเจอเมื่อครั้งยังเป็นเหมืองขนาดเล็ก ปัญหาของเหมืองระดับ 10,000 GPUs ที่เรายกมาเล่าให้ฟังได้เช่น

ไฟฟ้าที่เราใช้ เดินทางมาถึงจุดที่เรากังวลมาตลอดจนได้ จุดที่เต็มขีดจำกัดที่เรามี เราต้องติดตั้งหม้อแปลงไฟขนาด 5,000kV เพิ่ม แค่การติดตั้งอุปกรณ์ไฟฟ้า ค่าใช้จ่ายก็ไปถึงระดับ 7 หลักแล้ว

ปัญหา Downtime ในระดับ 1,000 GPUs เป็นสิ่งที่เราแก้ไขได้ทันท่วงทีจากการจ้างคนคอยตรวจสอบ 24 ชั่วโมง แต่ในระดับ 10,000 GPUs เราไม่สามารถดูแลได้คลอบคลุมขนาดนั้น เพื่อไม่ให้ลูกค้าเสียผลประโยชน์จาก Downtime เราจึงใช้นโยบาย Zero Down Time Policy เป็นนโยบายที่เราจะเป็นเจ้าของ GPU สำรองไว้ 20% ของ GPU ลูกค้าทั้งหมด ในกรณีที่ GPU ลูกค้าไม่ทำงาน ทีมงาน ZMINE จะยังคงแก้ไขให้เร็วที่สุดเช่นเดิม แต่ช่วงเวลา Downtime ของ GPU ตัวนั้น เราจะนับเป็น Downtime ของ GPU ที่ ZMINE สำรองไว้ ทำให้เราสามารถการันตีได้ว่า ฝาก GPU กับ ZMINE ได้เวลา Uptime 100% ตลอด 24/7 แน่นอน

แม้เราจะตั้งเหมืองในโกดังหลังคาสูงขนาดสิบไร่ แต่การตั้ง GPU จำนวน 10,000 GPUs ที่ให้ลมผ่านโดยสะดวกนั้น ทำให้พื้นที่โกดังดูจะไม่พอเสียแล้ว เราจำเป็นต้องสร้างอุโมงค์ลมระบายอากาศขนาดใหญ่ ครอบชั้นวาง Rigs เพื่อรวบชั้นวาง Rigs ให้วางใกล้กันได้มากขึ้น ซึ่งโครงสร้างของอุโมงลมก็มีค่าใช้จ่ายในระดับ 7 หลักอีกเช่นกัน

สมัยที่เหมืองยังมีขนาดเล็ก GPU เข้ามาให้ติดตั้งวันละประมาณ 10 กว่าชิ้น การ Flash Rom ยังเป็นอะไรที่ทำได้สบายด้วยมือคน แต่ช่วงเวลาที่ GPU มาถึงหลัก 10,000 GPUs หลายครั้งที่เราต้องจัดการ GPU ระดับ 100 ชิ้นต่อวัน การติดตั้งช้าหนึ่งวัน อาจหมายถึงรายได้ที่หายไปในระดับ 10 ETH

ความโชคดีประการหนึ่งของเราคือ พวกเรามีความรู้พื้นฐานทางวิศวกรรม เราจึงออกแบบ Process ตั้งแต่การลำเลียง GPU ที่มาส่งหน้าเหมือง จนไปถึงขั้นตอน Mining Software Initiation
Process ดังกล่าว สามารถรองรับการติดตั้ง GPU มากกว่า 500 ชิ้นในหนึ่งวัน

นอกจากปัญหาในระดับกายภาพดังกล่าวไปข้างต้นแล้ว เราประสบกับปัญหาด้านเทคนิคต่าง ๆ อีกมากมาย หนึ่งในนั้นคือการเป็นเจ้าของ Hash Rate มากเกินไปสำหรับหนึ่งเหรียญ การระดมแรงขุดไปที่เหรียญใดเหรียญหนึ่งจะสร้างค่า Difficulty ให้เหรียญนั้นมหาศาล แม้ว่าเราจะประเมินเหรียญนั้นว่ามีค่าในอนาคตมากแค่ไหนก็ตาม เราไม่สามารถใช้แรงขุดของเราไปกับเหรียญเดียวได้

รวมถึงความเสี่ยงเรื่องอัตราแลกเปลี่ยนของเหรียญที่เราขุดกับเหรียญที่เราจ่ายให้ลูกค้า เราขุด AltCoin แต่จ่ายเป็น BTC ทำให้ช่วงเวลาที่ถือเหรียญ AltCoin เพื่อรอแลกเป็น BTC เราได้เปิดความเสี่ยงด้านอัตราแลกเปลี่ยนไว้เต็มที่ บางช่วงเวลาที่ตลาดมี Volatility สูงมากๆ เวลาที่ใช้แลกเปลี่ยนต่างกันหนึ่งนาที อาจให้ผลแตกต่างกันได้ถึงกว่า 10%

เราต้องศึกษาศาสตร์อื่นนอกจากวิศวกรรม เพื่อแก้ปัญหาเหล่านี้เราประยุกต์ทฤษฎีทางการเงินและการบริหาร Portfolio เข้ามาจัดการ เราใช้ Efficient frontier ในการตัดสินใจแจกจ่ายแรงขุดในแต่ละเหรียญ เราไม่ส่งแรงขุดไปทีเดียวเต็มแรงแต่จะทยอยนำแรงขุดเข้าครั้งละย่อยๆแบบ micro succession หรือการกระจายแรงขุดในลักษณะ uniform random หรือ clumped ตามความเหมาะสมจากการคำนวณของระบบ

เราคำนวนค่า Co-Efficient ของเหรียญเทียบกับ BTC ซึ่งค่านี้เราจะให้น้ำหนักกับค่านี้มากเป็นพิเศษในช่วงเวลาที่ตลาดผันผวนมาก ๆ และการกำหนด Risk Limitation ว่าเราจะไม่ถือเหรียญใดเหรียญหนึ่งมากเกินไปเพื่อจำกัดความเสียหายในกรณีที่เราตัดสินใจผิดพลาด

เมื่อทำการ Optimize ตัวแปรเหล่านี้พร้อมตัวแปรอื่น ๆ ที่เราไม่เปิดเผย เราจะได้ผลลัพท์สุดท้ายเป็นการจัดสรรแรงขุดแบบ Over Time เพื่อให้ได้ผลลัพท์การขุดที่ทรงประสิทธิ์ภาพที่สุดสู่ BTC Address ของลูกค้า

อาจไม่รู้วิธีพับ แต่วันนี้ก็บินมาไกล…

วันนี้ เราจะมุ่งหน้าสู่ 100,000 GPUs อาจมีอุปสรรคอีกมากมายที่จะผ่านเข้ามา เราจะผ่านมันไปด้วยประสบการณ์ที่สะสมมาทั้งหมด และความอยากรู้อยากลองที่เรามี

ร่วมเดินทางกับพวกเรา ZMINE: real hardware real mining.