scholarly journals All Smart Contracts Are Ambiguous

Author(s):  
James Grimmelmann

Smart contracts are written in programming languages rather than in natural languages. This might seem to insulate them from ambiguity, because the meaning of a program is determined by technical facts rather than by social ones. It does not. Smart contracts can be ambiguous, too, because technical facts depend on socially determined ones. To give meaning to a computer program, a community of programmers and users must agree on the semantics of the programming language in which it is written. This is a social process, and a review of some famous controversies involving blockchains and smart contracts shows that it regularly creates serious ambiguities. In the most famous case, The DAO hack, more than $150 million in virtual currency turned on the contested semantics of a blockchain-based smart-contract programming language.

Author(s):  
Karan Aggarwal ◽  
Mohammad Salameh ◽  
Abram Hindle

In this paper, we have tried to use statistical machine translation in order to convert Python 2 code to Python 3 code. We use data from two projects and achieve a high BLEU score. We also investigate the cross-project training and testing to analyze the errors so as to ascertain differences with previous case. We have described a pilot study on modeling programming languages as natural language to build translation models on the lines of natural languages. This can be further worked on to translate between versions of a programming language or cross-programming-languages code translation.


2015 ◽  
Author(s):  
Karan Aggarwal ◽  
Mohammad Salameh ◽  
Abram Hindle

In this paper, we have tried to use statistical machine translation in order to convert Python 2 code to Python 3 code. We use data from two projects and achieve a high BLEU score. We also investigate the cross-project training and testing to analyze the errors so as to ascertain differences with previous case. We have described a pilot study on modeling programming languages as natural language to build translation models on the lines of natural languages. This can be further worked on to translate between versions of a programming language or cross-programming-languages code translation.


2020 ◽  
Vol 2020 ◽  
pp. 1-15
Author(s):  
Zheng Yang ◽  
Hang Lei

The security of blockchain smart contracts is one of the most emerging issues of the greatest interest for researchers. This article presents an intermediate specification language for the formal verification of Ethereum-based smart contract in Coq, denoted as Lolisa. The formal syntax and semantics of Lolisa contain a large subset of the Solidity programming language developed for the Ethereum blockchain platform. To enhance type safety, the formal syntax of Lolisa adopts a stronger static type system than Solidity. In addition, Lolisa includes a large subset of Solidity syntax components as well as general-purpose programming language features. Therefore, Solidity programs can be directly translated into Lolisa with line-by-line correspondence. Lolisa is inherently generalizable and can be extended to express other programming languages. Finally, the syntax and semantics of Lolisa have been encapsulated as an interpreter in mathematical tool Coq. Hence, smart contracts written in Lolisa can be symbolically executed and verified in Coq.


2018 ◽  
Vol 7 (4.11) ◽  
pp. 193 ◽  
Author(s):  
Nor Elysha Kamaruzaman ◽  
Ihsan Mohd Yassin ◽  
Azlee Zabidi ◽  
Fadhlan Hafizhelmi Kamaru Zaman ◽  
Zairi Ismael Rizman ◽  
...  

In recent years, an individual under the pseudonym of Satoshi Nakamoto devised a revolutionary technology called blockchain as the engine behind the first decentralized virtual currency called Bitcoin. A radical concept departing from government-centric controlled currencies, Bitcoin has emerged as a disruptive technology with the power to revolutionize business and its processes. Advantages of the blockchain include decentralized control, immutability, elimination of central authority and solution of concurrency problems in traditional databases. Leveraging on the advantages of blockchain technology defined above, this paper discusses the potential application of blockchain technology for storage of Islamic marriage certificates. Marriage certificates are documents issued to couples to legally recognize their marriage. Due to its paper-based nature, there is significant risk for them to be forged or frauded. These issues can be addressed effective using blockchain. The proposed application was implemented using smart contracts on a simulated Ethereum platform. A smart contract is designed to execute automatically under certain predefined conditions. The use of smart contracts eliminate manipulation by a single party. In addition, the immutable concept of blockchain ensures that data integrity is always preserved, greatly reducing the risk of fraud.  


2021 ◽  
Vol 336 ◽  
pp. 08005
Author(s):  
Jianlin Niu ◽  
Zhiyu Ren

The existing self-sovereign identity management schemes have some problems, such as weak availability and security risks. To solve these problems, we proposed a cross-domain self-sovereign identity management scheme using smart contracts. This scheme takes into account the entire lifecycle of identity, especially including the cross-domain use and recovery. To preserve the privacy data of users on the blockchain, we proposed a data storage method of anchoring on blockchain. Finally, we implemented this scheme using the Solidity programming language for smart contract. This scheme has been experimentally verified to be capable of maintaining the expenditure of resources under control and having good usability. Compared with other self-sovereign identity management schemes, this scheme has better performance in terms of controllability, security and portability.


2020 ◽  
pp. 109-116
Author(s):  
N.P. KARPENKO ◽  
◽  
M.A. SHIRYAEVA

The purpose of the work is to consider methods for calculating the forecast of groundwater backwater in the zone of influence of hydraulic structures. The analysis of analytical dependences of calculation of the forecast of groundwater backwater for various calculation schemes is carried out. For a homogeneous scheme of the geofiltration structure, a numerical model is proposed and a computational program for calculating the groundwater backwater is developed. It allows calculating the groundwater backwater from the channel at any time in the discrete mode. To simplify the solution of the problem of calculating the groundwater backwater, a computer program was created in the programming language Phyton Version 8.3 which quickly solves this hydrogeological problem. A possible range of geofiltration parameters is proposed for calculating the groundwater backwater near main channels. The adaptation and implementation of the software model was carried out for a specific object – the Bolshoy Stavropol channel-5, for which forecast calculations were made. The results of predictive calculations of groundwater backwater are the basis for the assessment of areas of possible flooding – the territory within which the level of ground water increases as a result of their backup by a hydraulic structure.


2020 ◽  
Author(s):  
Adinda Ayu Fadhilah

Perangkat lunak komputer merupakan sebuah program komputer yang menjembatani pengguna komputer dan perangkat keras yang digunakannya. Dengan kata lain perangkat lunak merupakan penerjemah antara manusia sebagai orang yang memberi instruksi dan komputer sebagai pihak yang menerima instruksi. Perangkat lunak memang tidak tampak secara fisik dan tidak berwujud benda namun bisa untuk dioperasikan. Perangkat lunak secara garis besar software atau perangkat lunak dapat diklasifikasikan menjadi tiga bagian yaitu, perangkat lunak sistem operasi, perangkat lunak sistem aplikasi dan bahasa pemograman.Kata kunci : Perangkat Lunak KomputerAbstractComputer software is a computer program that bridges computer users and the hardware they use. In other words software is a translator between humans as the person who gives instructions and the computer as the party who receives instructions. The software does not appear physically and is not tangible but can be operated. Software outline software or software can be classified into three parts, namely, operating system software, application system software and programming languages.


2020 ◽  
Author(s):  
Lisa Wati

Abstrak Perangkat lunak komputer (software) atau disebut juga dengan peranti lunak adalah sebuah program komputer yang menjadi jembatan penghubung antara pengguna komputer (user) dengan komputer. Dengan kata lain, perangkat lunak merupakan penerjemah antara user sebagai pemberi intruksi dan komputer sebagai pihak yang menerima intruksi. Software memiliki sifat bertolak belakang dengan hardware. Jika fisik hardware dapat disentuh, lain halnya dengan software, software tidak dapat disentuh dengan indra peraba secara fisik. Namun, software sangat penting dalam pengoprasian komputer. Karna tanpa software komputer hanya mesin yang tidak dapat dioperasikan dengan intruksi user. Sistem software dibuat dengan menggunakan bahasa pemrograman yang ditulis oleh programmer sehingga menjadi kode yang dapat dikenali perangkat keras.Kata kunci : Perangkat lunak komputer, software, programAbstractComputer software (software) is a computer program that serves as a bridge between computer users (users) and computers. In other words, software is a translator between the user as the giver of instructions and the computer as the party who receives the instructions. Software has the opposite properties to hardware. If physical hardware can be touched, another case with software, software cannot be touched with the physical sense of touch. However, software is very important in operating the computer. Because without computer software only machines that cannot be operated with user instructions. The software system is created using a programming language written by the programmer so that it becomes code that can be recognized by the hardware.Keywords: Computer software, software, program


2020 ◽  
Author(s):  
Putraangga

Perangkat lunak komputer merupakan sebuah program komputer yang menjembatani pengguna komputer dan perangkat keras yang digunakannya. Dengan kata lain perangkat lunak merupakan penerjemah antara manusia sebagai orang yang memberi instruksi dan komputer sebagai pihak yang menerima instruksi. Perangkat lunak memang tidak tampak secara fisik dan tidak berwujud benda namun  bisa untuk dioperasikan. Perangkat lunak secara garis besar software atau perangkat lunak dapat diklasifikasikan menjadi tiga bagian yaitu, perangkat lunak sistem operasi, perangkat lunak sistem aplikasi dan bahasa pemograman.Computer software is a computer program that bridges computer users and the hardware they use. In other words software is a translator between humans as the person who gives instructions and the computer as the party who receives instructions. The software does not appear physically and is not tangible but can be operated. Software outline software or software can be classified into three parts, namely, operating system software, application system software and programming languages.


2020 ◽  
Author(s):  
Lisawati

Abstrak Perangkat lunak komputer (software) atau disebut juga dengan peranti lunak adalah sebuah program komputer yang menjadi jembatan penghubung antara pengguna komputer (user) dengan komputer. Dengan kata lain, perangkat lunak merupakan penerjemah antara user sebagai pemberi intruksi dan komputer sebagai pihak yang menerima intruksi. Software memiliki sifat bertolak belakang dengan hardware. Jika fisik hardware dapat disentuh, lain halnya dengan software, software tidak dapat disentuh dengan indra peraba secara fisik. Namun, software sangat penting dalam pengoprasian komputer. Karna tanpa software komputer hanya mesin yang tidak dapat dioperasikan dengan intruksi user. Sistem software dibuat dengan menggunakan bahasa pemrograman yang ditulis oleh programmer sehingga menjadi kode yang dapat dikenali perangkat keras.Kata kunci : Perangkat lunak komputer, software, program AbstractComputer software (software) is a computer program that serves as a bridge between computer users (users) and computers. In other words, software is a translator between the user as the giver of instructions and the computer as the party who receives the instructions. Software has the opposite properties to hardware. If physical hardware can be touched, another case with software, software cannot be touched with the physical sense of touch. However, software is very important in operating the computer. Because without computer software only machines that cannot be operated with user instructions. The software system is created using a programming language written by the programmer so that it becomes code that can be recognized by the hardware.Keywords: Computer software, software, program


Sign in / Sign up

Export Citation Format

Share Document