Ẩn trong tầm nhìn rõ ràng: Triển khai vững chắc lén lút của thông tin dữ liệu PlatoBlockchain đấu giá kín. Tìm kiếm dọc. Ái.

Ẩn trong tầm nhìn rõ ràng: Việc triển khai một cách lén lút một cách vững chắc một phiên đấu giá đặt giá thầu kín

Tháng Mười Một 16, 2022

Michael Zhu

Lưu ý của biên tập viên: Phần này là một phần trong loạt bài đang diễn ra của chúng tôi về tất cả các cuộc đấu giá cho web3. Phần 1 là tổng quan về các thiết kế đấu giá và các thách thức kỹ thuật (và cơ hội) dành riêng cho thiết kế cơ chế trong bối cảnh chuỗi khối không được phép. Phần 2 là một phần trong việc giải phóng thị trường và tránh chiến tranh khí đốt. Phần 3 chia sẻ thông tin tổng quan về các loại đấu giá thông thường, xem xét cách lý thuyết chuyển thành thực tiễn và lần triển khai đầu tiên của chúng tôi về đấu giá Vickrey mới, đấu thầu kín. 

Đấu giá trên chuỗi là một trong những không gian thiết kế thú vị nhất (và phổ biến) trong web3 — từ bán NFT đến đấu giá tài sản thế chấp — tạo ra một bối cảnh triển khai và nghiên cứu mới. Mặc dù thiết kế cơ chế đấu giá đã có từ nhiều thế kỷ và đã phát triển trong những thập kỷ gần đây với sự ra đời của web và thương mại điện tử, nhưng hiện tại chúng tôi chỉ áp dụng các phương pháp này cho hợp đồng thông minh.

Chúng tôi cũng bắt đầu thấy nhiều thiết kế đấu giá có nguồn gốc từ chuỗi khối, bao gồm vfoXNUMXfipXNUMXhfpiXNUMXufhpiXNUMXuf mã nguồn mở Triển khai vững chắc phiên đấu giá Vickrey và một số phát triển thú vị từ cộng đồng (bao gồm đề xuất để cải thiện hiệu quả, mới kết quả lý thuyết, và hai chiến thắng hackathon triển khai đấu thầu kín). Trong thiết kế đầu tiên của mình, chúng tôi đã cân bằng giữa quyền riêng tư và hiệu quả sử dụng vốn: Chúng tôi đã sử dụng tài sản thế chấp quá mức (các nhà thầu khóa nhiều tài sản thế chấp hơn so với yêu cầu của giá thầu) để thực thi thanh toán từ nhà thầu chiến thắng mà không tiết lộ giá trị giá thầu chính xác thông qua tài sản thế chấp số lượng. Bằng cách khóa thêm vốn, bạn có được nhiều quyền riêng tư hơn với chi phí cơ hội tiềm năng lớn hơn. Nhưng điều gì sẽ xảy ra nếu chúng ta có thể có quyền riêng tư về giá thầu không có thế chấp quá mức? 

Bài đăng này giới thiệu một thiết kế đấu giá mới mà chúng tôi gọi là “Đấu giá lén lút”, kết hợp CREATE2 opcode và bằng chứng nêu rõ để đảm bảo quyền riêng tư của giá thầu mà không yêu cầu các nhà thầu khóa nhiều tài sản thế chấp hơn mức cần thiết. Chúng tôi bắt đầu bằng cách chia nhỏ cách thức hoạt động của nó, sau đó so sánh nó với cách triển khai trước đây của chúng tôi (Đấu giá thế chấp quá mức) về chi phí gas, trải nghiệm người dùng và quyền riêng tư. Chúng tôi cũng đã thêm việc triển khai vào Sở thú đấu giá kho lưu trữ trên GitHub để bạn có thể rẽ nhánh, xây dựng trên đó và theo dõi khi chúng tôi đi sâu vào các cơ chế khác; trong thời gian chờ đợi, hãy tìm hiểu thêm về cách thức hoạt động của nó và so sánh với thiết kế trước đây của chúng tôi bên dưới. 

Làm thế nào nó hoạt động: Cam kết đặt giá thầu bằng CREATE2

Có hai yêu cầu mà chúng tôi cần để tạo một phiên đấu giá đặt giá thầu kín “cuối cùng là công khai” trên chuỗi. Đầu tiên, các giá thầu cần được giữ kín trong suốt thời gian đấu thầu và sau đó được tiết lộ khi nó kết thúc; Các kế hoạch tiết lộ cam kết (trong đó người dùng xuất bản các giá trị đã cam kết băm và sau đó tiết lộ đầu vào của họ sau) có thể sao chép cơ chế này trên chuỗi. Yêu cầu thứ hai là tài sản thế chấp: giá thầu phải được hỗ trợ bởi tài sản thế chấp để đảm bảo người chiến thắng có đủ tiền để thực hiện cam kết của họ. 

Trong quá trình triển khai Vickrey được thế chấp quá mức của chúng tôi, những người mua tiềm năng đặt giá thầu bằng cách gọi cho commitBid chức năng, cung cấp một cam kết băm và tài sản thế chấp được ký quỹ. Cách tiếp cận này đáp ứng các yêu cầu, nhưng có một số nhược điểm. Mặc dù bản thân giá thầu bị ẩn bởi hàm băm, commitBid giao dịch một cách công khai và ngay lập tức báo hiệu ý định của người dùng: “Tôi muốn đặt giá thầu trong cuộc đấu giá này và đây là tài sản thế chấp cho giá thầu của tôi.” Nếu không có tài sản thế chấp quá mức, khả năng hiển thị (và khả năng liên kết) của cả hai ý địnhbên sẽ tiết lộ giá trị giá thầu. Nhưng nếu chúng tôi có thể che giấu mục đích của giao dịch, thì chúng tôi có thể đạt được quyền riêng tư về giá thầu mà không cần dựa vào tài sản thế chấp quá mức. 

Sản phẩm CREATE2 opcode, được giới thiệu trong EIP-1014 và được đưa vào hard fork Constantinople, cho chúng tôi một cách để làm điều đó. Các CREATECREATE2 opcode đều được sử dụng để triển khai hợp đồng thông minh, nhưng chúng khác nhau về cách tính toán địa chỉ triển khai. Các CREATE địa chỉ triển khai được tính dưới dạng hàm băm của địa chỉ và nonce của người triển khai; các CREATE2 mặt khác, địa chỉ triển khai được tính dưới dạng hàm băm của mã byte và tham số hàm tạo của hợp đồng, một muối tùy ý và địa chỉ của người triển khai (chi tiết).

CREATE2 thường được sử dụng trong mẫu xuất xưởng để triển khai hợp đồng tới các địa chỉ có thể dự đoán được — ví dụ: UniswapV3PoolTriển khai sử dụng hợp đồng CREATE2 để triển khai từng hợp đồng nhóm đến một địa chỉ là chức năng của cặp mã thông báo và bậc phí. CREATE2 cũng có thể được sử dụng để (tái) triển khai các hợp đồng thông minh có thể nâng cấp, đáng chú ý nhất là trong biến chất mẫu hợp đồng.

Quan trọng hơn đối với chúng tôi, các CREATE2 địa chỉ triển khai có thể hoạt động như một cam kết băm đối với bất kỳ hành vi nào được xác định bởi mã byte đầu vào và các tham số. Nếu các tham số hàm tạo mã hóa một giá thầu, CREATE2 địa chỉ có thể phục vụ như một cam kết giá thầu.

Ẩn trong tầm nhìn rõ ràng: Triển khai vững chắc lén lút của thông tin dữ liệu PlatoBlockchain đấu giá kín. Tìm kiếm dọc. Ái.

Tính toán địa chỉ của một vault trong Solidity

Hơn nữa, bản thân hợp đồng có thể đóng vai trò như một kho tiền — người đặt giá thầu có thể gửi ETH đến CREATE2 địa chỉ kho tiền trước khi triển khai hợp đồng để thế chấp và cam kết giá thầu của họ trong một lần chuyển đơn giản! Vì người đặt giá thầu không có khóa riêng cho địa chỉ kho tiền nên tài sản thế chấp sẽ bị khóa cho đến khi giá thầu được tiết lộ, tại thời điểm đó, hợp đồng SneakyAuction sẽ triển khai và mở khóa kho tiền. 

lén lút hợp đồng đấu giá Soliditylén lút hợp đồng đấu giá Solidity

Hợp đồng SneakyVault. Kiểm tra xem giá thầu của nó có thắng hay không và gửi ETH của nó cho người bán hoặc người đặt giá thầu tương ứng. Tất cả trong hàm tạo!

Cách tiếp cận này làm cho giao dịch không thể phân biệt được với chuyển khoản đến địa chỉ thuộc sở hữu bên ngoài (EOA). Giao dịch giá thầu được ẩn trong tầm nhìn rõ ràng, trong số các chuyển khoản khác trên chuỗi khối. Tuy nhiên, một cảnh báo quan trọng: giải pháp có vẻ gọn gàng này cũng gây khó khăn cho việc xác định khi nào tài sản thế chấp đã bị khóa. Điều cần thiết để đảm bảo an toàn cho cuộc đấu giá là kho tiền đã được tài trợ trước khi bất kỳ giá thầu nào được tiết lộ. Mặt khác, một người mua cơ hội có thể đợi cho đến khi kết thúc giai đoạn tiết lộ, tại thời điểm đó, hầu hết các giá thầu đã được tiết lộ, để quyết định có nên thế chấp kho tiền của họ hay không. Chúng ta cần đảm bảo rằng các kho tiền được thế chấp trong thời gian đấu thầu, không phải trong thời gian tiết lộ, sử dụng một công cụ khác: bằng chứng trạng thái.

Xác minh hồi tố tài sản thế chấp bằng các bằng chứng của nhà nước

Một cách để đảm bảo rằng một kho tiền đã được thế chấp trong thời gian đấu thầu là kiểm tra số dư của nó tại một khối trong quá khứ. Việc thực hiện điều này ngoài chuỗi tương đối dễ dàng bằng cách truy vấn một nút lưu trữ; nhưng khó thực hiện (không đáng tin cậy) trên chuỗi hơn nhiều. của EVM BALANCE opcode đọc số dư hiện tại của một địa chỉ, nhưng không có opcode nào như vậy tồn tại để truy xuất địa chỉ qua THĂNG BẰNG. Trên thực tế, opcode EVM duy nhất cung cấp bất kỳ loại truy cập trạng thái lịch sử nào là BLOCKHASH, trả về hàm băm của một trong 256 khối cuối cùng. May mắn thay - với một số trợ giúp ngoài chuỗi - blockhash hoạt động đủ tốt cho trường hợp sử dụng của chúng tôi.

Blockhash là hàm băm của tiêu đề khối, bao gồm (trong số các siêu dữ liệu khác) gốc trạng thái của khối đó. Gốc trạng thái là nút gốc của một Merkle-Patricia trie, trong đó mỗi nút lá tương ứng với một địa chỉ cụ thể và bao gồm địa chỉ' cân bằng tại khối đó. Chúng tôi không thể truy cập trực tiếp các nút lá này trên chuỗi, nhưng chúng tôi có thể xác minh rằng nội dung của nút lá là chính xác. Trên thực tế eth_getProof Phương pháp RPC được hỗ trợ bởi khoa luyện kim (trong số các nhà cung cấp khác) trả lại bằng chứng Merkle cần thiết để thực hiện xác minh này (Leo Zhang cung cấp giải thích chuyên sâu về cách thức hoạt động của nó trong ngữ cảnh của các ứng dụng khách Ethereum light). Điều này có nghĩa là với một chút trợ giúp ngoài chuỗi (một lệnh gọi RPC duy nhất), những người đặt giá thầu có thể chứng minh với hợp đồng SneakyAuction rằng kho tiền của họ đã được thế chấp trong thời gian đấu thầu. 

Ẩn trong tầm nhìn rõ ràng: Triển khai vững chắc lén lút của thông tin dữ liệu PlatoBlockchain đấu giá kín. Tìm kiếm dọc. Ái.Ẩn trong tầm nhìn rõ ràng: Triển khai vững chắc lén lút của thông tin dữ liệu PlatoBlockchain đấu giá kín. Tìm kiếm dọc. Ái.

Các thành phần của tiêu đề khối EVM. Nguồn: https://ethereum.stackexchange.com/a/6414

Trong quá trình thực hiện của chúng tôi, giá thầu đầu tiên được tiết lộ cho một cuộc đấu giá lưu trữ khối băm của khối trước đó. Giao dịch này chuyển phiên đấu giá từ giai đoạn đặt giá thầu sang giai đoạn tiết lộ một cách hiệu quả — tất cả giá thầu tiếp theo được tiết lộ phải cung cấp bằng chứng Merkle rằng kho tiền của họ đã được thế chấp đầy đủ trước khối đó (tức là trước khi giá thầu đầu tiên được tiết lộ). Lưu ý rằng Thành phố điện khí hóa phía tây dãy núi Rocky đầu tiên revealBid lý tưởng nhất là giao dịch sẽ được gửi qua nhóm giao dịch riêng (ví dụ: Flashbots); nếu không, một người đặt giá thầu xem mempool (xem giá trị của giá thầu được tiết lộ) có thể chạy trước giao dịch và đặt giá thầu vào giây cuối cùng. 

LibBằng chứng cân bằng

Để giảm thiểu chi phí cho các nhà thầu, chúng tôi đã viết một giải pháp tối ưu hóa gas thư viện để xác minh bằng chứng số dư trên chuỗi được xây dựng trên hợp đồng được viết bởi nhóm Aragon (người đi tiên phong trong bằng chứng lưu trữ trên chuỗi vào năm 2018) và các hợp đồng của Hamdi Allam cho trên chuỗi giải mã RLP. Thư viện của chúng tôi sử dụng một số thủ thuật và tối ưu hóa cấp thấp dựa trên cấu trúc cụ thể của bộ ba trạng thái, vì vậy nó không thể được sử dụng cho các bằng chứng chung về bộ ba Merkle-Patricia. Đổi lại, nó cho phép hợp đồng Đấu giá lén lút xác minh số dư trong quá khứ của một kho tiền dưới 30,000 gas.

Chúng tôi cũng đã viết một trọng lượng nhẹ trình bao bọc JavaScript cho eth_getProof phương pháp RPC. Được cung cấp một địa chỉ và số khối, nó trả về bằng chứng số dư và tiêu đề khối được đánh số theo thứ tự RLP, có thể được sử dụng để tiết lộ giá thầu. 

Nó so sánh như thế nào 

Hãy so sánh phương pháp Đấu giá lén lút mới của chúng tôi với thiết kế Đấu giá quá thế chấp mà chúng tôi đã phát hành gần đây nhất, cùng với một số khía cạnh chính mà các nhà thiết kế kỹ thuật hoặc người dùng quan tâm: chi phí gas, trải nghiệm người dùng và quyền riêng tư. 

Chi phí xăng

đấu giá lén lút revealBid, endAuctionwithdrawCollateral chức năng yêu cầu triển khai một SneakyVault, vì vậy chúng đắt hơn so với các đối tác Đấu giá thế chấp tài sản thế chấp của chúng. revealBid đặc biệt đắt vì nó cũng xác minh bằng chứng số dư, tốn khoảng 25,000 gas.

Chi phí gas gần đúng của các hoạt động khác nhau, dựa trên các bài kiểm tra đơn vị của Foundry

Kinh nghiệm người dùng

Mặc dù hai triển khai tuân theo một quy trình tổng thể giống nhau (giai đoạn đặt giá thầu, giai đoạn hiển thị, kết thúc phiên đấu giá), nhưng có một số khác biệt về trải nghiệm người dùng. SneakyAuction có một vài nhược điểm nhỏ:

  • Mặc dù giao diện người dùng có thể trừu tượng hóa trải nghiệm gửi ETH đến một kho tiền chưa triển khai, nhưng có khả năng gây nhầm lẫn cho những người dùng kiểm tra giao dịch giá thầu của họ trên trình khám phá khối.
  • Với OverCollateralized Auction, có thể kết thúc phiên đấu giá sớm nếu tất cả các giá thầu đã được tiết lộ. Điều này là không thể trong Đấu giá lén lút vì hợp đồng không có cách nào để biết có bao nhiêu giá thầu đã được cam kết.
  • Những người đặt giá thầu có thể cập nhật giá thầu của họ và nạp tài sản thế chấp của họ với Đấu giá tài sản thế chấp bằng cách gọi commitBid lại. Trong Đấu giá lén lút, những người đặt giá thầu không thể cập nhật sau khi kho tiền của giá thầu đã được thế chấp.

Quyền riêng tư

Quyền riêng tư về giá thầu của OverCollateralizedAuction phụ thuộc vào việc những người đặt giá thầu chọn khóa tài sản thế chấp bổ sung (để người xem biết giới hạn trên của giá thầu chứ không phải số tiền chính xác). Đấu giá lén lút, mặt khác, lấy được quyền riêng tư từ hoạt động trên chuỗi hoàn toàn không liên quan đến bản thân phiên đấu giá: Chuyển ETH diễn ra trong thời gian đặt giá thầu của phiên đấu giá. 

Để đơn giản, hãy giả sử rằng mỗi giá thầu được thế chấp bằng một lần chuyển ETH. Chúng tôi quan sát thấy rằng: 

  1. Giao dịch thế chấp phải là lần đầu tiên bất kỳ ai tương tác với địa chỉ kho tiền trên chuỗi. 
  2. Chúng tôi không mong đợi bất kỳ giao dịch nào khác chạm vào địa chỉ kho tiền trong phần còn lại của thời gian đặt giá thầu. 
  3. Không có giao dịch nào có thể bắt nguồn từ địa chỉ vault (vì không ai có khóa riêng). 

Chuyển ETH trong thời gian đặt giá thầu sang các địa chỉ “chưa được xử lý” khác là giá thầu hợp lý — nói cách khác, chúng là “tiếng ồn” che giấu các giao dịch giá thầu. Để giúp định lượng quyền riêng tư của SneakyAuction, chúng ta có thể xem xét hình dạng của sự phân bố tiếng ồn này.Ẩn trong tầm nhìn rõ ràng: Triển khai vững chắc lén lút của thông tin dữ liệu PlatoBlockchain đấu giá kín. Tìm kiếm dọc. Ái.

Ẩn trong tầm nhìn rõ ràng: Triển khai vững chắc lén lút của thông tin dữ liệu PlatoBlockchain đấu giá kín. Tìm kiếm dọc. Ái.

Biểu đồ này hiển thị phân phối chuyển ETH hàng ngày từ đầu năm đến nay (trên mạng chính Ethereum) đến các địa chỉ chưa được xử lý, minh họa phân phối nhiễu trong khoảng thời gian đặt giá thầu 24 giờ. Chúng ta có thể thấy rằng hầu hết các giao dịch nằm trong phạm vi [0.001, 1] ETH, ngụ ý rằng các phiên đấu giá có giá trị giá thầu dự kiến ​​trong phạm vi đó sẽ có quyền riêng tư mạnh nhất. Mặt khác, tiếng ồn điển hình có thể không cung cấp đủ quyền riêng tư cho các cuộc đấu giá trong đó giá thầu dự kiến ​​lớn hơn 10 ETH — hiếm khi có hơn 100 lần chuyển trong phạm vi đó, do đó, một cuộc đấu giá thu hút nhiều giá thầu sẽ tạo ra sự tăng đột biến dễ thấy trong phân phối . 

Đối với một góc nhìn khác về dữ liệu này, các biểu đồ phân tán này mô tả các lần chuyển tiền vào ngày 15 tháng 2022 năm XNUMX, được phủ lên bằng các giá thầu từ hai phiên đấu giá giả định: 

Ẩn trong tầm nhìn rõ ràng: Triển khai vững chắc lén lút của thông tin dữ liệu PlatoBlockchain đấu giá kín. Tìm kiếm dọc. Ái.Ẩn trong tầm nhìn rõ ràng: Triển khai vững chắc lén lút của thông tin dữ liệu PlatoBlockchain đấu giá kín. Tìm kiếm dọc. Ái.

200 giá thầu, thường được phân phối khoảng 1 ETH

Ẩn trong tầm nhìn rõ ràng: Triển khai vững chắc lén lút của thông tin dữ liệu PlatoBlockchain đấu giá kín. Tìm kiếm dọc. Ái.Ẩn trong tầm nhìn rõ ràng: Triển khai vững chắc lén lút của thông tin dữ liệu PlatoBlockchain đấu giá kín. Tìm kiếm dọc. Ái.

200 giá thầu, thường được phân phối khoảng 100 ETH

Theo trực giác, người quan sát sẽ dễ dàng xác định giá thầu từ phiên đấu giá thứ hai hơn nhiều. Trong thực tế, bạn có thể sử dụng thuật toán phân cụm chẳng hạn như Sự tối đa hóa kỳ vọng (EM) để dự đoán giao dịch nào là giá thầu. 

Tuy nhiên, có một vài yếu tố khác có thể làm cho SneakyAuction trở nên riêng tư hơn (và do đó hấp dẫn hơn) trong thực tế:

  1. Thời gian đặt giá thầu dài hơn: Quyền riêng tư quy mô theo độ dài của thời gian đặt giá thầu –– thời gian đặt giá thầu càng dài thì càng có nhiều lần chuyển để ẩn giá thầu. 
  2. Đấu giá đồng thời: Quyền riêng tư quy mô theo số lượng đấu giá đồng thời –– nếu hai phiên đấu giá đang trong giai đoạn đặt giá thầu cùng lúc, thì giá thầu của một phiên đấu giá sẽ gây nhiễu cho phiên đấu giá kia.

SneakyAuction cũng có thể hưởng lợi từ việc thế chấp quá mức — vì SneakyVault trả lại bất kỳ ETH dư thừa nào cho người đặt giá thầu, nên những người đặt giá thầu có thể chọn thế chấp quá mức để có thêm quyền riêng tư. Vì vậy, theo một nghĩa nào đó, SneakyAuction cung cấp quyền riêng tư mạnh mẽ hơn so với triển khai trước đây của chúng tôi.

Một hệ quả đơn giản của cơ chế bảo mật của SneakyAuction là nó che giấu con số của hồ sơ dự thầu trong thời gian đấu thầu. Đây là một lợi thế so với Đấu giá quá thế chấp, chỉ ẩn các giá trị giá thầu — số lượng cam kết giá thầu đã được thực hiện cho một phiên đấu giá nhất định hoàn toàn công khai (và có thể tiết lộ mức độ cạnh tranh của phiên đấu giá).

***

Mặc dù lần triển khai đấu giá thầu kín đầu tiên của chúng tôi đã dịch các tính năng trong thế giới thực thành các quyết định thiết kế trên chuỗi, nhưng thiết kế thứ hai của chúng tôi dựa trên một cơ chế mới và thực tế để sử dụng tính chất công khai của chuỗi khối để tạo lợi thế: đấu giá kín “ẩn” giữa các giá thầu không liên quan hoạt động chuỗi khối.

Mặc dù phương pháp mới này là một cách thuận tiện để đạt được quyền riêng tư của giá thầu mà không cần thế chấp quá mức, nhưng phương pháp này không nhất thiết phải phù hợp với tất cả các phiên đấu giá (ví dụ: các phiên đấu giá có nhiều giá thầu giá trị cao). Cải thiện quyền riêng tư đối với các phiên đấu giá mong đợi giá thầu nhỏ hơn (và đặc biệt là trong một khoảng thời gian dài hơn).

***
Các quan điểm được thể hiện ở đây là quan điểm của từng nhân viên AH Capital Management, LLC (“a16z”) được trích dẫn và không phải là quan điểm của a16z hoặc các chi nhánh của nó. Một số thông tin nhất định trong đây đã được lấy từ các nguồn của bên thứ ba, bao gồm từ các công ty danh mục đầu tư của các quỹ do a16z quản lý. Mặc dù được lấy từ các nguồn được cho là đáng tin cậy, a16z đã không xác minh độc lập thông tin đó và không đưa ra tuyên bố về tính chính xác hiện tại hoặc lâu dài của thông tin hoặc sự phù hợp của nó đối với một tình huống nhất định. Ngoài ra, nội dung này có thể bao gồm các quảng cáo của bên thứ ba; a16z đã không xem xét các quảng cáo đó và không xác nhận bất kỳ nội dung quảng cáo nào có trong đó.

Nội dung này chỉ được cung cấp cho mục đích thông tin và không được dựa vào như lời khuyên về pháp lý, kinh doanh, đầu tư hoặc thuế. Bạn nên tham khảo ý kiến ​​của các cố vấn của riêng mình về những vấn đề đó. Các tham chiếu đến bất kỳ chứng khoán hoặc tài sản kỹ thuật số nào chỉ dành cho mục đích minh họa và không cấu thành khuyến nghị đầu tư hoặc đề nghị cung cấp dịch vụ tư vấn đầu tư. Hơn nữa, nội dung này không hướng đến cũng như không nhằm mục đích sử dụng cho bất kỳ nhà đầu tư hoặc nhà đầu tư tiềm năng nào và không được dựa vào bất kỳ trường hợp nào khi đưa ra quyết định đầu tư vào bất kỳ quỹ nào do a16z quản lý. (Đề nghị đầu tư vào quỹ a16z sẽ chỉ được thực hiện bởi bản ghi nhớ phát hành riêng lẻ, thỏa thuận đăng ký và các tài liệu liên quan khác về bất kỳ quỹ nào như vậy và phải được đọc toàn bộ.) Bất kỳ khoản đầu tư hoặc công ty danh mục đầu tư nào được đề cập, đề cập đến, hoặc được mô tả không phải là đại diện cho tất cả các khoản đầu tư vào xe do a16z quản lý và không thể đảm bảo rằng các khoản đầu tư sẽ sinh lời hoặc các khoản đầu tư khác được thực hiện trong tương lai sẽ có các đặc điểm hoặc kết quả tương tự. Danh sách các khoản đầu tư được thực hiện bởi các quỹ do Andreessen Horowitz quản lý (không bao gồm các khoản đầu tư mà tổ chức phát hành không cho phép a16z tiết lộ công khai cũng như các khoản đầu tư không thông báo vào tài sản kỹ thuật số được giao dịch công khai) có tại https://a16z.com/investments /.

Các biểu đồ và đồ thị được cung cấp bên trong chỉ nhằm mục đích cung cấp thông tin và không nên dựa vào khi đưa ra bất kỳ quyết định đầu tư nào. Hiệu suất trong quá khứ không cho thấy kết quả trong tương lai. Nội dung chỉ nói kể từ ngày được chỉ định. Mọi dự đoán, ước tính, dự báo, mục tiêu, triển vọng và / hoặc ý kiến ​​thể hiện trong các tài liệu này có thể thay đổi mà không cần thông báo và có thể khác hoặc trái ngược với ý kiến ​​của người khác. Vui lòng xem https://a16z.com/disclosures để biết thêm thông tin quan trọng

Dấu thời gian:

Thêm từ Andreessen Horowitz