Trời ơi, Ethereum 2.0 giới thiệu với bạn là gì? Chia làm mấy giai đoạn?
袁辉腾
2019-01-18 02:32
本文约9980字,阅读全文需要约40分钟
ETH2.0 là một hệ thống phức tạp và đang phát triển, và tất cả các kỹ sư DApp cần hiểu kế hoạch và tiến trình của ETH2.0.

Ghi chú của biên tập viên:Ghi chú của biên tập viên:MediumGần đây, "Ethereum Constantinople Fork" đã trở thành một chủ đề nóng trong lĩnh vực blockchain và với tư cách là một giải pháp thay thế được lên kế hoạch cho Ethereum, "món khó" thực sự - ETH2.0 sẽ dần lộ diện. Bỏ qua việc giải thích các định nghĩa thuật ngữ nhàm chán, James Prestwich thảo luận về lộ trình Ethereum hiện tại. Đồng thời, anh ấy đã mở mang đầu óc và tưởng tượng ra hướng đi có thể có của giai đoạn sau của Ethereum trong các cuộc thảo luận cụ thể này. bài viết từ

, sau đây là toàn văn bài biên soạn.

Biên tập | Lộ Hiểu Minh

Biên tập | Lộ Hiểu Minh

tiêu đề phụ

ETH2.0 là gì?

ETH2.0 là giải pháp thay thế theo kế hoạch cho Ethereum. Trong vài năm tới, các nhà phát triển ETH2.0 dự định kết hợp đầy đủ hệ thống đồng thuận hiện tại và trạng thái của Ethereum. Vì phạm vi của nó quá rộng nên chúng tôi cũng không thể truyền đạt chính xác ETH2.0 sẽ bao gồm hoặc không bao gồm những gì. Thật vậy, chúng tôi đã xây dựng một số thông số kỹ thuật hoạt động và có rất nhiều nỗ lực của nhóm đang nỗ lực triển khai sớm. Các nhà phát triển ETH2.0 dự kiến ​​có kế hoạch bao gồm công nghệ sharding (Sharding), giao thức Casper, thuê nhà nước (State Rent) và dự án nâng cấp eWASM của máy ảo Ethereum EVM.Hôm nay, ứng dụng khách ban đầu của ETH2.0 đã được thử nghiệm trực tuyến và dự kiếntrong vòng ba tháng, ETH2.0 sẽ cho phép Ethereum trong chuỗi Ethereum được ánh xạ về quá khứ, nhưng nhà thiết kế ETH2.0 cuối cùng có kế hoạch thay đổi điều này bằng cách biến ETH2.0 thành chuỗi chính và Ethereum 1.X thành chuỗi nhánh dưới sự quản lý của nó. tình huống.

tiêu đề phụ

Nó có ý nghĩa gì đối với một kỹ sư?Nếu bạn là một lập trình viên Solidity hoặc nhà phát triển Dapp chuyên nghiệp và bạn là một "fan cứng" của việc triển khai các hợp đồng thông minh ETH2.0. Chà, bạn có thể cần phải thực hiện nhiều lần cập nhật. ETH2.0 là sự thay thế hoàn toàn cho Ethereum, sẽ đảo ngược nhiều giả định mà chúng tôi đưa ra khi viết hợp đồng thông minh. Việc triển khai trong nhiều năm theo kế hoạch của nó không giống như một chu kỳ nâng cấp mà giống một chu kỳ phát hành sản phẩm hơn.Các công cụ và hợp đồng thông minh mà chúng tôi đã viết cho ETH1.X có thể cần phải được phát minh lại

triển khai theo giai đoạn

triển khai theo giai đoạn

hiện tại,hiện tại,Lộ trình Sharding(Gấp đôi lộ trình ETH2.0) liệt kê bảy giai đoạn. chỉ mộtgiai đoạn 0có thông số kỹ thuật rõ ràng, vàCập nhật thường xuyênĐặc điểm kỹ thuật giai đoạn 1ít nghiêm ngặt hơn, kém chính xác hơn và có thể nằm trongtình trạng phát triển tiêu cực

. Từ Giai đoạn 1 trở đi, lộ trình trở thành một danh sách các mục tiêu hơn là một tài liệu kỹ thuật.ethresear.ch gấp ba lần so với liên kết đến Github. Vì bất kỳ bước nào trong tương lai đều mang tính đầu cơ nhiều hơn là kỹ thuật, cuộc thảo luận cụ thể của chúng tôi chỉ giới hạn ở các giai đoạn 0, 1 và 2. Đồng thời, một số phác thảo sơ bộ về các hướng khả thi cho các giai đoạn sau được đề cập trong các cuộc thảo luận cụ thể này.

tiêu đề cấp đầu tiên

Giai đoạn 0: Chuỗi BeaconGiai đoạn 0 giới thiệu "chuỗi đèn hiệu",(Lưu ý hàng ngày: Chuỗi đèn hiệu là một chuỗi khối hoàn toàn mới và nó chiếm vị trí cốt lõi trong Ethereum mới. Một trong những chức năng của chuỗi này là cho phép người xác minh tham gia vào hệ thống cam kết, thay thế vai trò của người khai thác và trở thành một trình xây dựng chuỗi. Một chức năng khác là lưu trữ chỉ mục của trạng thái phân đoạn).

Rõ ràng, các lần lặp lại ban đầu như "chuỗi báo hiệu" này được thiết kế đơn giản nhất có thể, đó là lý do tại sao giai đoạn 0 không hỗ trợ hợp đồng thông minh, tài khoản, chuyển giao tài sản và cũng không bao gồm bất kỳ phân đoạn nào. Đồng thời, ether dựa trên chuỗi đèn hiệu không thể được chuyển trên chuỗi, điều đó có nghĩa là người dùng không thể gửi nó trên sàn giao dịch.

tiêu đề phụ

BETH: Ether mới

  1. Là một loại tài sản mới, Beacon ETH (BETH) chỉ được sử dụng bởi Người đặt cọc (người nắm giữ hoặc người dùng tiền xu) trên Chuỗi Beacon. BETH có thể được tạo theo hai cách sau.

  2. Là phần thưởng cho việc xác thực Beacon Chain (và các mảnh vỡ sau Giai đoạn 1);Bất kỳ người dùng ETH1.X nào cũng có thể vượt quaHợp đồng ETH1.X

Mua 1 ETH của BETH, hợp đồng gọi đó là "nạp tiền/nạp tiền" (Deposit).

Các kỹ sư có thể nhận thấy rằng không có chức năng hủy bỏ nào được đề cập trong hợp đồng. Điều này là do Giai đoạn 0, nơi người dùng không thể rút BETH từ Beacon Chain. Điều đó có nghĩa là, một khi người dùng được lưu trữ trong hợp đồng đăng ký trình xác thực ETH1.X, ether ETH1.X sẽ bị hủy. Trình xác minh chuỗi đèn hiệu sẽ tuân theo hợp đồng và gửi thông tin nạp tiền cho chuỗi đèn hiệu và chuỗi đèn hiệu sẽ phát hành BETH mới để nạp tiền cho người dùng.

Do đó, ngay sau khi ETH được gửi đến hợp đồng đăng ký xác minh, người dùng sẽ nhận được lượng BETH tương ứng do beacon chain phát hành. Trong quá trình này, việc nạp tiền có thể được xem xét tạm thời, nhưng theo giao thức Casper, nó không thể được xem xét vĩnh viễn.

Trước đây, một số dự án Mã thông báo chức năng thấp như BETH đã được giao dịch trên các sàn giao dịch thông qua IOU. Ví dụ: trong đợt bán cộng đồng Tezos, nó đã ra mắt thị trường tương lai HitBit và BitMEX XTZ. Do đó, nếu có nhu cầu về BETH, chúng ta nên cam kết xây dựng một hệ sinh thái trao đổi hỗ trợ giao dịch và đặt cược cho BETH được quản lý. Tuy nhiên, người dùng có thể nghi ngờ về nhu cầu hiện tại đối với BETH. Do chốt một chiều từ ETH sang BETH dẫn đến giá trần BETH là 1 ETH, BETH không phải là mục tiêu đầu tư tuyệt vời. Nói cách khác, BETH sẽ không bao giờ có giá trị cao hơn ETH và thậm chí có thể có giá trị thấp hơn.

tiêu đề cấp đầu tiên

Giai đoạn 0+: đặt cược

Trên beacon chain, người dùng có thể đặt cược 32 khoản tiền gửi BETH để trở thành người xác thực. Trong giai đoạn 0, người xác thực chỉ cần quản lý chuỗi đèn hiệu; từ đầu giai đoạn 1, người xác thực cũng sẽ quản lý 1024 chuỗi phân đoạn trong khi quản lý chuỗi đèn hiệu. Chuỗi đèn hiệu và mỗi chuỗi phân đoạn sẽ sử dụng Casper FFG để hoàn thành việc tạo khối. FFG là một thuật toán bằng chứng cổ phần (Proof of Stake) được sử dụng để thực hiện các hình phạt (tức là cắt cổ phần) đối với các hành vi xấu trên chuỗi.Những độc giả cẩn thận sẽ tìm thấy Casper CBC, anh em họ của FFG trong phần "Ethereum 3.0" của lộ trình sharding. Mặc dù việc giải thích chi tiết về FFG (và tất nhiên là CBC) nằm ngoài phạm vi của bài viết này. Nếu quan tâm, bạn có thể đọc Vitalik Buterin, người sáng lập EthereumLưu ý về Hybrid PoW / FFGGiới thiệu về Giảm thiểu Điều kiện CắtGiấy tờ FFG

tiêu đề phụ

Người dùng (stakers) cần làm gì?

Mục đích của sharding là phân chia thông tin trạng thái của các phân đoạn giữa các nút mà không yêu cầu bất kỳ nút nào phải có bức tranh đầy đủ về mạng cùng một lúc. Dựa trên điều này, trình xác thực sẽ không xác thực tất cả các phân đoạn. Thay vào đó, chuỗi đèn hiệu sẽ phối hợp xác minh các phân đoạn khác và tất cả những người xác thực sẽ tiến hành xác minh chuỗi đèn hiệu.Sau một khoảng thời gian cố định (64 khối hoặc khoảng 6,4 phút), chuỗi đèn hiệu sẽ "kiểm tra" các trình xác nhận, và gán ngẫu nhiên nó chosự phân mảnhsự phân mảnh. Một nhóm người xác thực được chỉ định cho một phân đoạn được gọi là Ủy ban, bao gồm128 thành viênQuy trình tạo số ngẫu nhiên nhiều giai đoạncũng nhưcũng nhưChức năng trì hoãn có thể kiểm chứng

, do đó có thể ngăn chặn các nỗ lực thao túng quá trình lựa chọn của ủy ban.

Ủy ban sẽ chịu trách nhiệm bảo vệ tính bảo mật, hoạt động và tính toàn vẹn của các mảnh của nó, đồng thời, cần phải xác nhận (Chứng thực) trạng thái của các mảnh trên chuỗi đèn hiệu. , vì vậy ETH2.0 sẽ là sự lựa chọn ngẫu nhiên của Ủy ban và luân chuyển thường xuyên các thành viên của ủy ban. Đồng thời, đây là cách duy nhất để chuỗi đèn hiệu có thể biết trạng thái của phân đoạn và ngược lại.64

tiêu đề phụ

Ý nghĩa của bằng chứng PoS là gì?Xác minh thanh toán đơn giản hóa không quốc tịch (SPV)Bằng chứng công việc không tương tác (NIPoPoW)

Nói cách khác, bằng chứng trạng thái từ xa trên bằng chứng cổ phần sẽ chứa lượng dữ liệu tương đương với xác minh SPV không trạng thái PoW, nhưng yêu cầu xác minh trước toàn bộ lịch sử PoS. Ngược lại, xác minh SPV không trạng thái không yêu cầu thông tin bổ sung để xác minh. Điều này có nghĩa là các ứng dụng liên phân đoạn hoặc liên chuỗi bị giảm chức năng nhưng tăng chi phí hoạt động trong môi trường bằng chứng cổ phần chủ quan.

tiêu đề cấp đầu tiên

Giai đoạn 1: Chia nhỏ

Giai đoạn 1 nhằm đạt được sự đồng thuận về nội dung của chuỗi phân đoạn, chứ không phải về ý nghĩa của chúng. Nói cách khác, đây là "chạy thử" cấu trúc sharding, chứ không phải cố gắng sử dụng sharding để mở rộng (Scale). Chuỗi đèn hiệu coi chuỗi phân đoạn là một tập hợp các bit không có cấu trúc hoặc ý nghĩa đơn giản. Chuỗi phân đoạn chưa sở hữu tài khoản, tài sản hoặc hợp đồng thông minh. Trình xác nhận phân đoạn được chọn ngẫu nhiên bởi chuỗi đèn hiệu cho mỗi kỷ nguyên của phân đoạn. Nó chỉ đơn giản là đồng ý về nội dung của mỗi khối. Không quan trọng thông tin nào xuất hiện trong phân đoạn, miễn là tất cả các thành viên ủy ban đạt được sự đồng thuận và thường xuyên cập nhật chuỗi đèn hiệu trên phân đoạn.Thông qua một quá trình được gọi là liên kết chéo (Crosslinking), những người xác nhận phân đoạn có thể xác minh nội dung và trạng thái của phân đoạn đó. Nói một cách đơn giản, ủy ban phải bao gồm thông tin có thể kiểm chứng về phân đoạn (ví dụ: hàm băm gốc) trong chuỗi báo hiệu. Trong giai đoạn 2 hoặc thậm chí cao hơn, liên kết chéo sẽ hỗ trợ giao tiếp giữa các phân đoạn (Cross-Shard Communication). Chuỗi đèn hiệu nhận được một liên kết chéo nhất định từ nhiều ủy banbằng chứng về độ chính xác

Sau đó, chuỗi đèn hiệu có thể tin tưởng rằng liên kết chéo là đại diện thực sự của phân đoạn mà không cần xác thực toàn bộ phân đoạn. Nếu ủy ban không đồng ý về tính hợp lệ của liên kết chéo, tức là rõ ràng là một trong các ủy ban đã sai, thì trình xác thực sẽ bị gạch chéo.

Đây là gốc rễ của bảo mật cho tất cả các phân đoạn, tức là hành vi sai trái của trình xác thực của chúng cuối cùng sẽ bị chuỗi báo hiệu phát hiện và trừng phạt.

Thật thú vị, việc triển khai Giai đoạn 0 đang tiến triển cùng lúc với sự phát triển của thông số kỹ thuật. Ngay cả bây giờ—chưa đầy ba tháng nữa là đến testnet—thông số kỹ thuật của Giai đoạn 0 vẫn thường xuyên được sửa đổi. Việc ước tính dòng thời gian cũng có nghĩa là sẽ có sự khác biệt lớn về thời gian phát triển của giai đoạn ETH2.0 trong tương lai. Những người lạc quan nói với tôi 6 tháng là đủ, nhưng tôi thấy có vẻ như sau khi thấy Giai đoạn 0 đi vào thử nghiệm, Giai đoạn 1 cần một chu kỳ phát triển từ 12 đến 18 tháng.

tiêu đề cấp đầu tiên

Giai đoạn 2: Hợp đồng thông minh eWASMCuối cùng, Giai đoạn 2 sẽ dẫn đến một hệ thống tương tự như hệ thống mà chúng ta đã quen thuộc trên Ethereum. Với bản phát hành Giai đoạn 2, chuỗi phân đoạn chuyển từ vùng chứa dữ liệu đơn giản sang trạng thái chuỗi có cấu trúc. Tại thời điểm này, BETH mới có thể chuyển nhượng được và các hợp đồng thông minh sẽ được giới thiệu lại. Mỗi phân đoạn sẽ được dựa trên

(Chúng tôi sẽ gọi nó là "EVM2") quản lý một máy ảo.

Ở giai đoạn này, EVM2 sẽ hỗ trợ các tài khoản, hợp đồng, trạng thái quen thuộc và các khái niệm trừu tượng khác. Tuy nhiên, một số lượng lớn các thay đổi hậu trường có thể phá vỡ hầu hết các công cụ hiện có. May mắn thay, nhóm kỹ thuật eWASM đã thực hiện một số công việc cơ bản cho trình biên dịch Solc, khung thử nghiệm và phát triển của Ethereum Truffle và Ganache. Trước hoặc trong mạng thử nghiệm Giai đoạn 2, chúng tôi sẽ có thể thấy các công cụ được sử dụng phổ biến nhất được chuyển đến đây để hỗ trợ EVM2.State Rent có thể được đưa vào Giai đoạn 2, điều này cũng đặt ra một số thách thức thú vị đối với các kỹ sư ngôn ngữ lập trình Solidity hiện tại. Cho thuê nhà nước không lưu trữ mã và dữ liệu vô thời hạn, nhưng yêu cầu các nhà phát triển hợp đồng và người dùng trả tiền cho việc lưu trữ EVM2 trong một khoảng thời gian. Ngăn chặn tình trạng phình to trạng thái bằng cách đảm bảo rằng thông tin không sử dụng sẽ hết trạng thái theo thời gian, cuối cùng sẽ đạt được mục tiêu là khiến người dùng phải trả chi phí trạng thái thay vì toàn bộ nút. Mọi người đề xuất khác nhaungười mẫu

, “trăm trường tranh luận” nhưng vẫn chưa có kết luận rõ ràng.với một sốKế hoạch nâng cấp Ethereumtrước, và nổi tiếngNhà phát triển lõi Ethereum

Ngoài ra, chúng tôi không biết Giai đoạn 2 sẽ kết thúc ở đâu, nó vẫn đang trong giai đoạn nghiên cứu ban đầu và bao gồm một số câu hỏi lớn chưa được giải quyết. Với quy trình phát triển và đặc điểm kỹ thuật không chính thức, cũng như việc mở rộng Giai đoạn 2 sang Giai đoạn 1. Bắt đầu Giai đoạn 2 trước năm 2020 có vẻ không hợp lý. Nói cách khác, mặc dù ETH2.0 có thể được ra mắt trong năm nay, phiên bản ETH2.0 dự kiến ​​sẽ không hỗ trợ chuyển tài sản hoặc hợp đồng thông minh cho đến ít nhất là năm 2020.

tiêu đề cấp đầu tiên

Giai đoạn 3: Lưu trữ trạng thái ngoài chuỗi

Giai đoạn 3 giảm thiểu trạng thái trên chuỗi bằng cách di chuyển càng nhiều trạng thái ra khỏi chuỗi càng tốt. Khi lưu trữ trên chuỗi, không nhất thiết phải lưu trữ toàn bộ trạng thái mà chỉ lưu trữ một số thông tin trạng thái và bộ tổng hợp (bộ tổng hợp là dữ liệu ngắn đại diện cho danh sách dữ liệu dài; cây Merkle là một loại bộ tổng hợp) được lưu trữ. Người dùng sẽ chịu trách nhiệm lưu trữ toàn bộ trạng thái ngoại tuyến.

Khi người dùng tương tác với trạng thái, nó bao gồm bằng chứng về trạng thái hiện tại trong giao dịch. Bằng cách này, các yêu cầu tài nguyên để chạy trình xác nhận sẽ thấp hơn nhiều. Ngày nay, một số thiết kế bộ tổng hợp đã xuất hiện với các tính năng và đặc điểm hiệu suất khác nhau, nhưng cho đến nay vẫn chưa có lựa chọn cụ thể nào được thực hiện. Ở giai đoạn này, chúng tôi ngừng sử dụng giao tiếp trên chuỗi để điều phối người dùng vì chuỗi không còn có thể đảm bảo tính khả dụng của dữ liệu. Trong Giai đoạn 3, việc duy trì và đạt được trạng thái ngoài chuỗi sẽ trở thành một trong những yếu tố chính hạn chế việc thiết kế DApps.

Giai đoạn 4: Chia nhỏ hợp đồng thông minh

chữ

Tuy nhiên, một vấn đề không thể vượt qua vẫn còn. Mặc dù các hợp đồng ETH2.0 mạnh mẽ như hợp đồng Ethereum, nhưng chúng nhất thiết phải được ràng buộc với một phân đoạn và không bao giờ có thể tương tác trực tiếp với các hợp đồng trên một phân đoạn khác. Đây là hệ quả trực tiếp của sharding, nhằm mục đích phân chia trạng thái giữa các phân đoạn mà không cần biết trực tiếp về các phân đoạn khác. Việc mở rộng quy mô đạt được bằng cách chia nhỏ trạng thái và giảm khối lượng công việc của trình xác nhận càng nhiều càng tốt.

Tương tác trực tiếp yêu cầu lưu trữ kiến ​​thức trực tiếp. Theo thiết kế, các phân đoạn không có kiến ​​thức trực tiếp về các phân đoạn khác. Nó chỉ biết về các phân đoạn khác thông qua giao tiếp xuyên chuỗi với chuỗi đèn hiệu. Do đó, khi người dùng muốn tương tác giữa các phân đoạn, họ phải đợi chuỗi đèn hiệu. Cụ thể, điều này có nghĩa là nếu một mô-đun SafeMath được triển khai trên phân đoạn A, người dùng trên phân đoạn B phải đợi quyền truy cập hoặc triển khai một mô-đun SafeMath mới trên phân đoạn B.

Sự chậm trễ kéo dài giữa kích hoạt CDP và thu thập DAI có thể dẫn đến thiệt hại kinh tế không thể bù đắp được. Điều gì sẽ xảy ra nếu thị trường thay đổi và CDP bị thanh lý trước khi người dùng nhận được DAI? Trên thực tế, điều này có thể có nghĩa là người dùng cần phải có tài khoản trên mỗi phân đoạn chứa hợp đồng thông minh, nhưng cấu trúc phân đoạn chéo là vô dụng. Maker và 0x chỉ có thể tương tác nếu cả hai đều được triển khai trên cùng một phân đoạn và người dùng 0x cũng cần sở hữu một lượng tài sản nhất định trên phân đoạn đó.

tiêu đề phụ

Sự đánh đổi cơ bản: Đồng bộ hóa hoặc Chia tỷ lệ

Các nhà thiết kế của phiên bản ETH2.0 không biết hệ thống giao tiếp giữa các phân đoạn cuối cùng sẽ trông như thế nào. Bằng cách đọc nhiều đề xuất, hệ thống có thể đánh đổi cơ bản giữa phản hồi tức thì và khả năng dự đoán. Bản chất của sharding sẽ không thay đổi, bất kỳ người dùng nào cũng sẽ phải chờ giao tiếp giữa các phân đoạn. Tuy nhiên, chúng tôi có thể kết hợp chặt chẽ hoặc lỏng lẻo các giai đoạn thực hiện giao dịch cục bộ và từ xa cho từng phân đoạn.

Khớp nối chặt chẽ làm cho việc chờ đợi được ưu tiên. Giao dịch không làm gì cho đến khi các phân đoạn giao tiếp. Thay vào đó, chúng ta có thể kết hợp các giao dịch một cách lỏng lẻo bằng cách thực hiện các phần ngay bây giờ và thực hiện các phần sau. Các giao dịch được thực hiện trên phân đoạn cục bộ, sau đó được thực hiện trên phân đoạn từ xa sau khi giao tiếp giữa các phân đoạn.

Khớp nối lỏng lẻo cung cấp trải nghiệm người dùng tốt hơn. Người dùng có thể thấy ngay các giao dịch của họ được thực hiện cục bộ và biết rằng việc thực thi từ xa sẽ xảy ra vào một thời điểm nào đó trong tương lai. Nhưng may mắn và bất hạnh đến cùng nhau và người dùng phải chờ để biết kết quả của giai đoạn từ xa của các giao dịch được kết hợp lỏng lẻo. Các giao dịch được kết hợp chặt chẽ dễ dự đoán hơn các giao dịch được kết hợp lỏng lẻo. Đồng thời, người dùng nhận thức rõ hơn về kết quả vì trạng thái từ xa không chuyển đổi giữa các giai đoạn thực thi cục bộ và từ xa. Nhưng “đậu phụ nóng ăn vội không được”, khớp nối chặt chẽ buộc người dùng phải đợi trước khi thấy kết quả.Có rất ít thông tin về mô hình giao tiếp của ETH2.0. Chúng tôi biết rằng mô hình phải cung cấp các cuộc gọi hợp đồng giữa các phân đoạn với chi phí của hầu hết tất cả các lợi thế mở rộng. Tôi không trách bạn nếu bạn dừng đọc ở đây, bởi vì Giai đoạn 4 chỉ tồn tạibản đồ tư duy và một số liên kết tối nghĩa

. Một hậu quả rõ ràng của tình huống này là ETH2.0 sẽ không mang lại lợi thế mở rộng đáng kể cho các hệ thống hợp đồng thông minh phức tạp cho đến giai đoạn 4. Trước đây, các hợp đồng thông minh muốn tương tác với các hợp đồng khác phải cùng tồn tại với một phân đoạn và bị giới hạn ở tốc độ và tác động mở rộng của phân đoạn đó. So với ETH1.X, sharding chỉ có thể đạt được tốc độ tối đa là một hệ số không đổi nhỏ. Điều này có nghĩa là trước khi phát hành giai đoạn 4 (khoảng năm 2025), không có lý do gì để di chuyển mã hợp đồng thông minh hoặc người dùng do những lợi thế nhỏ của nó.Quan trọng: Mọi thứ bên dưới đều là suy đoán

tiêu đề phụ

Mô hình cơ bản: Biên lai và Bằng chứng

Tất cả các hình thức giao tiếp xuyên chuỗi đều dựa vào Beacon Chain. Vì chuỗi đèn hiệu có thể truy xuất trạng thái của tất cả các phân đoạn và mỗi phân đoạn ảnh hưởng đến trạng thái của chuỗi đèn hiệu nên nó được sử dụng làm cốt lõi trong hệ sinh thái chuỗi phân đoạn. Theo một nghĩa nào đó, thông tin từ chuỗi này sang chuỗi khác phải được truyền qua chuỗi đèn hiệu.Xét rằng điều này yêu cầu chuỗi đèn hiệu tự xử lý từng giao dịch, hiệu quả mở rộng hoàn toàn không đạt được, vì vậy không nên gửi toàn bộ thông tin.

Thay vào đó, khi người dùng hoặc hợp đồng trên phân đoạn A muốn tương tác với phân đoạn B, phân đoạn A sẽ tạo một "biên nhận" với thông báo cho tương tác đó. Phân đoạn A gửi tất cả các biên nhận trong tiêu đề khối của nó và chuỗi đèn hiệu đợi A xác nhận hoàn thành trước khi gửi tới tiêu đề khối của phân đoạn A (bao gồm cả việc gửi biên lai). Phân đoạn B cũng phải chờ xác nhận cuối cùng của đèn hiệu trước khi cam kết với tiêu đề khối đèn hiệu.

Không khó để thấy rằng quá trình này mất rất nhiều thời gian. Mỗi bước trong bốn bước giao tiếp cần vài phút để hoàn thành. Thật không may, chúng ta không thể tránh hoàn toàn việc chờ đợi. Nếu chúng ta muốn xác định trạng thái từ xa, ở mỗi bước chúng ta phải đợi kết quả cuối cùng. Trường hợp tốt nhất để liên lạc khứ hồi là bốn chu kỳ xác nhận cuối cùng. Nói cách khác, vì người dùng có thể xem dữ liệu của phân đoạn B trước khi phân đoạn A nhìn thấy chúng, nên người dùng sẽ tự tin hơn sau ba chu kỳ xác nhận. Với độ dài kỷ nguyên của ETH2.0 là 6,4 phút, người dùng sẽ phải đợi 19 phút để xem kết quả và 26 phút để nhận kết quả trên chuỗi.

tiêu đề phụ

Biên lai bê tông: Di chuyển mã thông báo giữa các phân đoạn

Tính linh hoạt của mã thông báo ERC20 khiến chúng trở nên phổ biến trong Ethereum ngày nay. Tuy nhiên, ETH2.0 cũng mang đến một số vấn đề logic đối với Token. Vì hợp đồng thông minh quản lý tất cả số dư Token và hợp đồng thông minh chỉ tồn tại trên một phân đoạn duy nhất. Do đó, mã thông báo từ phân đoạn A hoàn toàn không tồn tại trên phân đoạn B. Nhưng với một số giao tiếp giữa các phân đoạn thông minh, chúng tôi có thể triển khai cùng một mã thông báo trên nhiều phân đoạn và cho phép chuyển mã thông báo giữa các phân đoạn, thiết lập hiệu quả chốt hai chiều giữa các hợp đồng mã thông báo.

Giải pháp này rất đơn giản.

Chúng tôi cần triển khai lại hợp đồng mã thông báo của mình trên mỗi phân đoạn, nhưng điều đó có vẻ xứng đáng. Quá trình di chuyển là một chiều, yêu cầu ít nhất hai lần xác nhận cuối cùng về giao tiếp giữa các phân đoạn. Do đó, phải mất khoảng 10 phút sau khi chúng tôi gọi MigrateSend để "CCT" có sẵn trên phân đoạn nhận.

tiêu đề phụ

Kéo (kéo)Yanking Biên lai là một cách chung để truyền thông tin qua các phân đoạn. Chúng tôi có thể đưa bất kỳ thông tin trực tuyến nào vào biên lai, thậm chí toàn bộ hợp đồng thông minh.

Điều này sẽ cho phép bất kỳ một hợp đồng thông minh nào giao tiếp với bất kỳ hợp đồng thông minh nào khác (sau thời gian chờ đợi giữa các phân đoạn). Nhưng vì biên lai chứa toàn bộ hợp đồng và tất cả dung lượng lưu trữ của nó nên chi phí chuyển một hợp đồng lớn hoặc hợp đồng phổ biến của người dùng có thể cao. Biên lai đang trong quá trình vận chuyển và hợp đồng sẽ hoàn toàn không sử dụng được. Nó đã được kéo từ phân đoạn A, nhưng chưa đến phân đoạn B. Điều này có nghĩa là tất cả những người dùng khác không thể sử dụng hợp đồng cho đến khi nó đến được phân đoạn B. Đồng thời, chỉ những người dùng đã có trên phân đoạn B mới có thể tương tác với nó. Do đó, Yank phù hợp nhất cho các hợp đồng thông minh nhỏ với ít người dùng, nó cho phép thực thi liên kết chặt chẽ, nhưng không phải là giải pháp chung.

tiêu đề phụ

ghép mảnh

Hãy chuyển sang một số ý tưởng xây dựng sáng tạo hơn.

Biên lai được thiết kế để cho phép giao tiếp không đồng bộ (được ghép nối lỏng lẻo). Nhưng chúng ta cũng có thể cần giao tiếp đồng bộ. Để làm được điều này, chúng ta phải sáng tạo hơn. Với thiết kế đơn giản, ghép nối phân đoạn cho phép thực thi liên kết chặt chẽ với ít rắc rối nhất có thể.

Trong mô hình này, nếu cần có giao dịch xuyên chuỗi giữa A và B, thì cần phải đợi A và B được ghép nối ngẫu nhiên. Nhưng Vitalik mô tả 100 trường hợp sharding. Có 1024 mảnh và chúng tôi hy vọng nó sẽ chiếm 512 khối, vì vậy sẽ mất khoảng một giờ. Nhưng vì việc ghép đôi là ngẫu nhiên nên có thể cần dài hơn hoặc ngắn hơn. Như Vitalik đã nói, điều này không mở rộng tốt khi bạn muốn tương tác với nhiều phân đoạn.

tiêu đề phụ

Khu vực mảnh vỡ

Đây là phiên bản rộng hơn của ghép nối phân đoạn.

Ngoài ra, các khu vực phủ nhận nhiều lợi ích mở rộng quy mô của sharding vì chúng yêu cầu trình xác thực biết trạng thái của tất cả các phân đoạn trong khu vực. Nếu một khu vực bao gồm 16 phân đoạn, thì bạn hy sinh khoảng 15/16 (94%) lợi thế mở rộng quy mô và chỉ nhận được 15/1024 (1%) tổng số thực thi được liên kết chặt chẽ của mạng.

tiêu đề phụ

trở ngạiMột thuộc tính không rõ ràng của giao tiếp giữa các phân đoạn (và chuỗi chéo) là người dùng có thể tin tưởng vào các tin nhắn nhanh hơn so với các chuỗi liên quan. Alice gửi 5 BETH từ phân đoạn A đến phân đoạn B, biết rằng những tài sản này sẽ đến ngay sau khi gửi. Bob nhìn thấy giao dịch được gửi và biết rằng BETH sẽ đến được phân đoạn B sau khi được gửi đến phân đoạn A để xác nhận. Tuy nhiên, phân đoạn B và hợp đồng của nó phải đợi vài phút để chuỗi đèn hiệu hoàn tất xác nhận của phân đoạn A. Điều này có nghĩa là sau khi tiền được chi cho phân đoạn A, ví có thể nhận và chi tiêu số tiền đó cho phân đoạn B rất nhanh chóng. Nói cách khác, vì Bob tin tưởng rằng Alice đã gửi đủ ETH nên anh ấy sẽ nhận được tệp thực thi từ ví của Alice trên phân đoạn B.IOU (IOU)

Tuy nhiên, khi áp dụng cho các hợp đồng thông minh, giải pháp này trở nên phức tạp vì trạng thái không bao giờ có thể thay thế được. IOU trạng thái không thể thực hiện được, vì vậy chúng không phù hợp với các tương tác chung. Chúng ta nên nghĩ về các trở ngại khi cải thiện trải nghiệm người dùng trong khớp nối lỏng lẻo, cho phép khớp nối lỏng lẻo mô phỏng khớp nối chặt chẽ và thực hiện nhanh các giao dịch nhất định.

tiêu đề phụ

Đồng thuận và tách nhà nước

Chỉ tất cả trạng thái có trong khối thực thithay mớithay mới

Sau đó, các công cụ khai thác Ethereum và các nút đầy đủ sẽ chấp nhận các khối. Nhưng thực tế thì không phải vậy. Thay vào đó, nó có thể chấp nhận các khối trước và sau đó cập nhật trạng thái. Trong trường hợp này, thay vì đạt được sự đồng thuận về trạng thái của hệ thống như chúng tôi làm trong Ethereum, chúng tôi sẽ đạt được sự đồng thuận về tổng lịch sử (hoặc "tổng số thứ tự") của tất cả các giao dịch trên tất cả các phân đoạn.

tiêu đề cấp đầu tiên

bản tóm tắt

bản tóm tắt

ETH2.0 sẽ là một hệ thống hoàn toàn khác so với Ethereum và cả hai sẽ tồn tại song song với nhau trong nhiều năm với các bộ tính năng khác nhau. Trong tương lai gần, dự kiến ​​sẽ có chốt một chiều từ ETH sang BETH. Nếu bạn vận hành một dịch vụ trao đổi hoặc ký quỹ, bạn có thể xem xét hỗ trợ người dùng thực hiện các giao dịch ký quỹ và đặt cược BETH trước khi BETH được chuyển giao trên chuỗi. Về lâu dài, cũng cần phải xem xét cách các hợp đồng thông minh có thể thích ứng với sharding có hoặc không có giao tiếp giữa các shard.

袁辉腾
作者文库