POW
การสร้างเซิร์ฟเวอร์บันทึกเวลาแบบกระจาย (Distributed Timestamp Server) ที่ทำงานแบบ peer-to-peer จะต้องอาศัยระบบ proof-of-work ซึ่งคล้ายกับ Hashcash ของ Adam Back
ระบบ proof-of-work ทำงานโดยการค้นหาค่า ๆ หนึ่งและเมื่อนำค่านั้นไปคำนวณ hash (เช่น SHA-256) ผลลัพธ์ (hash) จะต้องเริ่มต้นด้วยจำนวน bit ที่ได้กำหนดไว้ โดยความยากในการทำงาน (work) จะเพิ่มขึ้นแบบทวีคูณตามจำนวน bit ที่ต้องการ แต่ในการตรวจสอบความถูกต้องนั้นกับสามารถทำได้โดยการคำนวณ hash เพียงครั้งเดียว
โดยในระบบของบิตคอยน์จะมีการเพิ่มค่า nonce ลงไปในแต่ละบล๊อก จนกว่าจะพบค่าที่ทำให้ hash ของบล็อกเริ่มต้นด้วยจำนวน bit ที่กำหนดไว้ เมื่อใช้พลังประมวลผลเพื่อให้บล็อกสอดคล้องกับ proof-of-work แล้ว บล็อกนั้นจะไม่สามารถแก้ไขได้โดยไม่ต้องทำ proof-of-work ใหม่ เนื่องจากบล็อกใหม่ ๆ จะถูกเชื่อมโยงต่อกันหลังจากบล็อกนั้นแล้ว การแก้ไขบล็อกเดิมจะต้องทำ proof-of-work ใหม่สำหรับบล็อกนั้นและบล็อกทั้งหมดที่ตามมา นอกจากนี้ proof-of-work ยังแก้ปัญหาการตัดสินใจแบบเสียงข้างมากด้วย เพราะการตัดสินใจแบบเสียงข้างมากมักใช้ IP ในการนับโหวต ในระบบแบบนี้สามารถถูกโจมตีได้โดยบุคคลที่สามารถควบคุม IP address ได้ในจำนวนมาก แต่ proof-of-work เป็นเหมือนการใช้กำลังในการประมวลผลในการตัดสินใจแบบเสียงข้างมากจะแสดงโดย chain ที่ยาวที่สุดซึ่งมี proof-of-work ที่ถูกลงทุนไปมากที่สุด หากพลังประมวลผลของ majority เป็นของ node ที่ซื่อสัตย์ chain ของ node ที่ซื่อสัตย์จะเติบโตเร็วที่สุดและจะเหนือกว่า chain อื่น ๆ
เพื่อชดเชยความเร็วของฮาร์ดแวร์ที่เพิ่มขึ้นและความสนใจที่แตกต่างกันในการทำงานของ node และความยากของ proof-of-work จะถูกกำหนดโดยค่าเฉลี่ยทุก ๆ 2016 บล๊อก ซึ่งมีเป้าหมายที่จำนวนบล็อกต่อชั่วโมง หากบล็อกถูกสร้างขึ้นเร็วเกินไป ความยากจะเพิ่มขึ้น หากช้าไปก็จะง่ายขึ้นแทน โดยมีสมการในการปรับดังนี้ New Difficulty = Old Difficulty × (Actual Time / Target Time)
#siamstr