บทความนี้ post ลง facebook เมื่อวันที่ 26 Jun 2022 => link
จุดเด่นของ chai blockchain คือเป็น blockchain ที่ต้องการ decentralized database หมายความว่าเครื่อง PC หรือ node ใดๆ ก็ตามที่ต้องการจะเป็นส่วนหนึ่งของ chai blockchain จำเป็นต้อง sync database ของ blockchain ให้ complete ก่อนจึงจะสามารถดำเนินกิจกรรมใดๆ ก็ตามกับ chia blockchain ได้
ข้อดีของวิธีการแบบนี้ก็คือเราสามารถติดต่อ database ได้เร็วขึ้น มันจะไม่เหมือนระบบเดิมๆ คือมี database server อยู่ตัวเดียวแล้ว client แห่กันไป connect กับ server เพียงตัวเดียว ... ถ้า server เสียชีวิต system ทั้งระบบก็จะ down ทันที
เนื่องจาก chia blockchain เป็นของฟรี … ดังนั้นถ้าเราจะเอา concept นี้มาทำงานในระบบ database ของเราเองล่ะ …. เช่นระบบห้องสมุดของมหาลัยที่มี ห้องสมุดย่อยๆ ของแต่ล่ะคณะ … วิธีการออกแบบ database แบบเดิมก็คือ มี database server อยู่ 1 ตัวแล้ว data ของห้องสมุดย่อยของแต่ล่ะคณะก็จะไปฝัง data ที่ server หลัก เวลานักศึกษาของแต่ล่ะคณะทำการสืบค้นข้อมูลก็ connect เข้า server หลัก ถ้าจำนวนนักเรียนที่มีการสืบค้นมากขึ้น การค้นหาก็จะใช้เวลานานมากขึ้น … เพราะแย่งกันใช้บริการ server หลัก
หรือห้องสมุดของคณะมี server เป็นของตัวเองไปเลย … แต่แบบนี้ทำให้นักศึกษาเวลาหาหนังสือก็ต้องมาหาที่คณะนั้นๆ เท่านั้น พอหาหนังสือไม่เจอก็ต้องไปที่คณะอื่นๆ ซึ่งค่อนข้างเสียเวลามาก
ที่นี้ถ้าเราลองเอา chia blockchain มาแก้ปัญหานี้ล่ะ? …. โดยให้ห้องสมุดของแต่ล่ะคณะมี server ประจำอยู่สาขาล่ะ 1 เครื่อง …. จากนั้นสร้าง chia blockchain ที่เป็นของตัวเองขึ้นมาและให้ server เหล่านั้น connect เข้ากับ chia blockchain … ตัว node ก็จะมี database ที่ทำการ sync ข้อมูลกันตลอดเวลา (sync ยังไงรอแป๊บ)
การที่ database sync กันตลอดเวลาทำให้ data ของห้องสมุดของแต่ล่ะคณะมี data ที่เหมือนกันตลอดเวลานั้นเอง …. เวลาให้นักเรียนทำการสืบค้นข้อมูลก็ให้ทำการสืบค้นที่ server ที่ประจำของแต่ล่ะคณะ … การสืบค้นข้อมูลก็จะได้ผลลัพท์ที่เร็วมากๆ แม้ว่าจะไปค้นหาข้อมูลของคณะอื่นด้วยก็ตาม
แล้ว database มันจะ sync กันยังไงล่ะ …. ทุกครั้งที่ server มีการเปลี่ยนแปลงตัว database เช่น มีหนังสือเข้าใหม่ที่ คณะวิศวะ เราก็ add transaction ของหนังสือใหม่เล่นนี้ลงไปใน mempool … สำหรับ transaction อื่นๆ ที่ต้องการเข้ามา update database ด้วยเหมือนกัน ก็จะถูกมาต่อคิวใน mempool …. ทุกๆ transaction ที่ถูกสร้างก็จะสร้างมาพร้อมกับ puzzle หรือปริศนาฝังอยู่ใน transaction ด้วย
กลับมาที่ตัว node หรือ server ที่ต่อเข้า blockchain … ตัว server พวกนี้นอกจากจะทำการ sync database ตลอดเวลาแล้ว … server ก็จะมีการสร้าง plot file เก็บไว้จำนวนหนึ่งด้วย …data ที่อยู่ใน plot file นี้ก็คือ solution
ตัว chia blockchain จะคอยตรวจสอบ mempool อยู่ตลอดเวลา เมื่อมี transaction ค้างอยู่ใน mempool ตัว blockchain ก็จะเอา transaction ที่อยู่ในคิวแรกออกมา execute โดยเอา puzzle ของ transaction ไปประกาศหา solution กับ server หรือ node ทั้งหลายที่มี plot file อยู่ …. สำหรับ node ไหนที่มี solution ที่ถูกต้องกับ puzzle ตัว node นั้นก็จะได้สิทธิในการ update transaction ลงใน database ของ server นั้นๆ …. และเมื่อ update transaction เสร็จก็จะทำการ sync transaction นั้นไปบอกกับ server ตัวอื่นๆ ที่อยู่ใน chia blockchain … ตัว node ตัวอื่นๆ ก็จะ update transaction นั้นลงไปใน database ของตัวเองด้วย …
หลักการทั้งหมดนี้เราเรียกว่า private database … หรือ private chia blockchain
การเอา puzzle มาประกาศหา solution ก็คือการทำ consensus
การที่ server แข่งกันหา solution ไปเสนอ chia blockchain ก็คือการทำ farm นั้นเอง
หลักการแบบนี้ดีครับ แต่มีข้อเสี่ยงคือ … สมมุติผมเป็น attacker ผมรู้ว่า server ทั้งหมดของมหาลัยมีจำนวน ไม่มาก … ผมจะลงทุนสร้าง plot file ให้มากกว่า server ทั้งหมดที่มี …. แล้วทำการ sync เข้ากับ chia blockchain …ทุกครั้งที่ chia blockchain ประกาศหา solution แล้วหวยมาออกที่ plot file ที่ผมสร้าง .. ตัว transaction ก็จะวิ่งมาที่ server ของผม … ผมก็จะมีโอกาศเปลี่ยนปลง transaction จาก original ไปเป็นตัวใหม่ เช่นหนังสือเข้าใหม่มี 2 เล่ม … ผมก็เปลี่ยนแปลง transaction ให้ update database ว่ามีหนังสือเข้าใหม่เพียงแค่เล่มเดียว … แค่นี้ decentralized database ก็มี data มัวๆ แล้ว ….
วิธีการแก้มีอยู่ 2 อย่าง
1 ต้อง modify chia blockchain ให้มีข้อจำกัดมากขึ้นหรือ hardcode ค่าต่างๆ ใน private chia blockchain เพื่อให้ application สามารถทำงานได้เฉพาะเจาะจงมากขึ้น … แต่คนทำแบบนี้ได้ ต้องเก่งระดับหนึ่งเลยละ
2 ตัว node หรือ server ไม่จำเป็นต้องมี plot file เพียงแต่ทุกครั้งที่ private chia blockchain ประกาศหา solution ก็จะไปหาที่ public chia blockchain หรือ blockchain ที่ farmer ทั่วโลกทำการ farm นั้นเอง … และนี้คือสิ่งที่ world bank กำลังทำอยู่กับ project CW …เนื้อหาในรายละเอียดผมยังไม่รู้ว่ามันทำยังไงคงต้องรอให้ project CW ถูก release ออกมาอย่างเป็นทางการสะก่อน … เราจึงจะเข้าใจมันมากขึ้น
ผมเชื่อเสมอว่า chia blockchain กำลังจะเปลี่ยนแปลงโลกของเรา … ต่อไปอีกไม่นานองค์กรต่างๆ จะมีการเปลี่ยนมาใช้ decentralized database แน่นอน โดยที่ไม่จำเป็นต้องต่อกับ public chia blockchain … มันจึงเป็นเรื่องที่สนุกมากสำหรับผมที่ได้ศึกษาเทคโนโลยีแบบนี้ …
ขอบคุณทุกท่านที่ติดตาม … happy farming ครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น