หลังจากที่ Shapella อัพเกรดนั้นผ่านไปได้ด้วยดี (เกี่ยวกับการทำให้สามารถถอน ETH จากการ Staked ได้) การอัพเกรด Ethereum ในครั้งต่อไปคงจะหนีไม่พ้นเรื่องการ Scaling ซึ่งจะเป็นอะไรไปไม่ได้นอกจาก EIP-4844 (AKA. Proto-danksharding) ซึ่งเป็นการเปลี่ยนแปลงรูปแบบการบันทึกข้อมูลจาก Calldata เป็น blobs data ซึ่งจะแยก fee market ของตัวเองทำให้ค่า gas ลดลงอย่างมาก (ขอไม่ลงรายละเอียดมากนัก) และมีการพูดถึงว่า EIP-4844 จะทำให้รองรับธุรกรรมได้มากขึ้น ซึ่งวันนี้ผมจะมาลองเจาะลึกว่าจำนวน TPS จะสามารถเพิ่มขึ้นได้เท่าไหร่
Data availability throughput
ขออธิบายเบื้องต้นง่ายๆก่อนว่าแต่ก่อนธุรกรรมทั้งหมดจะไปกองรวมอยู่ใน Execution layer ทำให้หากราคาค่า gas ของ L1 สูงจะทำให้เวลาทำธุรกรรมแพง พอการทำธุรกรรมเยอะก็เกิดความแออัด ทำให้ธุรกรรมล่าช้า
แต่ blobs data ข้อมูลต่างๆจะลงมาเก็บที่ DA layer (ในทางเทคนิคก็คือ ส่วนนึงของ Consensus layer นั้นแหละ) โดยหากเราต้องการจะรู้ว่า TPS ของมันจะอยู่ที่เท่าไหร่ เราจะต้องรู้ว่า Target และ Max ของ blobs ต่อ slot คือเท่าไหร่ จากข้อมูลที่ผมหาเจอคือ Target 0.25 MB ต่อ Slot และ limit ที่ 0.5 MB ต่อ Slot (ในช่วงเริ่มต้น และ สามารถปรับให้รองรับ blobs data ให้มากขึ้นได้ในภายหลัง)


1 blobs ต่อ slot เท่ากับ 131,072 byte = 0.125 MB 2 blobs ต่อ slot เท่ากับ 262,144 byte = 0.25 MB
หมายความว่าถ้าเป็นอย่างที่บนความด้านบนบอก 1 slot จะรองรับ Target ที่ 2 blobs และ Max 4 blobs ซึ่งผมเข้าใจว่าในช่วงแรกหลังจากการ implement EIP-4844 จะรองรับเท่านี้

แต่สามารถปรับแต่งเพื่อให้รองรับ blob ต่อ slot ได้มากขึ้น โดยมีการพูดถึงตัวเลข Target 1 MB และ max 2 MB ต่อ slot หมายความว่า Target จะอยู่ที่ 8 blobs (1,048,576 byte) และ max อยู่ที่ 16 blobs (2,097,152 byte) ต่อ 1 slot

Size ต่อ 1 ธุรกรรมของ blobs data จะอยู่ที่ราวๆ 300-400 byte ต่อ 1 ธุรกรรม (กรณีที่ยังไม่มีการ Compress data ให้เล็กลง)

ขอบคุณภาพจาก https://docs.google.com/spreadsheets/d/1UlxKC98STwN-AoonytC-qOscZ_99fAMpMvB6EfGGe9E/edit#gid=0

TPS assumption
ตารางต่อไปนี้จะเป็นการคาดเดาว่า หลังการอัพเกรด DA TPS บน Ethereum โดยผมจะแยกเป็น 3 แบบ และ แยกเป็นแบบ Non-optimize และ แบบ optimize data จนขนาดเล็กที่สุด จะทำได้ประมาณเท่าไหร่ ลองไปดูกันเลย
Non-optimize
Avg txn จะอยู่ที่ 400 byte ต่อ 1 ธุรกรรม Erc-20 จะอยู่ที่ 200 byte ต่อ 1 ธุรกรรม ETH transfer จะอยู่ที่ 100 byte ต่อ 1 ธุรกรรม


Optimize
Avg txn จะอยู่ที่ 50 byte ต่อ 1 ธุรกรรม ERC-20 จะอยู่ที่ 23 byte ต่อ 1 ธุรกรรม ETH transfer จะอยู่ที่ 13 byte ต่อ 1 ธุรกรรม

ค่า gas ลดลงมากแค่ไหน ??????
ค่า gas หลังจากการอัพเกรด EIP-4844 เรียกได้ว่าแทบจะเป็นผงเลยทีเดียวอ้างอิงจากตารางด้านล่าง

หากเราดูตารางเปรียบเทียบระหว่าง ก่อน และ หลังอัพเกรด EIP-4844 (ถ้าหากข้อมูลนี้ถูกต้อง) ราคาจะลดลงจากเดิม 100 เท่าพอดี
Wen EIP-4844 ????
Protolamda ได้ทำการทำนายไว้ช่วงปลายปี 2022 ว่า EIP-4844 จะมีการปรับใช้ภายในปีนี้ (2023) แต่ Timeline ยังไม่แน่ชัด

เพิ่มเติมจาก Podcast ของ Bankless มีการถามเรื่องการอัพเกรดครั้งต่อไป ซึ่ง Tim beiko จากทีม Ethereum Foundation บอกว่าจะเกิดขึ้นภายในปีนี้ หรือ แบบ Consevative ก็จะเป็นปีหน้า อ้างอิง นาทีที่ 1:05:55 เป็นต้นไป (ใช้คำว่า within this year or so) โดยการอัพเกรดครั้งนี้เรียกรวมๆว่า Dencun (มาจาก Cancun จาก EL กับ Deneb จาก CL)
Note : EL = Execution Layer และ CL = Consensus Layer

สรุป
การอัพเกรดครั้งนี้จะทำให้ Ethereum scale การทำธุรกรรมได้มากขึ้นหลายเท่ามากๆ และ ค่า gas ก็จะถูกลงเยอะมากๆ นี้เป็นเพียงการคาดเดาว่า Ethereum จะสามารถรองรับธุรกรรมได้มากเท่าไหร่ โดยอ้างอิงจากข้อมูลที่ผมหาได้ทั้งหมด ซึ่งอาจจะมีข้อผิดพลาดได้ เนื่องจากจำนวน TPS จะแปรผันตามประเภทของธุรกรรม ซึ่งหากมีความซับซ้อนมากขนาดข้อมูลก็จะใหญ่ขึ้นตามไปด้วย เพิ่มเติม Timeline การ Implement EIP-4844 ยังไม่แน่ชัดว่าจะเมื่อไหร่ (คาดว่าภายในปีนี้ หรือ ต้นปีหน้า กรณีคิดแบบ Conservative) อย่างไรแล้วหากเพื่อนๆคิดเห็นอย่างไร สามารถพูดคุยแนะนำเพิ่มเติมได้ หรือ มีข้อมูลที่ตกหล่นไป ขออภัย ณ ทีนี้ด้วยครับ
แหล่งข้อมูล
https://docs.google.com/spreadsheets/d/1UlxKC98STwN-AoonytC-qOscZ_99fAMpMvB6EfGGe9E/edit#gid=0
https://eips.ethereum.org/EIPS/eip-4844
https://notes.ethereum.org/@vbuterin/proto_danksharding_faq
https://hackmd.io/@luozhu/SyleCcpti
https://ethereum-magicians.org/t/cancun-network-upgrade-meta-thread/12060

