เมื่อเร็วๆ นี้ การเปิดตัวโปรโตคอล Arc-20 ได้จุดประกายความคลั่งไคล้ในตลาดจารึกอีกครั้ง บทความนี้จะเจาะลึกรายละเอียด ข้อดีและข้อเสียของโปรโตคอลทั้งสองจากมุมมองทางเทคนิค
เดิมที Bitcoin ได้รับการออกแบบให้เป็นสกุลเงินดิจิทัลที่มีการกระจายอำนาจที่ปลอดภัย มีเสถียรภาพ และเชื่อถือได้ อย่างไรก็ตาม เนื่องจากสถาปัตยกรรมทางเทคนิคและภาษาสคริปต์ที่ค่อนข้างยืดหยุ่นน้อยกว่าเมื่อเทียบกับ Ethereum Bitcoin จึงไม่เหมาะสำหรับการดำเนินการสัญญาอัจฉริยะโดยตรง
อย่างไรก็ตาม ความคิดสร้างสรรค์และความพยายามอันกล้าหาญของนักพัฒนาได้นำความเจริญรุ่งเรืองมาสู่ระบบนิเวศของ Bitcoin ตัวอย่างทั่วไปอย่างหนึ่งคือโปรโตคอล Brc-20 แนวคิดหลักของโปรโตคอลคือรูปแบบโทเค็นทดลองซึ่งมีศูนย์กลางอยู่ที่มีม ทุกคนสามารถสร้างโทเค็นเหล่านี้ได้โดยตรงบนเครือข่าย Bitcoin ตามลำดับก่อนหลังโดยไม่ต้องอาศัยสัญญาอัจฉริยะ คุณสมบัติที่สำคัญของโทเค็น Brc-20 คือลักษณะการกระจายอำนาจ ซึ่งขจัดกลไกต่างๆ เช่น การขายส่วนตัว การขายล่วงหน้า และการปลดล็อคหรือการวางเดิมพัน สิ่งนี้ทำให้มั่นใจได้ถึงการมีส่วนร่วมแบบกระจายอำนาจอย่างแท้จริง
ในบริบทนี้ โปรโตคอล Arc-20 ได้จุดประกายความสนใจอย่างมากในจารึกอีกครั้ง
โปรโตคอล Brc-20 และ Arc-20 นั้นมีพื้นฐานมาจาก Btc chain ดังนั้นก่อนที่เราจะแนะนำโปรโตคอล Arc-20 และโปรโตคอล Brc-20 อย่างเป็นทางการ เรามาทำความเข้าใจ UTXO กันก่อน (เอาต์พุตธุรกรรมที่ยังไม่ได้ใช้)
เมื่อเราพูดถึง Bitcoin โมเดล UTXO (เอาท์พุทธุรกรรมที่ไม่ได้ใช้) เป็นแนวคิดการออกแบบที่สำคัญ มันเป็นรูปแบบบัญชีประเภทหนึ่งที่ใช้โดย Bitcoin ซึ่งแตกต่างจากรูปแบบยอดเงินคงเหลือแบบดั้งเดิม เช่น บัญชีธนาคาร
ในรูปแบบ UTXO ทุกธุรกรรม Bitcoin จะสร้างชุดของเอาต์พุตที่ยังไม่ได้ใช้ โดยแต่ละเอาต์พุตจะแสดงถึงจำนวน Bitcoin ที่แน่นอน ผลลัพธ์ที่ยังไม่ได้ใช้เหล่านี้เป็นหน่วยของสกุลเงินดิจิทัลที่ไม่ได้ใช้โดยพื้นฐานแล้ว คล้ายกับธนบัตรหรือเหรียญกษาปณ์ เมื่อคุณได้รับ Bitcoin แสดงว่ามีคนสร้างเอาต์พุตที่ยังไม่ได้ใช้ใหม่ซึ่งเชื่อมโยงกับที่อยู่ Bitcoin ของคุณ เอาต์พุตนี้คือ UTXO
มาอธิบายโมเดล UTXO ด้วยตัวอย่างง่ายๆ:
หากคุณมีธุรกรรมสองรายการ รายการหนึ่งได้รับ 0.7 BTC และอีกรายการได้รับ 0.5 BTC คุณจะมี UTXO สองรายการ รายการหนึ่งมีมูลค่า 0.7 BTC และอีกรายการมีมูลค่า 0.5 BTC เมื่อคุณต้องการจ่าย 1 BTC คุณไม่สามารถใช้ UTXO เพียงอันเดียวได้ แต่คุณต้องรวม UTXO ทั้งสองเข้ากับ UTXO ใหม่ (รวมเป็น 1.2 BTC) จากนั้นส่ง 1 BTC ไปยังผู้รับ โดยเหลือ 0.2 BTC กลับคืนสู่ตัวเองเป็นการเปลี่ยนแปลง อย่างไรก็ตาม การเปลี่ยนแปลงที่เกิดขึ้นจริงอาจน้อยกว่า 0.2 BTC เนื่องจากผู้ใช้จำเป็นต้องจ่ายค่าธรรมเนียมการทำธุรกรรมให้กับนักขุดเพื่อให้แน่ใจว่าการทำธุรกรรมจะราบรื่น
BRC-20 เป็นมาตรฐานการทดลองที่แสดงให้เห็นถึงความเป็นไปได้ในการสร้างโทเค็นที่ใช้งานได้บนเลเยอร์ 1 ของ Bitcoin โดยใช้ประโยชน์จากทฤษฎีลำดับและคำจารึก โปรโตคอล Ordinals (โทเค็นแรกที่สร้างตามมาตรฐานของโปรโตคอล) อนุญาตให้เนื้อหา รวมถึงข้อความ รูปภาพ หรือวิดีโอ ถูกพิมพ์ลงบนหน่วยที่เล็กที่สุดของ Bitcoin นั่นคือ Satoshi ดังนั้นจึงสร้างสินทรัพย์ดิจิทัลที่มีเอกลักษณ์
ทฤษฎีลำดับเป็นกุญแจสำคัญในการดำเนินการจารึกบนเครือข่าย BTC
โดยพื้นฐานแล้ว Satoshi แต่ละตัวจะเหมือนกัน และ Ordinals ได้พัฒนาโปรโตคอลการสั่งซื้อ Satoshi ผ่านทฤษฎีการเล่าเรื่อง การสั่งซื้อนี้ขึ้นอยู่กับการขุด Satoshi และลำดับอินพุตและเอาท์พุตของธุรกรรม
มีหลายวิธีในการแสดงเลขลำดับ:
นิพจน์ระดับประกอบด้วยสี่ส่วน: A°B′C″D‴ และ A, B, C และ D แสดงถึงความหมายที่แตกต่างกัน:
ทฤษฎีการบรรยายกำหนดลำดับของ Satoshi ผ่านการแสดงออกของระดับ และกำหนดระดับความหายากที่แตกต่างกันสำหรับ Satoshi แต่ละตัวผ่านลำดับ ดังนั้นจึงบรรลุถึงความเป็นเอกลักษณ์ของ Satoshi แต่ละตัว
ตัวอย่างเช่น ระดับที่มีอยู่จะแสดงเป็น 1°1′0″0‴โดยที่
ด้วยคำจำกัดความของความหายากข้างต้น Satoshi นี้จึงถูกกำหนดให้เป็น stoshi ที่หายาก
กระบวนการทั่วไปมีดังนี้:
py# คำนวณการบรรยาย (รางวัล) ของบล็อกตามความสูง
เงินอุดหนุนแน่นอน(ส่วนสูง):
กลับ 50*100_000_000 >> ความสูง // 210_000
ฟังก์ชันนี้ใช้ในการคำนวณรางวัลสำหรับบล็อก Bitcoin ที่มีความสูงที่กำหนด โดยที่ 50*100_000_000 เป็นรางวัลเริ่มต้นของ Bitcoin >> เป็นตัวดำเนินการกะด้านขวา เทียบเท่ากับการหารด้วยจำนวนเต็ม 2 ส่วน ฟังก์ชันนี้ส่งคืนจำนวนเต็มที่แสดงถึงจำนวนรางวัลสำหรับบล็อกที่ความสูงที่กำหนด
def first_ordinal (ความสูง):
เริ่มต้น = 0
สำหรับ h ในระยะ (สูง):
เริ่มต้น += เงินอุดหนุน(h)
กลับเริ่มต้น
ฟังก์ชันนี้จะคำนวณเลขลำดับของรางวัลแรกสำหรับบล็อกที่ความสูงที่กำหนด คำนวณจำนวนรางวัลทั้งหมดตั้งแต่บล็อกแรกไปจนถึงความสูงที่กำหนดโดยวนซ้ำความสูงและสะสมรางวัลสำหรับแต่ละบล็อก ทำให้ได้เลขลำดับของรางวัลแรก
def มอบหมาย_ordinals (บล็อก):
แรก = first_ordinal(block.height)
สุดท้าย = แรก + เงินอุดหนุน(block.height)
coinbase_ordinals =list(ช่วง (แรก, สุดท้าย))
def มอบหมาย_ordinals (บล็อก):
แรก = first_ordinal(block.height)
สุดท้าย = แรก + เงินอุดหนุน(block.height)
coinbase_ordinals =list(ช่วง (แรก, สุดท้าย))
สำหรับการทำธุรกรรมใน block.transactions[1:]:
ลำดับ = []
สำหรับการป้อนข้อมูลใน Transaction.inputs:
ลำดับ.ขยาย(อินพุต.ลำดับ)
สำหรับเอาต์พุตใน Transaction.outputs:
output.ordinals = ordinals[:output.value]
ของ ordinals[:output.value]
coinbase_ordinals.extend (ลำดับ)
สำหรับเอาต์พุตใน block.transactions[0].outputs:
output.ordinals = coinbase_ordinals[:output.value]
ของ coinbase_ordinals[:output.value]
ฟังก์ชันนี้ใช้เพื่อกำหนดหมายเลขลำดับให้กับบล็อก Bitcoin ที่กำหนด ขั้นแรกจะคำนวณช่วงลำดับของรางวัลแรกและสุดท้ายของบล็อก ถัดไป จะวนซ้ำแต่ละธุรกรรมในบล็อก โดยกำหนดหมายเลขลำดับให้กับแต่ละเอาต์พุต สุดท้าย ผลลัพธ์ของธุรกรรมจะได้รับการกำหนดหมายเลขลำดับเพื่อให้แน่ใจว่า satoshi ทั้งหมดในบล็อกทั้งหมดมีหมายเลขลำดับที่ไม่ซ้ำกัน
กล่าวโดยสรุป ผ่านทฤษฎีลำดับ ต้นฉบับทำให้ Satoshi แต่ละอันมีเอกลักษณ์เฉพาะตัวผ่านการประมวลผล และกำหนดความคุ้นเคยที่หายากสำหรับ Satoshi แต่ละตัวผ่านกฎ การตระหนักถึงคุณลักษณะการสะสมหรือการกำหนดกฎเพื่อให้เหมาะกับการเล่นเกม
โปรโตคอล Atomicals เป็นโปรโตคอลที่เรียบง่ายและยืดหยุ่นสำหรับการสร้าง ถ่ายโอน และอัปเดตออบเจ็กต์ดิจิทัล (หรือที่รู้จักกันในชื่อโทเค็นที่ไม่สามารถเข้ากันได้) บนบล็อกเชนที่มีเอาต์พุตธุรกรรมที่ยังไม่ได้ใช้ (UTXO) เช่น Bitcoin อะตอมมิคัล (หรือ "อะตอม") เป็นวิธีการจัดการการสร้าง ถ่ายโอน และอัปเดตออบเจ็กต์ดิจิทัล โดยพื้นฐานแล้วคือห่วงโซ่การเป็นเจ้าของดิจิทัลที่กำหนดตามกฎง่ายๆ บางประการ
Arc-20 ใช้โมเดลเหรียญสี ซึ่งหมายความว่าโทเค็น Arc-20 ต้องมีการสนับสนุน satoshi ซึ่งแตกต่างจากโทเค็น Brc-20 ที่สร้างความแตกต่างด้วยการสั่งซื้อ เนื่องจากโทเค็น Arc-20 นั้นมีพื้นฐานมาจาก satoshi ทั้งหมด จึงสามารถแยกและรวมเข้าด้วยกันได้ (คล้ายกับ UTXO ที่กล่าวถึงในตอนต้นของบทความ) และสามารถถ่ายโอนโดยตรงผ่านเครือข่าย Bitcoin
ตัวอย่างเช่น การใช้โปรโตคอล Atomicals เราสามารถกำหนด 100 satoshis เป็น 100 “ตั๋วหนัง” และผู้ใช้สามารถใช้หนึ่งใน 100 satoshis เหล่านี้เพื่อชำระเงินที่โรงภาพยนตร์ที่รองรับโปรโตคอล Atomicals ซึ่งทำหน้าที่เป็นตั๋วหนัง
อย่างไรก็ตาม นักขุดและเครือข่าย Bitcoin ไม่สามารถรู้ได้ว่า UTXO ใดที่ถูก "ทำให้เป็นอะตอม" ซึ่งอาจถือว่าโทเค็น Arc-20 เป็นค่าธรรมเนียมการขุดโดยไม่ได้ตั้งใจ เพื่อแก้ไขปัญหานี้ Atomicals แนะนำให้โทเค็น Arc-20 แต่ละรายการควรเป็นเอาต์พุตแรกของธุรกรรมเพื่อหลีกเลี่ยงการทำลายโทเค็นโดยไม่ตั้งใจ
ต่อไป เราจะวิเคราะห์และเปรียบเทียบความเหมือนและความแตกต่างระหว่างทั้งสองโปรโตคอล
ข้อตกลงแบ่งออกเป็นสามขั้นตอนคร่าวๆ
{
“p”: “brc-20”,
“เปิด”: “ปรับใช้”,
“ติ๊ก”: “ordi”,
“สูงสุด”: “21000000”,
“ลิม”: “1,000”
}
เนื่องจาก BTC ไม่สามารถรับรู้ข้อมูลโทเค็นได้เมื่อผู้ปรับใช้โทเค็นใช้งานจริง จึงจำเป็นต้องมีตัวสร้างดัชนีเพื่อรับข้อมูลที่เกี่ยวข้องในห่วงโซ่ และใช้ข้อมูลนี้เพื่อสร้างบัญชีแยกประเภทนอกห่วงโซ่เพื่อบันทึกประวัติที่เกี่ยวข้องและกระบวนการที่เกี่ยวข้อง ดำเนินการและดำเนินการข้อมูล อัปเดต
ตัวสร้างดัชนีแบบออฟไลน์จำเป็นต้องบันทึกและอัปเดตบัญชีแยกประเภทออฟไลน์อย่างแม่นยำสำหรับการดำเนินการโทเค็นแต่ละรายการ อย่างไรก็ตาม เช่นเดียวกับบล็อกเชน เมื่อจำนวนธุรกรรมเพิ่มขึ้น ข้อมูลที่จัดเก็บโดยโหนดจะมีขนาดใหญ่ขึ้นเรื่อยๆ การรับรองความสมบูรณ์ของบัญชีแยกประเภทและการค้นหาข้อมูลที่จำเป็นต้องแก้ไขภายในข้อมูลจำนวนมหาศาลจะกลายเป็นความท้าทายสำหรับ BRC-20
ในทำนองเดียวกัน โปรโตคอล Arc-20 ยังจำเป็นต้องบันทึกข้อมูลที่เกี่ยวข้องตามรูปแบบบนห่วงโซ่ BTC เมื่อปรับใช้โทเค็น
program.command('init-dft')
.description('เริ่มต้นโทเค็น fungible (FT) แบบอะตอมมิกในโหมดการออกแบบกระจายอำนาจ')
.argument('<ทิกเกอร์>',<ticker>'สตริง')
.argument('<mint_amount>', 'number')
.argument('<max_mints>', 'number')
.argument('<mint_height>', 'number')
.argument('<file>', 'string')
.option('—rbf', 'ว่าจะเปิดใช้งาน RBF สำหรับธุรกรรมหรือไม่')
.option('—funding <string>', 'Use wallet alias wif key to be used for funding and change')
.option('—satsbyte <number>', 'Satoshis ต่อไบต์เป็นค่าธรรมเนียม', '15')
.option('—mintbitworkc <string>', 'ไม่ว่าจะต้องการหลักฐาน bitwork ของงานเพื่อทำ mint หรือไม่ ใช้กับธุรกรรมที่คอมมิต')
.option('—mintbitworkr <string>', 'ไม่ว่าจะต้องการหลักฐาน bitwork ของงานเพื่อทำ mint หรือไม่ ใช้กับธุรกรรมที่เปิดเผย')
.option('—bitworkc <string>', 'ไม่ว่าจะใส่หลักฐานงาน bitwork ใด ๆ ลงในโทเค็นมิ้นท์หรือไม่ ใช้กับธุรกรรมที่คอมมิต')
.option('—bitworkr <string>', 'ไม่ว่าจะใส่หลักฐานการทำงานของ bitwork ลงในโทเค็นมิ้นท์หรือไม่ ใช้กับธุรกรรมที่เปิดเผย')
.option('—parent <string>', 'ไม่ว่าจะต้องใช้ parent atomical ร่วมกับ mint หรือไม่')
.option('— parentowner <string>', 'เจ้าของ Wallet ของ parent เพื่อใช้จ่ายพร้อมกับ mint')
.option('—disablechalk', 'ว่าจะปิดการใช้งานการบันทึกด้วยชอล์กแบบเรียลไทม์ของแต่ละแฮชสำหรับการขุด Bitwork หรือไม่ ปรับปรุงประสิทธิภาพการขุดเพื่อตั้งค่าสถานะนี้')
.action(async (สัญลักษณ์, mintAmount, maxMints, mintHeight, ไฟล์, ตัวเลือก) => {
…..
}
ในซอร์สโค้ด atomicals-js cli คุณจะพบคำแนะนำในการเริ่มต้นโทเค็น พารามิเตอร์ที่ต้องบันทึกบนห่วงโซ่คือ:
ทิกเกอร์: ชื่อโทเค็น
mint_amount: จำนวนเหรียญกษาปณ์ทั้งหมด
max_mints: จำนวนมินต์ในครั้งเดียว
mint_height: ระบุความสูงของบล็อกเพื่อเริ่ม mint
ไฟล์: ข้อมูลเมตาที่เกี่ยวข้อง
แต่แตกต่างจาก Brc20 ตรงที่ Arc20 ใช้รูปแบบสกุลเงินที่มีสี หลังจากที่ป้อนข้อมูลที่เกี่ยวข้องกับโทเค็นลงในห่วงโซ่ BTC แล้ว โปรโตคอลจะยึดโทเค็นด้วย Sats:1 token = 1 sat。
ในเวลาเดียวกัน การใช้รูปแบบสกุลเงินสีช่วยให้ผู้ใช้สามารถทำธุรกรรมได้โดยตรงผ่านเครือข่าย BTC แทนที่จะเป็นบัญชีแยกประเภทนอกเครือข่าย เนื่องจากความสมดุลของโทเค็นนั้นสอดคล้องกับ satoshi ใน UTXO การเปลี่ยนแปลงที่เกี่ยวข้องในโทเค็นจึงสามารถสะท้อนให้เห็นบนห่วงโซ่ได้โดยสังหรณ์ใจ . ตัวสร้างดัชนีใน Arc-20 ใช้เพื่ออ่านข้อมูลการใช้งานที่เกี่ยวข้องของโทเค็นบนเชนเท่านั้น และตรวจสอบว่าโทเค็นใดที่สอดคล้องกับโปรโตคอล Arc-20
โครงสร้างการออกแบบของ Brc-20 อาศัยบัญชีแยกประเภทนอกเครือข่ายมากกว่า ในขณะที่ Arc-20 สอดคล้องกับลักษณะของ Btc มากกว่า และมีการกระจายอำนาจมากกว่าเมื่อเทียบกับ Brc-20 อย่างไรก็ตาม โมเดลเหรียญสีป้องกันไม่ให้ Arc-20 ดำเนินการออกเหรียญ Meme ให้เสร็จสิ้น เนื่องจากเหรียญ Meme มักจะมีปริมาณโทเค็นรวมที่สูง และคุณลักษณะของ 1 โทเค็น = 1 sat ต้องใช้ Btc จำนวนมากในการออก Meme เหรียญ
ผู้เขียน:https://twitter.com/YanAemons@YanAemons
เมื่อเร็วๆ นี้ การเปิดตัวโปรโตคอล Arc-20 ได้จุดประกายความคลั่งไคล้ในตลาดจารึกอีกครั้ง บทความนี้จะเจาะลึกรายละเอียด ข้อดีและข้อเสียของโปรโตคอลทั้งสองจากมุมมองทางเทคนิค
เดิมที Bitcoin ได้รับการออกแบบให้เป็นสกุลเงินดิจิทัลที่มีการกระจายอำนาจที่ปลอดภัย มีเสถียรภาพ และเชื่อถือได้ อย่างไรก็ตาม เนื่องจากสถาปัตยกรรมทางเทคนิคและภาษาสคริปต์ที่ค่อนข้างยืดหยุ่นน้อยกว่าเมื่อเทียบกับ Ethereum Bitcoin จึงไม่เหมาะสำหรับการดำเนินการสัญญาอัจฉริยะโดยตรง
อย่างไรก็ตาม ความคิดสร้างสรรค์และความพยายามอันกล้าหาญของนักพัฒนาได้นำความเจริญรุ่งเรืองมาสู่ระบบนิเวศของ Bitcoin ตัวอย่างทั่วไปอย่างหนึ่งคือโปรโตคอล Brc-20 แนวคิดหลักของโปรโตคอลคือรูปแบบโทเค็นทดลองซึ่งมีศูนย์กลางอยู่ที่มีม ทุกคนสามารถสร้างโทเค็นเหล่านี้ได้โดยตรงบนเครือข่าย Bitcoin ตามลำดับก่อนหลังโดยไม่ต้องอาศัยสัญญาอัจฉริยะ คุณสมบัติที่สำคัญของโทเค็น Brc-20 คือลักษณะการกระจายอำนาจ ซึ่งขจัดกลไกต่างๆ เช่น การขายส่วนตัว การขายล่วงหน้า และการปลดล็อคหรือการวางเดิมพัน สิ่งนี้ทำให้มั่นใจได้ถึงการมีส่วนร่วมแบบกระจายอำนาจอย่างแท้จริง
ในบริบทนี้ โปรโตคอล Arc-20 ได้จุดประกายความสนใจอย่างมากในจารึกอีกครั้ง
โปรโตคอล Brc-20 และ Arc-20 นั้นมีพื้นฐานมาจาก Btc chain ดังนั้นก่อนที่เราจะแนะนำโปรโตคอล Arc-20 และโปรโตคอล Brc-20 อย่างเป็นทางการ เรามาทำความเข้าใจ UTXO กันก่อน (เอาต์พุตธุรกรรมที่ยังไม่ได้ใช้)
เมื่อเราพูดถึง Bitcoin โมเดล UTXO (เอาท์พุทธุรกรรมที่ไม่ได้ใช้) เป็นแนวคิดการออกแบบที่สำคัญ มันเป็นรูปแบบบัญชีประเภทหนึ่งที่ใช้โดย Bitcoin ซึ่งแตกต่างจากรูปแบบยอดเงินคงเหลือแบบดั้งเดิม เช่น บัญชีธนาคาร
ในรูปแบบ UTXO ทุกธุรกรรม Bitcoin จะสร้างชุดของเอาต์พุตที่ยังไม่ได้ใช้ โดยแต่ละเอาต์พุตจะแสดงถึงจำนวน Bitcoin ที่แน่นอน ผลลัพธ์ที่ยังไม่ได้ใช้เหล่านี้เป็นหน่วยของสกุลเงินดิจิทัลที่ไม่ได้ใช้โดยพื้นฐานแล้ว คล้ายกับธนบัตรหรือเหรียญกษาปณ์ เมื่อคุณได้รับ Bitcoin แสดงว่ามีคนสร้างเอาต์พุตที่ยังไม่ได้ใช้ใหม่ซึ่งเชื่อมโยงกับที่อยู่ Bitcoin ของคุณ เอาต์พุตนี้คือ UTXO
มาอธิบายโมเดล UTXO ด้วยตัวอย่างง่ายๆ:
หากคุณมีธุรกรรมสองรายการ รายการหนึ่งได้รับ 0.7 BTC และอีกรายการได้รับ 0.5 BTC คุณจะมี UTXO สองรายการ รายการหนึ่งมีมูลค่า 0.7 BTC และอีกรายการมีมูลค่า 0.5 BTC เมื่อคุณต้องการจ่าย 1 BTC คุณไม่สามารถใช้ UTXO เพียงอันเดียวได้ แต่คุณต้องรวม UTXO ทั้งสองเข้ากับ UTXO ใหม่ (รวมเป็น 1.2 BTC) จากนั้นส่ง 1 BTC ไปยังผู้รับ โดยเหลือ 0.2 BTC กลับคืนสู่ตัวเองเป็นการเปลี่ยนแปลง อย่างไรก็ตาม การเปลี่ยนแปลงที่เกิดขึ้นจริงอาจน้อยกว่า 0.2 BTC เนื่องจากผู้ใช้จำเป็นต้องจ่ายค่าธรรมเนียมการทำธุรกรรมให้กับนักขุดเพื่อให้แน่ใจว่าการทำธุรกรรมจะราบรื่น
BRC-20 เป็นมาตรฐานการทดลองที่แสดงให้เห็นถึงความเป็นไปได้ในการสร้างโทเค็นที่ใช้งานได้บนเลเยอร์ 1 ของ Bitcoin โดยใช้ประโยชน์จากทฤษฎีลำดับและคำจารึก โปรโตคอล Ordinals (โทเค็นแรกที่สร้างตามมาตรฐานของโปรโตคอล) อนุญาตให้เนื้อหา รวมถึงข้อความ รูปภาพ หรือวิดีโอ ถูกพิมพ์ลงบนหน่วยที่เล็กที่สุดของ Bitcoin นั่นคือ Satoshi ดังนั้นจึงสร้างสินทรัพย์ดิจิทัลที่มีเอกลักษณ์
ทฤษฎีลำดับเป็นกุญแจสำคัญในการดำเนินการจารึกบนเครือข่าย BTC
โดยพื้นฐานแล้ว Satoshi แต่ละตัวจะเหมือนกัน และ Ordinals ได้พัฒนาโปรโตคอลการสั่งซื้อ Satoshi ผ่านทฤษฎีการเล่าเรื่อง การสั่งซื้อนี้ขึ้นอยู่กับการขุด Satoshi และลำดับอินพุตและเอาท์พุตของธุรกรรม
มีหลายวิธีในการแสดงเลขลำดับ:
นิพจน์ระดับประกอบด้วยสี่ส่วน: A°B′C″D‴ และ A, B, C และ D แสดงถึงความหมายที่แตกต่างกัน:
ทฤษฎีการบรรยายกำหนดลำดับของ Satoshi ผ่านการแสดงออกของระดับ และกำหนดระดับความหายากที่แตกต่างกันสำหรับ Satoshi แต่ละตัวผ่านลำดับ ดังนั้นจึงบรรลุถึงความเป็นเอกลักษณ์ของ Satoshi แต่ละตัว
ตัวอย่างเช่น ระดับที่มีอยู่จะแสดงเป็น 1°1′0″0‴โดยที่
ด้วยคำจำกัดความของความหายากข้างต้น Satoshi นี้จึงถูกกำหนดให้เป็น stoshi ที่หายาก
กระบวนการทั่วไปมีดังนี้:
py# คำนวณการบรรยาย (รางวัล) ของบล็อกตามความสูง
เงินอุดหนุนแน่นอน(ส่วนสูง):
กลับ 50*100_000_000 >> ความสูง // 210_000
ฟังก์ชันนี้ใช้ในการคำนวณรางวัลสำหรับบล็อก Bitcoin ที่มีความสูงที่กำหนด โดยที่ 50*100_000_000 เป็นรางวัลเริ่มต้นของ Bitcoin >> เป็นตัวดำเนินการกะด้านขวา เทียบเท่ากับการหารด้วยจำนวนเต็ม 2 ส่วน ฟังก์ชันนี้ส่งคืนจำนวนเต็มที่แสดงถึงจำนวนรางวัลสำหรับบล็อกที่ความสูงที่กำหนด
def first_ordinal (ความสูง):
เริ่มต้น = 0
สำหรับ h ในระยะ (สูง):
เริ่มต้น += เงินอุดหนุน(h)
กลับเริ่มต้น
ฟังก์ชันนี้จะคำนวณเลขลำดับของรางวัลแรกสำหรับบล็อกที่ความสูงที่กำหนด คำนวณจำนวนรางวัลทั้งหมดตั้งแต่บล็อกแรกไปจนถึงความสูงที่กำหนดโดยวนซ้ำความสูงและสะสมรางวัลสำหรับแต่ละบล็อก ทำให้ได้เลขลำดับของรางวัลแรก
def มอบหมาย_ordinals (บล็อก):
แรก = first_ordinal(block.height)
สุดท้าย = แรก + เงินอุดหนุน(block.height)
coinbase_ordinals =list(ช่วง (แรก, สุดท้าย))
def มอบหมาย_ordinals (บล็อก):
แรก = first_ordinal(block.height)
สุดท้าย = แรก + เงินอุดหนุน(block.height)
coinbase_ordinals =list(ช่วง (แรก, สุดท้าย))
สำหรับการทำธุรกรรมใน block.transactions[1:]:
ลำดับ = []
สำหรับการป้อนข้อมูลใน Transaction.inputs:
ลำดับ.ขยาย(อินพุต.ลำดับ)
สำหรับเอาต์พุตใน Transaction.outputs:
output.ordinals = ordinals[:output.value]
ของ ordinals[:output.value]
coinbase_ordinals.extend (ลำดับ)
สำหรับเอาต์พุตใน block.transactions[0].outputs:
output.ordinals = coinbase_ordinals[:output.value]
ของ coinbase_ordinals[:output.value]
ฟังก์ชันนี้ใช้เพื่อกำหนดหมายเลขลำดับให้กับบล็อก Bitcoin ที่กำหนด ขั้นแรกจะคำนวณช่วงลำดับของรางวัลแรกและสุดท้ายของบล็อก ถัดไป จะวนซ้ำแต่ละธุรกรรมในบล็อก โดยกำหนดหมายเลขลำดับให้กับแต่ละเอาต์พุต สุดท้าย ผลลัพธ์ของธุรกรรมจะได้รับการกำหนดหมายเลขลำดับเพื่อให้แน่ใจว่า satoshi ทั้งหมดในบล็อกทั้งหมดมีหมายเลขลำดับที่ไม่ซ้ำกัน
กล่าวโดยสรุป ผ่านทฤษฎีลำดับ ต้นฉบับทำให้ Satoshi แต่ละอันมีเอกลักษณ์เฉพาะตัวผ่านการประมวลผล และกำหนดความคุ้นเคยที่หายากสำหรับ Satoshi แต่ละตัวผ่านกฎ การตระหนักถึงคุณลักษณะการสะสมหรือการกำหนดกฎเพื่อให้เหมาะกับการเล่นเกม
โปรโตคอล Atomicals เป็นโปรโตคอลที่เรียบง่ายและยืดหยุ่นสำหรับการสร้าง ถ่ายโอน และอัปเดตออบเจ็กต์ดิจิทัล (หรือที่รู้จักกันในชื่อโทเค็นที่ไม่สามารถเข้ากันได้) บนบล็อกเชนที่มีเอาต์พุตธุรกรรมที่ยังไม่ได้ใช้ (UTXO) เช่น Bitcoin อะตอมมิคัล (หรือ "อะตอม") เป็นวิธีการจัดการการสร้าง ถ่ายโอน และอัปเดตออบเจ็กต์ดิจิทัล โดยพื้นฐานแล้วคือห่วงโซ่การเป็นเจ้าของดิจิทัลที่กำหนดตามกฎง่ายๆ บางประการ
Arc-20 ใช้โมเดลเหรียญสี ซึ่งหมายความว่าโทเค็น Arc-20 ต้องมีการสนับสนุน satoshi ซึ่งแตกต่างจากโทเค็น Brc-20 ที่สร้างความแตกต่างด้วยการสั่งซื้อ เนื่องจากโทเค็น Arc-20 นั้นมีพื้นฐานมาจาก satoshi ทั้งหมด จึงสามารถแยกและรวมเข้าด้วยกันได้ (คล้ายกับ UTXO ที่กล่าวถึงในตอนต้นของบทความ) และสามารถถ่ายโอนโดยตรงผ่านเครือข่าย Bitcoin
ตัวอย่างเช่น การใช้โปรโตคอล Atomicals เราสามารถกำหนด 100 satoshis เป็น 100 “ตั๋วหนัง” และผู้ใช้สามารถใช้หนึ่งใน 100 satoshis เหล่านี้เพื่อชำระเงินที่โรงภาพยนตร์ที่รองรับโปรโตคอล Atomicals ซึ่งทำหน้าที่เป็นตั๋วหนัง
อย่างไรก็ตาม นักขุดและเครือข่าย Bitcoin ไม่สามารถรู้ได้ว่า UTXO ใดที่ถูก "ทำให้เป็นอะตอม" ซึ่งอาจถือว่าโทเค็น Arc-20 เป็นค่าธรรมเนียมการขุดโดยไม่ได้ตั้งใจ เพื่อแก้ไขปัญหานี้ Atomicals แนะนำให้โทเค็น Arc-20 แต่ละรายการควรเป็นเอาต์พุตแรกของธุรกรรมเพื่อหลีกเลี่ยงการทำลายโทเค็นโดยไม่ตั้งใจ
ต่อไป เราจะวิเคราะห์และเปรียบเทียบความเหมือนและความแตกต่างระหว่างทั้งสองโปรโตคอล
ข้อตกลงแบ่งออกเป็นสามขั้นตอนคร่าวๆ
{
“p”: “brc-20”,
“เปิด”: “ปรับใช้”,
“ติ๊ก”: “ordi”,
“สูงสุด”: “21000000”,
“ลิม”: “1,000”
}
เนื่องจาก BTC ไม่สามารถรับรู้ข้อมูลโทเค็นได้เมื่อผู้ปรับใช้โทเค็นใช้งานจริง จึงจำเป็นต้องมีตัวสร้างดัชนีเพื่อรับข้อมูลที่เกี่ยวข้องในห่วงโซ่ และใช้ข้อมูลนี้เพื่อสร้างบัญชีแยกประเภทนอกห่วงโซ่เพื่อบันทึกประวัติที่เกี่ยวข้องและกระบวนการที่เกี่ยวข้อง ดำเนินการและดำเนินการข้อมูล อัปเดต
ตัวสร้างดัชนีแบบออฟไลน์จำเป็นต้องบันทึกและอัปเดตบัญชีแยกประเภทออฟไลน์อย่างแม่นยำสำหรับการดำเนินการโทเค็นแต่ละรายการ อย่างไรก็ตาม เช่นเดียวกับบล็อกเชน เมื่อจำนวนธุรกรรมเพิ่มขึ้น ข้อมูลที่จัดเก็บโดยโหนดจะมีขนาดใหญ่ขึ้นเรื่อยๆ การรับรองความสมบูรณ์ของบัญชีแยกประเภทและการค้นหาข้อมูลที่จำเป็นต้องแก้ไขภายในข้อมูลจำนวนมหาศาลจะกลายเป็นความท้าทายสำหรับ BRC-20
ในทำนองเดียวกัน โปรโตคอล Arc-20 ยังจำเป็นต้องบันทึกข้อมูลที่เกี่ยวข้องตามรูปแบบบนห่วงโซ่ BTC เมื่อปรับใช้โทเค็น
program.command('init-dft')
.description('เริ่มต้นโทเค็น fungible (FT) แบบอะตอมมิกในโหมดการออกแบบกระจายอำนาจ')
.argument('<ทิกเกอร์>',<ticker>'สตริง')
.argument('<mint_amount>', 'number')
.argument('<max_mints>', 'number')
.argument('<mint_height>', 'number')
.argument('<file>', 'string')
.option('—rbf', 'ว่าจะเปิดใช้งาน RBF สำหรับธุรกรรมหรือไม่')
.option('—funding <string>', 'Use wallet alias wif key to be used for funding and change')
.option('—satsbyte <number>', 'Satoshis ต่อไบต์เป็นค่าธรรมเนียม', '15')
.option('—mintbitworkc <string>', 'ไม่ว่าจะต้องการหลักฐาน bitwork ของงานเพื่อทำ mint หรือไม่ ใช้กับธุรกรรมที่คอมมิต')
.option('—mintbitworkr <string>', 'ไม่ว่าจะต้องการหลักฐาน bitwork ของงานเพื่อทำ mint หรือไม่ ใช้กับธุรกรรมที่เปิดเผย')
.option('—bitworkc <string>', 'ไม่ว่าจะใส่หลักฐานงาน bitwork ใด ๆ ลงในโทเค็นมิ้นท์หรือไม่ ใช้กับธุรกรรมที่คอมมิต')
.option('—bitworkr <string>', 'ไม่ว่าจะใส่หลักฐานการทำงานของ bitwork ลงในโทเค็นมิ้นท์หรือไม่ ใช้กับธุรกรรมที่เปิดเผย')
.option('—parent <string>', 'ไม่ว่าจะต้องใช้ parent atomical ร่วมกับ mint หรือไม่')
.option('— parentowner <string>', 'เจ้าของ Wallet ของ parent เพื่อใช้จ่ายพร้อมกับ mint')
.option('—disablechalk', 'ว่าจะปิดการใช้งานการบันทึกด้วยชอล์กแบบเรียลไทม์ของแต่ละแฮชสำหรับการขุด Bitwork หรือไม่ ปรับปรุงประสิทธิภาพการขุดเพื่อตั้งค่าสถานะนี้')
.action(async (สัญลักษณ์, mintAmount, maxMints, mintHeight, ไฟล์, ตัวเลือก) => {
…..
}
ในซอร์สโค้ด atomicals-js cli คุณจะพบคำแนะนำในการเริ่มต้นโทเค็น พารามิเตอร์ที่ต้องบันทึกบนห่วงโซ่คือ:
ทิกเกอร์: ชื่อโทเค็น
mint_amount: จำนวนเหรียญกษาปณ์ทั้งหมด
max_mints: จำนวนมินต์ในครั้งเดียว
mint_height: ระบุความสูงของบล็อกเพื่อเริ่ม mint
ไฟล์: ข้อมูลเมตาที่เกี่ยวข้อง
แต่แตกต่างจาก Brc20 ตรงที่ Arc20 ใช้รูปแบบสกุลเงินที่มีสี หลังจากที่ป้อนข้อมูลที่เกี่ยวข้องกับโทเค็นลงในห่วงโซ่ BTC แล้ว โปรโตคอลจะยึดโทเค็นด้วย Sats:1 token = 1 sat。
ในเวลาเดียวกัน การใช้รูปแบบสกุลเงินสีช่วยให้ผู้ใช้สามารถทำธุรกรรมได้โดยตรงผ่านเครือข่าย BTC แทนที่จะเป็นบัญชีแยกประเภทนอกเครือข่าย เนื่องจากความสมดุลของโทเค็นนั้นสอดคล้องกับ satoshi ใน UTXO การเปลี่ยนแปลงที่เกี่ยวข้องในโทเค็นจึงสามารถสะท้อนให้เห็นบนห่วงโซ่ได้โดยสังหรณ์ใจ . ตัวสร้างดัชนีใน Arc-20 ใช้เพื่ออ่านข้อมูลการใช้งานที่เกี่ยวข้องของโทเค็นบนเชนเท่านั้น และตรวจสอบว่าโทเค็นใดที่สอดคล้องกับโปรโตคอล Arc-20
โครงสร้างการออกแบบของ Brc-20 อาศัยบัญชีแยกประเภทนอกเครือข่ายมากกว่า ในขณะที่ Arc-20 สอดคล้องกับลักษณะของ Btc มากกว่า และมีการกระจายอำนาจมากกว่าเมื่อเทียบกับ Brc-20 อย่างไรก็ตาม โมเดลเหรียญสีป้องกันไม่ให้ Arc-20 ดำเนินการออกเหรียญ Meme ให้เสร็จสิ้น เนื่องจากเหรียญ Meme มักจะมีปริมาณโทเค็นรวมที่สูง และคุณลักษณะของ 1 โทเค็น = 1 sat ต้องใช้ Btc จำนวนมากในการออก Meme เหรียญ
ผู้เขียน:https://twitter.com/YanAemons@YanAemons