Giấy trắng Ethereum, giải thích. Phần 1

Trong các bài đăng trên blog sau đây, chúng tôi sẽ mổ xẻ sách trắng Ethereum bằng cách mô tả nó theo thuật ngữ cư sĩ. Vì bài viết quá dài để phù hợp với một bài viết trên blog, chúng tôi sẽ chia nó thành nhiều phần. Chúng tôi sẽ cố gắng giải thích các chi tiết thích hợp được đề cập trong sách trắng Ethereum bằng các thuật ngữ đơn giản nhất có thể.

Giới thiệu và khái niệm hiện có

Chúng ta đều biết rằng sự phát triển Bitcoin của Satoshi Nakamoto, đã tạo ra công nghệ hoành tráng được gọi là - Blockchain. Hy vọng, bạn đã biết công nghệ Blockchain là gì, nhờ các bài đăng trước đây của chúng tôi.

Có rất nhiều ứng dụng khác cho công nghệ Blockchain, một số trong số chúng bao gồm: tiền xu màu, tài sản thông minh, namecoin, hợp đồng thông minh hoặc DAO (Các tổ chức tự trị phi tập trung). Các ứng dụng này rất phức tạp để xây dựng dựa trên blockchain Bitcoin. Để giải quyết vấn đề này, Ethereum đề xuất một ngôn ngữ lập trình hoàn chỉnh Turing có thể được sử dụng để tạo hợp đồng thông minh hoặc mã hóa các chức năng phức tạp. Ngôn ngữ hoàn chỉnh Turing về cơ bản có thể được sử dụng để mô phỏng máy Turing. Máy Turing là một mô hình có thể mô phỏng bất kỳ thuật toán máy tính nào bất kể độ phức tạp.

Nền tảng Ethereum đề xuất rằng tất cả những điều trên có thể đạt được một cách dễ dàng trong một vài dòng mã. Chúng tôi sẽ xác nhận khiếu nại này hơn nữa trong blog này và các bài đăng trong tương lai.

Lịch sử

Tiền tệ kỹ thuật số như là một khái niệm đã phổ biến trong nhiều thập kỷ. Vào những năm 80 và 90, một kỹ thuật mật mã có tên Chaumian Blinding đã được sử dụng. Tuy nhiên, họ dựa vào một trung gian tập trung là một công cụ thỏa thuận rõ ràng. Sau đó, B-money đã đề xuất một hệ thống đồng thuận phi tập trung nhưng làm thế nào để đạt được điều đó là điều gây tranh cãi. Điều này được theo sau bởi Hal Finney đề xuất bằng chứng tái sử dụng công việc mà khi kết hợp với khái niệm tiền B ban đầu có vẻ hứa hẹn nhưng cố gắng đưa ra giải pháp như vậy đã không thành công.

Satoshi Nakamoto đã đối chiếu tất cả các khái niệm này cùng với các công nghệ nguyên thủy đã được thiết lập khác để quản lý quyền sở hữu thông qua các kỹ thuật mã hóa. Thuật toán đồng thuận được sử dụng bởi Bitcoin Blockchain để theo dõi các đồng tiền được gọi là bằng chứng công việc.

Bằng chứng về cơ chế đồng thuận công việc là một bước đột phá lớn trong lĩnh vực này vì nó giải quyết được hai vấn đề chính.

  1. Các nút trong mạng giờ đây có thể dễ dàng đồng ý sử dụng thuật toán đồng thuận để nhập các giao dịch vào sổ cái phân tán.
  2. Vấn đề ai là người quyết định nhập vào sổ cái phân tán đã được giải quyết bằng cách sử dụng sức mạnh tính toán mà mỗi nút sẵn sàng chi tiêu.

Đối với các thợ mỏ, điều này về cơ bản có nghĩa là - Sức mạnh tính toán nhiều hơn = Nhiều khối được khai thác hơn = Phần thưởng nhiều tiền điện tử hơn.

Một khái niệm khác được gọi là bằng chứng cổ phần tính toán trọng số của một nút trong quá trình bỏ phiếu dựa trên số lượng tiền mà nó nắm giữ và không chỉ là tài nguyên tính toán.

Hệ thống chuyển đổi nhà nước

Sổ cái của bất kỳ loại tiền điện tử nào thực chất là một hệ thống chuyển đổi trạng thái, tại bất kỳ thời điểm nào cũng có thông tin về số lượng ví có trong các ví riêng lẻ và các giao dịch được thực hiện bởi các ví này.

Trong sơ đồ dưới đây, có ba khối chính được xem xét

Bang - Điều này bao gồm tất cả các thông tin sở hữu có trong sổ cái được mã hóa bằng mật mã.

Giao dịch - Khối giao dịch xác định số tiền chuyển được bắt đầu trong hệ thống. Nó cũng bao gồm một chữ ký được xác định bởi người gửi.

Trạng thái - Trạng thái này bao gồm thông tin quyền sở hữu cuối cùng được phân phối trên tất cả các nút. Bang này sau đó sẽ đóng vai trò là Nhà nước trong giao dịch tiếp theo.

Trong cài đặt ngân hàng fiat truyền thống, các tiểu bang là bảng cân đối riêng và khi tiền được gửi từ A đến B, hồ sơ cá nhân của họ được cập nhật.

Rõ ràng, sử dụng các ngân hàng truyền thống, chúng tôi không thể gửi nhiều tiền hơn số tiền chúng tôi có trong tài khoản cá nhân, một logic tương tự đã được áp dụng ở đây được xác định bởi chức năng sau.

ÁP DỤNG (S, TX) -> S, hoặc LRI

Để minh họa điều này trong ngữ cảnh của ví dụ ngân hàng, chúng ta có thể dịch nó thành biểu thức sau đây.

CRYPTO

ÁP DỤNG (S, TX) -> Sùi

NGÂN HÀNG

ÁP DỤNG ({Alice: $ 50, Bob: $ 50}, phạm gửi $ 20 từ Alice đến Bob Khăn) = {Alice: $ 30, Bob: $ 70}

Ở đây S là trạng thái ban đầu mà cả Alice và Bob đều có $ 50 trong tài khoản của họ.

TX là giao dịch xác định khu vực gửi 20 đô la từ Alice đến Bob phạm

Sạn là trạng thái cuối cùng phản ánh số dư cập nhật của Alice và Bob

Trước khi chuyển sang kịch bản tiếp theo, chúng ta phải hiểu cách tính sở hữu tiền trong tài khoản cá nhân.

Một bang bitcoin bitcoin có bộ sưu tập tất cả các đồng tiền tồn tại cùng với khóa công khai của chủ sở hữu của họ. Bộ sưu tập những đồng tiền này được xác định bởi tổng UTXO được liên kết với địa chỉ. UTXO là Đầu ra giao dịch chưa được xác định, như tên cho thấy chưa được chủ sở hữu chi tiêu. Những đầu ra này được đo bằng cách kiểm tra xem các đồng tiền đến từ chủ sở hữu trước đó cũng là UTXO, để bắt đầu. Điều này được xác nhận bằng cách kiểm tra chủ sở hữu trước UTXO và ghép nối nó với chữ ký mã hóa được tạo bởi khóa riêng của chủ sở hữu trước đó.

Bây giờ hãy để chúng tôi phân tích điều gì xảy ra nếu bạn thử bán những đồng tiền mà bạn không có?

CRYPTO

ÁP DỤNG (S, TX) -> LRI

NGÂN HÀNG

ÁP DỤNG ({Alice: $ 50, Bob: $ 50}, phạm gửi 70 đô la từ Alice đến Bob đấm) = LRI

1. Kiểm tra giá trị được đề cập trong TX ($ 70)

a. Nếu giá trị này không được xác minh bởi UTXO của chủ sở hữu, thì nó không có trong tài khoản của họ. Trả lại một lỗi.

b. Nếu chữ ký điện tử được đề cập không khớp với chữ ký của chủ sở hữu, hãy trả lại lỗi.

2. Nếu tổng của tất cả UTXO của chủ sở hữu nhỏ hơn con số được đề cập trong TX, hãy trả về lỗi.

3. Nếu giao dịch hợp lệ, chuyển tiền cho người nhận. Việc chuyển tiền này xảy ra bằng cách xóa UTXO đầu vào khỏi người gửi và thêm nó dưới địa chỉ khóa công khai của người nhận.

Bước 1a ngăn người gửi gửi tiền không tồn tại và bước 1b ngăn người gửi gửi tiền cho người khác.

Bước 2 đảm bảo rằng có đủ tiền với người gửi trước khi tiến hành giao dịch.

Bước 3 hoàn thành quy trình bằng cách trừ các giá trị từ người gửi và thêm nó vào ví của người nhận.

Bây giờ, các bước này có thể dễ hình dung nhưng đằng sau hậu trường, có rất nhiều điều đang diễn ra.

Ví dụ sau sẽ giúp bạn hiểu rõ hơn.

Giả sử bạn ra ngoài để mua một bó Chuối. Bây giờ vì một lý do mơ hồ, 1 quả chuối có giá 75 đô la. Trong một thiết lập truyền thống, để xem bạn có đủ khả năng mua loại chuối quá đắt này hay không, bạn sẽ mở ví và kiểm tra số dư. Bạn có hai ghi chú 50 đô la mỗi tổng cộng 100 đô la (50 + 50 = 100, duh!). Hai lưu ý này được mẹ bạn tặng cho bạn để mua Chuối.

Để có thể đủ khả năng mua Banana này, bạn phải tặng cả hai tờ tiền 50 đô la của mình cho người bán Banana và anh ta sẽ trả lại 25 đô la bằng cách sử dụng kết hợp các mệnh giá USD. Bây giờ bạn là một chủ sở hữu tự hào của Banana siêu đắt tiền này. Vấn đề thực sự hiện đang ở phía trước bạn, là giải thích cho mẹ bạn về giá 1 quả chuối.

Điều này khá đơn giản để hiểu, bây giờ chúng ta hãy xem điều gì xảy ra trong một giao dịch tiền điện tử điển hình.

Hãy xem xét Alice muốn gửi 75 BTC (vâng, Alice giàu có bẩn thỉu) cho Bob. Để tiếp tục, trước tiên cô ấy sẽ kiểm tra xem cô ấy có 75 BTC trong ví không. Để kiểm tra điều này, cô ấy phải tổng hợp tất cả UTXO (giá trị đầu vào) của mình. Hãy xem xét UTXO này như hai ghi chú $ 50 trong ví dụ trước. Tuy nhiên, Alice có hai giá trị UTXO trong ví 50 BTC mỗi ví. Điều này ngụ ý rằng Alice đã nhận được hai giao dịch vào ví của mình. Mỗi UTXO trị giá 50 BTC.

Bây giờ, chúng tôi biết rằng bạn không thể cắt một tờ 100 đô la thành hai phần để chia thành hai tờ 50 đô la, điều đó sẽ khiến cho tờ 100 đô la trở nên vô giá trị. Tuy nhiên, trong tiền điện tử, bạn có thể thực hiện các giao dịch vi mô bằng cách chia 1 đồng xu thành mười đồng xu 0,1. Sự phân chia này, tuy nhiên, không đơn giản.

Để chuyển 75 BTC cho Bob, Alice sẽ tạo một giao dịch với hai đầu vào 50 BTC để đưa ra hai đầu ra. Một đầu ra sẽ được trao cho Bob, một số dư khác sẽ được chuyển trở lại vào ví Alice.

50BTC + 50BTC → 75BTC cho Bob + 25BTC cho Alice

Trong kịch bản này, Bob không được ủy thác trả lại số dư so với ví dụ trước. Thay vào đó, giao dịch xử lý việc trả lại đầu ra số dư còn lại cho Alice.

Khai thác mỏ

Trong một xã hội lý tưởng nơi chúng ta có thể tin tưởng một hệ thống tập trung với tất cả các giao dịch, bước này sẽ hoàn toàn không cần thiết. Nhưng chúng tôi đang cố gắng tạo ra một hệ thống đồng thuận phi tập trung có khả năng phá vỡ sự độc quyền mà các ngân hàng dành cho các nền kinh tế của chúng tôi. Khai thác là một phương pháp mà chúng ta có thể kết hợp hệ thống chuyển trạng thái với hệ thống đồng thuận sao cho tất cả các nút trong mạng đồng ý với các giao dịch. Các giao dịch này được kết hợp và đóng gói thành các khối như trong hình dưới đây.

Mạng Bitcoin tạo ra 1 khối cứ sau 10 phút. Mỗi khối có dấu thời gian, số không (số không lặp lại tùy ý), tham chiếu đến khối trước được đề cập là Prevhash trong sơ đồ trên và danh sách tất cả các giao dịch đã diễn ra sau khi khối trước được khai thác. Chuỗi khối không bao giờ kết thúc này luôn đại diện cho trạng thái mới nhất của sổ cái phân tán và do đó có được tên của nó - Blockchain.

Các bước sau đây kiểm tra tính hợp lệ của một khối:

  1. Kiểm tra xem khối trước được tham chiếu bởi khối có tồn tại hay không và có hợp lệ không.
  2. Kiểm tra xem dấu thời gian của khối lớn hơn khối trước đó và chưa đến 2 giờ trong tương lai.
  3. Kiểm tra xem bằng chứng làm việc trên khối là hợp lệ.
  4. Đặt S [0] là trạng thái ở cuối khối trước.
  5. Giả sử TX là danh sách giao dịch khối với n giao dịch. Đối với tất cả i trong 0 trì n-1, đặt S [i + 1] = ỨNG DỤNG (S [i], TX [i]) Nếu bất kỳ ứng dụng nào trả về lỗi, thoát và trả về sai.
  6. Trả về true và đăng ký S [n] làm trạng thái ở cuối khối này.

Điểm 1 đến 3 là đơn giản. Tuy nhiên, 3 điểm tiếp theo nghe có vẻ hơi khó hiểu. Hãy để chúng tôi hiểu làm thế nào mà làm việc.

Như đã đề cập ở điểm 4, hãy để S [0] là trạng thái ở cuối Khối 5624.

Trong điểm 5 có đề cập rằng đối với mỗi n giao dịch, có một trạng thái cụ thể như sau:

Vậy theo hàm → S [i + 1] = ỨNG DỤNG (S [i], TX [i])

Chúng tôi có những điều sau đây:

S [1] = ỨNG DỤNG (S [0], TX [0]) ← Giao dịch đầu tiên

S [2] = ỨNG DỤNG (S [1], TX [1]) ← Giao dịch thứ hai

.

.

S [n] = ỨNG DỤNG (S [n-1], TX [n-1]) ← giao dịch thứ n

Nếu bạn nhớ chức năng mà chúng ta đọc trong chủ đề trước. Chúng ta có thể quay lại giá trị của S dựa trên hàm Áp dụng.

ÁP DỤNG (S, TX) -> Sùi

Điều này chủ yếu được sử dụng để liên kết các giao dịch và khối khác nhau. Vì vậy, mỗi giao dịch trong khối xác định chuyển đổi trạng thái hợp lệ bằng cách sử dụng các chức năng trên từ giao dịch này sang giao dịch khác. Tuy nhiên, trạng thái không được lưu trữ ở bất kỳ đâu trong khối và chỉ được tính toán chính xác bằng cách bắt đầu từ trạng thái genesis của khối cụ thể đó, cho mọi giao dịch trong khối đó. Điều này cuối cùng đưa ra một đầu ra của S [n] sẽ đóng vai trò là S [0] cho khối tiếp theo.

Thứ tự của các giao dịch có tầm quan trọng hàng đầu bởi vì nếu B tạo ra một giao dịch liên quan đến tiền (UTXO) đã được gửi (tạo) bởi A, thì giao dịch được thực hiện bởi A phải đến trước B để khối có hiệu lực.

Điều kiện chứng minh công việc cần thiết là hàm băm kép SHA256 của mỗi khối là số 256 bit phải nhỏ hơn mục tiêu được điều chỉnh động. Các mục tiêu động này thay đổi theo thời gian để các thợ mỏ cung cấp sức mạnh tính toán dồi dào để xác nhận bằng chứng công việc của họ. Ngoài ra, do chức năng SHA256 hoàn toàn giả ngẫu nhiên và không thể đoán trước, nên cách duy nhất để bẻ khóa nó là bằng thử nghiệm đơn giản và lỗi hoặc lực lượng vũ phu.

Giả sử mục tiêu động được đặt ở mức ~ 2150, thì mạng phải đạt trung bình 2 (256 điều 150) tương đương với 2106 lần thử trước khi tìm thấy một khối hợp lệ. Mục tiêu động này được đặt lại mỗi khối 2016 và được hiệu chỉnh thành giá trị mục tiêu mới. Một khối mới trên trung bình được sản xuất cứ sau mười phút trên mạng Bitcoin. Đối với tất cả các công việc nặng nhọc mà các thợ mỏ thực hiện bằng cách tạo điều kiện cho các giao dịch của chúng tôi và giải quyết các vấn đề toán học phức tạp, họ được trao Bitcoin làm phần thưởng. Phần thưởng ban đầu là 25 BTC mỗi khối được khai thác. Hiện tại, phần thưởng là 12,5 BTC mỗi khối được khai thác. Đây là cách bitcoin đi vào lưu thông. Bitcoin được trao cho những người khai thác là những bitcoin mới đang được mở khóa từ 21.000.000 Bitcoin, đây là giới hạn cứng của Bitcoin có thể được lưu hành.

NHỮNG GÌ ĐÃ XẢY RA TRONG SỰ KIỆN CỦA MỘT ATTACK?

Bây giờ hãy để chúng tôi phân tích lợi ích của việc khai thác và cách nó ngăn chặn các cuộc tấn công. Các dòng sau đây đã được chọn từ sách trắng Ethereum vì văn bản có khá nhiều tự giải thích.

Chiến lược tấn công rất đơn giản:

  1. Gửi 100 BTC cho một thương gia để đổi lấy một số sản phẩm (tốt nhất là hàng hóa kỹ thuật số giao hàng nhanh)
  2. Chờ giao sản phẩm
  3. Tạo một giao dịch khác gửi cùng 100 BTC cho chính mình
  4. Hãy cố gắng thuyết phục mạng rằng giao dịch của anh ta với chính anh ta là giao dịch đầu tiên.

Khi bước (1) đã diễn ra, sau vài phút, một số người khai thác sẽ bao gồm giao dịch trong một khối, giả sử khối số 270. Sau khoảng một giờ, năm khối nữa sẽ được thêm vào chuỗi sau khối đó, với mỗi khối những khối đó gián tiếp trỏ đến giao dịch và do đó, xác nhận của nó. Tại thời điểm này, thương gia sẽ chấp nhận thanh toán như đã hoàn tất và giao sản phẩm; vì chúng tôi cho rằng đây là hàng hóa kỹ thuật số, giao hàng ngay lập tức. Bây giờ, kẻ tấn công tạo ra một giao dịch khác gửi 100 BTC cho chính mình. Nếu kẻ tấn công đơn giản phát hành nó vào tự nhiên, giao dịch sẽ không được xử lý; những người khai thác sẽ cố gắng chạy ỨNG DỤNG (S, TX) và nhận thấy rằng TX tiêu thụ UTXO không còn ở trạng thái. Vì vậy, thay vào đó, kẻ tấn công tạo ra một nhánh rẽ nhánh của blockchain, bắt đầu bằng cách khai thác một phiên bản khác của khối 270 chỉ vào cùng khối 269 với tư cách là cha mẹ nhưng với giao dịch mới thay cho giao dịch cũ. Bởi vì dữ liệu khối là khác nhau, điều này đòi hỏi phải làm lại bằng chứng công việc. Hơn nữa, kẻ tấn công phiên bản mới của khối 270 có hàm băm khác nhau, do đó, các khối ban đầu từ 271 đến 275 không chuyển đổi điểm của nó; do đó, chuỗi ban đầu và chuỗi tấn công mới của kẻ tấn công là hoàn toàn tách biệt. Quy tắc là trong một ngã ba, blockchain dài nhất được coi là sự thật và vì vậy những người khai thác hợp pháp sẽ làm việc trên chuỗi 275 trong khi kẻ tấn công một mình đang làm việc trên chuỗi 270. Để kẻ tấn công biến blockchain của mình lâu nhất, anh ta sẽ cần phải có sức mạnh tính toán nhiều hơn phần còn lại của mạng kết hợp để bắt kịp (do đó, tấn công 51% tấn công).

Văn bản trên cho thấy làm thế nào để giành quyền kiểm soát blockchain, kẻ tấn công phải có sức mạnh xử lý nhiều hơn 51% tổng số blockchain, điều chắc chắn là không thể đối với các đồng tiền hàng đầu.

Cây Merkle

Cây Merkle giúp duy trì tính độc đáo của một khối. Cây Merkle là một cây nhị phân trong đó mỗi nút có hai con và điều này đi sâu xuống phía dưới để có các nút lá riêng lẻ bao gồm dữ liệu giao dịch. Các nút lá này xây dựng lên đến đỉnh như thể hiện trong hình bên dưới và kết thúc trong một ‘hàm băm. Băm này của một khối bao gồm dấu thời gian, nonce, băm khối trước đó và hàm băm gốc của cây Merkle như trong hình bên trái.

Bây giờ, vẻ đẹp của các chức năng mã hóa là, ngay cả khi một bit đầu vào bị thay đổi, toàn bộ mẫu mã hóa thay đổi và đầu ra giá trị băm trung gian là khác nhau. Điều này thay đổi đầu ra giá trị băm của khối tổng thể và bị blockchain từ chối vì nó không có bằng chứng công việc hợp lệ. Đầu ra của cây Merkle là một hàm băm duy nhất đủ an toàn để hoạt động như một sự đảm bảo cho các nút.

Các nút này so sánh hàm băm này từ một nguồn với một phần nhỏ khác của cây Merkle từ một nguồn khác để cuối cùng xác thực tính xác thực của khối. Một kịch bản tương tự được hiển thị ở phía bên phải của hình ảnh trên khi một nút từ chối một khối vì hàm băm của nó không khớp với dữ liệu trong cây Merkle.

Khi dữ liệu được lưu trữ trong blockchain của bitcoin liên tục tăng, sẽ có một điểm mà các máy tính để bàn trung bình sẽ không thể lưu trữ tất cả dữ liệu. Đây là nơi một giao thức được gọi là xác minh thanh toán đơn giản hóa (SPV) xuất hiện. Giao thức này cho phép các nút xác minh bằng chứng công việc bằng cách sử dụng hàm băm trong các khối riêng lẻ. Các nút như vậy cũng được gọi là nodes các nút ánh sáng. Các nút ánh sáng này tải xuống các tiêu đề khối, xác minh bằng chứng công việc trên các tiêu đề khối và sau đó chỉ tải xuống các nhánh nhánh của Cameron liên quan đến các giao dịch có liên quan đến chúng. Do đó, các nút ánh sáng đảm bảo rằng các giao dịch là hợp pháp mặc dù chỉ tải xuống một phần rất nhỏ của blockchain.

Các ứng dụng Blockchain thay thế

  1. TênCoin
    NameCoin cho phép bạn đăng ký tên trên cơ sở dữ liệu phi tập trung.
  2. Tiền xu màu
    Tiền xu màu đóng vai trò là một giao thức cho phép mọi người tạo ra các loại tiền kỹ thuật số của riêng họ trên Bitcoin Blockchain.
  3. Metacoin
    Giao thức Metacoin được lưu trữ trên Bitcoin nhưng sử dụng chức năng chuyển trạng thái khác với Bitcoin. Họ cung cấp một cơ chế để tạo ra một giao thức tiền điện tử tùy ý.

Có hai cách để xây dựng một hệ thống blockchain. Thứ nhất là xây dựng một mạng độc lập và thứ hai bao gồm xây dựng một giao thức dựa trên Bitcoin. Cách tiếp cận đầu tiên rất khó thực hiện vì các chi phí liên quan. Ngoài ra, số lượng ứng dụng sẽ chạy trên Blockchain không yêu cầu một mạng độc lập chính thức. Các yêu cầu của các ứng dụng này là tương đối ít máy tính chuyên sâu.

Cách tiếp cận dựa trên Bitcoin có một lỗ hổng là nó không kế thừa các tính năng xác minh thanh toán đơn giản hóa của Bitcoin. SPV hoạt động cho Bitcoin vì nó có thể sử dụng độ sâu blockchain làm proxy cho tính hợp lệ; tại một số điểm, một khi tổ tiên của một giao dịch quay trở lại đủ xa, có thể nói rằng họ là một phần hợp pháp của nhà nước. Việc triển khai giao thức meta SPV hoàn toàn an toàn sẽ cần quét ngược tất cả từ đầu đến Bitcoin Blockchain để xác định xem các giao dịch nhất định có hợp lệ hay không.

Viết kịch bản

Giao thức bitcoin xử lý một phiên bản nguyên thủy của một khái niệm được gọi là hợp đồng thông minh. UTXO trong Bitcoin có thể được sở hữu không chỉ bởi một khóa công khai, mà còn bởi một tập lệnh phức tạp được thể hiện bằng ngôn ngữ lập trình đơn giản. Trong trường hợp này, sau một giao dịch, UTXO phải cung cấp dữ liệu thỏa mãn tập lệnh. Sau đó, ngay cả cơ chế sở hữu khóa công khai cơ bản cũng được thực hiện thông qua một tập lệnh được xác minh bằng chữ ký đường cong elip. Kịch bản trả về 1 nếu xác minh thành công và trả về 0 nếu không.

Điều này có thể được kiểm soát thêm để viết một tập lệnh yêu cầu chữ ký từ hai trong số ba khóa riêng được xác định để xác thực (đa multigig). Đây là trường hợp sử dụng cho các tài khoản công ty lớn, tài khoản an toàn và các tình huống ký quỹ. Các kịch bản hợp đồng thông minh này có thể được sửa đổi để thực hiện nhiều hành động tùy thuộc vào trường hợp sử dụng.

Tuy nhiên, có một số hạn chế trong ngôn ngữ kịch bản Bitcoin:

  1. Thiếu tính hoàn chỉnh của Turing - Các vòng lặp không có sẵn để ngăn chặn các tình huống lặp vô hạn nhưng để viết một hợp đồng thông minh bằng ngôn ngữ không hoàn chỉnh Turing có thể gây khó khăn đáng kể.
  2. Mù giá trị - Tập lệnh UTXO không thể xác định xem giá trị của BTC có thay đổi khi so sánh với USD hay không.
  3. Thiếu Nhà nước - Một UTXO có thể được chi tiêu hoặc chưa được sử dụng. Để tạo các hợp đồng thông minh phức tạp có thể bao gồm xác minh mật mã hai giai đoạn trên mạng Bitcoin là không thể.
  4. Blockchain Blindness - UTXO cũng không có quyền truy cập vào hàm nonce, dấu thời gian hoặc hàm băm trước đó. Điều này giới hạn việc áp dụng Bitcoin trong nhiều lĩnh vực.

Ether Ethereum đề xuất xây dựng một khung thay thế mang lại lợi ích lớn hơn để dễ dàng phát triển cũng như các thuộc tính khách hàng mạnh hơn, đồng thời cho phép các ứng dụng chia sẻ môi trường kinh tế và bảo mật blockchain.

Điều này kết luận việc giải thích Phần 1 của sách trắng Ethereum. Tóm lại, bài đăng này đã cho chúng ta một cái nhìn tổng quan về cách Bitcoin, loại tiền điện tử đầu tiên, hoạt động. Bây giờ chúng ta sẽ chuyển sang phân tích Ethereum khác với giao thức Bitcoin như thế nào.