BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

เปรียบเทียบ Cosmos กับ Bitcoin และ Ethereum

以太坊爱好者
特邀专栏作者
2019-06-22 12:39
บทความนี้มีประมาณ 11287 คำ การอ่านทั้งหมดใช้เวลาประมาณ 17 นาที
หลายยุคของ blockchain
สรุปโดย AI
ขยาย
หลายยุคของ blockchain

หมายเหตุบรรณาธิการ: บทความนี้มาจากผู้ที่ชื่นชอบ Ethereumหมายเหตุบรรณาธิการ: บทความนี้มาจากPreethi Kasireddyผู้ที่ชื่นชอบ Ethereum

(WeChat ID: ethfans), ผู้เขียนต้นฉบับ: Preethi Kasireddy, ที่มา:

หมายเหตุบรรณาธิการ: บทความนี้แสดงการเปรียบเทียบโดยละเอียดของบล็อกเชนในเครือข่าย Cosmos กับ Bitcoin และ Ethereum ผู้เขียนเริ่มต้นจากเลเยอร์สแต็กของระบบบล็อกเชน วิเคราะห์จุดทางเทคนิคของ Bitcoin และ Ethereum บนเลเยอร์สแต็กต่างๆ และสุดท้ายกลับไปที่บล็อกเชนในเครือข่าย Cosmos คำอธิบายเชิงแนวคิดนั้นชัดเจนเป็นพิเศษ ซึ่งเป็นศิลปะการอธิบายที่หาได้ยาก

สารบัญ


  • เนื่องจากบทความยาวเกินไป เราจึงแนบสารบัญไว้ที่ต้นบทความ

  • สารบัญ

  • คอสมอสคืออะไร?

  • รู้เบื้องต้นเกี่ยวกับโครงสร้าง Blockchain

  • โครงสร้างชั้นสแต็ค Bitcoin

  • โครงสร้างเลเยอร์ Ethereum stack

  • สร้างแอปพลิเคชันบน Bitcoin และ Ethereum

  • โครงสร้าง Cosmos blockchain

  • ชั้นเครือข่ายคอสมอส

  • สรุปแล้ว


ชั้นแอปพลิเคชันคอสมอส

สรุปแล้ว

อุตสาหกรรม cryptocurrency ไม่เคยหยุดนิ่ง

ทุกอย่างเริ่มต้นด้วยการถือกำเนิดของ Bitcoin ในปี 2010 เมื่อ Bitcoin ออกมาครั้งแรก ทุกคนคิดว่ามันเป็นจอกศักดิ์สิทธิ์ของสกุลเงินดิจิทัล สิ่งที่เคยคิดว่าเป็นไปไม่ได้ได้กลายมาเป็นความจริงแล้ว: เครือข่ายการชำระเงินแบบ peer-to-peer (P2P) เครือข่ายแรกได้เกิดขึ้นแล้ว

แม้กระทั่งทุกวันนี้ ความไว้วางใจในสิ่งต่าง ๆ ยังคงเป็นทรัพย์สินที่หายากและมีค่าที่สุด Bitcoin หลีกเลี่ยงปัญหานี้ด้วยการสร้างระบบที่ "ไม่น่าเชื่อถือ" ระบบแรก แต่นี่เป็นเพียงจุดเริ่มต้นเท่านั้น

ตั้งแต่นั้นมา Bitcoin เป็นตัวกระตุ้นสำหรับนวัตกรรมที่กว้างขึ้นในการเข้ารหัสซึ่งนำไปสู่ระบบการกระจายอำนาจใหม่และโครงสร้างพื้นฐานทางการเงิน: Ethereum, Lightning Network, EOS, Tezos, Maker... รายชื่อยังคงเติบโต

แต่มีโครงการหนึ่งที่โดดเด่น: คอสมอส

ในด้านบล็อกเชน Cosmos คือ "ลูกใหม่" แม้ว่าแนวคิดจะมีมาระยะหนึ่งแล้ว แต่ทีมพัฒนาก็ค่อยๆ พัฒนาเบื้องหลังเพื่อให้แน่ใจว่าการออกแบบและการใช้งาน Cosmos นั้นถูกต้อง สิ่งนี้ทำให้ Cosmos เพิ่งเปิดตัวสู่สาธารณะ

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

คอสมอสคืออะไร?

คอสมอสทำงานอย่างไร?

Cosmos แตกต่างจาก Bitcoin และ Ethereum อย่างไร?

คุณสมบัติของคอสมอสคืออะไร?

ฉันรู้จักทีมคอสมอสมาเกือบสองปีแล้ว พูดตามตรง เมื่อฉันได้ยินสิ่งที่พวกเขาทำเป็นครั้งแรก ฉันไม่มีความรู้เท่าคนอื่นๆ เกี่ยวกับแนวคิดนี้

แต่เมื่อฉันได้รู้จัก Cosmos มากขึ้น ฉันก็เริ่มชื่นชมมันมาก และฉันไม่ได้พูดเพียงเพื่อเรียกร้องความสนใจ ฉันพูดจากใจจริง ๆ

ฉันหลงใหล Cosmos มาก ดังนั้นเราจึงตัดสินใจสร้างแอป TruStory เป็นแอป Cosmos blockchain (บทละคร: ฉันจะอธิบายว่าทำไมเราถึงตัดสินใจเช่นนี้อย่างละเอียดในบทความหน้า)

ถึงกระนั้นก็ยังมีความสับสนมากมายเกี่ยวกับเอกภพ ดังนั้นฉันจึงตัดสินใจเขียนบทความเพื่อสิ่งนั้น ฉันต้องการให้ผู้อ่านเข้าใจอย่างลึกซึ้งยิ่งขึ้นว่า Cosmos คืออะไรและที่ใดในโลกของ blockchain

คุณพร้อมที่จะเริ่มหรือยัง? ทำจิตใจให้ปลอดโปร่ง สวมหมวกแห่งความคิด และคาดเข็มขัดนิรภัย เรากำลังจะขับรถ

คอสมอสคืออะไร?

Cosmos กำหนดตัวเองดังนี้:

"เครือข่ายแบบกระจายศูนย์ที่ประกอบด้วยบล็อกเชนคู่ขนานอิสระหลายตัว ซึ่งแต่ละเครือข่ายใช้อัลกอริทึมที่สอดคล้องกันของ BFT (เช่น: ฉันทามติของ Tendermint)"

ว้าวช่างเป็นปาก! เราจะแบ่งคำจำกัดความนี้ออกเป็นส่วนๆ ที่เข้าใจง่าย

"เครือข่ายกระจายอำนาจของ Blockchains คู่ขนานอิสระ"

ฉันสันนิษฐานว่าผู้อ่านรู้เรื่อง blockchain ดีอยู่แล้ว! ถึงกระนั้นสรุปโดยย่อ:

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

ทั้ง Bitcoin และ Ethereum เป็นบล็อกเชน และ Cosmos เป็นเครือข่ายบล็อกเชนที่ประกอบด้วยบล็อกเชนจำนวนมากที่ทำงานแบบคู่ขนานกัน

หากคุณไม่เข้าใจสิ่งที่ฉันเพิ่งพูดไป คุณควรอ่านข้อมูลพื้นฐานเพิ่มเติมเกี่ยวกับบล็อกเชนก่อนที่จะเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำงานของ Cosmos (หมายเหตุบรรณาธิการ: สำหรับการแปลภาษาจีน ดูไฮเปอร์ลิงก์ที่ส่วนท้ายของบทความ "บล็อกเชนคืออะไร")

"บล็อกเชนแต่ละอันใช้อัลกอริธึมฉันทามติ BFT"

BFT เป็นตัวย่อของ "Byzantine Fault-Tolerant" บล็อกเชนที่ทนทานต่อข้อผิดพลาดของไบแซนไทน์สามารถรับประกันได้ว่าเครือข่ายยังคงมีคุณสมบัติของ "ความปลอดภัย" และ "กิจกรรม" เมื่อบางโหนดในเครือข่ายหยุดทำงานและ/หรือทำสิ่งชั่วร้าย (เรียกว่า "โหนดไบแซนไทน์") ความปลอดภัยและกิจกรรมสามารถรับประกันได้ว่าแต่ละโหนดในเครือข่ายบล็อกเชนจะรักษาสถานะเดียวกัน

Interlude: หากคุณต้องการความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับความปลอดภัยและความมีชีวิตชีวา โปรดอ่านบทความของฉันเกี่ยวกับฉันทามติแบบกระจาย (หมายเหตุบรรณาธิการ: สำหรับการแปลภาษาจีน ดูไฮเปอร์ลิงก์ที่ส่วนท้ายของบทความ "How Distributed Consensus Works, Part-2")

ดังนั้น "อัลกอริธึมฉันทามติ BFT" จึงเป็นอัลกอริทึมที่กำหนดการสื่อสารและการประสานงานระหว่างคอมพิวเตอร์ ทำให้บล็อกเชนไบแซนไทน์มีความทนทาน บล็อกเชนทั้งหมดในเครือข่าย Cosmos ใช้อัลกอริธึมฉันทามติ BFT บางประเภท

อัลกอริทึมที่เป็นเอกฉันท์ของ Bitcoin และ Ethereum ไม่ใช่อัลกอริทึม BFT ทั่วไป ดังนั้นจึงไม่เหมาะกับคำจำกัดความของ blockchain ในเครือข่าย Cosmos (เป็นที่น่าสังเกตว่าแม้ว่าจะไม่ใช่ Byzantine Fault Tolerant แต่ก็ยังเป็นไปได้ที่บล็อกเชน เช่น Bitcoin และ Ethereum จะเข้าร่วมเครือข่าย Cosmos ด้วยขั้นตอนเพิ่มเติมเพียงไม่กี่ขั้นตอน ไม่ต้องกังวลหากคุณพบว่าสิ่งนี้ทำให้งง — เราจะไปที่ ไว้ค่อยศึกษาในเชิงลึกกว่านี้)

Interlude: หากคุณยังไม่รู้ว่า BFT คืออะไร บทความนี้เขียนไว้ชัดเจนแล้ว (หมายเหตุบรรณาธิการ: สำหรับการแปลภาษาจีน ดูไฮเปอร์ลิงก์ที่ส่วนท้ายของบทความ "How Distributed Consensus Works, Part-3")

"อัลกอริทึมฉันทามติ Tendermint"

Tendermint เป็นอัลกอริธึมฉันทามติ BFT ที่เสนอและสร้างโดยนักพัฒนา Cosmos บล็อกเชนในเครือข่าย Cosmos สามารถใช้ฉันทามติของ Tendermint หรืออัลกอริธึมฉันทามติ BFT อื่นๆ เราจะเรียนรู้เพิ่มเติมเกี่ยวกับ Tendermint ในบทความนี้

พูดง่ายๆ ก็คือ เครือข่าย Cosmos เป็นระบบนิเวศที่ประกอบด้วยบล็อกเชนที่ทนทานต่อข้อผิดพลาดของไบแซนไทน์หลายตัวที่ทำงานแบบคู่ขนานกัน บล็อกเชนเหล่านี้ทำงานอย่างเป็นอิสระและสามารถทำงานร่วมกับบล็อกเชนอื่นๆ ได้

ตอนนี้คุณอาจกำลังคิดว่า “ทำไมบล็อคเชนถึงทำงานร่วมกันได้”

คำถามที่ดี! เราจะไปถึงที่นั่นในไม่ช้า แต่ก่อนอื่นเราต้องทบทวนโครงสร้างของบล็อกเชน

รู้เบื้องต้นเกี่ยวกับโครงสร้าง Blockchain

ก่อนที่จะเจาะลึกถึงวิธีการทำงานของบล็อกเชนและการทำงานร่วมกันในระบบนิเวศของ Cosmos เรามาทบทวนพื้นฐานของโครงสร้างบล็อกเชนกันก่อน

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

เครื่องสถานะที่จำลองแบบคือเครื่องสถานะที่กำหนดขึ้นเองที่จำลองแบบหลายเครื่อง แต่เนื่องจากคอมพิวเตอร์แต่ละเครื่องในเครือข่ายรักษาสถานะเดียวกัน จึงทำงานเหมือนเครื่องเดียว

ฟังดูคุ้นๆ ใช่ไหม? เมื่อมองย้อนกลับไปที่คำจำกัดความของ blockchain ด้านบน คำจำกัดความนี้เป็นเพียงการแทนที่ "ฐานข้อมูล" ด้วย "เครื่องสถานะ" และ "ข้อมูล" ด้วย "สถานะ" ฉันเชื่อว่าคุณเข้าใจสิ่งที่ฉันหมายถึง

"Deterministic" สามารถเข้าใจได้ง่ายๆ ว่า เมื่อได้รับอินพุตบางอย่าง เครื่องสถานะจะสร้างเอาต์พุตเดียวกันเสมอ ในระบบบล็อกเชน "การกำหนด" หมายความว่าหากคุณเริ่มต้นจากสถานะที่กำหนดและทำธุรกรรมตามลำดับเดียวกัน คุณจะจบลงด้วยสถานะสุดท้ายเดียวกันเสมอ

เครื่องสถานะที่จำลองแบบเริ่มต้นจากสถานะหนึ่งๆ ธุรกรรมที่ถูกต้องแต่ละรายการจะส่งผลให้เกิดการเปลี่ยนสถานะของระบบเป็นสถานะถัดไป (ซึ่งเหมือนกับการอัปเดตรายการในฐานข้อมูล: หากคุณอัปเดตรายการ ฐานข้อมูลจะย้ายไปยังสถานะใหม่ที่มีรายการข้อมูลที่อัปเดต)

แนวคิดของเครื่องสถานะจำลองมีสามชั้นสแต็ค:

1) ชั้นแอปพลิเคชัน

ชั้นแอปพลิเคชันมีหน้าที่กำหนดการเปลี่ยนสถานะและอัปเดตสถานะเครื่องสถานะหลังจากธุรกรรมเกิดขึ้น

2) ชั้นเครือข่าย

เลเยอร์เครือข่ายมีหน้าที่เผยแพร่ธุรกรรมที่ดำเนินการบนเครื่องสถานะหนึ่งไปยังเครื่องสถานะอื่น ๆ ทั้งหมดในเครือข่าย

3) ชั้นฉันทามติ

ชั้นฉันทามติประกอบด้วยอัลกอริธึมที่รับผิดชอบในการรับรองว่าเครื่องสถานะแต่ละเครื่องจัดเก็บสถานะเดียวกันหลังจากดำเนินการธุรกรรมแล้ว (กล่าวคือ เครื่องสถานะไม่สามารถปลอมแปลงธุรกรรมที่ไม่มีอยู่จริงได้)

3a) ชั้นต่อต้านซีบิล

เครื่องสถานะจำลองที่พยายามทำงานบนเครือข่ายสาธารณะแบบกระจายศูนย์ยังต้องการชั้นที่สี่ (“ชั้นต้านทานซีบิล”) เพื่อให้แน่ใจว่าไม่มีเครื่องสถานะเดียวที่สามารถทำให้เครือข่ายเสียหายได้ หากไม่มีเลเยอร์นี้ เครื่องจักรของรัฐอาจยุ่งเกี่ยวกับรัฐโดยสร้างตัวตนปลอมจำนวนมากเพื่อรับอิทธิพลหรือผลประโยชน์ที่ไม่สมส่วนกับการลงทุน (เช่น เปิดการโจมตีซีบิล)

โดยสรุป แอปพลิเคชันเลเยอร์มีหน้าที่กำหนดสถานะและจัดการการเปลี่ยนสถานะ เลเยอร์เครือข่ายและฉันทามติมีหน้าที่รับผิดชอบในการรักษาสถานะของแต่ละเครื่องให้สอดคล้องกัน (นั่นคือ ตรวจสอบให้แน่ใจว่าข้อมูลในแต่ละฐานข้อมูลในเครือข่ายมีความสอดคล้องกัน) เลเยอร์ Anti-Sybil มีหน้าที่รับผิดชอบในการหลีกเลี่ยงการโจมตีของ Sybil

ตอนนี้ เรามาดูกันว่าเลเยอร์สแต็กเหล่านี้ถูกกำหนดและนำไปใช้ใน Bitcoin และ Ethereum blockchains อย่างไร

โครงสร้างชั้นสแต็ค Bitcoin

1) ชั้นแอปพลิเคชัน

แอปพลิเคชั่นหลักของ Bitcoin คือการทำธุรกรรมแบบ P2P Bitcoin ใช้สคริปต์ (ภาษาแบบเรียงซ้อนและไม่ใช่ภาษาทัวริงที่สมบูรณ์) เพื่อกำหนดและดำเนินการธุรกรรม เมื่อผู้ส่งส่ง bitcoins ผ่านการทำธุรกรรม ผู้ส่งจะใช้สคริปต์เพื่อเข้ารหัสว่าใครเป็นผู้ควบคุมเงิน สคริปต์ประกอบด้วยชุดของ opcodes หรือคำสั่งที่ผู้ส่งสามารถใช้เพื่อระบุเงื่อนไขที่ต้องปฏิบัติตามเพื่อใช้ bitcoin

2) ชั้นเครือข่าย

เมื่อผู้ส่งส่ง bitcoins ไปยังผู้รับ การถ่ายโอนจะต้องออกอากาศไปยังเครือข่ายเพื่อให้นักขุดรวมไว้ในบล็อก Bitcoin ใช้ "โปรโตคอล Gossip" เพื่อให้แน่ใจว่าแต่ละโหนดจะส่งบล็อกหรือธุรกรรมใหม่ทั้งหมดที่ได้รับไปยังเพื่อนบ้าน (เพียร์) โปรโตคอล Gossip เป็นโปรโตคอล P2P ที่รับรองการเผยแพร่ข้อความระหว่างโหนดทั้งหมด โหนดทั้งหมดในเครือข่าย Bitcoin จะส่งธุรกรรมที่ถูกต้องที่ได้รับใหม่ไปยังโหนดข้างเคียงทันที เพื่อให้ธุรกรรมที่จะบรรจุสามารถเผยแพร่ไปยังโหนดส่วนใหญ่ผ่านเครือข่ายเพียร์ทูเพียร์ได้ภายในไม่กี่วินาที

3) ชั้นฉันทามติ

หลังจากส่งต่อธุรกรรมไปยังเครือข่ายแล้ว จำเป็นต้องเพิ่มธุรกรรมนั้นลงในบล็อกเชนเพื่อให้การถ่ายโอนเสร็จสมบูรณ์ (นั่นคือ ให้คอมพิวเตอร์ในเครือข่ายทำธุรกรรม) กระบวนการตรวจสอบธุรกรรมและบรรจุลงในบล็อกเรียกว่า "Nakamoto Consensus" หลักการทำงานของ Nakamoto Consensus สามารถพบได้ในฟอรัมหรือบทความอื่นๆ บทความนี้เป็นไพรเมอร์ที่ดีหากคุณต้องการเจาะลึก

3a) ชั้นต่อต้านซีบิล

ฉันทามติของ Nakamoto อาศัย "หลักฐานการทำงาน" เพื่อป้องกันการโจมตีของซีบิล โดยพื้นฐานแล้ว พลังการคำนวณที่จำเป็นในการสร้างบล็อกใหม่ทำให้โปรโตคอลฉันทามติของ Bitcoin สามารถต้านทานการโจมตีของซีบิลได้ เนื่องจากนักขุดต้องการพลังการประมวลผลจำนวนมากเพื่อสร้างบล็อกถัดไป พวกเขาจึงไม่สามารถ "ปลอมแปลง" ข้อมูลระบุตัวตนหลายรายการได้โดยไม่ลงทุนพลังการประมวลผลจำนวนมาก (และเงิน)

โครงสร้างเลเยอร์ Ethereum stack

1) ชั้นแอปพลิเคชัน

เดิมที Ethereum ได้รับการออกแบบมาให้เป็นแพลตฟอร์มที่สามารถใช้งานแอพพลิเคชั่นแบบกระจายศูนย์ได้ ซึ่งแตกต่างจาก Bitcoin Ethereum มีภาษาระดับสูง (เช่น Solidity) ที่ช่วยให้นักพัฒนาสามารถกำหนดฟังก์ชันเฉพาะของแอปพลิเคชันแบบกระจายศูนย์โดยการเขียนสัญญาอัจฉริยะ EVM (Ethereum Virtual Machine, Ethereum Virtual Machine) เป็นแกนหลักของเลเยอร์แอ็พพลิเคชัน Ethereum EVM ใช้คอมไพเลอร์ EVM เพื่อรวบรวมรหัสสัญญาอัจฉริยะเป็น bytecode ผู้ใช้สามารถอัปโหลด bytecodes ไปยัง blockchain ในรูปแบบของธุรกรรม และ EVM สามารถดำเนินการ bytecodes เหล่านี้ได้ ซึ่งจะเป็นการเปลี่ยนแอปพลิเคชันแบบกระจายอำนาจ สถานะ (นั่นคือ อัปเดตสถานะที่เกี่ยวข้องของ สัญญาอัจฉริยะนี้จัดเก็บโดยโหนด Ethereum) เนื่องจากโหนดทั้งหมดในเครือข่าย Ethereum เรียกใช้ EVM สิ่งนี้ยังทำให้มั่นใจได้ว่าสถานะของโหนดทั้งหมดสอดคล้องกัน

2) ชั้นเครือข่าย

เช่นเดียวกับ Bitcoin Ethereum ยังใช้โปรโตคอล Gossip ซึ่งช่วยให้โหนดสามารถสื่อสารกับเพื่อนบ้านได้

3) ชั้นฉันทามติ

เพื่อให้บรรลุฉันทามติ Ethereum ใช้ "Ethash" ซึ่งคล้ายกับฉันทามติของ Nakamoto แต่ Ethash มีความแตกต่างที่สำคัญบางประการจากฉันทามติของ Nakamoto หากคุณต้องการเข้าใจว่าอัลกอริทึมที่สอดคล้องกันของ Ethereum ทำงานอย่างไร โปรดอ่านหนึ่งในบทความก่อนหน้าของฉัน (หมายเหตุบรรณาธิการ: สำหรับการแปลภาษาจีน โปรดดูไฮเปอร์ลิงก์ "วิธีการทำงานของ Ethereum" ที่ท้ายบทความ)

3a) ชั้นต่อต้านซีบิล

เช่นเดียวกับ Bitcoin Ethash อาศัย Proof of Work (จนถึงตอนนี้ หมายเหตุของผู้แปล: Ethereum 2.0 จะเปลี่ยนไปใช้กลไกฉันทามติ PoS ในอนาคต) เพื่อต่อต้านการโจมตีของ Sybil

สร้างแอปพลิเคชันบน Bitcoin และ Ethereum

ฉันหวังว่าข้อมูลข้างต้นจะช่วยให้คุณมีความเข้าใจเกี่ยวกับโครงสร้างบล็อกเชน เมื่อเราพูดถึง "Bitcoin" หรือ "Ethereum" ชื่อเหล่านี้หมายถึงเลเยอร์สแต็กทั้งหมดที่เกี่ยวข้อง เนื่องจาก Bitcoin และ Ethereum ประกอบขึ้นจากสแต็กเลเยอร์เหล่านี้ทั้งหมด

คุณไม่สามารถแยกสัญญาอัจฉริยะของ Ethereum ออกจากเลเยอร์ฉันทามติของ Ethhash พื้นฐานได้ ดังนั้นจึงไม่มีเหตุผลที่จะพูดคุยสองหัวข้อนี้แยกกัน เช่นเดียวกับ Bitcoin คุณไม่สามารถทำธุรกรรม Bitcoin โดยไม่ใช้ Nakamoto Consensus และ Proof of Work

ในทางกลับกัน Cosmos ทำตามแบบจำลองที่แตกต่างกันเล็กน้อย: มันแยกเลเยอร์แอปพลิเคชันออกจากเลเยอร์ฉันทามติและเครือข่าย

เนื่องจากเป้าหมายของ Cosmos คือการสร้างเครือข่ายบล็อกเชน จึงเหมาะสมที่จะออกแบบในลักษณะนี้ ในเครือข่ายบล็อกเชนนี้ บล็อกเชนแต่ละรายการมีความเป็นอิสระและมีความต้องการและข้อกำหนดของตนเอง (เช่น แอปพลิเคชันของตัวเอง) ในกรณีนี้ เป็นไปไม่ได้ที่จะเสนอเลเยอร์แอปพลิเคชันที่มีขนาดเดียวสำหรับบล็อกเชนทั้งหมด มาดูกันว่าทำไมด้วยตัวอย่างเล็กๆ น้อยๆ

ตัวอย่างข้อจำกัดของ Bitcoin

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

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

การทำอะไรก็ตามที่ซับซ้อนมากขึ้น (เช่น: ตลาดการทำนายแบบกระจายอำนาจ) ด้วย Scrypt นั้นยากมาก ภาษาสคริปต์ของ Bitcoin ไม่เพียงถูกจำกัดด้วยความซับซ้อนของโค้ดปฏิบัติการเท่านั้น แต่ยังไม่เป็นมิตรกับนักพัฒนาอีกด้วย ที่แย่ไปกว่านั้น ธุรกรรมบน Bitcoin blockchain นั้นประมวลผลได้ช้า (ประมาณ 7 ธุรกรรมต่อวินาที) ดังนั้นจึงไม่สมจริงที่จะสร้างแอปพลิเคชันที่ต้องการปริมาณธุรกรรมสูงโดยตรงบนบล็อกเชน Bitcoin

ตัวอย่างข้อจำกัดของ Ethereum

ตรงกันข้ามกับ Bitcoin EVM ของ Ethereum และภาษาสัญญาอัจฉริยะ (Solidity) ได้รับการออกแบบมาเพื่อรองรับแอปพลิเคชันที่ยืดหยุ่นกว่า Solidity เป็นภาษาการเขียนโปรแกรมที่สมบูรณ์ของทัวริง ดังนั้นจึงสามารถรันโค้ดของความซับซ้อนของอัลกอริทึมตามอำเภอใจได้ในทางทฤษฎี

ในการใช้งานจริง ค่อนข้างยากที่จะพัฒนาโปรแกรมที่มีความซับซ้อนตามอำเภอใจโดยใช้ Solidity เนื่องจาก Solidity นั้นเกิดข้อผิดพลาดได้ง่ายและเสี่ยงต่อการถูกโจมตีด้านความปลอดภัย คุณลักษณะนี้สวนทางกับแอปพลิเคชันที่จัดการกับการถ่ายโอนค่า ซึ่งความปลอดภัยเป็นสิ่งสำคัญยิ่ง

นอกจากนี้ สัญญาอัจฉริยะยังอัปเกรดได้ยากมาก ทำให้การพัฒนาซ้ำๆ เป็นเรื่องยากมาก เมื่อสัญญาถูกนำไปใช้กับห่วงโซ่แล้ว สิ่งที่คุณทำได้คืออธิษฐานให้มันดำเนินไปอย่างราบรื่น! เช่นเดียวกับ Bitcoin อัตราการประมวลผลธุรกรรมของ Ethereum นั้นต่ำมาก (ประมาณ 15 ธุรกรรมต่อวินาที) ดังนั้นจึงไม่เป็นประโยชน์ในการสร้างแอปพลิเคชันที่ต้องการปริมาณธุรกรรมสูงบน Ethereum blockchain

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

โครงสร้าง Cosmos blockchain

ขั้นแรก เราจะดูที่ Cosmos โดยเริ่มจากชั้นฉันทามติ เพื่อทำความเข้าใจว่าการพัฒนาแอปพลิเคชันบน Cosmos แตกต่างจากการใช้ Bitcoin หรือ Ethereum อย่างไร

ชั้นเอกฉันท์ของคอสมอส

บล็อกเชนในเครือข่าย Cosmos ใช้อัลกอริทึมฉันทามติของ Tendermint Tendermint เป็นโครงการโอเพ่นซอร์สที่เกิดในปี 2014 "ออกแบบมาเพื่อแก้ปัญหาความเร็ว ความสามารถในการปรับขนาด และปัญหาสิ่งแวดล้อมของอัลกอริธึมฉันทามติ Bitcoin Proof-of-Work (PoW)"

อัลกอริทึมฉันทามติของ Tendermint เป็น "เครื่องมือฉันทามติที่ไม่เชื่อเรื่องพระเจ้าของแอปพลิเคชัน" โดยพื้นฐานแล้ว หมายความว่าบล็อกเชนใด ๆ สามารถใช้อัลกอริธึมฉันทามติของ Tendermint ซึ่งเป็นความทนทานต่อข้อผิดพลาดของไบแซนไทน์ และใช้อัลกอริทึม PoS เพื่อต่อต้านการโจมตีของซีบิล

ศัพท์แสงอีกเพียบ! เราได้พูดคุยเกี่ยวกับมัน

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

ผู้ตรวจสอบ

มาดูกันว่าปัจจัยและกฎความสัมพันธ์ทำงานอย่างไร!

ผู้ตรวจสอบ

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

ต่อสู้กับการโจมตีของซีบิลด้วยการปักหลัก

การลงคะแนนของ Validator แต่ละคนมีน้ำหนักการลงคะแนนของตัวเอง โดยปกติ น้ำหนักการลงคะแนนจะถูกกำหนดเมื่อมีการสร้างบล็อก Genesis หรือหลังจากเริ่มทำงาน โดยทั่วไป น้ำหนักของการโหวตจะพิจารณาจากจำนวนของโทเค็นที่ถูกล็อกไว้ในระบบโดยตัวตรวจสอบความถูกต้อง (เป็นหลักประกัน) ซึ่งเรียกอีกอย่างว่า "พันธบัตร"


  • ฉันทามติ

  • ตามกฎแล้ว ผู้ตรวจสอบจะต้องได้รับความเห็นเป็นเอกฉันท์ในแต่ละบล็อกในแต่ละรอบ แต่ละรอบประกอบด้วยสามขั้นตอนพื้นฐาน: เสนอ, ยกเลิก, คอมมิตล่วงหน้า และอีกสองขั้นตอนต่อมา: คอมมิต, NewHeight จากมุมมองที่เป็นนามธรรม ผู้ตรวจสอบความถูกต้องจะร่วมกันตัดสินใจว่าจะใช้บล็อกใดในระดับความสูงถัดไปตามกฎโปรโตคอลต่อไปนี้:

  • ขั้นตอนแรกคือขั้นตอนข้อเสนอ ซึ่งผู้ตรวจสอบที่กำหนดจะเสนอบล็อก ผู้เสนอในแต่ละรอบจะถูกเลือกตามกำหนดจากรายการที่เรียงลำดับตามสัดส่วนของน้ำหนักการลงคะแนน

  • จากนั้นก็มาถึงขั้นตอนการลงคะแนนล่วงหน้า - ผู้ตรวจสอบความถูกต้องแต่ละคนจะออกอากาศการลงคะแนนล่วงหน้าของตนตามลำดับ

  • เมื่อบล็อกในรอบนั้นได้รับการโหวตล่วงหน้ามากกว่า 2/3 เราเรียกว่า "โพลกา" ทันทีที่ "polka" ปรากฏขึ้น ให้ไปยังขั้นตอนต่อไป

  • เมื่อเข้าสู่ขั้นตอนก่อนการยืนยัน ผู้ตรวจสอบความถูกต้องแต่ละคนจะเผยแพร่การลงคะแนนเสียงก่อนการยืนยันของตน


หากบล็อกใดบล็อกหนึ่งได้รับการโหวตล่วงหน้ามากกว่า 2/3 บล็อกนั้นจะเข้าสู่ขั้นตอนการคอมมิต ซึ่งจะเพิ่มบล็อกไปยังบล็อกเชนและเพิ่มความสูงของบล็อก เมื่อใดก็ตามที่บล็อกใหม่ถูกเพิ่มเข้าไปในบล็อกเชน ความสูงของบล็อกของบล็อกเชนคือ +1


  • หากล้มเหลว ก็จะย้อนกลับไปยังช่วงก่อนลงคะแนนหรือช่วงก่อนตัดสินใจ

  • โปรดทราบว่าไม่ว่าจะสูงเท่าใดก็ตาม อาจต้องมีการลงคะแนนมากกว่าหนึ่งรอบจึงจะสามารถบล็อกได้ เนื่องจากอาจเกิดสถานการณ์ต่อไปนี้:

  • "ผู้เสนอ" ที่กำหนดจะออฟไลน์เมื่อบล็อกควรจะเสนอ


บล็อกที่เสนอโดยผู้เสนอฝ่าฝืนกฎที่กำหนดไว้ล่วงหน้า

Tendermint อาศัยกลไกการหมดเวลาเพื่อให้แน่ใจว่า blockchain จะไม่พบความล่าช้าในการผลิตบล็อก หากบล็อกที่เสนอไม่ได้รับการโหวตล่วงหน้าเกิน 2/3 ก่อนหมดเวลา ผู้เสนอใหม่จะดำเนินการตามกระบวนการบล็อกที่เสนออีกครั้ง

สามารถดูรายละเอียดข้อตกลงได้ที่นี่

โดยทั่วไปแล้ว Tendermint ได้เลือกเส้นทางที่แตกต่างจาก Nakamoto Consensus ของ Bitcoin และ Ethash ของ Ethereum ขอให้เราทำการเปรียบเทียบที่สำคัญบางประการ:

กำหนดเทียบกับความน่าจะเป็น

Tendermint เป็นความเห็นพ้องต้องกันเชิงกำหนด ซึ่งหมายความว่าแต่ละบล็อกของ Tendermint ได้รับการสรุปแล้ว ซึ่งแตกต่างจากบล็อกของ Bitcoin ที่มีสถานะ "อาจจะ" สิ้นสุดเท่านั้น

ลองทบทวนฉันทามติของนากาโมโตะ บล็อกนั้นอยู่ในสถานะ "บึกบึน" เสมอ - โดยการยืนยันว่าบล็อกอยู่ใน "ห่วงโซ่ที่ยาวที่สุด" เท่านั้น เราจึงแน่ใจได้ว่าบล็อกนั้นกำลังได้รับการสรุป ซึ่งเป็นสาเหตุที่ Bitcoin การทำธุรกรรมจำเป็นต้องรอ สำหรับ "การยืนยัน 6 บล็อก"

ใน Tendermint การบล็อกจะได้รับการยืนยันทันทีหลังจากที่ผู้ตรวจสอบโหวตและยอมรับสำเร็จ

ตัวตรวจสอบความถูกต้องแบบคงที่เทียบกับตัวตรวจสอบความถูกต้องแบบตัวแปร

Nakamoto Consensus และ Ethash อนุญาตให้นักขุดเลือกที่จะเข้าร่วมหรือออกจากระบบได้ตลอดเวลาโดยไม่ต้องให้นักขุดรายอื่นทราบล่วงหน้า ในทางตรงกันข้าม ฉันทามติของ Tendermint ต้องการการรักษาชุดตัวตรวจสอบความถูกต้องที่แน่นอนซึ่งทราบล่วงหน้า ซึ่งระบุโดยคีย์สาธารณะของพวกเขา

ผู้นำกับไม่มีผู้นำ

ฉันทามติของ Nakamoto และ Ethash ไม่มีผู้นำที่ได้รับมอบหมายให้เสนอบล็อกถัดไป (กล่าวคือ นักขุดคนใดอาจขุดบล็อกถัดไปได้) ในทางกลับกัน Tendermint เลือกผู้นำหรือผู้เสนอซึ่งมีหน้าที่รับผิดชอบในการเสนอบล็อกถัดไป

กลไกการหมดเวลาที่ชัดเจนและคลุมเครือ

ฉันทามติของ Nakamoto และ Ethash ไม่ใช้กลไกการหมดเวลาเพื่อให้แน่ใจว่านักขุดจะสามารถผลิตบล็อกได้ ในขณะที่ Tendermint มีกลไกการหมดเวลาที่ชัดเจนเพื่อให้แน่ใจว่ากระบวนการผลิตบล็อกเชนจะไม่เกิดความล่าช้า

ตัวตรวจสอบความถูกต้อง 100 ตัวเทียบกับตัวตรวจสอบความถูกต้อง 1,000 ตัว

Tendermint ปฏิบัติตามอัลกอริทึมฉันทามติแบบเอกฉันท์แบบดั้งเดิม และผู้ตรวจสอบความถูกต้องแต่ละคนต้องสื่อสารระหว่างกัน เมื่อพิจารณาจากค่าใช้จ่ายด้านการสื่อสารแล้ว Tendermint ไม่สามารถเพิ่มตัวตรวจสอบอย่าง Bitcoin หรือ Ethereum ได้อย่างไร้ขีดจำกัด ฉันทามติของ Tendermint กำหนดผู้ตรวจสอบความถูกต้อง 100 คน

ดังนั้นหนึ่งในข้อเสียของ Tendermint คือต้องมีความรู้ล่วงหน้าเกี่ยวกับตัวตรวจสอบความถูกต้องทั้งหมดและไม่อนุญาตให้ตัวตรวจสอบความถูกต้องเข้าร่วมหรือออกเมื่อใดก็ได้ ไม่เหมือน Bitcoin หรือ Ethereum

นอกจากนี้ Tendermint ยังต้องการให้ทั้งระบบรักษานาฬิการวม แม้ว่าในทางปฏิบัติ Tendermint ได้พิสูจน์แล้วว่าสามารถรักษานาฬิการวมได้โดยการรวมการประทับเวลาของแต่ละโหนด ทุกคนรู้ดีว่าการซิงโครไนซ์เวลาเป็นปัญหาทางทฤษฎีที่ซับซ้อนมาก

Tendermint มีผู้ตรวจสอบน้อยกว่า Bitcoin และต้องการความรู้ล่วงหน้าเกี่ยวกับชุดของผู้ตรวจสอบ ดังนั้นบางคนอาจสงสัยว่าโปรโตคอลฉันทามติของ Tendermint นั้น "ไม่กระจายอำนาจเพียงพอ"

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

ฉันคิดว่าวิธีการแบบอนุรักษ์นิยมของ Tendermint ที่ต้องการความรู้เดิมและคงที่เกี่ยวกับชุดเครื่องมือตรวจสอบความถูกต้องนั้นเป็นไปได้ในหลายกรณี (หรือแม้แต่กรณีส่วนใหญ่) ตราบใดที่ค่าใช้จ่ายในการทำลายระบบนั้นสูงพอ และมีการป้องกันและบทลงโทษสำหรับผู้โจมตี .

หากเราย้อนกลับไปที่ตัวอย่างตลาดการทำนาย ฉันจะบอกว่าแอปพลิเคชันตลาดการทำนายแบบกระจายอำนาจนั้นไม่จำเป็นต้องมีการกระจายอำนาจในระดับเดียวกับสกุลเงินที่เหมาะสมหรือแอปพลิเคชันที่จัดเก็บมูลค่า เครื่องมือตรวจสอบความถูกต้อง 10, 20 หรือ 100 ตัวก็เพียงพอแล้ว ดำเนินการต่อไป

ยกตัวอย่าง TruStory เราใช้ Cosmos SDK เพื่อสร้างลอจิกแอปพลิเคชันส่วนหลัง และจัดเก็บสถานะและตรรกะของแอปพลิเคชันบนบล็อกเชน ในขณะที่ส่วนหน้าเป็นส่วนตัวในระดับหนึ่ง—Cosmos SDK ช่วยให้เราสามารถ สร้างระบบที่ตอบแทนความดีและลงโทษความชั่วร้าย จูงใจระบบ แสดงชั้นข้อมูลอย่างโปร่งใส อนุญาตให้ผู้ใช้แบ่งปันความเป็นเจ้าของและการกำกับดูแลเครือข่าย และร่วมกันตัดสินใจเกี่ยวกับอนาคต ไล่ผู้ใช้ที่ประสงค์ร้ายออก และออกแบบเครือข่ายสำหรับผู้ใช้ ชั้นหรือชั้นฐานตามความชอบส่วนบุคคล สำหรับนักพัฒนา พวกเขายังสามารถสร้างเครื่องมือและบริการการพัฒนาของตนเองตามลอจิกบล็อคเชนส่วนหลัง ดังนั้นการมีผู้ตรวจสอบ 10 หรือ 100 คนที่ดำเนินการและตรวจสอบธุรกรรมสามารถรับประกันความโปร่งใส ความเป็นเจ้าของ และความรับผิดชอบตามความต้องการของผู้ใช้และนักพัฒนา

หากคุณสามารถเข้าใจถึงประโยชน์ของการเสียสละของ Tendermint ในการ "เลือกชุดเครื่องมือตรวจสอบความถูกต้องที่แน่นอนและเป็นที่รู้จักมาก่อน" คุณจะรู้สึกชื่นชมในคุณสมบัติมหัศจรรย์เหล่านี้ซึ่งไม่สามารถทำได้:

ความปลอดภัยและกิจกรรม

โปรโตคอลของ Tendermint รับประกันความปลอดภัยและความมีชีวิตชีวา สมมติว่ามากกว่า 2/3 ของน้ำหนักการลงคะแนนของผู้ตรวจสอบไม่ได้อยู่ในมือของผู้ตรวจสอบแบบไบแซนไทน์ (นั่นคือ มากกว่า 2/3 ของผู้ตรวจสอบที่ปฏิบัติตามข้อตกลง) หรืออีกนัยหนึ่งคือ น้อยกว่า 1/3 ของ การลงคะแนนนั้นเป็นอันตราย ดังนั้นโปรโตคอลจึงสามารถรับรองความปลอดภัยและกิจกรรมของเครือข่ายได้ (เช่น ผู้ตรวจสอบจะไม่เสนอบล็อกที่ขัดแย้งกันที่ความสูงของบล็อกเท่ากัน และบล็อกเชนจะสร้างบล็อกตามปกติเสมอ)

ประสิทธิภาพสูง

เวลาในการสร้างบล็อกของ Tendermint Consensus อาจต่ำเพียง 1 วินาที ไปจนถึงความเร็วของการประมวลผลธุรกรรมหลายพันรายการต่อวินาที ทำให้ Tendermint เหมาะสมกว่าสำหรับแอปพลิเคชันที่ต้องทำธุรกรรมบ่อยครั้ง

ยืนยันทันที

ในโลกของบล็อกเชน ความสมบูรณ์หมายถึงเมื่อบล็อกถูกส่งไปยังเชน เราสามารถกำหนดสถานะของบล็อกเชนทั้งหมดจนถึงบล็อกนั้น

ดังที่เราได้กล่าวไว้ก่อนหน้านี้ ฉันทามติของนากาโมโตะมีลักษณะที่น่าจะเป็น ดังนั้นจึงไม่มีทางรับประกันความยุติได้ คุณสามารถรับประกันได้ว่า fork chain ของการทำธุรกรรมของคุณนั้นอยู่ใน consensus chain ตามความน่าจะเป็นที่นักขุดส่วนใหญ่ยังคงขุดอยู่ใน fork นั้น

อย่างไรก็ตาม Tendermint กำหนดให้ผู้ตรวจสอบความถูกต้องลงคะแนนเสียงและสรุปแต่ละบล็อก ดังนั้นเราจึงสามารถพูดได้ว่ามีตัวตรวจสอบที่เป็นอันตรายน้อยกว่า 1 ใน 3 ธุรกรรมสามารถ "ยืนยันทันที" - เมื่อบล็อกถูกสร้างขึ้น ผู้ใช้จะทราบว่าธุรกรรมของพวกเขาได้รับการยืนยันแล้ว

ระบบความรับผิดชอบ

Tendermint ใช้ PoS เป็นกลไกต่อต้านซีบิล โดยกำหนดให้ผู้ตรวจสอบความถูกต้องเดิมพันโทเค็น (เช่น "พันธบัตร") เพื่อให้แน่ใจว่าโหนดไม่สามารถโกงระบบด้วยการสร้างบัญชีปลอมหลายบัญชี

PoS ประหยัดพลังงานมากกว่า PoW (การพิสูจน์ PoW มาจากพลังการประมวลผลที่ใช้โดยนักขุดเพื่อแก้ปัญหาการแฮชของบล็อกถัดไป) แต่ข้อบกพร่องโดยธรรมชาติ "ไม่มีส่วนได้ส่วนเสีย" ทำให้ผู้ตรวจสอบสามารถโกงได้ง่าย

Tendermint จะลงโทษผู้ตรวจสอบความถูกต้องที่ละเมิดกฎโปรโตคอล (เช่น การลงคะแนนสำหรับบล็อกที่ขัดแย้งกัน และการออกอากาศการลงคะแนนที่ไม่ได้รับการยืนยัน) โดยการตัดเงินมัดจำเพื่อหลีกเลี่ยงปัญหาที่ไม่ได้รับความสนใจ โดยเฉพาะอย่างยิ่ง โปรโตคอลมี "กฎการล็อค" ที่ควบคุมว่าตัวตรวจสอบความถูกต้องแต่ละตัวสามารถทำอะไรได้บ้างเมื่อลงคะแนนให้กับบล็อกใดบล็อกหนึ่ง ตัวอย่างเช่น เมื่อ Validator ส่งการลงคะแนนล่วงหน้าแล้ว จะถูก "ล็อก" ไว้ในบล็อกนั้น Validator สามารถปลดล็อกและยืนยันการลงคะแนนล่วงหน้าได้เฉพาะบล็อกอื่นเท่านั้น หากต้องการสร้าง Polka บล็อกอื่นในชิ้นส่วนรอบถัดไป หากละเมิดกฎการล็อค ผู้ตรวจสอบความถูกต้องจะถูกปรับโดยริบเงินประกัน

ลูกค้าแสงที่เรียบง่าย

ไคลเอนต์แบบไลท์นั้น "เบา" กว่าโหนดแบบเต็มเนื่องจากไม่ได้เก็บสถานะทั้งหมดของบล็อกเชน เฉพาะส่วนหัวของบล็อกเท่านั้น โหนดส่วนใหญ่ไม่จำเป็นต้องเก็บสถานะทั้งหมดของบล็อกเชน เว้นแต่ว่าจะเป็นโหนดการขุดที่รับผิดชอบในการตรวจสอบและสร้างบล็อก

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

สิ่งที่เจ๋งที่สุดคือไคลเอ็นต์ขนาดเล็กของบล็อกเชนที่ใช้ Tendermint ไม่จำเป็นต้องซิงค์ส่วนหัวของบล็อกทั้งหมดด้วยซ้ำ เพียงแค่ดาวน์โหลดส่วนหัวของบล็อกเป็นระยะๆ

ดังที่เราได้กล่าวไว้ก่อนหน้านี้ Tendermint แตกต่างจาก Bitcoin และ Ethereum บล็อกทั้งหมดจะต้องได้รับการโหวตและยืนยันในที่สุด เนื่องจากแต่ละบล็อกได้รับการยืนยันในที่สุด ดังนั้นไคลเอ็นต์แบบ light จึงจำเป็นต้องให้ความสนใจกับการเปลี่ยนแปลงในชุดเครื่องมือตรวจสอบเท่านั้น— - ตราบใดที่ เมื่อทราบชุดล่าสุดของตัวตรวจสอบความถูกต้องแล้ว ไคลเอ็นต์แบบเบาจะสามารถดาวน์โหลดส่วนหัวของบล็อกล่าสุดและตรวจสอบว่าบล็อกเหล่านี้มีการลงคะแนนมากกว่า 2/3 ของตัวตรวจสอบความถูกต้อง

ชั้นเครือข่ายคอสมอส

ดังที่เรากล่าวไว้ข้างต้น ฉันทามติของ Tendermint ขึ้นอยู่กับผู้ตรวจสอบความถูกต้องในการลงคะแนนในแต่ละรอบ ดังนั้นโหนดต้องสามารถสื่อสารและถ่ายโอนข้อความเพื่อให้แน่ใจว่าผู้เข้าร่วมทั้งหมดในเครือข่ายสามารถเห็นข้อมูลเดียวกันได้

เช่นเดียวกับ Bitcoin และ Ethereum Tendermint ใช้โปรโตคอลซุบซิบเพื่อเผยแพร่สถานะบล็อกเชนล่าสุดอย่างรวดเร็ว

โหนดในเครือข่ายไม่จำเป็นต้องเป็นผู้ตรวจสอบความถูกต้องเพื่อมีบทบาทในกระบวนการฉันทามติของเครือข่าย ตัวอย่างเช่น โหนดสามารถเป็นโหนดแบบไลท์หรือโหนดแบบเต็มแทนตัวตรวจสอบความถูกต้อง โหนดดังกล่าวเรียกอีกอย่างว่า "โหนดที่ไม่ใช่ตัวตรวจสอบความถูกต้อง"

โหนดผู้ตรวจสอบและไม่ตรวจสอบมีหน้าที่รับผิดชอบในการส่งข้อมูล (เช่น ข้อมูลข้อเสนอ ข้อมูลบล็อก และข้อมูลการลงคะแนนเสียง) เพื่อให้แน่ใจว่าโหนดทั้งหมดสามารถรับข้อมูลและธุรกรรมที่ระบบสร้างขึ้น

ชั้นแอปพลิเคชันคอสมอส

ในปัจจุบัน เราได้เข้าใจองค์ประกอบหลักของเลเยอร์เครือข่าย Tendermint และเลเยอร์ฉันทามติแล้ว เลเยอร์เครือข่ายมีหน้าที่รับผิดชอบในการส่งธุรกรรมระหว่างคอมพิวเตอร์ทุกเครื่องในเครือข่าย และอัลกอริทึมฉันทามติของ Tendermint รับรองความสอดคล้องกันของเครื่องสถานะ (นั่นคือ , blockchain ในโหนดทั้งหมดสอดคล้องกัน)


  • แต่เราผ่านและตรวจสอบการทำธุรกรรมอะไรบ้าง? มาถึงชั้นแอปพลิเคชัน

  • กำหนดและส่งธุรกรรมที่ต้องบันทึกในบล็อกเชน


อัปเดตสถานะ blockchain อย่างต่อเนื่องหลังจากทำธุรกรรมผ่านชั้นฉันทามติ

ข้อความ

Cosmos SDK จัดเตรียมเฟรมเวิร์กสำหรับสร้างเลเยอร์แอปพลิเคชัน เช่นเดียวกับ Ruby-on-Rails ในโลกของบล็อกเชน (Ruby-on-Rails เป็นเฟรมเวิร์กที่ช่วยให้นักพัฒนาสร้างแอปพลิเคชันฝั่งเว็บได้อย่างง่ายดายด้วยการตั้งค่าเริ่มต้น) นอกจากนี้ Cosmos SDK ยังจัดเตรียม นักพัฒนาที่มีเฟรมเวิร์กสำหรับสร้างแอปพลิเคชันบล็อกเชนที่ปลอดภัยตามเคอร์เนล Tendermint

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

ข้อความ

แอปพลิเคชั่น Cosmos ทำงานอย่างไร (มุมมองนามธรรม)


  • Cosmos SDK มีกลไก "มัลติสโตร์" เพื่อกำหนดและรักษาสถานะของเครื่องสถานะเลเยอร์แอปพลิเคชัน Multistore แบ่งสถานะของชั้นแอปพลิเคชันออกเป็นส่วนประกอบต่างๆ และจัดการผ่าน "โมดูล" ตามลำดับ

  • จุดแข็งของ Cosmos SDK คือการออกแบบโมดูลาร์ที่ไม่เหมือนใคร แต่ละโมดูลจะกำหนดและดูแลชุดย่อยของสถานะที่ประกอบเป็นบล็อกเชนที่สมบูรณ์ ตัวอย่างเช่น:

  • โมดูลการธนาคาร: ให้คุณถือโทเค็นในแอพและโอนโทเค็น


โมดูลสิทธิ์: ช่วยให้คุณสร้างและจัดการบัญชีและลายเซ็น

โมดูลการปักหลักและการเฉือน: ช่วยให้คุณสร้างกลไกที่สอดคล้องกันของ PoS ผ่านการเข้ารหัส

แต่ละโมดูลเป็นเครื่องสถานะขนาดเล็กที่สามารถรวมเข้าด้วยกันเพื่อสร้างเครื่องสถานะโดยรวม

นักพัฒนาแอปพลิเคชันกำหนดชุดย่อยตามตรรกะเชิงสำนวนของแต่ละโมดูลและสถานะการปรับเปลี่ยน นอกจากโมดูลที่ Cosmos SDK จัดเตรียมให้แล้ว นักพัฒนายังสามารถเรียกโมดูลของบุคคลที่สามได้อีกด้วย

โมดูลปลั๊กอินสำหรับการสร้างแอปพลิเคชันบล็อกเชนนี้มีประสิทธิภาพมาก เนื่องจากช่วยให้นักพัฒนามีความยืดหยุ่นในการใช้ SDK หรือโมดูลภายนอก

ธุรกรรมที่เลเยอร์แอปพลิเคชันสื่อสารกับฉันทามติของ Tendermint และเลเยอร์เครือข่ายผ่านอินเทอร์เฟซบล็อกเชนของแอปพลิเคชัน (ABCI, อินเทอร์เฟซบล็อกเชนแอปพลิเคชัน)

ABCI เป็นโปรโตคอลการสื่อสารของซ็อกเก็ตที่เชื่อมต่อ Tendermint core (ฉันทามติ + เครือข่าย) และแอปพลิเคชัน เข้ากันได้กับภาษาโปรแกรมใด ๆ ซึ่งหมายความว่าแอปพลิเคชันบล็อกเชนที่สร้างขึ้นโดยใช้ Cosmos SDK ในทางทฤษฎีสามารถเขียนในภาษาใดก็ได้ ไม่ใช่แค่ภาษาโปรแกรมที่ใช้โดยชั้นเอกฉันท์และเลเยอร์เครือข่ายของ Tendermint

ข้อความ

หมายเหตุ: Cosmos เวอร์ชันปัจจุบันรองรับ Golang เป็นหลัก และจะเพิ่มภาษาอื่นๆ ในอนาคต

สรุปแล้ว Cosmos SDK ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันแบบกระจายอำนาจโดยใช้แกน Tendermint ได้ แอปพลิเคชันนี้สามารถพัฒนาในทางทฤษฎีในภาษาใดก็ได้และเชื่อมต่อกับกลไกฉันทามติของ Tendermint ผ่าน ABCI

การแยกเลเยอร์แอปพลิเคชัน (Cosnos SDK, ABCI) ออกจากเลเยอร์เครือข่ายและเลเยอร์ฉันทามติ (Tendermint core) ช่วยให้นักพัฒนามีความยืดหยุ่นมากขึ้นในการพัฒนาแอปพลิเคชันประเภทต่างๆ และ Cosmos SDK ช่วยให้แอปพลิเคชันเหล่านี้สามารถพัฒนาภาษาใดก็ได้ (เช่น Golang) ทำให้ขั้นตอนการพัฒนาแอป blockchain เหมือนกับการพัฒนาแอปพลิเคชันทั่วไป

สิ่งนี้ตรงกันข้ามกับการพัฒนาแอปพลิเคชันบน Ethereum โดยสิ้นเชิง เนื่องจากนักพัฒนาจำเป็นต้องเรียนรู้ภาษาใหม่ Solidity และเอาชนะข้อจำกัดและข้อบกพร่องมากมายของ Solidity และ Golang มีเครื่องมือในการพัฒนามากกว่า Solidity และประสบการณ์การพัฒนาดีกว่า 10 เท่า

นอกจากนี้ แอพ Ethereum ทั้งหมดทำงานบนเครือข่ายเดียว ข้อดีของสิ่งนี้คือ แอพเหล่านี้สามารถแบ่งปันมาตรฐาน Ethereum และเอฟเฟกต์สเกลที่สอดคล้องกัน ข้อเสียคือแอพทั้งหมดเหล่านี้แชร์เลเยอร์ฉันทามติของ Ethereum ซึ่งจะได้รับผลกระทบจากขนาด ของแอปพลิเคชันที่เพิ่มเข้ามาใหม่ นอกจากนี้ เครือข่ายทั้งหมดต้องได้รับการจัดการเป็นหน่วยขนาดมหึมา ซึ่งถูกผูกมัดด้วยปรัชญาการปกครองและความแตกต่างทางอุดมการณ์ ทำให้ปรับขนาดได้ยาก

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


สรุปแล้ว

ชื่อระดับแรก

สรุปแล้ว

Cosmos
PoS
ETH
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
ค้นหา
สารบัญบทความ
คลังบทความของผู้เขียน
以太坊爱好者
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android