Ethereum: Nền tảng hợp đồng thông minh và ứng dụng phi tập trung thế hệ mới

作者 Vitalik Buterin · 2013

Abstract

以太坊是下一代加密货币和去中心化应用平台,它引入了一种内置图灵完备编程语言的区块链。这使得任何人都可以编写智能合约和去中心化应用,在其中创建自己的任意所有权规则、交易格式和状态转换函数。

以太坊的根本创新在于将比特币首创的区块链技术与通用编程环境相结合。比特币提供了一个简单的状态转换系统,用于将货币从一个账户转移到另一个账户,而以太坊则提供了一个平台,开发者可以在其上构建任何他们能想象的去中心化应用——从替代货币和金融工具到域名注册系统和去中心化组织。

以太坊通过构建本质上是终极抽象基础层来实现这一目标:一个内置图灵完备编程语言的区块链,允许任何人编写智能合约和去中心化应用,在其中创建自己的任意所有权规则、交易格式和状态转换函数。Namecoin的简化版本可以用两行代码编写,而其他协议如货币和信誉系统可以在二十行以内构建完成。

Abstract

Ethereum la mot nen tang tien ma hoa va ung dung phi tap trung the he tiep theo, gioi thieu mot blockchain voi ngon ngu lap trinh Turing-complete tich hop san. Dieu nay cho phep bat ky ai viet smart contract va cac ung dung phi tap trung, noi ho co the tao ra cac quy tac tuy y cho quyen so huu, dinh dang giao dich va cac ham chuyen doi trang thai (state transition function).

Su doi moi co ban cua Ethereum la ket hop cong nghe blockchain do Bitcoin khai pha voi mot moi truong lap trinh da muc dich. Trong khi Bitcoin cung cap mot he thong chuyen doi trang thai don gian de chuyen tien tu tai khoan nay sang tai khoan khac, Ethereum cung cap mot nen tang noi cac nha phat trien co the xay dung bat ky loai ung dung phi tap trung nao ma ho co the tuong tuong, tu cac loai tien te thay the va cong cu tai chinh den he thong dang ky ten mien va cac to chuc phi tap trung.

Ethereum dat duoc dieu nay bang cach xay dung nhung gi ve co ban la lop nen tang truu tuong toi thuong: mot blockchain voi ngon ngu lap trinh Turing-complete tich hop san, cho phep bat ky ai viet smart contract va cac ung dung phi tap trung, noi ho co the tao ra cac quy tac tuy y cho quyen so huu, dinh dang giao dich va cac ham chuyen doi trang thai. Mot phien ban co ban cua Namecoin co the duoc viet chi trong hai dong ma, va cac giao thuc khac nhu tien te va he thong danh tieng co the duoc xay dung trong duoi hai muoi dong.

Introduction and Existing Concepts

去中心化数字货币的概念以及诸如财产登记等替代应用已经存在了数十年。20世纪80年代和90年代的匿名电子现金协议主要依赖一种被称为乔姆盲签名的密码学原语,提供了高度隐私的货币,但这些协议由于依赖中心化中介机构而未能广泛流行。1998年,戴维的b-money成为第一个引入通过解决计算难题来创造货币以及去中心化共识理念的提案,但该提案在如何实际实现去中心化共识方面缺乏细节。

2009年,中本聪首次在实践中实现了去中心化货币,他将通过公钥密码学管理所有权的成熟原语与一种用于追踪币的所有权的共识算法——即"工作量证明"——结合在一起。工作量证明背后的机制是该领域的一个突破,因为它同时解决了两个问题。首先,它提供了一种简单且适度有效的共识算法,使网络中的节点能够集体就比特币账本状态的一组规范更新达成一致。其次,它提供了一种允许自由参与共识过程的机制,解决了由谁来影响共识的政治问题,同时防止了女巫攻击。

比特币区块链在多年运行中已证明了其卓越的稳健性,但它本质上是有局限的。比特币的脚本语言被有意设计为限制性的、非图灵完备的,缺少循环和许多其他构建更复杂应用所必需的功能。这种限制的存在是为了防止无限循环和其他形式的计算攻击,但它严重限制了可以在比特币之上构建的内容。

在过去五年中,已经有许多尝试来扩展比特币的功能。彩色币试图利用比特币区块链来追踪替代资产的所有权,域名币试图创建一个去中心化的域名注册数据库,各种元币协议旨在在比特币之上构建额外的层级。虽然这些方法展现了前景,但最终都受到比特币脚本能力的限制以及脚本内无法访问区块链数据的制约。

以太坊的目标是提供一个内置完整图灵完备编程语言的区块链,该语言可用于创建"合约",对任意状态转换函数进行编码,使用户只需用几行代码编写逻辑,就能创建上述任何系统以及许多我们尚未想象到的系统。

Introduction and Existing Concepts

Khái niệm về tiền kỹ thuật số phi tập trung, cũng như các ứng dụng thay thế như đăng ký tài sản, đã tồn tại trong nhiều thập kỷ. Các giao thức tiền điện tử ẩn danh của những năm 1980 và 1990, chủ yếu dựa vào một phương pháp mã hóa nguyên thủy được gọi là làm mù Chaumian, đã cung cấp một loại tiền tệ có mức độ riêng tư cao, nhưng các giao thức này phần lớn không thu hút được sự chú ý do chúng phụ thuộc vào một trung gian tập trung. Năm 1998, b-money của Wei Dai trở thành đề xuất đầu tiên giới thiệu ý tưởng tạo tiền thông qua việc giải các câu đố tính toán cũng như sự đồng thuận phi tập trung, nhưng đề xuất này rất ít chi tiết về cách thức thực hiện sự đồng thuận phi tập trung.

Năm 2009, một loại tiền tệ phi tập trung lần đầu tiên được Satoshi Nakamoto triển khai trong thực tế, kết hợp các nguyên tắc cơ bản đã được thiết lập để quản lý quyền sở hữu thông qua mật mã khóa công khai với thuật toán đồng thuận để theo dõi ai sở hữu tiền xu, được gọi là "bằng chứng công việc". Cơ chế đằng sau bằng chứng công việc là một bước đột phá trong lĩnh vực này vì nó giải quyết đồng thời hai vấn đề. Đầu tiên, nó cung cấp một thuật toán đồng thuận đơn giản và hiệu quả vừa phải, cho phép các nút trong mạng đồng ý chung về một tập hợp các cập nhật chuẩn cho trạng thái Bitcoin ledger. Thứ hai, nó cung cấp một cơ chế cho phép tự do tham gia vào quá trình đồng thuận, giải quyết vấn đề chính trị trong việc quyết định ai sẽ ảnh hưởng đến sự đồng thuận, đồng thời ngăn chặn các cuộc tấn công âm thầm.

Chuỗi khối Bitcoin đã được chứng minh là mạnh mẽ đáng kể qua nhiều năm hoạt động, nhưng vốn dĩ nó vẫn còn hạn chế. Ngôn ngữ kịch bản của Bitcoin được thiết kế có chủ ý để hạn chế và không hoàn thiện Turing, thiếu vòng lặp và nhiều tính năng khác cần thiết để xây dựng các ứng dụng phức tạp hơn. Giới hạn này tồn tại để ngăn chặn các vòng lặp vô hạn và các hình thức tấn công tính toán khác, nhưng nó hạn chế nghiêm trọng những gì có thể được xây dựng trên Bitcoin.

Trong 5 năm qua, đã có một số nỗ lực nhằm mở rộng chức năng của Bitcoin. Đồng xu màu đã tìm cách sử dụng chuỗi khối Bitcoin để theo dõi quyền sở hữu các tài sản thay thế, Namecoin đã cố gắng tạo cơ sở dữ liệu đăng ký tên phi tập trung và các giao thức metacoin khác nhau nhằm xây dựng các lớp bổ sung trên Bitcoin. Mặc dù các phương pháp tiếp cận này tỏ ra đầy hứa hẹn nhưng cuối cùng chúng vẫn bị hạn chế bởi khả năng tạo tập lệnh của Bitcoin và không thể truy cập dữ liệu chuỗi khối từ bên trong các tập lệnh.

Những gì Ethereum dự định cung cấp là một blockchain có ngôn ngữ lập trình Turing-complete được tích hợp đầy đủ, có thể được sử dụng để tạo các "hợp đồng" dùng để mã hóa các chức năng chuyển đổi trạng thái tùy ý, cho phép người dùng tạo bất kỳ hệ thống nào được mô tả ở trên, cũng như nhiều hệ thống khác mà chúng tôi chưa tưởng tượng ra, chỉ bằng cách viết logic bằng một vài dòng mã.

Bitcoin As A State Transition System

从技术角度来看,像比特币这样的加密货币的账本可以被视为一个状态转换系统,其中有一个由所有现有比特币的所有权状态组成的"状态",以及一个接受状态和交易并输出新状态的"状态转换函数"。在标准银行系统中,例如,状态是一张资产负债表,交易是将\(X从A转移到B的请求,状态转换函数将A账户中的值减少\)X,并将B账户中的值增加\(X。如果A的账户余额一开始就少于\)X,状态转换函数将返回错误。

Ethereum state transition diagram showing how transactions transform blockchain state

比特币中的"状态"是所有已被铸造且尚未花费的币的集合(技术上称为"未花费的交易输出"或UTXO),每个UTXO都有一个面额和一个所有者(由一个20字节的地址定义,本质上是一个密码学公钥)。一笔交易包含一个或多个输入,每个输入包含对一个现有UTXO的引用和由所有者地址关联的私钥产生的密码学签名,以及一个或多个输出,每个输出包含一个要添加到状态中的新UTXO。

状态转换函数APPLY(S,TX) - S'可以大致定义如下:

  1. 对于TX中的每个输入,如果引用的UTXO不在S中,返回错误。
  2. 如果提供的签名与UTXO的所有者不匹配,返回错误。
  3. 如果所有输入UTXO的面额之和小于所有输出UTXO的面额之和,返回错误。
  4. 返回移除所有输入UTXO并添加所有输出UTXO后的S。

第一步的前半部分防止交易发送者花费不存在的币,第一步的后半部分防止交易发送者花费他人的币,第二步确保价值守恒。为了使用此方法进行支付,协议如下:假设Alice想要向Bob发送11.7 BTC。首先,Alice将寻找一组她拥有的、总计至少为11.7 BTC的可用UTXO。实际上,Alice不太可能恰好得到11.7 BTC;假设她能得到的最小组合是6+4+2=12。然后她创建一笔有三个输入和两个输出的交易。第一个输出将是11.7 BTC,所有者为Bob的地址,第二个输出将是剩余的0.3 BTC"找零",所有者为Alice自己。

Bitcoin As A State Transition System

Từ quan điểm kỹ thuật, ledger của tiền điện tử như Bitcoin có thể được coi là một hệ thống chuyển đổi trạng thái, trong đó có một "trạng thái" bao gồm trạng thái sở hữu của tất cả các bitcoin hiện có và "chức năng chuyển đổi trạng thái" có trạng thái và giao dịch và tạo ra trạng thái mới là kết quả. Ví dụ: trong hệ thống ngân hàng tiêu chuẩn, trạng thái là bảng cân đối kế toán, giao dịch là yêu cầu chuyển \(X từ A sang B và chức năng chuyển đổi trạng thái làm giảm giá trị trong tài khoản của A thêm X \) và tăng giá trị trong tài khoản của B lên \(X. Nếu tài khoản của A có ít hơn \)X ngay từ đầu, hàm chuyển trạng thái sẽ trả về lỗi.

Ethereum state transition diagram showing how transactions transform blockchain state

"Trạng thái" trong Bitcoin là tập hợp tất cả các đồng xu (về mặt kỹ thuật là "đầu ra giao dịch chưa chi tiêu" hoặc UTXO) đã được đúc và chưa được chi tiêu, với mỗi UTXO có một mệnh giá và một chủ sở hữu (được xác định bởi địa chỉ 20 byte về cơ bản là khóa công khai mật mã). Giao dịch chứa một hoặc nhiều đầu vào, trong đó mỗi đầu vào chứa tham chiếu đến UTXO hiện có và chữ ký mật mã được tạo bởi khóa riêng được liên kết với địa chỉ của chủ sở hữu và một hoặc nhiều đầu ra, với mỗi đầu ra chứa UTXO mới sẽ được thêm vào trạng thái.

Hàm chuyển trạng thái APPLY(S,TX) - S' có thể được định nghĩa đại khái như sau:

  1. Đối với mỗi đầu vào ở dạng TX, nếu UTXO được tham chiếu không ở dạng S, hãy trả về lỗi.
  2. Nếu chữ ký được cung cấp không khớp với chủ sở hữu của UTXO, hãy trả về lỗi.
  3. Nếu tổng mệnh giá của tất cả UTXO đầu vào nhỏ hơn tổng mệnh giá của tất cả UTXO đầu ra, hãy trả về lỗi.
  4. Trả về S với tất cả UTXO đầu vào đã bị xóa và tất cả UTXO đầu ra đã được thêm vào.

Nửa đầu của bước đầu tiên ngăn người gửi giao dịch tiêu tiền không tồn tại, nửa sau của bước đầu tiên ngăn người gửi giao dịch tiêu tiền của người khác và bước thứ hai thực thi việc bảo toàn giá trị. Để sử dụng số tiền này để thanh toán, giao thức như sau: giả sử Alice muốn gửi 11,7 BTC cho Bob. Đầu tiên, Alice sẽ tìm kiếm một bộ UTXO có sẵn mà cô ấy sở hữu có tổng giá trị lên tới ít nhất 11,7 BTC. Trên thực tế, Alice sẽ không thể nhận được chính xác 11,7 BTC; nói rằng số nhỏ nhất cô ấy có thể nhận được là 6+4+2=12. Sau đó, cô ấy tạo một giao dịch với ba đầu vào và hai đầu ra đó. Đầu ra đầu tiên sẽ là 11,7 BTC với địa chỉ của Bob là chủ sở hữu của nó và đầu ra thứ hai sẽ là "tiền lẻ" 0,3 BTC còn lại, với chủ sở hữu là chính Alice.

Mining

如果我们能够获得一个可信的中心化服务,这个系统将很容易实现;它可以完全按照描述进行编码,使用中心化服务器的硬盘来跟踪状态。然而,对于比特币,我们试图构建一个去中心化的货币系统,因此我们需要将状态转换系统与共识系统相结合,以确保每个人都对交易顺序达成一致。比特币的去中心化共识过程要求网络中的节点不断尝试生产被称为"区块"的交易包。网络预期大约每十分钟产生一个区块,每个区块包含一个时间戳、一个随机数、对前一个区块的引用(即哈希值)以及自前一个区块以来发生的所有交易的列表。

Ethereum block structure showing linked blocks with timestamps nonces and transactions

随着时间的推移,这创建了一个持久的、不断增长的"区块链",不断更新以代表比特币账本的最新状态。在此范式中,检查一个区块是否有效的算法如下:

  1. 检查该区块引用的前一个区块是否存在且有效。
  2. 检查该区块的时间戳是否大于前一个区块的时间戳,且不超过未来2小时。
  3. 检查该区块上的工作量证明是否有效。
  4. 令S为前一个区块末尾的状态。
  5. 假设TX是该区块包含n笔交易的交易列表。对于所有i在0...n-1范围内,设S = APPLY(S,TX[i])。如果任何应用返回错误,退出并返回false。
  6. 返回true,并将S注册为该区块末尾的状态。

本质上,区块中的每笔交易都必须提供一个有效的状态转换,从交易执行前的规范状态转换到某个新状态。注意,状态并未以任何方式编码在区块中;它纯粹是由验证节点记忆的抽象概念,只能通过从创世状态开始并顺序应用每个区块中的每笔交易来(安全地)计算任何区块的状态。

矿工通过新创建的比特币和交易费获得计算工作的奖励。挖矿过程如下:矿工获取区块头并使用不同的随机数值反复对其进行哈希运算,直到找到一个低于特定难度目标的哈希值。当矿工找到这样的哈希值时,他们将区块广播到网络,其他节点验证哈希值有效且区块中的所有交易有效。难度目标由协议每2016个区块(大约两周)自动调整,以确保区块以大致恒定的速率产生。

请注意,从长远来看,区块链的安全性取决于矿工是否有经济激励来诚实行事。如果攻击者控制了网络超过50%的挖矿算力,他们就有可能通过创建一条比诚实链增长更快的替代区块链来执行"51%攻击"。然而,这样的攻击需要巨大的计算资源,并且随着网络对区块链完整性失去信心,攻击者的挖矿奖励可能变得毫无价值。

Mining

Nếu chúng tôi có quyền truy cập vào một dịch vụ tập trung đáng tin cậy thì việc triển khai hệ thống này sẽ rất đơn giản; nó có thể được mã hóa chính xác như mô tả, sử dụng ổ cứng của máy chủ tập trung để theo dõi trạng thái. Tuy nhiên, với Bitcoin chúng tôi đang cố gắng xây dựng một hệ thống tiền tệ phi tập trung, vì vậy chúng tôi sẽ cần kết hợp hệ thống giao dịch nhà nước với hệ thống đồng thuận để đảm bảo rằng mọi người đều đồng ý về thứ tự giao dịch. Quy trình đồng thuận phi tập trung của Bitcoin yêu cầu các nút trong mạng liên tục cố gắng tạo ra các gói giao dịch được gọi là "khối". Mạng dự định tạo ra khoảng một khối cứ sau mười phút, với mỗi khối chứa dấu thời gian, số nonce, tham chiếu đến (tức là hàm băm của) khối trước đó và danh sách tất cả các giao dịch đã diễn ra kể từ khối trước đó.

Ethereum block structure showing linked blocks with timestamps nonces and transactions

Theo thời gian, điều này tạo ra một "blockchain" bền bỉ, ngày càng phát triển, liên tục cập nhật để thể hiện trạng thái mới nhất của Bitcoin ledger. Thuật toán để kiểm tra xem một khối có hợp lệ hay không, được thể hiện trong mô hình này như sau:

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

Về cơ bản, mỗi giao dịch trong khối phải cung cấp sự chuyển đổi trạng thái hợp lệ từ trạng thái chuẩn trước khi giao dịch được thực hiện sang một số trạng thái mới. Lưu ý rằng trạng thái không được mã hóa trong khối theo bất kỳ cách nào; nó hoàn toàn là một sự trừu tượng được nút xác thực ghi nhớ và chỉ có thể được tính toán (an toàn) cho bất kỳ khối nào bằng cách bắt đầu từ trạng thái ban đầu và áp dụng tuần tự mọi giao dịch trong mỗi khối.

Người khai thác được thưởng cho công việc tính toán của họ bằng bitcoin mới được tạo cộng với phí giao dịch. Quá trình khai thác hoạt động như sau: người khai thác lấy tiêu đề khối và liên tục băm nó với các giá trị nonce khác nhau cho đến khi họ tìm thấy hàm băm nằm dưới mục tiêu độ khó nhất định. Khi người khai thác tìm thấy hàm băm như vậy, họ sẽ phát khối lên mạng và các nút khác xác minh rằng hàm băm đó hợp lệ và tất cả các giao dịch trong khối đều hợp lệ. Mục tiêu độ khó được giao thức tự động điều chỉnh sau mỗi khối năm 2016 (khoảng hai tuần) để đảm bảo rằng các khối được tạo ra với tốc độ gần như không đổi.

Lưu ý rằng về lâu dài, tính bảo mật của blockchain phụ thuộc vào việc người khai thác có động cơ tài chính để hành xử trung thực. Nếu kẻ tấn công kiểm soát hơn 50% sức mạnh khai thác của mạng, chúng có khả năng thực hiện “cuộc tấn công 51%” bằng cách tạo ra một chuỗi khối thay thế phát triển nhanh hơn chuỗi trung thực. Tuy nhiên, một cuộc tấn công như vậy sẽ đòi hỏi nguồn tài nguyên tính toán khổng lồ và có thể khiến phần thưởng khai thác của kẻ tấn công trở nên vô giá trị do mạng mất niềm tin vào tính toàn vẹn của blockchain.

Merkle Trees

默克尔树是比特币区块中使用的一种基础数据结构,用于实现高效和安全的交易包含验证。默克尔树是一种哈希二叉树,其中叶节点包含各个交易的哈希值,每个内部节点包含其两个子节点的哈希值,递归地向上构建到存储在区块头中的单个根哈希值。这种层次结构允许任何人通过只下载默克尔分支——从交易到根的哈希链——而不是下载区块中的所有交易,来验证特定交易是否包含在某个区块中。

Simplified Payment Verification using Merkle tree branch proofs for transaction verification

效率提升是显著的:虽然一个完整的比特币节点必须存储整个区块链(截至2013年约15GB),简化支付验证(SPV)节点只需下载包含默克尔根的区块头,仅需要4MB的数据。为了验证一笔交易,SPV节点从完整节点请求默克尔分支,这只需要O(log n)的数据,其中n是区块中的交易数量。这种对数级的扩展性使得在移动设备和资源受限的环境中运行轻量级客户端成为可能。

比特币对默克尔树的使用展示了一个关键原则:密码学结构可以大幅降低参与去中心化网络的信任和资源要求。同样的原则也是以太坊设计的基础,在以太坊中,默克尔树不仅用于交易,还用于状态和收据存储,从而实现更复杂的轻客户端协议。

Merkle Trees

Cây Merkle là cấu trúc dữ liệu cơ bản được sử dụng trong các khối Bitcoin để cho phép xác minh hiệu quả và an toàn việc bao gồm giao dịch. Cây Merkle là một cây băm nhị phân trong đó các nút lá chứa các giá trị băm của các giao dịch riêng lẻ và mỗi nút bên trong chứa hàm băm của hai nút con của nó, xây dựng đệ quy thành một hàm băm gốc duy nhất được lưu trữ trong tiêu đề khối. Cấu trúc phân cấp này cho phép mọi người xác minh rằng một giao dịch cụ thể có được bao gồm trong một khối bằng cách chỉ tải xuống nhánh Merkle—chuỗi băm từ giao dịch đến gốc—thay vì tải xuống tất cả các giao dịch trong khối.

Simplified Payment Verification using Merkle tree branch proofs for transaction verification

Hiệu quả đạt được là đáng kể: trong khi nút Bitcoin đầy đủ phải lưu trữ toàn bộ chuỗi khối (khoảng 15 GB tính đến năm 2013), nút xác minh thanh toán đơn giản hóa (SPV) chỉ cần tải xuống các tiêu đề khối có chứa gốc Merkle, chỉ cần 4 MB dữ liệu. Để xác minh một giao dịch, nút SPV yêu cầu nhánh Merkle từ các nút đầy đủ, chỉ yêu cầu dữ liệu O(log n) trong đó n là số lượng giao dịch trong một khối. Việc chia tỷ lệ logarit này giúp việc chạy các máy khách nhẹ trên thiết bị di động và môi trường tài nguyên thấp trở nên khả thi.

Việc sử dụng cây Merkle của Bitcoin thể hiện một nguyên tắc chính: cấu trúc mật mã có thể làm giảm đáng kể các yêu cầu về độ tin cậy và tài nguyên khi tham gia vào mạng phi tập trung. Nguyên tắc tương tự này làm nền tảng cho thiết kế của Ethereum, trong đó cây Merkle không chỉ được sử dụng cho các giao dịch mà còn để lưu trữ trạng thái và biên nhận, cho phép các giao thức máy khách nhẹ phức tạp hơn nữa.

Alternative Blockchain Applications

比特币区块链的成功激发了许多将该概念扩展到简单货币之外的尝试。域名币(Namecoin)于2010年推出,是最早的例子之一——一个建立在区块链上的去中心化域名注册数据库,允许用户在分布式命名空间中注册域名,且没有中央权威机构可以审查或撤销。彩色币作为一种在比特币区块链上表示替代资产的方式出现,通过"标记"特定的交易输出来代表现实世界资产、公司股份或其他加密货币的所有权。万事达币(Mastercoin,后来的Omni)等元币和元协议通过在比特币交易中编码额外数据并在其上构建独立的协议规则,在比特币之上层叠了额外的功能。

然而,所有这些方法都受到比特币架构强加的根本性限制。比特币脚本语言被有意限制——它无法访问区块链状态,缺少循环和复杂的控制流,并且对交易值的内省能力有限。构建复杂的应用需要笨拙的变通方法:在从未为此目的设计的交易字段中编码元数据,依赖链下基础设施来处理复杂逻辑,或者接受协议能力上的严重限制。

这些约束推动了对更通用区块链平台的探索。以太坊不是在比特币有限的基础上再构建另一个特殊用途的协议,而是采取了不同的方法:提供一个内置图灵完备编程语言的区块链,允许任何人编写具有任意所有权规则、交易格式和状态转换函数的智能合约和去中心化应用。

Alternative Blockchain Applications

Sự thành công của chuỗi khối Bitcoin đã truyền cảm hứng cho nhiều nỗ lực nhằm mở rộng khái niệm này ra ngoài tiền tệ đơn giản. Namecoin, ra mắt vào năm 2010, là một trong những ví dụ sớm nhất—cơ sở dữ liệu đăng ký tên phi tập trung được xây dựng trên blockchain, cho phép người dùng đăng ký tên trong một không gian tên phân tán mà không cơ quan trung ương nào có thể kiểm duyệt hoặc thu hồi. Đồng xu màu nổi lên như một cách thể hiện các tài sản thay thế trên chuỗi khối Bitcoin bằng cách "gắn thẻ" các đầu ra giao dịch cụ thể để thể hiện quyền sở hữu tài sản trong thế giới thực, cổ phiếu công ty hoặc các loại tiền điện tử khác. Metacoin và các siêu giao thức như Mastercoin (sau này là Omni) xếp lớp chức năng bổ sung lên trên Bitcoin bằng cách mã hóa dữ liệu bổ sung trong các giao dịch Bitcoin và xây dựng các quy tắc giao thức riêng biệt ở trên cùng.

Tuy nhiên, tất cả các cách tiếp cận này đều gặp phải những hạn chế cơ bản do kiến ​​trúc của Bitcoin áp đặt. Ngôn ngữ kịch bản Bitcoin bị hạn chế có chủ ý—nó không thể truy cập trạng thái blockchain, thiếu vòng lặp và luồng điều khiển phức tạp, đồng thời cung cấp khả năng xem xét nội tâm hạn chế đối với các giá trị giao dịch. Việc xây dựng các ứng dụng phức tạp đòi hỏi những giải pháp khó xử: mã hóa siêu dữ liệu trong các trường giao dịch không bao giờ nhằm mục đích đó, dựa vào cơ sở hạ tầng ngoài chuỗi để có logic phức tạp hoặc chấp nhận những hạn chế nghiêm trọng về những gì giao thức có thể đạt được.

Những hạn chế này đã thúc đẩy việc tìm kiếm một nền tảng blockchain có mục đích chung hơn. Thay vì xây dựng một giao thức có mục đích đặc biệt khác trên nền tảng hạn chế của Bitcoin, Ethereum thực hiện một cách tiếp cận khác: cung cấp một chuỗi khối với ngôn ngữ lập trình Turing-complete được tích hợp sẵn, cho phép mọi người viết hợp đồng thông minh và ứng dụng phi tập trung với các quy tắc tùy ý về quyền sở hữu, định dạng giao dịch và chức năng chuyển đổi trạng thái.

Scripting

比特币脚本(Bitcoin Script)是用于定义比特币交易花费条件的语言,它被有意设计为具有严格的限制。它不是图灵完备的——最显著的是缺少循环和复杂的控制流结构。该语言作为一个简单的基于栈的执行环境运行,其中操作进行压栈和出栈、评估密码学条件,并最终返回true或false以确定交易是否有效。虽然这种简单性带来了安全性优势并使形式化分析更加容易,但它也使许多类型的应用无法实现。

这些限制可以分为三个主要类别。首先,缺乏图灵完备性使得无法实现复杂的状态机、决策树或任何需要迭代的算法。其次,值盲性意味着脚本无法对提取金额进行细粒度控制——UTXO只能被整体花费,找零被发送到新的输出。脚本无法例如限制每天最多提取X的金额,同时将余额保持锁定。第三,缺乏区块链状态感知意味着UTXO要么已花费要么未花费,没有中间状态,使得多阶段合约无法纯粹在链上实现。

这些约束使得去中心化自治组织、带提取限额的储蓄钱包、去中心化交易所或预测市场等复杂应用要么无法实现,要么需要笨拙的链下机制。一个高级金融合约可能需要访问市场数据、在多笔交易之间维护内部状态的能力以及复杂的条件逻辑——这些都是比特币脚本无法提供的。以太坊通过提供一种图灵完备的语言并完全访问区块链状态来消除这些限制。

Scripting

Bitcoin Tập lệnh, ngôn ngữ được sử dụng để xác định các điều kiện chi tiêu cho các giao dịch Bitcoin, được thiết kế có chủ ý với những hạn chế nghiêm trọng. Nó không phải là Turing-complete—đáng chú ý nhất là nó thiếu các vòng lặp và cấu trúc luồng điều khiển phức tạp. Ngôn ngữ hoạt động như một môi trường thực thi dựa trên ngăn xếp đơn giản, trong đó các hoạt động đẩy và bật các giá trị, đánh giá các điều kiện mật mã và cuối cùng trả về đúng hoặc sai để xác định xem giao dịch có hợp lệ hay không. Mặc dù sự đơn giản này mang lại lợi ích bảo mật và giúp việc phân tích chính thức trở nên dễ dàng hơn nhưng nó cũng khiến nhiều loại ứng dụng không thể triển khai được.

Những hạn chế này rơi vào ba loại chính. Đầu tiên, việc thiếu tính đầy đủ của Turing sẽ ngăn cản việc triển khai các máy trạng thái phức tạp, cây quyết định hoặc bất kỳ thuật toán nào yêu cầu lặp lại. Thứ hai, tính mù giá trị có nghĩa là các tập lệnh không thể chỉ định quyền kiểm soát chi tiết đối với số tiền rút—chỉ có thể sử dụng toàn bộ UTXO, với thay đổi được gửi đến đầu ra mới. Ví dụ: một tập lệnh không thể giới hạn số lần rút tiền ở mức tối đa X mỗi ngày trong khi vẫn khóa phần còn lại. Thứ ba, việc thiếu nhận thức về trạng thái blockchain có nghĩa là UTXO được chi tiêu hoặc không chi tiêu mà không có trạng thái trung gian, khiến các hợp đồng nhiều giai đoạn không thể thực hiện hoàn toàn trên chuỗi.

Những hạn chế này làm cho các ứng dụng phức tạp như các tổ chức tự trị phi tập trung, ví tiết kiệm có giới hạn rút tiền, sàn giao dịch phi tập trung hoặc thị trường dự đoán không thể thực hiện được hoặc yêu cầu các cơ chế ngoài chuỗi khó xử lý. Một hợp đồng tài chính nâng cao có thể yêu cầu quyền truy cập vào dữ liệu thị trường, khả năng duy trì trạng thái nội bộ trên nhiều giao dịch và logic điều kiện phức tạp—không điều nào trong số đó mà Tập lệnh Bitcoin có thể cung cấp. Ethereum loại bỏ những hạn chế này bằng cách cung cấp ngôn ngữ hoàn chỉnh Turing với toàn quyền truy cập vào trạng thái blockchain.

Ethereum

以太坊的根本目标是提供一个内置图灵完备编程语言的区块链,允许任何人编写智能合约和去中心化应用,在其中创建自己的任意所有权规则、交易格式和状态转换函数。以太坊不是为货币、域名注册或资产交易等特定应用设计协议,而是提供一个基础层——一个基于区块链的分布式计算平台,开发者可以用它来构建任何他们能想象的应用。

其架构与比特币的UTXO模型有根本区别。以太坊使用基于账户的系统,其中区块链状态由地址到账户对象的映射组成。每个账户都有余额、交易计数器(nonce),对于合约账户还有关联的代码和存储。该平台包含一种内置的图灵完备编程语言,用于编写在以太坊虚拟机(EVM)中执行的合约代码,EVM是一个基于栈的执行环境,处理交易和状态转换。

这种通用性使得广泛的应用成为可能:具有自定义发行规则的替代加密货币、金融衍生品和稳定币、身份和信誉系统、去中心化文件存储、去中心化自治组织(DAO)等等。白皮书强调,以太坊并非针对任何特定用例进行优化,而是提供基本构建块——账户、交易、图灵完备语言和燃料计量执行——开发者可以将这些组合起来,创建生态系统所需的任何应用。

Ethereum

Mục tiêu cơ bản của Ethereum là cung cấp cho blockchain ngôn ngữ lập trình hoàn chỉnh Turing tích hợp cho phép mọi người viết hợp đồng thông minh và ứng dụng phi tập trung, nơi họ có thể tạo các quy tắc tùy ý của riêng mình về quyền sở hữu, định dạng giao dịch và chức năng chuyển đổi trạng thái. Thay vì thiết kế giao thức cho các ứng dụng cụ thể như tiền tệ, đăng ký tên hoặc giao dịch tài sản, Ethereum cung cấp lớp nền tảng—nền tảng điện toán phân tán dựa trên blockchain mà các nhà phát triển có thể sử dụng để xây dựng bất kỳ ứng dụng nào họ có thể tưởng tượng.

Kiến trúc về cơ bản khác với mô hình UTXO của Bitcoin. Ethereum sử dụng hệ thống dựa trên tài khoản trong đó trạng thái chuỗi khối bao gồm ánh xạ từ địa chỉ đến đối tượng tài khoản. Mỗi tài khoản có số dư, bộ đếm giao dịch (không dùng một lần) và đối với tài khoản hợp đồng, mã liên kết và bộ lưu trữ. Nền tảng này bao gồm ngôn ngữ lập trình Turing-complete được tích hợp sẵn để viết mã hợp đồng thực thi trong Máy ảo Ethereum (EVM), một môi trường thực thi dựa trên ngăn xếp xử lý các giao dịch và chuyển đổi trạng thái.

Tính tổng quát này cho phép áp dụng một loạt các ứng dụng: tiền điện tử thay thế với quy tắc phát hành tùy chỉnh, công cụ tài chính phái sinh và stablecoin, hệ thống nhận dạng và danh tiếng, lưu trữ tệp phi tập trung, tổ chức tự trị phi tập trung (DAO), v.v. Sách trắng nhấn mạnh rằng Ethereum không được tối ưu hóa cho bất kỳ trường hợp sử dụng cụ thể nào mà thay vào đó cung cấp các khối xây dựng cơ bản—tài khoản, giao dịch, ngôn ngữ hoàn chỉnh Turing và thực thi đo lượng khí—mà các nhà phát triển có thể kết hợp để tạo ra bất kỳ ứng dụng nào mà hệ sinh thái yêu cầu.

Ethereum Accounts

在以太坊中,状态由账户组成,有两种基本类型。外部拥有账户(EOA)由私钥控制,没有关联代码——它们代表与区块链交互的人类用户或外部实体。合约账户由其合约代码控制,在收到消息或交易时被激活。两种类型共享一个通用结构:每个账户都有一个nonce(用于确保每笔交易只能被处理一次的计数器)、以太币余额,而合约特别还拥有合约代码和持久存储。

以太币是以太坊的主要内部加密货币,既作为价值转移的媒介,也是支付交易费用(燃料费)的基本单位。与比特币的UTXO模型——价值分布在多个未花费输出中——不同,以太坊账户维护一个简单的余额,接收以太币时增加,发送时减少。这种基于账户的模型简化了许多类型的应用,特别是那些需要持久状态或复杂访问控制的应用,尽管与比特币的方法相比,它引入了不同的安全考量。

EOA与合约账户之间的区别对于理解以太坊的运作至关重要。EOA可以通过使用私钥创建和签署消息来发起交易,支付燃料费以使其交易被包含在区块中。合约账户本身不能发起交易,但可以在收到交易或消息时向其他合约发送消息,从而实现复杂的执行链,其中单笔外部交易触发多个合约之间的交互。

Ethereum Accounts

Trong Ethereum, trạng thái được tạo thành từ các tài khoản và có hai loại cơ bản. Các tài khoản thuộc sở hữu bên ngoài (EOA) được kiểm soát bằng khóa riêng và không có mã liên quan — chúng đại diện cho người dùng hoặc các thực thể bên ngoài tương tác với chuỗi khối. Tài khoản hợp đồng được kiểm soát bằng mã hợp đồng và được kích hoạt khi nhận được tin nhắn hoặc giao dịch. Cả hai loại đều có chung cấu trúc: mỗi tài khoản đều có một nonce (bộ đếm được sử dụng để đảm bảo mỗi giao dịch chỉ có thể được xử lý một lần), số dư ether và đối với các hợp đồng cụ thể là mã hợp đồng và bộ lưu trữ liên tục.

Ether là loại tiền điện tử nội bộ chính của Ethereum, đóng vai trò vừa là phương tiện chuyển giá trị vừa là đơn vị cơ bản để thanh toán phí giao dịch (gas). Không giống như mô hình UTXO của Bitcoin nơi giá trị được phân phối trên nhiều đầu ra chưa được chi tiêu, tài khoản Ethereum duy trì số dư đơn giản tăng khi nhận được ether và giảm khi gửi. Mô hình dựa trên tài khoản này đơn giản hóa nhiều loại ứng dụng, đặc biệt là những ứng dụng yêu cầu kiểm soát truy cập phức tạp hoặc trạng thái liên tục, mặc dù nó đưa ra những cân nhắc về bảo mật khác so với phương pháp của Bitcoin.

Sự khác biệt giữa EOA và tài khoản hợp đồng là rất quan trọng để hiểu hoạt động của Ethereum. EOA có thể bắt đầu giao dịch bằng cách tạo và ký tin nhắn bằng khóa riêng của họ, trả phí gas để đưa giao dịch của họ vào khối. Tài khoản hợp đồng không thể tự bắt đầu giao dịch nhưng có thể gửi tin nhắn đến các hợp đồng khác để phản hồi việc nhận giao dịch hoặc tin nhắn, cho phép thực hiện các chuỗi thực hiện phức tạp trong đó một giao dịch bên ngoài duy nhất sẽ kích hoạt nhiều tương tác giữa các hợp đồng.

Messages and Transactions

以太坊中的交易是由外部拥有账户创建并广播到网络的签名数据包。一笔交易包含接收方地址、证明发送方身份的密码学签名、要转移的以太币数量、一个可选的数据字段(对于与合约交互至关重要)、STARTGAS(交易被允许执行的最大计算步数)和GASPRICE(发送方愿意为每个计算步骤支付的费用)。矿工收集这些交易,验证它们,执行它们,并将它们包含在区块中,收取燃料费作为补偿。

消息在概念上类似于交易,但由合约而非外部参与者产生。当合约的代码执行时,它可以向其他合约发送消息——这些内部消息包含发送方(合约地址)、接收方、要转移的以太币数量、可选的数据载荷和STARTGAS限制。消息使得合约之间能够通信,允许从多个交互合约而非单体程序中构建复杂应用。

燃料机制对于防止滥用至关重要:交易中的每个计算步骤、存储操作和数据字节都消耗燃料。如果交易在完成前耗尽燃料,所有状态更改将被还原(但向矿工支付的燃料费除外),从而防止无限循环或过度计算使网络瘫痪。发送方指定燃料总预算(STARTGAS)和愿意为每单位支付的价格(GASPRICE),执行完成后任何未使用的燃料将被退还。

Messages and Transactions

Các giao dịch trong Ethereum là các gói dữ liệu đã ký được tạo bởi các tài khoản thuộc sở hữu bên ngoài và được phát lên mạng. Giao dịch chứa địa chỉ người nhận, chữ ký mật mã chứng minh danh tính của người gửi, lượng ether cần chuyển, trường dữ liệu tùy chọn (rất quan trọng để tương tác với hợp đồng), STARTGAS (số bước tính toán tối đa mà giao dịch được phép thực hiện) và GASPRICE (phí cho mỗi bước tính toán mà người gửi sẵn sàng trả). Người khai thác thu thập các giao dịch này, xác thực, thực hiện và đưa chúng vào các khối, nhận phí gas như một khoản bồi thường.

Các thông điệp về mặt khái niệm tương tự như các giao dịch nhưng được tạo ra bởi các hợp đồng chứ không phải do các tác nhân bên ngoài tạo ra. Khi mã của hợp đồng thực thi, mã đó có thể gửi tin nhắn đến các hợp đồng khác—những tin nhắn nội bộ này chứa người gửi (địa chỉ hợp đồng), người nhận, lượng ether cần chuyển, tải trọng dữ liệu tùy chọn và giới hạn STARTGAS. Tin nhắn cho phép giao tiếp giữa các hợp đồng, cho phép xây dựng các ứng dụng phức tạp từ nhiều hợp đồng tương tác thay vì các chương trình nguyên khối.

Cơ chế gas rất quan trọng để ngăn chặn sự lạm dụng: mỗi bước tính toán, hoạt động lưu trữ và byte dữ liệu trong một giao dịch đều tiêu tốn gas. Nếu một giao dịch hết gas trước khi hoàn thành, tất cả các thay đổi trạng thái sẽ được hoàn nguyên (ngoại trừ khoản thanh toán gas cho người khai thác), ngăn chặn các vòng lặp vô hạn hoặc tính toán quá mức khiến mạng bị dừng lại. Người gửi chỉ định cả tổng ngân sách gas (STARTGAS) và mức giá họ sẵn sàng trả cho mỗi đơn vị (GASPRICE) và mọi gas chưa sử dụng sẽ được hoàn lại sau khi quá trình thực thi hoàn tất.

Ethereum State Transition Function

以太坊状态转换函数APPLY(S,TX) - S'定义了交易如何转换区块链状态,它遵循精确的步骤序列。首先,系统检查交易的有效性:验证签名是否正确,确认nonce与发送方账户的nonce匹配,并确保发送方有足够的余额来支付预付费用(STARTGAS x GASPRICE加上要发送的值)。如果任何检查失败,交易在执行开始前就被拒绝。如果有效,交易费用从发送方账户扣除,发送方的nonce递增,初始燃料计数器被设置为STARTGAS减去交易数据的每字节费用。

Ethereum state transition function showing gas deduction value transfer and code execution

接下来,系统将指定的以太币值从发送方转移到接收方。如果接收方是外部拥有账户,交易到此完成。如果接收方是合约账户,合约的代码在以太坊虚拟机中运行,每个操作消耗燃料,直到代码成功完成、代码显式停止或燃料耗尽。在执行期间,合约可以读取和修改其存储、向其他合约发送消息以及创建新合约。

最后,如果值转移失败(余额不足)或代码执行失败(燃料耗尽或遇到错误),所有状态更改将被还原——但发送方仍需为已执行的计算向矿工支付燃料费。如果执行成功,剩余燃料退还给发送方,已消耗的燃料作为费用发送给矿工。这种机制确保矿工获得计算补偿,同时防止失控的执行消耗无限资源。

Ethereum State Transition Function

Hàm chuyển đổi trạng thái Ethereum APPLY(S,TX) - S' xác định cách giao dịch chuyển đổi trạng thái blockchain và nó tuân theo một trình tự các bước chính xác. Đầu tiên, hệ thống kiểm tra tính hợp lệ của giao dịch: xác minh chữ ký là chính xác, xác nhận nonce khớp với nonce trong tài khoản của người gửi và đảm bảo người gửi có đủ số dư để thanh toán chi phí trả trước (STARTGAS × GASPRICE cộng với giá trị được gửi). Nếu bất kỳ kiểm tra nào không thành công, giao dịch sẽ bị từ chối trước khi bắt đầu thực hiện. Nếu hợp lệ, phí giao dịch sẽ được khấu trừ khỏi tài khoản của người gửi, số nonce của người gửi sẽ tăng lên và bộ đếm gas ban đầu được đặt thành STARTGAS trừ đi phí mỗi byte cho dữ liệu giao dịch.

Ethereum state transition function showing gas deduction value transfer and code execution

Tiếp theo, hệ thống chuyển giá trị ether được chỉ định từ người gửi đến người nhận. Nếu người nhận là tài khoản thuộc sở hữu bên ngoài thì giao dịch sẽ hoàn tất. Nếu người nhận là tài khoản hợp đồng, mã của hợp đồng sẽ chạy trong Máy ảo Ethereum, tiêu thụ gas cho mỗi thao tác cho đến khi mã hoàn thành thành công, mã dừng rõ ràng hoặc hết gas. Trong quá trình thực hiện, hợp đồng có thể đọc và sửa đổi bộ nhớ của nó, gửi tin nhắn đến các hợp đồng khác và tạo hợp đồng mới.

Cuối cùng, nếu quá trình chuyển giá trị không thành công (không đủ số dư) hoặc thực thi mã không thành công (hết gas hoặc gặp lỗi), tất cả các thay đổi trạng thái sẽ được hoàn nguyên—ngoại trừ việc người gửi vẫn trả phí gas cho người khai thác để tính toán được thực hiện. Nếu thực hiện thành công, lượng gas còn lại sẽ được hoàn lại cho người gửi và lượng gas đã tiêu thụ sẽ được gửi cho người khai thác dưới dạng phí. Cơ chế này đảm bảo rằng các thợ mỏ được đền bù cho việc tính toán đồng thời ngăn chặn việc thực thi chạy trốn khỏi việc tiêu thụ tài nguyên không giới hạn.

Code Execution

以太坊虚拟机(EVM)是合约代码执行的运行时环境——一个低层级的、基于栈的虚拟机,在概念上类似于Java虚拟机或WebAssembly。合约代码存储为字节序列,其中每个字节代表EVM可以执行的一个操作(操作码)。执行模型被刻意设计为简单且确定性的:每个使用相同输入状态和交易运行EVM的节点必须得出相同的输出状态,确保网络达成共识。

EVM为计算提供三种不同类型的存储。栈是一个限制为1024个元素的后进先出(LIFO)结构,用于即时操作值。内存是一个可无限扩展的字节数组,仅在单次消息调用期间持续存在,在执行间被重置。存储是与每个合约账户永久关联的持久键值存储,合约在其中跨交易维护其长期状态。这些存储类型在燃料定价上不同——栈和内存操作便宜,而存储操作昂贵,以防止区块链膨胀。

在执行期间,合约代码可以访问关键的上下文信息:它可以读取消息发送方的地址、发送的以太币数量、调用方提供的数据载荷,以及区块级属性如当前区块号、时间戳和矿工地址。代码可以向调用方返回一个输出字节数组,并且可以向其他合约发送消息或创建新合约。这种执行模型是图灵完备的——循环和复杂的控制流是可能的——但燃料机制确保所有计算在有限时间内终止,通过经济手段而非语言限制解决了停机问题。

Code Execution

Máy ảo Ethereum (EVM) là môi trường thời gian chạy trong đó mã hợp đồng thực thi—một máy ảo dựa trên ngăn xếp, cấp độ thấp có khái niệm tương tự như Máy ảo Java hoặc WebAssembly. Mã hợp đồng được lưu trữ dưới dạng một chuỗi byte, trong đó mỗi byte đại diện cho một hoạt động (mã hoạt động) mà EVM có thể thực thi. Mô hình thực thi rất đơn giản và mang tính xác định: mọi nút chạy EVM có cùng trạng thái đầu vàogiao dịch phải đến cùng trạng thái đầu ra, đảm bảo sự đồng thuận trên toàn mạng.

EVM cung cấp ba loại lưu trữ riêng biệt để tính toán. Ngăn xếp là cấu trúc vào trước ra trước (LIFO) được giới hạn ở 1024 phần tử, được sử dụng cho các giá trị hoạt động ngay lập tức. Bộ nhớ là một mảng byte có khả năng mở rộng vô hạn, chỉ tồn tại trong khoảng thời gian của một cuộc gọi tin nhắn và được đặt lại giữa các lần thực thi. Bộ lưu trữ là kho lưu trữ khóa-giá trị liên tục được liên kết vĩnh viễn với mỗi tài khoản hợp đồng, nơi hợp đồng duy trì trạng thái lâu dài qua các giao dịch. Các loại lưu trữ này có giá khác nhau về gas — hoạt động của ngăn xếp và bộ nhớ rẻ, trong khi hoạt động lưu trữ lại đắt tiền để ngăn chặn sự phình to của blockchain.

Trong quá trình thực thi, mã hợp đồng có quyền truy cập vào ngữ cảnh quan trọng: nó có thể đọc địa chỉ của người gửi tin nhắn, lượng ether được gửi, tải trọng dữ liệu do người gọi cung cấp và các thuộc tính cấp khối như số khối hiện tại, dấu thời gian và địa chỉ thợ mỏ. Mã có thể trả về một mảng byte đầu ra cho người gọi và có thể gửi tin nhắn đến các hợp đồng khác hoặc tạo hợp đồng mới. Mô hình thực thi này là Turing-complete—có thể sử dụng các vòng lặp và luồng điều khiển phức tạp—nhưng cơ chế khí đảm bảo rằng tất cả tính toán kết thúc trong thời gian giới hạn, giải quyết vấn đề tạm dừng một cách kinh tế thay vì thông qua các hạn chế về ngôn ngữ.

Blockchain and Mining

以太坊区块链与比特币的基本相似,作为包含所有已执行交易的数据库。然而,比特币只存储交易列表,而以太坊同时存储交易列表和最新状态。以太坊中的每个区块包含前一个区块的哈希值、状态根(代表整个状态的默克尔帕特里夏树的根哈希)、交易根、收据根(存储交易执行数据),以及难度值、时间戳和nonce值。状态本身是一棵大型默克尔帕特里夏树,将地址映射到账户对象,每个账户都有余额、nonce、代码(如果有的话)和存储。

Ethereum APPLY BLOCK function processing transactions and updating state

以太坊使用了GHOST(贪婪最重观察子树)协议的修改版本,以解决快速出块时间带来的安全问题。在传统的最长链协议中,快速出块会导致高孤块率,降低网络安全性并增加中心化风险,因为大型矿工在孤块上浪费的计算更少。GHOST协议将孤块(在以太坊中称为"叔块")纳入最长链的计算中,并为叔块提供部分奖励,激励矿工引用它们。这使得以太坊能够在保持网络安全的同时,维持大约12秒的目标出块时间。

挖矿算法与比特币的工作量证明类似,要求矿工找到一个nonce,使得区块的哈希值低于特定的难度目标。然而,以太坊的内存密集型挖矿算法(Ethash)被设计为抗ASIC的,促进更去中心化的挖矿生态系统。难度根据出块时间动态调整,以维持约12秒的目标,确保稳定的区块生产,而GHOST协议在比特币平均10分钟更快的出块时间下提供安全保障。

Blockchain and Mining

Chuỗi khối Ethereum về cơ bản tương tự như chuỗi khối Bitcoin, hoạt động như một cơ sở dữ liệu chứa mọi giao dịch từng được thực hiện. Tuy nhiên, trong khi Bitcoin chỉ lưu trữ danh sách giao dịch thì Ethereum lưu trữ cả danh sách giao dịch và trạng thái gần đây nhất. Mỗi khối trong Ethereum chứa hàm băm của khối trước đó, gốc trạng thái (mã băm gốc của Merkle Patricia trie đại diện cho toàn bộ trạng thái), gốc giao dịch, gốc biên nhận (lưu trữ dữ liệu từ quá trình thực hiện giao dịch), cùng với các giá trị độ khó, dấu thời gian và số nonce. Bản thân trạng thái là một bộ ba địa chỉ ánh xạ Merkle Patricia lớn tới các đối tượng tài khoản, trong đó mỗi tài khoản có số dư, số nonce, mã (nếu có) và bộ nhớ.

Ethereum APPLY BLOCK function processing transactions and updating state

Ethereum sử dụng phiên bản sửa đổi của giao thức GHOST (Cây con được quan sát nặng nhất tham lam) để giải quyết các vấn đề bảo mật phát sinh từ thời gian khối nhanh. Trong các giao thức chuỗi dài nhất truyền thống, các khối nhanh dẫn đến tỷ lệ cũ cao, làm giảm an ninh mạng và tăng rủi ro tập trung khi các công ty khai thác lớn lãng phí ít tính toán hơn trên các cũ. GHOST bao gồm các khối cũ (được gọi là "chú" trong Ethereum) để tính toán chuỗi nào dài nhất và cung cấp một phần phần thưởng cho các khối chú, khuyến khích người khai thác tham chiếu chúng. Điều này cho phép Ethereum duy trì thời gian chặn mục tiêu khoảng 12 giây trong khi vẫn đảm bảo an ninh mạng.

Thuật toán khai thác hoạt động tương tự như proof-of-work của Bitcoin, yêu cầu người khai thác phải tìm một nonce sao cho hàm băm của khối nằm dưới mục tiêu độ khó nhất định. Tuy nhiên, thuật toán khai thác bộ nhớ cứng (Ethash) của Ethereum được thiết kế để chống lại ASIC, thúc đẩy hệ sinh thái khai thác phi tập trung hơn. Độ khó điều chỉnh linh hoạt dựa trên thời gian khối để duy trì mục tiêu ~12 giây, đảm bảo sản xuất khối nhất quán trong khi giao thức GHOST cung cấp đảm bảo an ninh mặc dù thời gian khối nhanh hơn so với mức trung bình 10 phút của Bitcoin.

Applications

可以在以太坊上构建的应用大致分为三大类。第一类是金融应用,为用户提供更强大的方式来管理和签订涉及资金的合约。这包括子货币、金融衍生品、对冲合约、带提取限额的储蓄钱包、自动分配资金的遗嘱,甚至是根据验证的工作完成情况计算薪酬的雇佣合约。这些应用利用以太坊的可编程性来创建在传统系统甚至比特币上都不可能或极其难以实现的复杂金融工具。

第二类是半金融应用,涉及资金但也有大量非货币成分。一个完美的例子是为计算问题的解决方案设立的自动执行的悬赏。某人可以发布一个计算问题和奖励,合约可以自动验证提交的解决方案并向第一个正确答案支付悬赏金。这一类别连接了纯金融和其他领域,利用经济激励来解决问题或协调行为。

第三类是与金钱完全无关的应用,例如在线投票和去中心化治理系统。这些非金融应用展示了以太坊作为通用平台的灵活性。例子包括类似域名币的去中心化域名系统、信誉系统、去中心化文件存储和组织治理工具。在所有这些应用类型中,代币系统已成为最常见和最基本的类型,作为许多其他应用的构建基础。

Applications

Các ứng dụng có thể được xây dựng trên Ethereum thuộc ba loại chính. Danh mục đầu tiên là các ứng dụng tài chính, cung cấp cho người dùng những cách mạnh mẽ hơn để quản lý và ký kết các hợp đồng liên quan đến tiền của họ. Điều này bao gồm các loại tiền tệ phụ, công cụ tài chính phái sinh, hợp đồng phòng ngừa rủi ro, ví tiết kiệm có giới hạn rút tiền, di chúc phân phối tiền tự động và thậm chí cả hợp đồng lao động tính toán thanh toán dựa trên việc hoàn thành công việc đã được xác minh. Các ứng dụng này tận dụng khả năng lập trình của Ethereum để tạo ra các công cụ tài chính phức tạp không thể hoặc cực kỳ khó triển khai trong các hệ thống truyền thống hoặc thậm chí trên Bitcoin.

Loại thứ hai là các ứng dụng bán tài chính, trong đó có liên quan đến tiền nhưng cũng có một thành phần phi tiền tệ đáng kể đối với những gì đang được thực hiện. Một ví dụ hoàn hảo là tiền thưởng tự thực thi cho các giải pháp cho các vấn đề tính toán. Ai đó có thể đăng một vấn đề tính toán cùng với phần thưởng và hợp đồng có thể tự động xác minh các giải pháp đã gửi và trả tiền thưởng cho câu trả lời đúng đầu tiên. Danh mục này kết nối tài chính thuần túy và các lĩnh vực khác, sử dụng các động lực kinh tế để giải quyết vấn đề hoặc điều phối hành vi.

Loại thứ ba là các ứng dụng không liên quan gì đến tiền, chẳng hạn như bỏ phiếu trực tuyến và hệ thống quản trị phi tập trung. Các ứng dụng phi tài chính này thể hiện tính linh hoạt của Ethereum như một nền tảng có mục đích chung. Ví dụ bao gồm các hệ thống tên miền phi tập trung như Namecoin, hệ thống danh tiếng, lưu trữ tệp phi tập trung và các công cụ quản trị tổ chức. Trong số tất cả các loại ứng dụng này, hệ thống mã thông báo nổi lên là loại phổ biến và cơ bản nhất, đóng vai trò là khối xây dựng cho nhiều ứng dụng khác.

Token Systems

代币系统在以太坊上实现起来出人意料地简单,尽管它是最强大和最常见的应用之一。在其核心,代币系统只是一个具有单一操作的数据库:从账户A减去X个单位并向账户B添加X个单位,条件是A在交易前至少拥有X个单位且交易由A授权。实现这一点需要维护一个地址到余额的映射,并提供一个在账户之间转移代币之前执行适当检查的转账函数。

基本代币系统的合约代码非常简单,可以用几行代码编写。它由一个将地址映射到余额的数据结构、一个分配初始代币供应量的初始化函数,以及一个在执行转账前检查发送方余额和授权的转账函数组成。这种简单性与在比特币上实现类似系统所需的复杂性形成了鲜明对比,后者由于比特币受限的脚本能力而需要大量的变通方法和限制。

以太坊上的代币可以代表几乎任何有价值的东西。它们可能代表具有自己货币政策的子货币、追踪外部资产的金融衍生品、拥有分红权的公司股份、客户计划中的积分、黄金或石油等大宗商品,甚至是实物财产的表示。以太坊的可编程性允许这些代币具有管理其行为的任意规则,例如转账限制、自动销毁机制、分红分配或治理权利。这种灵活性使代币系统成为以太坊生态系统的基础构建模块。

Token Systems

Hệ thống mã thông báo dễ triển khai một cách đáng ngạc nhiên trên Ethereum, mặc dù đây là một trong những ứng dụng phổ biến và mạnh mẽ nhất. Về cốt lõi, hệ thống mã thông báo chỉ đơn giản là một cơ sở dữ liệu với một thao tác duy nhất: trừ X đơn vị khỏi tài khoản A và thêm X đơn vị vào tài khoản B, với điều kiện A có ít nhất X đơn vị trước khi giao dịch và giao dịch được A ủy quyền. Việc triển khai yêu cầu duy trì ánh xạ địa chỉ tới số dư và cung cấp chức năng chuyển tiền để thực hiện các kiểm tra thích hợp trước khi di chuyển mã thông báo giữa các tài khoản.

Mã hợp đồng cho hệ thống mã thông báo cơ bản rất đơn giản và có thể được viết chỉ bằng vài dòng. Nó bao gồm cấu trúc dữ liệu ánh xạ địa chỉ tới số dư, chức năng khởi tạo chỉ định nguồn cung cấp mã thông báo ban đầu và chức năng chuyển để kiểm tra số dư và ủy quyền của người gửi trước khi thực hiện chuyển. Sự đơn giản này hoàn toàn trái ngược với sự phức tạp cần thiết để triển khai các hệ thống tương tự trên Bitcoin, vốn đòi hỏi các giải pháp thay thế và hạn chế đáng kể do khả năng viết tập lệnh bị hạn chế của Bitcoin.

Mã thông báo trên Ethereum có thể đại diện cho hầu hết mọi thứ có giá trị. Chúng có thể đại diện cho các loại tiền tệ phụ với chính sách tiền tệ của riêng chúng, các công cụ phái sinh tài chính theo dõi tài sản bên ngoài, cổ phiếu công ty có quyền cổ tức, điểm khách hàng thân thiết trong các chương trình khách hàng, hàng hóa như vàng hoặc dầu hoặc thậm chí là đại diện cho tài sản vật chất. Khả năng lập trình của Ethereum cho phép các mã thông báo này có các quy tắc tùy ý điều chỉnh hành vi của chúng, chẳng hạn như hạn chế chuyển tiền, cơ chế đốt tự động, phân phối cổ tức hoặc quyền quản trị. Tính linh hoạt này đã làm cho hệ thống mã thông báo trở thành khối xây dựng nền tảng cho phần lớn hệ sinh thái Ethereum.

Financial Derivatives and Stable-Value Currencies

金融衍生品是以太坊智能合约最基本和最重要的应用之一。一个简单的对冲合约展示了基本机制:甲方存入价值1000美元的一定数量以太币,乙方存入等值金额,合约使用数据源记录当时以太币的美元价值。30天后,合约重新计算价值,将价值1000美元的以太币发送给甲方,剩余部分发送给乙方。如果以太币价格上涨,甲方收到的以太币较少但维持1000美元价值;如果价格下跌,甲方收到更多以太币以维持该价值。这使得甲方可以对冲波动性风险,而乙方则对价格走势进行投机。

此类合约的实现需要通过预言机合约或数据源来访问外部数据。这些预言机提供价格信息、天气数据或合约正确执行所需的其他现实世界信息。虽然预言机引入了信任依赖,但可以通过冗余设计和加密经济激励来提供可靠数据。合约本身只需查询预言机,根据该数据执行计算,并按照其编程逻辑分配资金。

稳定币和更复杂的金融工具可以使用类似的机制构建。稳定币合约可以维护以太币储备并发行锚定法定货币的代币,根据价格源自动调整供应量或抵押要求。期权合约、期货合约、互换合约以及其他通常需要复杂法律框架和可信中介的衍生品可以被编码为自动执行的智能合约。这种可编程金融基础设施在维护区块链技术的透明性和安全保证的同时,实现了复杂的金融工程。

Financial Derivatives and Stable-Value Currencies

Các công cụ phái sinh tài chính đại diện cho một trong những ứng dụng cơ bản và quan trọng nhất của hợp đồng thông minh Ethereum. Một hợp đồng phòng ngừa rủi ro đơn giản thể hiện cơ chế cơ bản: bên A gửi một lượng ether nhất định trị giá 1000 USD, bên B gửi một số tiền tương đương và hợp đồng ghi lại giá trị USD của ether tại thời điểm đó bằng cách sử dụng nguồn cấp dữ liệu. Sau 30 ngày, hợp đồng tính toán lại giá trị và gửi ether trị giá 1000 USD cho A và phần còn lại cho B. Nếu giá ether tăng, A nhận được ít ether hơn nhưng vẫn duy trì giá trị 1000 USD; nếu nó giảm, A sẽ nhận thêm ether để duy trì giá trị đó. Điều này cho phép A phòng ngừa sự biến động trong khi B suy đoán về biến động giá.

Việc thực hiện các hợp đồng như vậy yêu cầu quyền truy cập vào dữ liệu bên ngoài thông qua hợp đồng oracle hoặc nguồn cấp dữ liệu. Những lời tiên tri này cung cấp thông tin về giá, dữ liệu thời tiết hoặc thông tin thực tế khác mà hợp đồng cần thực hiện đúng cách. Mặc dù các oracle giới thiệu sự phụ thuộc vào niềm tin nhưng chúng có thể được thiết kế với các ưu đãi dự phòng và kinh tế tiền điện tử để cung cấp dữ liệu đáng tin cậy. Bản thân hợp đồng chỉ đơn giản truy vấn oracle, thực hiện các phép tính dựa trên dữ liệu đó và phân phối tiền theo logic được lập trình của nó.

Stablecoin và các công cụ tài chính phức tạp hơn có thể được xây dựng bằng các cơ chế tương tự. Hợp đồng stablecoin có thể duy trì lượng dự trữ ether và phát hành mã thông báo được gắn với tiền tệ fiat, tự động điều chỉnh các yêu cầu về nguồn cung hoặc tài sản thế chấp dựa trên nguồn cấp giá. Các hợp đồng quyền chọn, hợp đồng tương lai, hoán đổi và các công cụ phái sinh khác thường yêu cầu khung pháp lý phức tạp và các trung gian đáng tin cậy thay vào đó có thể được mã hóa thành hợp đồng thông minh tự thực hiện. Cơ sở hạ tầng tài chính có thể lập trình này cho phép thực hiện kỹ thuật tài chính phức tạp trong khi vẫn duy trì tính minh bạch và đảm bảo an ninh của công nghệ blockchain.

Identity and Reputation Systems

类似域名币的域名注册系统在以太坊上可以轻而易举地实现,是身份系统最简单的例子。合约维护一个包含键值表的数据库,将名称映射到关联数据(如IP地址、公钥或其他信息)。任何人都可以通过向合约发送交易并附上少量注册费来注册一个名称,前提是该名称尚未被占用。所有者可以随时更新关联数据,名称可以根据合约中编码的规则设置为可转让或永久性的。

在此基础上可以构建更高级的身份系统,包括信誉评分、信任网络关系和去中心化身份验证。例如,合约可以基于已验证的交易、同行评级或任务完成情况来维护信誉评分。这些评分将是公开可见的,并与特定地址进行密码学绑定,创建一个跨应用跟随用户的可移植信誉。信任网络系统可以允许用户为他人的身份背书,构建有助于区分合法用户和不良行为者的社交图谱。

当与其他应用集成时,此类身份和信誉系统变得特别强大。市场可以要求卖家达到最低信誉评分,借贷平台可以根据借款人的信誉调整利率,社交网络可以使用信任网络来过滤垃圾信息和欺诈内容。通过提供任何应用都可以查询的共享身份基础设施,以太坊实现了一类不依赖中心化身份提供商或专有信誉系统的新型信任应用。

Identity and Reputation Systems

Hệ thống đăng ký tên tương tự như Namecoin có thể triển khai dễ dàng trên Ethereum và đóng vai trò là ví dụ đơn giản nhất về hệ thống nhận dạng. Hợp đồng duy trì một cơ sở dữ liệu với bảng khóa-giá trị ánh xạ tên tới dữ liệu liên quan (chẳng hạn như địa chỉ IP, khóa chung hoặc thông tin khác). Bất kỳ ai cũng có thể đăng ký tên bằng cách gửi giao dịch tới hợp đồng cùng với một khoản phí đăng ký nhỏ, miễn là tên đó chưa được sử dụng. Chủ sở hữu có thể cập nhật dữ liệu liên quan bất kỳ lúc nào và tên có thể được chuyển nhượng hoặc vĩnh viễn theo các quy tắc được mã hóa trong hợp đồng.

Các hệ thống nhận dạng tiên tiến hơn có thể được xây dựng trên nền tảng này để bao gồm điểm danh tiếng, mạng lưới các mối quan hệ tin cậy và xác minh danh tính phi tập trung. Ví dụ: một hợp đồng có thể duy trì điểm danh tiếng dựa trên các giao dịch đã được xác minh, xếp hạng ngang hàng hoặc mức độ hoàn thành nhiệm vụ. Những điểm số này sẽ được hiển thị công khai và được gắn bằng mật mã với các địa chỉ cụ thể, tạo ra danh tiếng di động theo sau người dùng trên các ứng dụng. Hệ thống web tin cậy có thể cho phép người dùng xác minh danh tính của người khác, xây dựng biểu đồ xã hội giúp phân biệt người dùng hợp pháp với những kẻ xấu.

Hệ thống nhận dạng và danh tiếng như vậy trở nên đặc biệt mạnh mẽ khi được tích hợp với các ứng dụng khác. Thị trường có thể yêu cầu điểm danh tiếng tối thiểu đối với người bán, nền tảng cho vay có thể điều chỉnh lãi suất dựa trên danh tiếng của người vay hoặc mạng xã hội có thể sử dụng web tin cậy để lọc nội dung spam và lừa đảo. Bằng cách cung cấp cơ sở hạ tầng dùng chung để nhận dạng mà bất kỳ ứng dụng nào cũng có thể truy vấn, Ethereum tạo ra một lớp ứng dụng mới dựa trên sự tin cậy không phụ thuộc vào các nhà cung cấp danh tính tập trung hoặc hệ thống danh tiếng độc quyền.

Decentralized File Storage

去中心化文件存储可以通过以太坊合约来实现,在需要存储的用户和提供存储的供应商之间进行协调。在"去中心化Dropbox"模式中,用户按月付费上传文件,合约将付款分配给证明自己实际存储了数据的存储供应商。证明机制通过定期的密码学挑战实现:合约随机选择文件的部分内容,并要求供应商提供默克尔树证明,证明他们拥有该数据。挑战失败或下线的供应商将失去其押金和未来的付款流。

这种方法相比中心化存储有几个优势。默克尔树证明实现了高效验证——用户和合约可以在不下载整个文件的情况下确认文件可用性。该系统自然地将文件分布在多个独立的供应商之间,在无需显式复制协议的情况下创建冗余。经济激励使供应商的行为与用户需求保持一致:供应商通过可靠存储数据赚钱,如果未能做到则亏钱。这消除了中心化存储解决方案中固有的信任需求。

此类系统的存储成本有可能因多种原因而低于中心化替代方案。消除垄断定价使市场竞争将成本推至接近实际存储成本。多个用户存储类似文件产生的隐性冗余可以减少总存储需求。无需昂贵的数据中心基础设施或企业管理费用。然而,在支付机制、确保足够的供应商参与以及管理冗余与成本之间的权衡方面仍然存在挑战。尽管存在这些挑战,去中心化存储展示了以太坊如何仅通过经济激励来协调复杂的多方交互。

Decentralized File Storage

Việc lưu trữ tệp phi tập trung có thể được triển khai thông qua các hợp đồng Ethereum phối hợp giữa người dùng cần lưu trữ và nhà cung cấp cung cấp dịch vụ lưu trữ đó. Trong mô hình "Dropbox phi tập trung", người dùng sẽ trả phí hàng tháng để tải tệp lên, với hợp đồng sẽ phân phối khoản thanh toán cho các nhà cung cấp dịch vụ lưu trữ chứng minh rằng họ thực sự đang lưu trữ dữ liệu. Cơ chế chứng minh hoạt động thông qua các thử thách mật mã định kỳ: hợp đồng chọn ngẫu nhiên các phần của tệp và yêu cầu nhà cung cấp cung cấp bằng chứng cây Merkle chứng minh rằng họ sở hữu dữ liệu đó. Các nhà cung cấp không vượt qua thử thách hoặc ngừng hoạt động ngoại tuyến sẽ mất tiền đặt cọc và dòng thanh toán trong tương lai.

Cách tiếp cận này cung cấp một số lợi thế so với việc lưu trữ tập trung. Bằng chứng cây Merkle cho phép xác minh hiệu quả—người dùng và hợp đồng có thể xác nhận tính khả dụng của tệp mà không cần tải xuống toàn bộ tệp. Hệ thống phân phối các tệp một cách tự nhiên trên nhiều nhà cung cấp độc lập, tạo ra sự dư thừa mà không yêu cầu các giao thức sao chép rõ ràng. Các biện pháp khuyến khích kinh tế điều chỉnh hành vi của nhà cung cấp theo nhu cầu của người dùng: nhà cung cấp kiếm tiền bằng cách lưu trữ dữ liệu một cách đáng tin cậy và sẽ mất tiền nếu họ không làm như vậy. Điều này giúp loại bỏ yêu cầu tin cậy vốn có trong các giải pháp lưu trữ tập trung.

Chi phí lưu trữ trong hệ thống như vậy có thể thấp hơn so với các giải pháp thay thế tập trung vì nhiều lý do. Việc loại bỏ tình trạng độc quyền định giá cho phép cạnh tranh trên thị trường làm giảm chi phí xuống gần bằng chi phí lưu kho thực tế. Sự dư thừa tiềm ẩn từ việc nhiều người dùng lưu trữ các tệp giống nhau có thể làm giảm tổng yêu cầu lưu trữ. Không cần cơ sở hạ tầng trung tâm dữ liệu đắt tiền hoặc chi phí chung của công ty. Tuy nhiên, vẫn còn những thách thức xung quanh cơ chế thanh toán, đảm bảo sự tham gia đầy đủ của nhà cung cấp và quản lý sự cân bằng giữa dư thừa và chi phí. Bất chấp những thách thức này, việc lưu trữ phi tập trung cho thấy cách Ethereum có thể điều phối các tương tác phức tạp của nhiều bên chỉ thông qua các biện pháp khuyến khích kinh tế.

Decentralized Autonomous Organizations

去中心化自治组织(DAO)是一个虚拟实体,拥有一组成员或股东,他们共同有权花费该实体的资金并修改其代码。典型的DAO遵循一个简单规则:需要67%的成员同意才能做出支出决定或修改组织的代码。成员可以提交提案、对提案投票,如果提案获得足够支持,合约将自动执行该决定。成员份额可以是可转让的,允许DAO参与权的流动市场,不同类别的份额可以拥有不同的投票权或经济权益。

最简单的DAO设计是一个自我修改的合约,维护一个成员列表,并要求三分之二多数投票来更改合约的任何方面,包括其自身的投票规则。成员以交易的形式提交代码变更,其他成员投票,达到阈值后合约将自行更新。更复杂的设计可能包括委托投票系统,成员可以将投票权分配给代表,或者流动民主,投票可以被委托但在重要决定时可以随时收回。

DAO可以服务于超越简单资金管理的各种目的。DAO可以作为去中心化公司运作,雇佣承包商、购买服务并向股东分配利润——所有这些都由智能合约代码而非传统法律结构治理。它可以作为去中心化投资基金运作,由成员投票决定资助哪些项目。它可以管理公共资源,由利益相关者投票决定分配规则。关键洞察在于,通过将治理规则编码为透明的、不可变的代码并将其与经济利益绑定,DAO可以在不需要传统等级管理或法律执行的情况下协调群体决策。

Decentralized Autonomous Organizations

Tổ chức tự trị phi tập trung (DAO) là một thực thể ảo có một nhóm thành viên hoặc cổ đông có quyền chung chi tiêu tiền của thực thể và sửa đổi mã của nó. Một DAO điển hình hoạt động với một quy tắc đơn giản: cần 67% thành viên đưa ra quyết định chi tiêu hoặc sửa đổi mã của tổ chức. Các thành viên có thể gửi đề xuất, bỏ phiếu cho chúng và nếu đề xuất nhận được đủ sự hỗ trợ, hợp đồng sẽ tự động thực hiện quyết định. Cổ phiếu thành viên có thể được chuyển nhượng, cho phép thị trường thanh khoản cho sự tham gia của DAO và các loại cổ phiếu khác nhau có thể có quyền biểu quyết hoặc yêu cầu kinh tế khác nhau.

Thiết kế DAO đơn giản nhất là một hợp đồng tự sửa đổi, duy trì danh sách thành viên và yêu cầu đa số 2/3 phiếu bầu để thay đổi bất kỳ khía cạnh nào của hợp đồng, bao gồm cả các quy tắc bỏ phiếu của chính hợp đồng đó. Các thành viên sẽ gửi các thay đổi mã dưới dạng giao dịch, các thành viên khác sẽ bỏ phiếu và khi đạt đến ngưỡng, hợp đồng sẽ tự cập nhật. Các thiết kế phức tạp hơn có thể bao gồm các hệ thống bỏ phiếu được ủy quyền trong đó các thành viên có thể giao quyền biểu quyết của mình cho người đại diện hoặc chế độ dân chủ lỏng nơi phiếu bầu có thể được ủy quyền nhưng được thu hồi bất kỳ lúc nào đối với các quyết định quan trọng.

DAO có thể phục vụ nhiều mục đích khác nhau ngoài việc quản lý quỹ đơn giản. DAO có thể hoạt động như một tập đoàn phi tập trung, thuê nhà thầu, mua dịch vụ và phân phối lợi nhuận cho các cổ đông — tất cả đều được quản lý bởi mã hợp đồng thông minh thay vì cấu trúc pháp lý truyền thống. Nó có thể hoạt động như một quỹ đầu tư phi tập trung, với các thành viên bỏ phiếu về dự án nào sẽ được tài trợ. Nó có thể quản lý một nguồn tài nguyên chung, với các bên liên quan bỏ phiếu về các quy tắc phân bổ. Điểm mấu chốt là bằng cách mã hóa các quy tắc quản trị bằng mã minh bạch, bất biến và gắn chúng với lợi ích kinh tế, DAO có thể điều phối các quyết định của nhóm mà không yêu cầu quản lý phân cấp truyền thống hoặc thực thi pháp luật.

Further Applications

除了已经讨论的主要类别之外,以太坊还支持众多其他应用。带有复杂安全功能的储蓄钱包可以施加每日提取限额,同时提供用于恢复的紧急密钥,在保持最终控制权的同时保护用户免受盗窃。农作物保险合约可以根据天气数据源自动向农民支付赔偿,消除理赔处理过程并减少管理开销。点对点赌博应用可以在没有任何可信中介的情况下运作,智能合约持有赌注并根据可验证的随机数或现实世界的事件数据自动向赢家支付。

链上预测市场允许用户对未来事件下注,通过群体智慧创建强大的预测机制。这些可以通过谢林币(SchellingCoin)风格的协议来增强,以创建去中心化预言机:参与者独立报告数据(如选举结果或天气状况),与多数一致的报告获得奖励,而异常值则受到惩罚。这种加密经济方法激励诚实报告,可以为其他合约提供可靠的现实世界数据,而无需信任任何单一预言机提供者。

多重签名钱包是另一个重要应用,实现多方对资金的共同控制。一个2-of-3多重签名钱包可能要求三个指定方中的任意两个批准交易才能花费资金,适用于托管安排、企业金库或个人安全。去中心化市场可以结合身份系统、信誉评分、托管合约和争议解决机制来实现无需中心化平台的点对点商务。这些应用中的每一个都展示了以太坊的可编程性如何实现新的信任模型和组织结构。

Further Applications

Ngoài các danh mục chính đã được thảo luận, Ethereum còn hỗ trợ nhiều ứng dụng khác. tiết kiệm với các tính năng bảo mật phức tạp có thể áp đặt giới hạn rút tiền hàng ngày đồng thời cung cấp khóa khẩn cấp để khôi phục, bảo vệ người dùng khỏi bị trộm trong khi vẫn duy trì quyền kiểm soát tối ưu. Hợp đồng bảo hiểm cây trồng có thể tự động thanh toán cho nông dân dựa trên nguồn cấp dữ liệu thời tiết, loại bỏ việc xử lý yêu cầu bồi thường và giảm chi phí hành chính. Các ứng dụng cờ bạc ngang hàng có thể hoạt động mà không cần bất kỳ trung gian đáng tin cậy nào, với các hợp đồng thông minh nắm giữ cổ phần và tự động trả tiền cho người chiến thắng dựa trên các số ngẫu nhiên có thể xác minh được hoặc dữ liệu sự kiện trong thế giới thực.

Thị trường dự đoán trên chuỗi cho phép người dùng đặt cược vào các sự kiện trong tương lai, tạo ra các cơ chế dự báo mạnh mẽ thông qua trí tuệ của đám đông. Chúng có thể được tăng cường bằng các giao thức kiểu SchellingCoin để tạo ra các oracle phi tập trung: người tham gia báo cáo dữ liệu một cách độc lập (như kết quả bầu cử hoặc điều kiện thời tiết) và những người có báo cáo phù hợp với đa số sẽ nhận được phần thưởng trong khi những người có báo cáo ngoại lệ sẽ bị phạt. Cách tiếp cận kinh tế tiền điện tử này khuyến khích báo cáo trung thực và có thể cung cấp dữ liệu thực tế đáng tin cậy cho các hợp đồng khác mà không yêu cầu sự tin tưởng vào bất kỳ nhà cung cấp oracle nào.

đa chữ ký đại diện cho một ứng dụng quan trọng khác, cho phép chia sẻ quyền kiểm soát tiền giữa nhiều bên. Ví đa chữ ký 2 trên 3 có thể yêu cầu hai trong số ba bên được chỉ định bất kỳ phê duyệt giao dịch trước khi có thể chi tiêu tiền, hữu ích cho các thỏa thuận ký quỹ, kho bạc công ty hoặc bảo mật cá nhân. Thị trường phi tập trung có thể kết hợp hệ thống nhận dạng, điểm danh tiếng, hợp đồng ký quỹ và cơ chế giải quyết tranh chấp để cho phép thương mại ngang hàng mà không cần nền tảng tập trung. Mỗi ứng dụng này thể hiện khả năng lập trình của Ethereum cho phép các mô hình tin cậy và cơ cấu tổ chức mới như thế nào.

Miscellanea And Concerns

以太坊对修改版GHOST协议的实现包括叔块纳入和奖励的具体规则。叔块必须是当前区块祖先的直接子块(回溯2到7代),必须是有效的区块头,必须与之前的叔块不同,且不能是当前区块的直接祖先。叔块获得标准区块奖励的87.5%,而包含叔块的区块每包含一个叔块获得额外3.125%的奖励(最多两个叔块)。这种激励结构鼓励矿工引用他们观察到的孤块,增强网络安全,同时奖励在网络传播中暂时运气不佳的矿工。

费用系统基于"燃料"的概念,每个计算操作都有固定的燃料成本。例如,一次乘法运算消耗5个燃料单位,一次SHA256哈希运算消耗20个燃料单位,每笔交易的基础成本为21,000个燃料单位。用户指定燃料上限(愿意消耗的最大燃料量)和燃料价格(每单位燃料愿意支付的以太币数量)。这个系统有多重目的:通过确保所有计算都需要付费来防止无限循环和拒绝服务攻击,创建一个用户通过燃料价格竞价的区块空间市场,并允许矿工设定愿意接受的最低燃料价格来保护网络资源。

Ethereum supply growth rate comparing linear issuance to Bitcoin decreasing growth

可扩展性仍然是一个重大关切,因为每个全节点必须处理每笔交易以验证状态。当前的区块链架构难以匹配中心化系统的交易吞吐量。潜在的解决方案包括状态分片——不同节点处理不同的交易子集,以及从工作量证明向权益证明共识的转变——这可以实现更高效的区块生产。使用默克尔证明的轻客户端可以在不处理所有区块的情况下验证交易,但总得有人处理所有内容。这些可扩展性挑战代表了对以太坊长期可行性至关重要的活跃研究和开发领域。

Miscellanea And Concerns

Việc triển khai giao thức GHOST đã sửa đổi của Ethereum bao gồm các quy tắc cụ thể về việc đưa chú vào và phần thưởng. Các chú phải là con trực hệ của tổ tiên của khối hiện tại (từ 2 đến 7 thế hệ trở về trước), phải là các tiêu đề khối hợp lệ, phải khác biệt với các chú trước và không được là tổ tiên trực tiếp của khối hiện tại. Các khối chú nhận được 87,5% phần thưởng khối tiêu chuẩn, trong khi khối bao gồm nhận thêm 3,125% cho mỗi chú được bao gồm (tối đa hai chú). Cơ cấu khuyến khích này khuyến khích những người khai thác tham khảo các khối cũ mà họ quan sát được, tăng cường an ninh mạng đồng thời khen thưởng những người khai thác gặp xui xẻo tạm thời khi truyền bá mạng.

Hệ thống tính phí dựa trên khái niệm "gas", trong đó mọi hoạt động tính toán đều có chi phí gas cố định. Ví dụ: một phép nhân tốn 5 gas, hàm băm SHA256 tốn 20 gas và mỗi giao dịch có chi phí cơ bản là 21.000 gas. Người dùng chỉ định cả giới hạn gas (lượng gas tối đa họ sẵn sàng tiêu thụ) và giá gas (họ sẽ trả bao nhiêu ether cho mỗi đơn vị gas). Hệ thống này phục vụ nhiều mục đích: nó ngăn chặn các vòng lặp vô hạn và các cuộc tấn công từ chối dịch vụ bằng cách đảm bảo tất cả tính toán được thanh toán, nó tạo ra một thị trường cho không gian khối nơi người dùng đặt giá thầu thông qua giá gas và cho phép các nhà khai thác đặt giá gas tối thiểu mà họ sẵn sàng chấp nhận, bảo vệ tài nguyên mạng.

Ethereum supply growth rate comparing linear issuance to Bitcoin decreasing growth

Khả năng mở rộng vẫn là mối quan tâm đáng kể vì mọi nút đầy đủ phải xử lý mọi giao dịch để xác minh trạng thái. Kiến trúc blockchain hiện tại gặp khó khăn trong việc phù hợp với thông lượng giao dịch của hệ thống tập trung. Các giải pháp tiềm năng bao gồm phân chia trạng thái, trong đó các nút khác nhau xử lý các tập hợp con giao dịch khác nhau và chuyển đổi từ proof-of-work sang đồng thuận bằng chứng cổ phần, có thể cho phép sản xuất khối hiệu quả hơn. Các khách hàng nhẹ sử dụng bằng chứng Merkle có thể xác minh các giao dịch mà không cần xử lý tất cả các khối, nhưng ai đó vẫn phải xử lý mọi thứ. Những thách thức về khả năng mở rộng này thể hiện các lĩnh vực nghiên cứu và phát triển tích cực quan trọng đối với khả năng tồn tại lâu dài của Ethereum.

Conclusion

以太坊协议最初被构想为加密货币的升级版本,通过高度通用的编程语言提供链上托管、提取限额和金融合约等高级功能。然而,以太坊协议远不止于货币。围绕去中心化文件存储、去中心化计算和去中心化预测市场的协议,以及数十个其他概念,有潜力大幅提高计算行业的效率,并通过首次添加经济层为其他点对点协议提供巨大推动力。

以太坊不是提供为特定用例设计的有限操作集,而是提供一种图灵完备的编程语言,使开发者能够构建他们所能设计的任何应用。想要发明自己的金融衍生品?创建自己的货币?在区块链上建立一个政府?这些在以太坊的脚本系统中都可以轻而易举地实现。该平台的力量不在于预测将构建什么应用,而在于提供使构建这些应用变得容易的基础设施。

以太坊协议实现的任意状态转换函数的概念提供了一个具有独特潜力的平台。以太坊不是一个封闭的、面向特定数据存储、赌博或金融应用的单一用途协议,而是在设计上就是开放式的,我们相信它极其适合在未来数年中作为大量金融和非金融协议的基础层。未来在以太坊上构建的应用可能是我们今天甚至无法想象的,而这种开放式的可能性代表了该平台的真正前景。

Conclusion

Giao thức Ethereum ban đầu được hình thành như một phiên bản nâng cấp của tiền điện tử, cung cấp các tính năng nâng cao như ký quỹ trên blockchain, giới hạn rút tiền và hợp đồng tài chính thông qua ngôn ngữ lập trình có tính khái quát cao. Tuy nhiên, giao thức Ethereum không chỉ dừng lại ở tiền tệ. Các giao thức xung quanh việc lưu trữ tệp phi tập trung, tính toán phi tập trung và thị trường dự đoán phi tập trung, trong số hàng chục khái niệm khác, có khả năng tăng đáng kể hiệu quả của ngành tính toán và mang lại sự thúc đẩy lớn cho các giao thức ngang hàng khác bằng cách lần đầu tiên bổ sung một lớp kinh tế.

Thay vì cung cấp một tập hợp các thao tác giới hạn được thiết kế cho các trường hợp sử dụng cụ thể, Ethereum cung cấp ngôn ngữ lập trình hoàn chỉnh Turing cho phép các nhà phát triển xây dựng bất kỳ ứng dụng nào họ có thể thiết kế. Bạn muốn phát minh ra công cụ phái sinh tài chính của riêng mình? Tạo tiền tệ của riêng bạn? Thành lập chính phủ trên blockchain? Tất cả những điều này đều có thể thực hiện được một cách dễ dàng bằng hệ thống tập lệnh của Ethereum. Sức mạnh của nền tảng không nằm ở việc dự đoán những ứng dụng nào sẽ được xây dựng mà ở việc cung cấp cơ sở hạ tầng nền tảng giúp việc xây dựng chúng trở nên dễ dàng.

Khái niệm về chức năng chuyển đổi trạng thái tùy ý được triển khai bởi giao thức Ethereum cung cấp một nền tảng có tiềm năng độc đáo. Thay vì là một giao thức đóng, có mục đích duy nhất dành cho các ứng dụng cụ thể trong lưu trữ dữ liệu, cờ bạc hoặc tài chính, Ethereum được thiết kế với kết thúc mở và chúng tôi tin rằng nó cực kỳ phù hợp để đóng vai trò là lớp nền tảng cho một số lượng lớn các giao thức tài chính và phi tài chính trong những năm tới. Các ứng dụng sẽ được xây dựng trên Ethereum trong tương lai có thể là những ứng dụng mà ngày nay chúng ta thậm chí không thể tưởng tượng được và khả năng mở đó thể hiện lời hứa thực sự của nền tảng.

References and Further Reading

以太坊白皮书建立在加密货币和分布式系统研究的大量先前工作之上。基础性的比特币协议在中本聪2008年的原始论文《比特币:一种点对点电子现金系统》中进行了描述,该论文引入了基于区块链的数字货币概念。早期扩展比特币功能的尝试包括域名币——一个去中心化的域名注册系统,展示了货币之外的区块链应用,尽管受限于比特币的脚本能力。

彩色币白皮书提出了一种通过"着色"特定比特币来在比特币区块链上表示替代资产的方法,而万事达币试图在比特币之上创建一个用于更复杂金融工具的协议层。两者都凸显了在比特币之上构建的局限性,并推动了对更灵活平台的需求。去中心化自治公司的概念在《比特币杂志》中进行了探讨,为通过智能合约进行组织治理提供了理论基础。

关键技术组件包括用于轻客户端的简化支付验证(SPV)、用于高效数据验证的默克尔树,以及用于以太坊状态表示的帕特里夏树。GHOST(贪婪最重观察子树)协议在2013年的一篇密码学论文中进行了描述,解决了快速出块时间带来的安全问题,构成了以太坊共识机制的基础。这些参考文献代表了以太坊所建立的知识基础,结合了加密货币、分布式系统、密码学和博弈论的洞见,创建了一个通用区块链平台。

References and Further Reading

Sách trắng Ethereum được xây dựng dựa trên nghiên cứu sâu rộng trước đây về tiền điện tử và nghiên cứu hệ thống phân tán. Giao thức Bitcoin nền tảng được mô tả trong bài báo gốc năm 2008 của Satoshi Nakamoto "Bitcoin: Hệ thống tiền mặt điện tử ngang hàng", giới thiệu khái niệm về tiền kỹ thuật số dựa trên blockchain. Những nỗ lực ban đầu nhằm mở rộng chức năng của Bitcoin bao gồm Namecoin, một hệ thống đăng ký tên phi tập trung thể hiện các ứng dụng blockchain ngoài tiền tệ, mặc dù bị hạn chế bởi khả năng viết tập lệnh hạn chế của Bitcoin.

Sách trắng về tiền xu màu đã đề xuất một phương pháp thể hiện các tài sản thay thế trên chuỗi khối Bitcoin bằng cách "tô màu" các bitcoin cụ thể để đại diện cho các tài sản khác, trong khi Mastercoin cố gắng tạo một lớp giao thức trên Bitcoin cho các công cụ tài chính phức tạp hơn. Cả hai đều nêu bật những hạn chế của việc xây dựng trên Bitcoin và thúc đẩy nhu cầu về một nền tảng linh hoạt hơn. Khái niệm về các tập đoàn tự trị phi tập trung, được khám phá trên Tạp chí Bitcoin, đã cung cấp nền tảng lý thuyết cho việc quản trị tổ chức thông qua các hợp đồng thông minh.

Các thành phần kỹ thuật chính bao gồm xác minh thanh toán đơn giản (SPV) dành cho khách hàng hạng nhẹ, cây Merkle để xác minh dữ liệu hiệu quả và Patricia cố gắng đại diện cho trạng thái của Ethereum. Giao thức GHOST (Cây con được quan sát nặng nhất tham lam), được mô tả trong một bài viết về mật mã năm 2013, giải quyết các vấn đề bảo mật phát sinh từ thời gian khối nhanh và tạo cơ sở cho cơ chế đồng thuận của Ethereum. Những tài liệu tham khảo này thể hiện nền tảng trí tuệ mà Ethereum được xây dựng trên đó, kết hợp những hiểu biết sâu sắc về tiền điện tử, hệ thống phân tán, mật mã và lý thuyết trò chơi để tạo ra một nền tảng chuỗi khối có mục đích chung.