CAT20: โปรโตคอลโทเค็นบนเศษส่วน BTC

avatar
ZAN Team
3เดือนก่อน
ประมาณ 7321คำ,ใช้เวลาอ่านบทความฉบับเต็มประมาณ 10นาที
เมื่อเร็ว ๆ นี้ ในระบบนิเวศของ Bitcoin ในที่สุด Fractal BTC ก็ได้เปิดตัว mainnet ในเดือนกันยายน หลังจากผ่านเครือข่ายทดสอบมากมาย...

บทความนี้มีไว้สำหรับการแบ่งปันทางเทคนิคเท่านั้น และไม่ถือเป็นคำแนะนำในการลงทุนใดๆ

BTC จะมีสัญญาอัจฉริยะของตัวเองด้วยหรือไม่?

ในระบบนิเวศของ Bitcoin ล่าสุด Fractal BTC ได้เปิดตัว mainnet ในเดือนกันยายนหลังจากผ่านการทดสอบจำนวนมาก คุณสมบัติที่สำคัญของ Fractal คือความสามารถในการมี สัญญาอัจฉริยะ และเกือบจะในเวลาเดียวกันกับที่ mainnet เปิดตัว โปรโตคอลโทเค็นใหม่ CAT 20 ก็ได้เปิดตัว CAT 20 มีความฉลาดทางเทคนิคอะไรบ้าง? เราเรียนรู้อะไรได้บ้าง?

แฟร็กทัล Bitcoin

ก่อนที่จะทำความเข้าใจกับ CAT 20 เราต้องทำความเข้าใจ Fractal Bitcoin กันก่อน ความสัมพันธ์ของพวกเขาก็เหมือนกับ ERC 20 และ ETH

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

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

ขณะนี้มีคนใช้โปรโตคอลที่คล้ายกับ ERC 20 บน Fractal Bitcoin

เกี่ยวกับสาเหตุที่ OP_CAT ถูกละทิ้ง และเหตุใดจึงสามารถใช้กับ Fractal Bitcoin ได้ เราจะพูดถึงเรื่องนี้ในภายหลัง ที่นี่เราจะเน้นไปที่ CAT 20

CAT Protocol โปรดดูเนื้อหาต่อไปนี้: บทนำ |. CAT Protocol ( https://catprotocol.org/ )

และที่เก็บ github: GitHub - CATProtocol/cat-token-box: monorepo สำหรับแพ็คเกจที่ใช้โปรโตคอล CAT ( https://github.com/CATProtocol/cat-token-box )

ด้วยการรองรับ OP_CAT โปรโตคอล CAT Protocol ที่เกี่ยวข้องจะพร้อมใช้งานเร็วๆ นี้ ปัจจุบัน โปรโตคอลที่กำลังทำงานอยู่จริงคือโปรโตคอล CAT 20 และมีการเพิ่มแผงที่เกี่ยวข้องใน Unisat: https://explorer.unisat.io/fractal-mainnet/cat20

ทุกคนควรจะสามารถตอบสนองได้เมื่อเห็นชื่อ CAT 20 ซึ่งควรจะคล้ายกับ ERC 20 มากกว่า เมื่อเปรียบเทียบกับโปรโตคอล ERC 20 ที่ครบกำหนดแล้ว จะสะดวกมากสำหรับทุกคนในการปรับใช้โทเค็น CAT 20 มีวงจรชีวิตที่คล้ายกับ ERC 20 อย่างไร

ปรับใช้

ก่อนการใช้งาน ผู้ใช้จำเป็นต้องระบุที่อยู่กระเป๋าเงินและข้อมูลพื้นฐานเกี่ยวกับโทเค็น ข้อมูลพื้นฐานเกี่ยวกับโทเค็นจะคล้ายกับข้อมูลของ ERC 20:

CAT20: โปรโตคอลโทเค็นบนเศษส่วน BTC

จะมีความแตกต่างบางประการ CAT 20 สามารถกำหนดขีดจำกัดการขุดล่วงหน้าและปริมาณสำหรับ Mint แต่ละอันได้ แน่นอนว่า ERC 20 ยังสามารถตระหนักถึงความสามารถเหล่านี้ผ่านความสามารถของสัญญา

ในระหว่างขั้นตอนการปรับใช้ จะมีการเริ่มต้นธุรกรรมสองรายการ ซึ่งถือเป็นสองระยะ: กระทำ และ เปิดเผย จากแผนภาพอย่างเป็นทางการ ขั้นตอนการปรับใช้มีดังนี้:

CAT20: โปรโตคอลโทเค็นบนเศษส่วน BTC

ในขั้นตอน กระทำการ ข้อมูลพื้นฐานของโทเค็นจะถูกเขียนลงในสคริปต์เอาท์พุตของธุรกรรม เช่น ชื่อ สัญลักษณ์ ฯลฯ ของโทเค็น hashId ของธุรกรรมที่เริ่มต้นในระยะ กระทำ จะถูกใช้เป็นสัญลักษณ์ของโทเค็นเพื่อแยกแยะโทเค็นอื่น ๆ

CAT20: โปรโตคอลโทเค็นบนเศษส่วน BTC

คุณจะเห็นว่า utxo ของธุรกรรมนี้ bc 1 pucq...ashx สอดคล้องกับการคอมมิต จากนั้นจะมีธุรกรรมที่เหลืออีกสองรายการซึ่งชี้ไปที่ bc 1 pszp...rehc 4 รายการแรกใช้เพื่อชำระค่าน้ำมันสำหรับขั้นตอน เปิดเผย ต่อไปนี้ และรายการอื่นคือการเปลี่ยนแปลง

ในเฟส เปิดเผย คุณจะเห็นว่ามีอินพุต utxo สองช่อง ซึ่งสอดคล้องกับเอาต์พุตสองช่องแรกของเฟสการส่งครั้งก่อน ธุรกรรมนี้จะส่งออก OP_RETURN ก่อน ซึ่งแฮชของสถานะเริ่มต้นของ CAT 20 จะถูกบันทึกไว้ จากนั้น Minter จะถูกส่งออก ซึ่งจะมีบทบาทสำคัญในกระบวนการ Mint ที่ตามมา และใช้เพื่อรักษาการเปลี่ยนแปลงสถานะของกระบวนการ Mint

CAT20: โปรโตคอลโทเค็นบนเศษส่วน BTC

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

มิ้นต์

เมื่อเรามาดู Mint Token กันก่อน ธุรกรรมจะเป็นแบบนี้

CAT20: โปรโตคอลโทเค็นบนเศษส่วน BTC

ดังที่คุณเห็นในภาพด้านบน กระบวนการของมิ้นต์มีลักษณะดังนี้

  • อินพุตของ mint คือ minter ซึ่งถูกสร้างขึ้นครั้งแรกในระหว่างการปรับใช้

  • โรงกษาปณ์แต่ละโรงมีโรงกษาปณ์เพียงแห่งเดียวเป็นอินพุต และโรงกษาปณ์จำนวนเท่าใดก็ได้เป็นเอาต์พุต (มีปัญหาเล็กน้อย)

  • เหรียญกษาปณ์แต่ละอันมีโทเค็นเดียวเท่านั้น (มีปัญหาเล็กน้อย)

  • ต้องระบุลำดับของเอาต์พุต ส่วน minter จะต้องตามด้วยโทเค็น

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

ตัวอย่างเช่น minter คือผลลัพธ์ของธุรกรรม mint อาจเป็น 1 หลายรายการ หรือแม้แต่ 0 หาก Mint ถูกตั้งค่าเป็น 1 ทุกครั้ง จำนวน Minter ที่สามารถใช้ในเครือข่ายทั้งหมดจะไม่เปลี่ยนแปลง (1) ซึ่งจะทำให้ Mint หนาแน่น และทุกคนจะต้องคว้า Minter นี้เพื่อหลีกเลี่ยงปัญหานี้ ในกรณีนี้ คุณต้องตั้งค่าจำนวนเอาต์พุตของ minters ในแต่ละครั้งให้มากกว่า 1 เพื่อว่าหลังจาก mint จะสามารถใช้ minters ได้มากขึ้นเรื่อยๆ

อย่างไรก็ตาม ผลผลิตเพิ่มเติมของ minter แต่ละครั้งหมายความว่าคุณต้องจ่าย utxo เพิ่มขึ้น ด้วยเหตุผลทางเศรษฐกิจ ผู้คนจำนวนมากขึ้นยินดีที่จะตั้งค่า minter เป็น 0 ซึ่งจะทำให้เงินฝืดของ minter อย่างหลีกเลี่ยงไม่ได้ ซึ่งกำหนดให้มีคนมาบริจาคและจ่ายเงิน ผู้ขุดแร่เพิ่มเติมโดยสมัครใจ

ในเวอร์ชัน V2 จะมีการสร้างตัวสร้างสองตัวตามค่าเริ่มต้น และสถานะของตัวสร้างสองตัวจะคล้ายกันมากที่สุด

โครงสร้างธุรกรรม

เพื่อนบางคนอาจค้นพบปัญหา นั่นคือเหตุใด utxo ของ Minter จึงสามารถใช้สร้างธุรกรรมได้ เพื่อให้เข้าใจถึงปัญหานี้ คุณต้องวิเคราะห์ซอร์สโค้ดของ สัญญา

1.เปิดเผย utxo

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

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

เมื่อดูซอร์สโค้ดเราจะเห็นว่าเกิดอะไรขึ้น:

CAT20: โปรโตคอลโทเค็นบนเศษส่วน BTC

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

CAT20: โปรโตคอลโทเค็นบนเศษส่วน BTC

กล่าวอีกนัยหนึ่ง คีย์ส่วนตัวของเราจะปรับคีย์สาธารณะตาม ISSUE_PUBKEY ซึ่งเป็นคุณลักษณะของที่อยู่ P 2 TR เช่นกัน

2. มินเทอร์ utxo

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

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

สถานะธุรกรรม (V2)

ในมินเตอร์ รัฐก็ยังคงอยู่เช่นกัน สถานะนี้มีอยู่ในสองแห่ง: สถานะหนึ่งอยู่ใน OP_RETURN ของเอาต์พุตธุรกรรม และอีกสถานะถูกเก็บไว้ในสัญญาอัจฉริยะ ซึ่งก็คือ Minter และ Token ที่กล่าวถึงข้างต้น

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

CAT20: โปรโตคอลโทเค็นบนเศษส่วน BTC

เมื่อจบเกม จำนวน Minter ที่เหลือทั้งหมดคือ 0

ย้อนกลับไปที่ภาพต้นฉบับ นอกจาก Minter จะเป็นสัญญาอัจฉริยะแล้ว Token ที่สร้างขึ้นยังเป็นสัญญาอัจฉริยะอีกด้วย ซึ่งก็คือ CAT 20 CAT 20 มีสถานะพื้นฐานสองสถานะ: ปริมาณ และที่อยู่ของเจ้าของโทเค็น คุณจะเห็นว่า CAT 20 ของคุณไม่ได้อยู่ใน UTXO ของที่อยู่ของคุณ ซึ่งต่างจาก BRC 20 หรือคำจารึกก่อนหน้า

โอนย้าย

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

CAT20: โปรโตคอลโทเค็นบนเศษส่วน BTC

เผา

หากคุณต้องการเบิร์นโทเค็น คุณจะต้องโอนโทเค็นไปยังที่อยู่ปกติเท่านั้น

สรุป

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

การออกแบบดังกล่าวอาจมีประโยชน์บางประการ:

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

  • หากคุณต้องการตรวจสอบสถานการณ์ปัจจุบันของ mint คุณสามารถค้นหาธุรกรรมด้วย cat ใน OP_RETURN

ZAN มาที่นี่เพื่อรับน้ำโดยไม่มีขีดจำกัด!

เคล็ดลับ: คุณสามารถรับโทเค็น Testnet ฟรี 0.01 ETH ทุกๆ 24 ชั่วโมงเพื่อสนับสนุนคุณให้สัมผัสและทดสอบโปรเจ็กต์ Web3 ในระบบนิเวศ Ethereum คลิกเพื่อรับทันที: https://zan.top/faucet?chInfo=ch_WZ

เครือข่ายสาธารณะเพิ่มเติมจะได้รับการสนับสนุนเร็ว ๆ นี้ ~

บทความนี้เขียนโดย Yeezo (บัญชี X @GaoYeezo 75065 ) แห่งทีม ZAN (บัญชี X @zan_team )

บทความต้นฉบับ, ผู้เขียน:ZAN Team。พิมพ์ซ้ำ/ความร่วมมือด้านเนื้อหา/ค้นหารายงาน กรุณาติดต่อ report@odaily.email;การละเมิดการพิมพ์ซ้ำกฎหมายต้องถูกตรวจสอบ

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

การอ่านแนะนำ
ตัวเลือกของบรรณาธิการ