CryptoPunk เป็นตลาดซื้อขาย NFT แบบกระจายศูนย์แห่งแรกของโลก
CryptoPunk ไม่ได้เป็นเพียงโปรเจกต์ blue-chip NFT ชั้นนำเท่านั้น (ราคาพื้นคือ 70 ETH ประมาณ 15 W)นอกจากนี้ยังเป็นที่มาของแรงบันดาลใจสำหรับโปรโตคอลมาตรฐาน ERC 721 ในภายหลัง
ปัจจุบันตลาดการซื้อขาย NFT เป็นเส้นทางที่มีรายได้สูงสุดในอุตสาหกรรมบล็อกเชนทั้งหมด ยกเว้น Ethereum เอง ในขณะที่ OpenSea, x2y2 และ LooksRare เป็นแพลตฟอร์ม 3 อันดับแรก และปริมาณธุรกรรมรวมกันมากกว่า 99%
วันนี้เราจะตีความซอร์สโค้ดเพียง 230 บรรทัดของ CryptoPunk การดำเนินการตามรูปแบบคำสั่งซื้อและขั้นตอนการทำธุรกรรมสำรวจข้อดีและข้อเสียของตลาด NFT ในตัวโดยเฉพาะและยังเป็นการปูทางสำหรับการวิเคราะห์ซอร์สโค้ดแบบทีละขั้นตอนของรูปแบบสัญญาของตลาดซื้อขาย NFT ที่สำคัญสามแห่ง
ชื่อระดับแรก
ตลาดการซื้อขายในตัวของ CryptoPunk
คำอธิบายภาพ

อ่านเพิ่มเติม:[การตีความซอร์สโค้ด] NFT ที่คุณซื้อคืออะไรกันแน่
ชื่อระดับแรก
1. โมเดลคำสั่งที่สวยงามของพังก์
โปรดจำไว้ว่าวิธีที่เราซื้อและขายสินค้าในความเป็นจริง อาจมีสามประเภท
ผู้ขายเสนอราคา ผู้ซื้อจ่าย → เท่ากับการซื้อในซูเปอร์มาร์เก็ต
ผู้ซื้อเสนอราคาและผู้ขายตกลง → เท่ากับการต่อรองราคาในตลาดผัก
การต่อรองแบบออฟไลน์ การทำธุรกรรมแบบออนไลน์ → เท่ากับการประมูลแบบออฟไลน์
ไม่ว่าจะด้วยวิธีใด เพื่อที่จะบรรลุข้อตกลงในที่สุด จำเป็นต้องทำการแลกเปลี่ยน ไม่เพียงแต่เพื่อป้องกันไม่ให้ผู้ขายไม่ให้สินค้า แต่ยังเพื่อป้องกันไม่ให้ผู้ซื้อไม่ให้เงินด้วย
แม้ว่าเทคโนโลยี blockchain จะแก้ปัญหาการไม่ให้เงินได้อย่างสมบูรณ์แบบ แต่ก็นำมาซึ่งความเจ็บปวดในการเจรจาต่อรอง ท้ายที่สุด ต้องอัปโหลด "การตัดราคาด้วยมีด" ไปยังห่วงโซ่และไม่สามารถตัดได้อย่างแน่นอน จุดทศนิยมเหมือน Pinduoduo 6 หลัก (- .-)
ตลาดของพังค์รองรับการทำธุรกรรมทั้งสามประเภทนี้ในเวลาเดียวกัน ผู้ขายสามารถเสนอราคา ผู้ซื้อสามารถเสนอราคา หรือสัญญาสามารถช่วยคุณต่อรองราคาได้หลังจากการเจรจา ไม่มีการหักค่าลิขสิทธิ์ในกระบวนการทั้งหมด และ รหัสสั้น 230 บรรทัดยังช่วยขจัดความเป็นไปได้ของประตูหลัง
โครงสร้างการสั่งซื้อของเขานั้นง่ายมากและแบ่งออกเป็นสองประเภท:ชื่อเรื่องรอง
1.1 รายการข้อเสนอของผู้ขาย Offer
เช่นเดียวกับ NFT มาตรฐาน พังก์แต่ละตัวมี ID ที่ไม่ซ้ำกัน ดังนั้นพังก์แต่ละตัวจึงมีสมุดคำสั่งซื้อของข้อเสนอพิเศษ สิทธิพิเศษนี้หมายความว่าหากฉันรีโควตไม่ว่าจะเป็นการเพิ่มราคาหรือการลดราคา มันจะแทนที่ข้อเสนอก่อนหน้านี้ .
ที่นี่ ไม่ว่าจะเป็นการขายจะถูกทำเครื่องหมายด้วย isForSale และผู้ซื้อที่กำหนดจะถูกทำเครื่องหมายด้วย onlySellTo ซึ่งใช้สำหรับการต่อรองนอกสายโซ่และการดำเนินการของฟังก์ชันการทำธุรกรรมบนสายโซ่

เรารู้สึกได้อย่างชัดเจนว่ารูปแบบการสั่งซื้อนั้นเรียบง่ายมากและไม่มีแม้แต่ระยะเวลาที่ใช้ได้ของคำสั่งซื้อทั่วไปตราบใดที่ผู้ขายของคำสั่งซื้อที่รอดำเนินการไม่ได้ริเริ่มที่จะยกเลิกผู้ซื้อก็สามารถซื้อได้เสมอ ได้ในราคานี้
หมายเหตุพิเศษ: แม้ว่าสิ่งนี้จะคล้ายกับคำสั่งขายระยะยาวที่ได้รับอนุญาตของ opensea แต่จะไม่มีธุรกรรมราคาที่ผิดปกติ เนื่องจาก Punk จะยกเลิกบันทึกใบเสนอราคาในอดีตเมื่อทำการโอน
1.2. ผู้ซื้อเสนอราคา
รูปแบบการเสนอราคาก็ง่ายมาก โดยพื้นฐานแล้วเท่ากับ (ฉันต้องการซื้อ นี่ เท่าไหร่สำหรับสิ่งนี้) สี่เท่า
นอกจากรูปแบบที่ผู้ขายเสนอราคาและรอซื้อแล้ว ใครๆ ก็สามารถประกาศว่าฉันยินดีซื้อพังก์ตัวใดด้วยจำนวน x โดยการส่งราคาเสนอ ตัวแปร hasBid จะถูกจัดเตรียมไว้ที่นี่เพื่อสะท้อนว่าราคาเสนอปัจจุบันนั้นถูกต้องหรือไม่
ผู้ซื้อสามารถยกเลิกการเสนอราคาครั้งก่อนได้ตลอดเวลา แต่ถ้าไม่มีการครอบคลุมราคาที่สูงขึ้น ราคาเสนอเดิมจะยังคงอยู่ (แม้ว่าจะกลายเป็นไม่ถูกต้อง) นี่คือรูปแบบการแบ่งปันข้อมูลเพื่อช่วยเหลือผู้ซื้อรายอื่นในการเสนอราคา

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

ตัวอย่างเช่น หลังจากผู้ขายทำข้อตกลง ผู้ขายจะแก้ไขจำนวนรวมของ Punk ที่ผู้ใช้บันทึกไว้ใน balanceOf และจะแก้ไข punkIndexToAddress หลักซึ่งบันทึกว่าเจ้าของ PunkID ใดเป็นข้อมูลใด
สำหรับความหมายของข้อมูลพื้นฐานของโปรโตคอลมาตรฐาน คุณสามารถขยายการอ่านได้
ชื่อระดับแรก
ชื่อเรื่องรอง
2.1 ผู้ขายเสนอราคาก่อนและผู้ซื้อเสนอราคาอีกครั้ง
ถ้าฉันต้องการขายพังก์ในฐานะหนึ่งในผู้ใช้ที่โดดเด่นซึ่งถือพังก์ ฉันต้องดำเนินการ 3 ขั้นตอน
ผู้ขายเสนอราคา -> ผู้ซื้อส่งใบสั่งซื้อ -> ผู้ขายถอนเงินที่ได้รับ
ขยายเพื่อดู
ข้อเสนอของผู้ขาย: ผู้ขายดำเนินการตั้งค่า offerPunkForSale และเต็มใจที่จะขาย nft จำนวนหนึ่งในราคาที่แน่นอน จากนั้นรายการสั่งซื้อจะเป็นดังนี้

ผู้ซื้อซื้อ: ใช้วิธี buyPunk และมูลค่าของธุรกรรมเกินค่าขั้นต่ำของผู้ขายเพื่อให้การซื้อสำเร็จ **
ผู้ขายจำเป็นต้องโทรถอนอีกครั้งเพื่อถอนรายได้ปัจจุบันของเขา (นั่นคือมูลค่าที่ฝากไว้ในสัญญาเมื่อผู้ซื้อซื้อ)
หากจู่ๆ ผู้ขายไม่ต้องการขาย: โทรหา punkNoLongerForSale เพื่อเสนอราคา
กระบวนการใดจะง่ายกว่านี้
ชื่อเรื่องรอง
2.2. ผู้ซื้อเสนอราคาก่อนและผู้ขายยืนยันก่อน
ถ้าฉันไม่ได้เป็นเจ้าของพังก์แต่มีจุดอ่อนสำหรับ ID บางอย่าง ฉันยังสามารถเสนอราคาก่อนใน 3 ขั้นตอน:
ผู้ซื้อเสนอราคา Bid->ผู้ขายยอมรับ->ผู้ขายถอนเงินที่ได้รับ
ขยายเพื่อดู
ข้อเสนอของผู้ซื้อ: โทร enterBidForPunk และใช้ eth เป็นมูลค่า และเงินจะถูกเก็บไว้ในสัญญา punk
ผู้ขายยอมรับ: โทร acceptBidForPunk และยอมรับธุรกรรมในราคาที่ผู้ซื้อเสนอ หลังจากดำเนินการ ผู้ซื้อได้รับ NFTID ของพังค์แล้ว
การถอนเงินที่ได้รับจากผู้ขาย: ต้องดำเนินการถอนอีกครั้งเพื่อถอนจำนวนเงินที่ถอนได้ทั้งหมด
ชื่อเรื่องรอง
2.3 การเจรจาต่อรองแบบออฟไลน์และการดำเนินการแบบออนไลน์
ข้อสุดท้ายนั้นง่ายกว่านั่นคือราคาได้รับการต่อรองอย่างสมบูรณ์และผู้ขายอนุมัติราคา
offerPunkForSaleToAddress ไม่เพียงกำหนดราคาสำหรับหนังสือสั่งซื้อเท่านั้น แต่ยังกำหนดที่อยู่เฉพาะของผู้ซื้อเฉพาะSellTo ด้วย เฉพาะที่อยู่นี้เท่านั้นที่สามารถทำการสั่งซื้อให้เสร็จสมบูรณ์ได้
ชื่อระดับแรก
3. จะประเมินตลาดซื้อขายของพังค์อย่างไร?
เมื่อมองแวบแรก มันเป็นรูปแบบการทำธุรกรรม NFT ขั้นต่ำที่เป็นมาตรฐานมาก ซึ่งสามารถรับรู้ถึงการเชื่อมโยงหลักของการทำธุรกรรมได้อย่างถูกต้อง เสถียร และเชื่อถือได้ แต่มีทั้งได้และเสีย มีข้อดีอะไร และขาดอะไร
3.1 ต้นทุนก๊าซต่ำ
เนื่องจากมีเพียงหนังสือสั่งซื้อง่ายๆ สองรายการ คือ offer และ bid เท่านั้นที่ถูกจัดเก็บไว้ใน chain และเก็บเฉพาะส่วนราคาสูงสุดล่าสุดเท่านั้น (นอกเหนือจาก storage ต้องใช้ high gas แต่การปรับเปลี่ยนต้องใช้ gas ต่ำ) สำหรับรายละเอียด โปรดดูที่ Ethereum Yellow กระดาษท้ายบทความด้านล่างกำหนดความละเอียดของการคำนวณก๊าซ:[การตีความซอร์สโค้ด] NFT ที่คุณซื้อคืออะไรกันแน่
ดังนั้นปริมาณการใช้ก๊าซโดยรวมในตลาด Punk จึงไม่สูงนัก ผู้เขียนคำนวณว่าหลังจากเสร็จสิ้นกระบวนการซื้อ ขาย และแยกก๊าซทั้งหมดแล้ว ปริมาณการใช้ก๊าซจะอยู่ที่ประมาณ 30 W (รวมค่าใช้จ่ายทั้งหมดของทั้งผู้ซื้อและผู้ขาย)
จัดเรียงตามการทำธุรกรรม GAS: Punk< opensea < GEM < Genie < X2Y2< Looksrare
3.2 ไม่มีค่าธรรมเนียมการจัดการ
ปัจจุบันสามารถเห็นได้บนห่วงโซ่ที่ Punk มีธุรกรรมทั้งหมด 21 W หากสามารถทำธุรกรรมได้ 5 รายการในหนึ่งคำสั่งจะมีการโอน 4 W สำหรับชิปสีน้ำเงินอันดับต้น ๆ ที่มีมูลค่าตลาดนับพันล้าน การไม่เก็บค่าลิขสิทธิ์ถือเป็นเรื่องรุนแรง อ่า
แน่นอน มันไม่ยุติธรรมที่จะเปรียบเทียบบริการการซื้อขายในตัวกับตลาดการซื้อขายเต็มเวลา แต่จริง ๆ แล้วเป็นเพราะฟังก์ชันการทำธุรกรรมในตัวของ punk นั้นยังห่างไกลจากระบบการทำงานที่สมบูรณ์ดังนั้นจึงมีตลาดต่าง ๆ มากมาย
ชื่อเรื่องรองPunk( 0% )< X2Y2( 0.5% ) < Looksrare( 2% ) < OS( 2.5% )
3.3 การประเมินข้อบกพร่องของกลไก
สรุป 1: กลไกการซื้อและขายไม่เอื้อต่อสภาพคล่อง
สภาพคล่องเป็นสิ่งสำคัญมากสำหรับ NFT และเห็นได้ชัดว่าต้องไปหาห่วงโซ่ทุกครั้งที่มีใบเสนอราคา ผู้ขายไม่เต็มใจที่จะย้ายหากพวกเขาไม่มีเงิน และผู้ซื้อขาดแรงจูงใจเมื่อมันยากที่จะดำเนินการ ข้อตกลง ดังนั้นผู้ประมูลจะถูกเรียกเก็บเงินและต้องล็อคสินทรัพย์เป็นพังก์แม้ว่าจะไม่มีความล้มเหลวในการหักเงินก็ตามก็จะนำไปสู่การสูญเสียมูลค่าตามเวลาของสินทรัพย์ของผู้ซื้อ
ในเรื่องนี้ แพลตฟอร์มต่างๆ เช่น Os ได้นำวิธีลายเซ็นมาใช้ในภายหลังเพื่อให้ตรงกับความตั้งใจในการซื้อนอกเครือข่าย ใบเสนอราคา แทบไม่ต้องใช้น้ำมันและต้องลงทะเบียนเฉพาะผลลัพธ์ของคำสั่งซื้อบนเครือข่ายเพื่อดำเนินการโอน
การระเบิดนี้เป็นการแข่งขันเพื่อประสิทธิภาพระหว่างการรวมศูนย์และการกระจายอำนาจ แน่นอน ตลาดปัจจุบันยังคงต้องการประสิทธิภาพ
สรุป 2: รูปแบบใบสั่งไม่เอื้อต่อการดำเนินการเป็นชุด
ความเรียบง่ายของรูปแบบการสั่งซื้อแบบพังก์สามารถถือเป็นรูปแบบหนึ่งของรูปแบบการทำธุรกรรม แต่ความต้องการสำหรับการทำธุรกรรมแบบชุดเป็นอย่างไร
ผู้ขาย: รับแต่ละรหัสและแต่ละคำสั่งซื้อและยืนยันการทำธุรกรรม
ผู้ซื้อ: รับทุกการเสนอราคาสำหรับทุกรหัสและรอข้อตกลง
แม้ว่ากองทุนรายได้จะมีรูปแบบที่สามารถสะสมและถอนเป็นชุดได้ แต่ก็ไม่ใช่ประเด็น
การทำธุรกรรมใบเสนอราคาเป็นชุดเป็นสิ่งจำเป็นในตลาด NFT
ณ จุดนี้ ทั้ง x2y2 และ Looksrare กำลังใช้ความพยายามในการปิดล้อมระบบปฏิบัติการ และแม้แต่ใช้ตัวรวบรวมเช่น Gem เพื่อทะลวงผ่านข้อจำกัดของทราฟฟิกพูล และโปรโตคอล SeaPort ล่าสุดของระบบปฏิบัติการยังใช้รูปแบบคำสั่งใหม่สำหรับธุรกรรมแบบรวม ดังนั้น ที่สินทรัพย์ใด ๆ สามารถ การรวมกันนั้นสอดคล้องกับการรวมสินทรัพย์ใด ๆ และรับรู้ธุรกรรมในตลาดโดยตรง
อย่างไรก็ตาม ซอร์สโค้ดของ Punk นั้นล้ำหน้าเกินไปและขาดฟังก์ชันในการหัก ณ ที่จ่าย ดังนั้นจึงไม่มีโอกาสทำธุรกรรมเป็นชุด
สรุป 3: กระบวนการประมูลเดียวไม่เอื้อต่อการจับคู่ธุรกรรมและการกำหนดราคา
การทำธุรกรรมต้องมีการประนีประนอมและมูลค่าปัจจุบันของ NFT ก็จำเป็นต้องผ่านการทำธุรกรรม วิธีกำหนดราคา NFT เป็นปัญหาใหญ่มาโดยตลอด
ดังนั้นจึงมีกลไกการประมูลทั่วไปสี่แบบ:
การประมูลภาษาอังกฤษ เปิดประมูลเพื่อรับราคา ผู้ให้ราคาสูงสุดเป็นผู้ชนะ
การประมูลของชาวดัตช์ ราคาลดลงจากสูงไปต่ำและผู้ประมูลรายแรกเป็นผู้ชนะ
ประมูลราคาครั้งแรก. ทำการประมูลแยกต่างหากสำหรับล็อต โดยไม่ทราบว่าผู้ประมูลรายอื่นเสนอราคา
การประมูลราคาครั้งที่สอง คล้ายกับข้างต้น ยกเว้นว่าผู้เสนอราคาสูงสุดในตอนท้ายจะเป็นผู้ชนะ แต่จ่ายเฉพาะราคาสูงสุดอันดับสองเท่านั้น
และกลไกการประมูลเหล่านี้ (การประมูลแบบอังกฤษและการประมูลแบบดัตช์) เป็นฟังก์ชันพื้นฐานของ Opensea ซึ่งเอื้อต่อการส่งเสริมธุรกรรมและการกำหนดราคา
Yingpai: การประมูลแบบจำกัดเวลาซึ่งไม่ใช้ต้นทุนของชิปสีน้ำเงินที่มีมูลค่าสูง แต่ยังมีบัฟเฟอร์เวลาให้พอดีกับผลการแข่งขันของแต่ละกลุ่ม
ในที่สุด

ในที่สุด
แม้ว่าฉันจะบ่นมากมาย แต่โปรโตคอล NFT ที่คล่องตัวและสวยงามดังกล่าว + ตลาดซื้อขาย NFT ถูกนำมาใช้ในปี 2560 โดยมีโค้ดเพียง 230 บรรทัด และมีการพัฒนาเป็นหนึ่งใน NFT บลูชิปที่มีค่าที่สุดในโลก เป็นผลิตภัณฑ์ น่าเรียน
ในอนาคต ตลาดการซื้อขายอาจไม่ได้ถูกครอบงำโดยหัวหน้าฝ่ายเดียว และหมวดหมู่แนวตั้งมากขึ้นก็จะมีฟังก์ชันการซื้อขายในตัวใน NFT ของตัวเอง เช่น StepN, Axie Infinity, NBA Top Shot,และหลังจากที่ Seaport เป็นโอเพ่นซอร์สและเปิด ตลาดในตัวอาจไม่ใช่การรับรองของเวอร์ชันย่อ
ในการติดตาม ผู้เขียนจะศึกษา OpenSea, X2Y2, Lookrare, Gem และแพลตฟอร์มตลาด NFT ชั้นนำอื่นๆ ต่อไป โดยเริ่มจากสัญญาเพื่อดูข้อดีและข้อจำกัด หากสนใจ โปรดติดตามและติดตามต่อไป~


