การทดสอบคุณสมบัติทั่วไปสำหรับ ERC4626 vaults PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

การทดสอบคุณสมบัติทั่วไปสำหรับห้องนิรภัย ERC4626

เมื่อ DeFi เติบโตและเติบโตเต็มที่ โครงสร้างพื้นฐานที่ปรับขนาดได้และความสามารถในการเขียนเป็นองค์ประกอบสำคัญสำหรับนักพัฒนา Ethereum Requests for Comments (หรือ ERCs) — ชุดเครื่องมือมาตรฐานสำหรับการสร้างแอพที่ใช้ Ethereum เช่นมาตรฐานโทเค็นที่ใช้กันอย่างแพร่หลาย ERC20 — ทำหน้าที่สำคัญในการจัดทำแนวทางที่สอดคล้องกันสำหรับนักพัฒนาเพื่อมีส่วนร่วมในระบบนิเวศโดยไม่ต้องเริ่มต้นจากศูนย์ ปีก่อนหน้านี้, tokenized vault มาตรฐาน ERC4626 ถูกสร้างขึ้นเพื่อสนับสนุนความเข้ากันได้ระหว่างโทเค็นที่มีผลตอบแทน การกำหนดรายละเอียดการนำไปใช้งานที่เป็นมาตรฐานยังสามารถจัดการกับปัญหาเรื่องความสามารถในการบีบอัดได้ ทำให้การรวมโปรโตคอลทำได้ง่ายขึ้นและมีโอกาสเกิดข้อผิดพลาดน้อยลงในที่สุด

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

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

มาเป็นพื้นฐานเล็กๆ น้อยๆ กับมาตรฐาน ERC4626 ก่อน

เสร็จสิ้นในเดือนมีนาคม ERC4626 เป็นมาตรฐานสำหรับห้องนิรภัยแบบโทเค็น ได้ถูกนำมาใช้เพื่อขยายขอบเขตการใช้งานอย่างแพร่หลาย ERC20 มาตรฐาน (ปัจจุบันเป็นฐานของโทเค็นหลายร้อยรายการ) ส่งเสริมการสร้างมาตรฐานในห้องนิรภัยที่รับผลตอบแทน และตรวจสอบให้แน่ใจว่าสามารถทำงานร่วมกันได้สำหรับแอปและโปรโตคอล (เช่น ตัวรวบรวมผลตอบแทน) ที่จำเป็นต้องโต้ตอบกับพวกเขา ซึ่งหมายความว่าแอปใดๆ ที่สร้างบน ERC4626 vault สามารถขยายให้ทำงานกับ Vault ERC4626 อื่นๆ ได้อย่างง่ายดาย 

ห้องนิรภัยแบบ Tokenized อนุญาตให้ผู้ใช้ฝากสินทรัพย์เพื่อเก็บหุ้นในห้องนิรภัยได้อย่างอิสระ และภายหลังไถ่ถอนหุ้นเหล่านั้นเพื่อถอนเงินต้นและดอกเบี้ยจากห้องนิรภัย หุ้นในห้องนิรภัยเหล่านี้เป็นโทเค็น ERC20 และสามารถซื้อขายหรือใช้เป็นหลักประกันในการยืมสินทรัพย์อื่น ๆ ได้อย่างง่ายดาย ตัวอย่างเช่น ผู้ใช้สามารถฝากสินทรัพย์ของตนในห้องใต้ดินของ Yearn เพื่อทำโทเค็น yVault เพื่อทำการแลกเปลี่ยนบน Uniswap เดิมพันเพื่อผลตอบแทนเพิ่มเติม หรือใช้เป็นหลักประกันสำหรับโปรโตคอลการให้ยืม

ตรรกะทางธุรกิจสำหรับการสร้างและการกระจายผลตอบแทน (และการกำหนดราคาหุ้น) อาจแตกต่างกันไปตามการใช้งาน เพื่อให้ครอบคลุมห้องนิรภัยให้ได้มากที่สุด (โดยมีเป้าหมายเพื่อให้ทำงานร่วมกันได้และเหมือนกัน) มาตรฐาน ERC4626 มุ่งเน้นไปที่การอธิบายส่วนต่อประสานกับผู้ใช้ โดยไม่ได้ระบุรายละเอียดการใช้งานส่วนใหญ่ไว้ สิ่งนี้ทำให้เกิดการเปลี่ยนแปลงในตรรกะทางธุรกิจตราบใดที่ห้องนิรภัยตรงตามข้อกำหนดเฉพาะของอินเทอร์เฟซและสนับสนุน การทำงานร่วมกันในแอปประเภทต่างๆ และประเภทของ Vault ERC4626

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

ความท้าทายของการปฏิบัติตามมาตรฐาน (และข้อผิดพลาดของการไม่ปฏิบัติตาม)

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

โทเค็น ERC20 ที่ไม่ได้มาตรฐาน (เช่น Tether USD) ต้องการให้ระบบ DeFi จำนวนมากใช้ไลบรารีเพิ่มเติม (เช่น SafeERC20) เมื่อดำเนินการโอนโทเค็นเพื่อจัดการกับพฤติกรรมการแยกส่วนอย่างปลอดภัย (เช่น ไม่ส่งคืนสิ่งใดเมื่อการถ่ายโอนสำเร็จแทนที่จะส่งคืน true). ซึ่งหมายความว่าระบบใดๆ ที่โต้ตอบกับโทเค็นเหล่านี้อาจมีความเสี่ยง หากระบบไม่ได้ออกแบบมาเพื่อจัดการกับกรณีของ "การส่งคืนที่หายไป" อย่างเหมาะสม สถานการณ์เหล่านี้อาจก่อให้เกิดหลุมพรางด้านความปลอดภัยทั่วไป และเพิ่มค่าใช้จ่ายในการพัฒนาและบำรุงรักษาโดยรวม (เมื่อพิจารณาปัจจัยในตรรกะเพิ่มเติมและการขึ้นต่อกันที่จำเป็นในการบรรเทาปัญหา) การปฏิบัติตามมาตรฐานจึงมีความสำคัญไม่เพียงแต่สำหรับการติดตั้งใช้งานส่วนบุคคลเท่านั้น แต่ยังรวมถึงความปลอดภัยของระบบนิเวศทั้งหมดด้วย ช่องโหว่เดียวในระบบเดียวหรือการพึ่งพาอาศัยกันอาจทำให้เกิดปัญหาในวงกว้างได้

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

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

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

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

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

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

ตัวอย่างเช่น คุณสมบัติดังต่อไปนี้สอดคล้องกับข้อกำหนดข้อใดข้อหนึ่งของ convertToShares() การทำงาน, "ต้องไม่แสดงรูปแบบใด ๆ ขึ้นอยู่กับผู้โทร” ด้วยสองที่อยู่บัญชีและจำนวนเงิน มันทำให้แต่ละบัญชีเรียก convertToShares() ด้วยจำนวนเงินที่เท่ากัน และทำให้แน่ใจว่าค่าที่ส่งกลับทั้งสองค่าเท่ากัน คุณสมบัตินี้ไม่ขึ้นกับรายละเอียดการใช้งานของ convertToShares()ซึ่งแตกต่างกันไปตามห้องนิรภัยและต้องได้รับความพึงพอใจจากห้องนิรภัยใดๆ ที่ใช้ ERC4626 คุณสมบัตินี้สามารถดำเนินการได้โดยการระบุค่าอินพุตเฉพาะ (สำหรับการทดสอบหน่วย) อินพุตแบบสุ่มจำนวนมาก (สำหรับการทดสอบแบบคลุมเครือ) หรือค่าเชิงสัญลักษณ์ (สำหรับการดำเนินการเชิงสัญลักษณ์และการตรวจสอบอย่างเป็นทางการ) นอกจากนี้ยังสามารถเรียกใช้ในเครื่องหรือกับ mainnet fork (สำหรับการทดสอบการรวม)

ใช้กรณี: คุณสมบัติที่ทดสอบข้อผิดพลาดในการปัดเศษ

ตัวอย่างเช่น ข้อผิดพลาดในการปัดเศษเป็นคลาสที่สำคัญของจุดบกพร่อง (ที่ดูเหมือนเล็กน้อย) ที่อาจมีผลกระทบต่อชุดข้อมูลบางส่วน ตรรกะทางบัญชีพื้นฐานของ ERC4626 เช่น การคำนวณจำนวนหุ้นที่จะผลิต หรือจำนวนสินทรัพย์ที่จะถอนออก ดำเนินการโดยใช้เลขคณิตแบบจุดคงที่ ซึ่งข้อผิดพลาดในการปัดเศษเป็นสิ่งที่หลีกเลี่ยงไม่ได้ สำหรับ ความปลอดภัยอย่างไรก็ตาม มาตรฐานระบุทิศทางการปัดเศษที่ต้องการไว้อย่างชัดเจนสำหรับแต่ละฟังก์ชันของอินเทอร์เฟซ โดยปล่อยให้ขอบเขตข้อผิดพลาดไม่ระบุและขึ้นอยู่กับการใช้งาน โดยเฉพาะ deposit() และ redeem() ฟังก์ชันควรส่งคืน an ภายใต้- การประมาณค่าที่แน่นอนในขณะที่ mint() และ withdraw() ฟังก์ชันควรส่งคืน an เกิน-การประมาณ ตัวอย่างเช่น หากราคาหุ้นปัจจุบัน (เช่น จำนวนสินทรัพย์ต่อหุ้น) เป็น 2 ดังนั้น deposit() ด้วยทรัพย์สิน 3 wei ควรสร้างหุ้นได้สูงสุด 1 wei เท่านั้น (เช่น floor(3/2)) ขณะที่ withdraw() ด้วยทรัพย์สิน 3 wei ควรเผาหุ้นอย่างน้อย 2 wei (เช่น ceil(3/2)).

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

ข้อมูลโค้ดจากการทดสอบคุณสมบัติ ERC4626

อันที่จริง เราพบว่าห้องนิรภัย ERC4626 หลายห้องบนเมนเน็ตไม่เป็นไปตามคุณสมบัติข้างต้นเนื่องจากข้อผิดพลาดในการปัดเศษ ซึ่งหมายความว่าทุกคนสามารถสร้างรายได้ ตัวอย่างเช่น สอง satoshi BTC (1 satoshi ~= 0.02 เซ็นต์ ณ เวลาที่เขียน) เพียงแค่ (และซ้ำแล้วซ้ำเล่า) การทำเหรียญและถอนออก ค่อยๆ ระบายออกจากห้องนิรภัย สิ่งนี้อาจสร้างผลกำไรให้กับโซ่ที่มีค่าธรรมเนียมก๊าซต่ำมาก (เช่น Fantom) หรือหากราคาสินทรัพย์สูงพอในอนาคต

การทดสอบมาตรฐาน ERC4626 ในป่า

เราทดสอบคุณสมบัติของเรากับ ~100 ERC4626 vault บน mainnet และพบ vault จำนวนมากที่ไม่เป็นไปตามข้อกำหนดมาตรฐาน — ส่วนใหญ่เกิดจากข้อผิดพลาดในการปัดเศษ (เช่น การใช้การปัดเศษพื้นที่ต้องการเพดาน ตามที่เราอธิบายไว้) โดยเฉพาะห้องนิรภัยบางแห่งไม่สามารถสร้างจำนวนหุ้นที่แน่นอนตามที่ .ร้องขอ mint() ถึงแม้ว่ามาตรฐานจะกำหนดไว้อย่างชัดเจน นี้. บางคนก็ปล่อยความไม่สอดคล้องกัน Deposit เหตุการณ์ที่ข้อมูลที่บันทึกไว้แตกต่างจากสิ่งที่สร้างขึ้นจริง เราแปลกใจมากที่ห้องนิรภัยบางห้องไม่เคยสร้างเสร็จเลย แต่พวกเขาเพียงแค่ใส่คำขอมินต์ลงในคิว และประมวลผลในภายหลังในแบทช์เป็นธุรกรรมแยกต่างหาก

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

การใช้การทดสอบคุณสมบัติของเราและขั้นตอนการดำเนินการอื่น ๆ ที่นำไปสู่ความสอดคล้องมาตรฐาน

การปฏิบัติตามมาตรฐานสามารถป้องกันพฤติกรรมที่แตกต่างกันได้อย่างแม่นยำ (ควรก่อนนำไปใช้จริง) เราหวังว่าพร็อพเพอร์ตี้ของเราจะช่วยเหลือ พร้อมกับรายการดำเนินการเพิ่มเติมอีกสองสามรายการ สำหรับผู้ที่กำลังพัฒนาและ/หรือผสานรวม Vault ERC4626:

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

***
ห้องนิรภัย ERC4626 มีศักยภาพที่จะกลายเป็นส่วนประกอบสำคัญสำหรับ DeFi ในอนาคตอันใกล้ — และเพื่อประโยชน์ในการรวบรวม สิ่งสำคัญสำหรับทั้งห้องนิรภัยใหม่และที่มีอยู่ต้องเป็นไปตามมาตรฐาน การใช้งานใหม่จะเกิดขึ้นตามมาตรฐาน ดังนั้นจึงไม่มีเวลาใดดีไปกว่าปัจจุบันในการสร้างมาตรฐานห้องนิรภัยที่มีอยู่ 

ในขณะที่เราทำงานไปสู่สภาวะในอุดมคติ (โดยที่ vault ต่างกันสามารถประกอบได้เหมือนกัน) การทดสอบคุณสมบัติ ERC4626 สามารถเรียกใช้เพื่อตรวจจับการละเมิดมาตรฐานในการใช้งานห้องนิรภัยได้ง่ายขึ้น การทดสอบคุณสมบัติ (พร้อมเอกสารและตัวอย่าง) เปิดเผยต่อสาธารณะใน Github . ของเรา กรุ. เรายินดีรับฟังความคิดเห็นและผลงานของคุณ!

***
ความคิดเห็นที่แสดงในที่นี้เป็นความคิดเห็นของบุคลากร AH Capital Management, LLC (“a16z”) ที่ยกมาและไม่ใช่ความคิดเห็นของ a16z หรือบริษัทในเครือ ข้อมูลบางอย่างในที่นี้ได้รับมาจากแหล่งบุคคลที่สาม รวมถึงจากบริษัทพอร์ตโฟลิโอของกองทุนที่จัดการโดย a16z ในขณะที่นำมาจากแหล่งที่เชื่อว่าเชื่อถือได้ a16z ไม่ได้ตรวจสอบข้อมูลดังกล่าวอย่างอิสระและไม่รับรองความถูกต้องของข้อมูลในปัจจุบันหรือที่ยั่งยืนหรือความเหมาะสมสำหรับสถานการณ์ที่กำหนด นอกจากนี้ เนื้อหานี้อาจรวมถึงโฆษณาของบุคคลที่สาม a16z ไม่ได้ตรวจทานโฆษณาดังกล่าวและไม่ได้รับรองเนื้อหาโฆษณาใด ๆ ที่อยู่ในนั้น

เนื้อหานี้จัดทำขึ้นเพื่อวัตถุประสงค์ในการให้ข้อมูลเท่านั้น และไม่ควรใช้เป็นคำแนะนำทางกฎหมาย ธุรกิจ การลงทุน หรือภาษี คุณควรปรึกษาที่ปรึกษาของคุณเองในเรื่องเหล่านั้น การอ้างอิงถึงหลักทรัพย์หรือสินทรัพย์ดิจิทัลใดๆ มีวัตถุประสงค์เพื่อเป็นตัวอย่างเท่านั้น และไม่ถือเป็นการแนะนำการลงทุนหรือข้อเสนอเพื่อให้บริการที่ปรึกษาการลงทุน นอกจากนี้ เนื้อหานี้ไม่ได้มุ่งไปที่หรือมีไว้สำหรับการใช้งานโดยนักลงทุนหรือนักลงทุนที่คาดหวัง และไม่อาจเชื่อถือได้ไม่ว่าในกรณีใดๆ เมื่อตัดสินใจลงทุนในกองทุนใดๆ ที่จัดการโดย a16z (การเสนอให้ลงทุนในกองทุน a16z จะกระทำโดยบันทึกเฉพาะบุคคล ข้อตกลงจองซื้อ และเอกสารที่เกี่ยวข้องอื่นๆ ของกองทุนดังกล่าว และควรอ่านให้ครบถ้วน) การลงทุนหรือบริษัทพอร์ตการลงทุนใดๆ ที่กล่าวถึง อ้างถึง หรือ ที่อธิบายไว้ไม่ได้เป็นตัวแทนของการลงทุนทั้งหมดในยานพาหนะที่จัดการโดย a16z และไม่สามารถรับประกันได้ว่าการลงทุนนั้นจะให้ผลกำไรหรือการลงทุนอื่น ๆ ในอนาคตจะมีลักษณะหรือผลลัพธ์ที่คล้ายคลึงกัน รายการการลงทุนที่ทำโดยกองทุนที่จัดการโดย Andreessen Horowitz (ไม่รวมการลงทุนที่ผู้ออกไม่อนุญาตให้ a16z เปิดเผยต่อสาธารณะและการลงทุนที่ไม่ได้ประกาศในสินทรัพย์ดิจิทัลที่ซื้อขายในตลาดหลักทรัพย์) มีอยู่ที่ https://a16z.com/investments /.

แผนภูมิและกราฟที่ให้ไว้ภายในมีวัตถุประสงค์เพื่อให้ข้อมูลเท่านั้น และไม่ควรใช้ในการตัดสินใจลงทุนใดๆ ผลการดำเนินงานในอดีตไม่ได้บ่งบอกถึงผลลัพธ์ในอนาคต เนื้อหาพูดตามวันที่ระบุเท่านั้น การคาดการณ์ การประมาณการ การคาดการณ์ เป้าหมาย โอกาส และ/หรือความคิดเห็นใดๆ ที่แสดงในเอกสารเหล่านี้อาจเปลี่ยนแปลงได้โดยไม่ต้องแจ้งให้ทราบและอาจแตกต่างหรือขัดแย้งกับความคิดเห็นที่แสดงโดยผู้อื่น โปรดดู https://a16z.com/disclosures สำหรับข้อมูลสำคัญเพิ่มเติม

ประทับเวลา:

เพิ่มเติมจาก Andreessen Horowitz