先贴原版内容,对于重点的位置逐步根据理解翻译。
1 Introduction
At R3, we believe that distributed ledger(分布式账簿) technology has the potential to transform the financial services industry to the benefit of its clients and participant firms alike. We envision a future where financial agreements are recorded and automatically managed without error(未来的目标是金融合同能够被无错误自动化地记录和执行), where anybody can transact seamlessly for any contractual purpose without friction. We believe markets will move towards models where parties to financial agreements record them once and collaborate to maintain accurate, shared records of these agreements. Duplications, reconciliations, failed matches and breaks will be things of the past. Isolated islands of asset representations will be no more.(重复、争议和解、关联失败、数据缺口将成为过去,资产 孤岛将不复存在)
We aspire to define a shared ledger fabric for financial services use-cases that can be deployed within existing legal frameworks(当前法律框架下) and which relies on proven technologies(依赖于验证技术). Our philosophy can be broken down into three categories: engineering for the requirements of institutions(为满足机构需求开发), a focus on non-functional requirements(关注非功能性需求), and extensibility(可拓展性). This paper introduces the design features of the Corda platform which we believe make it an attractive choice for regulated financial institutions(受控、合法金融机构).
2 Context (目前的情况)
Banks were amongst the earliest adopters of information technology and, contrary to popular belief, they have done a good job in automating previously manual processes and in digitizing previously physical processes. However, there are significant opportunities to improve the cost and efficiency of the architectures that emerged.(银行已经做了很多自动化的工作来替代手工,但是现在出现的一些新架构提供了很多机会来提高效率和降低成本)
In particular, each financial institution maintains its own ledgers, which record that firm’s view of its agreements and positions with respect to its customer set and its counterparts. Its counterparts, in turn, maintain their views. This duplication can lead to inconsistencies, and it drives a need for costly matching, reconciliation and fixing of errors by and among the various parties to a transaction. To the extent that differences remain between two firms’views of the same transaction, this is also a source of risk, some of it potentially systemic.(每家银行都管理自己的一套账本,带来的对账成本非常高,并且还可能会带来潜在的系统性错误风向)
A plurality of financial institutions drives competition and choice but the plurality of technology platforms upon which they rely drives complexity and creates operational risk(多元的金融机构可以带来更多的竞争,但是也带来运作的风险). However, until recently, this was unavoidable: except for centralised market infrastructures, there were few effective ways to consolidate technology across firms without also consolidating the firms themselves.(除非有一个中心化的市场 管理机构来减少这种运作风险)
Centralised market infrastructure utilities have gone some way towards increasing the amount of data and business-logic sharing between firms but, overall, the degree of integration achieved in the realm of financial transactions still lags far behind that which has been achieved in the realm of information exchange since the advent of the web. (尽管中心化的市场机构增加了信息共享,但是仍远落后于现在出现的互联网)
We believe that the maturation of cryptographic techniques, exemplified in part by what is commonly referred to as “blockchain technology”, provides a new opportunity: the possibility of authoritative systems of record that are securely shared between firms(区块链技术的出现可以解决信息安全分享的问题). This vision provides the opportunity to transform the economics of financial firms, particularly but not exclusively in post-trade services, by implementing a new shared platform for the recording of financial events and processing of business logic: one where a single global logical ledger is authoritative for all agreements between firms recorded on it(愿景是借鉴区块链技术实现一个新的平台,让金融公司的将他们的金融活动记录在这个账本上). This architecture will define a new shared platform for the industry, upon which incumbents,new entrants and third parties can compete to deliver innovative new products and services.
We believe that the savings accruing from higher-quality data, fewer discrepancies and quicker agreement of details between firms will be significant(更少的歧义和更快地形成合同). Moreover, deployment of this common architecture across firms will define a new platform on which existing and new providers can compete to serve the needs of clients. Going further, it is possible that such a platform will also find application within firms, where the problem of multiple systems recording details of the same trades is also a major driver of cost and complexity(目前多个系统记录相同的交易是复杂且费用高).
3 Vision (愿景)
In the long-term, one can envision a “global logical ledger”(全局逻辑账本) with which all economic actors will interact and which will allow any parties to record and manage agreements amongst themselves in a secure, consistent, reliable, private and authoritative manner(安全、连续、可靠、私有、权限齐全地记录和管理合同). We say it is global in the sense that everybody sees the same data that pertains to them and logical in the sense that the physical implementation may be composed differently. As such, a possible end-state is one in which we have moved from authoritative systems-of-record maintained within firms to global authoritative systems-of-record shared between firms.
3.1 End-State Principles (终状态原则)
Principles underpinning a possible end-state using distributed ledger technology may include:(利用终状态的分布式账簿的基础原则可能包含以下几点)
• Facts recorded by the ledger are, by contract, accepted as admissible evidence and legally binding by all parties in any dispute.(账簿中的合约是被承认的证据)
• Facts recorded by the ledger are regarded as authoritative rather than“shadows” of authoritative data held else where, enabling settlement to take place directly across the platform.(账簿记录的事实是有权威性的,即自己本身能证明自己,而不像天朝对于某人身份的证明是存储在其它地方的,比如公安局)
• Once all parties to an agreement have assented, facts recorded on the ledger are final and immutable; errors and unwinds must be processed through a subsequent transaction. Firms will be under pressure to re-engineer their internal processes to increase accuracy and quality.(一旦所有的节点都达成了共识,被账本记录的事实将不能被再改变,如果出现了错误需要修复,则需要通过之后的相关交易来修正,这样参与者就有责任有压力对他们的内在处理过程做好优化以提升正确性和质量)
• Any authorized actor may, in principle, connect directly to the ledger and use it to record agreements with its counterparts. No actor is compelled to deal with any other but we may see a decline in “tiered” or hierarchical market models.(被认证的参与者可以直接连接账簿并用它来记录与对方的合同,没有强制谁和谁进行交易,但是我们会看到原来这种层叠的等级市场模型会减少)
• By promoting open standards and inclusive access, existing and new service providers can connect and compete to offer differentiated services, promoting choice and competition.(现有的和新出的服务供应商都可以连接和竞争以提供差异化的服务,可以提升竞争并增加选择)
• The only parties who should have access to the details of a financial transaction are those parties themselves and others with a legitimate need to know.(能够获得金融交易的细节的参与者将被限制在交易参与方和法律规定有知情权组织)
However, the vision encompasses the notion of interim states, such as those that focus first on the sharing only of business logic. This is intended to acknowledge the reality that today’s systems will be with us for the foreseeable future(现有的金融系统将会在可预见的未来一直伴随我们), requiring co-existence, integration and migration paths as a fundamental part of the solution design(所以Corda最基本的设计考虑到与现有的金融系统共存,并与现存的金融系统整合或将现存的金融系统迁移到Corda网络中). These interim states can also deliver considerable value whilst legal and other non-technical implications of the longer-term vision are addressed in parallel.
It should be stressed that the long-term vision of a global logical ledger is intended to set a direction of travel but that its realization may be in the form of a multiplicity of ledgers(全局逻辑账簿可能实现的形式是存在多个账簿). Perhaps this will take the form of one ledger per asset class(可能每一种类型的资产都有其对应的账簿) which would be autonomous, loosely coupled, providing functional and operational independence between different business services(并具有自动化、低耦合、功能和运作独立的特点).
Architectural and strategic choices underpinning the vision include:(实现这些愿景的基础架构和策略选择包括:)
• Records managed by this system will be accessible only to those actors with a legitimate interest in the assets and agreements they manage.(整个系统的记录的数据只能由合法的交易参与方获取到)
• The behavior of agreements managed by the system will be described in computer code that explicitly refers to and gains its legitimacy from over arching legal prose.(合约由计算机语言描述,并记录的法律条文使其得到合法性)
• Support for contract code upgrades and explicit reference to dispute resolution procedures will be supported in order to provide certainty in the presence of failed contracts. This is because contractual disputes can occur, even in automated settings, as a result of both technical and human factors.(由于存在技术失误和人为因素导致的失误,系统需要支持合约代码升级,并对失效的合约支持解决争议的程序,一说是在Corda网路外解决争端)
• Successful delivery of this vision will be through reduction of cost, risk and regulatory burden (including capital, liquidity and operational obligations)and through enabling of innovative new products and services.(目标包括降低成本、降低风险、降低合规障碍、创新产品和服务)
• To gain wide adoption across the financial community, portions of the system must and will be open: open source, open development process, open standards.(为了得到世界上程序员们的帮助,保持开源、开放开发流程、开放标准)
• Although this vision talks in terms of a “platform” or “system”, our belief is that the design will actually be multi-layered with different providers potentially competing/collaborating to deliver different pieces. Readers should not assume that we envisage a monolithic vertically integrated approach.(虽然整体也叫一个系统,不过他们希望整个体系由多层来自不同开发团队提供的的模块,说到底还是希望大家多作贡献)
• The vision also includes the possibility that higher-level layers of the stack can contain IP proprietary to individual firms or groups.(系统的上层应该包括特定公司或团体的IP所有权)
• This system will operate under the assumption of an adversarial security environment: the growing threat of cyber crime must be taken as a given.(整个系统的运作环境假定在一个不安全的环境中,一个充满信息技术犯罪的世界)
It is believed that the fundamental inventions needed to deliver this vision already exist.(要实现以上的愿景,Corda的团队认为现阶段已经出现了这些相应的技术) These include, but are not limited to, robust cryptography(优秀的加密算法), global communications networks(全球性的通信网络), standards for the definition of financial instruments(金融工具的标准定义) and effective algorithms to ensure consistency at a global scale(在全局规模上保持连贯一直的高效算法).
What makes this vision possible today is that the recent popular interest in distributed ledger(现在世界上也有了一些分布式账簿了) and blockchain systems(也有各种各样的区块链系统) has created an environment in which such a vision can be openly discussed and that a collaborative alliance(并且也有这种开放交流和合作的伙伴) through which multiple financial institutions(更重要的是有金融机构赞助啊) can act together has been formed.It assumes an identity infrastructure between the participants in the network but makes no assumption as to its sophistication or mode of operation. Regulatory engagement is a key element of the design process.
From our requirements analysis and assessment of existing distributed ledger platforms, we concluded that no existing platform met our needs(目前还没有能够实现我们愿景的账簿平台,这才是我们搞Corda的意义所在嘛). In essence, the threat models underpinning the designs of traditional distributed databases were unsuitable for our use-case of bringing mutually distrusting legal entities into consensus(传统的分布式数据库在我们设想的不可信环境中是不合适的); and the architectures of existing blockchain systems were unsuitable for our requirement of restricted and carefully specified data sharing at the level of individual legal agreements(现有的区块链系统在法律限制方面明显不足,并且其共享的数据也不能保护个体合法合约的隐私). As a result we designed and began development of Corda(这才是我们搞Corda的意义所在嘛).
4 Corda
Corda is a distributed ledger platform(分布式账簿平台) for recording and processing financial agreements(记录和处理金融合约), designed to implement the vision contained in this document(为实现上面提到的愿景而设计).
The Corda platform supports smart contracts(Corda支持智能合约,也就是合约代码化并能够根据输入自动执行), matching the definition of Clack, Bakshi, Braine. Our smart contract is an agreement whose execution is both automatable by computer code working(智能合约既能根据代码自动执行) with human input and control(也能由人输入和控制), and whose rights and obligations, as expressed in legal prose, are legally enforceable(并受法律约束). The smart contract links business logic and business data to associated legal prose in order(智能合约连接商业逻辑和商业数据,并与相关法律法规关联) to ensure that the financial agreements on the platform are rooted firmly in law(从而保证金融合约是紧密运行在法律的框架下的) and can be enforced and that we have a clear path to follow in the event of ambiguity, uncertainty or dispute(对于模棱两可、不确定和争议的事情能够根据法律提供清晰的解决方案).
4.1 Principal Features(基础特点)
Corda is specialized for use with regulated financial institutions. It is heavily inspired by blockchain systems, but without the design choices that make traditional blockchains inappropriate for many financial scenarios(Corda是专门为金融机构的应用而设计的,受区块链系统启发,但是又与传统区块链系统不同,因为传统区块链系统在很多金融场景下是不适用的).
Corda provides a framework to run smart contracts with these key activities and features:(Corda提供了一个具有以下特点或在以下场景运行智能合约的框架:)
• Recording and managing the evolution of financial agreements and other shared data between two or more identifiable parties in a way that is grounded in existing legal constructs and compatible with existing and emerging regulation(记录和管理演化的金融合约,在两个或多个认证团体之间共享的信息是基于已有的法律框架并能适配已有的或即将出现的法律法规)
• Choreographing workflow between firms without a central controller(公司之间的交易流没有中央控制者).
• Supporting consensus between firms at the level of individual deals, not a global system(支持的共识只在交易双方当中,不在整个体系中).
• Supporting the inclusion of regulatory and supervisory observer nodes(支持监管节点).
• Validating transactions solely between parties to the transaction(只在交易双方中验证交易).
• Supporting a variety of consensus mechanisms(支持多种共识算法).
• Recording explicit links between human-language legal prose documents and smart contract code(同时记录明文的法律条文和智能合约代码).
• Using industry-standard tools(使用工业标准化工具,Corda使用基于JVM的语言开发,有很多现成的工业化的基础设施).
• Restricting access to the data within an agreement to only those explicitly entitled or logically privileged to it(交易数据的获取严格限制限制在交易双方以及拥有监管权的参与者).
These features contribute to the design of a platform appropriate for use in complex, financial services organizations. Note that this design does not use a native cryptocurrency or impose a global transaction speed limit(Corda的设计既没有设计内置的加密货币,也没有整体的交易速度限制,对比区别于BTC的加密货币属性和缓慢的交易速度).
4.2 Concepts(概念)
We begin with the idea of a global ledger: a reliable single source. However, in our model, it is not the case that transactions and ledger entries are globally visible. In cases where transactions only involve a small subgroup of parties we strive to keep the relevant data purely within that subgroup.(再次强调交易数据仅限于交易有关的小团组可见,整个网络不可见交易数据,保证隐私)
The foundational object in our concept is a state object(状态), which is a digital document which records the existence, content and current state of an agreement between two or more parties(状态就是交易双方记录了当前状态的电子文档). It is intended to be shared only with those who have a legitimate reason to see it(仅限于合法有关方面可见). To ensure consistency in a global, shared system where not all data is visible to all participants, we rely heavily on secure cryptographic hashes to identify parties and data. The ledger is defined as a set of immutable state objects(账簿由一系列不可改变的状态定义).
We talk and think in terms of the state of agreements and our objective is to ensure that all parties to the agreement remain in consensus as to this state as it evolves. One could argue that this is the essence of the blockchain concept: ensuring that the data held by different actors is, and remains, consistent as operations are applied to update that data, and that this forms the foundation on which reliable transactions are built: from simple monetary payments to sophisticated smart contract transitions.(大概讲Corda跟区块链有点像的是对于参与各方都能保持数据的同步)
Our focus on states of agreements is in contrast to systems where the data over which participants much reach consensus is the state of an entire ledger or the state of an entire virtual machine. Corda provides three main tools to achieve global distributed consensus:(Corda提供了3种工具来实现全局分布式的共识)
• Smart contract logic to ensure state transitions are valid according to the pre-agreed rules.(智能合约根据达成共识的规则,保证状态变化是有效的)
• Uniqueness and timestamping services to order transactions temporally and eliminate conflicts.(统一和时间戳服务使交易逐个分开,以减少冲突)
• An orchestration framework which simplifies the process of writing complex multi-step protocols between multiple different parties.(Corda提供一个编辑的框架来简化不同参与方之间编写复杂多步协议的过程)
4.3 Consensus(共识)
In Corda, updates are applied using transactions, which consume existing state objects and produce new state objects. There are two aspects of consensus:(在Corda中使用交易来更新整个系统的状态,不断消费已经存在的状态并产生新的状态。共识大概有这两方面:)
1. Transaction validity(交易有效性): parties can reach certainty that a proposed update transaction defining output states is valid by checking that the associated contract code runs successfully and has all the required signatures(参与方对输出的状态,通过检查相关的智能合约运行结果和是否拥有必须的签名,进行有效性的校验); and that any transactions to which this transaction refers are also valid(并且这个输出状态的所依据的输入状态也是有效的).
2. Transaction uniqueness(交易唯一性): parties can reach certainty that the transaction in question is the unique consumer of all its input states. That is: there exists no other transaction, over which we have previously reached consensus(validity and uniqueness), that consumes any of the same states(不会消费完全一样的状态,毕竟加了时间戳在里面,每一个状态肯定都是不同的).
Parties can agree on transaction validity by independently running the same contract code and validation logic. However, consensus over uniqueness requires a predetermined observer(唯一性的共识需要一个预先决定的、独立的观察者), which in many cases will be required to be independent.
Corda has “pluggable”(可插入的) uniqueness services. This is to improve privacy, scalability, legal-system compatibility and algorithmic agility(增强隐私性、可拓展性、合法系统兼容性、算法敏捷性). A single service maybe composed of many mutually untrusting nodes coordinating via a byzantine fault tolerant algorithm, or could be very simple, like a single machine(一个单独的服务可能由许多互相不信任的节点通过拜占庭容错算法协作,或简单到只有一台机器). In some cases, like when evolving a state requires the signatures of all relevant parties, there may be no need for a uniqueness service at all.(某些情况下,产生一个状态需要所有相关参与方的签名,这可能不需要唯一性服务)
It is important to note that these uniqueness services are required only to attest as to whether the states consumed by a given transaction have previously been consumed; they are not required to attest as to the validity of the transaction itself, which is a matter for the parties to the transaction. This means that the uniqueness services are not required to (and, in the general case, will not) see the full contents of any transactions, significantly improving privacy and scalability of the system(增加系统的隐私性和可拓展性) compared with alternative distributed ledger and blockchain designs. This design decision represents an important choice as to the acceptable tradeoffs in shared ledger architectures and is explored more fully in the forthcoming technical whitepaper.
4.4 Business Logic(商业逻辑)
Corda enforces business logic through smart contract code, which is constructed as a pure function that either accepts or rejects a transaction(Corda强制让商业逻辑通过智能合约表达,由纯函数组成,或接受或拒绝交易), and which can be composed from simpler, reusable functions(可以由更简单、可复用的函数组成). The functions interpret transactions as taking states as inputs and producing output states through the application of(smart contract) commands, and accept the transaction if the proposed actions are valid(智能合约可以消耗状态并产生新的状态作为数据,如果交易动作合法则接受这个交易). Contracts define part of the business logic of the ledger, and they are mobile(智能合约定义了账簿的部分商业逻辑): nodes will download and run contracts inside a sandbox without any review in some deployments(节点可以在沙盒中不经过审查可以下载和运行合约), although we envisage the use of signed code for Corda deployments in the regulated sphere(尽管我们更希望在有监管的环境下Corda的部署使用的是经过签名的代码).
The virtual machine we have selected for contract execution and validation is the Java Virtual Machine, as it has a wealth of existing libraries and a large skill base, and reusing an industry standard makes it easier for banks to reuse their existing code inside contracts(Corda以JVM作为运行和验证的虚拟机,因为JVM拥有非常好的生态,有很多已经开发并用了很久的库,这种复用工业标准的选择对于银行复用已有的代码将带来非常大的便利). However, we augment it with a custom sandbox that is radically more restrictive than the ordinary JVM sandbox, and it enforces not only security requirements but also deterministic execution(Corda自动以的JVM沙盒比标准的JVM沙盒更严格,不仅强制使用安全措施还使用确定性的运行). Like Ethereum(以太坊), the choice of standardising a bytecode set(标准化字节码) rather than a language enables users to innovate in contract language design, or reuse well known languages, according to taste(使用标准化字节码可以不局限于某种语言,给开发者更多的发挥空间,只要开发者使用的语言可以编译成标准化的字节码就行,例如Java和Kotlin). It also makes it easy to directly use contract code from internal applications, once that contract has been reviewed, which should simplify application development considerably.
4.5 Core Financial Concepts(核心金融概念)
Corda’s architecture was heavily influenced by three architecturally significant use-cases(Corda的架构受3个重要的应用情景所影响), deemed to be representative of common problems to which it is likely to be targeted. These use-cases are: cash(现金), a security instrument(安全工具) and a derivative contract(衍生合同). In all three cases, we conceive of them as examples of financial agreements:
• A cash balance (e.g., “The following bank and I agree that they owe me$1 million”).(现金账户)
• A security under custody (e.g., “The following custody bank and I agree that I own 1000 shares of the following corporation”).(交易安全监管,类似于证监会?)
• A bilateral derivative agreement (e.g., “Banks A and B agree that they are parties to the following Interest Rate Swap (IRS), which means they agree to exchange the following cash flows (netted) at predetermined scheduled times with an agreed payoff formula”).(双边衍生合同,银行A和银行B同意在某个利率时触发某个量的现金流交易)
Taking one of these examples, Corda’s cash design explicitly models the business reality that there is no such thing as “money in a bank”, only a cash claim that an owner has with respect to a named institution(Corda的现金设计就是以现在的金融实体为模型的,就像根本就没有“在银行中的现金”,即函数式交易,非账户模型). So our core Cash contract is extremely simple, but powerful: we record the legal identity of the cash issuer, the currency, amount, owner(核心的现金合同就比较简单了,只记录合法的交易发起者、币种、数量和拥有者) (and other information as to the nature of the claim, with an explicit link to the legal prose governing the agreement, which is also expected to specify resolution procedures in the event of dispute) and use that to build up all other cash-related concepts (payments, netting and so forth).
4.6 Summary of the Corda Model
The core concepts in our model are:
• State objects(状态), representing an agreement between two or more parties(表示合约的多方), governed by machine-readable Contract Code(受机器运行的合约代码管理). This code references, and is intended to implement, portions of human-readable Legal Prose(这些代码则由人可读的法律条文所约束)
• Transactions(交易), which transition state objects through a lifecycle(通过生命周期的形式改变状态)
• Transaction Protocols or Business Flow(交易协议或交易流), enabling parties to coordinate actions without a central controller(允许交易方协作完成而不需要一个中心管理者)
Determinism is maximised and the amount of shared state required minimized by selectively and decisively restricting the universe of allowable programming techniques.
The combination of state objects (data), Contract Code (allowable operations), Transaction Protocols (business logic choreography), any necessary APIs, wallet plugins, and UI components can be thought of a Shared Ledger application(状态、智能合约合法操作、交易协议、各种API开发、钱包插件开发、UI开发,都可以被称为共享账簿应用), or Corda Distributed Application(Corda分布式应用) (“CorDapp”). This is the core set of components a contract developer on the platform should expect to build.
5 Comparisons with Other Platforms
Corda was created from extensive work with financial practitioners and is designed with their requirements in mind. However, its design is also inspired by previous work, including that introduced in the writings of Todd Boyle and Ian Grigg on triple entry accounting 8, and aspects of existing distributed ledger platforms such as Bitcoin and Ethereum. So it may be easier for people unfamiliar with Corda to understand it in terms of these platforms.
5.1 Comparisons to Bitcoin (与比特币的比较)
Corda has some significant similarities to Bitcoin:(相同点)
• Immutable states that are consumed and created by transactions is the same.(都是通过输入已有的不可改变的状态产生新的状态)
• Transactions have multiple inputs and outputs(交易包含多个输入输出). Bitcoin sometimes refers to the ledger as the unspent transaction output set (UTXO set) as a result(都是基于UTXO模型,某个账户有多少钱是通过一系列交易函数运行得到,非以太坊的账户模型).
• A contract is pure function(智能合约是纯函数); contracts do not have storage or the ability to interact with anything(合约不能保存或与任何东西发生作用). Given the same transaction, a contract’s “verify”function always yields exactly the same result(对于同一个合约和相同的状态输入,输出结果一定相同).
However, a Bitcoin transaction has a single, rigid data format and can hold very little data apart from quantities of bitcoin and associated spending rules(script)(比特币的数据结构固定,并且只能在每个状态中保存很少的数据). Some people have been known to try and work around this limitation by embedding data in semi-standardized places in the contract code so the data can be extracted through pattern matching but this is a poor approach. By contrast, our states can include arbitrary typed data(Corda的状态可以包含任意类型的数据). In addition, our transactions invoke not only input contracts but also the contracts of the outputs(此外,Corda能够在合约的输入输出都能激活代码运行). A Bitcoin transaction’s acceptance is controlled only by the contract code in the consumed input states. We use the term “contract” to refer to a bundle of business logic that may handle various different tasks, beyond transaction verification. For instance, currently our contracts also include code for creating valid transactions (this is often called “wallet code” in Bitcoin).
A Bitcoin script can only be given a fixed set of byte arrays as the input. This means there is no way for a contract to examine the structure of the entire transaction(比特币只能接受一个特定大小的字节数组作为输入,故合约不能检查整个交易的结构是否有效), which severely limits what contracts can do. Our contracts are Turing-complete and can be written in any ordinary programming language that targets the JVM(Corda的合约可以在整个交易过程中运行,只要能够生成JVM运行的字节码程序的语言都可以编写智能合约). Corda allows arbitrarily-precise time-bounds to be specified in transactions (which must be attested to by a trusted timestamper) rather than relying on the time at which a block happens to be mined(Corda使用一些独立精准的授时服务为交易授时,区别于比特币是通过挖矿的方式确定一个区块产生的时间). This is important given that many contract types we envisage supporting require precision in timing and because our primary consensus implementations use block-free conflict resolution algorithms. It should be noted that Corda does not utilise Proof of Work or have a concept of “mining”(故此,Corda不需要工作量证明的共识机制或挖矿).(其实这里面还少了一个区别,比特币挖矿挖出的区块是全网广播的,信息可以被所有节点看到;而Corda则仅限于交易各方和可插入的监管机构可以看到信息,拥有比比特币更强的隐私性)
5.2 Comparisons to Ethereum(与比特币的比较)
Like Ethereum, code runs inside a relatively powerful virtual machine and can contain complex logic(与以太坊类似,智能合约都是运行在强大的虚拟机上,都可以包含复杂的业务逻辑). Non-assembly based programming languages can be used for contract programming(都可以支持多种编程语言). They are both intended for the modelling of many different kinds of financial contracts(都是为了模拟现实中各种不同的金融合同).
However, the term “contract” in Ethereum refers to an instantiation of a program that is replicated and maintained by every participating node(以太坊对于合同的概念是实例化程序来维持所有参与方的节点). This instantiation is very much like an object in an Object Oriented program(类似于面向对象编程OOP): it can receive and send messages, update local storage and so on(大概意思就是以太坊是账户模型,实例化很多账户的对象,账户可以通过调用不同的方法改变自己的金钱数目或向不同账户发送消息). In contrast, our implementation of the smart contract in code refers to a set of functions, only one of which is a part of keeping the system synchronised (the verify function). That function is pure and stateless (i.e., it may not interact with any other part of the system whilst executing). As contracts do not have any kind of mutable storage, there is no notion of a “message”(Corda是UTXO模型,要知道账户的金钱数目需要通过追溯交易函数通过状态推导得到). Ethereum also claims to be a platform not only for financial logic, but literally any kind of application at all. Our platform considers non-financial applications to be out of scope, at least initially.(目标不同,以太坊目标是称为各种应用的平台;而Corda的短期目标对于非金融的应用是不考虑在内的,也就是说Corda目标是应用于金融交易领域)
6 Roadmap(路线图)
To arrive at this design, we first simulated and prototyped components of Corda in code to validate aspects of the concept. This is a list of some, but not all, extensions to the Corda model which are expected to be delivered in the near to mid-term.
• Transaction Decomposition and Uniqueness Enhancements(交易分解和唯一性增强): In corporating mechanisms to selectively obscure portions of transactions, including obfuscation from uniqueness services.
• Contract Verification Sandbox(合约验证沙盒): Explicit link-time white listing of an aggressively minimal set of Java libraries.
• A plug-in based wallet for position inference.(用于位置推断的可插入钱包)
• Calculation oracles or gateways to proprietary (or other) business logic executors (e.g., Central Counter parties or valuation agents) that can be verified on-ledger by participants.(加入参与方以外的证人节点)
• Using the Corda model to manage identity of users.(用Corda模型来管理用户身份)
• Interoperability and data integration, specifically with respect to FpML, ISO20022, support for other data formats and integration/interoperability with other platforms.(可以与其他平台协作)
• Building applications for reference data.(可以构建应用)
• Privacy enhancements using technology such as address randomization, zero-knowledge proofs, asset reissuance schemes.(隐私增强技术,包括地址随机、零智商验证、资产重发约束)
• Reference contracts for further financial instruments.
• Native support of portfolio-level business logic(对商业逻辑的整合提供原生支持), such as aggregations of state objects.
7 Conclusion
In contrast to most existing distributed ledger and blockchain platforms today, Corda was built with the explicit purpose of recording and enforcing business agreements among registered financial institutions(Corda的目标就是成为金融机构用来记录和强制执行商业合同的金融工具); it is not intended to be a general purpose solution for all problems. As such, it takes a unique approach to data distribution and transaction semantics while maintaining the features of distributed ledgers which first attracted institutions to projects such as R3, namely reliable execution of financial agreements in an automatable and enforaceable fashion.