![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
이 분야는 역사적으로 모호했지만 최근 AI의 발전으로 인해 전면과 중앙을 가져올 수 있습니다.
In the realm of computer science, few areas are as theoretical and hold as high a threshold for practical application as formal verification. It essentially takes the tools of mathematical logic and applies them to verifying whether statements are correct.
컴퓨터 과학의 영역에서, 이론적 인 영역은 거의 없으며 공식적인 검증만큼 실제 적용을위한 높은 임계 값을 유지합니다. 본질적으로 수학적 논리의 도구를 취하고 진술이 올바른지 확인하는 데 적용합니다.
This field has remained largely in the academic sphere, but recent advances in AI may finally bring it front and center.
이 분야는 학업 분야에서 크게 남아 있지만 최근 AI의 진보는 마침내 전면과 중앙을 가져올 수 있습니다.
I spoke with Clark Barrett, a professor of computer science at Stanford, who tells of a software bug that once led to the explosion of a rocket. The software ran an instance that forced it to convert a floating-point number into an integer. This caused the program to crash and the rocket to explode. A formal verification of the code would have avoided that problem.
나는 스탠포드의 컴퓨터 과학 교수 인 클라크 바렛 (Clark Barrett)과 이야기를 나 who 다. 이 소프트웨어는 부동 소수점 번호를 정수로 변환 해야하는 인스턴스를 실행했습니다. 이로 인해 프로그램이 충돌하고 로켓이 폭발하게되었습니다. 코드의 공식적인 검증은 그 문제를 피했을 것입니다.
Compiling is the weakest form of verification. A stronger form would be to run a battery of test cases. To see this more clearly, consider a function that divides two numbers. Without doing any internal checks, that function could run on any numerical inputs. If your test cases excluded 0, your function would still compile. But the edge case of 0 in the denominator would cause the program to crash. Only a formal verification would catch this because it’s not sufficient just to evaluate the functions on the different inputs, but rather to assess the function on its underlying logic.
컴파일은 가장 약한 형태의 검증입니다. 더 강력한 형태는 다양한 테스트 케이스를 실행하는 것입니다. 이것을보다 명확하게 보려면 두 숫자를 나누는 함수를 고려하십시오. 내부 점검을하지 않으면 해당 기능은 숫자 입력에서 실행될 수 있습니다. 테스트 케이스가 0을 제외한 경우 기능이 여전히 컴파일됩니다. 그러나 분모에서 0의 가장자리 케이스는 프로그램이 충돌하게됩니다. 공식적인 검증만이 다른 입력의 함수를 평가하기에 충분하지 않고 기본 논리의 함수를 평가하기 때문에이를 포착 할 수 있습니다.
The bar for formal verification is high, and the tools are obscure and hard to use. Outside of the Mars rover, they have not had wide acceptance. But the one possible exception today is cloud services. Cloud providers allow customers to enter their own query logic when using their services. An error in the query logic, such as inadvertently typing “or,” instead of “and” can have existential consequences, giving everyone access instead of no one. As such, companies like AWS are now recruiting computer scientists in formal verification by the hundreds.
공식적인 검증의 막대는 높고 도구는 모호하고 사용하기 어렵습니다. Mars Rover 외부에서 그들은 널리 받아 들여지지 않았습니다. 그러나 오늘날 가능한 한 가지 예외는 클라우드 서비스입니다. 클라우드 제공 업체를 통해 고객은 서비스를 사용할 때 자체 쿼리 로직을 입력 할 수 있습니다. 실수로 "및"대신 "OR"을 입력하는 것과 같은 쿼리 로직의 오류는 실존 적 결과를 초래할 수 있으므로 모든 사람이 아무도 대신 액세스 할 수 있습니다. 따라서 AWS와 같은 회사는 현재 수백 명에 의한 공식적인 검증으로 컴퓨터 과학자를 모집하고 있습니다.
The big use case will be formally verifying code written by AI. As AI tools improve, more code will be written by AI, and we need fast and cheap ways to verify this code beyond simply compiling it. That’s where formal verification could have its Super Bowl moment. There is now a big research effort underway to deploy these formal verification tools at scale to AI-generated code.
큰 사용 사례는 공식적으로 AI가 작성한 코드를 확인하는 것입니다. AI 도구가 개선되면 AI가 더 많은 코드를 작성할 것이며, 단순히 컴파일하는 것 외에이 코드를 확인하는 빠르고 저렴한 방법이 필요합니다. 공식적인 검증이 슈퍼 볼 순간을 가질 수있는 곳입니다. 이제 이러한 공식적인 검증 도구를 AI 생성 코드로 규모로 배포하려는 큰 연구 노력이 진행 중입니다.
This could have an enormous impact, making software bugs a thing of the past. Not only would software be written faster with AI, but it would be better too.
이것은 엄청난 영향을 미쳐 소프트웨어 버그를 과거의 일로 만들 수 있습니다. AI로 소프트웨어가 더 빨리 쓰여질뿐만 아니라 더 나을 것입니다.
What about Bitcoin?
비트 코인은 어떻습니까?
Once these formal verification tools arrive, I’m eager to see how Bitcoin would fare. But the early answer here is that Bitcoin should fare well because it uses several strict forms of logic that give it its high security. For example, full nodes of the network check signatures (through SigOps) when verifying transactions. If the signature fails, the transaction will never enter the mempool, nor be included in a block. Similarly, miners win a block only if their hash of the block header lies below the difficulty target. And a transaction is valid only if the inputs exceeds its outputs.
이러한 공식적인 검증 도구가 도착하면 Bitcoin이 어떻게 지낼 것인지를보고 싶어합니다. 그러나 여기서 초기 대답은 비트 코인이 높은 보안을 제공하는 몇 가지 엄격한 형태의 논리를 사용하기 때문에 잘 지내야한다는 것입니다. 예를 들어, 트랜잭션을 확인할 때 네트워크 검사 서명 (SIGOPS를 통해)의 전체 노드. 서명이 실패하면 트랜잭션은 멤피에 들어 가지 않으며 블록에 포함되지 않습니다. 마찬가지로, 광부는 블록 헤더의 해시가 난이도 대상 아래에있는 경우에만 블록을 이깁니다. 트랜잭션은 입력이 출력을 초과하는 경우에만 유효합니다.
In other words, the logic in Bitcoin is fully deterministic. There is no uncertainty about the rules of the protocol. And because of this, there is little room for software bugs, evidenced by the lack of hacks over the last 15 years.
다시 말해, 비트 코인의 논리는 완전히 결정적입니다. 프로토콜의 규칙에 대한 불확실성은 없습니다. 이로 인해 지난 15 년 동안 해킹이 부족하여 소프트웨어 버그의 여지가 거의 없습니다.
That said, Bitcoin is still an example of social computing. You could say that it is technically vulnerable to collusion if, for example, every single miner in the world agreed to fork the chain. That could happen in theory. But that's where economics comes in: It would not be in the miner's interest to do so.
즉, 비트 코인은 여전히 소셜 컴퓨팅의 예입니다. 예를 들어, 세계의 모든 단일 광부가 체인을 포크하기로 동의 한 경우 기술적으로 공모에 취약하다고 말할 수 있습니다. 이론적으로 일어날 수 있습니다. 그러나 그것이 경제학이 들어오는 곳입니다. 광부의 관심에 있지 않을 것입니다.
부인 성명:info@kdj.com
제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!
본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.