วันอังคาร, กรกฎาคม 17

รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 4 (Ethereum Blockchain)

หลักจากที่เรารู้จักส่วนประกอบต่างๆในโลกของ ethereum อย่างเช่น บัญชีผู้ใช้ การส่ง transaction และ message
ในบทความนี้เราจะมาดูว่า ethereum ออกแบบ
สถาปัตยกรรมของ blockchain และวิธีตรวจสอบว่าความถูกต้องของแต่ละบล็อคที่สร้างอย่างไรบ้าง

ในแต่ละบล็อคจะประกอบไปด้วยข้อมูลหลักๆดังนี้

1.เลขรายการ transaction ที่เกิดขึ้น ณ ขณะที่บล็อคถูกสร้างขึ้นมา

2.สถานะล่าสุดของข้อมูล ณ ขณะที่บล็อคถูกสร้างขึ้นมา

3.เลขที่ของบล็อคซึ่งจะเป็นค่าสูงสุดของจำนวนบล็อคที่มีอยู่ในระบบ ณ ขณะที่บล็อคถูกสร้างขึ้นมา

4.ค่า difficulty ใช้สำหรับคำนวณความยากของสูตรที่ให้ miner ทำการประมวลผลเพื่อสร้างบล็อคใหม่ต่อไป ซึ่งค่า difficultyจะเพิ่มขึ้นทุกครั้งที่มีบล็อคใหม่เกิดขึ้น จึงจะเห็นได้ว่ายิ่งมีบล็อคในระบบมากเท่าไหร่ miner ก็จะใช้เวลาสร้างบล็อคในระบบมากขึ้น

5.เวลาที่บล็อคถูกสร้างขึ้น (TimeStamp)

6.ค่า Hash ขนาด 256 bit ซึ่งเป็นข้อมูลสำหรับตรวจสอบว่าบล็อคที่สร้างมาถูกต้องหรือไม่

6.1 mixHash ค่า hash ที่เกิดจากการคำนวณ proof of work(PoW) ของ mining โดยใช้ Ethash Algorithm

6.2 parentHash ค่า hash ของบล็อคก่อนหน้า

รูปตัวอย่างการเก็บข้อมูลใน 1 บล็อค

วิธีตรวจสอบว่าบล็อคที่เกิดในระบบถูกต้องหรือไม่

1.ตรวจสอบบล็อคก่อนหน้าที่ติดกันก่อนว่าเป็นบล็อคที่ถูกต้องหรือไม่

2.เวลาที่บล็อคถูกสร้างขึ้นต้องมากกว่าเวลาของบล็อคก่อนหน้า

3.มีค่า hash ที่ผ่านมาจากการคำนวณ proof of work (PoW) โดยใช้ Ethash Algorithm

(สำหรับผู้ที่สนใจอยากศึกษาเพิ่มเติมว่า Ethash Algorithm สามารถอ่านเพิ่มเติมได้ที่ yellow paper หัวข้อ Appendix J. Ethash ครับ)

4.สถานะเริ่มต้นในบล็อค S[0] มีข้อมูลตรงตามสถานะสุดท้ายของบล็อคก่อนหน้า S_FINAL

5.ค่า gas ที่ใช้ในการทำ transaction ต้องไม่เกินค่า gas limit ที่กำหนดไว้

รูปตัวอย่างการเก็บข้อมูล Transaction และ State ใน 1 บล็อค

สำหรับผู้ที่สนใจข้อมูลเกี่ยวกับ Ethereum สามารถอ่านเพิ่มเติมได้ที่นี้ครับ

https://github.com/ethereum/wiki/wiki/White-Paper

https://ethereum.github.io/yellowpaper/paper.pdf

Facebook Comments